@crowi/api-contract 2.0.0-alpha.0 → 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.
@@ -32,6 +32,11 @@ interface paths {
32
32
  "application/json": {
33
33
  title: string | null;
34
34
  confidential: string | null;
35
+ version: string;
36
+ apiVersion: string;
37
+ capabilities: components["schemas"]["Capability"][];
38
+ canSelfRegister: boolean;
39
+ rendererStylesheets: string[];
35
40
  };
36
41
  };
37
42
  };
@@ -1112,7 +1117,7 @@ interface paths {
1112
1117
  };
1113
1118
  };
1114
1119
  responses: {
1115
- /** @description Password updated */
1120
+ /** @description Password updated; earlier sessions revoked and a fresh token pair issued */
1116
1121
  200: {
1117
1122
  headers: {
1118
1123
  [name: string]: unknown;
@@ -1122,6 +1127,9 @@ interface paths {
1122
1127
  /** @enum {string} */
1123
1128
  status: "ok";
1124
1129
  message: string;
1130
+ accessToken: string;
1131
+ refreshToken: string;
1132
+ expiresIn: number;
1125
1133
  };
1126
1134
  };
1127
1135
  };
@@ -1224,6 +1232,7 @@ interface paths {
1224
1232
  username: string;
1225
1233
  }[];
1226
1234
  codeBlockLanguages?: string[];
1235
+ rawSpaceLinks?: string[];
1227
1236
  };
1228
1237
  renderedAst?: unknown;
1229
1238
  rendererVersion?: string;
@@ -2149,6 +2158,64 @@ interface paths {
2149
2158
  patch?: never;
2150
2159
  trace?: never;
2151
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
+ };
2152
2219
  "/user/{username}": {
2153
2220
  parameters: {
2154
2221
  query?: never;
@@ -2226,6 +2293,7 @@ interface paths {
2226
2293
  username: string;
2227
2294
  }[];
2228
2295
  codeBlockLanguages?: string[];
2296
+ rawSpaceLinks?: string[];
2229
2297
  };
2230
2298
  renderedAst?: unknown;
2231
2299
  rendererVersion?: string;
@@ -2332,6 +2400,7 @@ interface paths {
2332
2400
  username: string;
2333
2401
  }[];
2334
2402
  codeBlockLanguages?: string[];
2403
+ rawSpaceLinks?: string[];
2335
2404
  };
2336
2405
  renderedAst?: unknown;
2337
2406
  rendererVersion?: string;
@@ -2545,6 +2614,7 @@ interface paths {
2545
2614
  username: string;
2546
2615
  }[];
2547
2616
  codeBlockLanguages?: string[];
2617
+ rawSpaceLinks?: string[];
2548
2618
  };
2549
2619
  renderedAst?: unknown;
2550
2620
  rendererVersion?: string;
@@ -2762,6 +2832,7 @@ interface paths {
2762
2832
  username: string;
2763
2833
  }[];
2764
2834
  codeBlockLanguages?: string[];
2835
+ rawSpaceLinks?: string[];
2765
2836
  };
2766
2837
  renderedAst?: unknown;
2767
2838
  rendererVersion?: string;
@@ -2899,39 +2970,139 @@ interface paths {
2899
2970
  patch?: never;
2900
2971
  trace?: never;
2901
2972
  };
