@crowi/api-contract 2.0.0-alpha.1 → 2.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,7 +34,9 @@ interface paths {
34
34
  confidential: string | null;
35
35
  version: string;
36
36
  apiVersion: string;
37
- capabilities: string[];
37
+ capabilities: components["schemas"]["Capability"][];
38
+ canSelfRegister: boolean;
39
+ rendererStylesheets: string[];
38
40
  };
39
41
  };
40
42
  };
@@ -1115,7 +1117,7 @@ interface paths {
1115
1117
  };
1116
1118
  };
1117
1119
  responses: {
1118
- /** @description Password updated */
1120
+ /** @description Password updated; earlier sessions revoked and a fresh token pair issued */
1119
1121
  200: {
1120
1122
  headers: {
1121
1123
  [name: string]: unknown;
@@ -1125,6 +1127,9 @@ interface paths {
1125
1127
  /** @enum {string} */
1126
1128
  status: "ok";
1127
1129
  message: string;
1130
+ accessToken: string;
1131
+ refreshToken: string;
1132
+ expiresIn: number;
1128
1133
  };
1129
1134
  };
1130
1135
  };
@@ -1227,6 +1232,7 @@ interface paths {
1227
1232
  username: string;
1228
1233
  }[];
1229
1234
  codeBlockLanguages?: string[];
1235
+ rawSpaceLinks?: string[];
1230
1236
  };
1231
1237
  renderedAst?: unknown;
1232
1238
  rendererVersion?: string;
@@ -2152,6 +2158,64 @@ interface paths {
2152
2158
  patch?: never;
2153
2159
  trace?: never;
2154
2160
  };
2161
+ "/oauth/client-info": {
2162
+ parameters: {
2163
+ query?: never;
2164
+ header?: never;
2165
+ path?: never;
2166
+ cookie?: never;
2167
+ };
2168
+ /** Look up non-secret metadata for a registered OAuth client (authorize/consent screen) */
2169
+ get: {
2170
+ parameters: {
2171
+ query: {
2172
+ client_id: string;
2173
+ };
2174
+ header?: never;
2175
+ path?: never;
2176
+ cookie?: never;
2177
+ };
2178
+ requestBody?: never;
2179
+ responses: {
2180
+ /** @description Client metadata */
2181
+ 200: {
2182
+ headers: {
2183
+ [name: string]: unknown;
2184
+ };
2185
+ content: {
2186
+ "application/json": {
2187
+ clientId: string;
2188
+ name: string;
2189
+ firstParty: boolean;
2190
+ trusted: boolean;
2191
+ };
2192
+ };
2193
+ };
2194
+ /** @description No client registered with this client_id */
2195
+ 404: {
2196
+ headers: {
2197
+ [name: string]: unknown;
2198
+ };
2199
+ content: {
2200
+ "application/json": {
2201
+ error: {
2202
+ /** @enum {string} */
2203
+ code: "NOT_FOUND";
2204
+ message: string;
2205
+ };
2206
+ };
2207
+ };
2208
+ };
2209
+ };
2210
+ };
2211
+ put?: never;
2212
+ post?: never;
2213
+ delete?: never;
2214
+ options?: never;
2215
+ head?: never;
2216
+ patch?: never;
2217
+ trace?: never;
2218
+ };
2155
2219
  "/user/{username}": {
2156
2220
  parameters: {
2157
2221
  query?: never;
@@ -2229,6 +2293,7 @@ interface paths {
2229
2293
  username: string;
2230
2294
  }[];
2231
2295
  codeBlockLanguages?: string[];
2296
+ rawSpaceLinks?: string[];
2232
2297
  };
2233
2298
  renderedAst?: unknown;
2234
2299
  rendererVersion?: string;
@@ -2335,6 +2400,7 @@ interface paths {
2335
2400
  username: string;
2336
2401
  }[];
2337
2402
  codeBlockLanguages?: string[];
2403
+ rawSpaceLinks?: string[];
2338
2404
  };
2339
2405
  renderedAst?: unknown;
2340
2406
  rendererVersion?: string;
@@ -2548,6 +2614,7 @@ interface paths {
2548
2614
  username: string;
2549
2615
  }[];
2550
2616
  codeBlockLanguages?: string[];
2617
+ rawSpaceLinks?: string[];
2551
2618
  };
2552
2619
  renderedAst?: unknown;
2553
2620
  rendererVersion?: string;
@@ -2765,6 +2832,7 @@ interface paths {
2765
2832
  username: string;
2766
2833
  }[];
2767
2834
  codeBlockLanguages?: string[];
2835
+ rawSpaceLinks?: string[];
2768
2836
  };
2769
2837
  renderedAst?: unknown;
2770
2838
  rendererVersion?: string;
@@ -2902,39 +2970,139 @@ interface paths {
2902
2970
  patch?: never;
2903
2971
  trace?: never;
2904
2972
  };
