@crowi/api-contract 2.0.0-alpha.13 → 2.0.0-alpha.15

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.
package/dist/index.mjs CHANGED
@@ -1047,7 +1047,7 @@ var adminStorageRoutes = {
1047
1047
  };
1048
1048
 
1049
1049
  // src/contracts/admin/users.ts
1050
- import { createRoute as createRoute8 } from "@hono/zod-openapi";
1050
+ import { createRoute as createRoute8, z as z14 } from "@hono/zod-openapi";
1051
1051
 
1052
1052
  // src/schemas/admin/users.ts
1053
1053
  import { z as z13 } from "@hono/zod-openapi";
@@ -1101,8 +1101,11 @@ var ListAdminUsersRequestSchema = z13.object({
1101
1101
  page: z13.coerce.number().int().min(1).optional().default(1),
1102
1102
  limit: z13.coerce.number().int().min(1).max(100).optional().default(50)
1103
1103
  });
1104
+ var AdminUserListItemSchema = UserPublicSchema.extend({
1105
+ linkedProviders: z13.array(z13.string())
1106
+ });
1104
1107
  var ListAdminUsersResponseSchema = z13.object({
1105
- users: z13.array(UserPublicSchema),
1108
+ users: z13.array(AdminUserListItemSchema),
1106
1109
  pager: AdminPagerSchema
1107
1110
  });
