payload 4.0.0-internal.d28e9fb → 4.0.0-internal.fa345ef
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/LICENSE.md +1 -1
- package/bin.js +11 -0
- package/dist/admin/RichText.d.ts +4 -17
- package/dist/admin/RichText.d.ts.map +1 -1
- package/dist/admin/RichText.js.map +1 -1
- package/dist/admin/adapters/cookies.d.ts +21 -0
- package/dist/admin/adapters/cookies.d.ts.map +1 -0
- package/dist/admin/adapters/cookies.js +3 -0
- package/dist/admin/adapters/cookies.js.map +1 -0
- package/dist/admin/adapters/devReload.d.ts +9 -0
- package/dist/admin/adapters/devReload.d.ts.map +1 -0
- package/dist/admin/adapters/devReload.js +6 -0
- package/dist/admin/adapters/devReload.js.map +1 -0
- package/dist/admin/adapters/index.d.ts +7 -0
- package/dist/admin/adapters/index.d.ts.map +1 -0
- package/dist/admin/adapters/index.js +3 -0
- package/dist/admin/adapters/index.js.map +1 -0
- package/dist/admin/adapters/render.d.ts +16 -0
- package/dist/admin/adapters/render.d.ts.map +1 -0
- package/dist/admin/adapters/render.js +7 -0
- package/dist/admin/adapters/render.js.map +1 -0
- package/dist/admin/adapters/router.d.ts +56 -0
- package/dist/admin/adapters/router.d.ts.map +1 -0
- package/dist/admin/adapters/router.js +3 -0
- package/dist/admin/adapters/router.js.map +1 -0
- package/dist/admin/adapters/server.d.ts +23 -0
- package/dist/admin/adapters/server.d.ts.map +1 -0
- package/dist/admin/adapters/server.js +6 -0
- package/dist/admin/adapters/server.js.map +1 -0
- package/dist/admin/adapters/views.d.ts +36 -0
- package/dist/admin/adapters/views.d.ts.map +1 -0
- package/dist/admin/adapters/views.js +7 -0
- package/dist/admin/adapters/views.js.map +1 -0
- package/dist/admin/elements/Table.d.ts +1 -0
- package/dist/admin/elements/Table.d.ts.map +1 -1
- package/dist/admin/elements/Table.js.map +1 -1
- package/dist/admin/fields/Row.d.ts +2 -2
- package/dist/admin/fields/Row.d.ts.map +1 -1
- package/dist/admin/fields/Row.js.map +1 -1
- package/dist/admin/forms/Description.d.ts +2 -2
- package/dist/admin/forms/Description.d.ts.map +1 -1
- package/dist/admin/forms/Description.js.map +1 -1
- package/dist/admin/forms/Field.d.ts +10 -5
- package/dist/admin/forms/Field.d.ts.map +1 -1
- package/dist/admin/forms/Field.js.map +1 -1
- package/dist/admin/functions/index.d.ts +9 -0
- package/dist/admin/functions/index.d.ts.map +1 -1
- package/dist/admin/functions/index.js.map +1 -1
- package/dist/admin/types.d.ts +3 -2
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/admin/types.js.map +1 -1
- package/dist/admin/views/dashboard.d.ts +7 -0
- package/dist/admin/views/dashboard.d.ts.map +1 -1
- package/dist/admin/views/dashboard.js.map +1 -1
- package/dist/admin/views/document.d.ts +5 -3
- package/dist/admin/views/document.d.ts.map +1 -1
- package/dist/admin/views/document.js.map +1 -1
- package/dist/admin/views/hierarchyList.d.ts +1 -0
- package/dist/admin/views/hierarchyList.d.ts.map +1 -1
- package/dist/admin/views/hierarchyList.js.map +1 -1
- package/dist/admin/views/list.d.ts +10 -1
- package/dist/admin/views/list.d.ts.map +1 -1
- package/dist/admin/views/list.js.map +1 -1
- package/dist/auth/baseFields/apiKey.d.ts +10 -2
- package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
- package/dist/auth/baseFields/apiKey.js +35 -24
- package/dist/auth/baseFields/apiKey.js.map +1 -1
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/defaultAccess.d.ts +1 -1
- package/dist/auth/defaultAccess.d.ts.map +1 -1
- package/dist/auth/defaultAccess.js +1 -1
- package/dist/auth/defaultAccess.js.map +1 -1
- package/dist/auth/defaultUser.d.ts.map +1 -1
- package/dist/auth/defaultUser.js +2 -1
- package/dist/auth/defaultUser.js.map +1 -1
- package/dist/auth/ensureUsernameOrEmail.d.ts.map +1 -1
- package/dist/auth/executeAccess.d.ts.map +1 -1
- package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
- package/dist/auth/extractAccessFromPermission.d.ts.map +1 -1
- package/dist/auth/extractJWT.d.ts.map +1 -1
- package/dist/auth/getAuthFields.d.ts.map +1 -1
- package/dist/auth/getAuthFields.js +2 -2
- package/dist/auth/getAuthFields.js.map +1 -1
- package/dist/auth/getFieldsToSign.d.ts.map +1 -1
- package/dist/auth/getLoginOptions.d.ts.map +1 -1
- package/dist/auth/isUserLocked.d.ts.map +1 -1
- package/dist/auth/jwt.d.ts.map +1 -1
- package/dist/auth/operations/access.d.ts.map +1 -1
- package/dist/auth/operations/auth.d.ts +2 -2
- package/dist/auth/operations/auth.d.ts.map +1 -1
- package/dist/auth/operations/auth.js.map +1 -1
- package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
- package/dist/auth/operations/init.d.ts.map +1 -1
- package/dist/auth/operations/local/auth.d.ts.map +1 -1
- package/dist/auth/operations/login.d.ts +2 -1
- package/dist/auth/operations/login.d.ts.map +1 -1
- package/dist/auth/operations/login.js.map +1 -1
- package/dist/auth/operations/logout.d.ts.map +1 -1
- package/dist/auth/operations/me.d.ts.map +1 -1
- package/dist/auth/operations/me.js.map +1 -1
- package/dist/auth/operations/refresh.d.ts.map +1 -1
- package/dist/auth/operations/refresh.js +9 -3
- package/dist/auth/operations/refresh.js.map +1 -1
- package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
- package/dist/auth/operations/resetPassword.d.ts.map +1 -1
- package/dist/auth/operations/resetPassword.js.map +1 -1
- package/dist/auth/operations/unlock.d.ts.map +1 -1
- package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
- package/dist/auth/sendVerificationEmail.d.ts +2 -2
- package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
- package/dist/auth/sendVerificationEmail.js +1 -1
- package/dist/auth/sendVerificationEmail.js.map +1 -1
- package/dist/auth/sessions.d.ts +4 -5
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/sessions.js +5 -3
- package/dist/auth/sessions.js.map +1 -1
- package/dist/auth/strategies/apiKey.d.ts.map +1 -1
- package/dist/auth/strategies/apiKey.js +6 -17
- package/dist/auth/strategies/apiKey.js.map +1 -1
- package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
- package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +2 -2
- package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
- package/dist/auth/strategies/local/register.d.ts.map +1 -1
- package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
- package/dist/auth/types.d.ts +28 -21
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js.map +1 -1
- package/dist/bin/build.d.ts +25 -0
- package/dist/bin/build.d.ts.map +1 -0
- package/dist/bin/build.js +80 -0
- package/dist/bin/build.js.map +1 -0
- package/dist/bin/build.spec.js +170 -0
- package/dist/bin/build.spec.js.map +1 -0
- package/dist/bin/generateImportMap/index.d.ts.map +1 -1
- package/dist/bin/generateImportMap/index.js +8 -5
- package/dist/bin/generateImportMap/index.js.map +1 -1
- package/dist/bin/generateImportMap/iterateCollections.d.ts.map +1 -1
- package/dist/bin/generateImportMap/iterateCollections.js +11 -0
- package/dist/bin/generateImportMap/iterateCollections.js.map +1 -1
- package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
- package/dist/bin/generateImportMap/iterateConfig.js +12 -0
- package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
- package/dist/bin/generateImportMap/iterateFields.d.ts.map +1 -1
- package/dist/bin/generateImportMap/iterateFields.js +4 -1
- package/dist/bin/generateImportMap/iterateFields.js.map +1 -1
- package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -1
- package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts +5 -1
- package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -1
- package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js +32 -18
- package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -1
- package/dist/bin/generateTypes.d.ts +3 -2
- package/dist/bin/generateTypes.d.ts.map +1 -1
- package/dist/bin/generateTypes.js +11 -1
- package/dist/bin/generateTypes.js.map +1 -1
- package/dist/bin/index.d.ts.map +1 -1
- package/dist/bin/index.js +9 -0
- package/dist/bin/index.js.map +1 -1
- package/dist/bin/loadEnv.d.ts +3 -1
- package/dist/bin/loadEnv.d.ts.map +1 -1
- package/dist/bin/loadEnv.js +40 -10
- package/dist/bin/loadEnv.js.map +1 -1
- package/dist/bin/migrate.d.ts.map +1 -1
- package/dist/collections/config/client.d.ts +1 -1
- package/dist/collections/config/client.d.ts.map +1 -1
- package/dist/collections/config/client.js +1 -0
- package/dist/collections/config/client.js.map +1 -1
- package/dist/collections/config/defaults.d.ts +0 -4
- package/dist/collections/config/defaults.d.ts.map +1 -1
- package/dist/collections/config/defaults.js +2 -17
- package/dist/collections/config/defaults.js.map +1 -1
- package/dist/collections/config/defaults.spec.js +47 -0
- package/dist/collections/config/defaults.spec.js.map +1 -0
- package/dist/collections/config/sanitize.d.ts +10 -1
- package/dist/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +214 -230
- package/dist/collections/config/sanitize.js.map +1 -1
- package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
- package/dist/collections/config/types.d.ts +11 -7
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js.map +1 -1
- package/dist/collections/config/useAsTitle.d.ts.map +1 -1
- package/dist/collections/dataloader.d.ts.map +1 -1
- package/dist/collections/endpoints/create.d.ts.map +1 -1
- package/dist/collections/endpoints/create.js +0 -2
- package/dist/collections/endpoints/create.js.map +1 -1
- package/dist/collections/endpoints/updateByID.d.ts.map +1 -1
- package/dist/collections/endpoints/updateByID.js +1 -2
- package/dist/collections/endpoints/updateByID.js.map +1 -1
- package/dist/collections/operations/count.d.ts.map +1 -1
- package/dist/collections/operations/count.js +1 -0
- package/dist/collections/operations/count.js.map +1 -1
- package/dist/collections/operations/countVersions.d.ts.map +1 -1
- package/dist/collections/operations/create.d.ts +0 -1
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +15 -6
- package/dist/collections/operations/create.js.map +1 -1
- package/dist/collections/operations/delete.d.ts.map +1 -1
- package/dist/collections/operations/delete.js +3 -0
- package/dist/collections/operations/delete.js.map +1 -1
- package/dist/collections/operations/deleteByID.d.ts.map +1 -1
- package/dist/collections/operations/duplicate.d.ts.map +1 -1
- package/dist/collections/operations/find.d.ts.map +1 -1
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findDistinct.d.ts.map +1 -1
- package/dist/collections/operations/findDistinct.js +1 -0
- package/dist/collections/operations/findDistinct.js.map +1 -1
- package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/count.d.ts +3 -3
- package/dist/collections/operations/local/count.d.ts.map +1 -1
- package/dist/collections/operations/local/count.js.map +1 -1
- package/dist/collections/operations/local/countVersions.d.ts +3 -3
- package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/countVersions.js.map +1 -1
- package/dist/collections/operations/local/create.d.ts +3 -3
- package/dist/collections/operations/local/create.d.ts.map +1 -1
- package/dist/collections/operations/local/create.js.map +1 -1
- package/dist/collections/operations/local/delete.d.ts +3 -3
- package/dist/collections/operations/local/delete.d.ts.map +1 -1
- package/dist/collections/operations/local/delete.js.map +1 -1
- package/dist/collections/operations/local/duplicate.d.ts +3 -3
- package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
- package/dist/collections/operations/local/duplicate.js.map +1 -1
- package/dist/collections/operations/local/find.d.ts +3 -3
- package/dist/collections/operations/local/find.d.ts.map +1 -1
- package/dist/collections/operations/local/find.js.map +1 -1
- package/dist/collections/operations/local/findByID.d.ts +3 -3
- package/dist/collections/operations/local/findByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findByID.js.map +1 -1
- package/dist/collections/operations/local/findDistinct.d.ts +2 -2
- package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
- package/dist/collections/operations/local/findDistinct.js.map +1 -1
- package/dist/collections/operations/local/findVersionByID.d.ts +3 -3
- package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersionByID.js.map +1 -1
- package/dist/collections/operations/local/findVersions.d.ts +3 -3
- package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersions.js.map +1 -1
- package/dist/collections/operations/local/restoreVersion.d.ts +3 -3
- package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/local/restoreVersion.js.map +1 -1
- package/dist/collections/operations/local/update.d.ts +7 -11
- package/dist/collections/operations/local/update.d.ts.map +1 -1
- package/dist/collections/operations/local/update.js +1 -2
- package/dist/collections/operations/local/update.js.map +1 -1
- package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/update.d.ts +0 -1
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +8 -4
- package/dist/collections/operations/update.js.map +1 -1
- package/dist/collections/operations/updateByID.d.ts +0 -1
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +1 -5
- package/dist/collections/operations/updateByID.js.map +1 -1
- package/dist/collections/operations/utilities/buildAfterOperation.d.ts.map +1 -1
- package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts +9 -0
- package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -0
- package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js +170 -0
- package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js.map +1 -0
- package/dist/collections/operations/utilities/sanitizeSortQuery.d.ts.map +1 -1
- package/dist/collections/operations/utilities/types.d.ts +0 -9
- package/dist/collections/operations/utilities/types.d.ts.map +1 -1
- package/dist/collections/operations/utilities/types.js.map +1 -1
- package/dist/collections/operations/utilities/update.d.ts +1 -2
- package/dist/collections/operations/utilities/update.d.ts.map +1 -1
- package/dist/collections/operations/utilities/update.js +64 -65
- package/dist/collections/operations/utilities/update.js.map +1 -1
- package/dist/config/build.d.ts.map +1 -1
- package/dist/config/build.js +8 -0
- package/dist/config/build.js.map +1 -1
- package/dist/config/client.d.ts +3 -3
- package/dist/config/client.d.ts.map +1 -1
- package/dist/config/client.js +2 -1
- package/dist/config/client.js.map +1 -1
- package/dist/config/defaults.d.ts +0 -4
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +0 -78
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/definePlugin.d.ts +10 -10
- package/dist/config/definePlugin.d.ts.map +1 -1
- package/dist/config/definePlugin.js +7 -11
- package/dist/config/definePlugin.js.map +1 -1
- package/dist/config/orderable/index.d.ts.map +1 -1
- package/dist/config/orderable/index.js +23 -0
- package/dist/config/orderable/index.js.map +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js +362 -271
- package/dist/config/sanitize.js.map +1 -1
- package/dist/config/types.d.ts +125 -38
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -1
- package/dist/database/combineQueries.d.ts.map +1 -1
- package/dist/database/getLocalizedPaths.d.ts.map +1 -1
- package/dist/database/getLocalizedPaths.js +1 -1
- package/dist/database/getLocalizedPaths.js.map +1 -1
- package/dist/database/migrations/findMigrationDir.d.ts.map +1 -1
- package/dist/database/migrations/getPredefinedMigration.d.ts.map +1 -1
- package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
- package/dist/database/migrations/migrationsCollection.js +2 -1
- package/dist/database/migrations/migrationsCollection.js.map +1 -1
- package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
- package/dist/database/migrations/writeMigrationIndex.d.ts.map +1 -1
- package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
- package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
- package/dist/duplicateDocument/index.d.ts.map +1 -1
- package/dist/email/getStringifiedToAddress.d.ts.map +1 -1
- package/dist/errors/ValidationError.d.ts +1 -0
- package/dist/errors/ValidationError.d.ts.map +1 -1
- package/dist/errors/ValidationError.js.map +1 -1
- package/dist/exports/internal.d.ts +0 -1
- package/dist/exports/internal.d.ts.map +1 -1
- package/dist/exports/internal.js +0 -1
- package/dist/exports/internal.js.map +1 -1
- package/dist/exports/migrations.d.ts +5 -13
- package/dist/exports/migrations.d.ts.map +1 -1
- package/dist/exports/migrations.js +5 -13
- package/dist/exports/migrations.js.map +1 -1
- package/dist/exports/shared.d.ts +23 -1
- package/dist/exports/shared.d.ts.map +1 -1
- package/dist/exports/shared.js +23 -1
- package/dist/exports/shared.js.map +1 -1
- package/dist/fields/baseFields/slug/countVersions.d.ts.map +1 -1
- package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
- package/dist/fields/baseFields/slug/index.js +1 -1
- package/dist/fields/baseFields/slug/index.js.map +1 -1
- package/dist/fields/config/client.d.ts +3 -3
- package/dist/fields/config/client.d.ts.map +1 -1
- package/dist/fields/config/client.js +12 -13
- package/dist/fields/config/client.js.map +1 -1
- package/dist/fields/config/sanitize.d.ts.map +1 -1
- package/dist/fields/config/sanitize.js +315 -338
- package/dist/fields/config/sanitize.js.map +1 -1
- package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
- package/dist/fields/config/types.d.ts +45 -66
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js +1 -1
- package/dist/fields/config/types.js.map +1 -1
- package/dist/fields/getDefaultValue.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/promise.js +1 -1
- package/dist/fields/hooks/afterChange/promise.js.map +1 -1
- package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/promise.js +12 -3
- package/dist/fields/hooks/afterRead/promise.js.map +1 -1
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/virtualFieldPopulationPromise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/getExistingRowDoc.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.js +3 -3
- package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeDuplicate/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeDuplicate/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeDuplicate/promise.js +2 -2
- package/dist/fields/hooks/beforeDuplicate/promise.js.map +1 -1
- package/dist/fields/hooks/beforeDuplicate/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.js +11 -2
- package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
- package/dist/fields/isFieldDisabled.d.ts.map +1 -1
- package/dist/fields/mergeBaseFields.d.ts.map +1 -1
- package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -1
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +5 -4
- package/dist/fields/validations.js.map +1 -1
- package/dist/globals/config/client.d.ts.map +1 -1
- package/dist/globals/config/sanitize.d.ts +6 -1
- package/dist/globals/config/sanitize.d.ts.map +1 -1
- package/dist/globals/config/sanitize.js +122 -132
- package/dist/globals/config/sanitize.js.map +1 -1
- package/dist/globals/config/sanitize.spec.js +43 -0
- package/dist/globals/config/sanitize.spec.js.map +1 -0
- package/dist/globals/endpoints/update.d.ts.map +1 -1
- package/dist/globals/endpoints/update.js +0 -2
- package/dist/globals/endpoints/update.js.map +1 -1
- package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
- package/dist/globals/operations/docAccess.d.ts.map +1 -1
- package/dist/globals/operations/findOne.d.ts.map +1 -1
- package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/countVersions.d.ts +3 -3
- package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/countVersions.js.map +1 -1
- package/dist/globals/operations/local/findOne.d.ts +3 -3
- package/dist/globals/operations/local/findOne.d.ts.map +1 -1
- package/dist/globals/operations/local/findOne.js.map +1 -1
- package/dist/globals/operations/local/findVersionByID.d.ts +3 -3
- package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersionByID.js.map +1 -1
- package/dist/globals/operations/local/findVersions.d.ts +3 -3
- package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersions.js.map +1 -1
- package/dist/globals/operations/local/restoreVersion.d.ts +3 -3
- package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/local/restoreVersion.js.map +1 -1
- package/dist/globals/operations/local/update.d.ts +7 -9
- package/dist/globals/operations/local/update.d.ts.map +1 -1
- package/dist/globals/operations/local/update.js +1 -2
- package/dist/globals/operations/local/update.js.map +1 -1
- package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/update.d.ts +0 -1
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +52 -58
- package/dist/globals/operations/update.js.map +1 -1
- package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
- package/dist/hierarchy/buildParentField.d.ts.map +1 -1
- package/dist/hierarchy/constants.d.ts.map +1 -1
- package/dist/hierarchy/getInitialTreeData.d.ts.map +1 -1
- package/dist/hierarchy/hooks/collectionAfterDelete.d.ts.map +1 -1
- package/dist/hierarchy/hooks/collectionAfterRead.d.ts.map +1 -1
- package/dist/hierarchy/hooks/collectionBeforeChange.d.ts.map +1 -1
- package/dist/hierarchy/hooks/collectionBeforeDelete.d.ts.map +1 -1
- package/dist/hierarchy/hooks/collectionBeforeOperation.d.ts.map +1 -1
- package/dist/hierarchy/hooks/ensureSafeCollectionsChange.d.ts.map +1 -1
- package/dist/hierarchy/injectHierarchyButton.d.ts.map +1 -1
- package/dist/hierarchy/resolveHierarchyCollections.d.ts.map +1 -1
- package/dist/hierarchy/resolveHierarchyCollections.js +1 -1
- package/dist/hierarchy/resolveHierarchyCollections.js.map +1 -1
- package/dist/hierarchy/sanitizeHierarchyCollection.d.ts.map +1 -1
- package/dist/hierarchy/sanitizeHierarchyCollection.js +3 -1
- package/dist/hierarchy/sanitizeHierarchyCollection.js.map +1 -1
- package/dist/hierarchy/types.d.ts +8 -1
- package/dist/hierarchy/types.d.ts.map +1 -1
- package/dist/hierarchy/types.js.map +1 -1
- package/dist/index.bundled.d.ts +808 -366
- package/dist/index.d.ts +72 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -55
- package/dist/index.js.map +1 -1
- package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
- package/dist/kv/adapters/DatabaseKVAdapter.js +1 -0
- package/dist/kv/adapters/DatabaseKVAdapter.js.map +1 -1
- package/dist/locked-documents/config.d.ts.map +1 -1
- package/dist/locked-documents/config.js +2 -1
- package/dist/locked-documents/config.js.map +1 -1
- package/dist/preferences/config.d.ts.map +1 -1
- package/dist/preferences/config.js +2 -1
- package/dist/preferences/config.js.map +1 -1
- package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
- package/dist/preferences/keys.d.ts +4 -0
- package/dist/preferences/keys.d.ts.map +1 -1
- package/dist/preferences/keys.js +4 -1
- package/dist/preferences/keys.js.map +1 -1
- package/dist/preferences/types.d.ts +15 -0
- package/dist/preferences/types.d.ts.map +1 -1
- package/dist/preferences/types.js +3 -1
- package/dist/preferences/types.js.map +1 -1
- package/dist/query-presets/access.d.ts.map +1 -1
- package/dist/query-presets/config.d.ts.map +1 -1
- package/dist/query-presets/config.js +77 -37
- package/dist/query-presets/config.js.map +1 -1
- package/dist/query-presets/constraints.d.ts.map +1 -1
- package/dist/query-presets/constraints.js +3 -2
- package/dist/query-presets/constraints.js.map +1 -1
- package/dist/queues/config/collection.d.ts.map +1 -1
- package/dist/queues/config/collection.js +2 -1
- package/dist/queues/config/collection.js.map +1 -1
- package/dist/queues/config/generateJobsJSONSchemas.d.ts +1 -1
- package/dist/queues/config/generateJobsJSONSchemas.d.ts.map +1 -1
- package/dist/queues/config/generateJobsJSONSchemas.js +33 -12
- package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -1
- package/dist/queues/config/global.d.ts.map +1 -1
- package/dist/queues/config/global.js +2 -1
- package/dist/queues/config/global.js.map +1 -1
- package/dist/queues/endpoints/run.d.ts.map +1 -1
- package/dist/queues/localAPI.d.ts.map +1 -1
- package/dist/queues/operations/handleSchedules/getQueuesWithSchedules.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
- package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -1
- package/dist/translations/getLocalI18n.d.ts.map +1 -1
- package/dist/types/index.d.ts +18 -8
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/uploads/checkFileAccess.d.ts.map +1 -1
- package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
- package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
- package/dist/uploads/endpoints/getFileFromURL.d.ts.map +1 -1
- package/dist/uploads/endpoints/getFileFromURL.js +9 -5
- package/dist/uploads/endpoints/getFileFromURL.js.map +1 -1
- package/dist/uploads/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -1
- package/dist/uploads/fetchAPI-multipart/processNested.d.ts.map +1 -1
- package/dist/uploads/fetchAPI-multipart/utilities.d.ts.map +1 -1
- package/dist/uploads/fileExists.d.ts.map +1 -1
- package/dist/uploads/generateFileData.d.ts +2 -1
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +5 -2
- package/dist/uploads/generateFileData.js.map +1 -1
- package/dist/uploads/getBaseFields.d.ts.map +1 -1
- package/dist/uploads/getBaseFields.js +7 -19
- package/dist/uploads/getBaseFields.js.map +1 -1
- package/dist/uploads/getExternalFile.d.ts.map +1 -1
- package/dist/uploads/getFileByPath.d.ts.map +1 -1
- package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
- package/dist/uploads/getSafeFilename.d.ts.map +1 -1
- package/dist/uploads/image-resizing/createImageSize.d.ts.map +1 -1
- package/dist/uploads/image-resizing/generateImageSizeFilename.d.ts.map +1 -1
- package/dist/uploads/image-resizing/getImageResizeAction.d.ts.map +1 -1
- package/dist/uploads/image-resizing/parseFilename.d.ts.map +1 -1
- package/dist/uploads/image-resizing/sanitizeResizeConfig.d.ts.map +1 -1
- package/dist/uploads/matchMimeType.d.ts +8 -0
- package/dist/uploads/matchMimeType.d.ts.map +1 -0
- package/dist/uploads/matchMimeType.js +19 -0
- package/dist/uploads/matchMimeType.js.map +1 -0
- package/dist/uploads/matchMimeType.spec.js +66 -0
- package/dist/uploads/matchMimeType.spec.js.map +1 -0
- package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
- package/dist/uploads/safeFetch.d.ts +1 -1
- package/dist/uploads/safeFetch.d.ts.map +1 -1
- package/dist/uploads/safeFetch.js +11 -5
- package/dist/uploads/safeFetch.js.map +1 -1
- package/dist/uploads/saveBufferToFile.d.ts.map +1 -1
- package/dist/uploads/tempFile.d.ts.map +1 -1
- package/dist/uploads/types.d.ts +33 -29
- package/dist/uploads/types.d.ts.map +1 -1
- package/dist/uploads/types.js.map +1 -1
- package/dist/uploads/uploadFiles.d.ts.map +1 -1
- package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
- package/dist/utilities/addDataAndFileToRequest.js +6 -0
- package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
- package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
- package/dist/utilities/addSelectGenericsToGeneretedTypes.d.ts.map +1 -1
- package/dist/utilities/appendDateTimezoneSelectFields.d.ts.map +1 -1
- package/dist/utilities/appendDateTimezoneSelectFields.js +2 -2
- package/dist/utilities/appendDateTimezoneSelectFields.js.map +1 -1
- package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
- package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
- package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
- package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.d.ts +68 -16
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +311 -117
- package/dist/utilities/configToJSONSchema.js.map +1 -1
- package/dist/utilities/configToJSONSchema.spec.js +619 -85
- package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
- package/dist/utilities/createLocalReq.d.ts +2 -2
- package/dist/utilities/createLocalReq.d.ts.map +1 -1
- package/dist/utilities/createLocalReq.js.map +1 -1
- package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
- package/dist/utilities/createPayloadRequest.js +1 -0
- package/dist/utilities/createPayloadRequest.js.map +1 -1
- package/dist/utilities/deepCopyObject.d.ts.map +1 -1
- package/dist/utilities/deepCopyObject.js +8 -0
- package/dist/utilities/deepCopyObject.js.map +1 -1
- package/dist/utilities/dependencies/dependencyChecker.js +1 -1
- package/dist/utilities/dependencies/dependencyChecker.js.map +1 -1
- package/dist/utilities/dependencies/getDependencies.d.ts.map +1 -1
- package/dist/utilities/dependencies/getDependencies.js +5 -5
- package/dist/utilities/dependencies/getDependencies.js.map +1 -1
- package/dist/utilities/dependencies/resolveFrom.d.ts.map +1 -1
- package/dist/utilities/dynamicImport.js +1 -1
- package/dist/utilities/dynamicImport.js.map +1 -1
- package/dist/utilities/escapeRegExp.d.ts.map +1 -1
- package/dist/utilities/extractID.d.ts.map +1 -1
- package/dist/utilities/filterDataToSelectedLocales.d.ts.map +1 -1
- package/dist/utilities/filterDataToSelectedLocales.js +5 -12
- package/dist/utilities/filterDataToSelectedLocales.js.map +1 -1
- package/dist/utilities/filterDataToSelectedLocales.spec.js +1 -2
- package/dist/utilities/filterDataToSelectedLocales.spec.js.map +1 -1
- package/dist/utilities/flattenAllFields.d.ts.map +1 -1
- package/dist/utilities/flattenAllFields.js +78 -102
- package/dist/utilities/flattenAllFields.js.map +1 -1
- package/dist/utilities/formatAdminURL.d.ts.map +1 -1
- package/dist/utilities/formatErrors.d.ts.map +1 -1
- package/dist/utilities/formatErrors.js +3 -1
- package/dist/utilities/formatErrors.js.map +1 -1
- package/dist/utilities/formatLabels.d.ts.map +1 -1
- package/dist/utilities/getBestFitFromSizes.d.ts.map +1 -1
- package/dist/utilities/getBlockSelect.d.ts.map +1 -1
- package/dist/utilities/getDataByPath.d.ts.map +1 -1
- package/dist/utilities/getEntityPermissions/getEntityPermissions.d.ts.map +1 -1
- package/dist/utilities/getEntityPermissions/getEntityPermissions.js +2 -0
- package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts +7 -1
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.js +24 -7
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.map +1 -1
- package/dist/utilities/getFieldByPath.d.ts.map +1 -1
- package/dist/utilities/getFieldByPath.js +1 -1
- package/dist/utilities/getFieldByPath.js.map +1 -1
- package/dist/utilities/getFieldPermissions.d.ts.map +1 -1
- package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
- package/dist/utilities/getRequestEntity.d.ts.map +1 -1
- package/dist/utilities/getRequestLanguage.d.ts +2 -2
- package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
- package/dist/utilities/getRequestLanguage.js.map +1 -1
- package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
- package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
- package/dist/utilities/getSelectMode.d.ts.map +1 -1
- package/dist/utilities/getSiblingData.d.ts.map +1 -1
- package/dist/utilities/getTranslatedLabel.d.ts.map +1 -1
- package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
- package/dist/utilities/getVersionsConfig.js.map +1 -1
- package/dist/utilities/handleEndpoints.d.ts.map +1 -1
- package/dist/utilities/handleEndpoints.js +7 -4
- package/dist/utilities/handleEndpoints.js.map +1 -1
- package/dist/utilities/headersWithCors.d.ts.map +1 -1
- package/dist/utilities/isEntityHidden.d.ts.map +1 -1
- package/dist/utilities/isURLAllowed.d.ts.map +1 -1
- package/dist/utilities/isValidID.d.ts.map +1 -1
- package/dist/utilities/logError.d.ts.map +1 -1
- package/dist/utilities/logger.d.ts.map +1 -1
- package/dist/utilities/mergeHeaders.d.ts.map +1 -1
- package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -1
- package/dist/utilities/mergeLocalizedData.d.ts +14 -4
- package/dist/utilities/mergeLocalizedData.d.ts.map +1 -1
- package/dist/utilities/mergeLocalizedData.js +54 -46
- package/dist/utilities/mergeLocalizedData.js.map +1 -1
- package/dist/utilities/mergeLocalizedData.spec.js +23 -23
- package/dist/utilities/mergeLocalizedData.spec.js.map +1 -1
- package/dist/utilities/optionsAreEqual.d.ts.map +1 -1
- package/dist/utilities/parseBooleanString.d.ts.map +1 -1
- package/dist/utilities/parseCookies.d.ts.map +1 -1
- package/dist/utilities/parseParams/index.d.ts +2 -5
- package/dist/utilities/parseParams/index.d.ts.map +1 -1
- package/dist/utilities/parseParams/index.js.map +1 -1
- package/dist/utilities/parseParams/index.spec.js +0 -9
- package/dist/utilities/parseParams/index.spec.js.map +1 -1
- package/dist/utilities/profiling.d.ts.map +1 -1
- package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -1
- package/dist/utilities/resolveSelect.d.ts.map +1 -1
- package/dist/utilities/routeError.d.ts.map +1 -1
- package/dist/utilities/sanitizeFallbackLocale.d.ts.map +1 -1
- package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
- package/dist/utilities/sanitizeJoinParams.d.ts.map +1 -1
- package/dist/utilities/sanitizePopulateParam.d.ts.map +1 -1
- package/dist/utilities/sanitizeSelect.d.ts.map +1 -1
- package/dist/utilities/sanitizeSelectParam.d.ts.map +1 -1
- package/dist/utilities/sanitizeSortParams.d.ts.map +1 -1
- package/dist/utilities/setsAreEqual.d.ts.map +1 -1
- package/dist/utilities/slugify.d.ts.map +1 -1
- package/dist/utilities/stripUnselectedFields.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
- package/dist/utilities/telemetry/index.d.ts.map +1 -1
- package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
- package/dist/utilities/timestamp.d.ts.map +1 -1
- package/dist/utilities/toKebabCase.d.ts.map +1 -1
- package/dist/utilities/transformColumnPreferences.d.ts.map +1 -1
- package/dist/utilities/transformColumnPreferences.js +4 -2
- package/dist/utilities/transformColumnPreferences.js.map +1 -1
- package/dist/utilities/transformWhereQuery.d.ts.map +1 -1
- package/dist/utilities/traverseFields.d.ts.map +1 -1
- package/dist/utilities/traverseFields.js +2 -4
- package/dist/utilities/traverseFields.js.map +1 -1
- package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
- package/dist/utilities/traverseForLocalizedFields.js +3 -0
- package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
- package/dist/utilities/unflatten.d.ts.map +1 -1
- package/dist/utilities/validateMimeType.d.ts.map +1 -1
- package/dist/utilities/validateTimezones.d.ts.map +1 -1
- package/dist/utilities/validateWhereQuery.d.ts.map +1 -1
- package/dist/utilities/wordBoundariesRegex.d.ts.map +1 -1
- package/dist/utilities/wrapInternalEndpoints.d.ts.map +1 -1
- package/dist/versions/baseFields.d.ts +1 -2
- package/dist/versions/baseFields.d.ts.map +1 -1
- package/dist/versions/baseFields.js +0 -13
- package/dist/versions/baseFields.js.map +1 -1
- package/dist/versions/buildCollectionFields.d.ts.map +1 -1
- package/dist/versions/buildCollectionFields.js +0 -2
- package/dist/versions/buildCollectionFields.js.map +1 -1
- package/dist/versions/buildGlobalFields.d.ts.map +1 -1
- package/dist/versions/buildGlobalFields.js +0 -2
- package/dist/versions/buildGlobalFields.js.map +1 -1
- package/dist/versions/buildSingleLocalePublishData.d.ts +32 -0
- package/dist/versions/buildSingleLocalePublishData.d.ts.map +1 -0
- package/dist/versions/buildSingleLocalePublishData.js +37 -0
- package/dist/versions/buildSingleLocalePublishData.js.map +1 -0
- package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
- package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
- package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
- package/dist/versions/drafts/getQueryDraftsSelect.d.ts.map +1 -1
- package/dist/versions/drafts/getQueryDraftsSort.d.ts.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
- package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
- package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
- package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
- package/dist/versions/migrations/localizeStatus/shared.d.ts.map +1 -1
- package/dist/versions/saveVersion.d.ts +0 -2
- package/dist/versions/saveVersion.d.ts.map +1 -1
- package/dist/versions/saveVersion.js +12 -17
- package/dist/versions/saveVersion.js.map +1 -1
- package/dist/versions/schedule/job.d.ts.map +1 -1
- package/dist/versions/schedule/job.js +2 -9
- package/dist/versions/schedule/job.js.map +1 -1
- package/dist/versions/types.d.ts +2 -15
- package/dist/versions/types.d.ts.map +1 -1
- package/dist/versions/types.js.map +1 -1
- package/package.json +23 -20
- package/dist/database/migrations/templates/localizeStatus.d.ts +0 -10
- package/dist/database/migrations/templates/localizeStatus.d.ts.map +0 -1
- package/dist/database/migrations/templates/localizeStatus.js +0 -54
- package/dist/database/migrations/templates/localizeStatus.js.map +0 -1
- package/dist/utilities/sanitizeProfiler.d.ts +0 -38
- package/dist/utilities/sanitizeProfiler.d.ts.map +0 -1
- package/dist/utilities/sanitizeProfiler.js +0 -101
- package/dist/utilities/sanitizeProfiler.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/index.d.ts +0 -12
- package/dist/versions/migrations/localizeStatus/index.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/index.js +0 -33
- package/dist/versions/migrations/localizeStatus/index.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/down.d.ts +0 -9
- package/dist/versions/migrations/localizeStatus/mongo/down.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/down.js +0 -112
- package/dist/versions/migrations/localizeStatus/mongo/down.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/index.d.ts +0 -8
- package/dist/versions/migrations/localizeStatus/mongo/index.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/index.js +0 -8
- package/dist/versions/migrations/localizeStatus/mongo/index.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/up.d.ts +0 -9
- package/dist/versions/migrations/localizeStatus/mongo/up.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/mongo/up.js +0 -220
- package/dist/versions/migrations/localizeStatus/mongo/up.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/down.d.ts +0 -11
- package/dist/versions/migrations/localizeStatus/sql/down.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/down.js +0 -213
- package/dist/versions/migrations/localizeStatus/sql/down.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/index.d.ts +0 -8
- package/dist/versions/migrations/localizeStatus/sql/index.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/index.js +0 -8
- package/dist/versions/migrations/localizeStatus/sql/index.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts +0 -13
- package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js +0 -51
- package/dist/versions/migrations/localizeStatus/sql/migrateMainCollection.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts +0 -13
- package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js +0 -54
- package/dist/versions/migrations/localizeStatus/sql/migrateMainGlobal.js.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/up.d.ts +0 -11
- package/dist/versions/migrations/localizeStatus/sql/up.d.ts.map +0 -1
- package/dist/versions/migrations/localizeStatus/sql/up.js +0 -277
- package/dist/versions/migrations/localizeStatus/sql/up.js.map +0 -1
- package/dist/versions/saveSnapshot.d.ts +0 -18
- package/dist/versions/saveSnapshot.d.ts.map +0 -1
- package/dist/versions/saveSnapshot.js +0 -38
- package/dist/versions/saveSnapshot.js.map +0 -1
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import { createHash } from 'crypto';
|
|
1
2
|
import { MissingEditorProp } from '../errors/MissingEditorProp.js';
|
|
2
|
-
import { fieldAffectsData } from '../fields/config/types.js';
|
|
3
|
+
import { fieldAffectsData, fieldIsVirtual } from '../fields/config/types.js';
|
|
3
4
|
import { generateJobsJSONSchemas } from '../queues/config/generateJobsJSONSchemas.js';
|
|
4
5
|
import { flattenAllFields } from './flattenAllFields.js';
|
|
5
|
-
import { formatNames } from './formatLabels.js';
|
|
6
|
+
import { formatNames, toWords } from './formatLabels.js';
|
|
6
7
|
import { getCollectionIDFieldTypes } from './getCollectionIDFieldTypes.js';
|
|
7
8
|
import { optionsAreEqual } from './optionsAreEqual.js';
|
|
9
|
+
// Virtual fields (computed) and join fields (derived from the inverse relationship) are read-only.
|
|
10
|
+
const fieldIsInputExcluded = (field)=>field.type === 'join' || fieldIsVirtual(field);
|
|
8
11
|
const fieldIsRequired = (field)=>{
|
|
9
12
|
const isConditional = Boolean(field?.admin && field?.admin?.condition);
|
|
10
13
|
if (isConditional) {
|
|
@@ -33,7 +36,7 @@ function generateEntitySchemas(entities) {
|
|
|
33
36
|
...entities
|
|
34
37
|
].reduce((acc, { slug })=>{
|
|
35
38
|
acc[slug] = {
|
|
36
|
-
$ref:
|
|
39
|
+
$ref: `#/$defs/${slug}`
|
|
37
40
|
};
|
|
38
41
|
return acc;
|
|
39
42
|
}, {});
|
|
@@ -49,7 +52,23 @@ function generateEntitySelectSchemas(entities) {
|
|
|
49
52
|
...entities
|
|
50
53
|
].reduce((acc, { slug })=>{
|
|
51
54
|
acc[slug] = {
|
|
52
|
-
$ref:
|
|
55
|
+
$ref: `#/$defs/${slug}_select`
|
|
56
|
+
};
|
|
57
|
+
return acc;
|
|
58
|
+
}, {});
|
|
59
|
+
return {
|
|
60
|
+
type: 'object',
|
|
61
|
+
additionalProperties: false,
|
|
62
|
+
properties,
|
|
63
|
+
required: Object.keys(properties)
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function generateEntityInputSchemas(entities) {
|
|
67
|
+
const properties = [
|
|
68
|
+
...entities
|
|
69
|
+
].reduce((acc, { slug })=>{
|
|
70
|
+
acc[slug] = {
|
|
71
|
+
$ref: `#/$defs/${slug}_input`
|
|
53
72
|
};
|
|
54
73
|
return acc;
|
|
55
74
|
}, {});
|
|
@@ -120,7 +139,7 @@ function getAllowedWidgetWidths({ maxWidth, minWidth }) {
|
|
|
120
139
|
}
|
|
121
140
|
return widgetWidths.slice(minIndex, maxIndex + 1);
|
|
122
141
|
}
|
|
123
|
-
function generateWidgetSchemas({ collectionIDFieldTypes, config, i18n, interfaceNameDefinitions,
|
|
142
|
+
function generateWidgetSchemas({ collectionIDFieldTypes, config, forceInlineBlocks, i18n, interfaceNameDefinitions, typeStringDefinitions }) {
|
|
124
143
|
const widgets = config.admin?.dashboard?.widgets ?? [];
|
|
125
144
|
const definitions = {};
|
|
126
145
|
const properties = {};
|
|
@@ -132,9 +151,17 @@ function generateWidgetSchemas({ collectionIDFieldTypes, config, i18n, interface
|
|
|
132
151
|
});
|
|
133
152
|
let dataSchema;
|
|
134
153
|
if (widget.fields?.length) {
|
|
135
|
-
const widgetFieldSchemas = fieldsToJSONSchema(
|
|
136
|
-
|
|
137
|
-
|
|
154
|
+
const widgetFieldSchemas = fieldsToJSONSchema({
|
|
155
|
+
collectionIDFieldTypes,
|
|
156
|
+
config,
|
|
157
|
+
fields: flattenAllFields({
|
|
158
|
+
fields: widget.fields
|
|
159
|
+
}),
|
|
160
|
+
forceInlineBlocks,
|
|
161
|
+
i18n,
|
|
162
|
+
interfaceNameDefinitions,
|
|
163
|
+
typeStringDefinitions
|
|
164
|
+
});
|
|
138
165
|
dataSchema = {
|
|
139
166
|
type: 'object',
|
|
140
167
|
additionalProperties: false,
|
|
@@ -161,7 +188,7 @@ function generateWidgetSchemas({ collectionIDFieldTypes, config, i18n, interface
|
|
|
161
188
|
]
|
|
162
189
|
};
|
|
163
190
|
properties[widget.slug] = {
|
|
164
|
-
$ref:
|
|
191
|
+
$ref: `#/$defs/${definition}`
|
|
165
192
|
};
|
|
166
193
|
}
|
|
167
194
|
return {
|
|
@@ -240,7 +267,7 @@ function generateAuthEntitySchemas(entities) {
|
|
|
240
267
|
...entities
|
|
241
268
|
].filter(({ auth })=>Boolean(auth)).map(({ slug })=>{
|
|
242
269
|
return {
|
|
243
|
-
$ref:
|
|
270
|
+
$ref: `#/$defs/${slug}`
|
|
244
271
|
};
|
|
245
272
|
}, {});
|
|
246
273
|
return {
|
|
@@ -299,17 +326,35 @@ function entityOrFieldToJsDocs({ entity, i18n }) {
|
|
|
299
326
|
}
|
|
300
327
|
return description;
|
|
301
328
|
}
|
|
302
|
-
export function fieldsToJSONSchema(
|
|
303
|
-
* Used for relationship fields, to determine whether to use a string or number type for the ID.
|
|
304
|
-
* While there is a default ID field type set by the db adapter, they can differ on a collection-level
|
|
305
|
-
* if they have custom ID fields.
|
|
306
|
-
*/ collectionIDFieldTypes, fields, /**
|
|
307
|
-
* Allows you to define new top-level interfaces that can be re-used in the output schema.
|
|
308
|
-
*/ interfaceNameDefinitions, config, i18n, opts = {}) {
|
|
329
|
+
export function fieldsToJSONSchema({ collectionIDFieldTypes, config, fields, forceInlineBlocks, i18n, interfaceNameDefinitions, typeStringDefinitions, variant = 'output' }) {
|
|
309
330
|
const requiredFieldNames = new Set();
|
|
331
|
+
// Registers a named-interface (group/tab/array/select) def and returns its `$ref` name. For input,
|
|
332
|
+
// shares the read-shaped def when byte-identical; otherwise registers an `Input`-suffixed twin so
|
|
333
|
+
// the write shape doesn't collide with the read one.
|
|
334
|
+
const registerNamedInterface = (name, schema)=>{
|
|
335
|
+
if (variant === 'input') {
|
|
336
|
+
const outputDef = interfaceNameDefinitions.get(name);
|
|
337
|
+
if (outputDef && JSON.stringify(outputDef) === JSON.stringify(schema)) {
|
|
338
|
+
return name;
|
|
339
|
+
}
|
|
340
|
+
const inputName = `${name}Input`;
|
|
341
|
+
interfaceNameDefinitions.set(inputName, schema);
|
|
342
|
+
return inputName;
|
|
343
|
+
}
|
|
344
|
+
interfaceNameDefinitions.set(name, schema);
|
|
345
|
+
return name;
|
|
346
|
+
};
|
|
310
347
|
return {
|
|
311
348
|
properties: Object.fromEntries(fields.reduce((fieldSchemas, field, index)=>{
|
|
349
|
+
if (variant === 'input' && fieldIsInputExcluded(field)) {
|
|
350
|
+
return fieldSchemas;
|
|
351
|
+
}
|
|
352
|
+
const hasDefaultValue = 'defaultValue' in field && field.defaultValue !== undefined;
|
|
353
|
+
// `isRequired` only controls nullability (a non-required field gets `| null`). It does not
|
|
354
|
+
// change between variants, so e.g. a defaulted field stays non-null on input.
|
|
312
355
|
const isRequired = fieldAffectsData(field) && fieldIsRequired(field);
|
|
356
|
+
// `isOptionalOnInput` controls the `?`: on input, defaulted fields can be omitted.
|
|
357
|
+
const isOptionalOnInput = variant === 'input' && hasDefaultValue;
|
|
313
358
|
const fieldDescription = entityOrFieldToJsDocs({
|
|
314
359
|
entity: field,
|
|
315
360
|
i18n
|
|
@@ -328,13 +373,21 @@ export function fieldsToJSONSchema(/**
|
|
|
328
373
|
items: {
|
|
329
374
|
type: 'object',
|
|
330
375
|
additionalProperties: false,
|
|
331
|
-
...fieldsToJSONSchema(
|
|
376
|
+
...fieldsToJSONSchema({
|
|
377
|
+
collectionIDFieldTypes,
|
|
378
|
+
config,
|
|
379
|
+
fields: field.flattenedFields,
|
|
380
|
+
forceInlineBlocks,
|
|
381
|
+
i18n,
|
|
382
|
+
interfaceNameDefinitions,
|
|
383
|
+
typeStringDefinitions,
|
|
384
|
+
variant
|
|
385
|
+
})
|
|
332
386
|
}
|
|
333
387
|
};
|
|
334
388
|
if (field.interfaceName) {
|
|
335
|
-
interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
|
|
336
389
|
fieldSchema = {
|
|
337
|
-
$ref:
|
|
390
|
+
$ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`
|
|
338
391
|
};
|
|
339
392
|
}
|
|
340
393
|
break;
|
|
@@ -344,25 +397,26 @@ export function fieldsToJSONSchema(/**
|
|
|
344
397
|
// Check for a case where no blocks are provided.
|
|
345
398
|
// We need to generate an empty array for this case, note that JSON schema 4 doesn't support empty arrays
|
|
346
399
|
// so the best we can get is `unknown[]`
|
|
347
|
-
const hasBlocks = Boolean(field.
|
|
400
|
+
const hasBlocks = Boolean(field.blocks.length);
|
|
348
401
|
fieldSchema = {
|
|
349
402
|
...baseFieldSchema,
|
|
350
403
|
type: withNullableJSONSchemaType('array', isRequired),
|
|
351
404
|
items: hasBlocks ? {
|
|
352
|
-
oneOf:
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
return {};
|
|
357
|
-
}
|
|
358
|
-
if (!opts.forceInlineBlocks) {
|
|
359
|
-
return {
|
|
360
|
-
$ref: `#/definitions/${resolvedBlock.interfaceName ?? resolvedBlock.slug}`
|
|
361
|
-
};
|
|
362
|
-
}
|
|
363
|
-
block = resolvedBlock;
|
|
405
|
+
oneOf: field.blocks.map((blockOrReference)=>{
|
|
406
|
+
const block = typeof blockOrReference === 'string' ? config?.blocks?.find((b)=>b.slug === blockOrReference) : blockOrReference;
|
|
407
|
+
if (!block) {
|
|
408
|
+
return {};
|
|
364
409
|
}
|
|
365
|
-
const blockFieldSchemas = fieldsToJSONSchema(
|
|
410
|
+
const blockFieldSchemas = fieldsToJSONSchema({
|
|
411
|
+
collectionIDFieldTypes,
|
|
412
|
+
config,
|
|
413
|
+
fields: block.flattenedFields,
|
|
414
|
+
forceInlineBlocks,
|
|
415
|
+
i18n,
|
|
416
|
+
interfaceNameDefinitions,
|
|
417
|
+
typeStringDefinitions,
|
|
418
|
+
variant
|
|
419
|
+
});
|
|
366
420
|
const blockSchema = {
|
|
367
421
|
type: 'object',
|
|
368
422
|
additionalProperties: false,
|
|
@@ -377,13 +431,9 @@ export function fieldsToJSONSchema(/**
|
|
|
377
431
|
...blockFieldSchemas.required
|
|
378
432
|
]
|
|
379
433
|
};
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
$ref: `#/definitions/${block.interfaceName}`
|
|
384
|
-
};
|
|
385
|
-
}
|
|
386
|
-
return blockSchema;
|
|
434
|
+
return forceInlineBlocks ? blockSchema : {
|
|
435
|
+
$ref: `#/$defs/${registerBlockInterface(block, blockSchema, interfaceNameDefinitions, variant)}`
|
|
436
|
+
};
|
|
387
437
|
})
|
|
388
438
|
} : {}
|
|
389
439
|
};
|
|
@@ -415,12 +465,20 @@ export function fieldsToJSONSchema(/**
|
|
|
415
465
|
...baseFieldSchema,
|
|
416
466
|
type: 'object',
|
|
417
467
|
additionalProperties: false,
|
|
418
|
-
...fieldsToJSONSchema(
|
|
468
|
+
...fieldsToJSONSchema({
|
|
469
|
+
collectionIDFieldTypes,
|
|
470
|
+
config,
|
|
471
|
+
fields: field.flattenedFields,
|
|
472
|
+
forceInlineBlocks,
|
|
473
|
+
i18n,
|
|
474
|
+
interfaceNameDefinitions,
|
|
475
|
+
typeStringDefinitions,
|
|
476
|
+
variant
|
|
477
|
+
})
|
|
419
478
|
};
|
|
420
479
|
if (field.interfaceName) {
|
|
421
|
-
interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
|
|
422
480
|
fieldSchema = {
|
|
423
|
-
$ref:
|
|
481
|
+
$ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`
|
|
424
482
|
};
|
|
425
483
|
}
|
|
426
484
|
}
|
|
@@ -444,7 +502,7 @@ export function fieldsToJSONSchema(/**
|
|
|
444
502
|
type: collectionIDFieldTypes[collection]
|
|
445
503
|
},
|
|
446
504
|
{
|
|
447
|
-
$ref:
|
|
505
|
+
$ref: `#/$defs/${collection}`
|
|
448
506
|
}
|
|
449
507
|
]
|
|
450
508
|
}
|
|
@@ -462,7 +520,7 @@ export function fieldsToJSONSchema(/**
|
|
|
462
520
|
type: collectionIDFieldTypes[field.collection]
|
|
463
521
|
},
|
|
464
522
|
{
|
|
465
|
-
$ref:
|
|
523
|
+
$ref: `#/$defs/${field.collection}`
|
|
466
524
|
}
|
|
467
525
|
]
|
|
468
526
|
};
|
|
@@ -545,9 +603,8 @@ export function fieldsToJSONSchema(/**
|
|
|
545
603
|
enum: buildOptionEnums(field.options)
|
|
546
604
|
};
|
|
547
605
|
if (field.interfaceName) {
|
|
548
|
-
interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
|
|
549
606
|
fieldSchema = {
|
|
550
|
-
$ref:
|
|
607
|
+
$ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`
|
|
551
608
|
};
|
|
552
609
|
}
|
|
553
610
|
break;
|
|
@@ -555,6 +612,19 @@ export function fieldsToJSONSchema(/**
|
|
|
555
612
|
case 'relationship':
|
|
556
613
|
case 'upload':
|
|
557
614
|
{
|
|
615
|
+
// Read: an ID or the populated doc. Input: only the ID, so drop the `$ref`.
|
|
616
|
+
const relationValueSchema = (relation)=>variant === 'input' ? {
|
|
617
|
+
type: collectionIDFieldTypes[relation]
|
|
618
|
+
} : {
|
|
619
|
+
oneOf: [
|
|
620
|
+
{
|
|
621
|
+
type: collectionIDFieldTypes[relation]
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
$ref: `#/$defs/${relation}`
|
|
625
|
+
}
|
|
626
|
+
]
|
|
627
|
+
};
|
|
558
628
|
if (Array.isArray(field.relationTo)) {
|
|
559
629
|
if (field.hasMany) {
|
|
560
630
|
fieldSchema = {
|
|
@@ -569,16 +639,7 @@ export function fieldsToJSONSchema(/**
|
|
|
569
639
|
relationTo: {
|
|
570
640
|
const: relation
|
|
571
641
|
},
|
|
572
|
-
value:
|
|
573
|
-
oneOf: [
|
|
574
|
-
{
|
|
575
|
-
type: collectionIDFieldTypes[relation]
|
|
576
|
-
},
|
|
577
|
-
{
|
|
578
|
-
$ref: `#/definitions/${relation}`
|
|
579
|
-
}
|
|
580
|
-
]
|
|
581
|
-
}
|
|
642
|
+
value: relationValueSchema(relation)
|
|
582
643
|
},
|
|
583
644
|
required: [
|
|
584
645
|
'value',
|
|
@@ -599,16 +660,7 @@ export function fieldsToJSONSchema(/**
|
|
|
599
660
|
relationTo: {
|
|
600
661
|
const: relation
|
|
601
662
|
},
|
|
602
|
-
value:
|
|
603
|
-
oneOf: [
|
|
604
|
-
{
|
|
605
|
-
type: collectionIDFieldTypes[relation]
|
|
606
|
-
},
|
|
607
|
-
{
|
|
608
|
-
$ref: `#/definitions/${relation}`
|
|
609
|
-
}
|
|
610
|
-
]
|
|
611
|
-
}
|
|
663
|
+
value: relationValueSchema(relation)
|
|
612
664
|
},
|
|
613
665
|
required: [
|
|
614
666
|
'value',
|
|
@@ -622,17 +674,24 @@ export function fieldsToJSONSchema(/**
|
|
|
622
674
|
fieldSchema = {
|
|
623
675
|
...baseFieldSchema,
|
|
624
676
|
type: withNullableJSONSchemaType('array', isRequired),
|
|
625
|
-
items: {
|
|
677
|
+
items: variant === 'input' ? {
|
|
678
|
+
type: collectionIDFieldTypes[field.relationTo]
|
|
679
|
+
} : {
|
|
626
680
|
oneOf: [
|
|
627
681
|
{
|
|
628
682
|
type: collectionIDFieldTypes[field.relationTo]
|
|
629
683
|
},
|
|
630
684
|
{
|
|
631
|
-
$ref:
|
|
685
|
+
$ref: `#/$defs/${field.relationTo}`
|
|
632
686
|
}
|
|
633
687
|
]
|
|
634
688
|
}
|
|
635
689
|
};
|
|
690
|
+
} else if (variant === 'input') {
|
|
691
|
+
fieldSchema = {
|
|
692
|
+
...baseFieldSchema,
|
|
693
|
+
type: withNullableJSONSchemaType(collectionIDFieldTypes[field.relationTo], isRequired)
|
|
694
|
+
};
|
|
636
695
|
} else {
|
|
637
696
|
fieldSchema = {
|
|
638
697
|
...baseFieldSchema,
|
|
@@ -641,7 +700,7 @@ export function fieldsToJSONSchema(/**
|
|
|
641
700
|
type: withNullableJSONSchemaType(collectionIDFieldTypes[field.relationTo], isRequired)
|
|
642
701
|
},
|
|
643
702
|
{
|
|
644
|
-
$ref:
|
|
703
|
+
$ref: `#/$defs/${field.relationTo}`
|
|
645
704
|
}
|
|
646
705
|
]
|
|
647
706
|
};
|
|
@@ -657,16 +716,18 @@ export function fieldsToJSONSchema(/**
|
|
|
657
716
|
if (typeof field.editor === 'function') {
|
|
658
717
|
throw new Error('Attempted to access unsanitized rich text editor.');
|
|
659
718
|
}
|
|
660
|
-
if (field.editor.
|
|
719
|
+
if (field.editor.jsonSchema) {
|
|
661
720
|
fieldSchema = {
|
|
662
721
|
...baseFieldSchema,
|
|
663
|
-
...field.editor.
|
|
722
|
+
...field.editor.jsonSchema({
|
|
664
723
|
collectionIDFieldTypes,
|
|
665
724
|
config,
|
|
666
725
|
field,
|
|
667
726
|
i18n,
|
|
668
727
|
interfaceNameDefinitions,
|
|
669
|
-
isRequired
|
|
728
|
+
isRequired,
|
|
729
|
+
typeStringDefinitions,
|
|
730
|
+
variant
|
|
670
731
|
})
|
|
671
732
|
};
|
|
672
733
|
} else {
|
|
@@ -694,7 +755,7 @@ export function fieldsToJSONSchema(/**
|
|
|
694
755
|
// only if the field's options match the global config
|
|
695
756
|
if (isTimezoneField && hasMatchingGlobalTimezones) {
|
|
696
757
|
fieldSchema = {
|
|
697
|
-
$ref:
|
|
758
|
+
$ref: `#/$defs/supportedTimezones`
|
|
698
759
|
};
|
|
699
760
|
} else {
|
|
700
761
|
if (field.hasMany) {
|
|
@@ -719,9 +780,8 @@ export function fieldsToJSONSchema(/**
|
|
|
719
780
|
}
|
|
720
781
|
}
|
|
721
782
|
if (field.interfaceName) {
|
|
722
|
-
interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
|
|
723
783
|
fieldSchema = {
|
|
724
|
-
$ref:
|
|
784
|
+
$ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`
|
|
725
785
|
};
|
|
726
786
|
}
|
|
727
787
|
break;
|
|
@@ -734,12 +794,20 @@ export function fieldsToJSONSchema(/**
|
|
|
734
794
|
...baseFieldSchema,
|
|
735
795
|
type: 'object',
|
|
736
796
|
additionalProperties: false,
|
|
737
|
-
...fieldsToJSONSchema(
|
|
797
|
+
...fieldsToJSONSchema({
|
|
798
|
+
collectionIDFieldTypes,
|
|
799
|
+
config,
|
|
800
|
+
fields: field.flattenedFields,
|
|
801
|
+
forceInlineBlocks,
|
|
802
|
+
i18n,
|
|
803
|
+
interfaceNameDefinitions,
|
|
804
|
+
typeStringDefinitions,
|
|
805
|
+
variant
|
|
806
|
+
})
|
|
738
807
|
};
|
|
739
808
|
if (field.interfaceName) {
|
|
740
|
-
interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
|
|
741
809
|
fieldSchema = {
|
|
742
|
-
$ref:
|
|
810
|
+
$ref: `#/$defs/${registerNamedInterface(field.interfaceName, fieldSchema)}`
|
|
743
811
|
};
|
|
744
812
|
}
|
|
745
813
|
break;
|
|
@@ -765,15 +833,16 @@ export function fieldsToJSONSchema(/**
|
|
|
765
833
|
break;
|
|
766
834
|
}
|
|
767
835
|
}
|
|
768
|
-
if ('
|
|
769
|
-
for (const schema of field.
|
|
836
|
+
if ('jsonSchema' in field && field?.jsonSchema?.length) {
|
|
837
|
+
for (const schema of field.jsonSchema){
|
|
770
838
|
fieldSchema = schema({
|
|
771
|
-
jsonSchema: fieldSchema
|
|
839
|
+
jsonSchema: fieldSchema,
|
|
840
|
+
variant
|
|
772
841
|
});
|
|
773
842
|
}
|
|
774
843
|
}
|
|
775
844
|
if (fieldSchema && fieldAffectsData(field)) {
|
|
776
|
-
if (isRequired && fieldSchema.required !== false) {
|
|
845
|
+
if (isRequired && !isOptionalOnInput && fieldSchema.required !== false) {
|
|
777
846
|
requiredFieldNames.add(field.name);
|
|
778
847
|
}
|
|
779
848
|
fieldSchemas.set(field.name, fieldSchema);
|
|
@@ -784,17 +853,21 @@ export function fieldsToJSONSchema(/**
|
|
|
784
853
|
};
|
|
785
854
|
}
|
|
786
855
|
// This function is part of the public API and is exported through payload/utilities
|
|
787
|
-
export function entityToJSONSchema(config, entity, interfaceNameDefinitions, defaultIDType, collectionIDFieldTypes, i18n,
|
|
856
|
+
export function entityToJSONSchema(config, entity, interfaceNameDefinitions, defaultIDType, typeStringDefinitions, collectionIDFieldTypes, i18n, forceInlineBlocks, variant = 'output') {
|
|
788
857
|
if (!collectionIDFieldTypes) {
|
|
789
858
|
collectionIDFieldTypes = getCollectionIDFieldTypes({
|
|
790
859
|
config,
|
|
791
860
|
defaultIDType
|
|
792
861
|
});
|
|
793
862
|
}
|
|
794
|
-
const
|
|
863
|
+
const isInput = variant === 'input';
|
|
864
|
+
const baseTitle = entity.typescript?.interface ? entity.typescript.interface : formatNames(entity.slug).singular;
|
|
865
|
+
const title = isInput ? `${baseTitle}Input` : baseTitle;
|
|
795
866
|
let mutableFields = [
|
|
796
867
|
...entity.flattenedFields
|
|
797
868
|
];
|
|
869
|
+
// `required: true` keeps `id` non-null. On input it's made optional further below (it's dropped
|
|
870
|
+
// from `required`) so you can omit it or pass a custom ID, but it's still never `null`.
|
|
798
871
|
const idField = {
|
|
799
872
|
name: 'id',
|
|
800
873
|
type: defaultIDType,
|
|
@@ -802,20 +875,18 @@ export function entityToJSONSchema(config, entity, interfaceNameDefinitions, def
|
|
|
802
875
|
};
|
|
803
876
|
const customIdField = mutableFields.find((field)=>field.name === 'id');
|
|
804
877
|
if (customIdField && customIdField.type !== 'group' && customIdField.type !== 'tab') {
|
|
805
|
-
mutableFields = mutableFields.map((field)=>{
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
required: true
|
|
810
|
-
};
|
|
811
|
-
}
|
|
812
|
-
return field;
|
|
813
|
-
});
|
|
878
|
+
mutableFields = mutableFields.map((field)=>field === customIdField ? {
|
|
879
|
+
...field,
|
|
880
|
+
required: true
|
|
881
|
+
} : field);
|
|
814
882
|
} else {
|
|
815
883
|
mutableFields.unshift(idField);
|
|
816
884
|
}
|
|
817
|
-
|
|
818
|
-
|
|
885
|
+
if (isInput) {
|
|
886
|
+
// Managed by Payload, not set by a client.
|
|
887
|
+
mutableFields = mutableFields.filter((field)=>field.name !== 'createdAt' && field.name !== 'updatedAt' && field.name !== '_status');
|
|
888
|
+
} else if ('timestamps' in entity && entity.timestamps !== false) {
|
|
889
|
+
// mark timestamp fields required
|
|
819
890
|
mutableFields = mutableFields.map((field)=>{
|
|
820
891
|
if (field.name === 'createdAt' || field.name === 'updatedAt') {
|
|
821
892
|
return {
|
|
@@ -833,9 +904,23 @@ export function entityToJSONSchema(config, entity, interfaceNameDefinitions, def
|
|
|
833
904
|
});
|
|
834
905
|
}
|
|
835
906
|
const isAuthCollection = 'auth' in entity && entity.auth;
|
|
836
|
-
const fieldsSchema = fieldsToJSONSchema(
|
|
837
|
-
|
|
838
|
-
|
|
907
|
+
const fieldsSchema = fieldsToJSONSchema({
|
|
908
|
+
collectionIDFieldTypes,
|
|
909
|
+
config,
|
|
910
|
+
fields: mutableFields,
|
|
911
|
+
forceInlineBlocks,
|
|
912
|
+
i18n,
|
|
913
|
+
interfaceNameDefinitions,
|
|
914
|
+
typeStringDefinitions,
|
|
915
|
+
variant
|
|
916
|
+
});
|
|
917
|
+
// On input, `id` is optional (omit it, or pass a custom ID). Removing it from `required` makes
|
|
918
|
+
// it optional without making it nullable.
|
|
919
|
+
if (isInput && Array.isArray(fieldsSchema.required)) {
|
|
920
|
+
fieldsSchema.required = fieldsSchema.required.filter((name)=>name !== 'id');
|
|
921
|
+
}
|
|
922
|
+
// The `User`-union discriminator (read-side, e.g. `req.user`); not part of create/update data.
|
|
923
|
+
if (isAuthCollection && !isInput) {
|
|
839
924
|
fieldsSchema.properties = {
|
|
840
925
|
...fieldsSchema.properties,
|
|
841
926
|
collection: {
|
|
@@ -865,6 +950,47 @@ export function entityToJSONSchema(config, entity, interfaceNameDefinitions, def
|
|
|
865
950
|
}
|
|
866
951
|
return jsonSchema;
|
|
867
952
|
}
|
|
953
|
+
/**
|
|
954
|
+
* Like {@link entityToJSONSchema}, but returns a standalone schema for one collection or global:
|
|
955
|
+
* the entity plus only the `$defs` it actually uses, so it resolves on its own rather than
|
|
956
|
+
* as part of the whole config schema.
|
|
957
|
+
*
|
|
958
|
+
* Relationship/upload `$ref`s to other collections are left in place - the caller handles those.
|
|
959
|
+
* (The `input` variant reduces relationships to IDs, so only rich-text node `$defs` still ref them.)
|
|
960
|
+
*/ export function entityToStandaloneJSONSchema({ config, defaultIDType, entity, i18n, variant = 'output' }) {
|
|
961
|
+
const definitions = new Map();
|
|
962
|
+
// entityToJSONSchema fills `definitions` with everything the fields reference (node unions, blocks).
|
|
963
|
+
const schema = entityToJSONSchema(config, entity, definitions, defaultIDType, new Set(), undefined, i18n, true, variant);
|
|
964
|
+
// Timezone fields `$ref` supportedTimezones, which lives on the root config schema, so add it here.
|
|
965
|
+
const supportedTimezones = config.admin?.timezones?.supportedTimezones;
|
|
966
|
+
if (supportedTimezones?.length && schemaHasRef([
|
|
967
|
+
schema,
|
|
968
|
+
...definitions.values()
|
|
969
|
+
], '#/$defs/supportedTimezones')) {
|
|
970
|
+
definitions.set('supportedTimezones', timezonesToJSONSchema(supportedTimezones));
|
|
971
|
+
}
|
|
972
|
+
return {
|
|
973
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
974
|
+
...schema,
|
|
975
|
+
$defs: Object.fromEntries(definitions)
|
|
976
|
+
};
|
|
977
|
+
}
|
|
978
|
+
/**
|
|
979
|
+
* Recursive function that returns true if
|
|
980
|
+
* `node` has a `$ref` to `ref` somewhere inside it.
|
|
981
|
+
* */ function schemaHasRef(node, ref) {
|
|
982
|
+
if (Array.isArray(node)) {
|
|
983
|
+
return node.some((child)=>schemaHasRef(child, ref));
|
|
984
|
+
}
|
|
985
|
+
if (node && typeof node === 'object') {
|
|
986
|
+
const obj = node;
|
|
987
|
+
if (obj.$ref === ref) {
|
|
988
|
+
return true;
|
|
989
|
+
}
|
|
990
|
+
return Object.values(obj).some((value)=>schemaHasRef(value, ref));
|
|
991
|
+
}
|
|
992
|
+
return false;
|
|
993
|
+
}
|
|
868
994
|
export function fieldsToSelectJSONSchema({ config, fields, interfaceNameDefinitions }) {
|
|
869
995
|
const schema = {
|
|
870
996
|
type: 'object',
|
|
@@ -886,7 +1012,7 @@ export function fieldsToSelectJSONSchema({ config, fields, interfaceNameDefiniti
|
|
|
886
1012
|
const definition = `${field.interfaceName}_select`;
|
|
887
1013
|
interfaceNameDefinitions.set(definition, fieldSchema);
|
|
888
1014
|
fieldSchema = {
|
|
889
|
-
$ref:
|
|
1015
|
+
$ref: `#/$defs/${definition}`
|
|
890
1016
|
};
|
|
891
1017
|
}
|
|
892
1018
|
schema.properties[field.name] = {
|
|
@@ -906,7 +1032,7 @@ export function fieldsToSelectJSONSchema({ config, fields, interfaceNameDefiniti
|
|
|
906
1032
|
additionalProperties: false,
|
|
907
1033
|
properties: {}
|
|
908
1034
|
};
|
|
909
|
-
for (const block of field.
|
|
1035
|
+
for (const block of field.blocks){
|
|
910
1036
|
if (typeof block === 'string') {
|
|
911
1037
|
continue; // TODO
|
|
912
1038
|
}
|
|
@@ -919,7 +1045,7 @@ export function fieldsToSelectJSONSchema({ config, fields, interfaceNameDefiniti
|
|
|
919
1045
|
const definition = `${block.interfaceName}_select`;
|
|
920
1046
|
interfaceNameDefinitions.set(definition, blockSchema);
|
|
921
1047
|
blockSchema = {
|
|
922
|
-
$ref:
|
|
1048
|
+
$ref: `#/$defs/${definition}`
|
|
923
1049
|
};
|
|
924
1050
|
}
|
|
925
1051
|
blocksSchema.properties[block.slug] = {
|
|
@@ -1121,7 +1247,7 @@ function generateAuthOperationSchemas(collections) {
|
|
|
1121
1247
|
const properties = collections.reduce((acc, collection)=>{
|
|
1122
1248
|
if (collection.auth) {
|
|
1123
1249
|
acc[collection.slug] = {
|
|
1124
|
-
$ref:
|
|
1250
|
+
$ref: `#/$defs/auth/${collection.slug}`
|
|
1125
1251
|
};
|
|
1126
1252
|
}
|
|
1127
1253
|
return acc;
|
|
@@ -1133,11 +1259,56 @@ function generateAuthOperationSchemas(collections) {
|
|
|
1133
1259
|
required: Object.keys(properties)
|
|
1134
1260
|
};
|
|
1135
1261
|
}
|
|
1262
|
+
const hashBlockSchema = (schema)=>createHash('sha256').update(JSON.stringify(schema)).digest('hex').slice(0, 8).toUpperCase();
|
|
1263
|
+
/**
|
|
1264
|
+
* Registers a block's schema as a top-level definition and returns its name.
|
|
1265
|
+
*
|
|
1266
|
+
* The name is the block's `interfaceName`, or a PascalCase form of its slug. If a different block
|
|
1267
|
+
* already uses that name - whether it was auto-generated or an explicit `interfaceName` - this one
|
|
1268
|
+
* gets a content-hash suffix (`Hero_3F2A1B0C`) so the two don't overwrite each other. Registering
|
|
1269
|
+
* the same block shape again reuses its name.
|
|
1270
|
+
*
|
|
1271
|
+
* The `input` variant adds an `Input` suffix (`HeroInput`) - unless the read-shaped def is already
|
|
1272
|
+
* registered with byte-identical content (a block with nothing that differs between input and
|
|
1273
|
+
* output), in which case it's shared as-is rather than emitting a redundant twin.
|
|
1274
|
+
*/ export function registerBlockInterface(block, blockSchema, interfaceNameDefinitions, variant = 'output') {
|
|
1275
|
+
const rawName = block.interfaceName ?? toWords(block.slug, true);
|
|
1276
|
+
if (variant === 'input') {
|
|
1277
|
+
const outputDef = interfaceNameDefinitions.get(rawName);
|
|
1278
|
+
if (outputDef && hashBlockSchema(outputDef) === hashBlockSchema(blockSchema)) {
|
|
1279
|
+
return rawName;
|
|
1280
|
+
}
|
|
1281
|
+
}
|
|
1282
|
+
const baseName = variant === 'input' ? `${rawName}Input` : rawName;
|
|
1283
|
+
const existing = interfaceNameDefinitions.get(baseName);
|
|
1284
|
+
// The name is free - claim it.
|
|
1285
|
+
if (!existing) {
|
|
1286
|
+
interfaceNameDefinitions.set(baseName, blockSchema);
|
|
1287
|
+
return baseName;
|
|
1288
|
+
}
|
|
1289
|
+
const hash = hashBlockSchema(blockSchema);
|
|
1290
|
+
// The same block shape is already registered under this name, so reuse it.
|
|
1291
|
+
if (hashBlockSchema(existing) === hash) {
|
|
1292
|
+
return baseName;
|
|
1293
|
+
}
|
|
1294
|
+
// A different block already owns the name. Disambiguate this one with its hash.
|
|
1295
|
+
blockSchema.description = `Multiple blocks resolve to the \`${baseName}\` interface with different fields, so a content hash is appended to keep the generated types stable and unambiguous. Set a unique \`interfaceName\` on the block to choose the name yourself. See https://payloadcms.com/docs/typescript/generating-types#block-interface-name-collisions`;
|
|
1296
|
+
const uniqueName = `${baseName}_${hash}`;
|
|
1297
|
+
interfaceNameDefinitions.set(uniqueName, blockSchema);
|
|
1298
|
+
return uniqueName;
|
|
1299
|
+
}
|
|
1136
1300
|
/**
|
|
1137
1301
|
* This is used for generating the TypeScript types (payload-types.ts) with the payload generate:types command.
|
|
1138
|
-
*/ export function configToJSONSchema(config, defaultIDType, i18n,
|
|
1139
|
-
// a mutable Map
|
|
1302
|
+
*/ export function configToJSONSchema(config, defaultIDType, i18n, { forceInlineBlocks } = {}) {
|
|
1303
|
+
// a mutable Map of top-level definitions in the generated JSON Schema.
|
|
1304
|
+
// - `array`/`group`/named-`tab` fields are registered here when they set
|
|
1305
|
+
// `interfaceName` (otherwise they stay inline).
|
|
1306
|
+
// - `block` configs always register here via `registerBlockInterface`, keyed by
|
|
1307
|
+
// `block.interfaceName` if set, else a PascalCase form of the slug (with a
|
|
1308
|
+
// content-hash suffix when two different blocks resolve to the same name).
|
|
1140
1309
|
const interfaceNameDefinitions = new Map();
|
|
1310
|
+
// a mutable Set for raw TS source to be appended to `payload-types.ts`.
|
|
1311
|
+
const typeStringDefinitions = new Set();
|
|
1141
1312
|
// Used for relationship fields, to determine whether to use a string or number type for the ID.
|
|
1142
1313
|
const collectionIDFieldTypes = getCollectionIDFieldTypes({
|
|
1143
1314
|
config,
|
|
@@ -1155,8 +1326,12 @@ function generateAuthOperationSchemas(collections) {
|
|
|
1155
1326
|
entity: collection
|
|
1156
1327
|
}))
|
|
1157
1328
|
];
|
|
1329
|
+
const generateInputTypes = config.typescript?.generateInputTypes === true;
|
|
1158
1330
|
const entityDefinitions = entities.reduce((acc, { type, entity })=>{
|
|
1159
|
-
acc[entity.slug] = entityToJSONSchema(config, entity, interfaceNameDefinitions, defaultIDType, collectionIDFieldTypes, i18n,
|
|
1331
|
+
acc[entity.slug] = entityToJSONSchema(config, entity, interfaceNameDefinitions, defaultIDType, typeStringDefinitions, collectionIDFieldTypes, i18n, forceInlineBlocks);
|
|
1332
|
+
if (generateInputTypes) {
|
|
1333
|
+
acc[`${entity.slug}_input`] = entityToJSONSchema(config, entity, interfaceNameDefinitions, defaultIDType, typeStringDefinitions, collectionIDFieldTypes, i18n, forceInlineBlocks, 'input');
|
|
1334
|
+
}
|
|
1160
1335
|
const select = fieldsToSelectJSONSchema({
|
|
1161
1336
|
config,
|
|
1162
1337
|
fields: entity.flattenedFields,
|
|
@@ -1178,9 +1353,10 @@ function generateAuthOperationSchemas(collections) {
|
|
|
1178
1353
|
const widgetSchemas = generateWidgetSchemas({
|
|
1179
1354
|
collectionIDFieldTypes,
|
|
1180
1355
|
config,
|
|
1356
|
+
forceInlineBlocks,
|
|
1181
1357
|
i18n,
|
|
1182
1358
|
interfaceNameDefinitions,
|
|
1183
|
-
|
|
1359
|
+
typeStringDefinitions
|
|
1184
1360
|
});
|
|
1185
1361
|
const authOperationDefinitions = [
|
|
1186
1362
|
...config.collections
|
|
@@ -1190,7 +1366,7 @@ function generateAuthOperationSchemas(collections) {
|
|
|
1190
1366
|
}, {
|
|
1191
1367
|
auth: {}
|
|
1192
1368
|
});
|
|
1193
|
-
const jobsSchemas = config.jobs ? generateJobsJSONSchemas(config, config.jobs, interfaceNameDefinitions, collectionIDFieldTypes, i18n) : {};
|
|
1369
|
+
const jobsSchemas = config.jobs ? generateJobsJSONSchemas(config, config.jobs, interfaceNameDefinitions, collectionIDFieldTypes, typeStringDefinitions, i18n) : {};
|
|
1194
1370
|
const blocksDefinition = {
|
|
1195
1371
|
type: 'object',
|
|
1196
1372
|
additionalProperties: false,
|
|
@@ -1199,7 +1375,15 @@ function generateAuthOperationSchemas(collections) {
|
|
|
1199
1375
|
};
|
|
1200
1376
|
if (config?.blocks?.length) {
|
|
1201
1377
|
for (const block of config.blocks){
|
|
1202
|
-
const blockFieldSchemas = fieldsToJSONSchema(
|
|
1378
|
+
const blockFieldSchemas = fieldsToJSONSchema({
|
|
1379
|
+
collectionIDFieldTypes,
|
|
1380
|
+
config,
|
|
1381
|
+
fields: block.flattenedFields,
|
|
1382
|
+
forceInlineBlocks,
|
|
1383
|
+
i18n,
|
|
1384
|
+
interfaceNameDefinitions,
|
|
1385
|
+
typeStringDefinitions
|
|
1386
|
+
});
|
|
1203
1387
|
const blockSchema = {
|
|
1204
1388
|
type: 'object',
|
|
1205
1389
|
additionalProperties: false,
|
|
@@ -1214,23 +1398,22 @@ function generateAuthOperationSchemas(collections) {
|
|
|
1214
1398
|
...blockFieldSchemas.required
|
|
1215
1399
|
]
|
|
1216
1400
|
};
|
|
1217
|
-
const interfaceName = block.interfaceName ?? block.slug;
|
|
1218
|
-
interfaceNameDefinitions.set(interfaceName, blockSchema);
|
|
1219
1401
|
blocksDefinition.properties[block.slug] = {
|
|
1220
|
-
$ref:
|
|
1402
|
+
$ref: `#/$defs/${registerBlockInterface(block, blockSchema, interfaceNameDefinitions)}`
|
|
1221
1403
|
};
|
|
1222
1404
|
blocksDefinition.required.push(block.slug);
|
|
1223
1405
|
}
|
|
1224
1406
|
}
|
|
1225
1407
|
let jsonSchema = {
|
|
1226
|
-
|
|
1227
|
-
definitions: {
|
|
1408
|
+
$defs: {
|
|
1228
1409
|
supportedTimezones: timezoneDefinitions,
|
|
1229
1410
|
...entityDefinitions,
|
|
1230
1411
|
...widgetSchemas.definitions,
|
|
1231
1412
|
...Object.fromEntries(interfaceNameDefinitions),
|
|
1232
1413
|
...authOperationDefinitions
|
|
1233
1414
|
},
|
|
1415
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
1416
|
+
additionalProperties: false,
|
|
1234
1417
|
// These properties here will be very simple, as all the complexity is in the definitions. These are just the properties for the top-level `Config` type
|
|
1235
1418
|
type: 'object',
|
|
1236
1419
|
properties: {
|
|
@@ -1245,6 +1428,10 @@ function generateAuthOperationSchemas(collections) {
|
|
|
1245
1428
|
globalsSelect: generateEntitySelectSchemas(config.globals || []),
|
|
1246
1429
|
locale: generateLocaleEntitySchemas(config.localization),
|
|
1247
1430
|
widgets: widgetSchemas.schema,
|
|
1431
|
+
...generateInputTypes ? {
|
|
1432
|
+
collectionsInput: generateEntityInputSchemas(config.collections || []),
|
|
1433
|
+
globalsInput: generateEntityInputSchemas(config.globals || [])
|
|
1434
|
+
} : {},
|
|
1248
1435
|
...config.typescript?.strictDraftTypes ? {
|
|
1249
1436
|
strictDraftTypes: {
|
|
1250
1437
|
type: 'boolean',
|
|
@@ -1261,6 +1448,10 @@ function generateAuthOperationSchemas(collections) {
|
|
|
1261
1448
|
'collectionsSelect',
|
|
1262
1449
|
'collectionsJoins',
|
|
1263
1450
|
'globalsSelect',
|
|
1451
|
+
...generateInputTypes ? [
|
|
1452
|
+
'collectionsInput',
|
|
1453
|
+
'globalsInput'
|
|
1454
|
+
] : [],
|
|
1264
1455
|
...config.typescript?.strictDraftTypes ? [
|
|
1265
1456
|
'strictDraftTypes'
|
|
1266
1457
|
] : [],
|
|
@@ -1275,7 +1466,7 @@ function generateAuthOperationSchemas(collections) {
|
|
|
1275
1466
|
};
|
|
1276
1467
|
if (jobsSchemas.definitions?.size) {
|
|
1277
1468
|
for (const [key, value] of jobsSchemas.definitions){
|
|
1278
|
-
jsonSchema
|
|
1469
|
+
jsonSchema.$defs[key] = value;
|
|
1279
1470
|
}
|
|
1280
1471
|
}
|
|
1281
1472
|
if (jobsSchemas.properties) {
|
|
@@ -1299,7 +1490,10 @@ function generateAuthOperationSchemas(collections) {
|
|
|
1299
1490
|
});
|
|
1300
1491
|
}
|
|
1301
1492
|
}
|
|
1302
|
-
return
|
|
1493
|
+
return {
|
|
1494
|
+
jsonSchema,
|
|
1495
|
+
typeStringDefinitions
|
|
1496
|
+
};
|
|
1303
1497
|
}
|
|
1304
1498
|
|
|
1305
1499
|
//# sourceMappingURL=configToJSONSchema.js.map
|