aboutsummaryrefslogtreecommitdiffhomepage
path: root/packages/models/src/nodeinfo/nodeinfo.model.ts
blob: 336cb66d29275b2873783d1968f4c3959787781e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/**
 * NodeInfo schema version 2.0.
 */
export interface HttpNodeinfoDiasporaSoftwareNsSchema20 {
  /**
   * The schema version, must be 2.0.
   */
  version: '2.0'
  /**
   * Metadata about server software in use.
   */
  software: {
    /**
     * The canonical name of this server software.
     */
    name: string
    /**
     * The version of this server software.
     */
    version: string
  }
  /**
   * The protocols supported on this server.
   */
  protocols: (
    | 'activitypub'
    | 'buddycloud'
    | 'dfrn'
    | 'diaspora'
    | 'libertree'
    | 'ostatus'
    | 'pumpio'
    | 'tent'
    | 'xmpp'
    | 'zot')[]
  /**
   * The third party sites this server can connect to via their application API.
   */
  services: {
    /**
     * The third party sites this server can retrieve messages from for combined display with regular traffic.
     */
    inbound: ('atom1.0' | 'gnusocial' | 'imap' | 'pnut' | 'pop3' | 'pumpio' | 'rss2.0' | 'twitter')[]
    /**
     * The third party sites this server can publish messages to on the behalf of a user.
     */
    outbound: (
      | 'atom1.0'
      | 'blogger'
      | 'buddycloud'
      | 'diaspora'
      | 'dreamwidth'
      | 'drupal'
      | 'facebook'
      | 'friendica'
      | 'gnusocial'
      | 'google'
      | 'insanejournal'
      | 'libertree'
      | 'linkedin'
      | 'livejournal'
      | 'mediagoblin'
      | 'myspace'
      | 'pinterest'
      | 'pnut'
      | 'posterous'
      | 'pumpio'
      | 'redmatrix'
      | 'rss2.0'
      | 'smtp'
      | 'tent'
      | 'tumblr'
      | 'twitter'
      | 'wordpress'
      | 'xmpp')[]
  }
  /**
   * Whether this server allows open self-registration.
   */
  openRegistrations: boolean
  /**
   * Usage statistics for this server.
   */
  usage: {
    /**
     * statistics about the users of this server.
     */
    users: {
      /**
       * The total amount of on this server registered users.
       */
      total?: number
      /**
       * The amount of users that signed in at least once in the last 180 days.
       */
      activeHalfyear?: number
      /**
       * The amount of users that signed in at least once in the last 30 days.
       */
      activeMonth?: number
    }
    /**
     * The amount of posts that were made by users that are registered on this server.
     */
    localPosts?: number
    /**
     * The amount of comments that were made by users that are registered on this server.
     */
    localComments?: number
  }
  /**
   * Free form key value pairs for software specific values. Clients should not rely on any specific key present.
   */
  metadata: {
    [k: string]: any
  }
}