1108
1111
  var SearchAdminUsersByEmailRequestSchema = z13.object({
@@ -1137,8 +1140,7 @@ var InviteUsersResponseSchema = z13.object({
1137
1140
  results: z13.array(InvitedUserResultSchema)
1138
1141
  });
1139
1142
  var EditAdminUserRequestSchema = z13.object({
1140
- name: z13.string().min(1),
1141
- email: z13.string().email()
1143
+ name: z13.string().min(1)
1142
1144
  });
1143
1145
  var AdminUserMutationResponseSchema = z13.object({
1144
1146
  user: UserPublicSchema
@@ -1150,6 +1152,32 @@ var ResetPasswordResponseSchema = z13.object({
1150
1152
  var UpdateAdminUserEmailRequestSchema = z13.object({
1151
1153
  email: z13.string().email()
1152
1154
  });
1155
+ var EmailLockedByFederatedIdentityErrorSchema = z13.object({
1156
+ error: z13.object({
1157
+ code: z13.literal("EMAIL_LOCKED_BY_FEDERATED_IDENTITY"),
1158
+ message: z13.string()
1159
+ })
1160
+ });
1161
+ var AdminUserIdentityParamSchema = AdminUserIdParamSchema.extend({
1162
+ provider: z13.string()
1163
+ });
1164
+ var UnlinkUserIdentityResponseSchema = z13.object({
1165
+ user: UserPublicSchema,
1166
+ passwordIssued: z13.boolean(),
1167
+ newPassword: z13.string().optional()
1168
+ });
1169
+ var UnlinkUserIdentityNotFoundErrorSchema = z13.object({
1170
+ error: z13.object({
1171
+ code: z13.enum(["NOT_FOUND", "NOT_LINKED"]),
1172
+ message: z13.string()
1173
+ })
1174
+ });
1175
+ var UnlinkUserIdentityConflictErrorSchema = z13.object({
1176
+ error: z13.object({
1177
+ code: z13.enum(["CANNOT_UNLINK_SELF", "PASSWORD_AUTH_DISABLED"]),
1178
+ message: z13.string()
1179
+ })
1180
+ });
1153
1181
  var DeleteAdminUserResponseSchema = z13.object({
1154
1182
  deletedId: z13.string()
1155
1183
  });
@@ -1253,7 +1281,7 @@ var editUserRoute = createRoute8({
1253
1281
  path: "/admin/users/{id}",
1254
1282
  tags: ["admin.users"],
1255
1283
  security: [{ bearerAuth: [] }],
1256
- summary: "Update a user's name and email",
1284
+ summary: "Update a user's name (email changes go through PUT /admin/users/{id}/email)",
1257
1285
  request: {
1258
1286
  params: AdminUserIdParamSchema,
1259
1287
  body: {
@@ -1281,10 +1309,6 @@ var editUserRoute = createRoute8({
1281
1309
  description: "User not found",
1282
1310
  content: { "application/json": { schema: NotFoundErrorSchema } }
1283
1311
  },
1284
- 409: {
1285
- description: "Email already in use by another user",
1286
- content: { "application/json": { schema: ConflictErrorSchema } }
1287
- },
1288
1312
  500: {
1289
1313
  description: "Internal server error",
1290
1314
  content: { "application/json": { schema: InternalServerErrorSchema } }
@@ -1545,8 +1569,48 @@ var updateUserEmailRoute = createRoute8({
1545
1569
  content: { "application/json": { schema: NotFoundErrorSchema } }
1546
1570
  },
1547
1571
  409: {
1548
- description: "Email already in use by another user",
1549
- content: { "application/json": { schema: ConflictErrorSchema } }
1572
+ description: "Email already in use by another user, or locked by a linked federated identity",
1573
+ content: { "application/json": { schema: z14.union([ConflictErrorSchema, EmailLockedByFederatedIdentityErrorSchema]) } }
1574
+ },
1575
+ 500: {
1576
+ description: "Internal server error",
1577
+ content: { "application/json": { schema: InternalServerErrorSchema } }
1578
+ }
1579
+ }
1580
+ });
1581
+ var unlinkUserIdentityRoute = createRoute8({
1582
+ method: "delete",
1583
+ path: "/admin/users/{id}/identities/{provider}",
1584
+ tags: ["admin.users"],
1585
+ security: [{ bearerAuth: [] }],
1586
+ summary: "Unlink a user's federated identity for a provider (admin-initiated)",
1587
+ request: {
1588
+ params: AdminUserIdentityParamSchema
1589
+ },
1590
+ responses: {
1591
+ 200: {
1592
+ description: "Identity removed; passwordIssued/newPassword report whether a password was generated",
1593
+ content: { "application/json": { schema: UnlinkUserIdentityResponseSchema } }
1594
+ },
1595
+ 400: {
1596
+ description: "Invalid id",
1597
+ content: { "application/json": { schema: ValidationErrorSchema } }
1598
+ },
1599
+ 401: {
1600
+ description: "Authentication required",
1601
+ content: { "application/json": { schema: AuthenticationRequiredErrorSchema } }
1602
+ },
1603
+ 403: {
1604
+ description: "Admin permission required",
1605
+ content: { "application/json": { schema: AdminRequiredErrorSchema } }
1606
+ },
1607
+ 404: {
1608
+ description: "User not found, or the user has no identity for this provider",
1609
+ content: { "application/json": { schema: UnlinkUserIdentityNotFoundErrorSchema } }
1610
+ },
1611
+ 409: {
1612
+ description: "Refused: the target is the operating admin themself, or password auth is disabled instance-wide",
1613
+ content: { "application/json": { schema: UnlinkUserIdentityConflictErrorSchema } }
1550
1614
  },
1551
1615
  500: {
1552
1616
  description: "Internal server error",
@@ -1631,6 +1695,7 @@ var adminUsersRoutes = {
1631
1695
  resetPasswordRoute,
1632
1696
  resendInviteRoute,
1633
1697
  updateUserEmailRoute,
1698
+ unlinkUserIdentityRoute,
1634
1699
  pendingUsersCountRoute,
1635
1700
  deleteUserRoute
1636
1701
  };
@@ -1814,6 +1879,17 @@ var UPLOAD_ALLOWED_MIME = [
1814
1879
  // Unknown / unset — see the note above.
1815
1880
  "application/octet-stream"
1816
1881
  ];
1882
+ var UploadPolicyResponseSchema = z17.object({
1883
+ allowedMimeTypes: z17.array(z17.string()),
1884
+ extensionHints: z17.record(z17.string(), z17.string()),
1885
+ maxBytes: z17.object({
1886
+ attachment: z17.number()
1887
+ }),
1888
+ profilePicture: z17.object({
1889
+ allowedMimeTypes: z17.array(z17.string()),
1890
+ maxBytes: z17.number()
1891
+ })
1892
+ });
1817
1893
 
1818
1894
  // src/contracts/attachment.ts
1819
1895
  var PageIdPathParamsSchema = z18.object({
@@ -1827,8 +1903,7 @@ var AddAttachmentBodySchema = z18.object({
1827
1903
  });
1828
1904
  var UploadAttachmentBodySchema = z18.object({
1829
1905
  file: z18.any().openapi({ type: "string", format: "binary" }).optional(),
1830
- pageId: z18.string().optional(),
1831
- intent: z18.string().optional().openapi({ enum: ["paste", "dnd"] })
1906
+ pageId: z18.string().optional()
1832
1907
  });
1833
1908
  var listAttachmentsRoute = createRoute10({
1834
1909
  method: "get",
@@ -1998,7 +2073,7 @@ var uploadAttachmentRoute = createRoute10({
1998
2073
  content: { "application/json": { schema: UploadAttachmentErrorSchema } }
1999
2074
  },
2000
2075
  413: {
2001
- description: "Body exceeds the per-intent size cap",
2076
+ description: "Body exceeds the unified upload size cap",
2002
2077
  content: { "application/json": { schema: UploadAttachmentErrorSchema } }
2003
2078
  },
2004
2079
  415: {
@@ -2051,6 +2126,23 @@ var removeAttachmentRoute = createRoute10({
2051
2126
  }
2052
2127
  }
2053
2128
  });
2129
+ var getUploadPolicyRoute = createRoute10({
2130
+ method: "get",
2131
+ path: "/attachments/upload-policy",
2132
+ tags: ["attachment"],
2133
+ security: [{ bearerAuth: [] }],
2134
+ summary: "Get the server upload policy (allowed MIME types, extension hints, size limits)",
2135
+ responses: {
2136
+ 200: {
2137
+ description: "Current upload policy, derived from server-side constants (never a value maintained separately)",
2138
+ content: { "application/json": { schema: UploadPolicyResponseSchema } }
2139
+ },
2140
+ 401: {
2141
+ description: "Authentication required",
2142
+ content: { "application/json": { schema: AuthenticationRequiredErrorSchema } }
2143
+ }
2144
+ }
2145
+ });
2054
2146
  var attachmentRoutes = {
2055
2147
  // `/pages/{pageId}/attachments/usage` MUST register before
2056
2148
  // `/pages/{pageId}/attachments` so the literal `/usage` suffix wins;
@@ -2062,7 +2154,8 @@ var attachmentRoutes = {
2062
2154
  addAttachmentRoute,
2063
2155
  uploadAttachmentRoute,
2064
2156
  getAttachmentMetaRoute,
2065
- removeAttachmentRoute
2157
+ removeAttachmentRoute,
2158
+ getUploadPolicyRoute
2066
2159
  };
2067
2160
 
2068
2161
  // src/contracts/autocomplete.ts
@@ -2414,6 +2507,17 @@ var crowiOpaqueFields = z22.object({
2414
2507
  /** Best-effort diagnostics only — never a rendering hint. Truncated to 64 chars before assignment. */
2415
2508
  originalType: z22.string().max(64).optional()
2416
2509
  });
2510
+ var FRONTMATTER_MAX_ENTRIES = 50;
2511
+ var FRONTMATTER_MAX_KEY_CHARS = 100;
2512
+ var FRONTMATTER_MAX_VALUE_CHARS = 300;
2513
+ var FRONTMATTER_MAX_RAW_BYTES = 8 * 1024;
2514
+ var CrowiFrontmatterEntrySchema = z22.object({
2515
+ key: z22.string().max(FRONTMATTER_MAX_KEY_CHARS),
2516
+ value: z22.string().max(FRONTMATTER_MAX_VALUE_CHARS)
2517
+ });
2518
+ var crowiFrontmatterFields = z22.object({
2519
+ entries: z22.array(CrowiFrontmatterEntrySchema).max(FRONTMATTER_MAX_ENTRIES)
2520
+ });
2417
2521
  var RENDERED_AST_NODE_DEFS = {
2418
2522
  root: { placement: "flow", childModel: "flow", fields: noFields },
2419
2523
  paragraph: { placement: "flow", childModel: "phrasing", fields: noFields },
@@ -2442,10 +2546,12 @@ var RENDERED_AST_NODE_DEFS = {
2442
2546
  footnoteReference: { placement: "phrasing", childModel: "none", fields: footnoteReferenceFields },
2443
2547
  linkReference: { placement: "phrasing", childModel: "phrasing", fields: linkReferenceFields },
2444
2548
  imageReference: { placement: "phrasing", childModel: "none", fields: imageReferenceFields },
2445
- // Crowi-owned types. `crowiFigure` is the only one that also appears
2446
- // in stored ASTs; the other three only exist as projection outputs
2447
- // (or as defensively-validated plugin-injected nodes).
2549
+ // Crowi-owned types. `crowiFigure` / `crowiFrontmatter` are the only
2550
+ // ones that also appear in stored ASTs directly (a core transform
2551
+ // writes them at save time); the other three only exist as projection
2552
+ // outputs (or as defensively-validated plugin-injected nodes).
2448
2553
  crowiFigure: { placement: "flow", childModel: "phrasing", fields: noFields },
2554
+ crowiFrontmatter: { placement: "flow", childModel: "none", fields: crowiFrontmatterFields },
2449
2555
  crowiDiagram: { placement: "flow", childModel: "none", fields: CrowiDiagramSidecarSchema },
2450
2556
  crowiLinkCard: { placement: "flow", childModel: "none", fields: CrowiLinkCardSidecarSchema },
2451
2557
  crowiPlaceholder: { placement: "both", childModel: "none", fields: CrowiPlaceholderSidecarSchema },
@@ -2481,6 +2587,7 @@ var RenderedAstNodeSchema = z22.lazy(
2481
2587
  LinkReferenceNodeSchema,
2482
2588
  ImageReferenceNodeSchema,
2483
2589
  CrowiFigureNodeSchema,
2590
+ CrowiFrontmatterNodeSchema,
2484
2591
  CrowiDiagramNodeSchema,
2485
2592
  CrowiLinkCardNodeSchema,
2486
2593
  CrowiPlaceholderNodeSchema,
@@ -2529,6 +2636,7 @@ var CrowiFigureNodeSchema = z22.object({
2529
2636
  data: HastHintDataSchema.extend({ hName: z22.literal("figure"), hProperties: HPropertiesSchema }),
2530
2637
  children: childrenSchema
2531
2638
  });
2639
+ var CrowiFrontmatterNodeSchema = crowiFrontmatterFields.extend({ type: z22.literal("crowiFrontmatter"), data: dataSchema });
2532
2640
  var CrowiDiagramNodeSchema = CrowiDiagramSidecarSchema.extend({ type: z22.literal("crowiDiagram"), data: dataSchema });
2533
2641
  var CrowiLinkCardNodeSchema = CrowiLinkCardSidecarSchema.extend({ type: z22.literal("crowiLinkCard"), data: dataSchema });
2534
2642
  var CrowiPlaceholderNodeSchema = CrowiPlaceholderSidecarSchema.extend({ type: z22.literal("crowiPlaceholder"), data: dataSchema });
@@ -7007,6 +7115,12 @@ var stubAttachmentMeta = (() => {
7007
7115
  })();
7008
7116
  var stubUploadAttachment = { url: "", filename: "", mimeType: "", sizeBytes: 0 };
7009
7117
  var stubRemoveAttachment = { success: true };
7118
+ var stubUploadPolicy = {
7119
+ allowedMimeTypes: [],
7120
+ extensionHints: {},
7121
+ maxBytes: { attachment: 0 },
7122
+ profilePicture: { allowedMimeTypes: [], maxBytes: 0 }
7123
+ };
7010
7124
  var stubSearchPages = { meta: { total: 0, results: 0 }, data: [] };
7011
7125
  var stubCryptoStatus = {
7012
7126
  encryptionConfigured: false,
@@ -7052,6 +7166,7 @@ var stubSearchAdminUsersByEmail = { users: [] };
7052
7166
  var stubInviteUsers = { results: [] };
7053
7167
  var stubAdminUserMutation = { user: stubUserPublic };
7054
7168
  var stubResetPassword = { user: stubUserPublic, newPassword: "" };
7169
+ var stubUnlinkUserIdentity = { user: stubUserPublic, passwordIssued: false };
7055
7170
  var stubDeleteAdminUser = { deletedId: "" };
7056
7171
  var stubPendingUsersCount = { count: 0 };
7057
7172
  var stubListPlugins = { plugins: [] };
@@ -7095,9 +7210,9 @@ var appAuthMeUserChain = new OpenAPIHono().openapi(
7095
7210
  ).openapi(meRoutes.recentlyViewedPagesRoute, (c) => c.json({ pages: [] }, 200)).openapi(accessTokenRoutes.listAccessTokensRoute, (c) => c.json({ accessTokens: [] }, 200)).openapi(accessTokenRoutes.createAccessTokenRoute, (c) => c.json(stubCreateAccessToken, 201)).openapi(accessTokenRoutes.deleteAccessTokenRoute, (c) => c.json(stubAccessToken, 200)).openapi(userRoutes.getUserPageRoute, (c) => c.json(stubUserPage, 200)).openapi(userRoutes.getUserBookmarksRoute, (c) => c.json(stubUserBookmarks, 200)).openapi(userRoutes.getUserPagesRoute, (c) => c.json(stubUserPages, 200)).openapi(userRoutes.getUserSubpagesRoute, (c) => c.json(stubUserPages, 200)).openapi(userRoutes.listMembersRoute, (c) => c.json(stubListUsers, 200));
7096
7211
  var bookmarkBacklinkCommentRevisionChain = new OpenAPIHono().openapi(bookmarkRoutes.getBookmarkRoute, (c) => c.json(stubBookmarkResponse, 200)).openapi(bookmarkRoutes.listMyBookmarksRoute, (c) => c.json(stubListMyBookmarks, 200)).openapi(bookmarkRoutes.addBookmarkRoute, (c) => c.json(stubBookmarkResponse, 200)).openapi(bookmarkRoutes.removeBookmarkRoute, (c) => c.json(stubRemoveBookmark, 200)).openapi(backlinkRoutes.getBacklinksRoute, (c) => c.json(stubBacklinks, 200)).openapi(commentRoutes.listCommentsRoute, (c) => c.json(stubListComments, 200)).openapi(commentRoutes.addCommentRoute, (c) => c.json(stubAddComment, 200)).openapi(commentRoutes.deleteCommentRoute, (c) => c.json(stubDeleteComment, 200)).openapi(revisionRoutes.listRevisionsRoute, (c) => c.json(stubListRevisions, 200)).openapi(revisionRoutes.getRevisionsRoute, (c) => c.json(stubGetRevisions, 200)).openapi(revisionRoutes.getRevisionRoute, (c) => c.json(stubGetRevision, 200));
7097
7212
  var pageChain = new OpenAPIHono().openapi(pageRoutes.getPageRoute, (c) => c.json(stubPageWithRevision, 200)).openapi(pageRoutes.listPagesRoute, (c) => c.json(stubListPages, 200)).openapi(pageRoutes.listPageChildrenRoute, (c) => c.json(stubListPageChildren, 200)).openapi(pageRoutes.createPageRoute, (c) => c.json(stubPageResponse, 200)).openapi(pageRoutes.updatePageRoute, (c) => c.json(stubPageResponse, 200)).openapi(pageRoutes.setPageGrantRoute, (c) => c.json(stubPageResponse, 200)).openapi(pageRoutes.seenPageRoute, (c) => c.json(stubSeenUsers, 200)).openapi(pageRoutes.getSeenUsersRoute, (c) => c.json(stubSeenUsers, 200)).openapi(pageRoutes.likePageRoute, (c) => c.json(stubPageResponse, 200)).openapi(pageRoutes.unlikePageRoute, (c) => c.json(stubPageResponse, 200)).openapi(pageRoutes.claimPageLinkAccessRoute, (c) => c.json({ ...stubPageWithRevision, granted: false }, 200)).openapi(pageRoutes.getWatchStatusRoute, (c) => c.json(stubWatchStatus, 200)).openapi(pageRoutes.setWatchStatusRoute, (c) => c.json(stubWatchStatus, 200)).openapi(pageRoutes.deletePageRoute, (c) => c.json(stubPageResponse, 200)).openapi(pageRoutes.revertDeletedPageRoute, (c) => c.json(stubPageResponse, 200)).openapi(pageRoutes.revertToRevisionRoute, (c) => c.json(stubPageResponse, 200)).openapi(pageRoutes.renamePageRoute, (c) => c.json({ ...stubPageResponse, renamed_count: 1 }, 200)).openapi(pageRoutes.renameSubtreeRoute, (c) => c.json({ renamed_count: 0 }, 200)).openapi(pagePreviewRoutes.previewPageRoute, (c) => c.json(stubPreview, 200)).openapi(pageCollabRoutes.getYjsTokenRoute, (c) => c.json(stubWsToken, 200)).openapi(presenceRoutes.getPresenceTokenRoute, (c) => c.json(stubPresenceToken, 200)).openapi(presenceRoutes.getLikersRoute, (c) => c.json(stubLikers, 200));
7098
- var lateContractApp = new OpenAPIHono().openapi(draftRoutes.createDraftRoute, (c) => c.json(stubCreateDraft, 201)).openapi(draftRoutes.listDraftsRoute, (c) => c.json(stubListDrafts, 200)).openapi(draftRoutes.cancelDraftRoute, (c) => c.json(stubCreateDraft, 200)).openapi(autocompleteRoutes.autocompleteUsersRoute, (c) => c.json(stubAutocomplete, 200)).openapi(autocompleteRoutes.autocompletePagesRoute, (c) => c.json(stubAutocomplete, 200)).openapi(attachmentRoutes.getAttachmentUsageRoute, (c) => c.json(stubAttachmentUsage, 200)).openapi(attachmentRoutes.listAttachmentsRoute, (c) => c.json(stubListAttachments, 200)).openapi(attachmentRoutes.addAttachmentRoute, (c) => c.json(stubAddAttachment, 200)).openapi(attachmentRoutes.uploadAttachmentRoute, (c) => c.json(stubUploadAttachment, 200)).openapi(attachmentRoutes.getAttachmentMetaRoute, (c) => c.json(stubAttachmentMeta, 200)).openapi(attachmentRoutes.removeAttachmentRoute, (c) => c.json(stubRemoveAttachment, 200)).openapi(searchRoutes.searchPagesRoute, (c) => c.json(stubSearchPages, 200)).openapi(adminCryptoRoutes.getCryptoStatusRoute, (c) => c.json(stubCryptoStatus, 200)).openapi(adminCryptoRoutes.reencryptAllRoute, (c) => c.json(stubReencrypt, 200)).openapi(notificationRoutes.listNotificationsRoute, (c) => c.json(stubListNotifications, 200)).openapi(notificationRoutes.markAllAsReadRoute, (c) => c.json(stubMarkAllAsRead, 200)).openapi(notificationRoutes.getNotificationsTokenRoute, (c) => c.json(stubNotificationsToken, 200)).openapi(notificationRoutes.getUnreadCountRoute, (c) => c.json(stubNotificationStatus, 200)).openapi(notificationRoutes.openNotificationRoute, (c) => c.json(stubOpenNotification, 200));
7213
+ var lateContractApp = new OpenAPIHono().openapi(draftRoutes.createDraftRoute, (c) => c.json(stubCreateDraft, 201)).openapi(draftRoutes.listDraftsRoute, (c) => c.json(stubListDrafts, 200)).openapi(draftRoutes.cancelDraftRoute, (c) => c.json(stubCreateDraft, 200)).openapi(autocompleteRoutes.autocompleteUsersRoute, (c) => c.json(stubAutocomplete, 200)).openapi(autocompleteRoutes.autocompletePagesRoute, (c) => c.json(stubAutocomplete, 200)).openapi(attachmentRoutes.getAttachmentUsageRoute, (c) => c.json(stubAttachmentUsage, 200)).openapi(attachmentRoutes.listAttachmentsRoute, (c) => c.json(stubListAttachments, 200)).openapi(attachmentRoutes.addAttachmentRoute, (c) => c.json(stubAddAttachment, 200)).openapi(attachmentRoutes.uploadAttachmentRoute, (c) => c.json(stubUploadAttachment, 200)).openapi(attachmentRoutes.getAttachmentMetaRoute, (c) => c.json(stubAttachmentMeta, 200)).openapi(attachmentRoutes.removeAttachmentRoute, (c) => c.json(stubRemoveAttachment, 200)).openapi(attachmentRoutes.getUploadPolicyRoute, (c) => c.json(stubUploadPolicy, 200)).openapi(searchRoutes.searchPagesRoute, (c) => c.json(stubSearchPages, 200)).openapi(adminCryptoRoutes.getCryptoStatusRoute, (c) => c.json(stubCryptoStatus, 200)).openapi(adminCryptoRoutes.reencryptAllRoute, (c) => c.json(stubReencrypt, 200)).openapi(notificationRoutes.listNotificationsRoute, (c) => c.json(stubListNotifications, 200)).openapi(notificationRoutes.markAllAsReadRoute, (c) => c.json(stubMarkAllAsRead, 200)).openapi(notificationRoutes.getNotificationsTokenRoute, (c) => c.json(stubNotificationsToken, 200)).openapi(notificationRoutes.getUnreadCountRoute, (c) => c.json(stubNotificationStatus, 200)).openapi(notificationRoutes.openNotificationRoute, (c) => c.json(stubOpenNotification, 200));
7099
7214
  var adminSettingsContractApp = new OpenAPIHono().openapi(adminAppRoutes.getAppSettingsRoute, (c) => c.json(stubGetAppSettings, 200)).openapi(adminAppRoutes.updateAppSettingsRoute, (c) => c.json(stubUpdateAppSettings, 200)).openapi(adminAuthRoutes.getAuthSettingsRoute, (c) => c.json(stubAuthSettings, 200)).openapi(adminAuthRoutes.updateAuthSettingsRoute, (c) => c.json(stubAuthSettings, 200)).openapi(adminSecurityRoutes.getSecuritySettingsRoute, (c) => c.json(stubSecuritySettings, 200)).openapi(adminSecurityRoutes.updateSecuritySettingsRoute, (c) => c.json(stubSecuritySettings, 200)).openapi(adminMailRoutes.getMailSettingsRoute, (c) => c.json(stubMailSettings, 200)).openapi(adminMailRoutes.updateMailSettingsRoute, (c) => c.json(stubUpdateMailSettings, 200)).openapi(adminMailRoutes.sendTestMailRoute, (c) => c.json(stubSendTestMail, 200)).openapi(adminStorageRoutes.getStorageStatusRoute, (c) => c.json(stubStorageStatus, 200)).openapi(adminSearchRoutes.getSearchStatusRoute, (c) => c.json(stubSearchStatus, 200));
7100
- var adminUsersPluginsContractApp = new OpenAPIHono().openapi(adminUsersRoutes.listUsersRoute, (c) => c.json(stubListAdminUsers, 200)).openapi(adminUsersRoutes.searchUsersByEmailRoute, (c) => c.json(stubSearchAdminUsersByEmail, 200)).openapi(adminUsersRoutes.pendingUsersCountRoute, (c) => c.json(stubPendingUsersCount, 200)).openapi(adminUsersRoutes.inviteUsersRoute, (c) => c.json(stubInviteUsers, 200)).openapi(adminUsersRoutes.editUserRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.makeAdminRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.removeFromAdminRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.activateUserRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.suspendUserRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.resetPasswordRoute, (c) => c.json(stubResetPassword, 200)).openapi(adminUsersRoutes.resendInviteRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.updateUserEmailRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.deleteUserRoute, (c) => c.json(stubDeleteAdminUser, 200)).openapi(adminPluginsRoutes.listPluginsRoute, (c) => c.json(stubListPlugins, 200)).openapi(adminPluginsRoutes.getPluginConfigRoute, (c) => c.json(stubPluginConfig, 200)).openapi(adminPluginsRoutes.updatePluginConfigRoute, (c) => c.json(stubUpdatePluginConfig, 200)).openapi(adminPluginsRoutes.getPluginReadinessRoute, (c) => c.json(stubPluginReadiness, 200)).openapi(adminPluginsRoutes.clearRenderCacheAllRoute, (c) => c.json(stubClearRenderCache, 200)).openapi(adminPluginsRoutes.clearRenderCachePluginRoute, (c) => c.json(stubClearRenderCache, 200));
7215
+ var adminUsersPluginsContractApp = new OpenAPIHono().openapi(adminUsersRoutes.listUsersRoute, (c) => c.json(stubListAdminUsers, 200)).openapi(adminUsersRoutes.searchUsersByEmailRoute, (c) => c.json(stubSearchAdminUsersByEmail, 200)).openapi(adminUsersRoutes.pendingUsersCountRoute, (c) => c.json(stubPendingUsersCount, 200)).openapi(adminUsersRoutes.inviteUsersRoute, (c) => c.json(stubInviteUsers, 200)).openapi(adminUsersRoutes.editUserRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.makeAdminRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.removeFromAdminRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.activateUserRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.suspendUserRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.resetPasswordRoute, (c) => c.json(stubResetPassword, 200)).openapi(adminUsersRoutes.resendInviteRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.updateUserEmailRoute, (c) => c.json(stubAdminUserMutation, 200)).openapi(adminUsersRoutes.unlinkUserIdentityRoute, (c) => c.json(stubUnlinkUserIdentity, 200)).openapi(adminUsersRoutes.deleteUserRoute, (c) => c.json(stubDeleteAdminUser, 200)).openapi(adminPluginsRoutes.listPluginsRoute, (c) => c.json(stubListPlugins, 200)).openapi(adminPluginsRoutes.getPluginConfigRoute, (c) => c.json(stubPluginConfig, 200)).openapi(adminPluginsRoutes.updatePluginConfigRoute, (c) => c.json(stubUpdatePluginConfig, 200)).openapi(adminPluginsRoutes.getPluginReadinessRoute, (c) => c.json(stubPluginReadiness, 200)).openapi(adminPluginsRoutes.clearRenderCacheAllRoute, (c) => c.json(stubClearRenderCache, 200)).openapi(adminPluginsRoutes.clearRenderCachePluginRoute, (c) => c.json(stubClearRenderCache, 200));
7101
7216
  var oauthContractApp = new OpenAPIHono().openapi(oauthRoutes.authorizeRoute, (c) => c.json(stubAuthorize, 200)).openapi(oauthRoutes.tokenRoute, (c) => c.json(stubToken, 200)).openapi(oauthRoutes.revokeRoute, (c) => c.json(stubRevoke, 200)).openapi(oauthRoutes.discoveryRoute, (c) => c.json(stubDiscovery, 200)).openapi(oauthRoutes.deviceAuthorizeRoute, (c) => c.json(stubDeviceAuthorize, 200)).openapi(oauthRoutes.deviceInfoRoute, (c) => c.json(stubDeviceInfo, 200)).openapi(oauthRoutes.deviceVerifyRoute, (c) => c.json(stubDeviceVerify, 200)).openapi(oauthRoutes.clientInfoRoute, (c) => c.json(stubClientInfo, 200));
7102
7217
  var federatedAuthContractApp = new OpenAPIHono().openapi(federatedAuthRoutes.listFederatedProvidersRoute, (c) => c.json(stubProviderList, 200)).openapi(federatedAuthRoutes.startFederatedProviderRoute, (c) => c.redirect("", 302)).openapi(federatedAuthRoutes.callbackFederatedProviderRoute, (c) => c.redirect("", 302)).openapi(federatedAuthRoutes.federatedHandoffRoute, (c) => c.json(stubTokens, 200)).openapi(federatedAuthRoutes.listLinkedAuthProvidersRoute, (c) => c.json({ identities: [] }, 200)).openapi(federatedAuthRoutes.createAuthProviderLinkGrantRoute, (c) => c.json({ linkGrant: "" }, 200)).openapi(federatedAuthRoutes.unlinkAuthProviderRoute, (c) => c.body(null, 204));
7103
7218
  var federatedRegistrationContractApp = new OpenAPIHono().openapi(federatedRegistrationRoutes.getFederatedRegistrationRoute, (c) => c.json(stubFederatedRegistrationSnapshot, 200)).openapi(federatedRegistrationRoutes.submitFederatedRegistrationRoute, (c) => c.json({ status: "approval_required" }, 200)).openapi(federatedRegistrationRoutes.logoutFederatedRegistrationRoute, (c) => c.body(null, 204));
@@ -7335,6 +7450,8 @@ export {
7335
7450
  AdminRequiredErrorSchema,
7336
7451
  AdminSidebarSection,
7337
7452
  AdminUserIdParamSchema,
7453
+ AdminUserIdentityParamSchema,
7454
+ AdminUserListItemSchema,
7338
7455
  AdminUserMutationResponseSchema,
7339
7456
  ApiErrorSchema,
7340
7457
  AppInfoResponseSchema,
@@ -7389,6 +7506,7 @@ export {
7389
7506
  CrowiDiagramNodeSchema,
7390
7507
  CrowiDiagramSidecarSchema,
7391
7508
  CrowiDimensionSchema,
7509
+ CrowiFrontmatterEntrySchema,
7392
7510
  CrowiImagePayloadSchema,
7393
7511
  CrowiLinkCardNodeSchema,
7394
7512
  CrowiLinkCardSidecarSchema,
@@ -7417,8 +7535,13 @@ export {
7417
7535
  DraftSummarySchema,
7418
7536
  ERROR_CODES,
7419
7537
  EditAdminUserRequestSchema,
7538
+ EmailLockedByFederatedIdentityErrorSchema,
7420
7539
  EncryptionNotConfiguredErrorSchema,
7421
7540
  ErrorCodeSchema,
7541
+ FRONTMATTER_MAX_ENTRIES,
7542
+ FRONTMATTER_MAX_KEY_CHARS,
7543
+ FRONTMATTER_MAX_RAW_BYTES,
7544
+ FRONTMATTER_MAX_VALUE_CHARS,
7422
7545
  FederatedHandoffRequestSchema,
7423
7546
  FederatedHandoffResponseSchema,
7424
7547
  FederatedProviderSchema,
@@ -7625,6 +7748,9 @@ export {
7625
7748
  TokenResponseSchema,
7626
7749
  UPLOAD_ALLOWED_MIME,
7627
7750
  UnlinkAuthProviderErrorSchema,
7751
+ UnlinkUserIdentityConflictErrorSchema,
7752
+ UnlinkUserIdentityNotFoundErrorSchema,
7753
+ UnlinkUserIdentityResponseSchema,
7628
7754
  UpdateAdminUserEmailRequestSchema,
7629
7755
  UpdateAppSettingsRequestSchema,
7630
7756
  UpdateAppSettingsResponseSchema,
@@ -7643,6 +7769,7 @@ export {
7643
7769
  UploadAttachmentErrorCodeSchema,
7644
7770
  UploadAttachmentErrorSchema,
7645
7771
  UploadAttachmentResponseSchema,
7772
+ UploadPolicyResponseSchema,
7646
7773
  UserBookmarksResponseSchema,
7647
7774
  UserLanguageSchema,
7648
7775
  UserListItemSchema,
@@ -7743,6 +7870,7 @@ export {
7743
7870
  getSeenUsersRoute,
7744
7871
  getStorageStatusRoute,
7745
7872
  getUnreadCountRoute,
7873
+ getUploadPolicyRoute,
7746
7874
  getUserBookmarksRoute,
7747
7875
  getUserPageRoute,
7748
7876
  getUserPagesRoute,
@@ -7820,6 +7948,7 @@ export {
7820
7948
  tokenRoute,
7821
7949
  unlikePageRoute,
7822
7950
  unlinkAuthProviderRoute,
7951
+ unlinkUserIdentityRoute,
7823
7952
  unwrapRenderedAst,
7824
7953
  updateAppSettingsRoute,
7825
7954
  updateAuthSettingsRoute,