2902
- "/users": {
2973
+ "/user/{username}/subpages": {
2903
2974
  parameters: {
2904
2975
  query?: never;
2905
2976
  header?: never;
2906
2977
  path?: never;
2907
2978
  cookie?: never;
2908
2979
  };
2909
- /** List active users for the member directory (paginated, searchable) */
2980
+ /** Get pages under /user/{username}/ (path-rooted, fully recursive, paginated) */
2910
2981
  get: {
2911
2982
  parameters: {
2912
2983
  query?: {
2913
- q?: string;
2914
2984
  limit?: number;
2915
2985
  offset?: number | null;
2916
2986
  };
2917
2987
  header?: never;
2918
- path?: never;
2988
+ path: {
2989
+ username: string;
2990
+ };
2919
2991
  cookie?: never;
2920
2992
  };
2921
2993
  requestBody?: never;
2922
2994
  responses: {
2923
- /** @description Paginated active users, name-ascending */
2995
+ /** @description Paginated subpages (path-ascending, `_id` tie-break) */
2924
2996
  200: {
2925
2997
  headers: {
2926
2998
  [name: string]: unknown;
2927
2999
  };
2928
3000
  content: {
2929
3001
  "application/json": {
2930
- users: {
3002
+ pages: {
2931
3003
  _id: string;
2932
- username: string;
2933
- name: string;
2934
- 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;
2935
3106
  }[];
2936
3107
  pager: {
2937
3108
  prev: number | null;
@@ -2942,6 +3113,27 @@ interface paths {
2942
3113
  };
2943
3114
  };
2944
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
+ };
2945
3137
  /** @description Authentication required */
2946
3138
  401: {
2947
3139
  headers: {
@@ -2959,6 +3151,40 @@ interface paths {
2959
3151
  };
2960
3152
  };
2961
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
+ };
2962
3188
  /** @description Internal server error */
2963
3189
  500: {
2964
3190
  headers: {
@@ -2985,18 +3211,20 @@ interface paths {
2985
3211
  patch?: never;
2986
3212
  trace?: never;
2987
3213
  };
2988
- "/bookmarks": {
3214
+ "/users": {
2989
3215
  parameters: {
2990
3216
  query?: never;
2991
3217
  header?: never;
2992
3218
  path?: never;
2993
3219
  cookie?: never;
2994
3220
  };
2995
- /** Get bookmark of a page for the current user */
3221
+ /** List active users for the member directory (paginated, searchable) */
2996
3222
  get: {
2997
3223
  parameters: {
2998
- query: {
2999
- page_id: string;
3224
+ query?: {
3225
+ q?: string;
3226
+ limit?: number;
3227
+ offset?: number | null;
3000
3228
  };
3001
3229
  header?: never;
3002
3230
  path?: never;
@@ -3004,39 +3232,123 @@ interface paths {
3004
3232
  };
3005
3233
  requestBody?: never;
3006
3234
  responses: {
3007
- /** @description Bookmark for the page (or null when not bookmarked) */
3235
+ /** @description Paginated active users, name-ascending */
3008
3236
  200: {
3009
3237
  headers: {
3010
3238
  [name: string]: unknown;
3011
3239
  };
3012
3240
  content: {
3013
3241
  "application/json": {
3014
- bookmark: {
3242
+ users: {
3015
3243
  _id: string;
3016
- page: {
3017
- _id: string;
3018
- path: string;
3019
- revision?: string | {
3020
- _id: string;
3021
- path: string;
3022
- body: string;
3023
- /** @default markdown */
3024
- format: string;
3025
- author?: {
3026
- _id: string;
3027
- id?: string;
3028
- username: string;
3029
- name: string;
3030
- /** Format: email */
3031
- email: string;
3032
- image?: string | null;
3033
- createdAt: string;
3034
- } | null;
3035
- createdAt: string;
3036
- meta?: {
3037
- toc?: {
3038
- level: number;
3039
- 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;
3040
3352
  anchorId: string;
3041
3353
  }[];
3042
3354
  wikiLinks?: {
@@ -3048,6 +3360,7 @@ interface paths {
3048
3360
  username: string;
3049
3361
  }[];
3050
3362
  codeBlockLanguages?: string[];
3363
+ rawSpaceLinks?: string[];
3051
3364
  };
3052
3365
  renderedAst?: unknown;
3053
3366
  rendererVersion?: string;
@@ -3247,6 +3560,7 @@ interface paths {
3247
3560
  username: string;
3248
3561
  }[];
3249
3562
  codeBlockLanguages?: string[];
3563
+ rawSpaceLinks?: string[];
3250
3564
  };
3251
3565
  renderedAst?: unknown;
3252
3566
  rendererVersion?: string;
@@ -3532,6 +3846,7 @@ interface paths {
3532
3846
  username: string;
3533
3847
  }[];
3534
3848
  codeBlockLanguages?: string[];
3849
+ rawSpaceLinks?: string[];
3535
3850
  };
3536
3851
  renderedAst?: unknown;
3537
3852
  rendererVersion?: string;
@@ -3759,6 +4074,22 @@ interface paths {
3759
4074
  };
3760
4075
  };
3761
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
+ };
3762
4093
  };
3763
4094
  };
3764
4095
  put?: never;
@@ -3850,6 +4181,22 @@ interface paths {
3850
4181
  };
3851
4182
  };
3852
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
+ };
3853
4200
  };
3854
4201
  };
3855
4202
  put?: never;
@@ -4242,6 +4589,7 @@ interface paths {
4242
4589
  username: string;
4243
4590
  }[];
4244
4591
  codeBlockLanguages?: string[];
4592
+ rawSpaceLinks?: string[];
4245
4593
  };
4246
4594
  renderedAst?: unknown;
4247
4595
  rendererVersion?: string;
@@ -4391,6 +4739,7 @@ interface paths {
4391
4739
  username: string;
4392
4740
  }[];
4393
4741
  codeBlockLanguages?: string[];
4742
+ rawSpaceLinks?: string[];
4394
4743
  };
4395
4744
  renderedAst?: unknown;
4396
4745
  rendererVersion?: string;
@@ -4545,6 +4894,7 @@ interface paths {
4545
4894
  username: string;
4546
4895
  }[];
4547
4896
  codeBlockLanguages?: string[];
4897
+ rawSpaceLinks?: string[];
4548
4898
  };
4549
4899
  renderedAst?: unknown;
4550
4900
  rendererVersion?: string;
@@ -4666,6 +5016,22 @@ interface paths {
4666
5016
  };
4667
5017
  };
4668
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
+ };
4669
5035
  };
4670
5036
  };
4671
5037
  /** Update existing page */
@@ -4729,6 +5095,7 @@ interface paths {
4729
5095
  username: string;
4730
5096
  }[];
4731
5097
  codeBlockLanguages?: string[];
5098
+ rawSpaceLinks?: string[];
4732
5099
  };
4733
5100
  renderedAst?: unknown;
4734
5101
  rendererVersion?: string;
@@ -4925,6 +5292,7 @@ interface paths {
4925
5292
  username: string;
4926
5293
  }[];
4927
5294
  codeBlockLanguages?: string[];
5295
+ rawSpaceLinks?: string[];
4928
5296
  };
4929
5297
  renderedAst?: unknown;
4930
5298
  rendererVersion?: string;
@@ -4997,7 +5365,7 @@ interface paths {
4997
5365
  };
4998
5366
  };
4999
5367
  };
5000
- /** @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) */
5001
5369
  400: {
5002
5370
  headers: {
5003
5371
  [name: string]: unknown;
@@ -5090,6 +5458,7 @@ interface paths {
5090
5458
  username: string;
5091
5459
  }[];
5092
5460
  codeBlockLanguages?: string[];
5461
+ rawSpaceLinks?: string[];
5093
5462
  };
5094
5463
  renderedAst?: unknown;
5095
5464
  rendererVersion?: string;
@@ -5249,6 +5618,7 @@ interface paths {
5249
5618
  include_deleted?: boolean | null;
5250
5619
  sort?: "updatedAt" | "createdAt" | "path";
5251
5620
  order?: "asc" | "desc";
5621
+ revision_id?: string;
5252
5622
  };
5253
5623
  header?: never;
5254
5624
  path?: never;
@@ -5298,6 +5668,7 @@ interface paths {
5298
5668
  username: string;
5299
5669
  }[];
5300
5670
  codeBlockLanguages?: string[];
5671
+ rawSpaceLinks?: string[];
5301
5672
  };
5302
5673
  renderedAst?: unknown;
5303
5674
  rendererVersion?: string;
@@ -5407,6 +5778,7 @@ interface paths {
5407
5778
  username: string;
5408
5779
  }[];
5409
5780
  codeBlockLanguages?: string[];
5781
+ rawSpaceLinks?: string[];
5410
5782
  };
5411
5783
  renderedAst?: unknown;
5412
5784
  rendererVersion?: string;
@@ -5476,106 +5848,222 @@ interface paths {
5476
5848
  likerCount?: number;
5477
5849
  seenUsersCount?: number;
5478
5850
  } | null;
5479
- };
5480
- };
5481
- };
5482
- /** @description Authentication required */
5483
- 401: {
5484
- headers: {
5485
- [name: string]: unknown;
5486
- };
5487
- content: {
5488
- "application/json": {
5489
- error: {
5490
- /** @enum {string} */
5491
- code: "AUTHENTICATION_REQUIRED";
5492
- /** @enum {string} */
5493
- message: "Authentication is required";
5494
- redirectTo?: string;
5495
- };
5496
- };
5497
- };
5498
- };
5499
- };
5500
- };
5501
- put?: never;
5502
- post?: never;
5503
- delete?: never;
5504
- options?: never;
5505
- head?: never;
5506
- patch?: never;
5507
- trace?: never;
5508
- };
5509
- "/pages/children": {
5510
- parameters: {
5511
- query?: never;
5512
- header?: never;
5513
- path?: never;
5514
- cookie?: never;
5515
- };
5516
- /** List immediate child segments under a portal path (sidebar tree) */
5517
- get: {
5518
- parameters: {
5519
- query: {
5520
- path: string;
5521
- };
5522
- header?: never;
5523
- path?: never;
5524
- cookie?: never;
5525
- };
5526
- requestBody?: never;
5527
- responses: {
5528
- /** @description First-level child segments (alphabetical) under the path */
5529
- 200: {
5530
- headers: {
5531
- [name: string]: unknown;
5532
- };
5533
- content: {
5534
- "application/json": {
5535
- children: {
5536
- segment: string;
5851
+ contentPage?: {
5852
+ _id: string;
5537
5853
  path: string;
5538
- isPage: boolean;
5539
- hasPortal: boolean;
5540
- count: number;
5541
- }[];
5542
- };
5543
- };
5544
- };
5545
- /** @description Authentication required */
5546
- 401: {
5547
- headers: {
5548
- [name: string]: unknown;
5549
- };
5550
- content: {
5551
- "application/json": {
5552
- error: {
5553
- /** @enum {string} */
5554
- code: "AUTHENTICATION_REQUIRED";
5555
- /** @enum {string} */
5556
- message: "Authentication is required";
5557
- redirectTo?: string;
5558
- };
5559
- };
5560
- };
5561
- };
5562
- };
5563
- };
5564
- put?: never;
5565
- post?: never;
5566
- delete?: never;
5567
- options?: never;
5568
- head?: never;
5569
- patch?: never;
5570
- trace?: never;
5571
- };
5572
- "/pages/grant": {
5573
- parameters: {
5574
- query?: never;
5575
- header?: never;
5576
- path?: never;
5577
- cookie?: never;
5578
- };
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
+ };
5579
6067
  get?: never;
5580
6068
  /** Update page grant (visibility) only — no revision pushed */
5581
6069
  put: {
@@ -5636,6 +6124,7 @@ interface paths {
5636
6124
  username: string;
5637
6125
  }[];
5638
6126
  codeBlockLanguages?: string[];
6127
+ rawSpaceLinks?: string[];
5639
6128
  };
5640
6129
  renderedAst?: unknown;
5641
6130
  rendererVersion?: string;
@@ -6040,6 +6529,7 @@ interface paths {
6040
6529
  username: string;
6041
6530
  }[];
6042
6531
  codeBlockLanguages?: string[];
6532
+ rawSpaceLinks?: string[];
6043
6533
  };