2905
- "/users": {
2973
+ "/user/{username}/subpages": {
2906
2974
  parameters: {
2907
2975
  query?: never;
2908
2976
  header?: never;
2909
2977
  path?: never;
2910
2978
  cookie?: never;
2911
2979
  };
2912
- /** List active users for the member directory (paginated, searchable) */
2980
+ /** Get pages under /user/{username}/ (path-rooted, fully recursive, paginated) */
2913
2981
  get: {
2914
2982
  parameters: {
2915
2983
  query?: {
2916
- q?: string;
2917
2984
  limit?: number;
2918
2985
  offset?: number | null;
2919
2986
  };
2920
2987
  header?: never;
2921
- path?: never;
2988
+ path: {
2989
+ username: string;
2990
+ };
2922
2991
  cookie?: never;
2923
2992
  };
2924
2993
  requestBody?: never;
2925
2994
  responses: {
2926
- /** @description Paginated active users, name-ascending */
2995
+ /** @description Paginated subpages (path-ascending, `_id` tie-break) */
2927
2996
  200: {
2928
2997
  headers: {
2929
2998
  [name: string]: unknown;
2930
2999
  };
2931
3000
  content: {
2932
3001
  "application/json": {
2933
- users: {
3002
+ pages: {
2934
3003
  _id: string;
2935
- username: string;
2936
- name: string;
2937
- image?: string | null;
3004
+ path: string;
3005
+ revision?: string | {
3006
+ _id: string;
3007
+ path: string;
3008
+ body: string;
3009
+ /** @default markdown */
3010
+ format: string;
3011
+ author?: {
3012
+ _id: string;
3013
+ id?: string;
3014
+ username: string;
3015
+ name: string;
3016
+ /** Format: email */
3017
+ email: string;
3018
+ image?: string | null;
3019
+ createdAt: string;
3020
+ } | null;
3021
+ createdAt: string;
3022
+ meta?: {
3023
+ toc?: {
3024
+ level: number;
3025
+ text: string;
3026
+ anchorId: string;
3027
+ }[];
3028
+ wikiLinks?: {
3029
+ raw: string;
3030
+ target: string;
3031
+ displayText?: string;
3032
+ }[];
3033
+ mentions?: {
3034
+ username: string;
3035
+ }[];
3036
+ codeBlockLanguages?: string[];
3037
+ rawSpaceLinks?: string[];
3038
+ };
3039
+ renderedAst?: unknown;
3040
+ rendererVersion?: string;
3041
+ parentRevisionId?: string | null;
3042
+ /** @enum {string} */
3043
+ type?: "snapshot" | "incremental";
3044
+ savedBy?: string | {
3045
+ _id: string;
3046
+ id?: string;
3047
+ username: string;
3048
+ name: string;
3049
+ /** Format: email */
3050
+ email: string;
3051
+ image?: string | null;
3052
+ createdAt: string;
3053
+ } | null;
3054
+ contributors?: (string | {
3055
+ _id: string;
3056
+ id?: string;
3057
+ username: string;
3058
+ name: string;
3059
+ /** Format: email */
3060
+ email: string;
3061
+ image?: string | null;
3062
+ createdAt: string;
3063
+ })[];
3064
+ message?: string;
3065
+ /** @enum {string} */
3066
+ editVia?: "web" | "oauth" | "pat";
3067
+ };
3068
+ redirectTo?: string | null;
3069
+ /** @enum {string|null} */
3070
+ status?: "wip" | "published" | "deleted" | "deprecated" | "draft" | null;
3071
+ grant?: number;
3072
+ grantedUsers?: string[];
3073
+ creator?: string | {
3074
+ _id: string;
3075
+ id?: string;
3076
+ username: string;
3077
+ name: string;
3078
+ /** Format: email */
3079
+ email: string;
3080
+ image?: string | null;
3081
+ createdAt: string;
3082
+ } | null;
3083
+ lastUpdateUser?: string | {
3084
+ _id: string;
3085
+ id?: string;
3086
+ username: string;
3087
+ name: string;
3088
+ /** Format: email */
3089
+ email: string;
3090
+ image?: string | null;
3091
+ createdAt: string;
3092
+ } | null;
3093
+ liker?: string[];
3094
+ /** @default 0 */
3095
+ commentCount: number;
3096
+ extended?: {
3097
+ [key: string]: unknown;
3098
+ };
3099
+ createdAt: string;
3100
+ updatedAt?: string;
3101
+ currentRevision?: string | null;
3102
+ yjsCheckpointAt?: string | null;
3103
+ latestRevision?: string;
3104
+ likerCount?: number;
3105
+ seenUsersCount?: number;
2938
3106
  }[];
2939
3107
  pager: {
2940
3108
  prev: number | null;
@@ -2945,6 +3113,27 @@ interface paths {
2945
3113
  };
2946
3114
  };
2947
3115
  };
3116
+ /** @description Invalid limit/offset */
3117
+ 400: {
3118
+ headers: {
3119
+ [name: string]: unknown;
3120
+ };
3121
+ content: {
3122
+ "application/json": {
3123
+ error: {
3124
+ /** @enum {string} */
3125
+ code: "VALIDATION_ERROR";
3126
+ message: string;
3127
+ details?: {
3128
+ fieldErrors: {
3129
+ [key: string]: string[];
3130
+ };
3131
+ formErrors: string[];
3132
+ };
3133
+ };
3134
+ };
3135
+ };
3136
+ };
2948
3137
  /** @description Authentication required */
2949
3138
  401: {
2950
3139
  headers: {
@@ -2962,6 +3151,40 @@ interface paths {
2962
3151
  };
2963
3152
  };
2964
3153
  };
3154
+ /** @description Missing profile:read and/or pages:read scope */
3155
+ 403: {
3156
+ headers: {
3157
+ [name: string]: unknown;
3158
+ };
3159
+ content: {
3160
+ "application/json": {
3161
+ error: {
3162
+ /** @enum {string} */
3163
+ code: "INSUFFICIENT_SCOPE";
3164
+ message: string;
3165
+ details?: {
3166
+ requiredScope: string;
3167
+ };
3168
+ };
3169
+ };
3170
+ };
3171
+ };
3172
+ /** @description User not found */
3173
+ 404: {
3174
+ headers: {
3175
+ [name: string]: unknown;
3176
+ };
3177
+ content: {
3178
+ "application/json": {
3179
+ error: {
3180
+ /** @enum {string} */
3181
+ code: "USER_NOT_FOUND";
3182
+ /** @enum {string} */
3183
+ message: "User not found";
3184
+ };
3185
+ };
3186
+ };
3187
+ };
2965
3188
  /** @description Internal server error */
2966
3189
  500: {
2967
3190
  headers: {
@@ -2988,18 +3211,20 @@ interface paths {
2988
3211
  patch?: never;
2989
3212
  trace?: never;
2990
3213
  };
2991
- "/bookmarks": {
3214
+ "/users": {
2992
3215
  parameters: {
2993
3216
  query?: never;
2994
3217
  header?: never;
2995
3218
  path?: never;
2996
3219
  cookie?: never;
2997
3220
  };
2998
- /** Get bookmark of a page for the current user */
3221
+ /** List active users for the member directory (paginated, searchable) */
2999
3222
  get: {
3000
3223
  parameters: {
3001
- query: {
3002
- page_id: string;
3224
+ query?: {
3225
+ q?: string;
3226
+ limit?: number;
3227
+ offset?: number | null;
3003
3228
  };
3004
3229
  header?: never;
3005
3230
  path?: never;
@@ -3007,39 +3232,123 @@ interface paths {
3007
3232
  };
3008
3233
  requestBody?: never;
3009
3234
  responses: {
3010
- /** @description Bookmark for the page (or null when not bookmarked) */
3235
+ /** @description Paginated active users, name-ascending */
3011
3236
  200: {
3012
3237
  headers: {
3013
3238
  [name: string]: unknown;
3014
3239
  };
3015
3240
  content: {
3016
3241
  "application/json": {
3017
- bookmark: {
3242
+ users: {
3018
3243
  _id: string;
3019
- page: {
3020
- _id: string;
3021
- path: string;
3022
- revision?: string | {
3023
- _id: string;
3024
- path: string;
3025
- body: string;
3026
- /** @default markdown */
3027
- format: string;
3028
- author?: {
3029
- _id: string;
3030
- id?: string;
3031
- username: string;
3032
- name: string;
3033
- /** Format: email */
3034
- email: string;
3035
- image?: string | null;
3036
- createdAt: string;
3037
- } | null;
3038
- createdAt: string;
3039
- meta?: {
3040
- toc?: {
3041
- level: number;
3042
- text: string;
3244
+ username: string;
3245
+ name: string;
3246
+ image?: string | null;
3247
+ }[];
3248
+ pager: {
3249
+ prev: number | null;
3250
+ next: number | null;
3251
+ offset: number;
3252
+ };
3253
+ total: number;
3254
+ };
3255
+ };
3256
+ };
3257
+ /** @description Authentication required */
3258
+ 401: {
3259
+ headers: {
3260
+ [name: string]: unknown;
3261
+ };
3262
+ content: {
3263
+ "application/json": {
3264
+ error: {
3265
+ /** @enum {string} */
3266
+ code: "AUTHENTICATION_REQUIRED";
3267
+ /** @enum {string} */
3268
+ message: "Authentication is required";
3269
+ redirectTo?: string;
3270
+ };
3271
+ };
3272
+ };
3273
+ };
3274
+ /** @description Internal server error */
3275
+ 500: {
3276
+ headers: {
3277
+ [name: string]: unknown;
3278
+ };
3279
+ content: {
3280
+ "application/json": {
3281
+ error: {
3282
+ /** @enum {string} */
3283
+ code: "INTERNAL_ERROR";
3284
+ /** @enum {string} */
3285
+ message: "Internal server error";
3286
+ };
3287
+ };
3288
+ };
3289
+ };
3290
+ };
3291
+ };
3292
+ put?: never;
3293
+ post?: never;
3294
+ delete?: never;
3295
+ options?: never;
3296
+ head?: never;
3297
+ patch?: never;
3298
+ trace?: never;
3299
+ };
3300
+ "/bookmarks": {
3301
+ parameters: {
3302
+ query?: never;
3303
+ header?: never;
3304
+ path?: never;
3305
+ cookie?: never;
3306
+ };
3307
+ /** Get bookmark of a page for the current user */
3308
+ get: {
3309
+ parameters: {
3310
+ query: {
3311
+ page_id: string;
3312
+ };
3313
+ header?: never;
3314
+ path?: never;
3315
+ cookie?: never;
3316
+ };
3317
+ requestBody?: never;
3318
+ responses: {
3319
+ /** @description Bookmark for the page (or null when not bookmarked) */
3320
+ 200: {
3321
+ headers: {
3322
+ [name: string]: unknown;
3323
+ };
3324
+ content: {
3325
+ "application/json": {
3326
+ bookmark: {
3327
+ _id: string;
3328
+ page: {
3329
+ _id: string;
3330
+ path: string;
3331
+ revision?: string | {
3332
+ _id: string;
3333
+ path: string;
3334
+ body: string;
3335
+ /** @default markdown */
3336
+ format: string;
3337
+ author?: {
3338
+ _id: string;
3339
+ id?: string;
3340
+ username: string;
3341
+ name: string;
3342
+ /** Format: email */
3343
+ email: string;
3344
+ image?: string | null;
3345
+ createdAt: string;
3346
+ } | null;
3347
+ createdAt: string;
3348
+ meta?: {
3349
+ toc?: {
3350
+ level: number;
3351
+ text: string;
3043
3352
  anchorId: string;
3044
3353
  }[];
3045
3354
  wikiLinks?: {
@@ -3051,6 +3360,7 @@ interface paths {
3051
3360
  username: string;
3052
3361
  }[];
3053
3362
  codeBlockLanguages?: string[];
3363
+ rawSpaceLinks?: string[];
3054
3364
  };
3055
3365
  renderedAst?: unknown;
3056
3366
  rendererVersion?: string;
@@ -3250,6 +3560,7 @@ interface paths {
3250
3560
  username: string;
3251
3561
  }[];
3252
3562
  codeBlockLanguages?: string[];
3563
+ rawSpaceLinks?: string[];
3253
3564
  };
3254
3565
  renderedAst?: unknown;
3255
3566
  rendererVersion?: string;
@@ -3535,6 +3846,7 @@ interface paths {
3535
3846
  username: string;
3536
3847
  }[];
3537
3848
  codeBlockLanguages?: string[];
3849
+ rawSpaceLinks?: string[];
3538
3850
  };
3539
3851
  renderedAst?: unknown;
3540
3852
  rendererVersion?: string;
@@ -3762,6 +4074,22 @@ interface paths {
3762
4074
  };
3763
4075
  };
3764
4076
  };
4077
+ /** @description Page not found or not granted */
4078
+ 404: {
4079
+ headers: {
4080
+ [name: string]: unknown;
4081
+ };
4082
+ content: {
4083
+ "application/json": {
4084
+ error: {
4085
+ /** @enum {string} */
4086
+ code: "PAGE_NOT_FOUND";
4087
+ /** @enum {string} */
4088
+ message: "Page not found";
4089
+ };
4090
+ };
4091
+ };
4092
+ };
3765
4093
  };
3766
4094
  };
3767
4095
  put?: never;
@@ -3853,6 +4181,22 @@ interface paths {
3853
4181
  };
3854
4182
  };
3855
4183
  };
4184
+ /** @description Page / revision not found, or the caller cannot access it (existence hidden) */
4185
+ 404: {
4186
+ headers: {
4187
+ [name: string]: unknown;
4188
+ };
4189
+ content: {
4190
+ "application/json": {
4191
+ error: {
4192
+ /** @enum {string} */
4193
+ code: "PAGE_NOT_FOUND";
4194
+ /** @enum {string} */
4195
+ message: "Page not found";
4196
+ };
4197
+ };
4198
+ };
4199
+ };
3856
4200
  };
3857
4201
  };
3858
4202
  put?: never;
@@ -4245,6 +4589,7 @@ interface paths {
4245
4589
  username: string;
4246
4590
  }[];
4247
4591
  codeBlockLanguages?: string[];
4592
+ rawSpaceLinks?: string[];
4248
4593
  };
4249
4594
  renderedAst?: unknown;
4250
4595
  rendererVersion?: string;
@@ -4394,6 +4739,7 @@ interface paths {
4394
4739
  username: string;
4395
4740
  }[];
4396
4741
  codeBlockLanguages?: string[];
4742
+ rawSpaceLinks?: string[];
4397
4743
  };
4398
4744
  renderedAst?: unknown;
4399
4745
  rendererVersion?: string;
@@ -4548,6 +4894,7 @@ interface paths {
4548
4894
  username: string;
4549
4895
  }[];
4550
4896
  codeBlockLanguages?: string[];
4897
+ rawSpaceLinks?: string[];
4551
4898
  };
4552
4899
  renderedAst?: unknown;
4553
4900
  rendererVersion?: string;
@@ -4669,6 +5016,22 @@ interface paths {
4669
5016
  };
4670
5017
  };
4671
5018
  };
5019
+ /** @description Internal server error */
5020
+ 500: {
5021
+ headers: {
5022
+ [name: string]: unknown;
5023
+ };
5024
+ content: {
5025
+ "application/json": {
5026
+ error: {
5027
+ /** @enum {string} */
5028
+ code: "INTERNAL_ERROR";
5029
+ /** @enum {string} */
5030
+ message: "Internal server error";
5031
+ };
5032
+ };
5033
+ };
5034
+ };
4672
5035
  };
4673
5036
  };
4674
5037
  /** Update existing page */
@@ -4732,6 +5095,7 @@ interface paths {
4732
5095
  username: string;
4733
5096
  }[];
4734
5097
  codeBlockLanguages?: string[];
5098
+ rawSpaceLinks?: string[];
4735
5099
  };
4736
5100
  renderedAst?: unknown;
4737
5101
  rendererVersion?: string;
@@ -4928,6 +5292,7 @@ interface paths {
4928
5292
  username: string;
4929
5293
  }[];
4930
5294
  codeBlockLanguages?: string[];
5295
+ rawSpaceLinks?: string[];
4931
5296
  };
4932
5297
  renderedAst?: unknown;
4933
5298
  rendererVersion?: string;
@@ -5000,7 +5365,7 @@ interface paths {
5000
5365
  };
5001
5366
  };
5002
5367
  };
5003
- /** @description Invalid request (PAGE_EXISTS / NON_EXISTENT_USER_PAGE / PAGE_CREATE_FAILED / INVALID_GRANT) */
5368
+ /** @description Invalid request (PAGE_INVALID_NAME / PAGE_EXISTS / NON_EXISTENT_USER_PAGE / PAGE_CREATE_FAILED / INVALID_GRANT) */
5004
5369
  400: {
5005
5370
  headers: {
5006
5371
  [name: string]: unknown;
@@ -5093,6 +5458,7 @@ interface paths {
5093
5458
  username: string;
5094
5459
  }[];
5095
5460
  codeBlockLanguages?: string[];
5461
+ rawSpaceLinks?: string[];
5096
5462
  };
5097
5463
  renderedAst?: unknown;
5098
5464
  rendererVersion?: string;
@@ -5252,6 +5618,7 @@ interface paths {
5252
5618
  include_deleted?: boolean | null;
5253
5619
  sort?: "updatedAt" | "createdAt" | "path";
5254
5620
  order?: "asc" | "desc";
5621
+ revision_id?: string;
5255
5622
  };
5256
5623
  header?: never;
5257
5624
  path?: never;
@@ -5301,6 +5668,7 @@ interface paths {
5301
5668
  username: string;
5302
5669
  }[];
5303
5670
  codeBlockLanguages?: string[];
5671
+ rawSpaceLinks?: string[];
5304
5672
  };
5305
5673
  renderedAst?: unknown;
5306
5674
  rendererVersion?: string;
@@ -5410,6 +5778,7 @@ interface paths {
5410
5778
  username: string;
5411
5779
  }[];
5412
5780
  codeBlockLanguages?: string[];
5781
+ rawSpaceLinks?: string[];
5413
5782
  };
5414
5783
  renderedAst?: unknown;
5415
5784
  rendererVersion?: string;
@@ -5479,106 +5848,222 @@ interface paths {
5479
5848
  likerCount?: number;
5480
5849
  seenUsersCount?: number;
5481
5850
  } | null;
5482
- };
5483
- };
5484
- };
5485
- /** @description Authentication required */
5486
- 401: {
5487
- headers: {
5488
- [name: string]: unknown;
5489
- };
5490
- content: {
5491
- "application/json": {
5492
- error: {
5493
- /** @enum {string} */
5494
- code: "AUTHENTICATION_REQUIRED";
5495
- /** @enum {string} */
5496
- message: "Authentication is required";
5497
- redirectTo?: string;
5498
- };
5499
- };
5500
- };
5501
- };
5502
- };
5503
- };
5504
- put?: never;
5505
- post?: never;
5506
- delete?: never;
5507
- options?: never;
5508
- head?: never;
5509
- patch?: never;
5510
- trace?: never;
5511
- };
5512
- "/pages/children": {
5513
- parameters: {
5514
- query?: never;
5515
- header?: never;
5516
- path?: never;
5517
- cookie?: never;
5518
- };
5519
- /** List immediate child segments under a portal path (sidebar tree) */
5520
- get: {
5521
- parameters: {
5522
- query: {
5523
- path: string;
5524
- };
5525
- header?: never;
5526
- path?: never;
5527
- cookie?: never;
5528
- };
5529
- requestBody?: never;
5530
- responses: {
5531
- /** @description First-level child segments (alphabetical) under the path */
5532
- 200: {
5533
- headers: {
5534
- [name: string]: unknown;
5535
- };
5536
- content: {
5537
- "application/json": {
5538
- children: {
5539
- segment: string;
5851
+ contentPage?: {
5852
+ _id: string;
5540
5853
  path: string;
5541
- isPage: boolean;
5542
- hasPortal: boolean;
5543
- count: number;
5544
- }[];
5545
- };
5546
- };
5547
- };
5548
- /** @description Authentication required */
5549
- 401: {
5550
- headers: {
5551
- [name: string]: unknown;
5552
- };
5553
- content: {
5554
- "application/json": {
5555
- error: {
5556
- /** @enum {string} */
5557
- code: "AUTHENTICATION_REQUIRED";
5558
- /** @enum {string} */
5559
- message: "Authentication is required";
5560
- redirectTo?: string;
5561
- };
5562
- };
5563
- };
5564
- };
5565
- };
5566
- };
5567
- put?: never;
5568
- post?: never;
5569
- delete?: never;
5570
- options?: never;
5571
- head?: never;
5572
- patch?: never;
5573
- trace?: never;
5574
- };
5575
- "/pages/grant": {
5576
- parameters: {
5577
- query?: never;
5578
- header?: never;
5579
- path?: never;
5580
- cookie?: never;
5581
- };
5854
+ revision?: string | {
5855
+ _id: string;
5856
+ path: string;
5857
+ body: string;
5858
+ /** @default markdown */
5859
+ format: string;
5860
+ author?: {
5861
+ _id: string;
5862
+ id?: string;
5863
+ username: string;
5864
+ name: string;
5865
+ /** Format: email */
5866
+ email: string;
5867
+ image?: string | null;
5868
+ createdAt: string;
5869
+ } | null;
5870
+ createdAt: string;
5871
+ meta?: {
5872
+ toc?: {
5873
+ level: number;
5874
+ text: string;
5875
+ anchorId: string;
5876
+ }[];
5877
+ wikiLinks?: {
5878
+ raw: string;
5879
+ target: string;
5880
+ displayText?: string;
5881
+ }[];
5882
+ mentions?: {
5883
+ username: string;
5884
+ }[];
5885
+ codeBlockLanguages?: string[];
5886
+ rawSpaceLinks?: string[];
5887
+ };
5888
+ renderedAst?: unknown;
5889
+ rendererVersion?: string;
5890
+ parentRevisionId?: string | null;
5891
+ /** @enum {string} */
5892
+ type?: "snapshot" | "incremental";
5893
+ savedBy?: string | {
5894
+ _id: string;
5895
+ id?: string;
5896
+ username: string;
5897
+ name: string;
5898
+ /** Format: email */
5899
+ email: string;
5900
+ image?: string | null;
5901
+ createdAt: string;
5902
+ } | null;
5903
+ contributors?: (string | {
5904
+ _id: string;
5905
+ id?: string;
5906
+ username: string;
5907
+ name: string;
5908
+ /** Format: email */
5909
+ email: string;
5910
+ image?: string | null;
5911
+ createdAt: string;
5912
+ })[];
5913
+ message?: string;
5914
+ /** @enum {string} */
5915
+ editVia?: "web" | "oauth" | "pat";
5916
+ };
5917
+ redirectTo?: string | null;
5918
+ /** @enum {string|null} */
5919
+ status?: "wip" | "published" | "deleted" | "deprecated" | "draft" | null;
5920
+ grant?: number;
5921
+ grantedUsers?: string[];
5922
+ creator?: string | {
5923
+ _id: string;
5924
+ id?: string;
5925
+ username: string;
5926
+ name: string;
5927
+ /** Format: email */
5928
+ email: string;
5929
+ image?: string | null;
5930
+ createdAt: string;
5931
+ } | null;
5932
+ lastUpdateUser?: string | {
5933
+ _id: string;
5934
+ id?: string;
5935
+ username: string;
5936
+ name: string;
5937
+ /** Format: email */
5938
+ email: string;
5939
+ image?: string | null;
5940
+ createdAt: string;
5941
+ } | null;
5942
+ liker?: string[];
5943
+ /** @default 0 */
5944
+ commentCount: number;
5945
+ extended?: {
5946
+ [key: string]: unknown;
5947
+ };
5948
+ createdAt: string;
5949
+ updatedAt?: string;
5950
+ currentRevision?: string | null;
5951
+ yjsCheckpointAt?: string | null;
5952
+ latestRevision?: string;
5953
+ likerCount?: number;
5954
+ seenUsersCount?: number;
5955
+ } | null;
5956
+ };
5957
+ };
5958
+ };
5959
+ /** @description Authentication required */
5960
+ 401: {
5961
+ headers: {
5962
+ [name: string]: unknown;
5963
+ };
5964
+ content: {
5965
+ "application/json": {
5966
+ error: {
5967
+ /** @enum {string} */
5968
+ code: "AUTHENTICATION_REQUIRED";
5969
+ /** @enum {string} */
5970
+ message: "Authentication is required";
5971
+ redirectTo?: string;
5972
+ };
5973
+ };
5974
+ };
5975
+ };
5976
+ };
5977
+ };
5978
+ put?: never;
5979
+ post?: never;
5980
+ delete?: never;
5981
+ options?: never;
5982
+ head?: never;
5983
+ patch?: never;
5984
+ trace?: never;
5985
+ };
5986
+ "/pages/children": {
5987
+ parameters: {
5988
+ query?: never;
5989
+ header?: never;
5990
+ path?: never;
5991
+ cookie?: never;
5992
+ };
5993
+ /** List immediate child segments under a portal path (sidebar tree) */
5994
+ get: {
5995
+ parameters: {
5996
+ query: {
5997
+ path: string;
5998
+ };
5999
+ header?: never;
6000
+ path?: never;
6001
+ cookie?: never;
6002
+ };
6003
+ requestBody?: never;
6004
+ responses: {
6005
+ /** @description First-level child segments (alphabetical) under the path */
6006
+ 200: {
6007
+ headers: {
6008
+ [name: string]: unknown;
6009
+ };
6010
+ content: {
6011
+ "application/json": {
6012
+ children: {
6013
+ segment: string;
6014
+ path: string;
6015
+ isPage: boolean;
6016
+ hasPortal: boolean;
6017
+ count: number;
6018
+ lastUpdatedAt?: string | null;
6019
+ updater?: {
6020
+ _id: string;
6021
+ id?: string;
6022
+ username: string;
6023
+ name: string;
6024
+ /** Format: email */
6025
+ email: string;
6026
+ image?: string | null;
6027
+ createdAt: string;
6028
+ } | null;
6029
+ }[];
6030
+ };
6031
+ };
6032
+ };
6033
+ /** @description Authentication required */
6034
+ 401: {
6035
+ headers: {
6036
+ [name: string]: unknown;
6037
+ };
6038
+ content: {
6039
+ "application/json": {
6040
+ error: {
6041
+ /** @enum {string} */
6042
+ code: "AUTHENTICATION_REQUIRED";
6043
+ /** @enum {string} */
6044
+ message: "Authentication is required";
6045
+ redirectTo?: string;
6046
+ };
6047
+ };
6048
+ };
6049
+ };
6050
+ };
6051
+ };
6052
+ put?: never;
6053
+ post?: never;
6054
+ delete?: never;
6055
+ options?: never;
6056
+ head?: never;
6057
+ patch?: never;
6058
+ trace?: never;
6059
+ };
6060
+ "/pages/grant": {
6061
+ parameters: {
6062
+ query?: never;
6063
+ header?: never;
6064
+ path?: never;
6065
+ cookie?: never;
6066
+ };
5582
6067
  get?: never;
5583
6068
  /** Update page grant (visibility) only — no revision pushed */
5584
6069
  put: {
@@ -5639,6 +6124,7 @@ interface paths {
5639
6124
  username: string;
5640
6125
  }[];
5641
6126
  codeBlockLanguages?: string[];
6127
+ rawSpaceLinks?: string[];
5642
6128
  };
5643
6129
  renderedAst?: unknown;
5644
6130
  rendererVersion?: string;
@@ -6043,6 +6529,7 @@ interface paths {
6043
6529
  username: string;
6044
6530
  }[];
6045
6531
  codeBlockLanguages?: string[];
6532
+ rawSpaceLinks?: string[];
6046
6533
  };
