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

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,8 +1232,10 @@ interface paths {
1227
1232
  username: string;
1228
1233
  }[];
1229
1234
  codeBlockLanguages?: string[];
1235
+ rawSpaceLinks?: string[];
1230
1236
  };
1231
- renderedAst?: unknown;
1237
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
1238
+ renderedAstArtifactKey?: string;
1232
1239
  rendererVersion?: string;
1233
1240
  parentRevisionId?: string | null;
1234
1241
  /** @enum {string} */
@@ -2152,6 +2159,64 @@ interface paths {
2152
2159
  patch?: never;
2153
2160
  trace?: never;
2154
2161
  };
2162
+ "/oauth/client-info": {
2163
+ parameters: {
2164
+ query?: never;
2165
+ header?: never;
2166
+ path?: never;
2167
+ cookie?: never;
2168
+ };
2169
+ /** Look up non-secret metadata for a registered OAuth client (authorize/consent screen) */
2170
+ get: {
2171
+ parameters: {
2172
+ query: {
2173
+ client_id: string;
2174
+ };
2175
+ header?: never;
2176
+ path?: never;
2177
+ cookie?: never;
2178
+ };
2179
+ requestBody?: never;
2180
+ responses: {
2181
+ /** @description Client metadata */
2182
+ 200: {
2183
+ headers: {
2184
+ [name: string]: unknown;
2185
+ };
2186
+ content: {
2187
+ "application/json": {
2188
+ clientId: string;
2189
+ name: string;
2190
+ firstParty: boolean;
2191
+ trusted: boolean;
2192
+ };
2193
+ };
2194
+ };
2195
+ /** @description No client registered with this client_id */
2196
+ 404: {
2197
+ headers: {
2198
+ [name: string]: unknown;
2199
+ };
2200
+ content: {
2201
+ "application/json": {
2202
+ error: {
2203
+ /** @enum {string} */
2204
+ code: "NOT_FOUND";
2205
+ message: string;
2206
+ };
2207
+ };
2208
+ };
2209
+ };
2210
+ };
2211
+ };
2212
+ put?: never;
2213
+ post?: never;
2214
+ delete?: never;
2215
+ options?: never;
2216
+ head?: never;
2217
+ patch?: never;
2218
+ trace?: never;
2219
+ };
2155
2220
  "/user/{username}": {
2156
2221
  parameters: {
2157
2222
  query?: never;
@@ -2171,7 +2236,7 @@ interface paths {
2171
2236
  };
2172
2237
  requestBody?: never;
2173
2238
  responses: {
2174
- /** @description User profile with statistics + recent activity */
2239
+ /** @description User profile with statistics (createdPagesCount, bookmarksCount, likesCount, commentsCount — the last two are the target user's OWN likes/comments, not activity their pages received) + recent activity */
2175
2240
  200: {
2176
2241
  headers: {
2177
2242
  [name: string]: unknown;
@@ -2194,6 +2259,8 @@ interface paths {
2194
2259
  };
2195
2260
  createdPagesCount: number;
2196
2261
  bookmarksCount: number;
2262
+ likesCount: number;
2263
+ commentsCount: number;
2197
2264
  recentPages?: {
2198
2265
  _id: string;
2199
2266
  path: string;
@@ -2229,8 +2296,10 @@ interface paths {
2229
2296
  username: string;
2230
2297
  }[];
2231
2298
  codeBlockLanguages?: string[];
2299
+ rawSpaceLinks?: string[];
2232
2300
  };
2233
- renderedAst?: unknown;
2301
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
2302
+ renderedAstArtifactKey?: string;
2234
2303
  rendererVersion?: string;
2235
2304
  parentRevisionId?: string | null;
2236
2305
  /** @enum {string} */
@@ -2335,8 +2404,10 @@ interface paths {
2335
2404
  username: string;
2336
2405
  }[];
2337
2406
  codeBlockLanguages?: string[];
2407
+ rawSpaceLinks?: string[];
2338
2408
  };
2339
- renderedAst?: unknown;
2409
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
2410
+ renderedAstArtifactKey?: string;
2340
2411
  rendererVersion?: string;
2341
2412
  parentRevisionId?: string | null;
2342
2413
  /** @enum {string} */
@@ -2548,8 +2619,10 @@ interface paths {
2548
2619
  username: string;
2549
2620
  }[];
2550
2621
  codeBlockLanguages?: string[];
2622
+ rawSpaceLinks?: string[];
2551
2623
  };
2552
- renderedAst?: unknown;
2624
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
2625
+ renderedAstArtifactKey?: string;
2553
2626
  rendererVersion?: string;
2554
2627
  parentRevisionId?: string | null;
2555
2628
  /** @enum {string} */
@@ -2765,8 +2838,10 @@ interface paths {
2765
2838
  username: string;
2766
2839
  }[];
2767
2840
  codeBlockLanguages?: string[];
2841
+ rawSpaceLinks?: string[];
2768
2842
  };
2769
- renderedAst?: unknown;
2843
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
2844
+ renderedAstArtifactKey?: string;
2770
2845
  rendererVersion?: string;
2771
2846
  parentRevisionId?: string | null;
2772
2847
  /** @enum {string} */
@@ -2902,39 +2977,140 @@ interface paths {
2902
2977
  patch?: never;
2903
2978
  trace?: never;
2904
2979
  };
2905
- "/users": {
2980
+ "/user/{username}/subpages": {
2906
2981
  parameters: {
2907
2982
  query?: never;
2908
2983
  header?: never;
2909
2984
  path?: never;
2910
2985
  cookie?: never;
2911
2986
  };
2912
- /** List active users for the member directory (paginated, searchable) */
2987
+ /** Get pages under /user/{username}/ (path-rooted, fully recursive, paginated) */
2913
2988
  get: {
2914
2989
  parameters: {
2915
2990
  query?: {
2916
- q?: string;
2917
2991
  limit?: number;
2918
2992
  offset?: number | null;
2919
2993
  };
2920
2994
  header?: never;
2921
- path?: never;
2995
+ path: {
2996
+ username: string;
2997
+ };
2922
2998
  cookie?: never;
2923
2999
  };
2924
3000
  requestBody?: never;
2925
3001
  responses: {
2926
- /** @description Paginated active users, name-ascending */
3002
+ /** @description Paginated subpages (path-ascending, `_id` tie-break) */
2927
3003
  200: {
2928
3004
  headers: {
2929
3005
  [name: string]: unknown;
2930
3006
  };
2931
3007
  content: {
2932
3008
  "application/json": {
2933
- users: {
3009
+ pages: {
2934
3010
  _id: string;
2935
- username: string;
2936
- name: string;
2937
- image?: string | null;
3011
+ path: string;
3012
+ revision?: string | {
3013
+ _id: string;
3014
+ path: string;
3015
+ body: string;
3016
+ /** @default markdown */
3017
+ format: string;
3018
+ author?: {
3019
+ _id: string;
3020
+ id?: string;
3021
+ username: string;
3022
+ name: string;
3023
+ /** Format: email */
3024
+ email: string;
3025
+ image?: string | null;
3026
+ createdAt: string;
3027
+ } | null;
3028
+ createdAt: string;
3029
+ meta?: {
3030
+ toc?: {
3031
+ level: number;
3032
+ text: string;
3033
+ anchorId: string;
3034
+ }[];
3035
+ wikiLinks?: {
3036
+ raw: string;
3037
+ target: string;
3038
+ displayText?: string;
3039
+ }[];
3040
+ mentions?: {
3041
+ username: string;
3042
+ }[];
3043
+ codeBlockLanguages?: string[];
3044
+ rawSpaceLinks?: string[];
3045
+ };
3046
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
3047
+ renderedAstArtifactKey?: string;
3048
+ rendererVersion?: string;
3049
+ parentRevisionId?: string | null;
3050
+ /** @enum {string} */
3051
+ type?: "snapshot" | "incremental";
3052
+ savedBy?: string | {
3053
+ _id: string;
3054
+ id?: string;
3055
+ username: string;
3056
+ name: string;
3057
+ /** Format: email */
3058
+ email: string;
3059
+ image?: string | null;
3060
+ createdAt: string;
3061
+ } | null;
3062
+ contributors?: (string | {
3063
+ _id: string;
3064
+ id?: string;
3065
+ username: string;
3066
+ name: string;
3067
+ /** Format: email */
3068
+ email: string;
3069
+ image?: string | null;
3070
+ createdAt: string;
3071
+ })[];
3072
+ message?: string;
3073
+ /** @enum {string} */
3074
+ editVia?: "web" | "oauth" | "pat";
3075
+ };
3076
+ redirectTo?: string | null;
3077
+ /** @enum {string|null} */
3078
+ status?: "wip" | "published" | "deleted" | "deprecated" | "draft" | null;
3079
+ grant?: number;
3080
+ grantedUsers?: string[];
3081
+ creator?: string | {
3082
+ _id: string;
3083
+ id?: string;
3084
+ username: string;
3085
+ name: string;
3086
+ /** Format: email */
3087
+ email: string;
3088
+ image?: string | null;
3089
+ createdAt: string;
3090
+ } | null;
3091
+ lastUpdateUser?: string | {
3092
+ _id: string;
3093
+ id?: string;
3094
+ username: string;
3095
+ name: string;
3096
+ /** Format: email */
3097
+ email: string;
3098
+ image?: string | null;
3099
+ createdAt: string;
3100
+ } | null;
3101
+ liker?: string[];
3102
+ /** @default 0 */
3103
+ commentCount: number;
3104
+ extended?: {
3105
+ [key: string]: unknown;
3106
+ };
3107
+ createdAt: string;
3108
+ updatedAt?: string;
3109
+ currentRevision?: string | null;
3110
+ yjsCheckpointAt?: string | null;
3111
+ latestRevision?: string;
3112
+ likerCount?: number;
3113
+ seenUsersCount?: number;
2938
3114
  }[];
2939
3115
  pager: {
2940
3116
  prev: number | null;
@@ -2945,6 +3121,27 @@ interface paths {
2945
3121
  };
2946
3122
  };
2947
3123
  };
3124
+ /** @description Invalid limit/offset */
3125
+ 400: {
3126
+ headers: {
3127
+ [name: string]: unknown;
3128
+ };
3129
+ content: {
3130
+ "application/json": {
3131
+ error: {
3132
+ /** @enum {string} */
3133
+ code: "VALIDATION_ERROR";
3134
+ message: string;
3135
+ details?: {
3136
+ fieldErrors: {
3137
+ [key: string]: string[];
3138
+ };
3139
+ formErrors: string[];
3140
+ };
3141
+ };
3142
+ };
3143
+ };
3144
+ };
2948
3145
  /** @description Authentication required */
2949
3146
  401: {
2950
3147
  headers: {
@@ -2962,6 +3159,40 @@ interface paths {
2962
3159
  };
2963
3160
  };
2964
3161
  };
3162
+ /** @description Missing profile:read and/or pages:read scope */
3163
+ 403: {
3164
+ headers: {
3165
+ [name: string]: unknown;
3166
+ };
3167
+ content: {
3168
+ "application/json": {
3169
+ error: {
3170
+ /** @enum {string} */
3171
+ code: "INSUFFICIENT_SCOPE";
3172
+ message: string;
3173
+ details?: {
3174
+ requiredScope: string;
3175
+ };
3176
+ };
3177
+ };
3178
+ };
3179
+ };
3180
+ /** @description User not found */
3181
+ 404: {
3182
+ headers: {
3183
+ [name: string]: unknown;
3184
+ };
3185
+ content: {
3186
+ "application/json": {
3187
+ error: {
3188
+ /** @enum {string} */
3189
+ code: "USER_NOT_FOUND";
3190
+ /** @enum {string} */
3191
+ message: "User not found";
3192
+ };
3193
+ };
3194
+ };
3195
+ };
2965
3196
  /** @description Internal server error */
2966
3197
  500: {
2967
3198
  headers: {
@@ -2988,18 +3219,20 @@ interface paths {
2988
3219
  patch?: never;
2989
3220
  trace?: never;
2990
3221
  };
2991
- "/bookmarks": {
3222
+ "/users": {
2992
3223
  parameters: {
2993
3224
  query?: never;
2994
3225
  header?: never;
2995
3226
  path?: never;
2996
3227
  cookie?: never;
2997
3228
  };
2998
- /** Get bookmark of a page for the current user */
3229
+ /** List active users for the member directory (paginated, searchable) */
2999
3230
  get: {
3000
3231
  parameters: {
3001
- query: {
3002
- page_id: string;
3232
+ query?: {
3233
+ q?: string;
3234
+ limit?: number;
3235
+ offset?: number | null;
3003
3236
  };
3004
3237
  header?: never;
3005
3238
  path?: never;
@@ -3007,40 +3240,124 @@ interface paths {
3007
3240
  };
3008
3241
  requestBody?: never;
3009
3242
  responses: {
3010
- /** @description Bookmark for the page (or null when not bookmarked) */
3243
+ /** @description Paginated active users, name-ascending */
3011
3244
  200: {
3012
3245
  headers: {
3013
3246
  [name: string]: unknown;
3014
3247
  };
3015
3248
  content: {
3016
3249
  "application/json": {
3017
- bookmark: {
3250
+ users: {
3018
3251
  _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;
3043
- anchorId: string;
3252
+ username: string;
3253
+ name: string;
3254
+ image?: string | null;
3255
+ }[];
3256
+ pager: {
3257
+ prev: number | null;
3258
+ next: number | null;
3259
+ offset: number;
3260
+ };
3261
+ total: number;
3262
+ };
3263
+ };
3264
+ };
3265
+ /** @description Authentication required */
3266
+ 401: {
3267
+ headers: {
3268
+ [name: string]: unknown;
3269
+ };
3270
+ content: {
3271
+ "application/json": {
3272
+ error: {
3273
+ /** @enum {string} */
3274
+ code: "AUTHENTICATION_REQUIRED";
3275
+ /** @enum {string} */
3276
+ message: "Authentication is required";
3277
+ redirectTo?: string;
3278
+ };
3279
+ };
3280
+ };
3281
+ };
3282
+ /** @description Internal server error */
3283
+ 500: {
3284
+ headers: {
3285
+ [name: string]: unknown;
3286
+ };
3287
+ content: {
3288
+ "application/json": {
3289
+ error: {
3290
+ /** @enum {string} */
3291
+ code: "INTERNAL_ERROR";
3292
+ /** @enum {string} */
3293
+ message: "Internal server error";
3294
+ };
3295
+ };
3296
+ };
3297
+ };
3298
+ };
3299
+ };
3300
+ put?: never;
3301
+ post?: never;
3302
+ delete?: never;
3303
+ options?: never;
3304
+ head?: never;
3305
+ patch?: never;
3306
+ trace?: never;
3307
+ };
3308
+ "/bookmarks": {
3309
+ parameters: {
3310
+ query?: never;
3311
+ header?: never;
3312
+ path?: never;
3313
+ cookie?: never;
3314
+ };
3315
+ /** Get bookmark of a page for the current user */
3316
+ get: {
3317
+ parameters: {
3318
+ query: {
3319
+ page_id: string;
3320
+ };
3321
+ header?: never;
3322
+ path?: never;
3323
+ cookie?: never;
3324
+ };
3325
+ requestBody?: never;
3326
+ responses: {
3327
+ /** @description Bookmark for the page (or null when not bookmarked) */
3328
+ 200: {
3329
+ headers: {
3330
+ [name: string]: unknown;
3331
+ };
3332
+ content: {
3333
+ "application/json": {
3334
+ bookmark: {
3335
+ _id: string;
3336
+ page: {
3337
+ _id: string;
3338
+ path: string;
3339
+ revision?: string | {
3340
+ _id: string;
3341
+ path: string;
3342
+ body: string;
3343
+ /** @default markdown */
3344
+ format: string;
3345
+ author?: {
3346
+ _id: string;
3347
+ id?: string;
3348
+ username: string;
3349
+ name: string;
3350
+ /** Format: email */
3351
+ email: string;
3352
+ image?: string | null;
3353
+ createdAt: string;
3354
+ } | null;
3355
+ createdAt: string;
3356
+ meta?: {
3357
+ toc?: {
3358
+ level: number;
3359
+ text: string;
3360
+ anchorId: string;
3044
3361
  }[];
3045
3362
  wikiLinks?: {
3046
3363
  raw: string;
@@ -3051,8 +3368,10 @@ interface paths {
3051
3368
  username: string;
3052
3369
  }[];
3053
3370
  codeBlockLanguages?: string[];
3371
+ rawSpaceLinks?: string[];
3054
3372
  };
3055
- renderedAst?: unknown;
3373
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
3374
+ renderedAstArtifactKey?: string;
3056
3375
  rendererVersion?: string;
3057
3376
  parentRevisionId?: string | null;
3058
3377
  /** @enum {string} */
@@ -3250,8 +3569,10 @@ interface paths {
3250
3569
  username: string;
3251
3570
  }[];
3252
3571
  codeBlockLanguages?: string[];
3572
+ rawSpaceLinks?: string[];
3253
3573
  };
3254
- renderedAst?: unknown;
3574
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
3575
+ renderedAstArtifactKey?: string;
3255
3576
  rendererVersion?: string;
3256
3577
  parentRevisionId?: string | null;
3257
3578
  /** @enum {string} */
@@ -3535,8 +3856,10 @@ interface paths {
3535
3856
  username: string;
3536
3857
  }[];
3537
3858
  codeBlockLanguages?: string[];
3859
+ rawSpaceLinks?: string[];
3538
3860
  };
3539
- renderedAst?: unknown;
3861
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
3862
+ renderedAstArtifactKey?: string;
3540
3863
  rendererVersion?: string;
3541
3864
  parentRevisionId?: string | null;
3542
3865
  /** @enum {string} */
@@ -3762,6 +4085,22 @@ interface paths {
3762
4085
  };
3763
4086
  };
3764
4087
  };
4088
+ /** @description Page not found or not granted */
4089
+ 404: {
4090
+ headers: {
4091
+ [name: string]: unknown;
4092
+ };
4093
+ content: {
4094
+ "application/json": {
4095
+ error: {
4096
+ /** @enum {string} */
4097
+ code: "PAGE_NOT_FOUND";
4098
+ /** @enum {string} */
4099
+ message: "Page not found";
4100
+ };
4101
+ };
4102
+ };
4103
+ };
3765
4104
  };
3766
4105
  };
3767
4106
  put?: never;
@@ -3853,6 +4192,22 @@ interface paths {
3853
4192
  };
3854
4193
  };
3855
4194
  };
4195
+ /** @description Page / revision not found, or the caller cannot access it (existence hidden) */
4196
+ 404: {
4197
+ headers: {
4198
+ [name: string]: unknown;
4199
+ };
4200
+ content: {
4201
+ "application/json": {
4202
+ error: {
4203
+ /** @enum {string} */
4204
+ code: "PAGE_NOT_FOUND";
4205
+ /** @enum {string} */
4206
+ message: "Page not found";
4207
+ };
4208
+ };
4209
+ };
4210
+ };
3856
4211
  };
3857
4212
  };
3858
4213
  put?: never;
@@ -4245,8 +4600,10 @@ interface paths {
4245
4600
  username: string;
4246
4601
  }[];
4247
4602
  codeBlockLanguages?: string[];
4603
+ rawSpaceLinks?: string[];
4248
4604
  };
4249
- renderedAst?: unknown;
4605
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
4606
+ renderedAstArtifactKey?: string;
4250
4607
  rendererVersion?: string;
4251
4608
  parentRevisionId?: string | null;
4252
4609
  /** @enum {string} */
@@ -4355,7 +4712,7 @@ interface paths {
4355
4712
  };
4356
4713
  requestBody?: never;
4357
4714
  responses: {
4358
- /** @description Full revision document */
4715
+ /** @description Full revision document. `renderedAst` shape is content-negotiated via the `X-Crowi-Ast-Version` request header (RFC-0023): requests declaring `X-Crowi-Ast-Version: 1` receive the typed `{astVersion, root}` envelope; all other requests receive the stored bare mdast Root verbatim. The response varies on this header (`Vary: X-Crowi-Ast-Version`). */
4359
4716
  200: {
4360
4717
  headers: {
4361
4718
  [name: string]: unknown;
@@ -4394,8 +4751,10 @@ interface paths {
4394
4751
  username: string;
4395
4752
  }[];
4396
4753
  codeBlockLanguages?: string[];
4754
+ rawSpaceLinks?: string[];
4397
4755
  };
4398
- renderedAst?: unknown;
4756
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
4757
+ renderedAstArtifactKey?: string;
4399
4758
  rendererVersion?: string;
4400
4759
  parentRevisionId?: string | null;
4401
4760
  /** @enum {string} */
@@ -4506,7 +4865,7 @@ interface paths {
4506
4865
  };
4507
4866
  requestBody?: never;
4508
4867
  responses: {
4509
- /** @description The requested page with populated revision */
4868
+ /** @description The requested page with populated revision. `revision.renderedAst` shape is content-negotiated via the `X-Crowi-Ast-Version` request header (RFC-0023): requests declaring `X-Crowi-Ast-Version: 1` receive the typed `{astVersion, root}` envelope; all other requests receive the stored bare mdast Root verbatim. The response varies on this header (`Vary: X-Crowi-Ast-Version`). */
4510
4869
  200: {
4511
4870
  headers: {
4512
4871
  [name: string]: unknown;
@@ -4548,8 +4907,10 @@ interface paths {
4548
4907
  username: string;
4549
4908
  }[];
4550
4909
  codeBlockLanguages?: string[];
4910
+ rawSpaceLinks?: string[];
4551
4911
  };
4552
- renderedAst?: unknown;
4912
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
4913
+ renderedAstArtifactKey?: string;
4553
4914
  rendererVersion?: string;
4554
4915
  parentRevisionId?: string | null;
4555
4916
  /** @enum {string} */
@@ -4669,6 +5030,22 @@ interface paths {
4669
5030
  };
4670
5031
  };
4671
5032
  };
5033
+ /** @description Internal server error */
5034
+ 500: {
5035
+ headers: {
5036
+ [name: string]: unknown;
5037
+ };
5038
+ content: {
5039
+ "application/json": {
5040
+ error: {
5041
+ /** @enum {string} */
5042
+ code: "INTERNAL_ERROR";
5043
+ /** @enum {string} */
5044
+ message: "Internal server error";
5045
+ };
5046
+ };
5047
+ };
5048
+ };
4672
5049
  };
4673
5050
  };
4674
5051
  /** Update existing page */
@@ -4732,8 +5109,10 @@ interface paths {
4732
5109
  username: string;
4733
5110
  }[];
4734
5111
  codeBlockLanguages?: string[];
5112
+ rawSpaceLinks?: string[];
4735
5113
  };
4736
- renderedAst?: unknown;
5114
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
5115
+ renderedAstArtifactKey?: string;
4737
5116
  rendererVersion?: string;
4738
5117
  parentRevisionId?: string | null;
4739
5118
  /** @enum {string} */
@@ -4928,8 +5307,10 @@ interface paths {
4928
5307
  username: string;
4929
5308
  }[];
4930
5309
  codeBlockLanguages?: string[];
5310
+ rawSpaceLinks?: string[];
4931
5311
  };
4932
- renderedAst?: unknown;
5312
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
5313
+ renderedAstArtifactKey?: string;
4933
5314
  rendererVersion?: string;
4934
5315
  parentRevisionId?: string | null;
4935
5316
  /** @enum {string} */
@@ -5000,7 +5381,7 @@ interface paths {
5000
5381
  };
5001
5382
  };
5002
5383
  };
5003
- /** @description Invalid request (PAGE_EXISTS / NON_EXISTENT_USER_PAGE / PAGE_CREATE_FAILED / INVALID_GRANT) */
5384
+ /** @description Invalid request (PAGE_INVALID_NAME / PAGE_EXISTS / NON_EXISTENT_USER_PAGE / PAGE_CREATE_FAILED / INVALID_GRANT) */
5004
5385
  400: {
5005
5386
  headers: {
5006
5387
  [name: string]: unknown;
@@ -5093,8 +5474,10 @@ interface paths {
5093
5474
  username: string;
5094
5475
  }[];
5095
5476
  codeBlockLanguages?: string[];
5477
+ rawSpaceLinks?: string[];
5096
5478
  };
5097
- renderedAst?: unknown;
5479
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
5480
+ renderedAstArtifactKey?: string;
5098
5481
  rendererVersion?: string;
5099
5482
  parentRevisionId?: string | null;
5100
5483
  /** @enum {string} */
@@ -5252,6 +5635,7 @@ interface paths {
5252
5635
  include_deleted?: boolean | null;
5253
5636
  sort?: "updatedAt" | "createdAt" | "path";
5254
5637
  order?: "asc" | "desc";
5638
+ revision_id?: string;
5255
5639
  };
5256
5640
  header?: never;
5257
5641
  path?: never;
@@ -5259,7 +5643,7 @@ interface paths {
5259
5643
  };
5260
5644
  requestBody?: never;
5261
5645
  responses: {
5262
- /** @description Page list (newest first) with optional portal page */
5646
+ /** @description Page list (newest first) with optional portal page and an accurate `total` (the full, unpaginated count of the same viewer-visible set `pages` is a page of). The portal document is the only row carrying `revision.renderedAst`; its shape is content-negotiated via the `X-Crowi-Ast-Version` request header (RFC-0023, same semantics as GET /pages). The response varies on this header (`Vary: X-Crowi-Ast-Version`). */
5263
5647
  200: {
5264
5648
  headers: {
5265
5649
  [name: string]: unknown;
@@ -5301,8 +5685,10 @@ interface paths {
5301
5685
  username: string;
5302
5686
  }[];
5303
5687
  codeBlockLanguages?: string[];
5688
+ rawSpaceLinks?: string[];
5304
5689
  };
5305
- renderedAst?: unknown;
5690
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
5691
+ renderedAstArtifactKey?: string;
5306
5692
  rendererVersion?: string;
5307
5693
  parentRevisionId?: string | null;
5308
5694
  /** @enum {string} */
@@ -5410,8 +5796,10 @@ interface paths {
5410
5796
  username: string;
5411
5797
  }[];
5412
5798
  codeBlockLanguages?: string[];
5799
+ rawSpaceLinks?: string[];
5413
5800
  };
5414
- renderedAst?: unknown;
5801
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
5802
+ renderedAstArtifactKey?: string;
5415
5803
  rendererVersion?: string;
5416
5804
  parentRevisionId?: string | null;
5417
5805
  /** @enum {string} */
@@ -5479,105 +5867,223 @@ interface paths {
5479
5867
  likerCount?: number;
5480
5868
  seenUsersCount?: number;
5481
5869
  } | 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;
5870
+ contentPage?: {
5871
+ _id: string;
5540
5872
  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;
5873
+ revision?: string | {
5874
+ _id: string;
5875
+ path: string;
5876
+ body: string;
5877
+ /** @default markdown */
5878
+ format: string;
5879
+ author?: {
5880
+ _id: string;
5881
+ id?: string;
5882
+ username: string;
5883
+ name: string;
5884
+ /** Format: email */
5885
+ email: string;
5886
+ image?: string | null;
5887
+ createdAt: string;
5888
+ } | null;
5889
+ createdAt: string;
5890
+ meta?: {
5891
+ toc?: {
5892
+ level: number;
5893
+ text: string;
5894
+ anchorId: string;
5895
+ }[];
5896
+ wikiLinks?: {
5897
+ raw: string;
5898
+ target: string;
5899
+ displayText?: string;
5900
+ }[];
5901
+ mentions?: {
5902
+ username: string;
5903
+ }[];
5904
+ codeBlockLanguages?: string[];
5905
+ rawSpaceLinks?: string[];
5906
+ };
5907
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
5908
+ renderedAstArtifactKey?: string;
5909
+ rendererVersion?: string;
5910
+ parentRevisionId?: string | null;
5911
+ /** @enum {string} */
5912
+ type?: "snapshot" | "incremental";
5913
+ savedBy?: string | {
5914
+ _id: string;
5915
+ id?: string;
5916
+ username: string;
5917
+ name: string;
5918
+ /** Format: email */
5919
+ email: string;
5920
+ image?: string | null;
5921
+ createdAt: string;
5922
+ } | null;
5923
+ contributors?: (string | {
5924
+ _id: string;
5925
+ id?: string;
5926
+ username: string;
5927
+ name: string;
5928
+ /** Format: email */
5929
+ email: string;
5930
+ image?: string | null;
5931
+ createdAt: string;
5932
+ })[];
5933
+ message?: string;
5934
+ /** @enum {string} */
5935
+ editVia?: "web" | "oauth" | "pat";
5936
+ };
5937
+ redirectTo?: string | null;
5938
+ /** @enum {string|null} */
5939
+ status?: "wip" | "published" | "deleted" | "deprecated" | "draft" | null;
5940
+ grant?: number;
5941
+ grantedUsers?: string[];
5942
+ creator?: string | {
5943
+ _id: string;
5944
+ id?: string;
5945
+ username: string;
5946
+ name: string;
5947
+ /** Format: email */
5948
+ email: string;
5949
+ image?: string | null;
5950
+ createdAt: string;
5951
+ } | null;
5952
+ lastUpdateUser?: string | {
5953
+ _id: string;
5954
+ id?: string;
5955
+ username: string;
5956
+ name: string;
5957
+ /** Format: email */
5958
+ email: string;
5959
+ image?: string | null;
5960
+ createdAt: string;
5961
+ } | null;
5962
+ liker?: string[];
5963
+ /** @default 0 */
5964
+ commentCount: number;
5965
+ extended?: {
5966
+ [key: string]: unknown;
5967
+ };
5968
+ createdAt: string;
5969
+ updatedAt?: string;
5970
+ currentRevision?: string | null;
5971
+ yjsCheckpointAt?: string | null;
5972
+ latestRevision?: string;
5973
+ likerCount?: number;
5974
+ seenUsersCount?: number;
5975
+ } | null;
5976
+ total: number;
5977
+ };
5978
+ };
5979
+ };
5980
+ /** @description Authentication required */
5981
+ 401: {
5982
+ headers: {
5983
+ [name: string]: unknown;
5984
+ };
5985
+ content: {
5986
+ "application/json": {
5987
+ error: {
5988
+ /** @enum {string} */
5989
+ code: "AUTHENTICATION_REQUIRED";
5990
+ /** @enum {string} */
5991
+ message: "Authentication is required";
5992
+ redirectTo?: string;
5993
+ };
5994
+ };
5995
+ };
5996
+ };
5997
+ };
5998
+ };
5999
+ put?: never;
6000
+ post?: never;
6001
+ delete?: never;
6002
+ options?: never;
6003
+ head?: never;
6004
+ patch?: never;
6005
+ trace?: never;
6006
+ };
6007
+ "/pages/children": {
6008
+ parameters: {
6009
+ query?: never;
6010
+ header?: never;
6011
+ path?: never;
6012
+ cookie?: never;
6013
+ };
6014
+ /** List immediate child segments under a portal path (sidebar tree) */
6015
+ get: {
6016
+ parameters: {
6017
+ query: {
6018
+ path: string;
6019
+ };
6020
+ header?: never;
6021
+ path?: never;
6022
+ cookie?: never;
6023
+ };
6024
+ requestBody?: never;
6025
+ responses: {
6026
+ /** @description First-level child segments (alphabetical) under the path */
6027
+ 200: {
6028
+ headers: {
6029
+ [name: string]: unknown;
6030
+ };
6031
+ content: {
6032
+ "application/json": {
6033
+ children: {
6034
+ segment: string;
6035
+ path: string;
6036
+ isPage: boolean;
6037
+ hasPortal: boolean;
6038
+ count: number;
6039
+ lastUpdatedAt?: string | null;
6040
+ updater?: {
6041
+ _id: string;
6042
+ id?: string;
6043
+ username: string;
6044
+ name: string;
6045
+ /** Format: email */
6046
+ email: string;
6047
+ image?: string | null;
6048
+ createdAt: string;
6049
+ } | null;
6050
+ }[];
6051
+ };
6052
+ };
6053
+ };
6054
+ /** @description Authentication required */
6055
+ 401: {
6056
+ headers: {
6057
+ [name: string]: unknown;
6058
+ };
6059
+ content: {
6060
+ "application/json": {
6061
+ error: {
6062
+ /** @enum {string} */
6063
+ code: "AUTHENTICATION_REQUIRED";
6064
+ /** @enum {string} */
6065
+ message: "Authentication is required";
6066
+ redirectTo?: string;
6067
+ };
6068
+ };
6069
+ };
6070
+ };
6071
+ };
6072
+ };
6073
+ put?: never;
6074
+ post?: never;
6075
+ delete?: never;
6076
+ options?: never;
6077
+ head?: never;
6078
+ patch?: never;
6079
+ trace?: never;
6080
+ };
6081
+ "/pages/grant": {
6082
+ parameters: {
6083
+ query?: never;
6084
+ header?: never;
6085
+ path?: never;
6086
+ cookie?: never;
5581
6087
  };
5582
6088
  get?: never;
5583
6089
  /** Update page grant (visibility) only — no revision pushed */
@@ -5639,8 +6145,10 @@ interface paths {
5639
6145
  username: string;
5640
6146
  }[];
5641
6147
  codeBlockLanguages?: string[];
6148
+ rawSpaceLinks?: string[];
5642
6149
  };
5643
- renderedAst?: unknown;
6150
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
6151
+ renderedAstArtifactKey?: string;
5644
6152
  rendererVersion?: string;
5645
6153
  parentRevisionId?: string | null;
5646
6154
  /** @enum {string} */
@@ -6043,8 +6551,10 @@ interface paths {
6043
6551
  username: string;
6044
6552
  }[];
6045
6553
  codeBlockLanguages?: string[];
6554
+ rawSpaceLinks?: string[];
6046
6555
  };
6047
- renderedAst?: unknown;
6556
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
6557
+ renderedAstArtifactKey?: string;
6048
6558
  rendererVersion?: string;
6049
6559
  parentRevisionId?: string | null;
6050
6560
  /** @enum {string} */
@@ -6238,8 +6748,10 @@ interface paths {
6238
6748
  username: string;
6239
6749
  }[];
6240
6750
  codeBlockLanguages?: string[];
6751
+ rawSpaceLinks?: string[];
6241
6752
  };
6242
- renderedAst?: unknown;
6753
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
6754
+ renderedAstArtifactKey?: string;
6243
6755
  rendererVersion?: string;
6244
6756
  parentRevisionId?: string | null;
6245
6757
  /** @enum {string} */
@@ -6366,60 +6878,375 @@ interface paths {
6366
6878
  patch?: never;
6367
6879
  trace?: never;
6368
6880
  };
6369
- "/pages/watch": {
6881
+ "/pages/link-access": {
6370
6882
  parameters: {
6371
6883
  query?: never;
6372
6884
  header?: never;
6373
6885
  path?: never;
6374
6886
  cookie?: never;
6375
6887
  };
6376
- /** Get watch (notification subscription) status for a page */
6377
- get: {
6888
+ get?: never;
6889
+ put?: never;
6890
+ /** Resolve a page by id, granting first-time link-share access to GRANT_RESTRICTED pages */
6891
+ post: {
6378
6892
  parameters: {
6379
- query: {
6380
- page_id: string;
6381
- };
6893
+ query?: never;
6382
6894
  header?: never;
6383
6895
  path?: never;
6384
6896
  cookie?: never;
6385
6897
  };
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
- };
6898
+ requestBody?: {
6899
+ content: {
6900
+ "application/json": {
6901
+ page_id: string;
6412
6902
  };
6413
6903
  };
6414
- /** @description Authentication required */
6415
- 401: {
6904
+ };
6905
+ responses: {
6906
+ /** @description The resolved page, with `granted` telling whether this call just added the caller to grantedUsers */
6907
+ 200: {
6416
6908
  headers: {
6417
6909
  [name: string]: unknown;
6418
6910
  };
6419
6911
  content: {
6420
6912
  "application/json": {
6421
- error: {
6422
- /** @enum {string} */
6913
+ page: {
6914
+ _id: string;
6915
+ path: string;
6916
+ revision: {
6917
+ _id: string;
6918
+ path: string;
6919
+ body: string;
6920
+ /** @default markdown */
6921
+ format: string;
6922
+ author?: {
6923
+ _id: string;
6924
+ id?: string;
6925
+ username: string;
6926
+ name: string;
6927
+ /** Format: email */
6928
+ email: string;
6929
+ image?: string | null;
6930
+ createdAt: string;
6931
+ } | null;
6932
+ createdAt: string;
6933
+ meta?: {
6934
+ toc?: {
6935
+ level: number;
6936
+ text: string;
6937
+ anchorId: string;
6938
+ }[];
6939
+ wikiLinks?: {
6940
+ raw: string;
6941
+ target: string;
6942
+ displayText?: string;
6943
+ }[];
6944
+ mentions?: {
6945
+ username: string;
6946
+ }[];
6947
+ codeBlockLanguages?: string[];
6948
+ rawSpaceLinks?: string[];
6949
+ };
6950
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
6951
+ renderedAstArtifactKey?: string;
6952
+ rendererVersion?: string;
6953
+ parentRevisionId?: string | null;
6954
+ /** @enum {string} */
6955
+ type?: "snapshot" | "incremental";
6956
+ savedBy?: string | {
6957
+ _id: string;
6958
+ id?: string;
6959
+ username: string;
6960
+ name: string;
6961
+ /** Format: email */
6962
+ email: string;
6963
+ image?: string | null;
6964
+ createdAt: string;
6965
+ } | null;
6966
+ contributors?: (string | {
6967
+ _id: string;
6968
+ id?: string;
6969
+ username: string;
6970
+ name: string;
6971
+ /** Format: email */
6972
+ email: string;
6973
+ image?: string | null;
6974
+ createdAt: string;
6975
+ })[];
6976
+ message?: string;
6977
+ /** @enum {string} */
6978
+ editVia?: "web" | "oauth" | "pat";
6979
+ };
6980
+ redirectTo?: string | null;
6981
+ /** @enum {string|null} */
6982
+ status?: "wip" | "published" | "deleted" | "deprecated" | "draft" | null;
6983
+ grant?: number;
6984
+ grantedUsers?: string[];
6985
+ creator?: {
6986
+ _id: string;
6987
+ id?: string;
6988
+ username: string;
6989
+ name: string;
6990
+ /** Format: email */
6991
+ email: string;
6992
+ image?: string | null;
6993
+ createdAt: string;
6994
+ } | null;
6995
+ lastUpdateUser?: {
6996
+ _id: string;
6997
+ id?: string;
6998
+ username: string;
6999
+ name: string;
7000
+ /** Format: email */
7001
+ email: string;
7002
+ image?: string | null;
7003
+ createdAt: string;
7004
+ } | null;
7005
+ liker?: string[];
7006
+ /** @default 0 */
7007
+ commentCount: number;
7008
+ extended?: {
7009
+ [key: string]: unknown;
7010
+ };
7011
+ createdAt: string;
7012
+ updatedAt?: string;
7013
+ currentRevision?: string | null;
7014
+ yjsCheckpointAt?: string | null;
7015
+ latestRevision?: string;
7016
+ likerCount?: number;
7017
+ seenUsersCount?: number;
7018
+ };
7019
+ granted: boolean;
7020
+ };
7021
+ };
7022
+ };
7023
+ /** @description Invalid page_id */
7024
+ 400: {
7025
+ headers: {
7026
+ [name: string]: unknown;
7027
+ };
7028
+ content: {
7029
+ "application/json": {
7030
+ error: {
7031
+ /** @enum {string} */
7032
+ code: "INVALID_PAGE_ID";
7033
+ message: string;
7034
+ };
7035
+ };
7036
+ };
7037
+ };
7038
+ /** @description Authentication required */
7039
+ 401: {
7040
+ headers: {
7041
+ [name: string]: unknown;
7042
+ };
7043
+ content: {
7044
+ "application/json": {
7045
+ error: {
7046
+ /** @enum {string} */
7047
+ code: "AUTHENTICATION_REQUIRED";
7048
+ /** @enum {string} */
7049
+ message: "Authentication is required";
7050
+ redirectTo?: string;
7051
+ };
7052
+ };
7053
+ };
7054
+ };
7055
+ /** @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 */
7056
+ 403: {
7057
+ headers: {
7058
+ [name: string]: unknown;
7059
+ };
7060
+ content: {
7061
+ "application/json": {
7062
+ error: {
7063
+ /** @enum {string} */
7064
+ code: "PAGE_NOT_GRANTED";
7065
+ /** @enum {string} */
7066
+ message: "Page is not granted for the user";
7067
+ };
7068
+ } | {
7069
+ error: {
7070
+ /** @enum {string} */
7071
+ code: "INSUFFICIENT_SCOPE";
7072
+ message: string;
7073
+ details?: {
7074
+ requiredScope: string;
7075
+ };
7076
+ };
7077
+ };
7078
+ };
7079
+ };
7080
+ /** @description Page not found */
7081
+ 404: {
7082
+ headers: {
7083
+ [name: string]: unknown;
7084
+ };
7085
+ content: {
7086
+ "application/json": {
7087
+ error: {
7088
+ /** @enum {string} */
7089
+ code: "PAGE_NOT_FOUND";
7090
+ /** @enum {string} */
7091
+ message: "Page not found";
7092
+ };
7093
+ };
7094
+ };
7095
+ };
7096
+ /** @description Rate limit exceeded for POST /pages/link-access (per-user). Same wire shape as autocomplete rate limiting. */
7097
+ 429: {
7098
+ headers: {
7099
+ [name: string]: unknown;
7100
+ };
7101
+ content: {
7102
+ "application/json": {
7103
+ /** @enum {string} */
7104
+ error: "rate_limited";
7105
+ message: string;
7106
+ retryAfterSeconds: number;
7107
+ };
7108
+ };
7109
+ };
7110
+ };
7111
+ };
7112
+ delete?: never;
7113
+ options?: never;
7114
+ head?: never;
7115
+ patch?: never;
7116
+ trace?: never;
7117
+ };
7118
+ "/pages/watch": {
7119
+ parameters: {
7120
+ query?: never;
7121
+ header?: never;
7122
+ path?: never;
7123
+ cookie?: never;
7124
+ };
7125
+ /** Get watch (notification subscription) status for a page */
7126
+ get: {
7127
+ parameters: {
7128
+ query: {
7129
+ page_id: string;
7130
+ };
7131
+ header?: never;
7132
+ path?: never;
7133
+ cookie?: never;
7134
+ };
7135
+ requestBody?: never;
7136
+ responses: {
7137
+ /** @description Watching status (true / false) */
7138
+ 200: {
7139
+ headers: {
7140
+ [name: string]: unknown;
7141
+ };
7142
+ content: {
7143
+ "application/json": {
7144
+ watching: boolean;
7145
+ };
7146
+ };
7147
+ };
7148
+ /** @description Invalid page_id */
7149
+ 400: {
7150
+ headers: {
7151
+ [name: string]: unknown;
7152
+ };
7153
+ content: {
7154
+ "application/json": {
7155
+ error: {
7156
+ /** @enum {string} */
7157
+ code: "INVALID_PAGE_ID";
7158
+ message: string;
7159
+ };
7160
+ };
7161
+ };
7162
+ };
7163
+ /** @description Authentication required */
7164
+ 401: {
7165
+ headers: {
7166
+ [name: string]: unknown;
7167
+ };
7168
+ content: {
7169
+ "application/json": {
7170
+ error: {
7171
+ /** @enum {string} */
7172
+ code: "AUTHENTICATION_REQUIRED";
7173
+ /** @enum {string} */
7174
+ message: "Authentication is required";
7175
+ redirectTo?: string;
7176
+ };
7177
+ };
7178
+ };
7179
+ };
7180
+ /** @description Page not found (also covers grant-denied) */
7181
+ 404: {
7182
+ headers: {
7183
+ [name: string]: unknown;
7184
+ };
7185
+ content: {
7186
+ "application/json": {
7187
+ error: {
7188
+ /** @enum {string} */
7189
+ code: "PAGE_NOT_FOUND";
7190
+ /** @enum {string} */
7191
+ message: "Page not found";
7192
+ };
7193
+ };
7194
+ };
7195
+ };
7196
+ };
7197
+ };
7198
+ /** Set watch (notification subscription) status for a page */
7199
+ put: {
7200
+ parameters: {
7201
+ query?: never;
7202
+ header?: never;
7203
+ path?: never;
7204
+ cookie?: never;
7205
+ };
7206
+ requestBody?: {
7207
+ content: {
7208
+ "application/json": {
7209
+ page_id: string;
7210
+ watching: boolean;
7211
+ };
7212
+ };
7213
+ };
7214
+ responses: {
7215
+ /** @description Updated watching status */
7216
+ 200: {
7217
+ headers: {
7218
+ [name: string]: unknown;
7219
+ };
7220
+ content: {
7221
+ "application/json": {
7222
+ watching: boolean;
7223
+ };
7224
+ };
7225
+ };
7226
+ /** @description Invalid page_id */
7227
+ 400: {
7228
+ headers: {
7229
+ [name: string]: unknown;
7230
+ };
7231
+ content: {
7232
+ "application/json": {
7233
+ error: {
7234
+ /** @enum {string} */
7235
+ code: "INVALID_PAGE_ID";
7236
+ message: string;
7237
+ };
7238
+ };
7239
+ };
7240
+ };
7241
+ /** @description Authentication required */
7242
+ 401: {
7243
+ headers: {
7244
+ [name: string]: unknown;
7245
+ };
7246
+ content: {
7247
+ "application/json": {
7248
+ error: {
7249
+ /** @enum {string} */
6423
7250
  code: "AUTHENTICATION_REQUIRED";
6424
7251
  /** @enum {string} */
6425
7252
  message: "Authentication is required";
@@ -6444,37 +7271,157 @@ interface paths {
6444
7271
  };
6445
7272
  };
6446
7273
  };
6447
- };
6448
- };
6449
- /** Set watch (notification subscription) status for a page */
6450
- put: {
6451
- parameters: {
6452
- query?: never;
6453
- header?: never;
6454
- path?: never;
6455
- cookie?: never;
6456
- };
6457
- requestBody?: {
6458
- content: {
6459
- "application/json": {
6460
- page_id: string;
6461
- watching: boolean;
6462
- };
6463
- };
6464
- };
6465
- responses: {
6466
- /** @description Updated watching status */
6467
- 200: {
6468
- headers: {
6469
- [name: string]: unknown;
6470
- };
6471
- content: {
6472
- "application/json": {
6473
- watching: boolean;
6474
- };
6475
- };
6476
- };
6477
- /** @description Invalid page_id */
7274
+ };
7275
+ };
7276
+ post?: never;
7277
+ delete?: never;
7278
+ options?: never;
7279
+ head?: never;
7280
+ patch?: never;
7281
+ trace?: never;
7282
+ };
7283
+ "/pages/revert": {
7284
+ parameters: {
7285
+ query?: never;
7286
+ header?: never;
7287
+ path?: never;
7288
+ cookie?: never;
7289
+ };
7290
+ get?: never;
7291
+ put?: never;
7292
+ /** Revert a soft-deleted page (restore from /trash/...) */
7293
+ post: {
7294
+ parameters: {
7295
+ query?: never;
7296
+ header?: never;
7297
+ path?: never;
7298
+ cookie?: never;
7299
+ };
7300
+ requestBody?: {
7301
+ content: {
7302
+ "application/json": {
7303
+ page_id: string;
7304
+ };
7305
+ };
7306
+ };
7307
+ responses: {
7308
+ /** @description The restored page */
7309
+ 200: {
7310
+ headers: {
7311
+ [name: string]: unknown;
7312
+ };
7313
+ content: {
7314
+ "application/json": {
7315
+ page: {
7316
+ _id: string;
7317
+ path: string;
7318
+ revision?: string | {
7319
+ _id: string;
7320
+ path: string;
7321
+ body: string;
7322
+ /** @default markdown */
7323
+ format: string;
7324
+ author?: {
7325
+ _id: string;
7326
+ id?: string;
7327
+ username: string;
7328
+ name: string;
7329
+ /** Format: email */
7330
+ email: string;
7331
+ image?: string | null;
7332
+ createdAt: string;
7333
+ } | null;
7334
+ createdAt: string;
7335
+ meta?: {
7336
+ toc?: {
7337
+ level: number;
7338
+ text: string;
7339
+ anchorId: string;
7340
+ }[];
7341
+ wikiLinks?: {
7342
+ raw: string;
7343
+ target: string;
7344
+ displayText?: string;
7345
+ }[];
7346
+ mentions?: {
7347
+ username: string;
7348
+ }[];
7349
+ codeBlockLanguages?: string[];
7350
+ rawSpaceLinks?: string[];
7351
+ };
7352
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
7353
+ renderedAstArtifactKey?: string;
7354
+ rendererVersion?: string;
7355
+ parentRevisionId?: string | null;
7356
+ /** @enum {string} */
7357
+ type?: "snapshot" | "incremental";
7358
+ savedBy?: string | {
7359
+ _id: string;
7360
+ id?: string;
7361
+ username: string;
7362
+ name: string;
7363
+ /** Format: email */
7364
+ email: string;
7365
+ image?: string | null;
7366
+ createdAt: string;
7367
+ } | null;
7368
+ contributors?: (string | {
7369
+ _id: string;
7370
+ id?: string;
7371
+ username: string;
7372
+ name: string;
7373
+ /** Format: email */
7374
+ email: string;
7375
+ image?: string | null;
7376
+ createdAt: string;
7377
+ })[];
7378
+ message?: string;
7379
+ /** @enum {string} */
7380
+ editVia?: "web" | "oauth" | "pat";
7381
+ };
7382
+ redirectTo?: string | null;
7383
+ /** @enum {string|null} */
7384
+ status?: "wip" | "published" | "deleted" | "deprecated" | "draft" | null;
7385
+ grant?: number;
7386
+ grantedUsers?: string[];
7387
+ creator?: string | {
7388
+ _id: string;
7389
+ id?: string;
7390
+ username: string;
7391
+ name: string;
7392
+ /** Format: email */
7393
+ email: string;
7394
+ image?: string | null;
7395
+ createdAt: string;
7396
+ } | null;
7397
+ lastUpdateUser?: string | {
7398
+ _id: string;
7399
+ id?: string;
7400
+ username: string;
7401
+ name: string;
7402
+ /** Format: email */
7403
+ email: string;
7404
+ image?: string | null;
7405
+ createdAt: string;
7406
+ } | null;
7407
+ liker?: string[];
7408
+ /** @default 0 */
7409
+ commentCount: number;
7410
+ extended?: {
7411
+ [key: string]: unknown;
7412
+ };
7413
+ createdAt: string;
7414
+ updatedAt?: string;
7415
+ currentRevision?: string | null;
7416
+ yjsCheckpointAt?: string | null;
7417
+ latestRevision?: string;
7418
+ likerCount?: number;
7419
+ seenUsersCount?: number;
7420
+ };
7421
+ };
7422
+ };
7423
+ };
7424
+ /** @description PAGE_REVERT_FAILED */
6478
7425
  400: {
6479
7426
  headers: {
6480
7427
  [name: string]: unknown;
@@ -6482,8 +7429,7 @@ interface paths {
6482
7429
  content: {
6483
7430
  "application/json": {
6484
7431
  error: {
6485
- /** @enum {string} */
6486
- code: "INVALID_PAGE_ID";
7432
+ code: string;
6487
7433
  message: string;
6488
7434
  };
6489
7435
  };
@@ -6524,14 +7470,13 @@ interface paths {
6524
7470
  };
6525
7471
  };
6526
7472
  };
6527
- post?: never;
6528
7473
  delete?: never;
6529
7474
  options?: never;
6530
7475
  head?: never;
6531
7476
  patch?: never;
6532
7477
  trace?: never;
6533
7478
  };
6534
- "/pages/revert": {
7479
+ "/pages/revert-to-revision": {
6535
7480
  parameters: {
6536
7481
  query?: never;
6537
7482
  header?: never;
@@ -6540,7 +7485,7 @@ interface paths {
6540
7485
  };
6541
7486
  get?: never;
6542
7487
  put?: never;
6543
- /** Revert a soft-deleted page (restore from /trash/...) */
7488
+ /** Revert a page to one of its past revisions (non-destructive stacks a new revision) */
6544
7489
  post: {
6545
7490
  parameters: {
6546
7491
  query?: never;
@@ -6552,11 +7497,12 @@ interface paths {
6552
7497
  content: {
6553
7498
  "application/json": {
6554
7499
  page_id: string;
7500
+ revision_id: string;
6555
7501
  };
6556
7502
  };
6557
7503
  };
6558
7504
  responses: {
6559
- /** @description The restored page */
7505
+ /** @description The page with the reverted body as its new latest revision */
6560
7506
  200: {
6561
7507
  headers: {
6562
7508
  [name: string]: unknown;
@@ -6598,8 +7544,10 @@ interface paths {
6598
7544
  username: string;
6599
7545
  }[];
6600
7546
  codeBlockLanguages?: string[];
7547
+ rawSpaceLinks?: string[];
6601
7548
  };
6602
- renderedAst?: unknown;
7549
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
7550
+ renderedAstArtifactKey?: string;
6603
7551
  rendererVersion?: string;
6604
7552
  parentRevisionId?: string | null;
6605
7553
  /** @enum {string} */
@@ -6670,7 +7618,7 @@ interface paths {
6670
7618
  };
6671
7619
  };
6672
7620
  };
6673
- /** @description PAGE_REVERT_FAILED */
7621
+ /** @description PAGE_REVERT_TO_REVISION_FAILED (e.g. the revision does not belong to the page) */
6674
7622
  400: {
6675
7623
  headers: {
6676
7624
  [name: string]: unknown;
@@ -6796,8 +7744,10 @@ interface paths {
6796
7744
  username: string;
6797
7745
  }[];
6798
7746
  codeBlockLanguages?: string[];
7747
+ rawSpaceLinks?: string[];
6799
7748
  };
6800
- renderedAst?: unknown;
7749
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
7750
+ renderedAstArtifactKey?: string;
6801
7751
  rendererVersion?: string;
6802
7752
  parentRevisionId?: string | null;
6803
7753
  /** @enum {string} */
@@ -7063,14 +8013,15 @@ interface paths {
7063
8013
  };
7064
8014
  };
7065
8015
  responses: {
7066
- /** @description Rendered mdast tree (serialised — same shape as a persisted revision.renderedAst) */
8016
+ /** @description Rendered mdast tree (serialised — same shape as a persisted revision.renderedAst). Content-negotiated via the `X-Crowi-Ast-Version` request header (RFC-0023): requests declaring `X-Crowi-Ast-Version: 1` receive the typed `{astVersion, root}` envelope; all other requests receive the bare mdast Root. The response varies on this header (`Vary: X-Crowi-Ast-Version`). */
7067
8017
  200: {
7068
8018
  headers: {
7069
8019
  [name: string]: unknown;
7070
8020
  };
7071
8021
  content: {
7072
8022
  "application/json": {
7073
- renderedAst?: unknown;
8023
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
8024
+ renderedAstArtifactKey?: string;
7074
8025
  };
7075
8026
  };
7076
8027
  };
@@ -7091,6 +8042,20 @@ interface paths {
7091
8042
  };
7092
8043
  };
7093
8044
  };
8045
+ /** @description Per-user rate limit exceeded */
8046
+ 429: {
8047
+ headers: {
8048
+ [name: string]: unknown;
8049
+ };
8050
+ content: {
8051
+ "application/json": {
8052
+ /** @enum {string} */
8053
+ error: "rate_limited";
8054
+ message: string;
8055
+ retryAfterSeconds: number;
8056
+ };
8057
+ };
8058
+ };
7094
8059
  /** @description Renderer pipeline failure */
7095
8060
  500: {
7096
8061
  headers: {
@@ -7907,6 +8872,7 @@ interface paths {
7907
8872
  fileSize: number;
7908
8873
  createdAt: string;
7909
8874
  url: string;
8875
+ originalUrl: string;
7910
8876
  inUse: boolean;
7911
8877
  }[];
7912
8878
  past: {
@@ -7934,6 +8900,7 @@ interface paths {
7934
8900
  fileSize: number;
7935
8901
  createdAt: string;
7936
8902
  url: string;
8903
+ originalUrl: string;
7937
8904
  inUse: boolean;
7938
8905
  };
7939
8906
  referencingRevisions: {
@@ -8082,6 +9049,7 @@ interface paths {
8082
9049
  fileSize: number;
8083
9050
  createdAt: string;
8084
9051
  url: string;
9052
+ originalUrl: string;
8085
9053
  inUse: boolean;
8086
9054
  }[];
8087
9055
  };
@@ -8204,6 +9172,7 @@ interface paths {
8204
9172
  fileSize: number;
8205
9173
  createdAt: string;
8206
9174
  url: string;
9175
+ originalUrl: string;
8207
9176
  inUse: boolean;
8208
9177
  };
8209
9178
  url: string;
@@ -8272,6 +9241,21 @@ interface paths {
8272
9241
  };
8273
9242
  };
8274
9243
  };
9244
+ /** @description MIME type not in the unified upload allow-list (feature-attachment-upload-policy) */
9245
+ 415: {
9246
+ headers: {
9247
+ [name: string]: unknown;
9248
+ };
9249
+ content: {
9250
+ "application/json": {
9251
+ error: {
9252
+ /** @enum {string} */
9253
+ code: "INVALID_PAGE_ID" | "PAGE_NOT_FOUND" | "FILE_MISSING" | "FILE_TOO_LARGE" | "DISALLOWED_MIME" | "INVALID_ATTACHMENT_ID" | "ATTACHMENT_NOT_FOUND" | "FORBIDDEN_FOR_DELETE" | "UPLOAD_FAILED" | "REMOVE_FAILED";
9254
+ message: string;
9255
+ };
9256
+ };
9257
+ };
9258
+ };
8275
9259
  /** @description Upload / storage failure */
8276
9260
  500: {
8277
9261
  headers: {
@@ -8346,7 +9330,7 @@ interface paths {
8346
9330
  content: {
8347
9331
  "application/json": {
8348
9332
  /** @enum {string} */
8349
- error: "too_large" | "disallowed_type" | "rate_limited" | "no_permission";
9333
+ error: "too_large" | "disallowed_type" | "DISALLOWED_MIME" | "rate_limited" | "no_permission";
8350
9334
  message: string;
8351
9335
  details?: {
8352
9336
  [key: string]: unknown;
@@ -8379,7 +9363,7 @@ interface paths {
8379
9363
  content: {
8380
9364
  "application/json": {
8381
9365
  /** @enum {string} */
8382
- error: "too_large" | "disallowed_type" | "rate_limited" | "no_permission";
9366
+ error: "too_large" | "disallowed_type" | "DISALLOWED_MIME" | "rate_limited" | "no_permission";
8383
9367
  message: string;
8384
9368
  details?: {
8385
9369
  [key: string]: unknown;
@@ -8395,7 +9379,7 @@ interface paths {
8395
9379
  content: {
8396
9380
  "application/json": {
8397
9381
  /** @enum {string} */
8398
- error: "too_large" | "disallowed_type" | "rate_limited" | "no_permission";
9382
+ error: "too_large" | "disallowed_type" | "DISALLOWED_MIME" | "rate_limited" | "no_permission";
8399
9383
  message: string;
8400
9384
  details?: {
8401
9385
  [key: string]: unknown;
@@ -8403,7 +9387,7 @@ interface paths {
8403
9387
  };
8404
9388
  };
8405
9389
  };
8406
- /** @description MIME type not in the per-intent allow-list */
9390
+ /** @description MIME type not in the unified upload allow-list (feature-attachment-upload-policy) */
8407
9391
  415: {
8408
9392
  headers: {
8409
9393
  [name: string]: unknown;
@@ -8411,7 +9395,7 @@ interface paths {
8411
9395
  content: {
8412
9396
  "application/json": {
8413
9397
  /** @enum {string} */
8414
- error: "too_large" | "disallowed_type" | "rate_limited" | "no_permission";
9398
+ error: "too_large" | "disallowed_type" | "DISALLOWED_MIME" | "rate_limited" | "no_permission";
8415
9399
  message: string;
8416
9400
  details?: {
8417
9401
  [key: string]: unknown;
@@ -8427,7 +9411,7 @@ interface paths {
8427
9411
  content: {
8428
9412
  "application/json": {
8429
9413
  /** @enum {string} */
8430
- error: "too_large" | "disallowed_type" | "rate_limited" | "no_permission";
9414
+ error: "too_large" | "disallowed_type" | "DISALLOWED_MIME" | "rate_limited" | "no_permission";
8431
9415
  message: string;
8432
9416
  details?: {
8433
9417
  [key: string]: unknown;
@@ -8509,6 +9493,7 @@ interface paths {
8509
9493
  fileSize: number;
8510
9494
  createdAt: string;
8511
9495
  url: string;
9496
+ originalUrl: string;
8512
9497
  };
8513
9498
  };
8514
9499
  };
@@ -8780,8 +9765,10 @@ interface paths {
8780
9765
  username: string;
8781
9766
  }[];
8782
9767
  codeBlockLanguages?: string[];
9768
+ rawSpaceLinks?: string[];
8783
9769
  };
8784
- renderedAst?: unknown;
9770
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
9771
+ renderedAstArtifactKey?: string;
8785
9772
  rendererVersion?: string;
8786
9773
  parentRevisionId?: string | null;
8787
9774
  /** @enum {string} */
@@ -9509,6 +10496,7 @@ interface paths {
9509
10496
  /** @enum {string} */
9510
10497
  registrationMode: "Open" | "Resricted" | "Closed";
9511
10498
  registrationWhiteList: string[];
10499
+ linkCardEnabled: boolean;
9512
10500
  };
9513
10501
  };
9514
10502
  };
@@ -9578,6 +10566,7 @@ interface paths {
9578
10566
  /** @enum {string} */
9579
10567
  registrationMode: "Open" | "Resricted" | "Closed";
9580
10568
  registrationWhiteList: string[];
10569
+ linkCardEnabled: boolean;
9581
10570
  };
9582
10571
  };
9583
10572
  };
@@ -9592,6 +10581,7 @@ interface paths {
9592
10581
  /** @enum {string} */
9593
10582
  registrationMode: "Open" | "Resricted" | "Closed";
9594
10583
  registrationWhiteList: string[];
10584
+ linkCardEnabled: boolean;
9595
10585
  };
9596
10586
  };
9597
10587
  };
@@ -10481,20 +11471,169 @@ interface paths {
10481
11471
  };
10482
11472
  cookie?: never;
10483
11473
  };
10484
- requestBody?: never;
11474
+ requestBody?: never;
11475
+ responses: {
11476
+ /** @description User removed */
11477
+ 200: {
11478
+ headers: {
11479
+ [name: string]: unknown;
11480
+ };
11481
+ content: {
11482
+ "application/json": {
11483
+ deletedId: string;
11484
+ };
11485
+ };
11486
+ };
11487
+ /** @description Invalid id */
11488
+ 400: {
11489
+ headers: {
11490
+ [name: string]: unknown;
11491
+ };
11492
+ content: {
11493
+ "application/json": {
11494
+ error: {
11495
+ /** @enum {string} */
11496
+ code: "VALIDATION_ERROR";
11497
+ message: string;
11498
+ details?: {
11499
+ fieldErrors: {
11500
+ [key: string]: string[];
11501
+ };
11502
+ formErrors: string[];
11503
+ };
11504
+ };
11505
+ };
11506
+ };
11507
+ };
11508
+ /** @description Authentication required */
11509
+ 401: {
11510
+ headers: {
11511
+ [name: string]: unknown;
11512
+ };
11513
+ content: {
11514
+ "application/json": {
11515
+ error: {
11516
+ /** @enum {string} */
11517
+ code: "AUTHENTICATION_REQUIRED";
11518
+ /** @enum {string} */
11519
+ message: "Authentication is required";
11520
+ redirectTo?: string;
11521
+ };
11522
+ };
11523
+ };
11524
+ };
11525
+ /** @description Admin permission required */
11526
+ 403: {
11527
+ headers: {
11528
+ [name: string]: unknown;
11529
+ };
11530
+ content: {
11531
+ "application/json": {
11532
+ error: {
11533
+ /** @enum {string} */
11534
+ code: "ADMIN_REQUIRED";
11535
+ /** @enum {string} */
11536
+ message: "Admin permission required";
11537
+ redirectTo?: string;
11538
+ };
11539
+ };
11540
+ };
11541
+ };
11542
+ /** @description User not found */
11543
+ 404: {
11544
+ headers: {
11545
+ [name: string]: unknown;
11546
+ };
11547
+ content: {
11548
+ "application/json": {
11549
+ error: {
11550
+ /** @enum {string} */
11551
+ code: "NOT_FOUND";
11552
+ message: string;
11553
+ };
11554
+ };
11555
+ };
11556
+ };
11557
+ /** @description User is not in the INVITED status and cannot be physically removed */
11558
+ 409: {
11559
+ headers: {
11560
+ [name: string]: unknown;
11561
+ };
11562
+ content: {
11563
+ "application/json": {
11564
+ error: {
11565
+ /** @enum {string} */
11566
+ code: "CONFLICT";
11567
+ message: string;
11568
+ };
11569
+ };
11570
+ };
11571
+ };
11572
+ /** @description Internal server error */
11573
+ 500: {
11574
+ headers: {
11575
+ [name: string]: unknown;
11576
+ };
11577
+ content: {
11578
+ "application/json": {
11579
+ error: {
11580
+ /** @enum {string} */
11581
+ code: "INTERNAL_ERROR";
11582
+ /** @enum {string} */
11583
+ message: "Internal server error";
11584
+ };
11585
+ };
11586
+ };
11587
+ };
11588
+ };
11589
+ };
11590
+ options?: never;
11591
+ head?: never;
11592
+ /** Update a user's name and email */
11593
+ patch: {
11594
+ parameters: {
11595
+ query?: never;
11596
+ header?: never;
11597
+ path: {
11598
+ id: string;
11599
+ };
11600
+ cookie?: never;
11601
+ };
11602
+ requestBody?: {
11603
+ content: {
11604
+ "application/json": {
11605
+ name: string;
11606
+ /** Format: email */
11607
+ email: string;
11608
+ };
11609
+ };
11610
+ };
10485
11611
  responses: {
10486
- /** @description User removed */
11612
+ /** @description Updated user */
10487
11613
  200: {
10488
11614
  headers: {
10489
11615
  [name: string]: unknown;
10490
11616
  };
10491
11617
  content: {
10492
11618
  "application/json": {
10493
- deletedId: string;
11619
+ user: {
11620
+ _id: string;
11621
+ id?: string;
11622
+ username: string;
11623
+ name: string;
11624
+ /** Format: email */
11625
+ email: string;
11626
+ image?: string | null;
11627
+ introduction?: string;
11628
+ createdAt: string;
11629
+ admin?: boolean;
11630
+ /** @enum {integer} */
11631
+ status?: 1 | 2 | 3 | 4 | 5;
11632
+ };
10494
11633
  };
10495
11634
  };
10496
11635
  };
10497
- /** @description Invalid id */
11636
+ /** @description Validation error */
10498
11637
  400: {
10499
11638
  headers: {
10500
11639
  [name: string]: unknown;
@@ -10564,7 +11703,7 @@ interface paths {
10564
11703
  };
10565
11704
  };
10566
11705
  };
10567
- /** @description User is not in the INVITED status and cannot be physically removed */
11706
+ /** @description Email already in use by another user */
10568
11707
  409: {
10569
11708
  headers: {
10570
11709
  [name: string]: unknown;
@@ -10597,10 +11736,18 @@ interface paths {
10597
11736
  };
10598
11737
  };
10599
11738
  };
10600
- options?: never;
10601
- head?: never;
10602
- /** Update a user's name and email */
10603
- patch: {
11739
+ trace?: never;
11740
+ };
11741
+ "/admin/users/{id}/admin": {
11742
+ parameters: {
11743
+ query?: never;
11744
+ header?: never;
11745
+ path?: never;
11746
+ cookie?: never;
11747
+ };
11748
+ get?: never;
11749
+ /** Grant admin permission to a user */
11750
+ put: {
10604
11751
  parameters: {
10605
11752
  query?: never;
10606
11753
  header?: never;
@@ -10609,15 +11756,7 @@ interface paths {
10609
11756
  };
10610
11757
  cookie?: never;
10611
11758
  };
10612
- requestBody?: {
10613
- content: {
10614
- "application/json": {
10615
- name: string;
10616
- /** Format: email */
10617
- email: string;
10618
- };
10619
- };
10620
- };
11759
+ requestBody?: never;
10621
11760
  responses: {
10622
11761
  /** @description Updated user */
10623
11762
  200: {
@@ -10643,7 +11782,7 @@ interface paths {
10643
11782
  };
10644
11783
  };
10645
11784
  };
10646
- /** @description Validation error */
11785
+ /** @description Invalid id */
10647
11786
  400: {
10648
11787
  headers: {
10649
11788
  [name: string]: unknown;
@@ -10713,21 +11852,6 @@ interface paths {
10713
11852
  };
10714
11853
  };
10715
11854
  };
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
11855
  /** @description Internal server error */
10732
11856
  500: {
10733
11857
  headers: {
@@ -10746,18 +11870,9 @@ interface paths {
10746
11870
  };
10747
11871
  };
10748
11872
  };
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: {
11873
+ post?: never;
11874
+ /** Revoke admin permission from a user */
11875
+ delete: {
10761
11876
  parameters: {
10762
11877
  query?: never;
10763
11878
  header?: never;
@@ -10880,9 +11995,21 @@ interface paths {
10880
11995
  };
10881
11996
  };
10882
11997
  };
10883
- post?: never;
10884
- /** Revoke admin permission from a user */
10885
- delete: {
11998
+ options?: never;
11999
+ head?: never;
12000
+ patch?: never;
12001
+ trace?: never;
12002
+ };
12003
+ "/admin/users/{id}/status/active": {
12004
+ parameters: {
12005
+ query?: never;
12006
+ header?: never;
12007
+ path?: never;
12008
+ cookie?: never;
12009
+ };
12010
+ get?: never;
12011
+ /** Activate a user (status -> ACTIVE) */
12012
+ put: {
10886
12013
  parameters: {
10887
12014
  query?: never;
10888
12015
  header?: never;
@@ -11005,12 +12132,14 @@ interface paths {
11005
12132
  };
11006
12133
  };
11007
12134
  };
12135
+ post?: never;
12136
+ delete?: never;
11008
12137
  options?: never;
11009
12138
  head?: never;
11010
12139
  patch?: never;
11011
12140
  trace?: never;
11012
12141
  };
11013
- "/admin/users/{id}/status/active": {
12142
+ "/admin/users/{id}/status/suspended": {
11014
12143
  parameters: {
11015
12144
  query?: never;
11016
12145
  header?: never;
@@ -11018,7 +12147,7 @@ interface paths {
11018
12147
  cookie?: never;
11019
12148
  };
11020
12149
  get?: never;
11021
- /** Activate a user (status -> ACTIVE) */
12150
+ /** Suspend a user (status -> SUSPENDED) */
11022
12151
  put: {
11023
12152
  parameters: {
11024
12153
  query?: never;
@@ -11149,7 +12278,7 @@ interface paths {
11149
12278
  patch?: never;
11150
12279
  trace?: never;
11151
12280
  };
11152
- "/admin/users/{id}/status/suspended": {
12281
+ "/admin/users/{id}/reset-password": {
11153
12282
  parameters: {
11154
12283
  query?: never;
11155
12284
  header?: never;
@@ -11157,8 +12286,9 @@ interface paths {
11157
12286
  cookie?: never;
11158
12287
  };
11159
12288
  get?: never;
11160
- /** Suspend a user (status -> SUSPENDED) */
11161
- put: {
12289
+ put?: never;
12290
+ /** Reset a user's password to a random value (returns plaintext) */
12291
+ post: {
11162
12292
  parameters: {
11163
12293
  query?: never;
11164
12294
  header?: never;
@@ -11169,7 +12299,7 @@ interface paths {
11169
12299
  };
11170
12300
  requestBody?: never;
11171
12301
  responses: {
11172
- /** @description Updated user */
12302
+ /** @description Updated user + new plaintext password */
11173
12303
  200: {
11174
12304
  headers: {
11175
12305
  [name: string]: unknown;
@@ -11190,6 +12320,7 @@ interface paths {
11190
12320
  /** @enum {integer} */
11191
12321
  status?: 1 | 2 | 3 | 4 | 5;
11192
12322
  };
12323
+ newPassword: string;
11193
12324
  };
11194
12325
  };
11195
12326
  };
@@ -11281,14 +12412,13 @@ interface paths {
11281
12412
  };
11282
12413
  };
11283
12414
  };
11284
- post?: never;
11285
12415
  delete?: never;
11286
12416
  options?: never;
11287
12417
  head?: never;
11288
12418
  patch?: never;
11289
12419
  trace?: never;
11290
12420
  };
11291
- "/admin/users/{id}/reset-password": {
12421
+ "/admin/users/{id}/resend-invite": {
11292
12422
  parameters: {
11293
12423
  query?: never;
11294
12424
  header?: never;
@@ -11297,7 +12427,7 @@ interface paths {
11297
12427
  };
11298
12428
  get?: never;
11299
12429
  put?: never;
11300
- /** Reset a user's password to a random value (returns plaintext) */
12430
+ /** Re-issue an invite token and resend the invitation email (INVITED status only) */
11301
12431
  post: {
11302
12432
  parameters: {
11303
12433
  query?: never;
@@ -11309,7 +12439,7 @@ interface paths {
11309
12439
  };
11310
12440
  requestBody?: never;
11311
12441
  responses: {
11312
- /** @description Updated user + new plaintext password */
12442
+ /** @description Invitation email resent; returns the (unchanged) user */
11313
12443
  200: {
11314
12444
  headers: {
11315
12445
  [name: string]: unknown;
@@ -11330,7 +12460,6 @@ interface paths {
11330
12460
  /** @enum {integer} */
11331
12461
  status?: 1 | 2 | 3 | 4 | 5;
11332
12462
  };
11333
- newPassword: string;
11334
12463
  };
11335
12464
  };
11336
12465
  };
@@ -11404,7 +12533,22 @@ interface paths {
11404
12533
  };
11405
12534
  };
11406
12535
  };
11407
- /** @description Internal server error */
12536
+ /** @description User is not in the INVITED status, so there is no pending invite to resend */
12537
+ 409: {
12538
+ headers: {
12539
+ [name: string]: unknown;
12540
+ };
12541
+ content: {
12542
+ "application/json": {
12543
+ error: {
12544
+ /** @enum {string} */
12545
+ code: "CONFLICT";
12546
+ message: string;
12547
+ };
12548
+ };
12549
+ };
12550
+ };
12551
+ /** @description Internal server error (e.g. the invitation email failed to send) */
11408
12552
  500: {
11409
12553
  headers: {
11410
12554
  [name: string]: unknown;
@@ -11705,15 +12849,22 @@ interface paths {
11705
12849
  name: string;
11706
12850
  version: string;
11707
12851
  requires?: string[];
12852
+ modelAccess?: string[];
11708
12853
  hasConfig: boolean;
11709
12854
  registers: string[];
11710
12855
  adminPlacement: {
11711
12856
  /** @enum {string} */
11712
- section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer";
12857
+ section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer" | "platform";
11713
12858
  label: string;
11714
12859
  icon?: string;
11715
12860
  };
11716
12861
  supportsHotReload: boolean;
12862
+ /**
12863
+ * @default active
12864
+ * @enum {string}
12865
+ */
12866
+ status: "active" | "failed";
12867
+ error?: string;
11717
12868
  }[];
11718
12869
  };
11719
12870
  };
@@ -12699,7 +13850,7 @@ interface components {
12699
13850
  };
12700
13851
  };
12701
13852
  /** @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";
13853
+ 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
13854
  ApplicationNotInstalledError: {
12704
13855
  error: {
12705
13856
  /** @enum {string} */
@@ -12880,6 +14031,12 @@ interface components {
12880
14031
  /** @enum {string} */
12881
14032
  status: "approved" | "denied";
12882
14033
  };
14034
+ ClientInfoResponse: {
14035
+ clientId: string;
14036
+ name: string;
14037
+ firstParty: boolean;
14038
+ trusted: boolean;
14039
+ };
12883
14040
  UserPublic: {
12884
14041
  _id: string;
12885
14042
  id?: string;
@@ -12939,8 +14096,10 @@ interface components {
12939
14096
  username: string;
12940
14097
  }[];
12941
14098
  codeBlockLanguages?: string[];
14099
+ rawSpaceLinks?: string[];
12942
14100
  };
12943
- renderedAst?: unknown;
14101
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
14102
+ renderedAstArtifactKey?: string;
12944
14103
  rendererVersion?: string;
12945
14104
  parentRevisionId?: string | null;
12946
14105
  /** @enum {string} */
@@ -13008,6 +14167,16 @@ interface components {
13008
14167
  likerCount?: number;
13009
14168
  seenUsersCount?: number;
13010
14169
  };
14170
+ RenderedAstEnvelope: {
14171
+ /** @enum {number} */
14172
+ astVersion: 1;
14173
+ root?: unknown;
14174
+ };
14175
+ LegacyRenderedAstRoot: {
14176
+ /** @enum {string} */
14177
+ type: "root";
14178
+ children: unknown[];
14179
+ };
13011
14180
  PageWithRevision: {
13012
14181
  _id: string;
13013
14182
  path: string;
@@ -13043,8 +14212,10 @@ interface components {
13043
14212
  username: string;
13044
14213
  }[];
13045
14214
  codeBlockLanguages?: string[];
14215
+ rawSpaceLinks?: string[];
13046
14216
  };
13047
- renderedAst?: unknown;
14217
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
14218
+ renderedAstArtifactKey?: string;
13048
14219
  rendererVersion?: string;
13049
14220
  parentRevisionId?: string | null;
13050
14221
  /** @enum {string} */
@@ -13144,8 +14315,10 @@ interface components {
13144
14315
  username: string;
13145
14316
  }[];
13146
14317
  codeBlockLanguages?: string[];
14318
+ rawSpaceLinks?: string[];
13147
14319
  };
13148
- renderedAst?: unknown;
14320
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
14321
+ renderedAstArtifactKey?: string;
13149
14322
  rendererVersion?: string;
13150
14323
  parentRevisionId?: string | null;
13151
14324
  /** @enum {string} */
@@ -13189,6 +14362,7 @@ interface components {
13189
14362
  username: string;
13190
14363
  }[];
13191
14364
  codeBlockLanguages?: string[];
14365
+ rawSpaceLinks?: string[];
13192
14366
  };
13193
14367
  TocEntry: {
13194
14368
  level: number;
@@ -13227,6 +14401,7 @@ interface components {
13227
14401
  * @enum {string}
13228
14402
  */
13229
14403
  order: "asc" | "desc";
14404
+ revision_id?: string;
13230
14405
  };
13231
14406
  ListPagesResponse: {
13232
14407
  pages: {
@@ -13264,8 +14439,10 @@ interface components {
13264
14439
  username: string;
13265
14440
  }[];
13266
14441
  codeBlockLanguages?: string[];
14442
+ rawSpaceLinks?: string[];
13267
14443
  };
13268
- renderedAst?: unknown;
14444
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
14445
+ renderedAstArtifactKey?: string;
13269
14446
  rendererVersion?: string;
13270
14447
  parentRevisionId?: string | null;
13271
14448
  /** @enum {string} */
@@ -13373,8 +14550,116 @@ interface components {
13373
14550
  username: string;
13374
14551
  }[];
13375
14552
  codeBlockLanguages?: string[];
14553
+ rawSpaceLinks?: string[];
14554
+ };
14555
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
14556
+ renderedAstArtifactKey?: string;
14557
+ rendererVersion?: string;
14558
+ parentRevisionId?: string | null;
14559
+ /** @enum {string} */
14560
+ type?: "snapshot" | "incremental";
14561
+ savedBy?: string | {
14562
+ _id: string;
14563
+ id?: string;
14564
+ username: string;
14565
+ name: string;
14566
+ /** Format: email */
14567
+ email: string;
14568
+ image?: string | null;
14569
+ createdAt: string;
14570
+ } | null;
14571
+ contributors?: (string | {
14572
+ _id: string;
14573
+ id?: string;
14574
+ username: string;
14575
+ name: string;
14576
+ /** Format: email */
14577
+ email: string;
14578
+ image?: string | null;
14579
+ createdAt: string;
14580
+ })[];
14581
+ message?: string;
14582
+ /** @enum {string} */
14583
+ editVia?: "web" | "oauth" | "pat";
14584
+ };
14585
+ redirectTo?: string | null;
14586
+ /** @enum {string|null} */
14587
+ status?: "wip" | "published" | "deleted" | "deprecated" | "draft" | null;
14588
+ grant?: number;
14589
+ grantedUsers?: string[];
14590
+ creator?: string | {
14591
+ _id: string;
14592
+ id?: string;
14593
+ username: string;
14594
+ name: string;
14595
+ /** Format: email */
14596
+ email: string;
14597
+ image?: string | null;
14598
+ createdAt: string;
14599
+ } | null;
14600
+ lastUpdateUser?: string | {
14601
+ _id: string;
14602
+ id?: string;
14603
+ username: string;
14604
+ name: string;
14605
+ /** Format: email */
14606
+ email: string;
14607
+ image?: string | null;
14608
+ createdAt: string;
14609
+ } | null;
14610
+ liker?: string[];
14611
+ /** @default 0 */
14612
+ commentCount: number;
14613
+ extended?: {
14614
+ [key: string]: unknown;
14615
+ };
14616
+ createdAt: string;
14617
+ updatedAt?: string;
14618
+ currentRevision?: string | null;
14619
+ yjsCheckpointAt?: string | null;
14620
+ latestRevision?: string;
14621
+ likerCount?: number;
14622
+ seenUsersCount?: number;
14623
+ } | null;
14624
+ contentPage?: {
14625
+ _id: string;
14626
+ path: string;
14627
+ revision?: string | {
14628
+ _id: string;
14629
+ path: string;
14630
+ body: string;
14631
+ /** @default markdown */
14632
+ format: string;
14633
+ author?: {
14634
+ _id: string;
14635
+ id?: string;
14636
+ username: string;
14637
+ name: string;
14638
+ /** Format: email */
14639
+ email: string;
14640
+ image?: string | null;
14641
+ createdAt: string;
14642
+ } | null;
14643
+ createdAt: string;
14644
+ meta?: {
14645
+ toc?: {
14646
+ level: number;
14647
+ text: string;
14648
+ anchorId: string;
14649
+ }[];
14650
+ wikiLinks?: {
14651
+ raw: string;
14652
+ target: string;
14653
+ displayText?: string;
14654
+ }[];
14655
+ mentions?: {
14656
+ username: string;
14657
+ }[];
14658
+ codeBlockLanguages?: string[];
14659
+ rawSpaceLinks?: string[];
13376
14660
  };
13377
- renderedAst?: unknown;
14661
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
14662
+ renderedAstArtifactKey?: string;
13378
14663
  rendererVersion?: string;
13379
14664
  parentRevisionId?: string | null;
13380
14665
  /** @enum {string} */
@@ -13442,6 +14727,7 @@ interface components {
13442
14727
  likerCount?: number;
13443
14728
  seenUsersCount?: number;
13444
14729
  } | null;
14730
+ total: number;
13445
14731
  };
13446
14732
  GetPageResponse: {
13447
14733
  page: {
@@ -13479,8 +14765,10 @@ interface components {
13479
14765
  username: string;
13480
14766
  }[];
13481
14767
  codeBlockLanguages?: string[];
14768
+ rawSpaceLinks?: string[];
13482
14769
  };
13483
- renderedAst?: unknown;
14770
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
14771
+ renderedAstArtifactKey?: string;
13484
14772
  rendererVersion?: string;
13485
14773
  parentRevisionId?: string | null;
13486
14774
  /** @enum {string} */
@@ -13635,8 +14923,10 @@ interface components {
13635
14923
  username: string;
13636
14924
  }[];
13637
14925
  codeBlockLanguages?: string[];
14926
+ rawSpaceLinks?: string[];
13638
14927
  };
13639
- renderedAst?: unknown;
14928
+ renderedAst?: components["schemas"]["RenderedAstEnvelope"] | components["schemas"]["LegacyRenderedAstRoot"];
14929
+ renderedAstArtifactKey?: string;
13640
14930
  rendererVersion?: string;
13641
14931
  parentRevisionId?: string | null;
13642
14932
  /** @enum {string} */
@@ -13729,6 +15019,7 @@ interface components {
13729
15019
  fileSize: number;
13730
15020
  createdAt: string;
13731
15021
  url: string;
15022
+ originalUrl: string;
13732
15023
  inUse: boolean;
13733
15024
  };
13734
15025
  AttachmentMeta: {
@@ -13755,6 +15046,7 @@ interface components {
13755
15046
  fileSize: number;
13756
15047
  createdAt: string;
13757
15048
  url: string;
15049
+ originalUrl: string;
13758
15050
  };
13759
15051
  ListAttachmentsResponse: {
13760
15052
  attachments: {
@@ -13781,6 +15073,7 @@ interface components {
13781
15073
  fileSize: number;
13782
15074
  createdAt: string;
13783
15075
  url: string;
15076
+ originalUrl: string;
13784
15077
  inUse: boolean;
13785
15078
  }[];
13786
15079
  };
@@ -13809,6 +15102,7 @@ interface components {
13809
15102
  fileSize: number;
13810
15103
  createdAt: string;
13811
15104
  url: string;
15105
+ originalUrl: string;
13812
15106
  inUse: boolean;
13813
15107
  };
13814
15108
  referencingRevisions: {
@@ -13856,6 +15150,7 @@ interface components {
13856
15150
  fileSize: number;
13857
15151
  createdAt: string;
13858
15152
  url: string;
15153
+ originalUrl: string;
13859
15154
  inUse: boolean;
13860
15155
  }[];
13861
15156
  past: {
@@ -13883,6 +15178,7 @@ interface components {
13883
15178
  fileSize: number;
13884
15179
  createdAt: string;
13885
15180
  url: string;
15181
+ originalUrl: string;
13886
15182
  inUse: boolean;
13887
15183
  };
13888
15184
  referencingRevisions: {
@@ -13920,7 +15216,7 @@ interface components {
13920
15216
  };
13921
15217
  UploadAttachmentError: {
13922
15218
  /** @enum {string} */
13923
- error: "too_large" | "disallowed_type" | "rate_limited" | "no_permission";
15219
+ error: "too_large" | "disallowed_type" | "DISALLOWED_MIME" | "rate_limited" | "no_permission";
13924
15220
  message: string;
13925
15221
  details?: {
13926
15222
  [key: string]: unknown;
@@ -14224,30 +15520,44 @@ interface components {
14224
15520
  name: string;
14225
15521
  version: string;
14226
15522
  requires?: string[];
15523
+ modelAccess?: string[];
14227
15524
  hasConfig: boolean;
14228
15525
  registers: string[];
14229
15526
  adminPlacement: {
14230
15527
  /** @enum {string} */
14231
- section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer";
15528
+ section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer" | "platform";
14232
15529
  label: string;
14233
15530
  icon?: string;
14234
15531
  };
14235
15532
  supportsHotReload: boolean;
15533
+ /**
15534
+ * @default active
15535
+ * @enum {string}
15536
+ */
15537
+ status: "active" | "failed";
15538
+ error?: string;
14236
15539
  };
14237
15540
  ListPluginsResponse: {
14238
15541
  plugins: {
14239
15542
  name: string;
14240
15543
  version: string;
14241
15544
  requires?: string[];
15545
+ modelAccess?: string[];
14242
15546
  hasConfig: boolean;
14243
15547
  registers: string[];
14244
15548
  adminPlacement: {
14245
15549
  /** @enum {string} */
14246
- section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer";
15550
+ section: "settings" | "shared" | "storage" | "mail" | "notification" | "auth" | "search" | "renderer" | "platform";
14247
15551
  label: string;
14248
15552
  icon?: string;
14249
15553
  };
14250
15554
  supportsHotReload: boolean;
15555
+ /**
15556
+ * @default active
15557
+ * @enum {string}
15558
+ */
15559
+ status: "active" | "failed";
15560
+ error?: string;
14251
15561
  }[];
14252
15562
  };
14253
15563
  PluginConfigResponse: {
@@ -14300,6 +15610,8 @@ interface components {
14300
15610
  }[];
14301
15611
  };
14302
15612
  };
15613
+ /** @enum {string} */
15614
+ Capability: "oauth" | "oauth:auth-code" | "oauth:device" | "oauth:pkce" | "pat" | "pages" | "comments" | "bookmarks" | "attachments" | "notifications" | "search" | "collab" | "collab:redis" | "link-card";
14303
15615
  };
14304
15616
  responses: never;
14305
15617
  parameters: never;