6044
6534
  renderedAst?: unknown;
6045
6535
  rendererVersion?: string;
@@ -6235,6 +6725,7 @@ interface paths {
6235
6725
  username: string;
6236
6726
  }[];
6237
6727
  codeBlockLanguages?: string[];
6728
+ rawSpaceLinks?: string[];
6238
6729
  };
6239
6730
  renderedAst?: unknown;
6240
6731
  rendererVersion?: string;
@@ -6363,59 +6854,295 @@ interface paths {
6363
6854
  patch?: never;
6364
6855
  trace?: never;
6365
6856
  };
6366
- "/pages/watch": {
6857
+ "/pages/link-access": {
6367
6858
  parameters: {
6368
6859
  query?: never;
6369
6860
  header?: never;
6370
6861
  path?: never;
6371
6862
  cookie?: never;
6372
6863
  };
6373
- /** Get watch (notification subscription) status for a page */
6374
- 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: {
6375
6868
  parameters: {
6376
- query: {
6377
- page_id: string;
6378
- };
6869
+ query?: never;
6379
6870
  header?: never;
6380
6871
  path?: never;
6381
6872
  cookie?: never;
6382
6873
  };
6383
- requestBody?: never;
6384
- responses: {
6385
- /** @description Watching status (true / false) */
6386
- 200: {
6387
- headers: {
6388
- [name: string]: unknown;
6389
- };
6390
- content: {
6391
- "application/json": {
6392
- watching: boolean;
6393
- };
6394
- };
6395
- };
6396
- /** @description Invalid page_id */
6397
- 400: {
6398
- headers: {
6399
- [name: string]: unknown;
6400
- };
6401
- content: {
6402
- "application/json": {
6403
- error: {
6404
- /** @enum {string} */
6405
- code: "INVALID_PAGE_ID";
6406
- message: string;
6407
- };
6408
- };
6874
+ requestBody?: {
6875
+ content: {
6876
+ "application/json": {
6877
+ page_id: string;
6409
6878
  };
6410
6879
  };
6411
- /** @description Authentication required */
6412
- 401: {
6880
+ };
6881
+ responses: {
6882
+ /** @description The resolved page, with `granted` telling whether this call just added the caller to grantedUsers */
6883
+ 200: {
6413
6884
  headers: {
6414
6885
  [name: string]: unknown;
6415
6886
  };
6416
6887
  content: {
6417
6888
  "application/json": {
6418
- 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: {
6419
7146
  /** @enum {string} */
6420
7147
  code: "AUTHENTICATION_REQUIRED";
6421
7148
  /** @enum {string} */
@@ -6467,11 +7194,208 @@ interface paths {
6467
7194
  };
6468
7195
  content: {
6469
7196
  "application/json": {
6470
- 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
+ };
6471
7395
  };
6472
7396
  };
6473
7397
  };
6474
- /** @description Invalid page_id */
7398
+ /** @description PAGE_REVERT_FAILED */
6475
7399
  400: {
6476
7400
  headers: {
6477
7401
  [name: string]: unknown;
@@ -6479,8 +7403,7 @@ interface paths {
6479
7403
  content: {
6480
7404
  "application/json": {
6481
7405
  error: {
6482
- /** @enum {string} */
6483
- code: "INVALID_PAGE_ID";
7406
+ code: string;
6484
7407
  message: string;
6485
7408
  };
6486
7409
  };
@@ -6521,14 +7444,13 @@ interface paths {
6521
7444
  };
6522
7445
  };
6523
7446
  };
6524
- post?: never;
6525
7447
  delete?: never;
6526
7448
  options?: never;
6527
7449
  head?: never;
6528
7450
  patch?: never;
6529
7451
  trace?: never;
6530
7452
  };
6531
- "/pages/revert": {
7453
+ "/pages/revert-to-revision": {
6532
7454
  parameters: {
6533
7455
  query?: never;
6534
7456
  header?: never;
@@ -6537,7 +7459,7 @@ interface paths {
6537
7459
  };
6538
7460
  get?: never;
6539
7461
  put?: never;
6540
- /** Revert a soft-deleted page (restore from /trash/...) */
7462
+ /** Revert a page to one of its past revisions (non-destructive stacks a new revision) */
6541
7463
  post: {
6542
7464
  parameters: {
6543
7465
  query?: never;
@@ -6549,11 +7471,12 @@ interface paths {
6549
7471
  content: {
6550
7472
  "application/json": {
6551
7473
  page_id: string;
7474
+ revision_id: string;
6552
7475
  };
6553
7476
  };
6554
7477
  };
6555
7478
  responses: {
6556
- /** @description The restored page */
7479
+ /** @description The page with the reverted body as its new latest revision */
6557
7480
  200: {
6558
7481
  headers: {
6559
7482
  [name: string]: unknown;
@@ -6595,6 +7518,7 @@ interface paths {
6595
7518
  username: string;
6596
7519
  }[];
6597
7520
  codeBlockLanguages?: string[];
7521
+ rawSpaceLinks?: string[];
6598
7522
  };
6599
7523
  renderedAst?: unknown;
6600
7524
  rendererVersion?: string;
@@ -6667,7 +7591,7 @@ interface paths {
6667
7591
  };
6668
7592
  };
6669
7593
  };
6670
- /** @description PAGE_REVERT_FAILED */
7594
+ /** @description PAGE_REVERT_TO_REVISION_FAILED (e.g. the revision does not belong to the page) */
6671
7595
  400: {
6672
7596
  headers: {
6673
7597
  [name: string]: unknown;
@@ -6793,6 +7717,7 @@ interface paths {
6793
7717
  username: string;
6794
7718
  }[];
6795
7719
  codeBlockLanguages?: string[];
7720
+ rawSpaceLinks?: string[];
6796
7721
  };
6797
7722
  renderedAst?: unknown;
6798
7723
  rendererVersion?: string;
@@ -7088,6 +8013,20 @@ interface paths {
7088
8013
  };
7089
8014
  };
7090
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
+ };
7091
8030
  /** @description Renderer pipeline failure */
7092
8031
  500: {
7093
8032
  headers: {
@@ -7904,6 +8843,7 @@ interface paths {
7904
8843
  fileSize: number;
7905
8844
  createdAt: string;
7906
8845
  url: string;
8846
+ originalUrl: string;
7907
8847
  inUse: boolean;
7908
8848
  }[];
7909
8849
  past: {
@@ -7931,6 +8871,7 @@ interface paths {
7931
8871
  fileSize: number;
7932
8872
  createdAt: string;
7933
8873
  url: string;
8874
+ originalUrl: string;
7934
8875
  inUse: boolean;
7935
8876
  };
7936
8877
  referencingRevisions: {
@@ -8079,6 +9020,7 @@ interface paths {
8079
9020
  fileSize: number;
8080
9021
  createdAt: string;
8081
9022
  url: string;
9023
+ originalUrl: string;
8082
9024
  inUse: boolean;
8083
9025
  }[];
8084
9026
  };
@@ -8201,6 +9143,7 @@ interface paths {
8201
9143
  fileSize: number;
8202
9144
  createdAt: string;
8203
9145
  url: string;
9146
+ originalUrl: string;
8204
9147
  inUse: boolean;
8205
9148
  };
8206
9149
  url: string;
@@ -8506,6 +9449,7 @@ interface paths {
8506
9449
  fileSize: number;
8507
9450
  createdAt: string;
8508
9451
  url: string;
9452
+ originalUrl: string;
8509
9453
  };
8510
9454
  };
8511
9455
  };
@@ -8777,6 +9721,7 @@ interface paths {
8777
9721
  username: string;
8778
9722
  }[];
8779
9723
  codeBlockLanguages?: string[];
9724
+ rawSpaceLinks?: string[];
8780
9725
  };
8781
9726
  renderedAst?: unknown;
8782
9727
  rendererVersion?: string;
@@ -9506,6 +10451,7 @@ interface paths {
9506
10451
  /** @enum {string} */
9507
10452
  registrationMode: "Open" | "Resricted" | "Closed";
9508
10453
  registrationWhiteList: string[];
10454
+ linkCardEnabled: boolean;
9509
10455
  };
9510
10456
  };
9511
10457
  };
@@ -9575,6 +10521,7 @@ interface paths {
9575
10521
  /** @enum {string} */
9576
10522
  registrationMode: "Open" | "Resricted" | "Closed";
9577
10523
  registrationWhiteList: string[];
10524
+ linkCardEnabled: boolean;
9578
10525
  };
9579
10526
  };
9580
10527
  };
@@ -9589,6 +10536,7 @@ interface paths {
9589
10536
  /** @enum {string} */
9590
10537
  registrationMode: "Open" | "Resricted" | "Closed";
9591
10538
  registrationWhiteList: string[];
10539
+ linkCardEnabled: boolean;
9592
10540
  };
9593
10541
  };
9594
10542
  };
@@ -10478,20 +11426,169 @@ interface paths {
10478
11426
  };
10479
11427
  cookie?: never;
10480
11428
  };
10481
- 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
+ };
10482
11566
  responses: {
10483
- /** @description User removed */
11567
+ /** @description Updated user */
10484
11568
  200: {
10485
11569
  headers: {
10486
11570
  [name: string]: unknown;
10487
11571
  };
10488
11572
  content: {
10489
11573
  "application/json": {
10490
- 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
+ };
10491
11588
  };
10492
11589
  };
10493
11590
  };
10494
- /** @description Invalid id */
11591
+ /** @description Validation error */
10495
11592
  400: {
10496
11593
  headers: {
10497
11594
  [name: string]: unknown;
@@ -10561,7 +11658,7 @@ interface paths {
10561
11658
  };
10562
11659
  };
10563
11660
  };
10564
- /** @description User is not in the INVITED status and cannot be physically removed */
11661
+ /** @description Email already in use by another user */
10565
11662
  409: {
10566
11663
  headers: {
10567
11664
  [name: string]: unknown;
@@ -10594,10 +11691,18 @@ interface paths {
10594
11691
  };
10595
11692
  };
10596
11693
  };
10597
- options?: never;
10598
- head?: never;
10599
- /** Update a user's name and email */
10600
- 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: {
10601
11706
  parameters: {
10602
11707
  query?: never;
10603
11708
  header?: never;
@@ -10606,15 +11711,7 @@ interface paths {
10606
11711
  };
10607
11712
  cookie?: never;
10608
11713
  };
10609
- requestBody?: {
10610
- content: {
10611
- "application/json": {
10612
- name: string;
10613
- /** Format: email */
10614
- email: string;
10615
- };
10616
- };
10617
- };
11714
+ requestBody?: never;
10618
11715
  responses: {
10619
11716
  /** @description Updated user */
10620
11717
  200: {
@@ -10640,7 +11737,7 @@ interface paths {
10640
11737
  };
10641
11738
  };
10642
11739
  };
10643
- /** @description Validation error */
11740
+ /** @description Invalid id */
10644
11741
  400: {
10645
11742
  headers: {
10646
11743
  [name: string]: unknown;
@@ -10710,21 +11807,6 @@ interface paths {
10710
11807
  };
10711
11808
  };
10712
11809
  };
10713
- /** @description Email already in use by another user */
10714
- 409: {
10715
- headers: {
10716
- [name: string]: unknown;
10717
- };
10718
- content: {
10719
- "application/json": {
10720
- error: {
10721
- /** @enum {string} */
10722
- code: "CONFLICT";
10723
- message: string;
10724
- };
10725
- };
10726
- };
10727
- };
10728
11810
  /** @description Internal server error */
10729
11811
  500: {
10730
11812
  headers: {
@@ -10743,18 +11825,9 @@ interface paths {
10743
11825
  };
10744
11826
  };
10745
11827
  };
10746
- trace?: never;
10747
- };
10748
- "/admin/users/{id}/admin": {
10749
- parameters: {
10750
- query?: never;
10751
- header?: never;
10752
- path?: never;
10753
- cookie?: never;
10754
- };
10755
- get?: never;
10756
- /** Grant admin permission to a user */
10757
- put: {
11828
+ post?: never;
11829
+ /** Revoke admin permission from a user */
11830
+ delete: {
10758
11831
  parameters: {
10759
11832
  query?: never;
10760
11833
  header?: never;
@@ -10877,9 +11950,21 @@ interface paths {
10877
11950
  };
10878
11951
  };
10879
11952
  };
10880
- post?: never;
10881
- /** Revoke admin permission from a user */
10882
- 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: {
10883
11968
  parameters: {
10884
11969
  query?: never;
10885
11970
  header?: never;
@@ -11002,12 +12087,14 @@ interface paths {
11002
12087
  };
11003
12088
  };
11004
12089
  };
12090
+ post?: never;
12091
+ delete?: never;
11005
12092
  options?: never;
11006
12093
  head?: never;
11007
12094
  patch?: never;
11008
12095
  trace?: never;
11009
12096
  };
11010
- "/admin/users/{id}/status/active": {
12097
+ "/admin/users/{id}/status/suspended": {
11011
12098
  parameters: {
11012
12099
  query?: never;
11013
12100
  header?: never;
@@ -11015,7 +12102,7 @@ interface paths {
11015
12102
  cookie?: never;
11016
12103
  };
11017
12104
  get?: never;
11018
- /** Activate a user (status -> ACTIVE) */
12105
+ /** Suspend a user (status -> SUSPENDED) */
11019
12106
  put: {
11020
12107
  parameters: {
11021
12108
  query?: never;
@@ -11146,7 +12233,7 @@ interface paths {
11146
12233
  patch?: never;
11147
12234
  trace?: never;
11148
12235
  };
11149
- "/admin/users/{id}/status/suspended": {
12236
+ "/admin/users/{id}/reset-password": {
11150
12237
  parameters: {
11151
12238
  query?: never;
11152
12239
  header?: never;
@@ -11154,8 +12241,9 @@ interface paths {
11154
12241
  cookie?: never;
11155
12242
  };
11156
12243
  get?: never;
11157
- /** Suspend a user (status -> SUSPENDED) */
11158
- put: {
12244
+ put?: never;
12245
+ /** Reset a user's password to a random value (returns plaintext) */
12246
+ post: {
11159
12247
  parameters: {
11160
12248
  query?: never;
11161
12249
  header?: never;
@@ -11166,7 +12254,7 @@ interface paths {
11166
12254
  };
11167
12255
  requestBody?: never;
11168
12256
  responses: {
11169
- /** @description Updated user */
12257
+ /** @description Updated user + new plaintext password */
11170
12258
  200: {
11171
12259
  headers: {
11172
12260
  [name: string]: unknown;
@@ -11187,6 +12275,7 @@ interface paths {
11187
12275
  /** @enum {integer} */
11188
12276
  status?: 1 | 2 | 3 | 4 | 5;
11189
12277
  };
12278
+ newPassword: string;
11190
12279
  };
11191
12280
  };
11192
12281
  };
@@ -11278,14 +12367,13 @@ interface paths {
11278
12367
  };
11279
12368
  };
11280
12369
  };
11281
- post?: never;
11282
12370
  delete?: never;
11283
12371
  options?: never;
11284
12372
  head?: never;
11285
12373
  patch?: never;
11286
12374
  trace?: never;
11287
12375
  };
11288
- "/admin/users/{id}/reset-password": {
12376
+ "/admin/users/{id}/resend-invite": {
11289
12377
  parameters: {
11290
12378
  query?: never;
11291
12379
  header?: never;
@@ -11294,7 +12382,7 @@ interface paths {
11294
12382
  };
11295
12383
  get?: never;
11296
12384
  put?: never;
11297
- /** 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) */
11298
12386
  post: {
11299
12387
  parameters: {
11300
12388
  query?: never;
@@ -11306,7 +12394,7 @@ interface paths {
11306
12394
  };
11307
12395
  requestBody?: never;
11308
12396
  responses: {
11309
- /** @description Updated user + new plaintext password */
12397
+ /** @description Invitation email resent; returns the (unchanged) user */
11310
12398
  200: {
11311
12399
  headers: {
11312
12400
  [name: string]: unknown;
@@ -11327,7 +12415,6 @@ interface paths {
11327
12415
  /** @enum {integer} */
11328
12416
  status?: 1 | 2 | 3 | 4 | 5;
11329
12417
  };
11330
- newPassword: string;
11331
12418
  };
11332
12419
  };
11333
12420
  };
@@ -11401,7 +12488,22 @@ interface paths {
11401
12488
  };
11402
12489
  };
11403
12490
  };
11404
- /** @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) */
11405
12507
  500: {
11406
12508
  headers: {
11407
12509
  [name: string]: unknown;
@@ -11702,15 +12804,22 @@ interface paths {
11702
12804
  name: string;
11703
12805
  version: string;
11704
12806
  requires?: string[];
12807
+ modelAccess?: string[];
11705
12808
  hasConfig: boolean;
11706
12809
  registers: string[];
11707
12810
  adminPlacement: {
11708
12811
  /** @enum {string} */
11709
- section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer";
12812
+ section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer" | "platform";
11710
12813
  label: string;
11711
12814
  icon?: string;
11712
12815
  };
11713
12816
  supportsHotReload: boolean;
12817
+ /**
12818
+ * @default active
12819
+ * @enum {string}
12820
+ */
12821
+ status: "active" | "failed";
12822
+ error?: string;
11714
12823
  }[];
11715
12824
  };
11716
12825
  };
@@ -12696,7 +13805,7 @@ interface components {
12696
13805
  };
12697
13806
  };
12698
13807
  /** @enum {string} */
12699
- 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";
12700
13809
  ApplicationNotInstalledError: {
12701
13810
  error: {
12702
13811
  /** @enum {string} */
@@ -12877,6 +13986,12 @@ interface components {
12877
13986
  /** @enum {string} */
12878
13987
  status: "approved" | "denied";
12879
13988
  };
13989
+ ClientInfoResponse: {
13990
+ clientId: string;
13991
+ name: string;
13992
+ firstParty: boolean;
13993
+ trusted: boolean;
13994
+ };
12880
13995
  UserPublic: {
12881
13996
  _id: string;
12882
13997
  id?: string;
@@ -12936,6 +14051,7 @@ interface components {
12936
14051
  username: string;
12937
14052
  }[];
12938
14053
  codeBlockLanguages?: string[];
14054
+ rawSpaceLinks?: string[];
12939
14055
  };
12940
14056
  renderedAst?: unknown;
12941
14057
  rendererVersion?: string;
@@ -13040,6 +14156,7 @@ interface components {
13040
14156
  username: string;
13041
14157
  }[];
13042
14158
  codeBlockLanguages?: string[];
14159
+ rawSpaceLinks?: string[];
13043
14160
  };
13044
14161
  renderedAst?: unknown;
13045
14162
  rendererVersion?: string;
@@ -13141,6 +14258,7 @@ interface components {
13141
14258
  username: string;
13142
14259
  }[];
13143
14260
  codeBlockLanguages?: string[];
14261
+ rawSpaceLinks?: string[];
13144
14262
  };
13145
14263
  renderedAst?: unknown;
13146
14264
  rendererVersion?: string;
@@ -13186,6 +14304,7 @@ interface components {
13186
14304
  username: string;
13187
14305
  }[];
13188
14306
  codeBlockLanguages?: string[];
14307
+ rawSpaceLinks?: string[];
13189
14308
  };
13190
14309
  TocEntry: {
13191
14310
  level: number;
@@ -13224,6 +14343,7 @@ interface components {
13224
14343
  * @enum {string}
13225
14344
  */
13226
14345
  order: "asc" | "desc";
14346
+ revision_id?: string;
13227
14347
  };
13228
14348
  ListPagesResponse: {
13229
14349
  pages: {
@@ -13261,6 +14381,7 @@ interface components {
13261
14381
  username: string;
13262
14382
  }[];
13263
14383
  codeBlockLanguages?: string[];
14384
+ rawSpaceLinks?: string[];
13264
14385
  };
13265
14386
  renderedAst?: unknown;
13266
14387
  rendererVersion?: string;
@@ -13370,6 +14491,112 @@ interface components {
13370
14491
  username: string;
13371
14492
  }[];
13372
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[];
13373
14600
  };
13374
14601
  renderedAst?: unknown;
13375
14602
  rendererVersion?: string;
@@ -13476,6 +14703,7 @@ interface components {
13476
14703
  username: string;
13477
14704
  }[];
13478
14705
  codeBlockLanguages?: string[];
14706
+ rawSpaceLinks?: string[];
13479
14707
  };
13480
14708
  renderedAst?: unknown;
13481
14709
  rendererVersion?: string;
@@ -13632,6 +14860,7 @@ interface components {
13632
14860
  username: string;
13633
14861
  }[];
13634
14862
  codeBlockLanguages?: string[];
14863
+ rawSpaceLinks?: string[];
13635
14864
  };
13636
14865
  renderedAst?: unknown;
13637
14866
  rendererVersion?: string;
@@ -13726,6 +14955,7 @@ interface components {
13726
14955
  fileSize: number;
13727
14956
  createdAt: string;
13728
14957
  url: string;
14958
+ originalUrl: string;
13729
14959
  inUse: boolean;
13730
14960
  };
13731
14961
  AttachmentMeta: {
@@ -13752,6 +14982,7 @@ interface components {
13752
14982
  fileSize: number;
13753
14983
  createdAt: string;
13754
14984
  url: string;
14985
+ originalUrl: string;
13755
14986
  };
13756
14987
  ListAttachmentsResponse: {
13757
14988
  attachments: {
@@ -13778,6 +15009,7 @@ interface components {
13778
15009
  fileSize: number;
13779
15010
  createdAt: string;
13780
15011
  url: string;
15012
+ originalUrl: string;
13781
15013
  inUse: boolean;
13782
15014
  }[];
13783
15015
  };
@@ -13806,6 +15038,7 @@ interface components {
13806
15038
  fileSize: number;
13807
15039
  createdAt: string;
13808
15040
  url: string;
15041
+ originalUrl: string;
13809
15042
  inUse: boolean;
13810
15043
  };
13811
15044
  referencingRevisions: {
@@ -13853,6 +15086,7 @@ interface components {
13853
15086
  fileSize: number;
13854
15087
  createdAt: string;
13855
15088
  url: string;
15089
+ originalUrl: string;
13856
15090
  inUse: boolean;
13857
15091
  }[];
13858
15092
  past: {
@@ -13880,6 +15114,7 @@ interface components {
13880
15114
  fileSize: number;
13881
15115
  createdAt: string;
13882
15116
  url: string;
15117
+ originalUrl: string;
13883
15118
  inUse: boolean;
13884
15119
  };
13885
15120
  referencingRevisions: {
@@ -14221,30 +15456,44 @@ interface components {
14221
15456
  name: string;
14222
15457
  version: string;
14223
15458
  requires?: string[];
15459
+ modelAccess?: string[];
14224
15460
  hasConfig: boolean;
14225
15461
  registers: string[];
14226
15462
  adminPlacement: {
14227
15463
  /** @enum {string} */
14228
- section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer";
15464
+ section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer" | "platform";
14229
15465
  label: string;
14230
15466
  icon?: string;
14231
15467
  };
14232
15468
  supportsHotReload: boolean;
15469
+ /**
15470
+ * @default active
15471
+ * @enum {string}
15472
+ */
15473
+ status: "active" | "failed";
15474
+ error?: string;
14233
15475
  };
14234
15476
  ListPluginsResponse: {
14235
15477
  plugins: {
14236
15478
  name: string;
14237
15479
  version: string;
14238
15480
  requires?: string[];
15481
+ modelAccess?: string[];
14239
15482
  hasConfig: boolean;
14240
15483
  registers: string[];
14241
15484
  adminPlacement: {
14242
15485
  /** @enum {string} */
14243
- section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer";
15486
+ section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer" | "platform";
14244
15487
  label: string;
14245
15488
  icon?: string;
14246
15489
  };
14247
15490
  supportsHotReload: boolean;
15491
+ /**
15492
+ * @default active
15493
+ * @enum {string}
15494
+ */
15495
+ status: "active" | "failed";
15496
+ error?: string;
14248
15497
  }[];
14249
15498
  };
14250
15499
  PluginConfigResponse: {
@@ -14297,6 +15546,8 @@ interface components {
14297
15546
  }[];
14298
15547
  };
14299
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";
14300
15551
  };
14301
15552
  responses: never;
14302
15553
  parameters: never;