6047
6534
  renderedAst?: unknown;
6048
6535
  rendererVersion?: string;
@@ -6238,6 +6725,7 @@ interface paths {
6238
6725
  username: string;
6239
6726
  }[];
6240
6727
  codeBlockLanguages?: string[];
6728
+ rawSpaceLinks?: string[];
6241
6729
  };
6242
6730
  renderedAst?: unknown;
6243
6731
  rendererVersion?: string;
@@ -6366,59 +6854,295 @@ interface paths {
6366
6854
  patch?: never;
6367
6855
  trace?: never;
6368
6856
  };
6369
- "/pages/watch": {
6857
+ "/pages/link-access": {
6370
6858
  parameters: {
6371
6859
  query?: never;
6372
6860
  header?: never;
6373
6861
  path?: never;
6374
6862
  cookie?: never;
6375
6863
  };
6376
- /** Get watch (notification subscription) status for a page */
6377
- get: {
6864
+ get?: never;
6865
+ put?: never;
6866
+ /** Resolve a page by id, granting first-time link-share access to GRANT_RESTRICTED pages */
6867
+ post: {
6378
6868
  parameters: {
6379
- query: {
6380
- page_id: string;
6381
- };
6869
+ query?: never;
6382
6870
  header?: never;
6383
6871
  path?: never;
6384
6872
  cookie?: never;
6385
6873
  };
6386
- requestBody?: never;
6387
- responses: {
6388
- /** @description Watching status (true / false) */
6389
- 200: {
6390
- headers: {
6391
- [name: string]: unknown;
6392
- };
6393
- content: {
6394
- "application/json": {
6395
- watching: boolean;
6396
- };
6397
- };
6398
- };
6399
- /** @description Invalid page_id */
6400
- 400: {
6401
- headers: {
6402
- [name: string]: unknown;
6403
- };
6404
- content: {
6405
- "application/json": {
6406
- error: {
6407
- /** @enum {string} */
6408
- code: "INVALID_PAGE_ID";
6409
- message: string;
6410
- };
6411
- };
6874
+ requestBody?: {
6875
+ content: {
6876
+ "application/json": {
6877
+ page_id: string;
6412
6878
  };
6413
6879
  };
6414
- /** @description Authentication required */
6415
- 401: {
6880
+ };
6881
+ responses: {
6882
+ /** @description The resolved page, with `granted` telling whether this call just added the caller to grantedUsers */
6883
+ 200: {
6416
6884
  headers: {
6417
6885
  [name: string]: unknown;
6418
6886
  };
6419
6887
  content: {
6420
6888
  "application/json": {
6421
- error: {
6889
+ page: {
6890
+ _id: string;
6891
+ path: string;
6892
+ revision: {
6893
+ _id: string;
6894
+ path: string;
6895
+ body: string;
6896
+ /** @default markdown */
6897
+ format: string;
6898
+ author?: {
6899
+ _id: string;
6900
+ id?: string;
6901
+ username: string;
6902
+ name: string;
6903
+ /** Format: email */
6904
+ email: string;
6905
+ image?: string | null;
6906
+ createdAt: string;
6907
+ } | null;
6908
+ createdAt: string;
6909
+ meta?: {
6910
+ toc?: {
6911
+ level: number;
6912
+ text: string;
6913
+ anchorId: string;
6914
+ }[];
6915
+ wikiLinks?: {
6916
+ raw: string;
6917
+ target: string;
6918
+ displayText?: string;
6919
+ }[];
6920
+ mentions?: {
6921
+ username: string;
6922
+ }[];
6923
+ codeBlockLanguages?: string[];
6924
+ rawSpaceLinks?: string[];
6925
+ };
6926
+ renderedAst?: unknown;
6927
+ rendererVersion?: string;
6928
+ parentRevisionId?: string | null;
6929
+ /** @enum {string} */
6930
+ type?: "snapshot" | "incremental";
6931
+ savedBy?: string | {
6932
+ _id: string;
6933
+ id?: string;
6934
+ username: string;
6935
+ name: string;
6936
+ /** Format: email */
6937
+ email: string;
6938
+ image?: string | null;
6939
+ createdAt: string;
6940
+ } | null;
6941
+ contributors?: (string | {
6942
+ _id: string;
6943
+ id?: string;
6944
+ username: string;
6945
+ name: string;
6946
+ /** Format: email */
6947
+ email: string;
6948
+ image?: string | null;
6949
+ createdAt: string;
6950
+ })[];
6951
+ message?: string;
6952
+ /** @enum {string} */
6953
+ editVia?: "web" | "oauth" | "pat";
6954
+ };
6955
+ redirectTo?: string | null;
6956
+ /** @enum {string|null} */
6957
+ status?: "wip" | "published" | "deleted" | "deprecated" | "draft" | null;
6958
+ grant?: number;
6959
+ grantedUsers?: string[];
6960
+ creator?: {
6961
+ _id: string;
6962
+ id?: string;
6963
+ username: string;
6964
+ name: string;
6965
+ /** Format: email */
6966
+ email: string;
6967
+ image?: string | null;
6968
+ createdAt: string;
6969
+ } | null;
6970
+ lastUpdateUser?: {
6971
+ _id: string;
6972
+ id?: string;
6973
+ username: string;
6974
+ name: string;
6975
+ /** Format: email */
6976
+ email: string;
6977
+ image?: string | null;
6978
+ createdAt: string;
6979
+ } | null;
6980
+ liker?: string[];
6981
+ /** @default 0 */
6982
+ commentCount: number;
6983
+ extended?: {
6984
+ [key: string]: unknown;
6985
+ };
6986
+ createdAt: string;
6987
+ updatedAt?: string;
6988
+ currentRevision?: string | null;
6989
+ yjsCheckpointAt?: string | null;
6990
+ latestRevision?: string;
6991
+ likerCount?: number;
6992
+ seenUsersCount?: number;
6993
+ };
6994
+ granted: boolean;
6995
+ };
6996
+ };
6997
+ };
6998
+ /** @description Invalid page_id */
6999
+ 400: {
7000
+ headers: {
7001
+ [name: string]: unknown;
7002
+ };
7003
+ content: {
7004
+ "application/json": {
7005
+ error: {
7006
+ /** @enum {string} */
7007
+ code: "INVALID_PAGE_ID";
7008
+ message: string;
7009
+ };
7010
+ };
7011
+ };
7012
+ };
7013
+ /** @description Authentication required */
7014
+ 401: {
7015
+ headers: {
7016
+ [name: string]: unknown;
7017
+ };
7018
+ content: {
7019
+ "application/json": {
7020
+ error: {
7021
+ /** @enum {string} */
7022
+ code: "AUTHENTICATION_REQUIRED";
7023
+ /** @enum {string} */
7024
+ message: "Authentication is required";
7025
+ redirectTo?: string;
7026
+ };
7027
+ };
7028
+ };
7029
+ };
7030
+ /** @description The caller has no access to the page (isGrantedFor is false) or lacks scope / is a non-web session — 403 is about the caller lacking access, never about the page grant type per se */
7031
+ 403: {
7032
+ headers: {
7033
+ [name: string]: unknown;
7034
+ };
7035
+ content: {
7036
+ "application/json": {
7037
+ error: {
7038
+ /** @enum {string} */
7039
+ code: "PAGE_NOT_GRANTED";
7040
+ /** @enum {string} */
7041
+ message: "Page is not granted for the user";
7042
+ };
7043
+ } | {
7044
+ error: {
7045
+ /** @enum {string} */
7046
+ code: "INSUFFICIENT_SCOPE";
7047
+ message: string;
7048
+ details?: {
7049
+ requiredScope: string;
7050
+ };
7051
+ };
7052
+ };
7053
+ };
7054
+ };
7055
+ /** @description Page not found */
7056
+ 404: {
7057
+ headers: {
7058
+ [name: string]: unknown;
7059
+ };
7060
+ content: {
7061
+ "application/json": {
7062
+ error: {
7063
+ /** @enum {string} */
7064
+ code: "PAGE_NOT_FOUND";
7065
+ /** @enum {string} */
7066
+ message: "Page not found";
7067
+ };
7068
+ };
7069
+ };
7070
+ };
7071
+ /** @description Rate limit exceeded for POST /pages/link-access (per-user). Same wire shape as autocomplete rate limiting. */
7072
+ 429: {
7073
+ headers: {
7074
+ [name: string]: unknown;
7075
+ };
7076
+ content: {
7077
+ "application/json": {
7078
+ /** @enum {string} */
7079
+ error: "rate_limited";
7080
+ message: string;
7081
+ retryAfterSeconds: number;
7082
+ };
7083
+ };
7084
+ };
7085
+ };
7086
+ };
7087
+ delete?: never;
7088
+ options?: never;
7089
+ head?: never;
7090
+ patch?: never;
7091
+ trace?: never;
7092
+ };
7093
+ "/pages/watch": {
7094
+ parameters: {
7095
+ query?: never;
7096
+ header?: never;
7097
+ path?: never;
7098
+ cookie?: never;
7099
+ };
7100
+ /** Get watch (notification subscription) status for a page */
7101
+ get: {
7102
+ parameters: {
7103
+ query: {
7104
+ page_id: string;
7105
+ };
7106
+ header?: never;
7107
+ path?: never;
7108
+ cookie?: never;
7109
+ };
7110
+ requestBody?: never;
7111
+ responses: {
7112
+ /** @description Watching status (true / false) */
7113
+ 200: {
7114
+ headers: {
7115
+ [name: string]: unknown;
7116
+ };
7117
+ content: {
7118
+ "application/json": {
7119
+ watching: boolean;
7120
+ };
7121
+ };
7122
+ };
7123
+ /** @description Invalid page_id */
7124
+ 400: {
7125
+ headers: {
7126
+ [name: string]: unknown;
7127
+ };
7128
+ content: {
7129
+ "application/json": {
7130
+ error: {
7131
+ /** @enum {string} */
7132
+ code: "INVALID_PAGE_ID";
7133
+ message: string;
7134
+ };
7135
+ };
7136
+ };
7137
+ };
7138
+ /** @description Authentication required */
7139
+ 401: {
7140
+ headers: {
7141
+ [name: string]: unknown;
7142
+ };
7143
+ content: {
7144
+ "application/json": {
7145
+ error: {
6422
7146
  /** @enum {string} */
6423
7147
  code: "AUTHENTICATION_REQUIRED";
6424
7148
  /** @enum {string} */
@@ -6470,11 +7194,208 @@ interface paths {
6470
7194
  };
6471
7195
  content: {
6472
7196
  "application/json": {
6473
- watching: boolean;
7197
+ watching: boolean;
7198
+ };
7199
+ };
7200
+ };
7201
+ /** @description Invalid page_id */
7202
+ 400: {
7203
+ headers: {
7204
+ [name: string]: unknown;
7205
+ };
7206
+ content: {
7207
+ "application/json": {
7208
+ error: {
7209
+ /** @enum {string} */
7210
+ code: "INVALID_PAGE_ID";
7211
+ message: string;
7212
+ };
7213
+ };
7214
+ };
7215
+ };
7216
+ /** @description Authentication required */
7217
+ 401: {
7218
+ headers: {
7219
+ [name: string]: unknown;
7220
+ };
7221
+ content: {
7222
+ "application/json": {
7223
+ error: {
7224
+ /** @enum {string} */
7225
+ code: "AUTHENTICATION_REQUIRED";
7226
+ /** @enum {string} */
7227
+ message: "Authentication is required";
7228
+ redirectTo?: string;
7229
+ };
7230
+ };
7231
+ };
7232
+ };
7233
+ /** @description Page not found (also covers grant-denied) */
7234
+ 404: {
7235
+ headers: {
7236
+ [name: string]: unknown;
7237
+ };
7238
+ content: {
7239
+ "application/json": {
7240
+ error: {
7241
+ /** @enum {string} */
7242
+ code: "PAGE_NOT_FOUND";
7243
+ /** @enum {string} */
7244
+ message: "Page not found";
7245
+ };
7246
+ };
7247
+ };
7248
+ };
7249
+ };
7250
+ };
7251
+ post?: never;
7252
+ delete?: never;
7253
+ options?: never;
7254
+ head?: never;
7255
+ patch?: never;
7256
+ trace?: never;
7257
+ };
7258
+ "/pages/revert": {
7259
+ parameters: {
7260
+ query?: never;
7261
+ header?: never;
7262
+ path?: never;
7263
+ cookie?: never;
7264
+ };
7265
+ get?: never;
7266
+ put?: never;
7267
+ /** Revert a soft-deleted page (restore from /trash/...) */
7268
+ post: {
7269
+ parameters: {
7270
+ query?: never;
7271
+ header?: never;
7272
+ path?: never;
7273
+ cookie?: never;
7274
+ };
7275
+ requestBody?: {
7276
+ content: {
7277
+ "application/json": {
7278
+ page_id: string;
7279
+ };
7280
+ };
7281
+ };
7282
+ responses: {
7283
+ /** @description The restored page */
7284
+ 200: {
7285
+ headers: {
7286
+ [name: string]: unknown;
7287
+ };
7288
+ content: {
7289
+ "application/json": {
7290
+ page: {
7291
+ _id: string;
7292
+ path: string;
7293
+ revision?: string | {
7294
+ _id: string;
7295
+ path: string;
7296
+ body: string;
7297
+ /** @default markdown */
7298
+ format: string;
7299
+ author?: {
7300
+ _id: string;
7301
+ id?: string;
7302
+ username: string;
7303
+ name: string;
7304
+ /** Format: email */
7305
+ email: string;
7306
+ image?: string | null;
7307
+ createdAt: string;
7308
+ } | null;
7309
+ createdAt: string;
7310
+ meta?: {
7311
+ toc?: {
7312
+ level: number;
7313
+ text: string;
7314
+ anchorId: string;
7315
+ }[];
7316
+ wikiLinks?: {
7317
+ raw: string;
7318
+ target: string;
7319
+ displayText?: string;
7320
+ }[];
7321
+ mentions?: {
7322
+ username: string;
7323
+ }[];
7324
+ codeBlockLanguages?: string[];
7325
+ rawSpaceLinks?: string[];
7326
+ };
7327
+ renderedAst?: unknown;
7328
+ rendererVersion?: string;
7329
+ parentRevisionId?: string | null;
7330
+ /** @enum {string} */
7331
+ type?: "snapshot" | "incremental";
7332
+ savedBy?: string | {
7333
+ _id: string;
7334
+ id?: string;
7335
+ username: string;
7336
+ name: string;
7337
+ /** Format: email */
7338
+ email: string;
7339
+ image?: string | null;
7340
+ createdAt: string;
7341
+ } | null;
7342
+ contributors?: (string | {
7343
+ _id: string;
7344
+ id?: string;
7345
+ username: string;
7346
+ name: string;
7347
+ /** Format: email */
7348
+ email: string;
7349
+ image?: string | null;
7350
+ createdAt: string;
7351
+ })[];
7352
+ message?: string;
7353
+ /** @enum {string} */
7354
+ editVia?: "web" | "oauth" | "pat";
7355
+ };
7356
+ redirectTo?: string | null;
7357
+ /** @enum {string|null} */
7358
+ status?: "wip" | "published" | "deleted" | "deprecated" | "draft" | null;
7359
+ grant?: number;
7360
+ grantedUsers?: string[];
7361
+ creator?: string | {
7362
+ _id: string;
7363
+ id?: string;
7364
+ username: string;
7365
+ name: string;
7366
+ /** Format: email */
7367
+ email: string;
7368
+ image?: string | null;
7369
+ createdAt: string;
7370
+ } | null;
7371
+ lastUpdateUser?: string | {
7372
+ _id: string;
7373
+ id?: string;
7374
+ username: string;
7375
+ name: string;
7376
+ /** Format: email */
7377
+ email: string;
7378
+ image?: string | null;
7379
+ createdAt: string;
7380
+ } | null;
7381
+ liker?: string[];
7382
+ /** @default 0 */
7383
+ commentCount: number;
7384
+ extended?: {
7385
+ [key: string]: unknown;
7386
+ };
7387
+ createdAt: string;
7388
+ updatedAt?: string;
7389
+ currentRevision?: string | null;
7390
+ yjsCheckpointAt?: string | null;
7391
+ latestRevision?: string;
7392
+ likerCount?: number;
7393
+ seenUsersCount?: number;
7394
+ };
6474
7395
  };
6475
7396
  };
6476
7397
  };
6477
- /** @description Invalid page_id */
7398
+ /** @description PAGE_REVERT_FAILED */
6478
7399
  400: {
6479
7400
  headers: {
6480
7401
  [name: string]: unknown;
@@ -6482,8 +7403,7 @@ interface paths {
6482
7403
  content: {
6483
7404
  "application/json": {
6484
7405
  error: {
6485
- /** @enum {string} */
6486
- code: "INVALID_PAGE_ID";
7406
+ code: string;
6487
7407
  message: string;
6488
7408
  };
6489
7409
  };
@@ -6524,14 +7444,13 @@ interface paths {
6524
7444
  };
6525
7445
  };
6526
7446
  };
6527
- post?: never;
6528
7447
  delete?: never;
6529
7448
  options?: never;
6530
7449
  head?: never;
6531
7450
  patch?: never;
6532
7451
  trace?: never;
6533
7452
  };
6534
- "/pages/revert": {
7453
+ "/pages/revert-to-revision": {
6535
7454
  parameters: {
6536
7455
  query?: never;
6537
7456
  header?: never;
@@ -6540,7 +7459,7 @@ interface paths {
6540
7459
  };
6541
7460
  get?: never;
6542
7461
  put?: never;
6543
- /** Revert a soft-deleted page (restore from /trash/...) */
7462
+ /** Revert a page to one of its past revisions (non-destructive stacks a new revision) */
6544
7463
  post: {
6545
7464
  parameters: {
6546
7465
  query?: never;
@@ -6552,11 +7471,12 @@ interface paths {
6552
7471
  content: {
6553
7472
  "application/json": {
6554
7473
  page_id: string;
7474
+ revision_id: string;
6555
7475
  };
6556
7476
  };
6557
7477
  };
6558
7478
  responses: {
6559
- /** @description The restored page */
7479
+ /** @description The page with the reverted body as its new latest revision */
6560
7480
  200: {
6561
7481
  headers: {
6562
7482
  [name: string]: unknown;
@@ -6598,6 +7518,7 @@ interface paths {
6598
7518
  username: string;
6599
7519
  }[];
6600
7520
  codeBlockLanguages?: string[];
7521
+ rawSpaceLinks?: string[];
6601
7522
  };
6602
7523
  renderedAst?: unknown;
6603
7524
  rendererVersion?: string;
@@ -6670,7 +7591,7 @@ interface paths {
6670
7591
  };
6671
7592
  };
6672
7593
  };
6673
- /** @description PAGE_REVERT_FAILED */
7594
+ /** @description PAGE_REVERT_TO_REVISION_FAILED (e.g. the revision does not belong to the page) */
6674
7595
  400: {
6675
7596
  headers: {
6676
7597
  [name: string]: unknown;
@@ -6796,6 +7717,7 @@ interface paths {
6796
7717
  username: string;
6797
7718
  }[];
6798
7719
  codeBlockLanguages?: string[];
7720
+ rawSpaceLinks?: string[];
6799
7721
  };
6800
7722
  renderedAst?: unknown;
6801
7723
  rendererVersion?: string;
@@ -7091,6 +8013,20 @@ interface paths {
7091
8013
  };
7092
8014
  };
7093
8015
  };
8016
+ /** @description Per-user rate limit exceeded */
8017
+ 429: {
8018
+ headers: {
8019
+ [name: string]: unknown;
8020
+ };
8021
+ content: {
8022
+ "application/json": {
8023
+ /** @enum {string} */
8024
+ error: "rate_limited";
8025
+ message: string;
8026
+ retryAfterSeconds: number;
8027
+ };
8028
+ };
8029
+ };
7094
8030
  /** @description Renderer pipeline failure */
7095
8031
  500: {
7096
8032
  headers: {
@@ -7907,6 +8843,7 @@ interface paths {
7907
8843
  fileSize: number;
7908
8844
  createdAt: string;
7909
8845
  url: string;
8846
+ originalUrl: string;
7910
8847
  inUse: boolean;
7911
8848
  }[];
7912
8849
  past: {
@@ -7934,6 +8871,7 @@ interface paths {
7934
8871
  fileSize: number;
7935
8872
  createdAt: string;
7936
8873
  url: string;
8874
+ originalUrl: string;
7937
8875
  inUse: boolean;
7938
8876
  };
7939
8877
  referencingRevisions: {
@@ -8082,6 +9020,7 @@ interface paths {
8082
9020
  fileSize: number;
8083
9021
  createdAt: string;
8084
9022
  url: string;
9023
+ originalUrl: string;
8085
9024
  inUse: boolean;
8086
9025
  }[];
8087
9026
  };
@@ -8204,6 +9143,7 @@ interface paths {
8204
9143
  fileSize: number;
8205
9144
  createdAt: string;
8206
9145
  url: string;
9146
+ originalUrl: string;
8207
9147
  inUse: boolean;
8208
9148
  };
8209
9149
  url: string;
@@ -8509,6 +9449,7 @@ interface paths {
8509
9449
  fileSize: number;
8510
9450
  createdAt: string;
8511
9451
  url: string;
9452
+ originalUrl: string;
8512
9453
  };
8513
9454
  };
8514
9455
  };
@@ -8780,6 +9721,7 @@ interface paths {
8780
9721
  username: string;
8781
9722
  }[];
8782
9723
  codeBlockLanguages?: string[];
9724
+ rawSpaceLinks?: string[];
8783
9725
  };
8784
9726
  renderedAst?: unknown;
8785
9727
  rendererVersion?: string;
@@ -9509,6 +10451,7 @@ interface paths {
9509
10451
  /** @enum {string} */
9510
10452
  registrationMode: "Open" | "Resricted" | "Closed";
9511
10453
  registrationWhiteList: string[];
10454
+ linkCardEnabled: boolean;
9512
10455
  };
9513
10456
  };
9514
10457
  };
@@ -9578,6 +10521,7 @@ interface paths {
9578
10521
  /** @enum {string} */
9579
10522
  registrationMode: "Open" | "Resricted" | "Closed";
9580
10523
  registrationWhiteList: string[];
10524
+ linkCardEnabled: boolean;
9581
10525
  };
9582
10526
  };
9583
10527
  };
@@ -9592,6 +10536,7 @@ interface paths {
9592
10536
  /** @enum {string} */
9593
10537
  registrationMode: "Open" | "Resricted" | "Closed";
9594
10538
  registrationWhiteList: string[];
10539
+ linkCardEnabled: boolean;
9595
10540
  };
9596
10541
  };
9597
10542
  };
@@ -10481,20 +11426,169 @@ interface paths {
10481
11426
  };
10482
11427
  cookie?: never;
10483
11428
  };
10484
- requestBody?: never;
11429
+ requestBody?: never;
11430
+ responses: {
11431
+ /** @description User removed */
11432
+ 200: {
11433
+ headers: {
11434
+ [name: string]: unknown;
11435
+ };
11436
+ content: {
11437
+ "application/json": {
11438
+ deletedId: string;
11439
+ };
11440
+ };
11441
+ };
11442
+ /** @description Invalid id */
11443
+ 400: {
11444
+ headers: {
11445
+ [name: string]: unknown;
11446
+ };
11447
+ content: {
11448
+ "application/json": {
11449
+ error: {
11450
+ /** @enum {string} */
11451
+ code: "VALIDATION_ERROR";
11452
+ message: string;
11453
+ details?: {
11454
+ fieldErrors: {
11455
+ [key: string]: string[];
11456
+ };
11457
+ formErrors: string[];
11458
+ };
11459
+ };
11460
+ };
11461
+ };
11462
+ };
11463
+ /** @description Authentication required */
11464
+ 401: {
11465
+ headers: {
11466
+ [name: string]: unknown;
11467
+ };
11468
+ content: {
11469
+ "application/json": {
11470
+ error: {
11471
+ /** @enum {string} */
11472
+ code: "AUTHENTICATION_REQUIRED";
11473
+ /** @enum {string} */
11474
+ message: "Authentication is required";
11475
+ redirectTo?: string;
11476
+ };
11477
+ };
11478
+ };
11479
+ };
11480
+ /** @description Admin permission required */
11481
+ 403: {
11482
+ headers: {
11483
+ [name: string]: unknown;
11484
+ };
11485
+ content: {
11486
+ "application/json": {
11487
+ error: {
11488
+ /** @enum {string} */
11489
+ code: "ADMIN_REQUIRED";
11490
+ /** @enum {string} */
11491
+ message: "Admin permission required";
11492
+ redirectTo?: string;
11493
+ };
11494
+ };
11495
+ };
11496
+ };
11497
+ /** @description User not found */
11498
+ 404: {
11499
+ headers: {
11500
+ [name: string]: unknown;
11501
+ };
11502
+ content: {
11503
+ "application/json": {
11504
+ error: {
11505
+ /** @enum {string} */
11506
+ code: "NOT_FOUND";
11507
+ message: string;
11508
+ };
11509
+ };
11510
+ };
11511
+ };
11512
+ /** @description User is not in the INVITED status and cannot be physically removed */
11513
+ 409: {
11514
+ headers: {
11515
+ [name: string]: unknown;
11516
+ };
11517
+ content: {
11518
+ "application/json": {
11519
+ error: {
11520
+ /** @enum {string} */
11521
+ code: "CONFLICT";
11522
+ message: string;
11523
+ };
11524
+ };
11525
+ };
11526
+ };
11527
+ /** @description Internal server error */
11528
+ 500: {
11529
+ headers: {
11530
+ [name: string]: unknown;
11531
+ };
11532
+ content: {
11533
+ "application/json": {
11534
+ error: {
11535
+ /** @enum {string} */
11536
+ code: "INTERNAL_ERROR";
11537
+ /** @enum {string} */
11538
+ message: "Internal server error";
11539
+ };
11540
+ };
11541
+ };
11542
+ };
11543
+ };
11544
+ };
11545
+ options?: never;
11546
+ head?: never;
11547
+ /** Update a user's name and email */
11548
+ patch: {
11549
+ parameters: {
11550
+ query?: never;
11551
+ header?: never;
11552
+ path: {
11553
+ id: string;
11554
+ };
11555
+ cookie?: never;
11556
+ };
11557
+ requestBody?: {
11558
+ content: {
11559
+ "application/json": {
11560
+ name: string;
11561
+ /** Format: email */
11562
+ email: string;
11563
+ };
11564
+ };
11565
+ };
10485
11566
  responses: {
10486
- /** @description User removed */
11567
+ /** @description Updated user */
10487
11568
  200: {
10488
11569
  headers: {
10489
11570
  [name: string]: unknown;
10490
11571
  };
10491
11572
  content: {
10492
11573
  "application/json": {
10493
- deletedId: string;
11574
+ user: {
11575
+ _id: string;
11576
+ id?: string;
11577
+ username: string;
11578
+ name: string;
11579
+ /** Format: email */
11580
+ email: string;
11581
+ image?: string | null;
11582
+ introduction?: string;
11583
+ createdAt: string;
11584
+ admin?: boolean;
11585
+ /** @enum {integer} */
11586
+ status?: 1 | 2 | 3 | 4 | 5;
11587
+ };
10494
11588
  };
10495
11589
  };
10496
11590
  };
10497
- /** @description Invalid id */
11591
+ /** @description Validation error */
10498
11592
  400: {
10499
11593
  headers: {
10500
11594
  [name: string]: unknown;
@@ -10564,7 +11658,7 @@ interface paths {
10564
11658
  };
10565
11659
  };
10566
11660
  };
10567
- /** @description User is not in the INVITED status and cannot be physically removed */
11661
+ /** @description Email already in use by another user */
10568
11662
  409: {
10569
11663
  headers: {
10570
11664
  [name: string]: unknown;
@@ -10597,10 +11691,18 @@ interface paths {
10597
11691
  };
10598
11692
  };
10599
11693
  };
10600
- options?: never;
10601
- head?: never;
10602
- /** Update a user's name and email */
10603
- patch: {
11694
+ trace?: never;
11695
+ };
11696
+ "/admin/users/{id}/admin": {
11697
+ parameters: {
11698
+ query?: never;
11699
+ header?: never;
11700
+ path?: never;
11701
+ cookie?: never;
11702
+ };
11703
+ get?: never;
11704
+ /** Grant admin permission to a user */
11705
+ put: {
10604
11706
  parameters: {
10605
11707
  query?: never;
10606
11708
  header?: never;
@@ -10609,15 +11711,7 @@ interface paths {
10609
11711
  };
10610
11712
  cookie?: never;
10611
11713
  };
10612
- requestBody?: {
10613
- content: {
10614
- "application/json": {
10615
- name: string;
10616
- /** Format: email */
10617
- email: string;
10618
- };
10619
- };
10620
- };
11714
+ requestBody?: never;
10621
11715
  responses: {
10622
11716
  /** @description Updated user */
10623
11717
  200: {
@@ -10643,7 +11737,7 @@ interface paths {
10643
11737
  };
10644
11738
  };
10645
11739
  };
10646
- /** @description Validation error */
11740
+ /** @description Invalid id */
10647
11741
  400: {
10648
11742
  headers: {
10649
11743
  [name: string]: unknown;
@@ -10713,21 +11807,6 @@ interface paths {
10713
11807
  };
10714
11808
  };
10715
11809
  };
10716
- /** @description Email already in use by another user */
10717
- 409: {
10718
- headers: {
10719
- [name: string]: unknown;
10720
- };
10721
- content: {
10722
- "application/json": {
10723
- error: {
10724
- /** @enum {string} */
10725
- code: "CONFLICT";
10726
- message: string;
10727
- };
10728
- };
10729
- };
10730
- };
10731
11810
  /** @description Internal server error */
10732
11811
  500: {
10733
11812
  headers: {
@@ -10746,18 +11825,9 @@ interface paths {
10746
11825
  };
10747
11826
  };
10748
11827
  };
10749
- trace?: never;
10750
- };
10751
- "/admin/users/{id}/admin": {
10752
- parameters: {
10753
- query?: never;
10754
- header?: never;
10755
- path?: never;
10756
- cookie?: never;
10757
- };
10758
- get?: never;
10759
- /** Grant admin permission to a user */
10760
- put: {
11828
+ post?: never;
11829
+ /** Revoke admin permission from a user */
11830
+ delete: {
10761
11831
  parameters: {
10762
11832
  query?: never;
10763
11833
  header?: never;
@@ -10880,9 +11950,21 @@ interface paths {
10880
11950
  };
10881
11951
  };
10882
11952
  };
10883
- post?: never;
10884
- /** Revoke admin permission from a user */
10885
- delete: {
11953
+ options?: never;
11954
+ head?: never;
11955
+ patch?: never;
11956
+ trace?: never;
11957
+ };
11958
+ "/admin/users/{id}/status/active": {
11959
+ parameters: {
11960
+ query?: never;
11961
+ header?: never;
11962
+ path?: never;
11963
+ cookie?: never;
11964
+ };
11965
+ get?: never;
11966
+ /** Activate a user (status -> ACTIVE) */
11967
+ put: {
10886
11968
  parameters: {
10887
11969
  query?: never;
10888
11970
  header?: never;
@@ -11005,12 +12087,14 @@ interface paths {
11005
12087
  };
11006
12088
  };
11007
12089
  };
12090
+ post?: never;
12091
+ delete?: never;
11008
12092
  options?: never;
11009
12093
  head?: never;
11010
12094
  patch?: never;
11011
12095
  trace?: never;
11012
12096
  };
11013
- "/admin/users/{id}/status/active": {
12097
+ "/admin/users/{id}/status/suspended": {
11014
12098
  parameters: {
11015
12099
  query?: never;
11016
12100
  header?: never;
@@ -11018,7 +12102,7 @@ interface paths {
11018
12102
  cookie?: never;
11019
12103
  };
11020
12104
  get?: never;
11021
- /** Activate a user (status -> ACTIVE) */
12105
+ /** Suspend a user (status -> SUSPENDED) */
11022
12106
  put: {
11023
12107
  parameters: {
11024
12108
  query?: never;
@@ -11149,7 +12233,7 @@ interface paths {
11149
12233
  patch?: never;
11150
12234
  trace?: never;
11151
12235
  };
11152
- "/admin/users/{id}/status/suspended": {
12236
+ "/admin/users/{id}/reset-password": {
11153
12237
  parameters: {
11154
12238
  query?: never;
11155
12239
  header?: never;
@@ -11157,8 +12241,9 @@ interface paths {
11157
12241
  cookie?: never;
11158
12242
  };
11159
12243
  get?: never;
11160
- /** Suspend a user (status -> SUSPENDED) */
11161
- put: {
12244
+ put?: never;
12245
+ /** Reset a user's password to a random value (returns plaintext) */
12246
+ post: {
11162
12247
  parameters: {
11163
12248
  query?: never;
11164
12249
  header?: never;
@@ -11169,7 +12254,7 @@ interface paths {
11169
12254
  };
11170
12255
  requestBody?: never;
11171
12256
  responses: {
11172
- /** @description Updated user */
12257
+ /** @description Updated user + new plaintext password */
11173
12258
  200: {
11174
12259
  headers: {
11175
12260
  [name: string]: unknown;
@@ -11190,6 +12275,7 @@ interface paths {
11190
12275
  /** @enum {integer} */
11191
12276
  status?: 1 | 2 | 3 | 4 | 5;
11192
12277
  };
12278
+ newPassword: string;
11193
12279
  };
11194
12280
  };
11195
12281
  };
@@ -11281,14 +12367,13 @@ interface paths {
11281
12367
  };
11282
12368
  };
11283
12369
  };
11284
- post?: never;
11285
12370
  delete?: never;
11286
12371
  options?: never;
11287
12372
  head?: never;
11288
12373
  patch?: never;
11289
12374
  trace?: never;
11290
12375
  };
11291
- "/admin/users/{id}/reset-password": {
12376
+ "/admin/users/{id}/resend-invite": {
11292
12377
  parameters: {
11293
12378
  query?: never;
11294
12379
  header?: never;
@@ -11297,7 +12382,7 @@ interface paths {
11297
12382
  };
11298
12383
  get?: never;
11299
12384
  put?: never;
11300
- /** Reset a user's password to a random value (returns plaintext) */
12385
+ /** Re-issue an invite token and resend the invitation email (INVITED status only) */
11301
12386
  post: {
11302
12387
  parameters: {
11303
12388
  query?: never;
@@ -11309,7 +12394,7 @@ interface paths {
11309
12394
  };
11310
12395
  requestBody?: never;
11311
12396
  responses: {
11312
- /** @description Updated user + new plaintext password */
12397
+ /** @description Invitation email resent; returns the (unchanged) user */
11313
12398
  200: {
11314
12399
  headers: {
11315
12400
  [name: string]: unknown;
@@ -11330,7 +12415,6 @@ interface paths {
11330
12415
  /** @enum {integer} */
11331
12416
  status?: 1 | 2 | 3 | 4 | 5;
11332
12417
  };
11333
- newPassword: string;
11334
12418
  };
11335
12419
  };
11336
12420
  };
@@ -11404,7 +12488,22 @@ interface paths {
11404
12488
  };
11405
12489
  };
11406
12490
  };
11407
- /** @description Internal server error */
12491
+ /** @description User is not in the INVITED status, so there is no pending invite to resend */
12492
+ 409: {
12493
+ headers: {
12494
+ [name: string]: unknown;
12495
+ };
12496
+ content: {
12497
+ "application/json": {
12498
+ error: {
12499
+ /** @enum {string} */
12500
+ code: "CONFLICT";
12501
+ message: string;
12502
+ };
12503
+ };
12504
+ };
12505
+ };
12506
+ /** @description Internal server error (e.g. the invitation email failed to send) */
11408
12507
  500: {
11409
12508
  headers: {
11410
12509
  [name: string]: unknown;
@@ -11705,15 +12804,22 @@ interface paths {
11705
12804
  name: string;
11706
12805
  version: string;
11707
12806
  requires?: string[];
12807
+ modelAccess?: string[];
11708
12808
  hasConfig: boolean;
11709
12809
  registers: string[];
11710
12810
  adminPlacement: {
11711
12811
  /** @enum {string} */
11712
- section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer";
12812
+ section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer" | "platform";
11713
12813
  label: string;
11714
12814
  icon?: string;
11715
12815
  };
11716
12816
  supportsHotReload: boolean;
12817
+ /**
12818
+ * @default active
12819
+ * @enum {string}
12820
+ */
12821
+ status: "active" | "failed";
12822
+ error?: string;
11717
12823
  }[];
11718
12824
  };
11719
12825
  };
@@ -12699,7 +13805,7 @@ interface components {
12699
13805
  };
12700
13806
  };
12701
13807
  /** @enum {string} */
12702
- ErrorCode: "AUTHENTICATION_REQUIRED" | "ADMIN_REQUIRED" | "THIRD_PARTY_AUTH_REQUIRED" | "USER_REGISTERED" | "USER_SUSPENDED" | "USER_INVITED" | "USER_NOT_ACTIVE" | "EMAIL_NOT_CONFIRMED" | "INTERNAL_ERROR" | "VALIDATION_ERROR" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "SERVICE_UNAVAILABLE" | "APPLICATION_NOT_INSTALLED" | "INVALID_PAGE_ID" | "PAGE_NOT_FOUND" | "PAGE_NOT_GRANTED" | "PAGE_REVISION_ERROR" | "INVALID_GRANT" | "COMMENT_NOT_FOUND" | "NOTIFICATION_NOT_FOUND" | "USER_NOT_FOUND" | "USER_EXISTS" | "USERNAME_TAKEN" | "EMAIL_TAKEN" | "EMAIL_NOT_ALLOWED" | "INVALID_ACTIVATION_TOKEN" | "INVALID_INVITE_TOKEN" | "INVITE_ALREADY_ACCEPTED" | "INVALID_RESET_TOKEN" | "INVALID_EMAIL_CHANGE_TOKEN" | "INVALID_CREDENTIALS" | "REFRESH_TOKEN_REQUIRED" | "REGISTRATION_CLOSED" | "ENCRYPTION_NOT_CONFIGURED" | "MAIL_TEST_FAILED" | "PLUGIN_NOT_FOUND" | "PLUGIN_CONFIG_VALIDATION_FAILED";
13808
+ ErrorCode: "AUTHENTICATION_REQUIRED" | "ADMIN_REQUIRED" | "THIRD_PARTY_AUTH_REQUIRED" | "USER_REGISTERED" | "USER_SUSPENDED" | "USER_INVITED" | "USER_NOT_ACTIVE" | "EMAIL_NOT_CONFIRMED" | "INTERNAL_ERROR" | "VALIDATION_ERROR" | "INVALID_REQUEST" | "NOT_FOUND" | "CONFLICT" | "SERVICE_UNAVAILABLE" | "APPLICATION_NOT_INSTALLED" | "INVALID_PAGE_ID" | "PAGE_NOT_FOUND" | "PAGE_NOT_GRANTED" | "PAGE_REVISION_ERROR" | "PAGE_TWIN_EXISTS" | "INVALID_GRANT" | "COMMENT_NOT_FOUND" | "NOTIFICATION_NOT_FOUND" | "USER_NOT_FOUND" | "USER_EXISTS" | "USERNAME_TAKEN" | "EMAIL_TAKEN" | "EMAIL_NOT_ALLOWED" | "INVALID_ACTIVATION_TOKEN" | "INVALID_INVITE_TOKEN" | "INVITE_ALREADY_ACCEPTED" | "INVALID_RESET_TOKEN" | "INVALID_EMAIL_CHANGE_TOKEN" | "INVALID_CREDENTIALS" | "REFRESH_TOKEN_REQUIRED" | "REGISTRATION_CLOSED" | "ENCRYPTION_NOT_CONFIGURED" | "MAIL_TEST_FAILED" | "PLUGIN_NOT_FOUND" | "PLUGIN_CONFIG_VALIDATION_FAILED";
12703
13809
  ApplicationNotInstalledError: {
12704
13810
  error: {
12705
13811
  /** @enum {string} */
@@ -12880,6 +13986,12 @@ interface components {
12880
13986
  /** @enum {string} */
12881
13987
  status: "approved" | "denied";
12882
13988
  };
13989
+ ClientInfoResponse: {
13990
+ clientId: string;
13991
+ name: string;
13992
+ firstParty: boolean;
13993
+ trusted: boolean;
13994
+ };
12883
13995
  UserPublic: {
12884
13996
  _id: string;
12885
13997
  id?: string;
@@ -12939,6 +14051,7 @@ interface components {
12939
14051
  username: string;
12940
14052
  }[];
12941
14053
  codeBlockLanguages?: string[];
14054
+ rawSpaceLinks?: string[];
12942
14055
  };
12943
14056
  renderedAst?: unknown;
12944
14057
  rendererVersion?: string;
@@ -13043,6 +14156,7 @@ interface components {
13043
14156
  username: string;
13044
14157
  }[];
13045
14158
  codeBlockLanguages?: string[];
14159
+ rawSpaceLinks?: string[];
13046
14160
  };
13047
14161
  renderedAst?: unknown;
13048
14162
  rendererVersion?: string;
@@ -13144,6 +14258,7 @@ interface components {
13144
14258
  username: string;
13145
14259
  }[];
13146
14260
  codeBlockLanguages?: string[];
14261
+ rawSpaceLinks?: string[];
13147
14262
  };
13148
14263
  renderedAst?: unknown;
13149
14264
  rendererVersion?: string;
@@ -13189,6 +14304,7 @@ interface components {
13189
14304
  username: string;
13190
14305
  }[];
13191
14306
  codeBlockLanguages?: string[];
14307
+ rawSpaceLinks?: string[];
13192
14308
  };
13193
14309
  TocEntry: {
13194
14310
  level: number;
@@ -13227,6 +14343,7 @@ interface components {
13227
14343
  * @enum {string}
13228
14344
  */
13229
14345
  order: "asc" | "desc";
14346
+ revision_id?: string;
13230
14347
  };
13231
14348
  ListPagesResponse: {
13232
14349
  pages: {
@@ -13264,6 +14381,7 @@ interface components {
13264
14381
  username: string;
13265
14382
  }[];
13266
14383
  codeBlockLanguages?: string[];
14384
+ rawSpaceLinks?: string[];
13267
14385
  };
13268
14386
  renderedAst?: unknown;
13269
14387
  rendererVersion?: string;
@@ -13373,6 +14491,112 @@ interface components {
13373
14491
  username: string;
13374
14492
  }[];
13375
14493
  codeBlockLanguages?: string[];
14494
+ rawSpaceLinks?: string[];
14495
+ };
14496
+ renderedAst?: unknown;
14497
+ rendererVersion?: string;
14498
+ parentRevisionId?: string | null;
14499
+ /** @enum {string} */
14500
+ type?: "snapshot" | "incremental";
14501
+ savedBy?: string | {
14502
+ _id: string;
14503
+ id?: string;
14504
+ username: string;
14505
+ name: string;
14506
+ /** Format: email */
14507
+ email: string;
14508
+ image?: string | null;
14509
+ createdAt: string;
14510
+ } | null;
14511
+ contributors?: (string | {
14512
+ _id: string;
14513
+ id?: string;
14514
+ username: string;
14515
+ name: string;
14516
+ /** Format: email */
14517
+ email: string;
14518
+ image?: string | null;
14519
+ createdAt: string;
14520
+ })[];
14521
+ message?: string;
14522
+ /** @enum {string} */
14523
+ editVia?: "web" | "oauth" | "pat";
14524
+ };
14525
+ redirectTo?: string | null;
14526
+ /** @enum {string|null} */
14527
+ status?: "wip" | "published" | "deleted" | "deprecated" | "draft" | null;
14528
+ grant?: number;
14529
+ grantedUsers?: string[];
14530
+ creator?: string | {
14531
+ _id: string;
14532
+ id?: string;
14533
+ username: string;
14534
+ name: string;
14535
+ /** Format: email */
14536
+ email: string;
14537
+ image?: string | null;
14538
+ createdAt: string;
14539
+ } | null;
14540
+ lastUpdateUser?: string | {
14541
+ _id: string;
14542
+ id?: string;
14543
+ username: string;
14544
+ name: string;
14545
+ /** Format: email */
14546
+ email: string;
14547
+ image?: string | null;
14548
+ createdAt: string;
14549
+ } | null;
14550
+ liker?: string[];
14551
+ /** @default 0 */
14552
+ commentCount: number;
14553
+ extended?: {
14554
+ [key: string]: unknown;
14555
+ };
14556
+ createdAt: string;
14557
+ updatedAt?: string;
14558
+ currentRevision?: string | null;
14559
+ yjsCheckpointAt?: string | null;
14560
+ latestRevision?: string;
14561
+ likerCount?: number;
14562
+ seenUsersCount?: number;
14563
+ } | null;
14564
+ contentPage?: {
14565
+ _id: string;
14566
+ path: string;
14567
+ revision?: string | {
14568
+ _id: string;
14569
+ path: string;
14570
+ body: string;
14571
+ /** @default markdown */
14572
+ format: string;
14573
+ author?: {
14574
+ _id: string;
14575
+ id?: string;
14576
+ username: string;
14577
+ name: string;
14578
+ /** Format: email */
14579
+ email: string;
14580
+ image?: string | null;
14581
+ createdAt: string;
14582
+ } | null;
14583
+ createdAt: string;
14584
+ meta?: {
14585
+ toc?: {
14586
+ level: number;
14587
+ text: string;
14588
+ anchorId: string;
14589
+ }[];
14590
+ wikiLinks?: {
14591
+ raw: string;
14592
+ target: string;
14593
+ displayText?: string;
14594
+ }[];
14595
+ mentions?: {
14596
+ username: string;
14597
+ }[];
14598
+ codeBlockLanguages?: string[];
14599
+ rawSpaceLinks?: string[];
13376
14600
  };
13377
14601
  renderedAst?: unknown;
13378
14602
  rendererVersion?: string;
@@ -13479,6 +14703,7 @@ interface components {
13479
14703
  username: string;
13480
14704
  }[];
13481
14705
  codeBlockLanguages?: string[];
14706
+ rawSpaceLinks?: string[];
13482
14707
  };
13483
14708
  renderedAst?: unknown;
13484
14709
  rendererVersion?: string;
@@ -13635,6 +14860,7 @@ interface components {
13635
14860
  username: string;
13636
14861
  }[];
13637
14862
  codeBlockLanguages?: string[];
14863
+ rawSpaceLinks?: string[];
13638
14864
  };
13639
14865
  renderedAst?: unknown;
13640
14866
  rendererVersion?: string;
@@ -13729,6 +14955,7 @@ interface components {
13729
14955
  fileSize: number;
13730
14956
  createdAt: string;
13731
14957
  url: string;
14958
+ originalUrl: string;
13732
14959
  inUse: boolean;
13733
14960
  };
13734
14961
  AttachmentMeta: {
@@ -13755,6 +14982,7 @@ interface components {
13755
14982
  fileSize: number;
13756
14983
  createdAt: string;
13757
14984
  url: string;
14985
+ originalUrl: string;
13758
14986
  };
13759
14987
  ListAttachmentsResponse: {
13760
14988
  attachments: {
@@ -13781,6 +15009,7 @@ interface components {
13781
15009
  fileSize: number;
13782
15010
  createdAt: string;
13783
15011
  url: string;
15012
+ originalUrl: string;
13784
15013
  inUse: boolean;
13785
15014
  }[];
13786
15015
  };
@@ -13809,6 +15038,7 @@ interface components {
13809
15038
  fileSize: number;
13810
15039
  createdAt: string;
13811
15040
  url: string;
15041
+ originalUrl: string;
13812
15042
  inUse: boolean;
13813
15043
  };
13814
15044
  referencingRevisions: {
@@ -13856,6 +15086,7 @@ interface components {
13856
15086
  fileSize: number;
13857
15087
  createdAt: string;
13858
15088
  url: string;
15089
+ originalUrl: string;
13859
15090
  inUse: boolean;
13860
15091
  }[];
13861
15092
  past: {
@@ -13883,6 +15114,7 @@ interface components {
13883
15114
  fileSize: number;
13884
15115
  createdAt: string;
13885
15116
  url: string;
15117
+ originalUrl: string;
13886
15118
  inUse: boolean;
13887
15119
  };
13888
15120
  referencingRevisions: {
@@ -14224,30 +15456,44 @@ interface components {
14224
15456
  name: string;
14225
15457
  version: string;
14226
15458
  requires?: string[];
15459
+ modelAccess?: string[];
14227
15460
  hasConfig: boolean;
14228
15461
  registers: string[];
14229
15462
  adminPlacement: {
14230
15463
  /** @enum {string} */
14231
- section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer";
15464
+ section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer" | "platform";
14232
15465
  label: string;
14233
15466
  icon?: string;
14234
15467
  };
14235
15468
  supportsHotReload: boolean;
15469
+ /**
15470
+ * @default active
15471
+ * @enum {string}
15472
+ */
15473
+ status: "active" | "failed";
15474
+ error?: string;
14236
15475
  };
14237
15476
  ListPluginsResponse: {
14238
15477
  plugins: {
14239
15478
  name: string;
14240
15479
  version: string;
14241
15480
  requires?: string[];
15481
+ modelAccess?: string[];
14242
15482
  hasConfig: boolean;
14243
15483
  registers: string[];
14244
15484
  adminPlacement: {
14245
15485
  /** @enum {string} */
14246
- section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer";
15486
+ section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer" | "platform";
14247
15487
  label: string;
14248
15488
  icon?: string;
14249
15489
  };
14250
15490
  supportsHotReload: boolean;
15491
+ /**
15492
+ * @default active
15493
+ * @enum {string}
15494
+ */
15495
+ status: "active" | "failed";
15496
+ error?: string;
14251
15497
  }[];
14252
15498
  };
14253
15499
  PluginConfigResponse: {
@@ -14300,6 +15546,8 @@ interface components {
14300
15546
  }[];
14301
15547
  };
14302
15548
  };
15549
+ /** @enum {string} */
15550
+ Capability: "oauth" | "oauth:auth-code" | "oauth:device" | "oauth:pkce" | "pat" | "pages" | "comments" | "bookmarks" | "attachments" | "notifications" | "search" | "collab" | "collab:redis" | "link-card";
14303
15551
  };
14304
15552
  responses: never;
14305
15553
  parameters: never;