@payloadcms/figma 0.0.1-alpha.49 → 0.0.1-alpha.50
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/api/control-plane.d.ts +23 -14
- package/dist/api/control-plane.js +23 -22
- package/dist/api/figma-api.js +3 -5
- package/dist/auth/project-token.js +2 -2
- package/dist/auth/token-store.d.ts +29 -2
- package/dist/auth/token-store.js +38 -1
- package/dist/auth/types.d.ts +10 -0
- package/dist/cli.js +18 -9
- package/dist/commands/debug.js +31 -26
- package/dist/commands/deploy.d.ts +3 -1
- package/dist/commands/deploy.js +27 -15
- package/dist/commands/env.d.ts +13 -0
- package/dist/commands/env.js +88 -0
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.js +49 -52
- package/dist/commands/list-tokens.js +2 -2
- package/dist/commands/login.js +3 -3
- package/dist/commands/logout.js +2 -2
- package/dist/config/oauth.d.ts +1 -1
- package/dist/config/oauth.js +3 -4
- package/dist/constants.d.ts +11 -7
- package/dist/constants.js +14 -9
- package/dist/db-content-api/index.js +6 -11
- package/dist/oauth/strategy/index.js +2 -2
- package/dist/oauth/utilities/refreshTokens.js +2 -2
- package/dist/plugin/build-config.d.ts +0 -10
- package/dist/plugin/build-config.js +57 -22
- package/dist/templates/.env.example +4 -10
- package/dist/types.d.ts +2 -0
- package/dist/utils/cache-bootstrap.d.ts +8 -0
- package/dist/utils/cache-bootstrap.js +18 -0
- package/dist/utils/messages.js +15 -2
- package/dist/utils/resolve-environment.d.ts +14 -0
- package/dist/utils/resolve-environment.js +28 -0
- package/package.json +3 -2
- package/dist/api/control-plane.d.ts.map +0 -1
- package/dist/api/control-plane.js.map +0 -1
- package/dist/api/figma-api.d.ts.map +0 -1
- package/dist/api/figma-api.js.map +0 -1
- package/dist/auth/browser.d.ts.map +0 -1
- package/dist/auth/browser.js.map +0 -1
- package/dist/auth/callback-server.d.ts.map +0 -1
- package/dist/auth/callback-server.js.map +0 -1
- package/dist/auth/crypto-utils.d.ts.map +0 -1
- package/dist/auth/crypto-utils.js.map +0 -1
- package/dist/auth/jwt-validator.d.ts.map +0 -1
- package/dist/auth/jwt-validator.js.map +0 -1
- package/dist/auth/oauth-flow.d.ts.map +0 -1
- package/dist/auth/oauth-flow.js.map +0 -1
- package/dist/auth/pkce.d.ts.map +0 -1
- package/dist/auth/pkce.js.map +0 -1
- package/dist/auth/project-token.d.ts.map +0 -1
- package/dist/auth/project-token.js.map +0 -1
- package/dist/auth/refresh.d.ts.map +0 -1
- package/dist/auth/refresh.js.map +0 -1
- package/dist/auth/token-store.d.ts.map +0 -1
- package/dist/auth/token-store.js.map +0 -1
- package/dist/auth/types.d.ts.map +0 -1
- package/dist/auth/types.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/commands/build-lambda-zip.d.ts.map +0 -1
- package/dist/commands/build-lambda-zip.js.map +0 -1
- package/dist/commands/debug.d.ts.map +0 -1
- package/dist/commands/debug.js.map +0 -1
- package/dist/commands/deploy.d.ts.map +0 -1
- package/dist/commands/deploy.js.map +0 -1
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/list-tokens.d.ts.map +0 -1
- package/dist/commands/list-tokens.js.map +0 -1
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts.map +0 -1
- package/dist/commands/logout.js.map +0 -1
- package/dist/config/oauth.d.ts.map +0 -1
- package/dist/config/oauth.js.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/db-content-api/generated/content-api-types.d.ts.map +0 -1
- package/dist/db-content-api/generated/content-api-types.js.map +0 -1
- package/dist/db-content-api/index.d.ts.map +0 -1
- package/dist/db-content-api/index.js.map +0 -1
- package/dist/db-content-api/temp-utilities/slug.d.ts.map +0 -1
- package/dist/db-content-api/temp-utilities/slug.js.map +0 -1
- package/dist/db-content-api/temp-utilities/sorting.d.ts.map +0 -1
- package/dist/db-content-api/temp-utilities/sorting.js.map +0 -1
- package/dist/db-content-api/temp-utilities/types.d.ts.map +0 -1
- package/dist/db-content-api/temp-utilities/types.js.map +0 -1
- package/dist/db-content-api/temp-utilities/unwrapDocument.d.ts.map +0 -1
- package/dist/db-content-api/temp-utilities/unwrapDocument.js.map +0 -1
- package/dist/db-content-api/utilities/auth.d.ts.map +0 -1
- package/dist/db-content-api/utilities/auth.js.map +0 -1
- package/dist/db-content-api/utilities/data/applyDefaults.d.ts.map +0 -1
- package/dist/db-content-api/utilities/data/applyDefaults.js.map +0 -1
- package/dist/db-content-api/utilities/data/castFieldValue.d.ts.map +0 -1
- package/dist/db-content-api/utilities/data/castFieldValue.js.map +0 -1
- package/dist/db-content-api/utilities/data/index.d.ts.map +0 -1
- package/dist/db-content-api/utilities/data/index.js.map +0 -1
- package/dist/db-content-api/utilities/data/removeVirtualFields.d.ts.map +0 -1
- package/dist/db-content-api/utilities/data/removeVirtualFields.js.map +0 -1
- package/dist/db-content-api/utilities/data/stripFields.d.ts.map +0 -1
- package/dist/db-content-api/utilities/data/stripFields.js.map +0 -1
- package/dist/db-content-api/utilities/data/transformPublishedLocale.d.ts.map +0 -1
- package/dist/db-content-api/utilities/data/transformPublishedLocale.js.map +0 -1
- package/dist/db-content-api/utilities/joins.d.ts.map +0 -1
- package/dist/db-content-api/utilities/joins.js.map +0 -1
- package/dist/db-content-api/utilities/locale/index.d.ts.map +0 -1
- package/dist/db-content-api/utilities/locale/index.js.map +0 -1
- package/dist/db-content-api/utilities/meta/buildLocalizedPaths.d.ts.map +0 -1
- package/dist/db-content-api/utilities/meta/buildLocalizedPaths.js.map +0 -1
- package/dist/db-content-api/utilities/meta/buildMeta.d.ts.map +0 -1
- package/dist/db-content-api/utilities/meta/buildMeta.js.map +0 -1
- package/dist/db-content-api/utilities/meta/buildPathTypes.d.ts.map +0 -1
- package/dist/db-content-api/utilities/meta/buildPathTypes.js.map +0 -1
- package/dist/db-content-api/utilities/where.d.ts.map +0 -1
- package/dist/db-content-api/utilities/where.js.map +0 -1
- package/dist/endpoints/health.d.ts.map +0 -1
- package/dist/endpoints/health.js.map +0 -1
- package/dist/endpoints/schema.d.ts.map +0 -1
- package/dist/endpoints/schema.js.map +0 -1
- package/dist/exports/client.d.ts.map +0 -1
- package/dist/exports/client.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/oauth/components/FigmaAvatar/index.d.ts.map +0 -1
- package/dist/oauth/components/FigmaAvatar/index.js.map +0 -1
- package/dist/oauth/components/FigmaAvatarCell/index.d.ts.map +0 -1
- package/dist/oauth/components/FigmaAvatarCell/index.js.map +0 -1
- package/dist/oauth/components/FigmaAvatarPlaceholder/index.d.ts.map +0 -1
- package/dist/oauth/components/FigmaAvatarPlaceholder/index.js.map +0 -1
- package/dist/oauth/components/LoginButton/index.d.ts.map +0 -1
- package/dist/oauth/components/LoginButton/index.js.map +0 -1
- package/dist/oauth/components/LogoutButton/index.d.ts.map +0 -1
- package/dist/oauth/components/LogoutButton/index.js.map +0 -1
- package/dist/oauth/defaults.d.ts.map +0 -1
- package/dist/oauth/defaults.js.map +0 -1
- package/dist/oauth/endpoints/getLoginEndpoint.d.ts.map +0 -1
- package/dist/oauth/endpoints/getLoginEndpoint.js.map +0 -1
- package/dist/oauth/endpoints/getLogoutEndpoint.d.ts.map +0 -1
- package/dist/oauth/endpoints/getLogoutEndpoint.js.map +0 -1
- package/dist/oauth/endpoints/getMetaEndpoint.d.ts.map +0 -1
- package/dist/oauth/endpoints/getMetaEndpoint.js.map +0 -1
- package/dist/oauth/endpoints/getRedirectToLoginEndpoint.d.ts.map +0 -1
- package/dist/oauth/endpoints/getRedirectToLoginEndpoint.js.map +0 -1
- package/dist/oauth/exports/client.d.ts.map +0 -1
- package/dist/oauth/exports/client.js.map +0 -1
- package/dist/oauth/hooks/afterLogout.d.ts.map +0 -1
- package/dist/oauth/hooks/afterLogout.js.map +0 -1
- package/dist/oauth/hooks/me.d.ts.map +0 -1
- package/dist/oauth/hooks/me.js.map +0 -1
- package/dist/oauth/hooks/refresh.d.ts.map +0 -1
- package/dist/oauth/hooks/refresh.js.map +0 -1
- package/dist/oauth/index.d.ts.map +0 -1
- package/dist/oauth/index.js.map +0 -1
- package/dist/oauth/strategy/index.d.ts.map +0 -1
- package/dist/oauth/strategy/index.js.map +0 -1
- package/dist/oauth/types.d.ts.map +0 -1
- package/dist/oauth/types.js.map +0 -1
- package/dist/oauth/utilities/clearCookie.d.ts.map +0 -1
- package/dist/oauth/utilities/clearCookie.js.map +0 -1
- package/dist/oauth/utilities/createCookieOptions.d.ts.map +0 -1
- package/dist/oauth/utilities/createCookieOptions.js.map +0 -1
- package/dist/oauth/utilities/createDebugLogger.d.ts.map +0 -1
- package/dist/oauth/utilities/createDebugLogger.js.map +0 -1
- package/dist/oauth/utilities/extractOrigin.d.ts.map +0 -1
- package/dist/oauth/utilities/extractOrigin.js.map +0 -1
- package/dist/oauth/utilities/getAdminCollectionSlug.d.ts.map +0 -1
- package/dist/oauth/utilities/getAdminCollectionSlug.js.map +0 -1
- package/dist/oauth/utilities/getAuthorizeURL.d.ts.map +0 -1
- package/dist/oauth/utilities/getAuthorizeURL.js.map +0 -1
- package/dist/oauth/utilities/getCookieExpiration.d.ts.map +0 -1
- package/dist/oauth/utilities/getCookieExpiration.js.map +0 -1
- package/dist/oauth/utilities/getSecondsFromTokenExp.d.ts.map +0 -1
- package/dist/oauth/utilities/getSecondsFromTokenExp.js.map +0 -1
- package/dist/oauth/utilities/getTokenExp.d.ts.map +0 -1
- package/dist/oauth/utilities/getTokenExp.js.map +0 -1
- package/dist/oauth/utilities/getUsernameField.d.ts.map +0 -1
- package/dist/oauth/utilities/getUsernameField.js.map +0 -1
- package/dist/oauth/utilities/hasUserTokenPropsChanged.d.ts.map +0 -1
- package/dist/oauth/utilities/hasUserTokenPropsChanged.js.map +0 -1
- package/dist/oauth/utilities/isDuplicateKeyError.d.ts.map +0 -1
- package/dist/oauth/utilities/isDuplicateKeyError.js.map +0 -1
- package/dist/oauth/utilities/mergeHeaders.d.ts.map +0 -1
- package/dist/oauth/utilities/mergeHeaders.js.map +0 -1
- package/dist/oauth/utilities/refreshTokens.d.ts.map +0 -1
- package/dist/oauth/utilities/refreshTokens.js.map +0 -1
- package/dist/plugin/adapter.d.ts.map +0 -1
- package/dist/plugin/adapter.js.map +0 -1
- package/dist/plugin/build-config.d.ts.map +0 -1
- package/dist/plugin/build-config.js.map +0 -1
- package/dist/storage-content-api/api-types.d.ts.map +0 -1
- package/dist/storage-content-api/api-types.js.map +0 -1
- package/dist/storage-content-api/client-uploads/ClientUploadHandler.d.ts.map +0 -1
- package/dist/storage-content-api/client-uploads/ClientUploadHandler.js.map +0 -1
- package/dist/storage-content-api/client-uploads/generateSignedURL.d.ts.map +0 -1
- package/dist/storage-content-api/client-uploads/generateSignedURL.js.map +0 -1
- package/dist/storage-content-api/client.d.ts.map +0 -1
- package/dist/storage-content-api/client.js.map +0 -1
- package/dist/storage-content-api/generateURL.d.ts.map +0 -1
- package/dist/storage-content-api/generateURL.js.map +0 -1
- package/dist/storage-content-api/handleDelete.d.ts.map +0 -1
- package/dist/storage-content-api/handleDelete.js.map +0 -1
- package/dist/storage-content-api/handleUpload.d.ts.map +0 -1
- package/dist/storage-content-api/handleUpload.js.map +0 -1
- package/dist/storage-content-api/index.d.ts.map +0 -1
- package/dist/storage-content-api/index.js.map +0 -1
- package/dist/storage-content-api/staticHandler.d.ts.map +0 -1
- package/dist/storage-content-api/staticHandler.js.map +0 -1
- package/dist/storage-content-api/types.d.ts.map +0 -1
- package/dist/storage-content-api/types.js.map +0 -1
- package/dist/storage-content-api/utilities/getSafeFilename.d.ts.map +0 -1
- package/dist/storage-content-api/utilities/getSafeFilename.js.map +0 -1
- package/dist/storage-content-api/utilities/index.d.ts.map +0 -1
- package/dist/storage-content-api/utilities/index.js.map +0 -1
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/config.js.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/utils/asset-collection.d.ts.map +0 -1
- package/dist/utils/asset-collection.js.map +0 -1
- package/dist/utils/build-detection.d.ts.map +0 -1
- package/dist/utils/build-detection.js.map +0 -1
- package/dist/utils/build-lambda-zip.d.ts.map +0 -1
- package/dist/utils/build-lambda-zip.js.map +0 -1
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/download-template.d.ts.map +0 -1
- package/dist/utils/download-template.js.map +0 -1
- package/dist/utils/env-management.d.ts.map +0 -1
- package/dist/utils/env-management.js.map +0 -1
- package/dist/utils/format-env-suffix.d.ts.map +0 -1
- package/dist/utils/format-env-suffix.js.map +0 -1
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/formatter.d.ts.map +0 -1
- package/dist/utils/formatter.js.map +0 -1
- package/dist/utils/git.d.ts.map +0 -1
- package/dist/utils/git.js.map +0 -1
- package/dist/utils/is-debug.d.ts.map +0 -1
- package/dist/utils/is-debug.js.map +0 -1
- package/dist/utils/lambda-config.d.ts.map +0 -1
- package/dist/utils/lambda-config.js.map +0 -1
- package/dist/utils/log.d.ts.map +0 -1
- package/dist/utils/log.js.map +0 -1
- package/dist/utils/messages.d.ts.map +0 -1
- package/dist/utils/messages.js.map +0 -1
- package/dist/utils/package-manager.d.ts.map +0 -1
- package/dist/utils/package-manager.js.map +0 -1
- package/dist/utils/payload-config-ast.d.ts.map +0 -1
- package/dist/utils/payload-config-ast.js.map +0 -1
- package/dist/utils/payload-config-finder.d.ts.map +0 -1
- package/dist/utils/payload-config-finder.js.map +0 -1
- package/dist/utils/payload-config-modifier.d.ts.map +0 -1
- package/dist/utils/payload-config-modifier.js.map +0 -1
- package/dist/utils/payload-package-check.d.ts.map +0 -1
- package/dist/utils/payload-package-check.js.map +0 -1
- package/dist/utils/project.d.ts.map +0 -1
- package/dist/utils/project.js.map +0 -1
- package/dist/utils/s3-upload.d.ts.map +0 -1
- package/dist/utils/s3-upload.js.map +0 -1
- package/dist/utils/token-display.d.ts.map +0 -1
- package/dist/utils/token-display.js.map +0 -1
- package/dist/utils/typescript-validator.d.ts.map +0 -1
- package/dist/utils/typescript-validator.js.map +0 -1
- package/dist/utils/version-check.d.ts.map +0 -1
- package/dist/utils/version-check.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/db-content-api/generated/content-api-types.ts"],"sourcesContent":["/**\n * This file was auto-generated by openapi-typescript.\n * Do not make direct changes to the file.\n */\n\n/* eslint-disable */\n// @ts-nocheck - Recursive types from OpenAPI cause TS2502 errors\n\nexport type paths = {\n '/api/me': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: never\n responses: {\n /** @description Current authentication context */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['AuthContextResponse']\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n put?: never\n post?: never\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/health': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: never\n responses: {\n /** @description OK */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['HealthResponse']\n }\n }\n }\n }\n put?: never\n post?: never\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/api_keys': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get: {\n parameters: {\n query: {\n contentSystemId: string\n }\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: never\n responses: {\n /** @description API keys retrieved */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['ListApiKeysResponse']\n }\n }\n /** @description No content system scope found */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['CreateApiKeyRequest']\n }\n }\n responses: {\n /** @description API key created */\n 201: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['CreateApiKeyResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Failed to create API key */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/api_keys/{id}': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post?: never\n delete: {\n parameters: {\n query?: never\n header?: never\n path: {\n id: string\n }\n cookie?: never\n }\n requestBody?: never\n responses: {\n /** @description API key deleted successfully */\n 204: {\n headers: {\n [name: string]: unknown\n }\n content?: never\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/content_systems': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: never\n responses: {\n /** @description Content systems retrieved */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n data: components['schemas']['ContentSystem'][]\n total: number\n }\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['CreateContentSystemRequest']\n }\n }\n responses: {\n /** @description Content system created */\n 201: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['CreateContentSystemResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Conflict */\n 409: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unprocessable Entity */\n 422: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/content_systems/{id}': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get: {\n parameters: {\n query?: never\n header?: never\n path: {\n id: string\n }\n cookie?: never\n }\n requestBody?: never\n responses: {\n /** @description Content system retrieved */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['RetrieveContentSystemResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n put: {\n parameters: {\n query?: never\n header?: never\n path: {\n id: string\n }\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['UpdateContentSystemRequest']\n }\n }\n responses: {\n /** @description Content system updated */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['UpdateContentSystemResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Conflict */\n 409: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n post?: never\n delete: {\n parameters: {\n query?: never\n header?: never\n path: {\n id: string\n }\n cookie?: never\n }\n requestBody?: never\n responses: {\n /** @description Content system deleted successfully */\n 204: {\n headers: {\n [name: string]: unknown\n }\n content?: never\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/content_systems/{contentSystemId}/collections': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get: {\n parameters: {\n query?: {\n id?: string\n }\n header?: never\n path: {\n contentSystemId: string\n }\n cookie?: never\n }\n requestBody?: never\n responses: {\n /** @description Collections retrieved */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n data: components['schemas']['Collection'][]\n total: number\n }\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path: {\n contentSystemId: string\n }\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['CreateCollectionRequest']\n }\n }\n responses: {\n /** @description Collection created */\n 201: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['CreateCollectionResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Conflict */\n 409: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unprocessable Entity */\n 422: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/content_systems/{contentSystemId}/collections/{id}': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get: {\n parameters: {\n query?: never\n header?: never\n path: {\n contentSystemId: string\n id: string\n }\n cookie?: never\n }\n requestBody?: never\n responses: {\n /** @description Collection retrieved */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['RetrieveCollectionResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n put: {\n parameters: {\n query?: never\n header?: never\n path: {\n contentSystemId: string\n id: string\n }\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['UpdateCollectionRequest']\n }\n }\n responses: {\n /** @description Collection updated */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['UpdateCollectionResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Conflict */\n 409: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n post?: never\n delete: {\n parameters: {\n query?: never\n header?: never\n path: {\n contentSystemId: string\n id: string\n }\n cookie?: never\n }\n requestBody?: never\n responses: {\n /** @description Collection deleted successfully */\n 204: {\n headers: {\n [name: string]: unknown\n }\n content?: never\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/documents:count': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['CountDocumentRequest']\n }\n }\n responses: {\n /** @description Document count */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['CountDocumentResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/documents:create': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['CreateDocumentRequest']\n }\n }\n responses: {\n /** @description Document created */\n 201: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['CreateDocumentResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Conflict */\n 409: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/documents:find': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['FindDocumentsRequest']\n }\n }\n responses: {\n /** @description Documents found */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['FindDocumentsResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/documents:update': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['UpdateDocumentRequest']\n }\n }\n responses: {\n /** @description Documents updated */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['UpdateDocumentResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Conflict */\n 409: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/documents:delete': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['DeleteDocumentRequest']\n }\n }\n responses: {\n /** @description Documents deleted */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['DeleteDocumentResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/document_versions:count': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['CountDocumentVersionRequest']\n }\n }\n responses: {\n /** @description Document version count */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['CountDocumentVersionResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/document_versions:create': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['CreateDocumentVersionRequest']\n }\n }\n responses: {\n /** @description Document version created */\n 201: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['CreateDocumentVersionResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/document_versions:find': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['FindDocumentVersionsRequest']\n }\n }\n responses: {\n /** @description Document versions found */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['FindDocumentVersionsResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/document_versions:update': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['UpdateDocumentVersionRequest']\n }\n }\n responses: {\n /** @description Document versions updated */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['UpdateDocumentVersionResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/document_versions:delete': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['DeleteDocumentVersionRequest']\n }\n }\n responses: {\n /** @description Document versions deleted */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['DeleteDocumentVersionResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Internal Server Error */\n 500: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/uploads/sign': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['GeneratePresignedUploadUrlRequest']\n }\n }\n responses: {\n /** @description Presigned upload URL generated */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['GeneratePresignedUploadUrlResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Service Unavailable */\n 503: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/uploads/download/sign': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['GeneratePresignedDownloadUrlRequest']\n }\n }\n responses: {\n /** @description Presigned download URL generated */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['GeneratePresignedDownloadUrlResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Service Unavailable */\n 503: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/uploads/multipart/initiate': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['InitiateMultipartUploadRequest']\n }\n }\n responses: {\n /** @description Multipart upload initiated */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['InitiateMultipartUploadResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Service Unavailable */\n 503: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/uploads/multipart/parts': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['GenerateUploadPartUrlsRequest']\n }\n }\n responses: {\n /** @description Upload part URLs generated */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['GenerateUploadPartUrlsResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Service Unavailable */\n 503: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/uploads/multipart/complete': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['CompleteMultipartUploadRequest']\n }\n }\n responses: {\n /** @description Multipart upload completed */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['CompleteMultipartUploadResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Service Unavailable */\n 503: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/uploads/multipart/abort': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post: {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n requestBody?: {\n content: {\n 'application/json': components['schemas']['AbortMultipartUploadRequest']\n }\n }\n responses: {\n /** @description Multipart upload aborted */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['AbortMultipartUploadResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Service Unavailable */\n 503: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n delete?: never\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n '/api/v0/uploads/{collectionId}/{filename}': {\n parameters: {\n query?: never\n header?: never\n path?: never\n cookie?: never\n }\n get?: never\n put?: never\n post?: never\n delete: {\n parameters: {\n query?: never\n header?: never\n path: {\n collectionId: string\n filename: string\n }\n cookie?: never\n }\n requestBody?: never\n responses: {\n /** @description File deleted successfully */\n 200: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': components['schemas']['DeleteFileResponse']\n }\n }\n /** @description Bad Request */\n 400: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Unauthorized */\n 401: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Forbidden */\n 403: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Not Found */\n 404: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n /** @description Service Unavailable */\n 503: {\n headers: {\n [name: string]: unknown\n }\n content: {\n 'application/json': {\n /** @example Error message describing the issue. */\n message: string\n }\n }\n }\n }\n }\n options?: never\n head?: never\n patch?: never\n trace?: never\n }\n}\nexport type webhooks = Record<string, never>\nexport type components = {\n schemas: {\n AuthContextResponse: {\n /**\n * @description Type of authentication scope\n * @example project\n * @enum {string}\n */\n scopeType: 'super_user' | 'project'\n /**\n * @description Content system ID if scopeType is project, undefined for super_user\n * @example 4cfea8de-4f44-4efd-a8fc-7d539249e9f1\n */\n contentSystemScope?: string\n }\n HealthResponse: {\n /** @example ok */\n status: string\n /** @example connected */\n database: string\n /** @example available */\n s3: string\n /** @example 2026-01-01T00:00:00.000Z */\n timestamp: string\n }\n ApiKey: {\n /** @example 123abc */\n id: string\n /** @example My API Key */\n name: string\n /** @example 123def */\n contentSystemId: string\n /** @example BRTRKFsL */\n shortToken: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00.000Z\n */\n createdAt: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00.000Z\n */\n updatedAt: string\n }\n ListApiKeysResponse: {\n data: components['schemas']['ApiKey'][]\n total: number\n }\n CreateApiKeyResponse: {\n /** @example 123abc */\n id: string\n /** @example 123def */\n contentSystemId: string\n /** @example BRTRKFsL */\n shortToken: string\n /**\n * @description Full API key - only returned on creation\n * @example figma_BRTRKFsL_51FwqftsmMDHHbJAMEXXHCgG\n */\n fullToken: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00.000Z\n */\n createdAt: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00.000Z\n */\n updatedAt: string\n }\n CreateApiKeyRequest: {\n /** @example My API Key */\n name: string\n /** @example 123def */\n contentSystemId: string\n }\n ContentSystem: {\n /** @example cms-xxxxx-xxxxx */\n id: string\n /** @example demo-tenant */\n owningKey: string\n /** @example Demo CMS */\n name: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n createdAt: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n updatedAt: string\n }\n CreateContentSystemResponse: {\n /** @example cms-xxxxx-xxxxx */\n id: string\n /** @example demo-tenant */\n owningKey: string\n /** @example Demo CMS */\n name: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n createdAt: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n updatedAt: string\n }\n CreateContentSystemRequest: {\n /** @example demo-tenant */\n owningKey: string\n /** @example Demo CMS */\n name: string\n }\n RetrieveContentSystemResponse: {\n /** @example cms-xxxxx-xxxxx */\n id: string\n /** @example demo-tenant */\n owningKey: string\n /** @example Demo CMS */\n name: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n createdAt: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n updatedAt: string\n }\n UpdateContentSystemResponse: {\n /** @example cms-xxxxx-xxxxx */\n id: string\n /** @example demo-tenant */\n owningKey: string\n /** @example Demo CMS */\n name: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n createdAt: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n updatedAt: string\n }\n UpdateContentSystemRequest: {\n /** @example demo-tenant */\n owningKey?: string\n /** @example Demo CMS */\n name?: string\n }\n Collection: {\n /** @example posts */\n id: string\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n createdAt: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n updatedAt: string\n }\n CreateCollectionResponse: {\n /** @example posts */\n id: string\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n createdAt: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n updatedAt: string\n }\n CreateCollectionRequest: {\n /** @example posts */\n id: string\n }\n RetrieveCollectionResponse: {\n /** @example posts */\n id: string\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n createdAt: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n updatedAt: string\n }\n UpdateCollectionResponse: {\n /** @example posts */\n id: string\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n createdAt: string\n /**\n * Format: date\n * @example 2024-01-01T00:00:00Z\n */\n updatedAt: string\n }\n UpdateCollectionRequest: {\n /** @example posts */\n id: string\n }\n CountDocumentResponse: {\n result: {\n /** @example 1 */\n count: number\n }\n }\n /**\n * @example array\n * @enum {string}\n */\n PathType: 'array'\n /**\n * @example {\n * \"author.tagIds\": \"array\"\n * }\n */\n PathTypesMeta: {\n [key: string]: components['schemas']['PathType']\n }\n RequestMeta: {\n localizedPaths?: string[]\n pathTypes?: components['schemas']['PathTypesMeta']\n }\n DataValue:\n | string\n | number\n | boolean\n | unknown\n | components['schemas']['DataValue'][]\n | {\n [key: string]: components['schemas']['DataValue']\n }\n | unknown\n /**\n * @example {\n * \"and\": [\n * {\n * \"path\": \"status\",\n * \"operator\": \"equals\",\n * \"value\": \"published\"\n * },\n * {\n * \"path\": \"createdAt\",\n * \"operator\": \"greater_than\",\n * \"value\": \"2025-01-01T00:00:00Z\"\n * }\n * ]\n * }\n */\n WhereClause:\n | {\n and: components['schemas']['WhereClause'][]\n }\n | {\n or: components['schemas']['WhereClause'][]\n }\n | {\n path: string\n operator:\n | 'equals'\n | 'not_equals'\n | 'in'\n | 'not_in'\n | 'greater_than'\n | 'greater_than_equal'\n | 'less_than'\n | 'less_than_equal'\n | 'like'\n | 'not_like'\n | 'all'\n | 'contains'\n | 'exists'\n | 'intersects'\n | 'near'\n | 'within'\n value: components['schemas']['DataValue']\n }\n CountDocumentRequest: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n meta?: components['schemas']['RequestMeta']\n where?: components['schemas']['WhereClause']\n }\n /**\n * @example {\n * \"id\": \"doc-key\",\n * \"title\": \"Placeholder title\",\n * \"content\": \"This is placeholder content\",\n * \"createdAt\": \"2024-01-01T00:00:00Z\",\n * \"updatedAt\": \"2024-01-02T00:00:00Z\",\n * \"deletedAt\": \"2024-01-05T00:00:00Z\"\n * }\n */\n DocumentData: {\n [key: string]: components['schemas']['DataValue']\n }\n Document: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n doc: components['schemas']['DocumentData']\n }\n CreateDocumentResponse: {\n result: components['schemas']['Document'] & {\n /** @example doc-key */\n id: string\n }\n }\n /** @example createdAt */\n SortClause: string | string[]\n /**\n * @example [\n * {\n * \"collectionId\": \"books\",\n * \"on\": \"authorId\",\n * \"path\": \"books\",\n * \"count\": false,\n * \"where\": {\n * \"path\": \"status\",\n * \"operator\": \"equals\",\n * \"value\": \"published\"\n * },\n * \"limit\": 5,\n * \"page\": 1,\n * \"sort\": [\n * {\n * \"path\": \"title\",\n * \"direction\": \"asc\"\n * }\n * ]\n * }\n * ]\n */\n JoinClause: {\n collectionId: string\n on: string\n path: string\n count: boolean\n where?: components['schemas']['WhereClause']\n limit?: number\n page?: number\n sort?: components['schemas']['SortClause']\n }[]\n /** @example es */\n LocaleClause: string\n /**\n * @example {\n * \"mode\": \"include\",\n * \"paths\": [\n * \"title\",\n * \"author.name\",\n * \"tags\"\n * ]\n * }\n */\n SelectClause: {\n /** @enum {string} */\n mode: 'exclude' | 'include'\n paths: string[]\n }\n CreateDocumentRequest: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n doc: components['schemas']['DocumentData']\n returning?:\n | false\n | {\n join?: components['schemas']['JoinClause']\n locale?: components['schemas']['LocaleClause']\n select?: components['schemas']['SelectClause']\n }\n }\n FindDocumentsResponse: {\n result: {\n data: (components['schemas']['Document'] & {\n /** @example doc-key */\n id: string\n })[]\n totalDocs: number\n limit: number\n page: number\n totalPages: number\n pagingCounter: number\n hasPrevPage: boolean\n hasNextPage: boolean\n prevPage: number | null\n nextPage: number | null\n }\n }\n FindDocumentsRequest: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n join?: components['schemas']['JoinClause']\n /** @example 10 */\n limit?: number\n locale?: components['schemas']['LocaleClause']\n /** @example 1 */\n page?: number\n meta?: components['schemas']['RequestMeta']\n select?: components['schemas']['SelectClause']\n sort?: components['schemas']['SortClause']\n where?: components['schemas']['WhereClause']\n }\n UpdateDocumentResponse: {\n result?:\n | {\n /** @example 1 */\n count: number\n }\n | {\n data: (components['schemas']['Document'] & {\n /** @example doc-key */\n id: string\n })[]\n }\n }\n /**\n * @example {\n * \"title\": \"New Title\",\n * \"views\": {\n * \"$inc\": 1\n * },\n * \"status\": \"draft\"\n * }\n */\n DataWithOperations: {\n [key: string]: components['schemas']['DataValue']\n }\n UpdateDocumentRequest: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n /** @example false */\n createOnMissing:\n | false\n | {\n id: string\n }\n doc: components['schemas']['DataWithOperations']\n /** @example 10 */\n limit?: number\n meta?: components['schemas']['RequestMeta']\n returning?:\n | false\n | {\n join?: components['schemas']['JoinClause']\n locale?: components['schemas']['LocaleClause']\n select?: components['schemas']['SelectClause']\n }\n sort?: components['schemas']['SortClause']\n where: components['schemas']['WhereClause']\n locale?: components['schemas']['LocaleClause']\n }\n DeleteDocumentResponse: {\n result?:\n | {\n /** @example 1 */\n count: number\n }\n | {\n data: (components['schemas']['Document'] & {\n /** @example doc-key */\n id: string\n })[]\n }\n }\n DeleteDocumentRequest: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n meta?: components['schemas']['RequestMeta']\n returning?:\n | false\n | {\n join?: components['schemas']['JoinClause']\n locale?: components['schemas']['LocaleClause']\n select?: components['schemas']['SelectClause']\n }\n where: components['schemas']['WhereClause']\n locale?: components['schemas']['LocaleClause']\n }\n CountDocumentVersionResponse: {\n result: {\n /** @example 1 */\n count: number\n }\n }\n CountDocumentVersionRequest: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n meta?: components['schemas']['RequestMeta']\n where?: components['schemas']['WhereClause']\n }\n DocumentVersion: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n versionDoc: {\n /** @example 2024-01-01T00:00:00Z */\n createdAt?: string | null\n /** @example 2024-01-01T00:00:00Z */\n updatedAt?: string | null\n /** @example true */\n latest?: boolean\n /** @example doc-key */\n parent?: string | number\n version: components['schemas']['DocumentData'] & unknown\n /** @example ver-xxxxx-xxxxx */\n id: string\n }\n }\n CreateDocumentVersionResponse: {\n result: components['schemas']['DocumentVersion'] & {\n /** @example ver-xxxxx-xxxxx */\n id: string\n }\n }\n /**\n * @example {\n * \"contentSystemId\": \"cms-xxxxx-xxxxx\",\n * \"collection\": \"posts\",\n * \"versionDoc\": {\n * \"createdAt\": \"2024-01-01T00:00:00Z\",\n * \"updatedAt\": \"2024-01-01T00:00:00Z\",\n * \"latest\": true,\n * \"parent\": \"doc-key\",\n * \"version\": {\n * \"title\": \"Placeholder title\",\n * \"content\": \"This is placeholder content\"\n * }\n * },\n * \"returning\": false\n * }\n */\n CreateDocumentVersionRequest: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n versionDoc: {\n /** @example 2024-01-01T00:00:00Z */\n createdAt?: string | null\n /** @example 2024-01-01T00:00:00Z */\n updatedAt?: string | null\n /** @example true */\n latest?: boolean\n /** @example doc-key */\n parent?: string | number\n version: components['schemas']['DocumentData'] & unknown\n }\n returning?:\n | false\n | {\n join?: components['schemas']['JoinClause']\n locale?: components['schemas']['LocaleClause']\n select?: components['schemas']['SelectClause']\n }\n }\n FindDocumentVersionsResponse: {\n result: {\n data: (components['schemas']['DocumentVersion'] & {\n /** @example ver-xxxxx-xxxxx */\n id: string\n })[]\n totalDocs: number\n limit: number\n page: number\n totalPages: number\n pagingCounter: number\n hasPrevPage: boolean\n hasNextPage: boolean\n prevPage: number | null\n nextPage: number | null\n }\n }\n FindDocumentVersionsRequest: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n join?: components['schemas']['JoinClause']\n /** @example 10 */\n limit?: number\n locale?: components['schemas']['LocaleClause']\n /** @example 1 */\n page?: number\n meta?: components['schemas']['RequestMeta']\n select?: components['schemas']['SelectClause']\n sort?: components['schemas']['SortClause']\n where?: components['schemas']['WhereClause']\n }\n UpdateDocumentVersionResponse: {\n result?:\n | {\n /** @example 1 */\n count: number\n }\n | {\n data: (components['schemas']['DocumentVersion'] & {\n /** @example ver-xxxxx-xxxxx */\n id: string\n })[]\n }\n }\n UpdateDocumentVersionRequest: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n /** @example false */\n createOnMissing:\n | false\n | {\n parent: string\n latest: boolean\n }\n versionDoc: {\n /** @example 2024-01-01T00:00:00Z */\n createdAt?: string | null\n /** @example 2024-01-01T00:00:00Z */\n updatedAt?: string | null\n /** @example true */\n latest?: boolean\n /** @example doc-key */\n parent?: string | number\n version: components['schemas']['DocumentData'] & unknown\n }\n where: components['schemas']['WhereClause']\n /** @example 10 */\n limit?: number\n meta?: components['schemas']['RequestMeta']\n sort?: components['schemas']['SortClause']\n locale?: components['schemas']['LocaleClause']\n returning?:\n | false\n | {\n join?: components['schemas']['JoinClause']\n locale?: components['schemas']['LocaleClause']\n select?: components['schemas']['SelectClause']\n }\n }\n DeleteDocumentVersionResponse: {\n result?:\n | {\n /** @example 1 */\n count: number\n }\n | {\n data: (components['schemas']['DocumentVersion'] & {\n /** @example ver-xxxxx-xxxxx */\n id: string\n })[]\n }\n }\n DeleteDocumentVersionRequest: {\n /** @example cms-xxxxx-xxxxx */\n contentSystemId: string\n /** @example posts */\n collection: string\n meta?: components['schemas']['RequestMeta']\n returning?:\n | false\n | {\n join?: components['schemas']['JoinClause']\n locale?: components['schemas']['LocaleClause']\n select?: components['schemas']['SelectClause']\n }\n where: components['schemas']['WhereClause']\n }\n GeneratePresignedUploadUrlResponse: {\n /** @example https://s3.amazonaws.com/bucket/key?presigned-params */\n url: string\n }\n GeneratePresignedUploadUrlRequest: {\n /** @example document.pdf */\n filename: string\n /** @example application/pdf */\n contentType?: string\n /**\n * @default 3600\n * @example 3600\n */\n expiresIn: number\n /** @example media */\n collectionId: string\n }\n GeneratePresignedDownloadUrlResponse: {\n /** @example https://s3.amazonaws.com/bucket/key?presigned-params */\n url: string\n }\n GeneratePresignedDownloadUrlRequest: {\n /** @example document.pdf */\n filename: string\n /**\n * @default 3600\n * @example 3600\n */\n expiresIn: number\n /** @example media */\n collectionId: string\n }\n InitiateMultipartUploadResponse: {\n /** @example abc123xyz789 */\n uploadId: string\n }\n InitiateMultipartUploadRequest: {\n /** @example large-video.mp4 */\n filename: string\n /** @example video/mp4 */\n contentType: string\n /** @example media */\n collectionId: string\n }\n GenerateUploadPartUrlsResponse: {\n /**\n * @example [\n * {\n * \"partNumber\": 1,\n * \"url\": \"https://s3.amazonaws.com/...\"\n * }\n * ]\n */\n parts: {\n /** @example 1 */\n partNumber: number\n /** @example https://s3.amazonaws.com/bucket/key?presigned-params */\n url: string\n }[]\n }\n GenerateUploadPartUrlsRequest: {\n /** @example large-video.mp4 */\n filename: string\n /** @example abc123xyz789 */\n uploadId: string\n /**\n * @example [\n * 1,\n * 2,\n * 3\n * ]\n */\n partNumbers: number[]\n /**\n * @default 3600\n * @example 3600\n */\n expiresIn: number\n /** @example media */\n collectionId: string\n }\n CompleteMultipartUploadResponse: {\n /**\n * @example true\n * @enum {boolean}\n */\n success: true\n }\n CompleteMultipartUploadRequest: {\n /** @example large-video.mp4 */\n filename: string\n /** @example abc123xyz789 */\n uploadId: string\n /**\n * @example [\n * {\n * \"PartNumber\": 1,\n * \"ETag\": \"\\\"abc123\\\"\"\n * }\n * ]\n */\n parts: {\n /** @example 1 */\n PartNumber: number\n /** @example \"abc123\" */\n ETag: string\n }[]\n /** @example media */\n collectionId: string\n }\n AbortMultipartUploadResponse: {\n /**\n * @example true\n * @enum {boolean}\n */\n success: true\n }\n AbortMultipartUploadRequest: {\n /** @example large-video.mp4 */\n filename: string\n /** @example abc123xyz789 */\n uploadId: string\n /** @example media */\n collectionId: string\n }\n DeleteFileResponse: {\n /**\n * @example true\n * @enum {boolean}\n */\n success: true\n }\n }\n responses: never\n parameters: never\n requestBodies: never\n headers: never\n pathItems: never\n}\nexport type $defs = Record<string, never>\nexport type operations = Record<string, never>\n"],"names":[],"mappings":"AAAA;;;CAGC,GAED,kBAAkB,GAClB,iEAAiE;AAgtHjE,WAA8C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db-content-api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EAcnB,kBAAkB,EA+BnB,MAAM,SAAS,CAAA;AAEhB,OAAO,YAAY,MAAM,eAAe,CAAA;AAIxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAA;AAO7D,OAAO,EAAE,KAAK,QAAQ,EAA+C,MAAM,qBAAqB,CAAA;AAOhG,KAAK,iBAAiB,GAAG;IACvB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,IAAI,EAAE,QAAQ,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,eAAe,EAAE,MAAM,CAAA;IACvB,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,mBAAmB,CAAA;AAgrBvB,eAAO,MAAM,iBAAiB,SAAU,iBAAiB,KAAG,kBAyD1D,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/db-content-api/index.ts"],"sourcesContent":["import type {\n BaseDatabaseAdapter,\n Count,\n CountArgs,\n CountGlobalVersionArgs,\n CountGlobalVersions,\n CountVersions,\n Create,\n CreateArgs,\n CreateGlobal,\n CreateGlobalArgs,\n CreateGlobalVersion,\n CreateGlobalVersionArgs,\n CreateVersion,\n CreateVersionArgs,\n DatabaseAdapterObj,\n DeleteMany,\n DeleteManyArgs,\n DeleteOne,\n DeleteOneArgs,\n DeleteVersions,\n DeleteVersionsArgs,\n Find,\n FindArgs,\n FindGlobal,\n FindGlobalArgs,\n FindGlobalVersions,\n FindGlobalVersionsArgs,\n FindOne,\n FindOneArgs,\n FindVersions,\n FindVersionsArgs,\n QueryDrafts,\n QueryDraftsArgs,\n UpdateGlobal,\n UpdateGlobalArgs,\n UpdateGlobalVersion,\n UpdateGlobalVersionArgs,\n UpdateMany,\n UpdateManyArgs,\n UpdateOne,\n UpdateOneArgs,\n UpdateVersion,\n UpdateVersionArgs,\n Upsert,\n UpsertArgs,\n} from 'payload'\n\nimport createClient from 'openapi-fetch'\nimport { createDatabaseAdapter } from 'payload'\nimport { v4 as uuid } from 'uuid'\n\nimport type { paths } from './generated/content-api-types.js'\n\nimport { FigmaApiError } from '../api/figma-api.js'\nimport { CONTENT_SYSTEM_NOT_FOUND_MESSAGE } from '../constants.js'\nimport { getGlobalSlug } from './temp-utilities/slug.js'\nimport { addFallbackSort } from './temp-utilities/sorting.js'\nimport { unwrapDocument, unwrapFindResponse } from './temp-utilities/unwrapDocument.js'\nimport { type AuthMode, createAuthMiddleware, createErrorMiddleware } from './utilities/auth.js'\nimport { dataToContentAPI } from './utilities/data/index.js'\nimport { convertPayloadJoinsToContentAPI } from './utilities/joins.js'\nimport { addFallbackLocale } from './utilities/locale/index.js'\nimport { buildMeta } from './utilities/meta/buildMeta.js'\nimport { convertPayloadWhereToContentAPI } from './utilities/where.js'\n\ntype ContentAPIOptions = {\n allowIDOnCreate?: boolean\n auth: AuthMode\n contentSystemId: string\n url: string\n}\n\nexport type ContentAPIAdapter = {\n auth: AuthMode\n clearDatabase: () => Promise<void>\n client: ReturnType<typeof createClient<paths>>\n contentSystemId: string\n url: string\n} & BaseDatabaseAdapter\n\nasync function syncCollections(this: ContentAPIAdapter) {\n let existingIds: Set<string>\n try {\n const {\n data: response,\n error,\n response: httpResponse,\n } = await this.client.GET('/api/v0/content_systems/{contentSystemId}/collections', {\n params: { path: { contentSystemId: this.contentSystemId } },\n })\n\n if (httpResponse.status === 404 || httpResponse.status === 410) {\n throw new Error(CONTENT_SYSTEM_NOT_FOUND_MESSAGE)\n }\n\n if (error) {\n throw new Error(JSON.stringify(error))\n }\n if (!response) {\n throw new Error('No response from collections endpoint')\n }\n\n existingIds = new Set(response.data.map((c) => c.id))\n this.payload.logger.info(`Found ${existingIds.size} existing collections`)\n } catch (error) {\n if (error instanceof Error && error.message === CONTENT_SYSTEM_NOT_FOUND_MESSAGE) {\n throw error\n }\n\n if (error instanceof FigmaApiError && (error.statusCode === 404 || error.statusCode === 410)) {\n throw new Error(CONTENT_SYSTEM_NOT_FOUND_MESSAGE)\n }\n\n this.payload.logger.warn(\n `Failed to fetch collections, will attempt to create all: ${(error as Error).message}`,\n )\n existingIds = new Set()\n }\n\n for (const collection of this.payload.config.collections) {\n if (!existingIds.has(collection.slug)) {\n await createCollection.call(this, collection.slug)\n }\n }\n\n for (const global of this.payload.config.globals || []) {\n const globalId = `_global-${global.slug}`\n if (!existingIds.has(globalId)) {\n await createCollection.call(this, globalId)\n }\n }\n}\n\nasync function init(this: ContentAPIAdapter) {\n if (this.auth.mode === 'apiKey') {\n this.payload.logger.info('Using API Key authentication')\n } else if (this.auth.mode === 'tokenStore') {\n this.payload.logger.info('Using TokenStore authentication (local dev)')\n } else {\n this.payload.logger.info('Using Dev JWT authentication (testing)')\n }\n\n if (process.env.PAYLOAD_DROP_DATABASE === 'true') {\n await this.clearDatabase()\n }\n\n await syncCollections.call(this)\n}\n\nasync function createCollection(this: ContentAPIAdapter, collectionId: string) {\n try {\n const { error } = await this.client.POST(\n '/api/v0/content_systems/{contentSystemId}/collections',\n {\n body: { id: collectionId },\n params: { path: { contentSystemId: this.contentSystemId } },\n },\n )\n\n if (error) {\n throw new Error(JSON.stringify(error))\n }\n this.payload.logger.info(`Created collection: ${collectionId}`)\n } catch (error) {\n const errorMessage = (error as Error).message\n if (!errorMessage.includes('already exists') && !errorMessage.includes('409')) {\n this.payload.logger.warn(`Failed to create collection ${collectionId}: ${errorMessage}`)\n }\n }\n}\n\nasync function findMany(\n this: ContentAPIAdapter,\n {\n collection,\n joins,\n limit,\n locale: localeArg,\n page,\n pagination: _pagination,\n sort,\n where,\n // Not yet passed to Content API:\n // - select: supported by Content API, pass-through possible\n // Not supported by Content API:\n // - draftsEnabled, versions, projection\n }: Pick<FindArgs, 'joins' | 'locale' | 'pagination' | 'sort' | 'where'> &\n Required<Pick<FindArgs, 'collection' | 'limit' | 'page'>>,\n) {\n const locale = addFallbackLocale(localeArg, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:find', {\n body: {\n collection,\n contentSystemId: this.contentSystemId,\n join: convertPayloadJoinsToContentAPI(this.payload, collection, joins),\n limit,\n locale,\n page: page ?? 1,\n sort: addFallbackSort(sort, this.payload, collection),\n where: convertPayloadWhereToContentAPI(where ?? {}),\n ...buildMeta(this.payload, { collection, locale, where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API findMany error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from findMany')\n }\n\n return unwrapFindResponse(this.payload, response.result, collection)\n}\n\nasync function find(this: ContentAPIAdapter, args: FindArgs) {\n const collectionConfig = this.payload.config.collections.find((c) => c.slug === args.collection)\n return findMany.call(this, {\n collection: args.collection,\n joins: args.joins,\n // TODO: FindArgs.limit should be 'number' not 'number | undefined'\n // is sanitized by Payload Core before calling the adapter (defaults to 10 or 0 based on pagination)\n limit: args.limit!,\n locale: args.locale,\n page: args.page ?? 1,\n pagination: args.pagination,\n sort: args.sort || collectionConfig?.defaultSort,\n where: args.where,\n })\n}\n\n// TODO: remove Omit when this PR is released: https://github.com/payloadcms/payload/pull/15183\nasync function findVersions(this: ContentAPIAdapter, args: Omit<FindVersionsArgs, 'skip'>) {\n const sortWithFallback = addFallbackSort(args.sort || '-updatedAt', this.payload, args.collection)\n\n const whereClause = convertPayloadWhereToContentAPI(args.where ?? {}, {\n parentToDocumentId: true,\n stripVersionPrefix: true,\n })\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:find', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n // TODO: FindVersionsArgs.limit should be 'number' not 'number | undefined'\n // is sanitized by Payload Core before calling the adapter (defaults to 10 or 0 based on pagination)\n limit: args.limit!,\n locale,\n page: args.page ?? 1,\n sort: sortWithFallback,\n where: whereClause,\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API findVersions error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from findVersions')\n }\n\n return unwrapFindResponse(this.payload, response.result, args.collection)\n}\n\nasync function queryDrafts(this: ContentAPIAdapter, args: QueryDraftsArgs) {\n const versionsResult = await this.findVersions({\n collection: args.collection,\n limit: args.limit,\n locale: args.locale,\n page: args.page,\n pagination: args.pagination,\n sort: args.sort,\n where: { ...args.where, latest: { equals: true } },\n })\n\n // queryDrafts should return documents with fields at root level, not nested in 'version'\n // So we need to unwrap the version structure and merge version fields to root\n const docs = versionsResult.docs.map((versionDoc) => {\n const { version, ...versionMeta } = versionDoc\n return {\n ...versionMeta,\n ...version,\n // Keep version metadata like parent, but document fields take precedence\n id: version.id, // Document ID, not version ID\n }\n })\n\n return {\n ...versionsResult,\n docs,\n }\n}\n\nasync function createVersion(this: ContentAPIAdapter, args: CreateVersionArgs) {\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:create', {\n body: {\n collection: args.collectionSlug,\n contentSystemId: this.contentSystemId,\n versionDoc: {\n createdAt: args.createdAt,\n latest: !args.autosave,\n parent: String(args.parent),\n updatedAt: args.updatedAt,\n version: dataToContentAPI(this.payload, args.collectionSlug, args.versionData, {\n applyDefaults: true,\n publishedLocale: args.publishedLocale,\n }),\n },\n },\n })\n\n if (error) {\n throw new Error(`Content API createVersion error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from createVersion')\n }\n return unwrapDocument(this.payload, response.result, args.collectionSlug)\n}\n\nasync function updateVersion(this: ContentAPIAdapter, args: UpdateVersionArgs) {\n const where = args.where ?? { id: { equals: args.id } }\n const locale = addFallbackLocale(args.locale, this.payload)\n\n // versionData contains version metadata plus nested version content\n const { publishedLocale, version, ...versionMeta } = args.versionData\n\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n locale,\n versionDoc: {\n createdAt: versionMeta.createdAt,\n latest: versionMeta.latest,\n parent: versionMeta.parent != null ? String(versionMeta.parent) : undefined,\n updatedAt: versionMeta.updatedAt,\n version: dataToContentAPI(this.payload, args.collection, version, { publishedLocale }),\n },\n where: convertPayloadWhereToContentAPI(where, { stripVersionPrefix: true }),\n ...buildMeta(this.payload, { collection: args.collection, locale, where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API updateVersion error: ${JSON.stringify(error)}`)\n }\n if (!response?.result || !('data' in response.result)) {\n throw new Error('No document data in updateVersion response')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n return null\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nasync function deleteVersions(this: ContentAPIAdapter, args: DeleteVersionsArgs) {\n if (!args.collection) {\n throw new Error('deleteVersions requires a collection')\n }\n\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { error } = await this.client.POST('/api/v0/document_versions:delete', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n locale,\n where: convertPayloadWhereToContentAPI(args.where, { stripVersionPrefix: true }),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API deleteVersions error: ${JSON.stringify(error)}`)\n }\n}\n\nasync function findOne(this: ContentAPIAdapter, args: FindOneArgs) {\n const { docs } = await this.find({\n collection: args.collection,\n joins: args.joins,\n limit: 1,\n locale: args.locale,\n pagination: false,\n where: args.where,\n })\n return docs[0] ?? null\n}\n\nasync function updateMany(this: ContentAPIAdapter, args: UpdateManyArgs) {\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n doc: dataToContentAPI(this.payload, args.collection, args.data),\n limit: args.limit,\n locale,\n returning: {},\n sort: addFallbackSort(args.sort || '-updatedAt', this.payload, args.collection),\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API updateMany error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from updateMany')\n }\n\n if (response.result && 'data' in response.result) {\n return response.result.data.map((doc) => unwrapDocument(this.payload, doc, args.collection))\n }\n return null\n}\n\nasync function updateOne(this: ContentAPIAdapter, args: UpdateOneArgs) {\n const locale = addFallbackLocale(args.locale, this.payload)\n const where = args.where ?? { id: { equals: args.id } }\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: false,\n doc: dataToContentAPI(this.payload, args.collection, args.data),\n locale,\n returning: {},\n where: convertPayloadWhereToContentAPI(where),\n ...buildMeta(this.payload, { collection: args.collection, locale, where }),\n },\n })\n\n if (error) {\n throw new Error(`Content API updateOne error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from updateOne')\n }\n if (!response.result || !('data' in response.result)) {\n throw new Error('Unexpected response format from updateOne')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n return null\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nasync function deleteMany(this: ContentAPIAdapter, args: DeleteManyArgs) {\n const locale = addFallbackLocale(args.req?.locale, this.payload)\n\n const { error } = await this.client.POST('/api/v0/documents:delete', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n locale,\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API deleteMany error: ${JSON.stringify(error)}`)\n }\n}\n\nasync function deleteOne(this: ContentAPIAdapter, args: DeleteOneArgs) {\n const locale = addFallbackLocale(args.req?.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:delete', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n locale,\n returning: {}, // Request deleted document back\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API deleteOne error: ${JSON.stringify(error)}`)\n }\n if (!response?.result || !('data' in response.result)) {\n throw new Error('No document data in deleteOne response')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n return null\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nasync function create(this: ContentAPIAdapter, args: CreateArgs) {\n const isGlobalCollection = args.collection.startsWith('_global-')\n const customIDType = this.payload.collections[args.collection]?.customIDType\n const id =\n (isGlobalCollection || customIDType || this.allowIDOnCreate) &&\n args.data.id != null &&\n (typeof args.data.id === 'string' || typeof args.data.id === 'number')\n ? String(args.data.id)\n : uuid()\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:create', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n doc: {\n ...dataToContentAPI(this.payload, args.collection, args.data, {\n applyDefaults: true,\n createdAt: true,\n }),\n id,\n },\n locale,\n ...buildMeta(this.payload, { collection: args.collection, locale }),\n },\n })\n\n if (error) {\n throw new Error(`Content API create error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from create')\n }\n return unwrapDocument(this.payload, response.result, args.collection)\n}\n\nasync function clearDatabase(this: ContentAPIAdapter) {\n this.payload.logger.info(`---- CLEARING CONTENT API DATABASE ----`)\n try {\n await fetch(`${this.url}/dev/clear-db`, {\n headers: { 'Content-Type': 'application/json' },\n method: 'POST',\n })\n this.payload.logger.info('---- CONTENT API DATABASE CLEARED ----')\n\n // Re-sync collections after clearing\n await syncCollections.call(this)\n } catch (error) {\n this.payload.logger.error(`Failed to clear database: ${(error as Error).message}`)\n throw error\n }\n}\n\nasync function count(this: ContentAPIAdapter, args: CountArgs) {\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:count', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n locale,\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API count error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from count')\n }\n\n return { totalDocs: response.result.count }\n}\n\nasync function countVersions(this: ContentAPIAdapter, args: CountArgs) {\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/document_versions:count', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n locale,\n where: convertPayloadWhereToContentAPI(args.where, { stripVersionPrefix: true }),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API countVersions error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from countVersions')\n }\n\n return { totalDocs: response.result.count }\n}\n\nasync function upsert(this: ContentAPIAdapter, args: UpsertArgs) {\n let documentId = args.data.id as string | undefined\n if (!documentId && args.where && 'id' in args.where) {\n const idClause = (args.where as Record<string, unknown>).id as Record<string, unknown>\n if (idClause && 'equals' in idClause) {\n documentId = idClause.equals as string\n }\n }\n if (!documentId) {\n documentId = uuid()\n }\n\n const locale = addFallbackLocale(args.locale, this.payload)\n\n const { data: response, error } = await this.client.POST('/api/v0/documents:update', {\n body: {\n collection: args.collection,\n contentSystemId: this.contentSystemId,\n createOnMissing: { id: documentId },\n doc: dataToContentAPI(this.payload, args.collection, args.data, {\n applyDefaults: true,\n createdAt: true,\n }),\n locale,\n where: convertPayloadWhereToContentAPI(args.where),\n ...buildMeta(this.payload, {\n collection: args.collection,\n locale,\n where: args.where,\n }),\n },\n })\n\n if (error) {\n throw new Error(`Content API upsert error: ${JSON.stringify(error)}`)\n }\n if (!response) {\n throw new Error('No response from upsert')\n }\n if (!response.result || !('data' in response.result)) {\n throw new Error('Unexpected response format from upsert')\n }\n\n const doc = response.result.data[0]\n if (!doc) {\n throw new Error('No document data in upsert response')\n }\n\n return unwrapDocument(this.payload, doc, args.collection)\n}\n\nfunction createGlobal(this: ContentAPIAdapter, args: CreateGlobalArgs) {\n return this.create({\n collection: getGlobalSlug(args.slug),\n data: { ...args.data, id: args.slug, globalType: args.slug },\n })\n}\n\nfunction findGlobal(this: ContentAPIAdapter, args: FindGlobalArgs) {\n return this.findOne({\n collection: getGlobalSlug(args.slug),\n locale: args.locale,\n where: args.where ?? {},\n })\n}\n\nasync function updateGlobal(this: ContentAPIAdapter, args: UpdateGlobalArgs) {\n // Use upsert to ensure the global exists\n // Use slug as the consistent document ID for globals\n return this.upsert({\n collection: getGlobalSlug(args.slug),\n data: args.data,\n where: { id: { equals: args.slug } },\n })\n}\n\n// TODO: remove Omit when this PR is released: https://github.com/payloadcms/payload/pull/15183\nfunction findGlobalVersions(this: ContentAPIAdapter, args: Omit<FindGlobalVersionsArgs, 'skip'>) {\n return this.findVersions({\n collection: getGlobalSlug(args.global),\n limit: args.limit,\n locale: args.locale,\n page: args.page,\n pagination: args.pagination,\n sort: args.sort,\n where: args.where,\n })\n}\n\nfunction createGlobalVersion(this: ContentAPIAdapter, args: CreateGlobalVersionArgs) {\n // For globals, use the globalSlug as the consistent document ID\n // This matches what we do in updateGlobal\n return this.createVersion({\n autosave: args.autosave,\n collectionSlug: getGlobalSlug(args.globalSlug),\n createdAt: args.createdAt,\n parent: args.globalSlug,\n publishedLocale: args.publishedLocale,\n updatedAt: args.updatedAt,\n versionData: args.versionData,\n })\n}\n\nfunction updateGlobalVersion(this: ContentAPIAdapter, args: UpdateGlobalVersionArgs) {\n // UpdateVersion requires either id OR where, not both\n if (args.id !== undefined) {\n return this.updateVersion({\n id: args.id,\n collection: getGlobalSlug(args.global),\n locale: args.locale,\n versionData: args.versionData,\n })\n }\n // args.where is guaranteed by Payload when args.id is undefined\n return this.updateVersion({\n collection: getGlobalSlug(args.global),\n locale: args.locale,\n versionData: args.versionData,\n where: args.where,\n })\n}\n\nfunction countGlobalVersions(this: ContentAPIAdapter, args: CountGlobalVersionArgs) {\n return this.countVersions({\n collection: getGlobalSlug(args.global),\n locale: args.locale,\n where: args.where,\n })\n}\n\nexport const contentAPIAdapter = (opts: ContentAPIOptions): DatabaseAdapterObj => ({\n name: 'content-api',\n defaultIDType: 'text',\n init: ({ payload }) => {\n const client = createClient<paths>({ baseUrl: opts.url })\n\n const middlewareOpts = {\n auth: opts.auth,\n contentSystemId: opts.contentSystemId,\n logger: payload.logger,\n url: opts.url,\n }\n\n client.use(createAuthMiddleware(middlewareOpts))\n client.use(createErrorMiddleware(middlewareOpts))\n\n return createDatabaseAdapter<ContentAPIAdapter>({\n name: 'content-api',\n allowIDOnCreate: opts.allowIDOnCreate ?? false,\n auth: opts.auth,\n beginTransaction: () => Promise.resolve(null),\n clearDatabase: clearDatabase as () => Promise<void>,\n client,\n commitTransaction: async () => {},\n contentSystemId: opts.contentSystemId,\n count: count as Count,\n countGlobalVersions: countGlobalVersions as CountGlobalVersions,\n countVersions: countVersions as CountVersions,\n create: create as Create,\n createGlobal: createGlobal as CreateGlobal,\n createGlobalVersion: createGlobalVersion as CreateGlobalVersion,\n createVersion: createVersion as CreateVersion,\n defaultIDType: 'text',\n deleteMany: deleteMany as DeleteMany,\n deleteOne: deleteOne as DeleteOne,\n deleteVersions: deleteVersions as DeleteVersions,\n find: find as Find,\n findDistinct: () =>\n Promise.reject(new Error('findDistinct is not yet implemented for Content API adapter')),\n findGlobal: findGlobal as FindGlobal,\n findGlobalVersions: findGlobalVersions as FindGlobalVersions,\n findOne: findOne as FindOne,\n findVersions: findVersions as FindVersions,\n init,\n packageName: '@payloadcms/db-content-api',\n payload,\n queryDrafts: queryDrafts as QueryDrafts,\n rollbackTransaction: async () => {},\n updateGlobal: updateGlobal as UpdateGlobal,\n updateGlobalVersion: updateGlobalVersion as UpdateGlobalVersion,\n updateMany: updateMany as UpdateMany,\n updateOne: updateOne as UpdateOne,\n updateVersion: updateVersion as UpdateVersion,\n upsert: upsert as Upsert,\n url: opts.url,\n })\n },\n})\n"],"names":["createClient","createDatabaseAdapter","v4","uuid","FigmaApiError","CONTENT_SYSTEM_NOT_FOUND_MESSAGE","getGlobalSlug","addFallbackSort","unwrapDocument","unwrapFindResponse","createAuthMiddleware","createErrorMiddleware","dataToContentAPI","convertPayloadJoinsToContentAPI","addFallbackLocale","buildMeta","convertPayloadWhereToContentAPI","syncCollections","existingIds","data","response","error","httpResponse","client","GET","params","path","contentSystemId","status","Error","JSON","stringify","Set","map","c","id","payload","logger","info","size","message","statusCode","warn","collection","config","collections","has","slug","createCollection","call","global","globals","globalId","init","auth","mode","process","env","PAYLOAD_DROP_DATABASE","clearDatabase","collectionId","POST","body","errorMessage","includes","findMany","joins","limit","locale","localeArg","page","pagination","_pagination","sort","where","join","result","find","args","collectionConfig","defaultSort","findVersions","sortWithFallback","whereClause","parentToDocumentId","stripVersionPrefix","queryDrafts","versionsResult","latest","equals","docs","versionDoc","version","versionMeta","createVersion","collectionSlug","createdAt","autosave","parent","String","updatedAt","versionData","applyDefaults","publishedLocale","updateVersion","createOnMissing","undefined","doc","deleteVersions","findOne","updateMany","returning","updateOne","deleteMany","req","deleteOne","create","isGlobalCollection","startsWith","customIDType","allowIDOnCreate","fetch","url","headers","method","count","totalDocs","countVersions","upsert","documentId","idClause","createGlobal","globalType","findGlobal","updateGlobal","findGlobalVersions","createGlobalVersion","globalSlug","updateGlobalVersion","countGlobalVersions","contentAPIAdapter","opts","name","defaultIDType","baseUrl","middlewareOpts","use","beginTransaction","Promise","resolve","commitTransaction","findDistinct","reject","packageName","rollbackTransaction"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"slug.d.ts","sourceRoot":"","sources":["../../../src/db-content-api/temp-utilities/slug.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,SAAU,MAAM,WAAsB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/db-content-api/temp-utilities/slug.ts"],"sourcesContent":["export const getGlobalSlug = (slug: string) => `_global-${slug}`\n"],"names":["getGlobalSlug","slug"],"mappings":"AAAA,OAAO,MAAMA,gBAAgB,CAACC,OAAiB,CAAC,QAAQ,EAAEA,MAAM,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sorting.d.ts","sourceRoot":"","sources":["../../../src/db-content-api/temp-utilities/sorting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAKtC,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EACnC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,MAAM,GACrB,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CA8B/B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/db-content-api/temp-utilities/sorting.ts"],"sourcesContent":["import type { Payload } from 'payload'\n\n// Add fallback sort to ensure consistent ordering when sorting by non-unique fields\n// Matches MongoDB adapter behavior\n// TO-DECIDE: Should this live here or in content-api?\nexport function addFallbackSort(\n sort: string | string[] | undefined,\n payload: Payload,\n collectionSlug: string,\n): string | string[] | undefined {\n const collectionConfig = payload.config.collections.find((c) => c.slug === collectionSlug)\n\n if (!sort || !collectionConfig) {\n return sort\n }\n\n const sortArray = Array.isArray(sort) ? sort : [sort]\n\n // Determine fallback sort field\n let fallbackSort = '-id'\n if (collectionConfig.timestamps !== false) {\n fallbackSort = '-createdAt'\n }\n\n // Check if fallback sort is already included\n const hasFallback = sortArray.some(\n (item) => item === fallbackSort || item === fallbackSort.replace('-', ''),\n )\n\n if (hasFallback) {\n return sort\n }\n\n // Check if all sort fields are unique (then no fallback needed)\n // For simplicity, we'll always add fallback - checking uniqueness requires field traversal\n // which would be expensive. This matches the conservative approach.\n\n // Add fallback sort - always return array to preserve multiple sort fields\n return [...sortArray, fallbackSort]\n}\n"],"names":["addFallbackSort","sort","payload","collectionSlug","collectionConfig","config","collections","find","c","slug","sortArray","Array","isArray","fallbackSort","timestamps","hasFallback","some","item","replace"],"mappings":"AAEA,oFAAoF;AACpF,mCAAmC;AACnC,sDAAsD;AACtD,OAAO,SAASA,gBACdC,IAAmC,EACnCC,OAAgB,EAChBC,cAAsB;IAEtB,MAAMC,mBAAmBF,QAAQG,MAAM,CAACC,WAAW,CAACC,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKN;IAE3E,IAAI,CAACF,QAAQ,CAACG,kBAAkB;QAC9B,OAAOH;IACT;IAEA,MAAMS,YAAYC,MAAMC,OAAO,CAACX,QAAQA,OAAO;QAACA;KAAK;IAErD,gCAAgC;IAChC,IAAIY,eAAe;IACnB,IAAIT,iBAAiBU,UAAU,KAAK,OAAO;QACzCD,eAAe;IACjB;IAEA,6CAA6C;IAC7C,MAAME,cAAcL,UAAUM,IAAI,CAChC,CAACC,OAASA,SAASJ,gBAAgBI,SAASJ,aAAaK,OAAO,CAAC,KAAK;IAGxE,IAAIH,aAAa;QACf,OAAOd;IACT;IAEA,gEAAgE;IAChE,2FAA2F;IAC3F,oEAAoE;IAEpE,2EAA2E;IAC3E,OAAO;WAAIS;QAAWG;KAAa;AACrC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/db-content-api/temp-utilities/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa,GACrB,OAAO,GACP;IACE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,iFAAiF;IACjF,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;CAC9B,CAAA;AAEL,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/db-content-api/temp-utilities/types.ts"],"sourcesContent":["/**\n * PathType can be either a simple string type or an object with additional metadata.\n *\n * Simple types: \"array\" - for array fields, blocks, or hasMany relationships/selects\n *\n * Relationship types include collection info needed for Content API to perform JOINs:\n * - type: \"relationship\" for stored references, \"join\" for virtual reverse lookups\n * - collection: target collection slug (or array for polymorphic)\n * - hasMany: whether it stores multiple references\n *\n * TODO: This type is defined here temporarily so Content API can test the integration.\n * Once Content API implements support for this, the type should be generated from openapi.json.\n */\nexport type PathTypeValue =\n | 'array'\n | {\n collection: string | string[]\n hasMany?: boolean\n /** For join fields, the field path in the related collection that points back */\n on?: string\n type: 'join' | 'relationship'\n }\n\nexport type PathTypesRecord = Record<string, PathTypeValue>\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;CAYC,GAWD,WAA2D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unwrapDocument.d.ts","sourceRoot":"","sources":["../../../src/db-content-api/temp-utilities/unwrapDocument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAA;AAInE,KAAK,gBAAgB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAA;AAC1E,KAAK,uBAAuB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAA;AASxF,wBAAgB,cAAc,CAC5B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,gBAAgB,GAAG,uBAAuB,EAC/C,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyCzB;AAED,eAAO,MAAM,kBAAkB,YACpB,OAAO,YAEZ,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,GACxD,UAAU,CAAC,SAAS,CAAC,CAAC,8BAA8B,CAAC,CAAC,QAAQ,CAAC,cACvD,MAAM;;;;;;;;;;;;;;;;;;;;;;CASnB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/db-content-api/temp-utilities/unwrapDocument.ts"],"sourcesContent":["import type { Payload } from 'payload'\n\nimport type { components } from '../generated/content-api-types.js'\n\nimport { dataFromContentAPI } from '../utilities/data/index.js'\n\ntype DocumentResponse = { id: string } & components['schemas']['Document']\ntype DocumentVersionResponse = { id: string } & components['schemas']['DocumentVersion']\n\n// Helper to unwrap Content API document format to Payload format\n// Content API returns:\n// - For documents: { id, contentSystemId, collection, doc: { ...fields, createdAt, updatedAt } }\n// - For versions: { id, contentSystemId, collection, versionDoc: { id, createdAt, updatedAt, latest, parent, version: {...fields} } }\n// Payload expects:\n// - For documents: { id, ...fields, createdAt, updatedAt }\n// - For versions: { id, parent, latest, version: { ...fields }, createdAt, updatedAt }\nexport function unwrapDocument(\n payload: Payload,\n doc: DocumentResponse | DocumentVersionResponse,\n collectionSlug?: string,\n): Record<string, unknown> {\n if (!doc) {\n return doc as unknown as Record<string, unknown>\n }\n\n // Check if this is a DocumentVersion (has versionDoc field)\n const isVersion = 'versionDoc' in doc\n\n if (isVersion) {\n // For versions, Payload expects nested structure with 'version' field\n const { versionDoc } = doc\n const baseDoc = { ...versionDoc } as Record<string, unknown>\n\n // Transform data from Content API format to Payload format\n if (collectionSlug) {\n // Only transform the nested 'version' field\n baseDoc.version = dataFromContentAPI(payload, collectionSlug, baseDoc.version) as Record<\n string,\n unknown\n >\n\n // Also convert version ID if collection uses numeric custom ID\n const customIDType = payload.collections?.[collectionSlug]?.customIDType\n if (customIDType === 'number') {\n baseDoc.id = Number(baseDoc.id)\n }\n }\n\n return baseDoc\n }\n\n // For regular documents, spread doc data at root level\n const { id, doc: docData } = doc\n const baseDoc = { ...docData, id }\n\n // Transform data from Content API format to Payload format\n if (collectionSlug) {\n return dataFromContentAPI(payload, collectionSlug, baseDoc) as Record<string, unknown>\n }\n\n return baseDoc\n}\n\nexport const unwrapFindResponse = (\n payload: Payload,\n response:\n | components['schemas']['FindDocumentsResponse']['result']\n | components['schemas']['FindDocumentVersionsResponse']['result'],\n collection: string,\n) => {\n const { data, ...paginationFields } = response\n return {\n docs: data.map((doc) =>\n unwrapDocument(payload, doc as DocumentResponse | DocumentVersionResponse, collection),\n ),\n ...paginationFields,\n }\n}\n"],"names":["dataFromContentAPI","unwrapDocument","payload","doc","collectionSlug","isVersion","versionDoc","baseDoc","version","customIDType","collections","id","Number","docData","unwrapFindResponse","response","collection","data","paginationFields","docs","map"],"mappings":"AAIA,SAASA,kBAAkB,QAAQ,6BAA4B;AAK/D,iEAAiE;AACjE,uBAAuB;AACvB,mGAAmG;AACnG,wIAAwI;AACxI,mBAAmB;AACnB,6DAA6D;AAC7D,yFAAyF;AACzF,OAAO,SAASC,eACdC,OAAgB,EAChBC,GAA+C,EAC/CC,cAAuB;IAEvB,IAAI,CAACD,KAAK;QACR,OAAOA;IACT;IAEA,4DAA4D;IAC5D,MAAME,YAAY,gBAAgBF;IAElC,IAAIE,WAAW;QACb,sEAAsE;QACtE,MAAM,EAAEC,UAAU,EAAE,GAAGH;QACvB,MAAMI,UAAU;YAAE,GAAGD,UAAU;QAAC;QAEhC,2DAA2D;QAC3D,IAAIF,gBAAgB;YAClB,4CAA4C;YAC5CG,QAAQC,OAAO,GAAGR,mBAAmBE,SAASE,gBAAgBG,QAAQC,OAAO;YAK7E,+DAA+D;YAC/D,MAAMC,eAAeP,QAAQQ,WAAW,EAAE,CAACN,eAAe,EAAEK;YAC5D,IAAIA,iBAAiB,UAAU;gBAC7BF,QAAQI,EAAE,GAAGC,OAAOL,QAAQI,EAAE;YAChC;QACF;QAEA,OAAOJ;IACT;IAEA,uDAAuD;IACvD,MAAM,EAAEI,EAAE,EAAER,KAAKU,OAAO,EAAE,GAAGV;IAC7B,MAAMI,UAAU;QAAE,GAAGM,OAAO;QAAEF;IAAG;IAEjC,2DAA2D;IAC3D,IAAIP,gBAAgB;QAClB,OAAOJ,mBAAmBE,SAASE,gBAAgBG;IACrD;IAEA,OAAOA;AACT;AAEA,OAAO,MAAMO,qBAAqB,CAChCZ,SACAa,UAGAC;IAEA,MAAM,EAAEC,IAAI,EAAE,GAAGC,kBAAkB,GAAGH;IACtC,OAAO;QACLI,MAAMF,KAAKG,GAAG,CAAC,CAACjB,MACdF,eAAeC,SAASC,KAAmDa;QAE7E,GAAGE,gBAAgB;IACrB;AACF,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/db-content-api/utilities/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAK3D,KAAK,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AACpD,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,UAAU,CAAA;CAAE,CAAA;AACpE,KAAK,UAAU,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AACpC,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAA;AAK/D,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBvF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,IAAI,EAAE,QAAQ,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzB,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,UAAU,CAyBb;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,IAAI,EAAE,QAAQ,CAAA;IACd,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzB,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,UAAU,CAqCb"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/db-content-api/utilities/auth.ts"],"sourcesContent":["import type { Middleware } from 'openapi-fetch'\nimport type { Payload } from 'payload'\n\nimport type { TokenStore } from '../../auth/token-store.js'\n\nimport { getValidProjectToken } from '../../auth/project-token.js'\n\n// Auth mode types\ntype ApiKeyAuth = { apiKey: string; mode: 'apiKey' }\ntype TokenStoreAuth = { mode: 'tokenStore'; tokenStore: TokenStore }\ntype DevJwtAuth = { mode: 'devJwt' }\nexport type AuthMode = ApiKeyAuth | DevJwtAuth | TokenStoreAuth\n\n// Module-level cache for dev JWT tokens\nconst devJwtCache = new Map<string, string>()\n\nexport async function fetchDevJwt(url: string, contentSystemId: string): Promise<string> {\n const usesSuperUser =\n !contentSystemId || contentSystemId === 'test-system' || contentSystemId === '*'\n const contentSystemIdForJWT = usesSuperUser ? '*' : contentSystemId\n\n const response = await fetch(`${url}/dev/jwt`, {\n body: JSON.stringify({ content_system_id: contentSystemIdForJWT }),\n headers: { 'Content-Type': 'application/json' },\n method: 'POST',\n })\n\n if (!response.ok) {\n throw new Error(`Failed to get dev JWT: ${response.status} ${response.statusText}`)\n }\n\n const { token } = await response.json()\n return token\n}\n\nexport function createAuthMiddleware(opts: {\n auth: AuthMode\n contentSystemId: string\n logger: Payload['logger']\n url: string\n}): Middleware {\n return {\n async onRequest({ request }) {\n if (opts.auth.mode === 'apiKey') {\n request.headers.set('X-Api-Key', opts.auth.apiKey)\n } else if (opts.auth.mode === 'tokenStore') {\n const token = await getValidProjectToken(opts.auth.tokenStore, opts.contentSystemId)\n if (!token) {\n throw new Error(\n 'Authentication required. Run `npx @payloadcms/figma login` to authenticate.',\n )\n }\n request.headers.set('Authorization', `Bearer ${token}`)\n } else {\n let token = devJwtCache.get(opts.contentSystemId)\n if (!token) {\n token = await fetchDevJwt(opts.url, opts.contentSystemId)\n devJwtCache.set(opts.contentSystemId, token)\n opts.logger.info(`Dev JWT acquired for content system: ${opts.contentSystemId}`)\n }\n request.headers.set('Authorization', `Bearer ${token}`)\n }\n return request\n },\n }\n}\n\nexport function createErrorMiddleware(opts: {\n auth: AuthMode\n contentSystemId: string\n logger: Payload['logger']\n url: string\n}): Middleware {\n return {\n async onResponse({ request, response }) {\n if (!response.ok) {\n // Handle 401 retry for dev JWT\n if (response.status === 401 && opts.auth.mode === 'devJwt') {\n const retryCount = parseInt(request.headers.get('X-Retry-Count') || '0', 10)\n if (retryCount < 1) {\n opts.logger.info('Dev JWT expired, refreshing...')\n devJwtCache.delete(opts.contentSystemId)\n\n const newToken = await fetchDevJwt(opts.url, opts.contentSystemId)\n devJwtCache.set(opts.contentSystemId, newToken)\n\n // duplex: 'half' is required for Node.js fetch with streaming body\n const newRequest = new Request(request.url, {\n body: request.body,\n duplex: 'half',\n headers: new Headers(request.headers),\n method: request.method,\n } as RequestInit)\n newRequest.headers.set('X-Retry-Count', '1')\n newRequest.headers.set('Authorization', `Bearer ${newToken}`)\n\n return fetch(newRequest)\n }\n }\n\n const text = await response.clone().text()\n opts.logger.error({\n msg: `HTTP ${response.status} from ${request.url}`,\n response: text,\n })\n }\n return response\n },\n }\n}\n"],"names":["getValidProjectToken","devJwtCache","Map","fetchDevJwt","url","contentSystemId","usesSuperUser","contentSystemIdForJWT","response","fetch","body","JSON","stringify","content_system_id","headers","method","ok","Error","status","statusText","token","json","createAuthMiddleware","opts","onRequest","request","auth","mode","set","apiKey","tokenStore","get","logger","info","createErrorMiddleware","onResponse","retryCount","parseInt","delete","newToken","newRequest","Request","duplex","Headers","text","clone","error","msg"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"applyDefaults.d.ts","sourceRoot":"","sources":["../../../../src/db-content-api/utilities/data/applyDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CA8DlF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/db-content-api/utilities/data/applyDefaults.ts"],"sourcesContent":["import type { Field } from 'payload'\n\n/**\n * Recursively apply static default values to data\n * This handles defaults for nested structures (arrays, groups) which traverseFields doesn't handle\n */\nexport function applyDefaults(data: Record<string, unknown>, fields: Field[]): void {\n for (const field of fields) {\n // Only process fields that affect data (have a name)\n if (!('name' in field) || !field.name) {\n continue\n }\n\n const value = data[field.name]\n\n // Check if field has a default value (only for FieldAffectingData types)\n const defaultValue = 'defaultValue' in field ? field.defaultValue : undefined\n const hasDefault = defaultValue !== undefined\n const isFunction = typeof defaultValue === 'function'\n\n // Skip function defaults - they need req/user context\n if (hasDefault && isFunction) {\n continue\n }\n\n // Apply default if value is undefined\n if (hasDefault && value === undefined) {\n let appliedDefault =\n typeof defaultValue === 'object' ? JSON.parse(JSON.stringify(defaultValue)) : defaultValue\n\n // Special handling for point fields: convert array [lng, lat] to GeoJSON format\n if (field.type === 'point' && Array.isArray(appliedDefault) && appliedDefault.length === 2) {\n appliedDefault = {\n type: 'Point',\n coordinates: appliedDefault,\n }\n }\n\n data[field.name] = appliedDefault\n }\n\n // Recursively process nested structures\n const currentValue = data[field.name]\n\n if (field.type === 'array' && Array.isArray(currentValue) && 'fields' in field) {\n // Apply defaults to each array element\n for (const element of currentValue) {\n if (element && typeof element === 'object') {\n applyDefaults(element as Record<string, unknown>, field.fields)\n }\n }\n } else if (field.type === 'group' && currentValue && typeof currentValue === 'object') {\n // Apply defaults to group fields\n if ('fields' in field) {\n applyDefaults(currentValue as Record<string, unknown>, field.fields)\n }\n } else if (field.type === 'blocks' && Array.isArray(currentValue) && 'blocks' in field) {\n // Apply defaults to each block\n for (const element of currentValue) {\n if (element && typeof element === 'object' && 'blockType' in element) {\n const block = field.blocks.find((b) => b.slug === element.blockType)\n if (block?.fields) {\n applyDefaults(element as Record<string, unknown>, block.fields)\n }\n }\n }\n }\n }\n}\n"],"names":["applyDefaults","data","fields","field","name","value","defaultValue","undefined","hasDefault","isFunction","appliedDefault","JSON","parse","stringify","type","Array","isArray","length","coordinates","currentValue","element","block","blocks","find","b","slug","blockType"],"mappings":"AAEA;;;CAGC,GACD,OAAO,SAASA,cAAcC,IAA6B,EAAEC,MAAe;IAC1E,KAAK,MAAMC,SAASD,OAAQ;QAC1B,qDAAqD;QACrD,IAAI,CAAE,CAAA,UAAUC,KAAI,KAAM,CAACA,MAAMC,IAAI,EAAE;YACrC;QACF;QAEA,MAAMC,QAAQJ,IAAI,CAACE,MAAMC,IAAI,CAAC;QAE9B,yEAAyE;QACzE,MAAME,eAAe,kBAAkBH,QAAQA,MAAMG,YAAY,GAAGC;QACpE,MAAMC,aAAaF,iBAAiBC;QACpC,MAAME,aAAa,OAAOH,iBAAiB;QAE3C,sDAAsD;QACtD,IAAIE,cAAcC,YAAY;YAC5B;QACF;QAEA,sCAAsC;QACtC,IAAID,cAAcH,UAAUE,WAAW;YACrC,IAAIG,iBACF,OAAOJ,iBAAiB,WAAWK,KAAKC,KAAK,CAACD,KAAKE,SAAS,CAACP,iBAAiBA;YAEhF,gFAAgF;YAChF,IAAIH,MAAMW,IAAI,KAAK,WAAWC,MAAMC,OAAO,CAACN,mBAAmBA,eAAeO,MAAM,KAAK,GAAG;gBAC1FP,iBAAiB;oBACfI,MAAM;oBACNI,aAAaR;gBACf;YACF;YAEAT,IAAI,CAACE,MAAMC,IAAI,CAAC,GAAGM;QACrB;QAEA,wCAAwC;QACxC,MAAMS,eAAelB,IAAI,CAACE,MAAMC,IAAI,CAAC;QAErC,IAAID,MAAMW,IAAI,KAAK,WAAWC,MAAMC,OAAO,CAACG,iBAAiB,YAAYhB,OAAO;YAC9E,uCAAuC;YACvC,KAAK,MAAMiB,WAAWD,aAAc;gBAClC,IAAIC,WAAW,OAAOA,YAAY,UAAU;oBAC1CpB,cAAcoB,SAAoCjB,MAAMD,MAAM;gBAChE;YACF;QACF,OAAO,IAAIC,MAAMW,IAAI,KAAK,WAAWK,gBAAgB,OAAOA,iBAAiB,UAAU;YACrF,iCAAiC;YACjC,IAAI,YAAYhB,OAAO;gBACrBH,cAAcmB,cAAyChB,MAAMD,MAAM;YACrE;QACF,OAAO,IAAIC,MAAMW,IAAI,KAAK,YAAYC,MAAMC,OAAO,CAACG,iBAAiB,YAAYhB,OAAO;YACtF,+BAA+B;YAC/B,KAAK,MAAMiB,WAAWD,aAAc;gBAClC,IAAIC,WAAW,OAAOA,YAAY,YAAY,eAAeA,SAAS;oBACpE,MAAMC,QAAQlB,MAAMmB,MAAM,CAACC,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKL,QAAQM,SAAS;oBACnE,IAAIL,OAAOnB,QAAQ;wBACjBF,cAAcoB,SAAoCC,MAAMnB,MAAM;oBAChE;gBACF;YACF;QACF;IACF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"castFieldValue.d.ts","sourceRoot":"","sources":["../../../../src/db-content-api/utilities/data/castFieldValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEhD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAwEjF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/db-content-api/utilities/data/castFieldValue.ts"],"sourcesContent":["import type { Field, TabAsField } from 'payload'\n\n/**\n * Cast field values to the appropriate type for Content API storage.\n *\n * This function implements type coercion similar to Mongoose (used by MongoDB adapter)\n * to ensure data consistency. When users ignore TypeScript types and pass incorrect types,\n * we automatically convert them to the expected type.\n *\n */\nexport function castFieldValue(field: Field | TabAsField, value: unknown): unknown {\n if (value === null || value === undefined) {\n return value\n }\n\n if (field.type === 'number') {\n // Handle hasMany: true - array of numbers\n if ('hasMany' in field && field.hasMany && Array.isArray(value)) {\n return value.map((item) => {\n if (typeof item === 'number') {\n return item\n }\n if (typeof item === 'string' || typeof item === 'boolean') {\n return Number(item)\n }\n return item // Pass through other types (will likely fail validation)\n })\n }\n\n // Handle single number\n if (typeof value !== 'number') {\n if (typeof value === 'string' || typeof value === 'boolean') {\n return Number(value)\n }\n // For objects/arrays (when not hasMany), return as-is (will likely fail validation later)\n return value\n }\n }\n\n if (field.type === 'checkbox' && typeof value !== 'boolean') {\n if (typeof value === 'string') {\n if (value.toLowerCase() === 'true' || value === '1') {\n return true\n }\n if (value.toLowerCase() === 'false' || value === '0' || value === '') {\n return false\n }\n }\n return Boolean(value)\n }\n\n // Matches Mongoose behavior: stores dates as ISO strings\n if (field.type === 'date' && typeof value !== 'string') {\n if (value instanceof Date) {\n return value.toISOString()\n }\n if (typeof value === 'number') {\n return new Date(value).toISOString()\n }\n // For other types, return as-is (will likely fail validation)\n return value\n }\n\n // Text-like fields: convert non-strings to JSON strings\n // This handles text, textarea, email, and code fields\n // EXCEPTIONS:\n // - Localized fields are stored as objects like {\"en\": \"value\", \"es\": \"valor\"}\n // - hasMany fields are stored as arrays like [\"value1\", \"value2\"]\n if (\n (field.type === 'text' ||\n field.type === 'textarea' ||\n field.type === 'email' ||\n field.type === 'code') &&\n typeof value !== 'string' &&\n !('localized' in field && field.localized) &&\n !('hasMany' in field && field.hasMany && Array.isArray(value))\n ) {\n return JSON.stringify(value)\n }\n\n // No casting needed for other types or already correct types\n return value\n}\n"],"names":["castFieldValue","field","value","undefined","type","hasMany","Array","isArray","map","item","Number","toLowerCase","Boolean","Date","toISOString","localized","JSON","stringify"],"mappings":"AAEA;;;;;;;CAOC,GACD,OAAO,SAASA,eAAeC,KAAyB,EAAEC,KAAc;IACtE,IAAIA,UAAU,QAAQA,UAAUC,WAAW;QACzC,OAAOD;IACT;IAEA,IAAID,MAAMG,IAAI,KAAK,UAAU;QAC3B,0CAA0C;QAC1C,IAAI,aAAaH,SAASA,MAAMI,OAAO,IAAIC,MAAMC,OAAO,CAACL,QAAQ;YAC/D,OAAOA,MAAMM,GAAG,CAAC,CAACC;gBAChB,IAAI,OAAOA,SAAS,UAAU;oBAC5B,OAAOA;gBACT;gBACA,IAAI,OAAOA,SAAS,YAAY,OAAOA,SAAS,WAAW;oBACzD,OAAOC,OAAOD;gBAChB;gBACA,OAAOA,KAAK,yDAAyD;;YACvE;QACF;QAEA,uBAAuB;QACvB,IAAI,OAAOP,UAAU,UAAU;YAC7B,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,WAAW;gBAC3D,OAAOQ,OAAOR;YAChB;YACA,0FAA0F;YAC1F,OAAOA;QACT;IACF;IAEA,IAAID,MAAMG,IAAI,KAAK,cAAc,OAAOF,UAAU,WAAW;QAC3D,IAAI,OAAOA,UAAU,UAAU;YAC7B,IAAIA,MAAMS,WAAW,OAAO,UAAUT,UAAU,KAAK;gBACnD,OAAO;YACT;YACA,IAAIA,MAAMS,WAAW,OAAO,WAAWT,UAAU,OAAOA,UAAU,IAAI;gBACpE,OAAO;YACT;QACF;QACA,OAAOU,QAAQV;IACjB;IAEA,yDAAyD;IACzD,IAAID,MAAMG,IAAI,KAAK,UAAU,OAAOF,UAAU,UAAU;QACtD,IAAIA,iBAAiBW,MAAM;YACzB,OAAOX,MAAMY,WAAW;QAC1B;QACA,IAAI,OAAOZ,UAAU,UAAU;YAC7B,OAAO,IAAIW,KAAKX,OAAOY,WAAW;QACpC;QACA,8DAA8D;QAC9D,OAAOZ;IACT;IAEA,wDAAwD;IACxD,sDAAsD;IACtD,cAAc;IACd,+EAA+E;IAC/E,kEAAkE;IAClE,IACE,AAACD,CAAAA,MAAMG,IAAI,KAAK,UACdH,MAAMG,IAAI,KAAK,cACfH,MAAMG,IAAI,KAAK,WACfH,MAAMG,IAAI,KAAK,MAAK,KACtB,OAAOF,UAAU,YACjB,CAAE,CAAA,eAAeD,SAASA,MAAMc,SAAS,AAAD,KACxC,CAAE,CAAA,aAAad,SAASA,MAAMI,OAAO,IAAIC,MAAMC,OAAO,CAACL,MAAK,GAC5D;QACA,OAAOc,KAAKC,SAAS,CAACf;IACxB;IAEA,6DAA6D;IAC7D,OAAOA;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/db-content-api/utilities/data/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkC,OAAO,EAA0B,MAAM,SAAS,CAAA;AAI9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AAQtE,KAAK,kBAAkB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,CAAA;AAErE,UAAU,uBAAuB;IAC/B,iDAAiD;IACjD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,uBAAuB,GAChC,kBAAkB,CAoFpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,OAAO,GACZ,OAAO,CA4GT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/db-content-api/utilities/data/index.ts"],"sourcesContent":["import type { CollectionConfig, GlobalConfig, Payload, TraverseFieldsCallback } from 'payload'\n\nimport { flattenAllFields, traverseFields } from 'payload'\n\nimport type { components } from '../../generated/content-api-types.js'\n\nimport { applyDefaults } from './applyDefaults.js'\nimport { castFieldValue } from './castFieldValue.js'\nimport { removeVirtualFields } from './removeVirtualFields.js'\nimport { stripFields } from './stripFields.js'\nimport { transformToLocalizeStatus } from './transformPublishedLocale.js'\n\ntype DataWithOperations = components['schemas']['DataWithOperations']\n\ninterface DataToContentAPIOptions {\n /** Apply static defaults for undefined fields */\n applyDefaults?: boolean\n /** Add createdAt timestamp */\n createdAt?: boolean\n /**\n * Transform publishedLocale to localizeStatus format.\n * When provided, converts `_status: 'published'` + `publishedLocale: 'en'`\n * to `_status: { en: 'published' }` format.\n */\n publishedLocale?: string\n}\n\n/**\n * Transform data before sending to Content API (WRITE operations)\n *\n * Conversions applied:\n * - Default values: Apply static defaults for undefined fields (when applyDefaults=true)\n * - Type casting: Convert values to match field types (e.g., number -> string for text fields)\n * - RichText fields: Objects -> JSON strings\n * - Virtual fields: Remove fields with `virtual: true` (pure virtual fields should never be saved)\n * - Timestamps: Add updatedAt (always), and createdAt (when createdAt=true)\n * - publishedLocale: Transform to localizeStatus format (when publishedLocale is provided)\n *\n * Note: Date fields are automatically converted to ISO strings by JSON.stringify()\n */\nexport function dataToContentAPI(\n payload: Payload,\n collectionSlug: string,\n data: unknown,\n options?: DataToContentAPIOptions,\n): DataWithOperations {\n if (!data || typeof data !== 'object') {\n return data as DataWithOperations\n }\n\n // Transform publishedLocale to localizeStatus format before other transformations\n const dataWithLocalizedStatus = transformToLocalizeStatus(\n data as Record<string, unknown>,\n options?.publishedLocale,\n )\n\n // Deep clone to avoid mutating original data\n const transformed = JSON.parse(JSON.stringify(dataWithLocalizedStatus))\n\n // Get collection config\n const isGlobal = collectionSlug.startsWith('_global-')\n const actualSlug = isGlobal ? collectionSlug.substring(8) : collectionSlug\n const collectionConfig: CollectionConfig | GlobalConfig | undefined = isGlobal\n ? payload.config.globals?.find((g) => g.slug === actualSlug)\n : payload.config.collections.find((c) => c.slug === actualSlug)\n\n if (!collectionConfig?.fields) {\n return transformed as DataWithOperations\n }\n\n // Apply static defaults recursively to handle nested structures (arrays, groups)\n // This must happen before traverseFields to ensure defaults are in place\n if (options?.applyDefaults) {\n applyDefaults(transformed, collectionConfig.fields)\n }\n\n // Use Payload's traverseFields to iterate over all fields for transformations\n const callback: TraverseFieldsCallback = ({ field, ref }) => {\n if (!('name' in field) || !field.name) {\n return\n }\n if (!ref || typeof ref !== 'object') {\n return\n }\n\n const current = ref as Record<string, unknown>\n let value = current[field.name]\n\n // Transform existing values\n if (value !== null && value !== undefined) {\n // Step 1: Apply type casting (e.g., number -> string for text fields)\n value = castFieldValue(field, value)\n current[field.name] = value\n\n // Step 2: Apply Content API specific transformations\n // RichText: object -> JSON string\n if (field.type === 'richText' && typeof value !== 'string') {\n current[field.name] = JSON.stringify(value)\n }\n // Date fields are already handled by JSON.stringify() which converts Date -> ISO string\n }\n }\n\n traverseFields({ callback, fields: collectionConfig.fields, fillEmpty: false, ref: transformed })\n\n stripFields({\n config: payload.config,\n data: transformed,\n fields: flattenAllFields({ cache: true, fields: collectionConfig.fields }),\n reservedKeys: ['id', 'globalType'],\n })\n\n removeVirtualFields(transformed, collectionConfig.fields)\n\n // Convert numeric ID to string for Content API\n const customIDType = payload.collections?.[collectionSlug]?.customIDType\n if (customIDType === 'number') {\n transformed.id = String(transformed.id)\n }\n\n // Add timestamps (Content API no longer auto-sets these in DB)\n // updatedAt is always set, createdAt only on create operations\n const now = new Date().toISOString()\n transformed.updatedAt = now\n if (options?.createdAt) {\n transformed.createdAt = now\n }\n\n return transformed as DataWithOperations\n}\n\n/**\n * Transform data received from Content API (READ operations)\n *\n * Conversions applied:\n * - RichText fields: JSON strings -> Objects\n * - Virtual fields: Remove fields with `virtual: true` (should not be in DB but Content API backend may add them)\n *\n * Note: Date fields come as ISO strings from Content API and stay as strings\n * (matching MongoDB and other adapters' behavior)\n */\nexport function dataFromContentAPI(\n payload: Payload,\n collectionSlug: string,\n data: unknown,\n): unknown {\n if (!data || typeof data !== 'object') {\n return data\n }\n\n // Deep clone to avoid mutating original data\n const transformed = JSON.parse(JSON.stringify(data))\n\n // Get collection config\n const isGlobal = collectionSlug.startsWith('_global-')\n const actualSlug = isGlobal ? collectionSlug.substring(8) : collectionSlug\n const collectionConfig: CollectionConfig | GlobalConfig | undefined = isGlobal\n ? payload.config.globals?.find((g) => g.slug === actualSlug)\n : payload.config.collections.find((c) => c.slug === actualSlug)\n\n if (!collectionConfig?.fields) {\n return transformed\n }\n\n // Use Payload's traverseFields to iterate over all fields\n const callback: TraverseFieldsCallback = ({ field, parentPath, ref }) => {\n if (!('name' in field) || !field.name) {\n return\n }\n if (!ref || typeof ref !== 'object') {\n return\n }\n\n const current = ref as Record<string, unknown>\n const value = current[field.name]\n\n // Normalize undefined → null for optional fields\n // Content API may omit fields (undefined) but Payload expects null for optional fields\n if (value === undefined) {\n const isRequired = 'required' in field && field.required\n if (!isRequired) {\n current[field.name] = null\n }\n return\n }\n\n if (value !== null) {\n // Localized fields: JSON string -> parsed object\n // Content API may store localized fields as JSON strings like \"{\\\"en\\\":\\\"value\\\"}\"\n // so we need to parse them back to objects.\n // Note: We return the full locale object - Payload Core handles flattening to requested locale.\n // When requesting a specific locale (not 'all'), values are simple strings that won't parse.\n // In that case, we silently keep the original value.\n if ('localized' in field && field.localized && typeof value === 'string') {\n try {\n const parsed = JSON.parse(value)\n // Only use parsed value if it's actually an object (locale -> value mapping)\n // Simple strings like \"EN Title\" would parse to themselves, which we don't want\n if (typeof parsed === 'object' && parsed !== null) {\n current[field.name] = parsed\n }\n } catch {\n // Not valid JSON - keep original value (this is expected for single-locale requests)\n }\n }\n // RichText: JSON string -> object\n else if (field.type === 'richText' && typeof value === 'string') {\n try {\n current[field.name] = JSON.parse(value)\n } catch (error) {\n const fieldPath = parentPath ? `${parentPath}.${field.name}` : field.name\n payload.logger.warn({\n err: error instanceof Error ? error : new Error(String(error)),\n msg: `Failed to parse richtext field '${fieldPath}' in collection '${collectionSlug}'`,\n })\n }\n }\n // Date fields: Already ISO strings from Content API, no conversion needed\n }\n }\n\n traverseFields({ callback, fields: collectionConfig.fields, fillEmpty: false, ref: transformed })\n\n // Convert string ID to number if collection uses numeric custom ID\n const customIDType = payload.collections?.[collectionSlug]?.customIDType\n if (customIDType === 'number') {\n transformed.id = Number(transformed.id)\n }\n\n stripFields({\n config: payload.config,\n data: transformed,\n fields: flattenAllFields({ cache: true, fields: collectionConfig.fields }),\n reservedKeys: ['id', 'globalType'],\n })\n\n // Remove virtual fields - must happen AFTER stripFields\n removeVirtualFields(transformed, collectionConfig.fields)\n\n // Handle auth-specific fields that aren't in the field schema\n // When these fields are null in DB, Content API omits them from response (undefined)\n // But Payload expects them to be null, not undefined\n // Only add them if the collection has auth enabled\n if ('auth' in collectionConfig && collectionConfig.auth) {\n const authFields = ['resetPasswordExpiration', 'lockUntil']\n for (const fieldName of authFields) {\n if (!(fieldName in transformed)) {\n transformed[fieldName] = null\n }\n }\n }\n\n return transformed\n}\n"],"names":["flattenAllFields","traverseFields","applyDefaults","castFieldValue","removeVirtualFields","stripFields","transformToLocalizeStatus","dataToContentAPI","payload","collectionSlug","data","options","dataWithLocalizedStatus","publishedLocale","transformed","JSON","parse","stringify","isGlobal","startsWith","actualSlug","substring","collectionConfig","config","globals","find","g","slug","collections","c","fields","callback","field","ref","name","current","value","undefined","type","fillEmpty","cache","reservedKeys","customIDType","id","String","now","Date","toISOString","updatedAt","createdAt","dataFromContentAPI","parentPath","isRequired","required","localized","parsed","error","fieldPath","logger","warn","err","Error","msg","Number","auth","authFields","fieldName"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,cAAc,QAAQ,UAAS;AAI1D,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,yBAAyB,QAAQ,gCAA+B;AAiBzE;;;;;;;;;;;;CAYC,GACD,OAAO,SAASC,iBACdC,OAAgB,EAChBC,cAAsB,EACtBC,IAAa,EACbC,OAAiC;IAEjC,IAAI,CAACD,QAAQ,OAAOA,SAAS,UAAU;QACrC,OAAOA;IACT;IAEA,kFAAkF;IAClF,MAAME,0BAA0BN,0BAC9BI,MACAC,SAASE;IAGX,6CAA6C;IAC7C,MAAMC,cAAcC,KAAKC,KAAK,CAACD,KAAKE,SAAS,CAACL;IAE9C,wBAAwB;IACxB,MAAMM,WAAWT,eAAeU,UAAU,CAAC;IAC3C,MAAMC,aAAaF,WAAWT,eAAeY,SAAS,CAAC,KAAKZ;IAC5D,MAAMa,mBAAgEJ,WAClEV,QAAQe,MAAM,CAACC,OAAO,EAAEC,KAAK,CAACC,IAAMA,EAAEC,IAAI,KAAKP,cAC/CZ,QAAQe,MAAM,CAACK,WAAW,CAACH,IAAI,CAAC,CAACI,IAAMA,EAAEF,IAAI,KAAKP;IAEtD,IAAI,CAACE,kBAAkBQ,QAAQ;QAC7B,OAAOhB;IACT;IAEA,iFAAiF;IACjF,yEAAyE;IACzE,IAAIH,SAAST,eAAe;QAC1BA,cAAcY,aAAaQ,iBAAiBQ,MAAM;IACpD;IAEA,8EAA8E;IAC9E,MAAMC,WAAmC,CAAC,EAAEC,KAAK,EAAEC,GAAG,EAAE;QACtD,IAAI,CAAE,CAAA,UAAUD,KAAI,KAAM,CAACA,MAAME,IAAI,EAAE;YACrC;QACF;QACA,IAAI,CAACD,OAAO,OAAOA,QAAQ,UAAU;YACnC;QACF;QAEA,MAAME,UAAUF;QAChB,IAAIG,QAAQD,OAAO,CAACH,MAAME,IAAI,CAAC;QAE/B,4BAA4B;QAC5B,IAAIE,UAAU,QAAQA,UAAUC,WAAW;YACzC,sEAAsE;YACtED,QAAQjC,eAAe6B,OAAOI;YAC9BD,OAAO,CAACH,MAAME,IAAI,CAAC,GAAGE;YAEtB,qDAAqD;YACrD,kCAAkC;YAClC,IAAIJ,MAAMM,IAAI,KAAK,cAAc,OAAOF,UAAU,UAAU;gBAC1DD,OAAO,CAACH,MAAME,IAAI,CAAC,GAAGnB,KAAKE,SAAS,CAACmB;YACvC;QACA,wFAAwF;QAC1F;IACF;IAEAnC,eAAe;QAAE8B;QAAUD,QAAQR,iBAAiBQ,MAAM;QAAES,WAAW;QAAON,KAAKnB;IAAY;IAE/FT,YAAY;QACVkB,QAAQf,QAAQe,MAAM;QACtBb,MAAMI;QACNgB,QAAQ9B,iBAAiB;YAAEwC,OAAO;YAAMV,QAAQR,iBAAiBQ,MAAM;QAAC;QACxEW,cAAc;YAAC;YAAM;SAAa;IACpC;IAEArC,oBAAoBU,aAAaQ,iBAAiBQ,MAAM;IAExD,+CAA+C;IAC/C,MAAMY,eAAelC,QAAQoB,WAAW,EAAE,CAACnB,eAAe,EAAEiC;IAC5D,IAAIA,iBAAiB,UAAU;QAC7B5B,YAAY6B,EAAE,GAAGC,OAAO9B,YAAY6B,EAAE;IACxC;IAEA,+DAA+D;IAC/D,+DAA+D;IAC/D,MAAME,MAAM,IAAIC,OAAOC,WAAW;IAClCjC,YAAYkC,SAAS,GAAGH;IACxB,IAAIlC,SAASsC,WAAW;QACtBnC,YAAYmC,SAAS,GAAGJ;IAC1B;IAEA,OAAO/B;AACT;AAEA;;;;;;;;;CASC,GACD,OAAO,SAASoC,mBACd1C,OAAgB,EAChBC,cAAsB,EACtBC,IAAa;IAEb,IAAI,CAACA,QAAQ,OAAOA,SAAS,UAAU;QACrC,OAAOA;IACT;IAEA,6CAA6C;IAC7C,MAAMI,cAAcC,KAAKC,KAAK,CAACD,KAAKE,SAAS,CAACP;IAE9C,wBAAwB;IACxB,MAAMQ,WAAWT,eAAeU,UAAU,CAAC;IAC3C,MAAMC,aAAaF,WAAWT,eAAeY,SAAS,CAAC,KAAKZ;IAC5D,MAAMa,mBAAgEJ,WAClEV,QAAQe,MAAM,CAACC,OAAO,EAAEC,KAAK,CAACC,IAAMA,EAAEC,IAAI,KAAKP,cAC/CZ,QAAQe,MAAM,CAACK,WAAW,CAACH,IAAI,CAAC,CAACI,IAAMA,EAAEF,IAAI,KAAKP;IAEtD,IAAI,CAACE,kBAAkBQ,QAAQ;QAC7B,OAAOhB;IACT;IAEA,0DAA0D;IAC1D,MAAMiB,WAAmC,CAAC,EAAEC,KAAK,EAAEmB,UAAU,EAAElB,GAAG,EAAE;QAClE,IAAI,CAAE,CAAA,UAAUD,KAAI,KAAM,CAACA,MAAME,IAAI,EAAE;YACrC;QACF;QACA,IAAI,CAACD,OAAO,OAAOA,QAAQ,UAAU;YACnC;QACF;QAEA,MAAME,UAAUF;QAChB,MAAMG,QAAQD,OAAO,CAACH,MAAME,IAAI,CAAC;QAEjC,iDAAiD;QACjD,uFAAuF;QACvF,IAAIE,UAAUC,WAAW;YACvB,MAAMe,aAAa,cAAcpB,SAASA,MAAMqB,QAAQ;YACxD,IAAI,CAACD,YAAY;gBACfjB,OAAO,CAACH,MAAME,IAAI,CAAC,GAAG;YACxB;YACA;QACF;QAEA,IAAIE,UAAU,MAAM;YAClB,iDAAiD;YACjD,mFAAmF;YACnF,4CAA4C;YAC5C,gGAAgG;YAChG,6FAA6F;YAC7F,qDAAqD;YACrD,IAAI,eAAeJ,SAASA,MAAMsB,SAAS,IAAI,OAAOlB,UAAU,UAAU;gBACxE,IAAI;oBACF,MAAMmB,SAASxC,KAAKC,KAAK,CAACoB;oBAC1B,6EAA6E;oBAC7E,gFAAgF;oBAChF,IAAI,OAAOmB,WAAW,YAAYA,WAAW,MAAM;wBACjDpB,OAAO,CAACH,MAAME,IAAI,CAAC,GAAGqB;oBACxB;gBACF,EAAE,OAAM;gBACN,qFAAqF;gBACvF;YACF,OAEK,IAAIvB,MAAMM,IAAI,KAAK,cAAc,OAAOF,UAAU,UAAU;gBAC/D,IAAI;oBACFD,OAAO,CAACH,MAAME,IAAI,CAAC,GAAGnB,KAAKC,KAAK,CAACoB;gBACnC,EAAE,OAAOoB,OAAO;oBACd,MAAMC,YAAYN,aAAa,GAAGA,WAAW,CAAC,EAAEnB,MAAME,IAAI,EAAE,GAAGF,MAAME,IAAI;oBACzE1B,QAAQkD,MAAM,CAACC,IAAI,CAAC;wBAClBC,KAAKJ,iBAAiBK,QAAQL,QAAQ,IAAIK,MAAMjB,OAAOY;wBACvDM,KAAK,CAAC,gCAAgC,EAAEL,UAAU,iBAAiB,EAAEhD,eAAe,CAAC,CAAC;oBACxF;gBACF;YACF;QACA,0EAA0E;QAC5E;IACF;IAEAR,eAAe;QAAE8B;QAAUD,QAAQR,iBAAiBQ,MAAM;QAAES,WAAW;QAAON,KAAKnB;IAAY;IAE/F,mEAAmE;IACnE,MAAM4B,eAAelC,QAAQoB,WAAW,EAAE,CAACnB,eAAe,EAAEiC;IAC5D,IAAIA,iBAAiB,UAAU;QAC7B5B,YAAY6B,EAAE,GAAGoB,OAAOjD,YAAY6B,EAAE;IACxC;IAEAtC,YAAY;QACVkB,QAAQf,QAAQe,MAAM;QACtBb,MAAMI;QACNgB,QAAQ9B,iBAAiB;YAAEwC,OAAO;YAAMV,QAAQR,iBAAiBQ,MAAM;QAAC;QACxEW,cAAc;YAAC;YAAM;SAAa;IACpC;IAEA,wDAAwD;IACxDrC,oBAAoBU,aAAaQ,iBAAiBQ,MAAM;IAExD,8DAA8D;IAC9D,qFAAqF;IACrF,qDAAqD;IACrD,mDAAmD;IACnD,IAAI,UAAUR,oBAAoBA,iBAAiB0C,IAAI,EAAE;QACvD,MAAMC,aAAa;YAAC;YAA2B;SAAY;QAC3D,KAAK,MAAMC,aAAaD,WAAY;YAClC,IAAI,CAAEC,CAAAA,aAAapD,WAAU,GAAI;gBAC/BA,WAAW,CAACoD,UAAU,GAAG;YAC3B;QACF;IACF;IAEA,OAAOpD;AACT"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"removeVirtualFields.d.ts","sourceRoot":"","sources":["../../../../src/db-content-api/utilities/data/removeVirtualFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GACvC,IAAI,CAgDN"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/db-content-api/utilities/data/removeVirtualFields.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\n/**\n * Removes virtual fields (fields with virtual: true) from data recursively.\n * Virtual fields should never be persisted in the database.\n *\n * @todo It might be a good idea to combine `stripFields` with `stripFields`\n * in a new utility that receives a callback with conditions. I didn't do\n * it now because `stripFields` was copied from db-mongo and I'd like to\n * find a way to unify everything.\n */\nexport function removeVirtualFields(\n data: Record<string, unknown>,\n fieldConfigs: CollectionConfig['fields'],\n): void {\n for (const field of fieldConfigs) {\n // Handle UI fields (row, collapsible, tabs) - they don't have names\n // but contain other fields that might be virtual\n if (field.type === 'row' || field.type === 'collapsible') {\n if ('fields' in field) {\n removeVirtualFields(data, field.fields)\n }\n continue\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n for (const tab of field.tabs) {\n if ('fields' in tab) {\n removeVirtualFields(data, tab.fields)\n }\n }\n continue\n }\n\n // Skip fields without names\n if (!('name' in field) || !field.name) {\n continue\n }\n\n // Remove field if it has virtual: true\n if ('virtual' in field && field.virtual === true) {\n delete data[field.name]\n continue\n }\n\n // Recursively handle nested structures (groups, arrays with items, etc.)\n if ('fields' in field && field.name in data) {\n const value = data[field.name]\n\n if (field.type === 'array' && Array.isArray(value)) {\n // Process each array item\n for (const item of value) {\n if (item && typeof item === 'object') {\n removeVirtualFields(item as Record<string, unknown>, field.fields)\n }\n }\n } else if (field.type === 'group' && value && typeof value === 'object') {\n // Process group\n removeVirtualFields(value as Record<string, unknown>, field.fields)\n }\n }\n }\n}\n"],"names":["removeVirtualFields","data","fieldConfigs","field","type","fields","tab","tabs","name","virtual","value","Array","isArray","item"],"mappings":"AAEA;;;;;;;;CAQC,GACD,OAAO,SAASA,oBACdC,IAA6B,EAC7BC,YAAwC;IAExC,KAAK,MAAMC,SAASD,aAAc;QAChC,oEAAoE;QACpE,iDAAiD;QACjD,IAAIC,MAAMC,IAAI,KAAK,SAASD,MAAMC,IAAI,KAAK,eAAe;YACxD,IAAI,YAAYD,OAAO;gBACrBH,oBAAoBC,MAAME,MAAME,MAAM;YACxC;YACA;QACF;QAEA,IAAIF,MAAMC,IAAI,KAAK,UAAU,UAAUD,OAAO;YAC5C,KAAK,MAAMG,OAAOH,MAAMI,IAAI,CAAE;gBAC5B,IAAI,YAAYD,KAAK;oBACnBN,oBAAoBC,MAAMK,IAAID,MAAM;gBACtC;YACF;YACA;QACF;QAEA,4BAA4B;QAC5B,IAAI,CAAE,CAAA,UAAUF,KAAI,KAAM,CAACA,MAAMK,IAAI,EAAE;YACrC;QACF;QAEA,uCAAuC;QACvC,IAAI,aAAaL,SAASA,MAAMM,OAAO,KAAK,MAAM;YAChD,OAAOR,IAAI,CAACE,MAAMK,IAAI,CAAC;YACvB;QACF;QAEA,yEAAyE;QACzE,IAAI,YAAYL,SAASA,MAAMK,IAAI,IAAIP,MAAM;YAC3C,MAAMS,QAAQT,IAAI,CAACE,MAAMK,IAAI,CAAC;YAE9B,IAAIL,MAAMC,IAAI,KAAK,WAAWO,MAAMC,OAAO,CAACF,QAAQ;gBAClD,0BAA0B;gBAC1B,KAAK,MAAMG,QAAQH,MAAO;oBACxB,IAAIG,QAAQ,OAAOA,SAAS,UAAU;wBACpCb,oBAAoBa,MAAiCV,MAAME,MAAM;oBACnE;gBACF;YACF,OAAO,IAAIF,MAAMC,IAAI,KAAK,WAAWM,SAAS,OAAOA,UAAU,UAAU;gBACvE,gBAAgB;gBAChBV,oBAAoBU,OAAkCP,MAAME,MAAM;YACpE;QACF;IACF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stripFields.d.ts","sourceRoot":"","sources":["../../../../src/db-content-api/utilities/data/stripFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,WAAW,+DAMrB;IACD,MAAM,EAAE,eAAe,CAAA;IAEvB,IAAI,EAAE,GAAG,CAAA;IACT,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB,SAmLA,CAAA"}
|