payload 4.0.0-internal.fa345ef → 4.0.0-internal.fec2230
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/bin.js +14 -10
- package/dist/__testing__/predefinedMigration.d.ts +4 -3
- package/dist/__testing__/predefinedMigration.d.ts.map +1 -1
- package/dist/admin/RichText.d.ts +1 -1
- package/dist/admin/RichText.d.ts.map +1 -1
- package/dist/admin/RichText.js.map +1 -1
- package/dist/admin/adapters/devReload.d.ts +13 -0
- package/dist/admin/adapters/devReload.d.ts.map +1 -1
- package/dist/admin/adapters/devReload.js +14 -1
- package/dist/admin/adapters/devReload.js.map +1 -1
- package/dist/admin/adapters/router.d.ts +8 -0
- package/dist/admin/adapters/router.d.ts.map +1 -1
- package/dist/admin/adapters/router.js.map +1 -1
- package/dist/admin/functions/index.d.ts +12 -10
- 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 -3
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/admin/types.js.map +1 -1
- package/dist/admin/views/index.d.ts +2 -2
- package/dist/admin/views/index.d.ts.map +1 -1
- package/dist/admin/views/index.js.map +1 -1
- package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
- package/dist/auth/baseFields/apiKey.js +16 -1
- package/dist/auth/baseFields/apiKey.js.map +1 -1
- package/dist/auth/cookies.d.ts +2 -2
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/crypto.d.ts +73 -2
- package/dist/auth/crypto.d.ts.map +1 -1
- package/dist/auth/crypto.js +90 -13
- package/dist/auth/crypto.js.map +1 -1
- package/dist/auth/defaultAccess.d.ts.map +1 -1
- package/dist/auth/endpoints/login.d.ts.map +1 -1
- package/dist/auth/endpoints/login.js +2 -11
- package/dist/auth/endpoints/login.js.map +1 -1
- package/dist/auth/endpoints/refresh.d.ts.map +1 -1
- package/dist/auth/endpoints/refresh.js +4 -6
- package/dist/auth/endpoints/refresh.js.map +1 -1
- package/dist/auth/ensureUsernameOrEmail.d.ts.map +1 -1
- package/dist/auth/executeAccess.d.ts +2 -1
- package/dist/auth/executeAccess.d.ts.map +1 -1
- package/dist/auth/executeAccess.js +2 -1
- package/dist/auth/executeAccess.js.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 +1 -1
- package/dist/auth/extractJWT.d.ts.map +1 -1
- package/dist/auth/getAccessResults.js +1 -0
- package/dist/auth/getAccessResults.js.map +1 -1
- package/dist/auth/getAuthFields.d.ts.map +1 -1
- package/dist/auth/getFieldsToSign.d.ts +1 -1
- package/dist/auth/getFieldsToSign.d.ts.map +1 -1
- package/dist/auth/getLoginOptions.d.ts +1 -1
- package/dist/auth/getLoginOptions.d.ts.map +1 -1
- package/dist/auth/getLoginOptions.js.map +1 -1
- package/dist/auth/isUserLocked.d.ts.map +1 -1
- package/dist/auth/jwt.d.ts.map +1 -1
- package/dist/auth/loginWithCookie.d.ts +33 -0
- package/dist/auth/loginWithCookie.d.ts.map +1 -0
- package/dist/auth/loginWithCookie.js +34 -0
- package/dist/auth/loginWithCookie.js.map +1 -0
- package/dist/auth/operations/access.d.ts.map +1 -1
- package/dist/auth/operations/access.js +3 -9
- package/dist/auth/operations/access.js.map +1 -1
- package/dist/auth/operations/auth.d.ts.map +1 -1
- package/dist/auth/operations/auth.js +15 -21
- 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.map +1 -1
- package/dist/auth/operations/logout.d.ts.map +1 -1
- package/dist/auth/operations/me.d.ts +2 -9
- package/dist/auth/operations/me.d.ts.map +1 -1
- package/dist/auth/operations/me.js +0 -6
- package/dist/auth/operations/me.js.map +1 -1
- package/dist/auth/operations/refresh.d.ts +0 -7
- package/dist/auth/operations/refresh.d.ts.map +1 -1
- package/dist/auth/operations/refresh.js +0 -6
- 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/unlock.d.ts.map +1 -1
- package/dist/auth/operations/unlock.js +1 -0
- package/dist/auth/operations/unlock.js.map +1 -1
- package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
- package/dist/auth/rotateSecret.d.ts +51 -0
- package/dist/auth/rotateSecret.d.ts.map +1 -0
- package/dist/auth/rotateSecret.js +131 -0
- package/dist/auth/rotateSecret.js.map +1 -0
- package/dist/auth/serverFunctions/cookies.d.ts +47 -0
- package/dist/auth/serverFunctions/cookies.d.ts.map +1 -0
- package/dist/auth/serverFunctions/cookies.js +52 -0
- package/dist/auth/serverFunctions/cookies.js.map +1 -0
- package/dist/auth/serverFunctions/login.d.ts +29 -0
- package/dist/auth/serverFunctions/login.d.ts.map +1 -0
- package/dist/auth/serverFunctions/login.js +63 -0
- package/dist/auth/serverFunctions/login.js.map +1 -0
- package/dist/auth/serverFunctions/logout.d.ts +17 -0
- package/dist/auth/serverFunctions/logout.d.ts.map +1 -0
- package/dist/auth/serverFunctions/logout.js +58 -0
- package/dist/auth/serverFunctions/logout.js.map +1 -0
- package/dist/auth/serverFunctions/refresh.d.ts +17 -0
- package/dist/auth/serverFunctions/refresh.d.ts.map +1 -0
- package/dist/auth/serverFunctions/refresh.js +61 -0
- package/dist/auth/serverFunctions/refresh.js.map +1 -0
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/strategies/apiKey.d.ts.map +1 -1
- package/dist/auth/strategies/apiKey.js +5 -3
- package/dist/auth/strategies/apiKey.js.map +1 -1
- package/dist/auth/strategies/jwt.d.ts.map +1 -1
- package/dist/auth/strategies/jwt.js +23 -2
- package/dist/auth/strategies/jwt.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.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 +13 -21
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js.map +1 -1
- package/dist/auth/withBaseAccess.d.ts +22 -0
- package/dist/auth/withBaseAccess.d.ts.map +1 -0
- package/dist/auth/withBaseAccess.js +61 -0
- package/dist/auth/withBaseAccess.js.map +1 -0
- package/dist/cli/commands/build/build.d.ts +44 -0
- package/dist/cli/commands/build/build.d.ts.map +1 -0
- package/dist/cli/commands/build/build.js +225 -0
- package/dist/cli/commands/build/build.js.map +1 -0
- package/dist/cli/commands/build/build.spec.js +582 -0
- package/dist/cli/commands/build/build.spec.js.map +1 -0
- package/dist/cli/commands/build/index.d.ts +2 -0
- package/dist/cli/commands/build/index.d.ts.map +1 -0
- package/dist/cli/commands/build/index.js +26 -0
- package/dist/cli/commands/build/index.js.map +1 -0
- package/dist/cli/commands/collections/countDocuments.d.ts +2 -0
- package/dist/cli/commands/collections/countDocuments.d.ts.map +1 -0
- package/dist/cli/commands/collections/countDocuments.js +37 -0
- package/dist/cli/commands/collections/countDocuments.js.map +1 -0
- package/dist/cli/commands/collections/countVersions.d.ts +2 -0
- package/dist/cli/commands/collections/countVersions.d.ts.map +1 -0
- package/dist/cli/commands/collections/countVersions.js +36 -0
- package/dist/cli/commands/collections/countVersions.js.map +1 -0
- package/dist/cli/commands/collections/createDocuments.d.ts +2 -0
- package/dist/cli/commands/collections/createDocuments.d.ts.map +1 -0
- package/dist/cli/commands/collections/createDocuments.js +130 -0
- package/dist/cli/commands/collections/createDocuments.js.map +1 -0
- package/dist/cli/commands/collections/deleteDocuments.d.ts +2 -0
- package/dist/cli/commands/collections/deleteDocuments.d.ts.map +1 -0
- package/dist/cli/commands/collections/deleteDocuments.js +64 -0
- package/dist/cli/commands/collections/deleteDocuments.js.map +1 -0
- package/dist/cli/commands/collections/duplicateDocument.d.ts +2 -0
- package/dist/cli/commands/collections/duplicateDocument.d.ts.map +1 -0
- package/dist/cli/commands/collections/duplicateDocument.js +107 -0
- package/dist/cli/commands/collections/duplicateDocument.js.map +1 -0
- package/dist/cli/commands/collections/findDistinct.d.ts +2 -0
- package/dist/cli/commands/collections/findDistinct.d.ts.map +1 -0
- package/dist/cli/commands/collections/findDistinct.js +52 -0
- package/dist/cli/commands/collections/findDistinct.js.map +1 -0
- package/dist/cli/commands/collections/findDocuments.d.ts +2 -0
- package/dist/cli/commands/collections/findDocuments.d.ts.map +1 -0
- package/dist/cli/commands/collections/findDocuments.js +79 -0
- package/dist/cli/commands/collections/findDocuments.js.map +1 -0
- package/dist/cli/commands/collections/findVersionByID.d.ts +2 -0
- package/dist/cli/commands/collections/findVersionByID.d.ts.map +1 -0
- package/dist/cli/commands/collections/findVersionByID.js +48 -0
- package/dist/cli/commands/collections/findVersionByID.js.map +1 -0
- package/dist/cli/commands/collections/findVersions.d.ts +2 -0
- package/dist/cli/commands/collections/findVersions.d.ts.map +1 -0
- package/dist/cli/commands/collections/findVersions.js +57 -0
- package/dist/cli/commands/collections/findVersions.js.map +1 -0
- package/dist/cli/commands/collections/getCollectionSchema.d.ts +2 -0
- package/dist/cli/commands/collections/getCollectionSchema.d.ts.map +1 -0
- package/dist/cli/commands/collections/getCollectionSchema.js +49 -0
- package/dist/cli/commands/collections/getCollectionSchema.js.map +1 -0
- package/dist/cli/commands/collections/restoreVersion.d.ts +2 -0
- package/dist/cli/commands/collections/restoreVersion.d.ts.map +1 -0
- package/dist/cli/commands/collections/restoreVersion.js +47 -0
- package/dist/cli/commands/collections/restoreVersion.js.map +1 -0
- package/dist/cli/commands/collections/updateDocument.d.ts +2 -0
- package/dist/cli/commands/collections/updateDocument.d.ts.map +1 -0
- package/dist/cli/commands/collections/updateDocument.js +190 -0
- package/dist/cli/commands/collections/updateDocument.js.map +1 -0
- package/dist/cli/commands/data/input.d.ts +28 -0
- package/dist/cli/commands/data/input.d.ts.map +1 -0
- package/dist/cli/commands/data/input.js +76 -0
- package/dist/cli/commands/data/input.js.map +1 -0
- package/dist/cli/commands/data/utilities.d.ts +65 -0
- package/dist/cli/commands/data/utilities.d.ts.map +1 -0
- package/dist/cli/commands/data/utilities.js +67 -0
- package/dist/cli/commands/data/utilities.js.map +1 -0
- package/dist/cli/commands/generateDBSchema.d.ts +2 -0
- package/dist/cli/commands/generateDBSchema.d.ts.map +1 -0
- package/dist/cli/commands/generateDBSchema.js +29 -0
- package/dist/cli/commands/generateDBSchema.js.map +1 -0
- package/dist/cli/commands/generateImportMap/frameworkConventions.d.ts +8 -0
- package/dist/cli/commands/generateImportMap/frameworkConventions.d.ts.map +1 -0
- package/dist/cli/commands/generateImportMap/frameworkConventions.js +8 -0
- package/dist/cli/commands/generateImportMap/frameworkConventions.js.map +1 -0
- package/dist/{bin/generateImportMap/index.d.ts → cli/commands/generateImportMap/generateImportMap.d.ts} +8 -4
- package/dist/cli/commands/generateImportMap/generateImportMap.d.ts.map +1 -0
- package/dist/{bin/generateImportMap/index.js → cli/commands/generateImportMap/generateImportMap.js} +9 -4
- package/dist/cli/commands/generateImportMap/generateImportMap.js.map +1 -0
- package/dist/cli/commands/generateImportMap/generateImportMap.spec.js.map +1 -0
- package/dist/cli/commands/generateImportMap/index.d.ts +2 -0
- package/dist/cli/commands/generateImportMap/index.d.ts.map +1 -0
- package/dist/cli/commands/generateImportMap/index.js +18 -0
- package/dist/cli/commands/generateImportMap/index.js.map +1 -0
- package/dist/{bin → cli/commands}/generateImportMap/iterateCollections.d.ts +3 -3
- package/dist/cli/commands/generateImportMap/iterateCollections.d.ts.map +1 -0
- package/dist/cli/commands/generateImportMap/iterateCollections.js.map +1 -0
- package/dist/{bin → cli/commands}/generateImportMap/iterateConfig.d.ts +2 -2
- package/dist/cli/commands/generateImportMap/iterateConfig.d.ts.map +1 -0
- package/dist/{bin → cli/commands}/generateImportMap/iterateConfig.js +1 -1
- package/dist/cli/commands/generateImportMap/iterateConfig.js.map +1 -0
- package/dist/{bin → cli/commands}/generateImportMap/iterateFields.d.ts +3 -3
- package/dist/cli/commands/generateImportMap/iterateFields.d.ts.map +1 -0
- package/dist/cli/commands/generateImportMap/iterateFields.js.map +1 -0
- package/dist/{bin → cli/commands}/generateImportMap/iterateGlobals.d.ts +3 -3
- package/dist/cli/commands/generateImportMap/iterateGlobals.d.ts.map +1 -0
- package/dist/cli/commands/generateImportMap/iterateGlobals.js.map +1 -0
- package/dist/{bin → cli/commands}/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts +2 -2
- package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +1 -0
- package/dist/cli/commands/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +1 -0
- package/dist/{bin → cli/commands}/generateImportMap/utilities/getFromImportMap.d.ts +2 -2
- package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.d.ts.map +1 -0
- package/dist/cli/commands/generateImportMap/utilities/getFromImportMap.js.map +1 -0
- package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +1 -0
- package/dist/cli/commands/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +1 -0
- package/dist/{bin → cli/commands}/generateImportMap/utilities/parsePayloadComponent.d.ts +1 -1
- package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.d.ts.map +1 -0
- package/dist/cli/commands/generateImportMap/utilities/parsePayloadComponent.js.map +1 -0
- package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +1 -0
- package/dist/{bin → cli/commands}/generateImportMap/utilities/resolveImportMapFilePath.js +5 -4
- package/dist/cli/commands/generateImportMap/utilities/resolveImportMapFilePath.js.map +1 -0
- package/dist/cli/commands/generateTypes.d.ts +12 -0
- package/dist/cli/commands/generateTypes.d.ts.map +1 -0
- package/dist/{bin → cli/commands}/generateTypes.js +33 -7
- package/dist/cli/commands/generateTypes.js.map +1 -0
- package/dist/cli/commands/getConfigInfo.d.ts +2 -0
- package/dist/cli/commands/getConfigInfo.d.ts.map +1 -0
- package/dist/cli/commands/getConfigInfo.js +23 -0
- package/dist/cli/commands/getConfigInfo.js.map +1 -0
- package/dist/cli/commands/globals/countGlobalVersions.d.ts +2 -0
- package/dist/cli/commands/globals/countGlobalVersions.d.ts.map +1 -0
- package/dist/cli/commands/globals/countGlobalVersions.js +36 -0
- package/dist/cli/commands/globals/countGlobalVersions.js.map +1 -0
- package/dist/cli/commands/globals/findGlobal.d.ts +2 -0
- package/dist/cli/commands/globals/findGlobal.d.ts.map +1 -0
- package/dist/cli/commands/globals/findGlobal.js +42 -0
- package/dist/cli/commands/globals/findGlobal.js.map +1 -0
- package/dist/cli/commands/globals/findGlobalVersionByID.d.ts +2 -0
- package/dist/cli/commands/globals/findGlobalVersionByID.d.ts.map +1 -0
- package/dist/cli/commands/globals/findGlobalVersionByID.js +46 -0
- package/dist/cli/commands/globals/findGlobalVersionByID.js.map +1 -0
- package/dist/cli/commands/globals/findGlobalVersions.d.ts +2 -0
- package/dist/cli/commands/globals/findGlobalVersions.d.ts.map +1 -0
- package/dist/cli/commands/globals/findGlobalVersions.js +55 -0
- package/dist/cli/commands/globals/findGlobalVersions.js.map +1 -0
- package/dist/cli/commands/globals/getGlobalSchema.d.ts +2 -0
- package/dist/cli/commands/globals/getGlobalSchema.d.ts.map +1 -0
- package/dist/cli/commands/globals/getGlobalSchema.js +34 -0
- package/dist/cli/commands/globals/getGlobalSchema.js.map +1 -0
- package/dist/cli/commands/globals/restoreGlobalVersion.d.ts +2 -0
- package/dist/cli/commands/globals/restoreGlobalVersion.d.ts.map +1 -0
- package/dist/cli/commands/globals/restoreGlobalVersion.js +46 -0
- package/dist/cli/commands/globals/restoreGlobalVersion.js.map +1 -0
- package/dist/cli/commands/globals/updateGlobal.d.ts +2 -0
- package/dist/cli/commands/globals/updateGlobal.d.ts.map +1 -0
- package/dist/cli/commands/globals/updateGlobal.js +93 -0
- package/dist/cli/commands/globals/updateGlobal.js.map +1 -0
- package/dist/cli/commands/help.d.ts +2 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +42 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/info.d.ts +2 -0
- package/dist/cli/commands/info.d.ts.map +1 -0
- package/dist/cli/commands/info.js +78 -0
- package/dist/cli/commands/info.js.map +1 -0
- package/dist/cli/commands/jobs/handleSchedules.d.ts +2 -0
- package/dist/cli/commands/jobs/handleSchedules.d.ts.map +1 -0
- package/dist/cli/commands/jobs/handleSchedules.js +17 -0
- package/dist/cli/commands/jobs/handleSchedules.js.map +1 -0
- package/dist/cli/commands/jobs/run.d.ts +2 -0
- package/dist/cli/commands/jobs/run.d.ts.map +1 -0
- package/dist/cli/commands/jobs/run.js +29 -0
- package/dist/cli/commands/jobs/run.js.map +1 -0
- package/dist/cli/commands/migrate/create.d.ts +2 -0
- package/dist/cli/commands/migrate/create.d.ts.map +1 -0
- package/dist/cli/commands/migrate/create.js +44 -0
- package/dist/cli/commands/migrate/create.js.map +1 -0
- package/dist/cli/commands/migrate/down.d.ts +2 -0
- package/dist/cli/commands/migrate/down.d.ts.map +1 -0
- package/dist/cli/commands/migrate/down.js +22 -0
- package/dist/cli/commands/migrate/down.js.map +1 -0
- package/dist/cli/commands/migrate/fresh.d.ts +2 -0
- package/dist/cli/commands/migrate/fresh.d.ts.map +1 -0
- package/dist/cli/commands/migrate/fresh.js +28 -0
- package/dist/cli/commands/migrate/fresh.js.map +1 -0
- package/dist/cli/commands/migrate/initialize.d.ts +11 -0
- package/dist/cli/commands/migrate/initialize.d.ts.map +1 -0
- package/dist/cli/commands/migrate/initialize.js +17 -0
- package/dist/cli/commands/migrate/initialize.js.map +1 -0
- package/dist/cli/commands/migrate/refresh.d.ts +2 -0
- package/dist/cli/commands/migrate/refresh.d.ts.map +1 -0
- package/dist/cli/commands/migrate/refresh.js +22 -0
- package/dist/cli/commands/migrate/refresh.js.map +1 -0
- package/dist/cli/commands/migrate/reset.d.ts +2 -0
- package/dist/cli/commands/migrate/reset.d.ts.map +1 -0
- package/dist/cli/commands/migrate/reset.js +22 -0
- package/dist/cli/commands/migrate/reset.js.map +1 -0
- package/dist/cli/commands/migrate/run.d.ts +2 -0
- package/dist/cli/commands/migrate/run.d.ts.map +1 -0
- package/dist/cli/commands/migrate/run.js +28 -0
- package/dist/cli/commands/migrate/run.js.map +1 -0
- package/dist/cli/commands/migrate/status.d.ts +2 -0
- package/dist/cli/commands/migrate/status.d.ts.map +1 -0
- package/dist/cli/commands/migrate/status.js +22 -0
- package/dist/cli/commands/migrate/status.js.map +1 -0
- package/dist/cli/commands/run.d.ts +2 -0
- package/dist/cli/commands/run.d.ts.map +1 -0
- package/dist/cli/commands/run.js +45 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/defineCLICommand.d.ts +32 -0
- package/dist/cli/defineCLICommand.d.ts.map +1 -0
- package/dist/cli/defineCLICommand.js +26 -0
- package/dist/cli/defineCLICommand.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +95 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/index.spec.js +402 -0
- package/dist/cli/index.spec.js.map +1 -0
- package/dist/cli/program/createHelp.d.ts +8 -0
- package/dist/cli/program/createHelp.d.ts.map +1 -0
- package/dist/cli/program/createHelp.js +26 -0
- package/dist/cli/program/createHelp.js.map +1 -0
- package/dist/cli/program/loadCommands.d.ts +12 -0
- package/dist/cli/program/loadCommands.d.ts.map +1 -0
- package/dist/cli/program/loadCommands.js +62 -0
- package/dist/cli/program/loadCommands.js.map +1 -0
- package/dist/cli/program/normalizeHelpArguments.d.ts +12 -0
- package/dist/cli/program/normalizeHelpArguments.d.ts.map +1 -0
- package/dist/cli/program/normalizeHelpArguments.js +34 -0
- package/dist/cli/program/normalizeHelpArguments.js.map +1 -0
- package/dist/cli/program/registerCommand.d.ts +10 -0
- package/dist/cli/program/registerCommand.d.ts.map +1 -0
- package/dist/cli/program/registerCommand.js +185 -0
- package/dist/cli/program/registerCommand.js.map +1 -0
- package/dist/cli/runtime/createRuntime.d.ts +9 -0
- package/dist/cli/runtime/createRuntime.d.ts.map +1 -0
- package/dist/cli/runtime/createRuntime.js +81 -0
- package/dist/cli/runtime/createRuntime.js.map +1 -0
- package/dist/cli/runtime/getCommandInput.d.ts +17 -0
- package/dist/cli/runtime/getCommandInput.d.ts.map +1 -0
- package/dist/cli/runtime/getCommandInput.js +86 -0
- package/dist/cli/runtime/getCommandInput.js.map +1 -0
- package/dist/cli/runtime/getCommandInput.spec.js +74 -0
- package/dist/cli/runtime/getCommandInput.spec.js.map +1 -0
- package/dist/cli/runtime/invokeCommand.d.ts +23 -0
- package/dist/cli/runtime/invokeCommand.d.ts.map +1 -0
- package/dist/cli/runtime/invokeCommand.js +107 -0
- package/dist/cli/runtime/invokeCommand.js.map +1 -0
- package/dist/cli/runtime/loadEnv.d.ts.map +1 -0
- package/dist/{bin → cli/runtime}/loadEnv.js +1 -1
- package/dist/cli/runtime/loadEnv.js.map +1 -0
- package/dist/cli/runtime/output.d.ts +50 -0
- package/dist/cli/runtime/output.d.ts.map +1 -0
- package/dist/cli/runtime/output.js +125 -0
- package/dist/cli/runtime/output.js.map +1 -0
- package/dist/cli/runtime/redirectOutputToStderr.d.ts +8 -0
- package/dist/cli/runtime/redirectOutputToStderr.d.ts.map +1 -0
- package/dist/cli/runtime/redirectOutputToStderr.js +31 -0
- package/dist/cli/runtime/redirectOutputToStderr.js.map +1 -0
- package/dist/collections/config/client.d.ts +11 -5
- package/dist/collections/config/client.d.ts.map +1 -1
- package/dist/collections/config/client.js +6 -1
- package/dist/collections/config/client.js.map +1 -1
- package/dist/collections/config/defaults.d.ts +4 -4
- package/dist/collections/config/defaults.d.ts.map +1 -1
- package/dist/collections/config/defaults.js +37 -32
- package/dist/collections/config/defaults.js.map +1 -1
- package/dist/collections/config/sanitize.d.ts +4 -8
- package/dist/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +31 -21
- package/dist/collections/config/sanitize.js.map +1 -1
- package/dist/collections/config/sanitize.spec.js +363 -1
- package/dist/collections/config/sanitize.spec.js.map +1 -1
- package/dist/collections/config/sanitizeCompoundIndexes.d.ts.map +1 -1
- package/dist/collections/config/types.d.ts +56 -51
- 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/config/useAsTitle.spec.js +27 -27
- package/dist/collections/config/useAsTitle.spec.js.map +1 -1
- package/dist/collections/dataloader.d.ts +1 -1
- package/dist/collections/dataloader.d.ts.map +1 -1
- package/dist/collections/operations/count.d.ts.map +1 -1
- package/dist/collections/operations/count.js +65 -70
- package/dist/collections/operations/count.js.map +1 -1
- package/dist/collections/operations/countVersions.d.ts.map +1 -1
- package/dist/collections/operations/countVersions.js +61 -66
- package/dist/collections/operations/countVersions.js.map +1 -1
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +22 -0
- 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 +215 -129
- package/dist/collections/operations/delete.js.map +1 -1
- package/dist/collections/operations/deleteByID.d.ts.map +1 -1
- package/dist/collections/operations/deleteByID.js +1 -0
- package/dist/collections/operations/deleteByID.js.map +1 -1
- package/dist/collections/operations/docAccess.d.ts.map +1 -1
- package/dist/collections/operations/docAccess.js +19 -25
- package/dist/collections/operations/docAccess.js.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/find.js +248 -246
- package/dist/collections/operations/find.js.map +1 -1
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findByID.js +215 -220
- package/dist/collections/operations/findByID.js.map +1 -1
- package/dist/collections/operations/findDistinct.d.ts.map +1 -1
- package/dist/collections/operations/findDistinct.js +161 -159
- package/dist/collections/operations/findDistinct.js.map +1 -1
- package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/findVersionByID.js +131 -136
- package/dist/collections/operations/findVersionByID.js.map +1 -1
- package/dist/collections/operations/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/findVersions.js +152 -149
- package/dist/collections/operations/findVersions.js.map +1 -1
- package/dist/collections/operations/inputSchemas.d.ts +877 -0
- package/dist/collections/operations/inputSchemas.d.ts.map +1 -0
- package/dist/collections/operations/inputSchemas.js +217 -0
- package/dist/collections/operations/inputSchemas.js.map +1 -0
- package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/restoreVersion.js +8 -4
- package/dist/collections/operations/restoreVersion.js.map +1 -1
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +20 -1
- package/dist/collections/operations/update.js.map +1 -1
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +13 -0
- package/dist/collections/operations/updateByID.js.map +1 -1
- package/dist/collections/operations/utilities/buildAfterOperation.d.ts +1 -1
- package/dist/collections/operations/utilities/buildAfterOperation.d.ts.map +1 -1
- package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -1
- package/dist/collections/operations/utilities/sanitizeSortQuery.d.ts.map +1 -1
- package/dist/collections/operations/utilities/types.d.ts +20 -20
- package/dist/collections/operations/utilities/types.d.ts.map +1 -1
- package/dist/collections/operations/utilities/update.d.ts.map +1 -1
- package/dist/config/build.js +1 -1
- package/dist/config/build.js.map +1 -1
- package/dist/config/client.d.ts +2 -2
- 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/client.spec.js +20 -0
- package/dist/config/client.spec.js.map +1 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +95 -42
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/orderable/fractional-indexing.d.ts +23 -23
- package/dist/config/orderable/fractional-indexing.d.ts.map +1 -1
- package/dist/config/orderable/index.d.ts +1 -1
- package/dist/config/orderable/index.d.ts.map +1 -1
- package/dist/config/orderable/index.js +3 -2
- package/dist/config/orderable/index.js.map +1 -1
- package/dist/config/sanitize.d.ts +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js +42 -32
- package/dist/config/sanitize.js.map +1 -1
- package/dist/config/sanitize.spec.js +105 -0
- package/dist/config/sanitize.spec.js.map +1 -0
- package/dist/config/types.d.ts +495 -421
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/database/combineQueries.d.ts.map +1 -1
- package/dist/database/createDatabaseAdapter.d.ts +1 -1
- package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
- package/dist/database/createDatabaseAdapter.js +0 -2
- package/dist/database/createDatabaseAdapter.js.map +1 -1
- package/dist/database/isNestedRelationshipQuery.d.ts +14 -0
- package/dist/database/isNestedRelationshipQuery.d.ts.map +1 -0
- package/dist/database/isNestedRelationshipQuery.js +19 -0
- package/dist/database/isNestedRelationshipQuery.js.map +1 -0
- package/dist/database/migrations/createMigration.d.ts.map +1 -1
- package/dist/database/migrations/createMigration.js +4 -0
- package/dist/database/migrations/createMigration.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/getPredefinedMigration.js +2 -2
- package/dist/database/migrations/getPredefinedMigration.js.map +1 -1
- package/dist/database/migrations/migrate.d.ts.map +1 -1
- package/dist/database/migrations/migrate.js +9 -0
- package/dist/database/migrations/migrate.js.map +1 -1
- package/dist/database/migrations/migrateDown.d.ts +2 -2
- package/dist/database/migrations/migrateDown.d.ts.map +1 -1
- package/dist/database/migrations/migrateDown.js +12 -2
- package/dist/database/migrations/migrateDown.js.map +1 -1
- package/dist/database/migrations/migrateRefresh.d.ts +2 -2
- package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
- package/dist/database/migrations/migrateRefresh.js +10 -2
- package/dist/database/migrations/migrateRefresh.js.map +1 -1
- package/dist/database/migrations/migrateReset.d.ts +2 -2
- package/dist/database/migrations/migrateReset.d.ts.map +1 -1
- package/dist/database/migrations/migrateReset.js +11 -1
- package/dist/database/migrations/migrateReset.js.map +1 -1
- package/dist/database/migrations/migrateStatus.d.ts +2 -2
- package/dist/database/migrations/migrateStatus.d.ts.map +1 -1
- package/dist/database/migrations/migrateStatus.js +11 -6
- package/dist/database/migrations/migrateStatus.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/queryValidation/validateQueryPaths.d.ts.map +1 -1
- package/dist/database/queryValidation/validateQueryPaths.js +8 -1
- package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
- package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
- package/dist/database/queryValidation/validateSearchParams.js +21 -4
- package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
- package/dist/database/queryValidation/validateSortQuery.d.ts +23 -0
- package/dist/database/queryValidation/validateSortQuery.d.ts.map +1 -0
- package/dist/database/queryValidation/validateSortQuery.js +54 -0
- package/dist/database/queryValidation/validateSortQuery.js.map +1 -0
- package/dist/database/sanitizeJoinQuery.d.ts.map +1 -1
- package/dist/database/sanitizeJoinQuery.js +7 -0
- package/dist/database/sanitizeJoinQuery.js.map +1 -1
- package/dist/database/sanitizeWhereQuery.d.ts +1 -1
- package/dist/database/sanitizeWhereQuery.d.ts.map +1 -1
- package/dist/database/sanitizeWhereQuery.js +44 -1
- package/dist/database/sanitizeWhereQuery.js.map +1 -1
- package/dist/database/types.d.ts +37 -13
- package/dist/database/types.d.ts.map +1 -1
- package/dist/database/types.js.map +1 -1
- package/dist/duplicateDocument/index.d.ts.map +1 -1
- package/dist/duplicateDocument/index.js +1 -0
- package/dist/duplicateDocument/index.js.map +1 -1
- package/dist/email/getStringifiedToAddress.d.ts.map +1 -1
- package/dist/errors/APIError.d.ts.map +1 -1
- package/dist/errors/AuthenticationError.d.ts.map +1 -1
- package/dist/errors/DuplicateCollection.d.ts.map +1 -1
- package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
- package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
- package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
- package/dist/errors/FileRetrievalError.d.ts.map +1 -1
- package/dist/errors/FileUploadError.d.ts.map +1 -1
- package/dist/errors/Forbidden.d.ts.map +1 -1
- package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
- package/dist/errors/InvalidFieldJoin.d.ts.map +1 -1
- package/dist/errors/InvalidFieldName.d.ts.map +1 -1
- package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
- package/dist/errors/InvalidSchema.d.ts.map +1 -1
- package/dist/errors/Locked.d.ts.map +1 -1
- package/dist/errors/LockedAuth.d.ts.map +1 -1
- package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
- package/dist/errors/MissingEditorProp.d.ts.map +1 -1
- package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
- package/dist/errors/MissingFieldType.d.ts.map +1 -1
- package/dist/errors/MissingFile.d.ts.map +1 -1
- package/dist/errors/NotFound.d.ts.map +1 -1
- package/dist/errors/QueryError.d.ts.map +1 -1
- package/dist/errors/ReservedFieldName.d.ts.map +1 -1
- package/dist/errors/TimestampsRequired.d.ts.map +1 -1
- package/dist/errors/UnauthorizedError.d.ts.map +1 -1
- package/dist/errors/UnverifiedEmail.d.ts.map +1 -1
- package/dist/errors/ValidationError.d.ts.map +1 -1
- package/dist/exports/auth.d.ts +5 -0
- package/dist/exports/auth.d.ts.map +1 -0
- package/dist/exports/auth.js +6 -0
- package/dist/exports/auth.js.map +1 -0
- package/dist/exports/cli.d.ts +4 -0
- package/dist/exports/cli.d.ts.map +1 -0
- package/dist/exports/cli.js +4 -0
- package/dist/exports/cli.js.map +1 -0
- package/dist/exports/cliBuiltin.d.ts +37 -0
- package/dist/exports/cliBuiltin.d.ts.map +1 -0
- package/dist/exports/cliBuiltin.js +38 -0
- package/dist/exports/cliBuiltin.js.map +1 -0
- package/dist/exports/internal.d.ts +9 -1
- package/dist/exports/internal.d.ts.map +1 -1
- package/dist/exports/internal.js +8 -1
- package/dist/exports/internal.js.map +1 -1
- package/dist/exports/node.d.ts +2 -2
- package/dist/exports/node.d.ts.map +1 -1
- package/dist/exports/node.js +2 -2
- package/dist/exports/node.js.map +1 -1
- package/dist/exports/shared.d.ts +6 -4
- package/dist/exports/shared.d.ts.map +1 -1
- package/dist/exports/shared.js +4 -3
- package/dist/exports/shared.js.map +1 -1
- package/dist/fields/baseFields/slug/duplicateContext.d.ts +11 -0
- package/dist/fields/baseFields/slug/duplicateContext.d.ts.map +1 -0
- package/dist/fields/baseFields/slug/duplicateContext.js +21 -0
- package/dist/fields/baseFields/slug/duplicateContext.js.map +1 -0
- package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts +23 -0
- package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.d.ts.map +1 -0
- package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js +65 -0
- package/dist/fields/baseFields/slug/fillEmptyLocalizedSlugs.js.map +1 -0
- package/dist/fields/baseFields/slug/generateSlug.d.ts +19 -7
- package/dist/fields/baseFields/slug/generateSlug.d.ts.map +1 -1
- package/dist/fields/baseFields/slug/generateSlug.js +111 -74
- package/dist/fields/baseFields/slug/generateSlug.js.map +1 -1
- package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts +18 -0
- package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.d.ts.map +1 -0
- package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js +20 -0
- package/dist/fields/baseFields/slug/generateSlugBeforeDuplicate.js.map +1 -0
- package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts +23 -0
- package/dist/fields/baseFields/slug/getSlugFallbackValue.d.ts.map +1 -0
- package/dist/fields/baseFields/slug/getSlugFallbackValue.js +24 -0
- package/dist/fields/baseFields/slug/getSlugFallbackValue.js.map +1 -0
- package/dist/fields/baseFields/slug/hasValue.d.ts +3 -0
- package/dist/fields/baseFields/slug/hasValue.d.ts.map +1 -0
- package/dist/fields/baseFields/slug/hasValue.js +3 -0
- package/dist/fields/baseFields/slug/hasValue.js.map +1 -0
- package/dist/fields/baseFields/slug/types.d.ts +14 -0
- package/dist/fields/baseFields/slug/types.d.ts.map +1 -0
- package/dist/fields/baseFields/slug/types.js +6 -0
- package/dist/fields/baseFields/slug/types.js.map +1 -0
- package/dist/fields/config/client.d.ts +5 -5
- package/dist/fields/config/client.d.ts.map +1 -1
- package/dist/fields/config/client.js +3 -2
- package/dist/fields/config/client.js.map +1 -1
- package/dist/fields/config/reservedFieldNames.spec.js +18 -18
- package/dist/fields/config/reservedFieldNames.spec.js.map +1 -1
- package/dist/fields/config/sanitize.d.ts +6 -6
- package/dist/fields/config/sanitize.d.ts.map +1 -1
- package/dist/fields/config/sanitize.js +68 -19
- package/dist/fields/config/sanitize.js.map +1 -1
- package/dist/fields/config/sanitize.spec.js +105 -105
- package/dist/fields/config/sanitize.spec.js.map +1 -1
- package/dist/fields/config/sanitizeJoinField.d.ts.map +1 -1
- package/dist/fields/config/types.d.ts +37 -11
- 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/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/promise.js +1 -0
- 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 +1 -0
- 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/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 +5 -3
- package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts +10 -0
- package/dist/fields/hooks/beforeValidate/stripNullRows.d.ts.map +1 -0
- package/dist/fields/hooks/beforeValidate/stripNullRows.js +18 -0
- package/dist/fields/hooks/beforeValidate/stripNullRows.js.map +1 -0
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.js +2 -0
- package/dist/fields/hooks/beforeValidate/traverseFields.js.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/setDefaultBeforeDuplicate.js +1 -0
- package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -1
- package/dist/fields/sortableFieldTypes.d.ts.map +1 -1
- package/dist/fields/sortableFieldTypes.js +1 -0
- package/dist/fields/sortableFieldTypes.js.map +1 -1
- package/dist/fields/validations.d.ts +4 -1
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +8 -2
- package/dist/fields/validations.js.map +1 -1
- package/dist/fields/validations.spec.js +61 -37
- package/dist/fields/validations.spec.js.map +1 -1
- package/dist/globals/config/client.d.ts +5 -5
- package/dist/globals/config/client.d.ts.map +1 -1
- package/dist/globals/config/client.js.map +1 -1
- package/dist/globals/config/sanitize.d.ts +3 -7
- package/dist/globals/config/sanitize.d.ts.map +1 -1
- package/dist/globals/config/sanitize.js +26 -6
- package/dist/globals/config/sanitize.js.map +1 -1
- package/dist/globals/config/sanitize.spec.js +227 -8
- package/dist/globals/config/sanitize.spec.js.map +1 -1
- package/dist/globals/config/types.d.ts +21 -16
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/globals/config/types.js.map +1 -1
- package/dist/globals/operations/countGlobalVersions.d.ts.map +1 -1
- package/dist/globals/operations/countGlobalVersions.js +51 -55
- package/dist/globals/operations/countGlobalVersions.js.map +1 -1
- package/dist/globals/operations/docAccess.d.ts.map +1 -1
- package/dist/globals/operations/docAccess.js +19 -25
- package/dist/globals/operations/docAccess.js.map +1 -1
- package/dist/globals/operations/findOne.d.ts.map +1 -1
- package/dist/globals/operations/findOne.js +169 -174
- package/dist/globals/operations/findOne.js.map +1 -1
- package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/findVersionByID.js +104 -109
- package/dist/globals/operations/findVersionByID.js.map +1 -1
- package/dist/globals/operations/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/findVersions.js +112 -109
- package/dist/globals/operations/findVersions.js.map +1 -1
- package/dist/globals/operations/inputSchemas.d.ts +365 -0
- package/dist/globals/operations/inputSchemas.d.ts.map +1 -0
- package/dist/globals/operations/inputSchemas.js +104 -0
- package/dist/globals/operations/inputSchemas.js.map +1 -0
- package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/restoreVersion.js +1 -0
- package/dist/globals/operations/restoreVersion.js.map +1 -1
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +1 -0
- package/dist/globals/operations/update.js.map +1 -1
- package/dist/hierarchy/addHierarchyToCollection.d.ts.map +1 -1
- package/dist/hierarchy/addHierarchyToCollection.js +2 -0
- package/dist/hierarchy/addHierarchyToCollection.js.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/sanitizeHierarchyCollection.d.ts.map +1 -1
- package/dist/index.bundled.d.ts +5889 -4239
- package/dist/index.d.ts +102 -44
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +84 -64
- package/dist/index.js.map +1 -1
- package/dist/kv/adapters/DatabaseKVAdapter.d.ts.map +1 -1
- package/dist/kv/adapters/InMemoryKVAdapter.d.ts.map +1 -1
- package/dist/locked-documents/config.d.ts.map +1 -1
- package/dist/preferences/config.d.ts.map +1 -1
- package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
- package/dist/preferences/keys.d.ts +5 -5
- package/dist/preferences/keys.d.ts.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/constraints.d.ts.map +1 -1
- package/dist/query-presets/constraints.js +1 -1
- package/dist/query-presets/constraints.js.map +1 -1
- package/dist/query-presets/types.d.ts +1 -1
- package/dist/query-presets/types.d.ts.map +1 -1
- package/dist/queues/config/collection.d.ts.map +1 -1
- package/dist/queues/config/collection.js +43 -43
- package/dist/queues/config/collection.js.map +1 -1
- package/dist/queues/config/global.d.ts +5 -6
- package/dist/queues/config/global.d.ts.map +1 -1
- package/dist/queues/config/global.js +1 -1
- package/dist/queues/config/global.js.map +1 -1
- package/dist/queues/config/types/index.d.ts +31 -24
- package/dist/queues/config/types/index.d.ts.map +1 -1
- package/dist/queues/config/types/index.js.map +1 -1
- package/dist/queues/config/types/taskTypes.d.ts +4 -7
- package/dist/queues/config/types/taskTypes.d.ts.map +1 -1
- package/dist/queues/config/types/taskTypes.js.map +1 -1
- package/dist/queues/config/types/workflowJSONTypes.d.ts +10 -9
- package/dist/queues/config/types/workflowJSONTypes.d.ts.map +1 -1
- package/dist/queues/config/types/workflowJSONTypes.js.map +1 -1
- package/dist/queues/config/types/workflowTypes.d.ts +11 -58
- package/dist/queues/config/types/workflowTypes.d.ts.map +1 -1
- package/dist/queues/config/types/workflowTypes.js.map +1 -1
- package/dist/queues/endpoints/handleSchedules.d.ts.map +1 -1
- package/dist/queues/endpoints/handleSchedules.js +3 -2
- package/dist/queues/endpoints/handleSchedules.js.map +1 -1
- package/dist/queues/endpoints/run.d.ts.map +1 -1
- package/dist/queues/endpoints/run.js +2 -1
- package/dist/queues/endpoints/run.js.map +1 -1
- package/dist/queues/errors/handleTaskError.js +4 -4
- package/dist/queues/errors/handleTaskError.js.map +1 -1
- package/dist/queues/errors/handleWorkflowError.js +1 -1
- package/dist/queues/errors/handleWorkflowError.js.map +1 -1
- package/dist/queues/errors/index.d.ts +6 -0
- package/dist/queues/errors/index.d.ts.map +1 -1
- package/dist/queues/errors/index.js +5 -0
- package/dist/queues/errors/index.js.map +1 -1
- package/dist/queues/localAPI.d.ts +9 -9
- package/dist/queues/localAPI.d.ts.map +1 -1
- package/dist/queues/localAPI.js +63 -66
- package/dist/queues/localAPI.js.map +1 -1
- package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts +4 -4
- package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.d.ts.map +1 -1
- package/dist/queues/operations/handleSchedules/countRunnableOrActiveJobsForQueue.js.map +1 -1
- package/dist/queues/operations/handleSchedules/getQueuesWithSchedules.d.ts.map +1 -1
- package/dist/queues/operations/handleSchedules/index.d.ts +1 -1
- package/dist/queues/operations/handleSchedules/index.d.ts.map +1 -1
- package/dist/queues/operations/handleSchedules/index.js +1 -1
- package/dist/queues/operations/handleSchedules/index.js.map +1 -1
- package/dist/queues/operations/runJobs/heartbeat.d.ts +13 -0
- package/dist/queues/operations/runJobs/heartbeat.d.ts.map +1 -0
- package/dist/queues/operations/runJobs/heartbeat.js +66 -0
- package/dist/queues/operations/runJobs/heartbeat.js.map +1 -0
- package/dist/queues/operations/runJobs/index.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/index.js +133 -84
- package/dist/queues/operations/runJobs/index.js.map +1 -1
- package/dist/queues/operations/runJobs/runJSONJob/index.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/runJSONJob/index.js +6 -3
- package/dist/queues/operations/runJobs/runJSONJob/index.js.map +1 -1
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js +5 -5
- package/dist/queues/operations/runJobs/runJob/getRunTaskFunction.js.map +1 -1
- package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts +2 -1
- package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js +39 -8
- package/dist/queues/operations/runJobs/runJob/getUpdateJobFunction.js.map +1 -1
- package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts +1 -1
- package/dist/queues/operations/runJobs/runJob/importHandlerPath.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/runJob/importHandlerPath.js.map +1 -1
- package/dist/queues/operations/runJobs/runJob/index.d.ts.map +1 -1
- package/dist/queues/operations/runJobs/runJob/index.js +4 -4
- package/dist/queues/operations/runJobs/runJob/index.js.map +1 -1
- package/dist/queues/utilities/getCurrentDate.d.ts.map +1 -1
- package/dist/queues/utilities/getJobTaskStatus.d.ts.map +1 -1
- package/dist/queues/utilities/updateJob.d.ts.map +1 -1
- package/dist/queues/utilities/updateJob.js +3 -0
- package/dist/queues/utilities/updateJob.js.map +1 -1
- package/dist/translations/getLocalI18n.d.ts.map +1 -1
- package/dist/types/constants.d.ts +23 -2
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/constants.js +23 -0
- package/dist/types/constants.js.map +1 -1
- package/dist/types/index.d.ts +4 -7
- 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/checkFileAccess.js +1 -0
- package/dist/uploads/checkFileAccess.js.map +1 -1
- package/dist/uploads/checkFileRestrictions.d.ts +1 -1
- package/dist/uploads/checkFileRestrictions.d.ts.map +1 -1
- package/dist/uploads/checkFileRestrictions.js +15 -1
- package/dist/uploads/checkFileRestrictions.js.map +1 -1
- package/dist/uploads/cropImage.d.ts +1 -1
- package/dist/uploads/cropImage.d.ts.map +1 -1
- package/dist/uploads/cropImage.js +2 -5
- package/dist/uploads/cropImage.js.map +1 -1
- package/dist/uploads/cropImage.spec.js +71 -0
- package/dist/uploads/cropImage.spec.js.map +1 -0
- package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
- package/dist/uploads/downloadFileToBuffer.d.ts +11 -0
- package/dist/uploads/downloadFileToBuffer.d.ts.map +1 -0
- package/dist/uploads/downloadFileToBuffer.js +41 -0
- package/dist/uploads/downloadFileToBuffer.js.map +1 -0
- package/dist/uploads/endpoints/index.js +2 -2
- package/dist/uploads/endpoints/index.js.map +1 -1
- package/dist/uploads/endpoints/pasteURL.d.ts +3 -0
- package/dist/uploads/endpoints/pasteURL.d.ts.map +1 -0
- package/dist/uploads/endpoints/{getFileFromURL.js → pasteURL.js} +19 -55
- package/dist/uploads/endpoints/pasteURL.js.map +1 -0
- package/dist/uploads/endpoints/uploadInstructions.d.ts +15 -0
- package/dist/uploads/endpoints/uploadInstructions.d.ts.map +1 -0
- package/dist/uploads/endpoints/uploadInstructions.js +84 -0
- package/dist/uploads/endpoints/uploadInstructions.js.map +1 -0
- package/dist/uploads/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -1
- package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js +1 -2
- package/dist/uploads/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
- package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js +28 -0
- package/dist/uploads/fetchAPI-multipart/isEligibleRequest.spec.js.map +1 -1
- package/dist/uploads/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
- package/dist/uploads/fetchAPI-multipart/processMultipart.js +4 -0
- package/dist/uploads/fetchAPI-multipart/processMultipart.js.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/fetchWithRedirects.d.ts +17 -0
- package/dist/uploads/fetchWithRedirects.d.ts.map +1 -0
- package/dist/uploads/fetchWithRedirects.js +39 -0
- package/dist/uploads/fetchWithRedirects.js.map +1 -0
- package/dist/uploads/fileExists.d.ts.map +1 -1
- package/dist/uploads/generateFileData.d.ts +9 -0
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +62 -48
- package/dist/uploads/generateFileData.js.map +1 -1
- package/dist/uploads/generateFileData.spec.js +207 -0
- package/dist/uploads/generateFileData.spec.js.map +1 -0
- package/dist/uploads/generateFileData.tempFileBuffering.spec.js +81 -0
- package/dist/uploads/generateFileData.tempFileBuffering.spec.js.map +1 -0
- package/dist/uploads/getBaseFields.d.ts.map +1 -1
- package/dist/uploads/getFileByPath.d.ts +1 -1
- package/dist/uploads/getFileByPath.d.ts.map +1 -1
- package/dist/uploads/getFileContentRequirement.d.ts +32 -0
- package/dist/uploads/getFileContentRequirement.d.ts.map +1 -0
- package/dist/uploads/getFileContentRequirement.js +40 -0
- package/dist/uploads/getFileContentRequirement.js.map +1 -0
- package/dist/uploads/getFileContentRequirement.spec.js +125 -0
- package/dist/uploads/getFileContentRequirement.spec.js.map +1 -0
- package/dist/uploads/getFileFromUploadInstructions.d.ts +8 -0
- package/dist/uploads/getFileFromUploadInstructions.d.ts.map +1 -0
- package/dist/uploads/getFileFromUploadInstructions.js +232 -0
- package/dist/uploads/getFileFromUploadInstructions.js.map +1 -0
- package/dist/uploads/getFileFromUploadInstructions.spec.js +387 -0
- package/dist/uploads/getFileFromUploadInstructions.spec.js.map +1 -0
- package/dist/uploads/getFileTypeFallback.d.ts.map +1 -1
- package/dist/uploads/getImageSize.d.ts +12 -1
- package/dist/uploads/getImageSize.d.ts.map +1 -1
- package/dist/uploads/getImageSize.js +20 -18
- package/dist/uploads/getImageSize.js.map +1 -1
- package/dist/uploads/getImageSize.spec.js +298 -0
- package/dist/uploads/getImageSize.spec.js.map +1 -0
- 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/createImageSizes.d.ts.map +1 -1
- package/dist/uploads/image-resizing/createImageSizes.js +2 -5
- package/dist/uploads/image-resizing/createImageSizes.js.map +1 -1
- package/dist/uploads/image-resizing/createImageSizes.spec.js +80 -0
- package/dist/uploads/image-resizing/createImageSizes.spec.js.map +1 -0
- package/dist/uploads/image-resizing/generateImageSizeFilename.d.ts.map +1 -1
- package/dist/uploads/image-resizing/getImageResizeAction.d.ts +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/isAnimatedImage.d.ts +8 -0
- package/dist/uploads/isAnimatedImage.d.ts.map +1 -0
- package/dist/uploads/isAnimatedImage.js +22 -0
- package/dist/uploads/isAnimatedImage.js.map +1 -0
- package/dist/uploads/isAnimatedImage.spec.js +19 -0
- package/dist/uploads/isAnimatedImage.spec.js.map +1 -0
- package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
- package/dist/uploads/probeImageSize.d.ts +39 -0
- package/dist/uploads/probeImageSize.d.ts.map +1 -0
- package/dist/uploads/probeImageSize.js +374 -0
- package/dist/uploads/probeImageSize.js.map +1 -0
- package/dist/uploads/probeImageSize.spec.js +366 -0
- package/dist/uploads/probeImageSize.spec.js.map +1 -0
- package/dist/uploads/resolveURLUploadInput.d.ts +25 -0
- package/dist/uploads/resolveURLUploadInput.d.ts.map +1 -0
- package/dist/uploads/resolveURLUploadInput.js +53 -0
- package/dist/uploads/resolveURLUploadInput.js.map +1 -0
- package/dist/uploads/safeFetch.d.ts.map +1 -1
- package/dist/uploads/saveBufferToFile.d.ts.map +1 -1
- package/dist/uploads/stagedUpload.d.ts +27 -0
- package/dist/uploads/stagedUpload.d.ts.map +1 -0
- package/dist/uploads/stagedUpload.js +197 -0
- package/dist/uploads/stagedUpload.js.map +1 -0
- package/dist/uploads/types.d.ts +91 -7
- package/dist/uploads/types.d.ts.map +1 -1
- package/dist/uploads/types.js.map +1 -1
- package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
- package/dist/uploads/unlinkTempFiles.js +6 -2
- package/dist/uploads/unlinkTempFiles.js.map +1 -1
- package/dist/uploads/unlinkTempFiles.spec.js +71 -0
- package/dist/uploads/unlinkTempFiles.spec.js.map +1 -0
- package/dist/uploads/uploadFiles.d.ts.map +1 -1
- package/dist/uploads/uploadFiles.js +7 -2
- package/dist/uploads/uploadFiles.js.map +1 -1
- package/dist/uploads/uploadFiles.spec.js +44 -0
- package/dist/uploads/uploadFiles.spec.js.map +1 -0
- package/dist/uploads/validateUploadURL.d.ts +13 -0
- package/dist/uploads/validateUploadURL.d.ts.map +1 -0
- package/dist/uploads/validateUploadURL.js +37 -0
- package/dist/uploads/validateUploadURL.js.map +1 -0
- package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
- package/dist/utilities/addDataAndFileToRequest.js +12 -45
- 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/appendNonTrashedFilter.d.ts +1 -1
- package/dist/utilities/appendNonTrashedFilter.d.ts.map +1 -1
- package/dist/utilities/appendNonTrashedFilter.js.map +1 -1
- package/dist/utilities/appendUploadSelectFields.d.ts.map +1 -1
- package/dist/utilities/canAccessAdmin.d.ts.map +1 -1
- package/dist/utilities/canAccessAdmin.js +1 -0
- package/dist/utilities/canAccessAdmin.js.map +1 -1
- package/dist/utilities/checkDocumentLockStatus.d.ts +19 -0
- package/dist/utilities/checkDocumentLockStatus.d.ts.map +1 -1
- package/dist/utilities/checkDocumentLockStatus.js +74 -0
- package/dist/utilities/checkDocumentLockStatus.js.map +1 -1
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +3 -2
- package/dist/utilities/configToJSONSchema.js.map +1 -1
- package/dist/utilities/configToJSONSchema.spec.js +68 -31
- package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
- package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
- package/dist/utilities/deepCopyObject.d.ts.map +1 -1
- package/dist/utilities/dependencies/resolveFrom.d.ts.map +1 -1
- package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts +30 -0
- package/dist/utilities/entityInputSchema/filterFieldsByAccess.d.ts.map +1 -0
- package/dist/utilities/entityInputSchema/filterFieldsByAccess.js +71 -0
- package/dist/utilities/entityInputSchema/filterFieldsByAccess.js.map +1 -0
- package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts +13 -0
- package/dist/utilities/entityInputSchema/getEntityInputSchema.d.ts.map +1 -0
- package/dist/utilities/entityInputSchema/getEntityInputSchema.js +66 -0
- package/dist/utilities/entityInputSchema/getEntityInputSchema.js.map +1 -0
- package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts +10 -0
- package/dist/utilities/entityInputSchema/sanitizeEntitySchema.d.ts.map +1 -0
- package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js +384 -0
- package/dist/utilities/entityInputSchema/sanitizeEntitySchema.js.map +1 -0
- package/dist/utilities/entityInputSchema/sanitizeEntitySchema.spec.js +133 -0
- package/dist/utilities/entityInputSchema/sanitizeEntitySchema.spec.js.map +1 -0
- package/dist/utilities/entityInputSchema/types.d.ts +16 -0
- package/dist/utilities/entityInputSchema/types.d.ts.map +1 -0
- package/dist/utilities/entityInputSchema/types.js +3 -0
- package/dist/utilities/entityInputSchema/types.js.map +1 -0
- package/dist/utilities/entityInputSchema/validateEntityData.d.ts +13 -0
- package/dist/utilities/entityInputSchema/validateEntityData.d.ts.map +1 -0
- package/dist/utilities/entityInputSchema/validateEntityData.js +138 -0
- package/dist/utilities/entityInputSchema/validateEntityData.js.map +1 -0
- package/dist/utilities/escapeRegExp.d.ts.map +1 -1
- package/dist/utilities/extractID.d.ts.map +1 -1
- package/dist/utilities/fieldValueExists.d.ts +29 -0
- package/dist/utilities/fieldValueExists.d.ts.map +1 -0
- package/dist/utilities/fieldValueExists.js +37 -0
- package/dist/utilities/fieldValueExists.js.map +1 -0
- package/dist/utilities/flattenAllFields.d.ts.map +1 -1
- package/dist/utilities/formatAdminURL.d.ts.map +1 -1
- package/dist/utilities/formatErrors.d.ts.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 +1 -0
- package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
- package/dist/utilities/getFieldByPath.d.ts.map +1 -1
- package/dist/utilities/getFieldPermissions.d.ts.map +1 -1
- package/dist/utilities/getNextVersion.d.ts +7 -0
- package/dist/utilities/getNextVersion.d.ts.map +1 -0
- package/dist/utilities/getNextVersion.js +20 -0
- package/dist/utilities/getNextVersion.js.map +1 -0
- package/dist/utilities/getNextVersion.spec.js +16 -0
- package/dist/utilities/getNextVersion.spec.js.map +1 -0
- package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
- package/dist/utilities/getRequestEntity.d.ts.map +1 -1
- package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
- package/dist/utilities/getRequestOrigin.d.ts +2 -2
- package/dist/utilities/getRequestOrigin.d.ts.map +1 -1
- package/dist/utilities/getRequestOrigin.js.map +1 -1
- package/dist/utilities/getSafeRedirect.d.ts.map +1 -1
- package/dist/utilities/getSafeRedirect.js +16 -9
- package/dist/utilities/getSafeRedirect.js.map +1 -1
- package/dist/utilities/getSafeRedirect.spec.js +96 -2
- package/dist/utilities/getSafeRedirect.spec.js.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/getUniqueFieldValue.d.ts +28 -0
- package/dist/utilities/getUniqueFieldValue.d.ts.map +1 -0
- package/dist/utilities/getUniqueFieldValue.js +27 -0
- package/dist/utilities/getUniqueFieldValue.js.map +1 -0
- package/dist/utilities/getVersionsConfig.d.ts +1 -1
- package/dist/utilities/getVersionsConfig.d.ts.map +1 -1
- package/dist/utilities/getVirtualFieldNames.d.ts +14 -0
- package/dist/utilities/getVirtualFieldNames.d.ts.map +1 -0
- package/dist/utilities/getVirtualFieldNames.js +35 -0
- package/dist/utilities/getVirtualFieldNames.js.map +1 -0
- package/dist/utilities/handleEndpoints.d.ts.map +1 -1
- package/dist/utilities/headersWithCors.d.ts.map +1 -1
- package/dist/utilities/headersWithCors.js +1 -1
- package/dist/utilities/headersWithCors.js.map +1 -1
- package/dist/utilities/isEntityHidden.d.ts +2 -2
- package/dist/utilities/isEntityHidden.d.ts.map +1 -1
- package/dist/utilities/isURLAllowed.d.ts.map +1 -1
- package/dist/utilities/isURLAllowed.js +9 -3
- package/dist/utilities/isURLAllowed.js.map +1 -1
- package/dist/utilities/isURLAllowed.spec.js +78 -0
- package/dist/utilities/isURLAllowed.spec.js.map +1 -0
- package/dist/utilities/isValidID.d.ts +1 -1
- package/dist/utilities/isValidID.d.ts.map +1 -1
- package/dist/utilities/killTransaction.d.ts +7 -0
- package/dist/utilities/killTransaction.d.ts.map +1 -1
- package/dist/utilities/killTransaction.js +7 -0
- package/dist/utilities/killTransaction.js.map +1 -1
- package/dist/utilities/logError.d.ts.map +1 -1
- package/dist/utilities/logError.js +5 -2
- package/dist/utilities/logError.js.map +1 -1
- package/dist/utilities/logger.d.ts +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/miniChalk.d.ts.map +1 -1
- package/dist/utilities/nextJsDevReloadStrategy.d.ts +7 -0
- package/dist/utilities/nextJsDevReloadStrategy.d.ts.map +1 -0
- package/dist/utilities/nextJsDevReloadStrategy.js +59 -0
- package/dist/utilities/nextJsDevReloadStrategy.js.map +1 -0
- package/dist/utilities/nextJsDevReloadStrategy.spec.js +123 -0
- package/dist/utilities/nextJsDevReloadStrategy.spec.js.map +1 -0
- package/dist/utilities/optionsAreEqual.d.ts.map +1 -1
- package/dist/utilities/parseBooleanString.d.ts.map +1 -1
- package/dist/utilities/parseCookies.d.ts +1 -1
- package/dist/utilities/parseCookies.d.ts.map +1 -1
- package/dist/utilities/parseDocumentID.d.ts +4 -1
- package/dist/utilities/parseDocumentID.d.ts.map +1 -1
- package/dist/utilities/parseDocumentID.js +7 -1
- package/dist/utilities/parseDocumentID.js.map +1 -1
- package/dist/utilities/parseParams/index.d.ts.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/sharedInputSchemas.d.ts +52 -0
- package/dist/utilities/sharedInputSchemas.d.ts.map +1 -0
- package/dist/utilities/sharedInputSchemas.js +101 -0
- package/dist/utilities/sharedInputSchemas.js.map +1 -0
- package/dist/utilities/slugify.d.ts.map +1 -1
- package/dist/utilities/stripUnselectedFields.d.ts.map +1 -1
- package/dist/utilities/telemetry/conf/index.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.js +2 -3
- package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
- package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/serverInit.js +2 -3
- package/dist/utilities/telemetry/events/serverInit.js.map +1 -1
- package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts +4 -0
- package/dist/utilities/telemetry/featureInfo/getFeatureInfo.d.ts.map +1 -0
- package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js +261 -0
- package/dist/utilities/telemetry/featureInfo/getFeatureInfo.js.map +1 -0
- package/dist/utilities/telemetry/featureInfo/getFeatureInfo.spec.js +117 -0
- package/dist/utilities/telemetry/featureInfo/getFeatureInfo.spec.js.map +1 -0
- package/dist/utilities/telemetry/featureInfo/types.d.ts +63 -0
- package/dist/utilities/telemetry/featureInfo/types.d.ts.map +1 -0
- package/dist/utilities/telemetry/featureInfo/types.js +3 -0
- package/dist/utilities/telemetry/featureInfo/types.js.map +1 -0
- package/dist/utilities/telemetry/getProjectContext.d.ts +16 -0
- package/dist/utilities/telemetry/getProjectContext.d.ts.map +1 -0
- package/dist/utilities/telemetry/getProjectContext.js +43 -0
- package/dist/utilities/telemetry/getProjectContext.js.map +1 -0
- package/dist/utilities/telemetry/index.d.ts +21 -5
- package/dist/utilities/telemetry/index.d.ts.map +1 -1
- package/dist/utilities/telemetry/index.js +26 -1
- package/dist/utilities/telemetry/index.js.map +1 -1
- package/dist/utilities/telemetry/index.spec.js +43 -0
- package/dist/utilities/telemetry/index.spec.js.map +1 -0
- 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/transformPointDataToPayload.d.ts +7 -0
- package/dist/utilities/transformPointDataToPayload.d.ts.map +1 -0
- package/dist/utilities/transformPointDataToPayload.js +28 -0
- package/dist/utilities/transformPointDataToPayload.js.map +1 -0
- package/dist/utilities/transformWhereQuery.d.ts.map +1 -1
- package/dist/utilities/traverseFields.d.ts.map +1 -1
- package/dist/utilities/traverseFields.js +20 -22
- package/dist/utilities/traverseFields.js.map +1 -1
- package/dist/utilities/traverseFields.spec.js +112 -0
- package/dist/utilities/traverseFields.spec.js.map +1 -1
- package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -1
- package/dist/utilities/unflatten.d.ts.map +1 -1
- package/dist/utilities/unflattenData.d.ts +3 -0
- package/dist/utilities/unflattenData.d.ts.map +1 -0
- package/dist/utilities/unflattenData.js +14 -0
- package/dist/utilities/unflattenData.js.map +1 -0
- 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/utilities/zod.d.ts +5 -0
- package/dist/utilities/zod.d.ts.map +1 -0
- package/dist/utilities/zod.js +21 -0
- package/dist/utilities/zod.js.map +1 -0
- package/dist/versions/baseFields.d.ts.map +1 -1
- package/dist/versions/buildCollectionFields.d.ts.map +1 -1
- package/dist/versions/buildGlobalFields.d.ts.map +1 -1
- package/dist/versions/buildVersionCompoundIndexes.d.ts.map +1 -1
- package/dist/versions/defaults.d.ts.map +1 -1
- package/dist/versions/deleteCollectionVersions.d.ts +11 -1
- package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
- package/dist/versions/deleteCollectionVersions.js +10 -3
- package/dist/versions/deleteCollectionVersions.js.map +1 -1
- package/dist/versions/deleteScheduledPublishJobs.d.ts +5 -1
- package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
- package/dist/versions/deleteScheduledPublishJobs.js +11 -5
- package/dist/versions/deleteScheduledPublishJobs.js.map +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.js +1 -3
- package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.spec.js +28 -0
- package/dist/versions/drafts/appendVersionToQueryKey.spec.js.map +1 -0
- 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/payloadPackageList.d.ts.map +1 -1
- package/dist/versions/payloadPackageList.js +0 -1
- package/dist/versions/payloadPackageList.js.map +1 -1
- package/dist/versions/schedule/job.d.ts.map +1 -1
- package/dist/versions/schedule/job.js +4 -1
- package/dist/versions/schedule/job.js.map +1 -1
- package/package.json +24 -7
- package/skills/payload/SKILL.md +526 -0
- package/skills/payload/reference/ACCESS-CONTROL-ADVANCED.md +704 -0
- package/skills/payload/reference/ACCESS-CONTROL.md +696 -0
- package/skills/payload/reference/ADAPTERS.md +305 -0
- package/skills/payload/reference/ADVANCED.md +386 -0
- package/skills/payload/reference/COLLECTIONS.md +333 -0
- package/skills/payload/reference/ENDPOINTS.md +634 -0
- package/skills/payload/reference/FIELD-TYPE-GUARDS.md +553 -0
- package/skills/payload/reference/FIELDS.md +745 -0
- package/skills/payload/reference/HOOKS.md +186 -0
- package/skills/payload/reference/PLUGIN-DEVELOPMENT.md +1436 -0
- package/skills/payload/reference/QUERIES.md +274 -0
- package/dist/bin/build.d.ts +0 -25
- package/dist/bin/build.d.ts.map +0 -1
- package/dist/bin/build.js +0 -80
- package/dist/bin/build.js.map +0 -1
- package/dist/bin/build.spec.js +0 -170
- package/dist/bin/build.spec.js.map +0 -1
- package/dist/bin/generateImportMap/generateImportMap.spec.js.map +0 -1
- package/dist/bin/generateImportMap/index.d.ts.map +0 -1
- package/dist/bin/generateImportMap/index.js.map +0 -1
- package/dist/bin/generateImportMap/iterateCollections.d.ts.map +0 -1
- package/dist/bin/generateImportMap/iterateCollections.js.map +0 -1
- package/dist/bin/generateImportMap/iterateConfig.d.ts.map +0 -1
- package/dist/bin/generateImportMap/iterateConfig.js.map +0 -1
- package/dist/bin/generateImportMap/iterateFields.d.ts.map +0 -1
- package/dist/bin/generateImportMap/iterateFields.js.map +0 -1
- package/dist/bin/generateImportMap/iterateGlobals.d.ts.map +0 -1
- package/dist/bin/generateImportMap/iterateGlobals.js.map +0 -1
- package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.d.ts.map +0 -1
- package/dist/bin/generateImportMap/utilities/addPayloadComponentToImportMap.js.map +0 -1
- package/dist/bin/generateImportMap/utilities/getFromImportMap.d.ts.map +0 -1
- package/dist/bin/generateImportMap/utilities/getFromImportMap.js.map +0 -1
- package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts.map +0 -1
- package/dist/bin/generateImportMap/utilities/getImportMapToBaseDirPath.js.map +0 -1
- package/dist/bin/generateImportMap/utilities/parsePayloadComponent.d.ts.map +0 -1
- package/dist/bin/generateImportMap/utilities/parsePayloadComponent.js.map +0 -1
- package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.d.ts.map +0 -1
- package/dist/bin/generateImportMap/utilities/resolveImportMapFilePath.js.map +0 -1
- package/dist/bin/generateTypes.d.ts +0 -6
- package/dist/bin/generateTypes.d.ts.map +0 -1
- package/dist/bin/generateTypes.js.map +0 -1
- package/dist/bin/index.d.ts +0 -2
- package/dist/bin/index.d.ts.map +0 -1
- package/dist/bin/index.js +0 -200
- package/dist/bin/index.js.map +0 -1
- package/dist/bin/info.d.ts +0 -2
- package/dist/bin/info.d.ts.map +0 -1
- package/dist/bin/info.js +0 -56
- package/dist/bin/info.js.map +0 -1
- package/dist/bin/loadEnv.d.ts.map +0 -1
- package/dist/bin/loadEnv.js.map +0 -1
- package/dist/bin/migrate.d.ts +0 -15
- package/dist/bin/migrate.d.ts.map +0 -1
- package/dist/bin/migrate.js +0 -102
- package/dist/bin/migrate.js.map +0 -1
- package/dist/database/defaultUpdateJobs.d.ts +0 -3
- package/dist/database/defaultUpdateJobs.d.ts.map +0 -1
- package/dist/database/defaultUpdateJobs.js +0 -41
- package/dist/database/defaultUpdateJobs.js.map +0 -1
- package/dist/fields/baseFields/slug/countVersions.d.ts +0 -13
- package/dist/fields/baseFields/slug/countVersions.d.ts.map +0 -1
- package/dist/fields/baseFields/slug/countVersions.js +0 -29
- package/dist/fields/baseFields/slug/countVersions.js.map +0 -1
- package/dist/fields/baseFields/slug/index.d.ts +0 -89
- package/dist/fields/baseFields/slug/index.d.ts.map +0 -1
- package/dist/fields/baseFields/slug/index.js +0 -81
- package/dist/fields/baseFields/slug/index.js.map +0 -1
- package/dist/uploads/endpoints/getFileFromURL.d.ts +0 -3
- package/dist/uploads/endpoints/getFileFromURL.d.ts.map +0 -1
- package/dist/uploads/endpoints/getFileFromURL.js.map +0 -1
- package/dist/uploads/getExternalFile.d.ts +0 -10
- package/dist/uploads/getExternalFile.d.ts.map +0 -1
- package/dist/uploads/getExternalFile.js +0 -73
- package/dist/uploads/getExternalFile.js.map +0 -1
- package/dist/uploads/tempFile.d.ts +0 -7
- package/dist/uploads/tempFile.d.ts.map +0 -1
- package/dist/uploads/tempFile.js +0 -39
- package/dist/uploads/tempFile.js.map +0 -1
- /package/dist/{bin → cli/commands}/generateImportMap/generateImportMap.spec.js +0 -0
- /package/dist/{bin → cli/commands}/generateImportMap/iterateCollections.js +0 -0
- /package/dist/{bin → cli/commands}/generateImportMap/iterateFields.js +0 -0
- /package/dist/{bin → cli/commands}/generateImportMap/iterateGlobals.js +0 -0
- /package/dist/{bin → cli/commands}/generateImportMap/utilities/addPayloadComponentToImportMap.js +0 -0
- /package/dist/{bin → cli/commands}/generateImportMap/utilities/getFromImportMap.js +0 -0
- /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.d.ts +0 -0
- /package/dist/{bin → cli/commands}/generateImportMap/utilities/getImportMapToBaseDirPath.js +0 -0
- /package/dist/{bin → cli/commands}/generateImportMap/utilities/parsePayloadComponent.js +0 -0
- /package/dist/{bin → cli/commands}/generateImportMap/utilities/resolveImportMapFilePath.d.ts +0 -0
- /package/dist/{bin → cli/runtime}/loadEnv.d.ts +0 -0
package/dist/config/sanitize.js
CHANGED
|
@@ -13,6 +13,7 @@ import { getPreferencesCollection, preferencesCollectionSlug } from '../preferen
|
|
|
13
13
|
import { getQueryPresetsConfig, queryPresetsCollectionSlug } from '../query-presets/config.js';
|
|
14
14
|
import { getDefaultJobsCollection, jobsCollectionSlug } from '../queues/config/collection.js';
|
|
15
15
|
import { getJobStatsGlobal } from '../queues/config/global.js';
|
|
16
|
+
import { stagedUploadEndpoints, uploadInstructionsEndpoint } from '../uploads/endpoints/uploadInstructions.js';
|
|
16
17
|
import { flattenAllFields, flattenBlock } from '../utilities/flattenAllFields.js';
|
|
17
18
|
import { hasScheduledPublishEnabled } from '../utilities/getVersionsConfig.js';
|
|
18
19
|
import { validateTimezones } from '../utilities/validateTimezones.js';
|
|
@@ -66,7 +67,7 @@ const sanitizeAdminConfig = (configToSanitize)=>{
|
|
|
66
67
|
});
|
|
67
68
|
return sanitizedConfig;
|
|
68
69
|
};
|
|
69
|
-
const addDefaultDashboardWidgets =
|
|
70
|
+
const addDefaultDashboardWidgets = ({ config, richTextSanitizers, validRelationships })=>{
|
|
70
71
|
const collectionQueryFields = [
|
|
71
72
|
{
|
|
72
73
|
name: 'title',
|
|
@@ -167,12 +168,12 @@ const addDefaultDashboardWidgets = async ({ config, richTextSanitizationPromises
|
|
|
167
168
|
dashboard.widgets.push({
|
|
168
169
|
slug: 'collection-query',
|
|
169
170
|
Component: '@payloadcms/ui/rsc#CollectionQueryWidget',
|
|
170
|
-
fields:
|
|
171
|
+
fields: sanitizeFields({
|
|
171
172
|
config: config,
|
|
172
173
|
existingFieldNames: new Set(),
|
|
173
174
|
fields: collectionQueryFields,
|
|
174
175
|
parentIsLocalized: false,
|
|
175
|
-
|
|
176
|
+
richTextSanitizers,
|
|
176
177
|
validRelationships
|
|
177
178
|
}),
|
|
178
179
|
minWidth: 'x-small'
|
|
@@ -180,12 +181,12 @@ const addDefaultDashboardWidgets = async ({ config, richTextSanitizationPromises
|
|
|
180
181
|
dashboard.widgets.push({
|
|
181
182
|
slug: 'activity',
|
|
182
183
|
Component: '@payloadcms/ui/rsc#RecentlyViewedWidget',
|
|
183
|
-
fields:
|
|
184
|
+
fields: sanitizeFields({
|
|
184
185
|
config: config,
|
|
185
186
|
existingFieldNames: new Set(),
|
|
186
187
|
fields: recentlyViewedFields,
|
|
187
188
|
parentIsLocalized: false,
|
|
188
|
-
|
|
189
|
+
richTextSanitizers,
|
|
189
190
|
validRelationships
|
|
190
191
|
}),
|
|
191
192
|
label: ({ t })=>t('dashboard:widgetRecentlyViewedTitle'),
|
|
@@ -195,19 +196,30 @@ const addDefaultDashboardWidgets = async ({ config, richTextSanitizationPromises
|
|
|
195
196
|
{
|
|
196
197
|
widgetSlug: 'collections',
|
|
197
198
|
width: 'full'
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
widgetSlug: 'activity',
|
|
202
|
+
width: 'small'
|
|
198
203
|
}
|
|
199
204
|
];
|
|
200
205
|
};
|
|
201
|
-
export const sanitizeConfig =
|
|
206
|
+
export const sanitizeConfig = (incomingConfig)=>{
|
|
202
207
|
const configWithDefaults = addDefaultsToConfig(incomingConfig);
|
|
208
|
+
const { duration, safetyBuffer } = configWithDefaults.jobs.processingLease;
|
|
209
|
+
if (!(safetyBuffer >= 0 && safetyBuffer < duration)) {
|
|
210
|
+
throw new InvalidConfiguration('`jobs.processingLease.safetyBuffer` must be non-negative and less than `jobs.processingLease.duration`.');
|
|
211
|
+
}
|
|
203
212
|
const config = sanitizeAdminConfig(configWithDefaults);
|
|
204
213
|
if (!config.endpoints) {
|
|
205
214
|
config.endpoints = [];
|
|
206
215
|
}
|
|
216
|
+
if (configWithDefaults.collections?.some(({ upload })=>upload)) {
|
|
217
|
+
config.endpoints.push(uploadInstructionsEndpoint, ...stagedUploadEndpoints);
|
|
218
|
+
}
|
|
207
219
|
for (const endpoint of authRootEndpoints){
|
|
208
220
|
config.endpoints.push(endpoint);
|
|
209
221
|
}
|
|
210
|
-
if (config.localization
|
|
222
|
+
if (config.localization) {
|
|
211
223
|
// clone localization config so to not break everything
|
|
212
224
|
const firstLocale = config.localization.locales[0];
|
|
213
225
|
if (typeof firstLocale === 'string') {
|
|
@@ -247,7 +259,7 @@ export const sanitizeConfig = async (incomingConfig)=>{
|
|
|
247
259
|
i18nConfig.translations = incomingConfig.i18n?.translations || i18nConfig.translations;
|
|
248
260
|
}
|
|
249
261
|
config.i18n = i18nConfig;
|
|
250
|
-
const
|
|
262
|
+
const richTextSanitizers = [];
|
|
251
263
|
const schedulePublishCollections = [];
|
|
252
264
|
const queryPresetsCollections = [];
|
|
253
265
|
const schedulePublishGlobals = [];
|
|
@@ -261,12 +273,12 @@ export const sanitizeConfig = async (incomingConfig)=>{
|
|
|
261
273
|
const dashboardWidgets = config.admin?.dashboard?.widgets ?? [];
|
|
262
274
|
for (const widget of dashboardWidgets){
|
|
263
275
|
if (widget.fields?.length) {
|
|
264
|
-
widget.fields =
|
|
276
|
+
widget.fields = sanitizeFields({
|
|
265
277
|
config: config,
|
|
266
278
|
existingFieldNames: new Set(),
|
|
267
279
|
fields: widget.fields,
|
|
268
280
|
parentIsLocalized: false,
|
|
269
|
-
|
|
281
|
+
richTextSanitizers,
|
|
270
282
|
validRelationships
|
|
271
283
|
});
|
|
272
284
|
}
|
|
@@ -284,12 +296,12 @@ export const sanitizeConfig = async (incomingConfig)=>{
|
|
|
284
296
|
sanitizedBlock._sanitized = true;
|
|
285
297
|
sanitizedBlock.fields = sanitizedBlock.fields.concat(baseBlockFields);
|
|
286
298
|
sanitizedBlock.labels = !sanitizedBlock.labels ? formatLabels(sanitizedBlock.slug) : sanitizedBlock.labels;
|
|
287
|
-
sanitizedBlock.fields =
|
|
299
|
+
sanitizedBlock.fields = sanitizeFields({
|
|
288
300
|
config: config,
|
|
289
301
|
existingFieldNames: new Set(),
|
|
290
302
|
fields: sanitizedBlock.fields,
|
|
291
303
|
parentIsLocalized: false,
|
|
292
|
-
|
|
304
|
+
richTextSanitizers,
|
|
293
305
|
validRelationships
|
|
294
306
|
});
|
|
295
307
|
const flattenedSanitizedBlock = flattenBlock({
|
|
@@ -315,7 +327,7 @@ export const sanitizeConfig = async (incomingConfig)=>{
|
|
|
315
327
|
validRelationships.push(queryPresetsCollectionSlug);
|
|
316
328
|
}
|
|
317
329
|
}
|
|
318
|
-
config.collections[i] =
|
|
330
|
+
config.collections[i] = sanitizeCollection(config, config.collections[i], richTextSanitizers, validRelationships, orderableJoins);
|
|
319
331
|
}
|
|
320
332
|
// Process orderable features after all collections are sanitized
|
|
321
333
|
const fieldsToAdd = new Map();
|
|
@@ -347,7 +359,7 @@ export const sanitizeConfig = async (incomingConfig)=>{
|
|
|
347
359
|
}
|
|
348
360
|
// Add fields, hooks, and update flattenedFields
|
|
349
361
|
for (const [collection, orderableFields] of fieldsToAdd){
|
|
350
|
-
|
|
362
|
+
addOrderableFieldsAndHook(collection, config, orderableFields, joinFieldPathsByCollection);
|
|
351
363
|
// Regenerate flattenedFields since we added new fields
|
|
352
364
|
collection.flattenedFields = flattenAllFields({
|
|
353
365
|
fields: collection.fields
|
|
@@ -362,7 +374,7 @@ export const sanitizeConfig = async (incomingConfig)=>{
|
|
|
362
374
|
if (hasScheduledPublishEnabled(config.globals[i])) {
|
|
363
375
|
schedulePublishGlobals.push(config.globals[i].slug);
|
|
364
376
|
}
|
|
365
|
-
config.globals[i] =
|
|
377
|
+
config.globals[i] = sanitizeGlobal(config, config.globals[i], richTextSanitizers, validRelationships);
|
|
366
378
|
}
|
|
367
379
|
}
|
|
368
380
|
// Resolve hierarchy relationships across collections (also adds sidebar tabs)
|
|
@@ -377,30 +389,32 @@ export const sanitizeConfig = async (incomingConfig)=>{
|
|
|
377
389
|
}
|
|
378
390
|
;
|
|
379
391
|
(config.jobs ??= {}).enabled = Boolean(Array.isArray(configWithDefaults.jobs?.tasks) && configWithDefaults.jobs?.tasks?.length || Array.isArray(configWithDefaults.jobs?.workflows) && configWithDefaults.jobs?.workflows?.length);
|
|
392
|
+
config.jobs.hasConcurrency = Boolean(config.jobs.tasks?.some((task)=>task.concurrency) || config.jobs.workflows?.some((workflow)=>workflow.concurrency));
|
|
380
393
|
// Need to add default jobs collection before locked documents collections
|
|
381
394
|
if (config.jobs.enabled) {
|
|
382
395
|
// Check for schedule property in both tasks and workflows
|
|
383
396
|
const hasScheduleProperty = config?.jobs?.tasks?.length && config.jobs.tasks.some((task)=>task.schedule) || config?.jobs?.workflows?.length && config.jobs.workflows.some((workflow)=>workflow.schedule);
|
|
384
397
|
if (hasScheduleProperty) {
|
|
385
398
|
config.jobs.scheduling = true;
|
|
386
|
-
(config.globals ??= []).push(await sanitizeGlobal(config, getJobStatsGlobal(config), richTextSanitizationPromises, validRelationships));
|
|
387
|
-
config.jobs.stats = true;
|
|
388
399
|
}
|
|
400
|
+
// Add payload-jobs-stats global for tracking job system metadata.
|
|
401
|
+
;
|
|
402
|
+
(config.globals ??= []).push(sanitizeGlobal(config, getJobStatsGlobal(), richTextSanitizers, validRelationships));
|
|
389
403
|
let defaultJobsCollection = getDefaultJobsCollection(config.jobs);
|
|
390
404
|
if (typeof config.jobs.jobsCollectionOverrides === 'function') {
|
|
391
405
|
defaultJobsCollection = config.jobs.jobsCollectionOverrides({
|
|
392
406
|
defaultJobsCollection
|
|
393
407
|
});
|
|
394
408
|
}
|
|
395
|
-
const sanitizedJobsCollection =
|
|
409
|
+
const sanitizedJobsCollection = sanitizeCollection(config, defaultJobsCollection, richTextSanitizers, validRelationships);
|
|
396
410
|
(config.collections ??= []).push(sanitizedJobsCollection);
|
|
397
411
|
}
|
|
398
412
|
const lockedDocumentsCollection = getLockedDocumentsCollection(config);
|
|
399
413
|
if (lockedDocumentsCollection) {
|
|
400
|
-
configWithDefaults.collections.push(
|
|
414
|
+
configWithDefaults.collections.push(sanitizeCollection(config, lockedDocumentsCollection, richTextSanitizers, validRelationships));
|
|
401
415
|
}
|
|
402
|
-
configWithDefaults.collections.push(
|
|
403
|
-
const migrations =
|
|
416
|
+
configWithDefaults.collections.push(sanitizeCollection(config, getPreferencesCollection(config), richTextSanitizers, validRelationships));
|
|
417
|
+
const migrations = sanitizeCollection(config, migrationsCollection, richTextSanitizers, validRelationships);
|
|
404
418
|
// @ts-expect-error indexSortableFields is only valid for @payloadcms/db-mongodb
|
|
405
419
|
if (config?.db?.indexSortableFields) {
|
|
406
420
|
migrations.indexes = [
|
|
@@ -415,11 +429,11 @@ export const sanitizeConfig = async (incomingConfig)=>{
|
|
|
415
429
|
}
|
|
416
430
|
configWithDefaults.collections.push(migrations);
|
|
417
431
|
if (queryPresetsCollections.length > 0) {
|
|
418
|
-
configWithDefaults.collections.push(
|
|
432
|
+
configWithDefaults.collections.push(sanitizeCollection(config, getQueryPresetsConfig(config), richTextSanitizers, validRelationships));
|
|
419
433
|
}
|
|
420
|
-
|
|
434
|
+
addDefaultDashboardWidgets({
|
|
421
435
|
config,
|
|
422
|
-
|
|
436
|
+
richTextSanitizers,
|
|
423
437
|
validRelationships
|
|
424
438
|
});
|
|
425
439
|
if (config.serverURL !== '') {
|
|
@@ -438,20 +452,16 @@ export const sanitizeConfig = async (incomingConfig)=>{
|
|
|
438
452
|
if (incomingConfig.email) {
|
|
439
453
|
config.email = incomingConfig.email;
|
|
440
454
|
}
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
*/ if (typeof incomingConfig.editor === 'function') {
|
|
444
|
-
config.editor = await incomingConfig.editor({
|
|
455
|
+
if (typeof incomingConfig.editor === 'function') {
|
|
456
|
+
config.editor = incomingConfig.editor({
|
|
445
457
|
config: config,
|
|
446
458
|
isRoot: true,
|
|
447
459
|
parentIsLocalized: false
|
|
448
460
|
});
|
|
449
461
|
}
|
|
450
|
-
const
|
|
451
|
-
|
|
452
|
-
promises.push(sanitizeFunction(config));
|
|
462
|
+
for (const sanitizeRichText of richTextSanitizers){
|
|
463
|
+
sanitizeRichText(config);
|
|
453
464
|
}
|
|
454
|
-
await Promise.all(promises);
|
|
455
465
|
return config;
|
|
456
466
|
};
|
|
457
467
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/config/sanitize.ts"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\n\nimport { en } from '@payloadcms/translations/languages/en'\n\nimport type { OrderableJoinInfo } from '../fields/config/sanitizeJoinField.js'\nimport type { CollectionSlug, GlobalSlug, SanitizedCollectionConfig } from '../index.js'\nimport type { SanitizedJobsConfig } from '../queues/config/types/index.js'\nimport type {\n Config,\n DashboardConfig,\n LocalizationConfigWithLabels,\n LocalizationConfigWithNoLabels,\n SanitizedConfig,\n Timezone,\n Widget,\n WidgetInstance,\n} from './types.js'\n\nimport { defaultUserCollection } from '../auth/defaultUser.js'\nimport { authRootEndpoints } from '../auth/endpoints/index.js'\nimport { sanitizeCollection } from '../collections/config/sanitize.js'\nimport { migrationsCollection } from '../database/migrations/migrationsCollection.js'\nimport { DuplicateCollection, InvalidConfiguration } from '../errors/index.js'\nimport { defaultTimezones } from '../fields/baseFields/timezone/defaultTimezones.js'\nimport { sanitizeGlobal } from '../globals/config/sanitize.js'\nimport { resolveHierarchyCollections } from '../hierarchy/resolveHierarchyCollections.js'\nimport { baseBlockFields, formatLabels, sanitizeFields } from '../index.js'\nimport {\n getLockedDocumentsCollection,\n lockedDocumentsCollectionSlug,\n} from '../locked-documents/config.js'\nimport { getPreferencesCollection, preferencesCollectionSlug } from '../preferences/config.js'\nimport { getQueryPresetsConfig, queryPresetsCollectionSlug } from '../query-presets/config.js'\nimport { getDefaultJobsCollection, jobsCollectionSlug } from '../queues/config/collection.js'\nimport { getJobStatsGlobal } from '../queues/config/global.js'\nimport { flattenAllFields, flattenBlock } from '../utilities/flattenAllFields.js'\nimport { hasScheduledPublishEnabled } from '../utilities/getVersionsConfig.js'\nimport { validateTimezones } from '../utilities/validateTimezones.js'\nimport { getSchedulePublishTask } from '../versions/schedule/job.js'\nimport { addDefaultsToConfig } from './defaults.js'\nimport { addOrderableEndpoint, addOrderableFieldsAndHook } from './orderable/index.js'\n\nconst sanitizeAdminConfig = (configToSanitize: Config): Partial<SanitizedConfig> => {\n const sanitizedConfig = { ...configToSanitize }\n\n // default logging level will be 'error' if not provided\n sanitizedConfig.loggingLevels = {\n Forbidden: 'info',\n Locked: 'info',\n MissingFile: 'info',\n NotFound: 'info',\n ValidationError: 'info',\n ...(sanitizedConfig.loggingLevels || {}),\n }\n // add default user collection if none provided\n if (!sanitizedConfig?.admin?.user) {\n const firstCollectionWithAuth = sanitizedConfig.collections!.find(({ auth }) => Boolean(auth))\n\n if (firstCollectionWithAuth) {\n sanitizedConfig.admin!.user = firstCollectionWithAuth.slug\n } else {\n sanitizedConfig.admin!.user = defaultUserCollection.slug\n sanitizedConfig.collections!.push(defaultUserCollection)\n }\n }\n\n const userCollection = sanitizedConfig.collections!.find(\n ({ slug }) => slug === sanitizedConfig.admin!.user,\n )\n\n if (!userCollection || !userCollection.auth) {\n throw new InvalidConfiguration(\n `${sanitizedConfig.admin!.user} is not a valid admin user collection`,\n )\n }\n\n if (sanitizedConfig?.admin?.timezones) {\n if (typeof configToSanitize?.admin?.timezones?.supportedTimezones === 'function') {\n sanitizedConfig.admin.timezones.supportedTimezones =\n configToSanitize.admin.timezones.supportedTimezones({ defaultTimezones })\n }\n\n if (!sanitizedConfig?.admin?.timezones?.supportedTimezones) {\n sanitizedConfig.admin.timezones.supportedTimezones = defaultTimezones\n }\n } else {\n sanitizedConfig.admin!.timezones = {\n supportedTimezones: defaultTimezones,\n }\n }\n\n validateTimezones({\n source: 'admin.timezones.supportedTimezones',\n timezones: sanitizedConfig.admin!.timezones.supportedTimezones as Timezone[],\n })\n\n return sanitizedConfig as unknown as Partial<SanitizedConfig>\n}\n\nconst addDefaultDashboardWidgets = async ({\n config,\n richTextSanitizationPromises,\n validRelationships,\n}: {\n config: Partial<SanitizedConfig>\n richTextSanitizationPromises: Array<(config: SanitizedConfig) => Promise<void>>\n validRelationships: string[]\n}) => {\n const collectionQueryFields: NonNullable<Widget['fields']> = [\n {\n name: 'title',\n type: 'text',\n label: ({ t }) => t('dashboard:widgetTitleLabel'),\n },\n {\n name: 'relatedCollection',\n type: 'select',\n label: ({ t }) => t('general:collection'),\n // Only offer collections that are visible in the admin UI. Collections hidden via a function\n // are kept since they may still be visible for some users.\n options: (config.collections ?? [])\n .filter((collection) => collection.admin?.hidden !== true)\n .map((collection) => ({\n label: collection.labels?.plural || collection.slug,\n value: collection.slug,\n })),\n required: true,\n },\n {\n name: 'where',\n type: 'json',\n admin: {\n components: {\n Field: '@payloadcms/ui#QueryPresetsWhereField',\n },\n },\n label: ({ t }) => t('general:filters'),\n },\n {\n name: 'sortField',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/ui#CollectionQuerySortField',\n },\n },\n label: ({ t }) => t('dashboard:widgetSortFieldLabel'),\n },\n {\n name: 'sortDirection',\n type: 'select',\n defaultValue: 'desc',\n label: ({ t }) => t('dashboard:widgetSortDirectionLabel'),\n options: [\n {\n label: ({ t }) => t('general:ascending'),\n value: 'asc',\n },\n {\n label: ({ t }) => t('general:descending'),\n value: 'desc',\n },\n ],\n },\n {\n name: 'limit',\n type: 'number',\n defaultValue: 5,\n label: ({ t }) => t('dashboard:widgetLimitLabel'),\n max: 25,\n min: 1,\n },\n ]\n\n const recentlyViewedFields: NonNullable<Widget['fields']> = [\n {\n name: 'excludedCollections',\n type: 'select',\n admin: {\n components: {\n // Presents an inclusion filter (all collections checked by default) while persisting the\n // inverse as an exclusion list, so collections added later stay visible by default.\n Field: '@payloadcms/ui#RecentlyViewedCollectionsField',\n },\n },\n hasMany: true,\n label: ({ t }) => t('general:collections'),\n // Exclusion list, so an empty value shows every collection and newly added collections are\n // included by default. Hidden collections are never offered as options.\n options: (config.collections ?? [])\n .filter((collection) => collection.admin?.hidden !== true)\n .map((collection) => ({\n label: collection.labels?.plural || collection.slug,\n value: collection.slug,\n })),\n },\n ]\n\n const adminConfig: NonNullable<Config['admin']> = config.admin ?? { dashboard: { widgets: [] } }\n const dashboard: DashboardConfig = (adminConfig.dashboard ??= { widgets: [] })\n\n dashboard.widgets.push({\n slug: 'collections',\n Component: '@payloadcms/ui/rsc#CollectionCards',\n minWidth: 'full',\n })\n dashboard.widgets.push({\n slug: 'collection-query',\n Component: '@payloadcms/ui/rsc#CollectionQueryWidget',\n fields: await sanitizeFields({\n config: config as unknown as Config,\n existingFieldNames: new Set(),\n fields: collectionQueryFields,\n parentIsLocalized: false,\n richTextSanitizationPromises,\n validRelationships,\n }),\n minWidth: 'x-small',\n })\n dashboard.widgets.push({\n slug: 'activity',\n Component: '@payloadcms/ui/rsc#RecentlyViewedWidget',\n fields: await sanitizeFields({\n config: config as unknown as Config,\n existingFieldNames: new Set(),\n fields: recentlyViewedFields,\n parentIsLocalized: false,\n richTextSanitizationPromises,\n validRelationships,\n }),\n label: ({ t }) => t('dashboard:widgetRecentlyViewedTitle'),\n minWidth: 'x-small',\n })\n dashboard.defaultLayout ??= [\n {\n widgetSlug: 'collections',\n width: 'full',\n } satisfies WidgetInstance,\n ]\n}\n\nexport const sanitizeConfig = async (incomingConfig: Config): Promise<SanitizedConfig> => {\n const configWithDefaults = addDefaultsToConfig(incomingConfig)\n\n const config: Partial<SanitizedConfig> = sanitizeAdminConfig(configWithDefaults)\n\n if (!config.endpoints) {\n config.endpoints = []\n }\n\n for (const endpoint of authRootEndpoints) {\n config.endpoints.push(endpoint)\n }\n\n if (config.localization && config.localization.locales?.length > 0) {\n // clone localization config so to not break everything\n const firstLocale = config.localization.locales[0]\n if (typeof firstLocale === 'string') {\n config.localization.localeCodes = [\n ...(config.localization as unknown as LocalizationConfigWithNoLabels).locales,\n ]\n\n // is string[], so convert to Locale[]\n config.localization.locales = (\n config.localization as unknown as LocalizationConfigWithNoLabels\n ).locales.map((locale) => ({\n code: locale,\n label: locale,\n rtl: false,\n toString: () => locale,\n }))\n } else {\n // is Locale[], so convert to string[] for localeCodes\n config.localization.localeCodes = config.localization.locales.map((locale) => locale.code)\n\n config.localization.locales = (\n config.localization as LocalizationConfigWithLabels\n ).locales.map((locale) => ({\n ...locale,\n toString: () => locale.code,\n }))\n }\n\n // Default fallback to true if not provided\n config.localization.fallback = config.localization?.fallback ?? true\n }\n\n const i18nConfig: SanitizedConfig['i18n'] = {\n fallbackLanguage: 'en',\n supportedLanguages: {\n en,\n },\n translations: {},\n }\n\n if (incomingConfig?.i18n) {\n i18nConfig.supportedLanguages =\n incomingConfig.i18n?.supportedLanguages || i18nConfig.supportedLanguages\n\n const supportedLangKeys = <AcceptedLanguages[]>Object.keys(i18nConfig.supportedLanguages)\n const fallbackLang = incomingConfig.i18n?.fallbackLanguage || i18nConfig.fallbackLanguage\n\n i18nConfig.fallbackLanguage = supportedLangKeys.includes(fallbackLang)\n ? fallbackLang\n : supportedLangKeys[0]!\n i18nConfig.translations =\n (incomingConfig.i18n?.translations as SanitizedConfig['i18n']['translations']) ||\n i18nConfig.translations\n }\n\n config.i18n = i18nConfig\n\n const richTextSanitizationPromises: Array<(config: SanitizedConfig) => Promise<void>> = []\n\n const schedulePublishCollections: CollectionSlug[] = []\n\n const queryPresetsCollections: CollectionSlug[] = []\n\n const schedulePublishGlobals: GlobalSlug[] = []\n\n const collectionSlugs = new Set<CollectionSlug>()\n\n const validRelationships = [\n ...(config.collections?.map((c) => c.slug) ?? []),\n jobsCollectionSlug,\n lockedDocumentsCollectionSlug,\n preferencesCollectionSlug,\n ]\n\n const dashboardWidgets = config.admin?.dashboard?.widgets ?? ([] as Widget[])\n\n for (const widget of dashboardWidgets) {\n if (widget.fields?.length) {\n widget.fields = await sanitizeFields({\n config: config as unknown as Config,\n existingFieldNames: new Set(),\n fields: widget.fields,\n parentIsLocalized: false,\n richTextSanitizationPromises,\n validRelationships,\n })\n }\n }\n\n /**\n * Blocks sanitization needs to happen before collections, as collection/global join field sanitization needs config.blocks\n * to be populated with the sanitized blocks\n */\n config.blocks = []\n\n if (incomingConfig.blocks?.length) {\n for (const block of incomingConfig.blocks) {\n const sanitizedBlock = block\n\n if (sanitizedBlock._sanitized === true) {\n continue\n }\n sanitizedBlock._sanitized = true\n\n sanitizedBlock.fields = sanitizedBlock.fields.concat(baseBlockFields)\n\n sanitizedBlock.labels = !sanitizedBlock.labels\n ? formatLabels(sanitizedBlock.slug)\n : sanitizedBlock.labels\n\n sanitizedBlock.fields = await sanitizeFields({\n config: config as unknown as Config,\n existingFieldNames: new Set(),\n fields: sanitizedBlock.fields,\n parentIsLocalized: false,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n const flattenedSanitizedBlock = flattenBlock({ block })\n\n config.blocks.push(flattenedSanitizedBlock)\n }\n }\n\n // Track orderable join fields during sanitization\n const orderableJoins: OrderableJoinInfo[] = []\n\n for (let i = 0; i < config.collections!.length; i++) {\n if (collectionSlugs.has(config.collections![i]!.slug)) {\n throw new DuplicateCollection('slug', config.collections![i]!.slug)\n }\n\n collectionSlugs.add(config.collections![i]!.slug)\n\n const draftsConfig = config.collections![i]?.versions?.drafts\n\n if (typeof draftsConfig === 'object' && draftsConfig.schedulePublish) {\n schedulePublishCollections.push(config.collections![i]!.slug)\n }\n\n if (config.collections![i]!.enableQueryPresets) {\n queryPresetsCollections.push(config.collections![i]!.slug)\n\n if (!validRelationships.includes(queryPresetsCollectionSlug)) {\n validRelationships.push(queryPresetsCollectionSlug)\n }\n }\n\n config.collections![i] = await sanitizeCollection(\n config as unknown as Config,\n config.collections![i]!,\n richTextSanitizationPromises,\n validRelationships,\n orderableJoins,\n )\n }\n\n // Process orderable features after all collections are sanitized\n const fieldsToAdd = new Map<SanitizedCollectionConfig, string[]>()\n const joinFieldPathsByCollection = new Map<string, Map<string, string>>()\n\n // Handle collection.orderable\n for (const collection of config.collections!) {\n if (collection.orderable) {\n const currentFields = fieldsToAdd.get(collection) || []\n fieldsToAdd.set(collection, [...currentFields, '_order'])\n collection.defaultSort = collection.defaultSort ?? '_order'\n }\n }\n\n // Handle orderable join fields (tracked during sanitization)\n for (const joinInfo of orderableJoins) {\n const targetCollection = config.collections!.find(\n (c) => c.slug === joinInfo.targetCollectionSlug,\n )\n if (targetCollection) {\n const currentFields = fieldsToAdd.get(targetCollection) || []\n fieldsToAdd.set(targetCollection, [...currentFields, joinInfo.orderFieldName])\n\n const currentJoinFieldPaths =\n joinFieldPathsByCollection.get(targetCollection.slug) || new Map<string, string>()\n currentJoinFieldPaths.set(joinInfo.orderFieldName, joinInfo.joinFieldOn)\n joinFieldPathsByCollection.set(targetCollection.slug, currentJoinFieldPaths)\n }\n }\n\n // Add fields, hooks, and update flattenedFields\n for (const [collection, orderableFields] of fieldsToAdd) {\n await addOrderableFieldsAndHook(\n collection,\n config as unknown as Config,\n orderableFields,\n joinFieldPathsByCollection,\n )\n // Regenerate flattenedFields since we added new fields\n collection.flattenedFields = flattenAllFields({ fields: collection.fields })\n }\n\n // Add endpoint if any orderable features exist\n if (fieldsToAdd.size > 0) {\n addOrderableEndpoint(config as SanitizedConfig, joinFieldPathsByCollection)\n }\n\n if (config.globals!.length > 0) {\n for (let i = 0; i < config.globals!.length; i++) {\n if (hasScheduledPublishEnabled(config.globals![i]!)) {\n schedulePublishGlobals.push(config.globals![i]!.slug)\n }\n\n config.globals![i] = await sanitizeGlobal(\n config as unknown as Config,\n config.globals![i]!,\n richTextSanitizationPromises,\n validRelationships,\n )\n }\n }\n\n // Resolve hierarchy relationships across collections (also adds sidebar tabs)\n resolveHierarchyCollections(config as unknown as Config)\n\n if (schedulePublishCollections.length || schedulePublishGlobals.length) {\n ;((config.jobs ??= {} as SanitizedJobsConfig).tasks ??= []).push(\n getSchedulePublishTask({\n adminUserSlug: config.admin!.user,\n collections: schedulePublishCollections,\n globals: schedulePublishGlobals,\n }),\n )\n }\n\n ;(config.jobs ??= {} as SanitizedJobsConfig).enabled = Boolean(\n (Array.isArray(configWithDefaults.jobs?.tasks) && configWithDefaults.jobs?.tasks?.length) ||\n (Array.isArray(configWithDefaults.jobs?.workflows) &&\n configWithDefaults.jobs?.workflows?.length),\n )\n\n // Need to add default jobs collection before locked documents collections\n if (config.jobs.enabled) {\n // Check for schedule property in both tasks and workflows\n const hasScheduleProperty =\n (config?.jobs?.tasks?.length && config.jobs.tasks.some((task) => task.schedule)) ||\n (config?.jobs?.workflows?.length &&\n config.jobs.workflows.some((workflow) => workflow.schedule))\n\n if (hasScheduleProperty) {\n config.jobs.scheduling = true\n // Add payload-jobs-stats global for tracking when a job of a specific slug was last run\n ;(config.globals ??= []).push(\n await sanitizeGlobal(\n config as unknown as Config,\n getJobStatsGlobal(config as unknown as Config),\n richTextSanitizationPromises,\n validRelationships,\n ),\n )\n\n config.jobs.stats = true\n }\n\n let defaultJobsCollection = getDefaultJobsCollection(config.jobs)\n\n if (typeof config.jobs.jobsCollectionOverrides === 'function') {\n defaultJobsCollection = config.jobs.jobsCollectionOverrides({\n defaultJobsCollection,\n })\n }\n const sanitizedJobsCollection = await sanitizeCollection(\n config as unknown as Config,\n defaultJobsCollection,\n richTextSanitizationPromises,\n validRelationships,\n )\n\n ;(config.collections ??= []).push(sanitizedJobsCollection)\n }\n\n const lockedDocumentsCollection = getLockedDocumentsCollection(config as unknown as Config)\n\n if (lockedDocumentsCollection) {\n configWithDefaults.collections!.push(\n await sanitizeCollection(\n config as unknown as Config,\n lockedDocumentsCollection,\n richTextSanitizationPromises,\n validRelationships,\n ),\n )\n }\n\n configWithDefaults.collections!.push(\n await sanitizeCollection(\n config as unknown as Config,\n getPreferencesCollection(config as unknown as Config),\n richTextSanitizationPromises,\n validRelationships,\n ),\n )\n\n const migrations = await sanitizeCollection(\n config as unknown as Config,\n migrationsCollection,\n richTextSanitizationPromises,\n validRelationships,\n )\n\n // @ts-expect-error indexSortableFields is only valid for @payloadcms/db-mongodb\n if (config?.db?.indexSortableFields) {\n migrations.indexes = [\n {\n fields: ['batch', 'name'],\n unique: false,\n },\n ]\n }\n configWithDefaults.collections!.push(migrations)\n\n if (queryPresetsCollections.length > 0) {\n configWithDefaults.collections!.push(\n await sanitizeCollection(\n config as unknown as Config,\n getQueryPresetsConfig(config as unknown as Config),\n richTextSanitizationPromises,\n validRelationships,\n ),\n )\n }\n\n await addDefaultDashboardWidgets({\n config,\n richTextSanitizationPromises,\n validRelationships,\n })\n\n if (config.serverURL !== '') {\n config.csrf!.push(config.serverURL!)\n }\n\n if (!config.storage) {\n config.storage = []\n }\n\n if (!config.upload) {\n config.upload = { adapters: [] }\n }\n\n config.upload.adapters = Array.from(\n new Set(config.collections!.map((c) => c.upload?.adapter).filter(Boolean) as string[]),\n )\n\n // Pass through the email config as is so adapters don't break\n if (incomingConfig.email) {\n config.email = incomingConfig.email\n }\n\n /*\n Execute richText sanitization\n */\n if (typeof incomingConfig.editor === 'function') {\n config.editor = await incomingConfig.editor({\n config: config as SanitizedConfig,\n isRoot: true,\n parentIsLocalized: false,\n })\n }\n\n const promises: Promise<void>[] = []\n\n for (const sanitizeFunction of richTextSanitizationPromises) {\n promises.push(sanitizeFunction(config as SanitizedConfig))\n }\n\n await Promise.all(promises)\n\n return config as SanitizedConfig\n}\n"],"names":["en","defaultUserCollection","authRootEndpoints","sanitizeCollection","migrationsCollection","DuplicateCollection","InvalidConfiguration","defaultTimezones","sanitizeGlobal","resolveHierarchyCollections","baseBlockFields","formatLabels","sanitizeFields","getLockedDocumentsCollection","lockedDocumentsCollectionSlug","getPreferencesCollection","preferencesCollectionSlug","getQueryPresetsConfig","queryPresetsCollectionSlug","getDefaultJobsCollection","jobsCollectionSlug","getJobStatsGlobal","flattenAllFields","flattenBlock","hasScheduledPublishEnabled","validateTimezones","getSchedulePublishTask","addDefaultsToConfig","addOrderableEndpoint","addOrderableFieldsAndHook","sanitizeAdminConfig","configToSanitize","sanitizedConfig","loggingLevels","Forbidden","Locked","MissingFile","NotFound","ValidationError","admin","user","firstCollectionWithAuth","collections","find","auth","Boolean","slug","push","userCollection","timezones","supportedTimezones","source","addDefaultDashboardWidgets","config","richTextSanitizationPromises","validRelationships","collectionQueryFields","name","type","label","t","options","filter","collection","hidden","map","labels","plural","value","required","components","Field","defaultValue","max","min","recentlyViewedFields","hasMany","adminConfig","dashboard","widgets","Component","minWidth","fields","existingFieldNames","Set","parentIsLocalized","defaultLayout","widgetSlug","width","sanitizeConfig","incomingConfig","configWithDefaults","endpoints","endpoint","localization","locales","length","firstLocale","localeCodes","locale","code","rtl","toString","fallback","i18nConfig","fallbackLanguage","supportedLanguages","translations","i18n","supportedLangKeys","Object","keys","fallbackLang","includes","schedulePublishCollections","queryPresetsCollections","schedulePublishGlobals","collectionSlugs","c","dashboardWidgets","widget","blocks","block","sanitizedBlock","_sanitized","concat","flattenedSanitizedBlock","orderableJoins","i","has","add","draftsConfig","versions","drafts","schedulePublish","enableQueryPresets","fieldsToAdd","Map","joinFieldPathsByCollection","orderable","currentFields","get","set","defaultSort","joinInfo","targetCollection","targetCollectionSlug","orderFieldName","currentJoinFieldPaths","joinFieldOn","orderableFields","flattenedFields","size","globals","jobs","tasks","adminUserSlug","enabled","Array","isArray","workflows","hasScheduleProperty","some","task","schedule","workflow","scheduling","stats","defaultJobsCollection","jobsCollectionOverrides","sanitizedJobsCollection","lockedDocumentsCollection","migrations","db","indexSortableFields","indexes","unique","serverURL","csrf","storage","upload","adapters","from","adapter","email","editor","isRoot","promises","sanitizeFunction","Promise","all"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/config/sanitize.ts"],"sourcesContent":["import type { AcceptedLanguages } from '@payloadcms/translations'\n\nimport { en } from '@payloadcms/translations/languages/en'\n\nimport type { RichTextSanitizer } from '../fields/config/sanitize.js'\nimport type { OrderableJoinInfo } from '../fields/config/sanitizeJoinField.js'\nimport type { CollectionSlug, GlobalSlug, SanitizedCollectionConfig } from '../index.js'\nimport type { SanitizedJobsConfig } from '../queues/config/types/index.js'\nimport type {\n Config,\n DashboardConfig,\n LocalizationConfigWithLabels,\n LocalizationConfigWithNoLabels,\n SanitizedConfig,\n Timezone,\n Widget,\n WidgetInstance,\n} from './types.js'\n\nimport { defaultUserCollection } from '../auth/defaultUser.js'\nimport { authRootEndpoints } from '../auth/endpoints/index.js'\nimport { sanitizeCollection } from '../collections/config/sanitize.js'\nimport { migrationsCollection } from '../database/migrations/migrationsCollection.js'\nimport { DuplicateCollection, InvalidConfiguration } from '../errors/index.js'\nimport { defaultTimezones } from '../fields/baseFields/timezone/defaultTimezones.js'\nimport { sanitizeGlobal } from '../globals/config/sanitize.js'\nimport { resolveHierarchyCollections } from '../hierarchy/resolveHierarchyCollections.js'\nimport { baseBlockFields, formatLabels, sanitizeFields } from '../index.js'\nimport {\n getLockedDocumentsCollection,\n lockedDocumentsCollectionSlug,\n} from '../locked-documents/config.js'\nimport { getPreferencesCollection, preferencesCollectionSlug } from '../preferences/config.js'\nimport { getQueryPresetsConfig, queryPresetsCollectionSlug } from '../query-presets/config.js'\nimport { getDefaultJobsCollection, jobsCollectionSlug } from '../queues/config/collection.js'\nimport { getJobStatsGlobal } from '../queues/config/global.js'\nimport {\n stagedUploadEndpoints,\n uploadInstructionsEndpoint,\n} from '../uploads/endpoints/uploadInstructions.js'\nimport { flattenAllFields, flattenBlock } from '../utilities/flattenAllFields.js'\nimport { hasScheduledPublishEnabled } from '../utilities/getVersionsConfig.js'\nimport { validateTimezones } from '../utilities/validateTimezones.js'\nimport { getSchedulePublishTask } from '../versions/schedule/job.js'\nimport { addDefaultsToConfig } from './defaults.js'\nimport { addOrderableEndpoint, addOrderableFieldsAndHook } from './orderable/index.js'\n\nconst sanitizeAdminConfig = (configToSanitize: Config): Partial<SanitizedConfig> => {\n const sanitizedConfig = { ...configToSanitize }\n\n // default logging level will be 'error' if not provided\n sanitizedConfig.loggingLevels = {\n Forbidden: 'info',\n Locked: 'info',\n MissingFile: 'info',\n NotFound: 'info',\n ValidationError: 'info',\n ...(sanitizedConfig.loggingLevels || {}),\n }\n // add default user collection if none provided\n if (!sanitizedConfig?.admin?.user) {\n const firstCollectionWithAuth = sanitizedConfig.collections!.find(({ auth }) => Boolean(auth))\n\n if (firstCollectionWithAuth) {\n sanitizedConfig.admin!.user = firstCollectionWithAuth.slug\n } else {\n sanitizedConfig.admin!.user = defaultUserCollection.slug\n sanitizedConfig.collections!.push(defaultUserCollection)\n }\n }\n\n const userCollection = sanitizedConfig.collections!.find(\n ({ slug }) => slug === sanitizedConfig.admin!.user,\n )\n\n if (!userCollection || !userCollection.auth) {\n throw new InvalidConfiguration(\n `${sanitizedConfig.admin!.user} is not a valid admin user collection`,\n )\n }\n\n if (sanitizedConfig?.admin?.timezones) {\n if (typeof configToSanitize?.admin?.timezones?.supportedTimezones === 'function') {\n sanitizedConfig.admin.timezones.supportedTimezones =\n configToSanitize.admin.timezones.supportedTimezones({ defaultTimezones })\n }\n\n if (!sanitizedConfig?.admin?.timezones?.supportedTimezones) {\n sanitizedConfig.admin.timezones.supportedTimezones = defaultTimezones\n }\n } else {\n sanitizedConfig.admin!.timezones = {\n supportedTimezones: defaultTimezones,\n }\n }\n\n validateTimezones({\n source: 'admin.timezones.supportedTimezones',\n timezones: sanitizedConfig.admin!.timezones.supportedTimezones as Timezone[],\n })\n\n return sanitizedConfig as unknown as Partial<SanitizedConfig>\n}\n\nconst addDefaultDashboardWidgets = ({\n config,\n richTextSanitizers,\n validRelationships,\n}: {\n config: Partial<SanitizedConfig>\n richTextSanitizers: RichTextSanitizer[]\n validRelationships: string[]\n}): void => {\n const collectionQueryFields: NonNullable<Widget['fields']> = [\n {\n name: 'title',\n type: 'text',\n label: ({ t }) => t('dashboard:widgetTitleLabel'),\n },\n {\n name: 'relatedCollection',\n type: 'select',\n label: ({ t }) => t('general:collection'),\n // Only offer collections that are visible in the admin UI. Collections hidden via a function\n // are kept since they may still be visible for some users.\n options: (config.collections ?? [])\n .filter((collection) => collection.admin?.hidden !== true)\n .map((collection) => ({\n label: collection.labels?.plural || collection.slug,\n value: collection.slug,\n })),\n required: true,\n },\n {\n name: 'where',\n type: 'json',\n admin: {\n components: {\n Field: '@payloadcms/ui#QueryPresetsWhereField',\n },\n },\n label: ({ t }) => t('general:filters'),\n },\n {\n name: 'sortField',\n type: 'text',\n admin: {\n components: {\n Field: '@payloadcms/ui#CollectionQuerySortField',\n },\n },\n label: ({ t }) => t('dashboard:widgetSortFieldLabel'),\n },\n {\n name: 'sortDirection',\n type: 'select',\n defaultValue: 'desc',\n label: ({ t }) => t('dashboard:widgetSortDirectionLabel'),\n options: [\n {\n label: ({ t }) => t('general:ascending'),\n value: 'asc',\n },\n {\n label: ({ t }) => t('general:descending'),\n value: 'desc',\n },\n ],\n },\n {\n name: 'limit',\n type: 'number',\n defaultValue: 5,\n label: ({ t }) => t('dashboard:widgetLimitLabel'),\n max: 25,\n min: 1,\n },\n ]\n\n const recentlyViewedFields: NonNullable<Widget['fields']> = [\n {\n name: 'excludedCollections',\n type: 'select',\n admin: {\n components: {\n // Presents an inclusion filter (all collections checked by default) while persisting the\n // inverse as an exclusion list, so collections added later stay visible by default.\n Field: '@payloadcms/ui#RecentlyViewedCollectionsField',\n },\n },\n hasMany: true,\n label: ({ t }) => t('general:collections'),\n // Exclusion list, so an empty value shows every collection and newly added collections are\n // included by default. Hidden collections are never offered as options.\n options: (config.collections ?? [])\n .filter((collection) => collection.admin?.hidden !== true)\n .map((collection) => ({\n label: collection.labels?.plural || collection.slug,\n value: collection.slug,\n })),\n },\n ]\n\n const adminConfig: NonNullable<Config['admin']> = config.admin ?? { dashboard: { widgets: [] } }\n const dashboard: DashboardConfig = (adminConfig.dashboard ??= { widgets: [] })\n\n dashboard.widgets.push({\n slug: 'collections',\n Component: '@payloadcms/ui/rsc#CollectionCards',\n minWidth: 'full',\n })\n dashboard.widgets.push({\n slug: 'collection-query',\n Component: '@payloadcms/ui/rsc#CollectionQueryWidget',\n fields: sanitizeFields({\n config: config as unknown as Config,\n existingFieldNames: new Set(),\n fields: collectionQueryFields,\n parentIsLocalized: false,\n richTextSanitizers,\n validRelationships,\n }),\n minWidth: 'x-small',\n })\n dashboard.widgets.push({\n slug: 'activity',\n Component: '@payloadcms/ui/rsc#RecentlyViewedWidget',\n fields: sanitizeFields({\n config: config as unknown as Config,\n existingFieldNames: new Set(),\n fields: recentlyViewedFields,\n parentIsLocalized: false,\n richTextSanitizers,\n validRelationships,\n }),\n label: ({ t }) => t('dashboard:widgetRecentlyViewedTitle'),\n minWidth: 'x-small',\n })\n dashboard.defaultLayout ??= [\n {\n widgetSlug: 'collections',\n width: 'full',\n } satisfies WidgetInstance,\n {\n widgetSlug: 'activity',\n width: 'small',\n } satisfies WidgetInstance,\n ]\n}\n\nexport const sanitizeConfig = (incomingConfig: Config): SanitizedConfig => {\n const configWithDefaults = addDefaultsToConfig(incomingConfig)\n const { duration, safetyBuffer } = configWithDefaults.jobs!.processingLease!\n if (!(safetyBuffer! >= 0 && safetyBuffer! < duration!)) {\n throw new InvalidConfiguration(\n '`jobs.processingLease.safetyBuffer` must be non-negative and less than `jobs.processingLease.duration`.',\n )\n }\n\n const config: Partial<SanitizedConfig> = sanitizeAdminConfig(configWithDefaults)\n\n if (!config.endpoints) {\n config.endpoints = []\n }\n\n if (configWithDefaults.collections?.some(({ upload }) => upload)) {\n config.endpoints.push(uploadInstructionsEndpoint, ...stagedUploadEndpoints)\n }\n\n for (const endpoint of authRootEndpoints) {\n config.endpoints.push(endpoint)\n }\n\n if (config.localization) {\n // clone localization config so to not break everything\n const firstLocale = config.localization.locales[0]\n if (typeof firstLocale === 'string') {\n config.localization.localeCodes = [\n ...(config.localization as unknown as LocalizationConfigWithNoLabels).locales,\n ]\n\n // is string[], so convert to Locale[]\n config.localization.locales = (\n config.localization as unknown as LocalizationConfigWithNoLabels\n ).locales.map((locale) => ({\n code: locale,\n label: locale,\n rtl: false,\n toString: () => locale,\n }))\n } else {\n // is Locale[], so convert to string[] for localeCodes\n config.localization.localeCodes = config.localization.locales.map((locale) => locale.code)\n\n config.localization.locales = (\n config.localization as LocalizationConfigWithLabels\n ).locales.map((locale) => ({\n ...locale,\n toString: () => locale.code,\n }))\n }\n\n // Default fallback to true if not provided\n config.localization.fallback = config.localization?.fallback ?? true\n }\n\n const i18nConfig: SanitizedConfig['i18n'] = {\n fallbackLanguage: 'en',\n supportedLanguages: {\n en,\n },\n translations: {},\n }\n\n if (incomingConfig?.i18n) {\n i18nConfig.supportedLanguages =\n incomingConfig.i18n?.supportedLanguages || i18nConfig.supportedLanguages\n\n const supportedLangKeys = <AcceptedLanguages[]>Object.keys(i18nConfig.supportedLanguages)\n const fallbackLang = incomingConfig.i18n?.fallbackLanguage || i18nConfig.fallbackLanguage\n\n i18nConfig.fallbackLanguage = supportedLangKeys.includes(fallbackLang)\n ? fallbackLang\n : supportedLangKeys[0]!\n i18nConfig.translations =\n (incomingConfig.i18n?.translations as SanitizedConfig['i18n']['translations']) ||\n i18nConfig.translations\n }\n\n config.i18n = i18nConfig\n\n const richTextSanitizers: RichTextSanitizer[] = []\n\n const schedulePublishCollections: CollectionSlug[] = []\n\n const queryPresetsCollections: CollectionSlug[] = []\n\n const schedulePublishGlobals: GlobalSlug[] = []\n\n const collectionSlugs = new Set<CollectionSlug>()\n\n const validRelationships = [\n ...(config.collections?.map((c) => c.slug) ?? []),\n jobsCollectionSlug,\n lockedDocumentsCollectionSlug,\n preferencesCollectionSlug,\n ]\n\n const dashboardWidgets = config.admin?.dashboard?.widgets ?? ([] as Widget[])\n\n for (const widget of dashboardWidgets) {\n if (widget.fields?.length) {\n widget.fields = sanitizeFields({\n config: config as unknown as Config,\n existingFieldNames: new Set(),\n fields: widget.fields,\n parentIsLocalized: false,\n richTextSanitizers,\n validRelationships,\n })\n }\n }\n\n /**\n * Blocks sanitization needs to happen before collections, as collection/global join field sanitization needs config.blocks\n * to be populated with the sanitized blocks\n */\n config.blocks = []\n\n if (incomingConfig.blocks?.length) {\n for (const block of incomingConfig.blocks) {\n const sanitizedBlock = block\n\n if (sanitizedBlock._sanitized === true) {\n continue\n }\n sanitizedBlock._sanitized = true\n\n sanitizedBlock.fields = sanitizedBlock.fields.concat(baseBlockFields)\n\n sanitizedBlock.labels = !sanitizedBlock.labels\n ? formatLabels(sanitizedBlock.slug)\n : sanitizedBlock.labels\n\n sanitizedBlock.fields = sanitizeFields({\n config: config as unknown as Config,\n existingFieldNames: new Set(),\n fields: sanitizedBlock.fields,\n parentIsLocalized: false,\n richTextSanitizers,\n validRelationships,\n })\n\n const flattenedSanitizedBlock = flattenBlock({ block })\n\n config.blocks.push(flattenedSanitizedBlock)\n }\n }\n\n // Track orderable join fields during sanitization\n const orderableJoins: OrderableJoinInfo[] = []\n\n for (let i = 0; i < config.collections!.length; i++) {\n if (collectionSlugs.has(config.collections![i]!.slug)) {\n throw new DuplicateCollection('slug', config.collections![i]!.slug)\n }\n\n collectionSlugs.add(config.collections![i]!.slug)\n\n const draftsConfig = config.collections![i]?.versions?.drafts\n\n if (typeof draftsConfig === 'object' && draftsConfig.schedulePublish) {\n schedulePublishCollections.push(config.collections![i]!.slug)\n }\n\n if (config.collections![i]!.enableQueryPresets) {\n queryPresetsCollections.push(config.collections![i]!.slug)\n\n if (!validRelationships.includes(queryPresetsCollectionSlug)) {\n validRelationships.push(queryPresetsCollectionSlug)\n }\n }\n\n config.collections![i] = sanitizeCollection(\n config as unknown as Config,\n config.collections![i]!,\n richTextSanitizers,\n validRelationships,\n orderableJoins,\n )\n }\n\n // Process orderable features after all collections are sanitized\n const fieldsToAdd = new Map<SanitizedCollectionConfig, string[]>()\n const joinFieldPathsByCollection = new Map<string, Map<string, string>>()\n\n // Handle collection.orderable\n for (const collection of config.collections!) {\n if (collection.orderable) {\n const currentFields = fieldsToAdd.get(collection) || []\n fieldsToAdd.set(collection, [...currentFields, '_order'])\n collection.defaultSort = collection.defaultSort ?? '_order'\n }\n }\n\n // Handle orderable join fields (tracked during sanitization)\n for (const joinInfo of orderableJoins) {\n const targetCollection = config.collections!.find(\n (c) => c.slug === joinInfo.targetCollectionSlug,\n )\n if (targetCollection) {\n const currentFields = fieldsToAdd.get(targetCollection) || []\n fieldsToAdd.set(targetCollection, [...currentFields, joinInfo.orderFieldName])\n\n const currentJoinFieldPaths =\n joinFieldPathsByCollection.get(targetCollection.slug) || new Map<string, string>()\n currentJoinFieldPaths.set(joinInfo.orderFieldName, joinInfo.joinFieldOn)\n joinFieldPathsByCollection.set(targetCollection.slug, currentJoinFieldPaths)\n }\n }\n\n // Add fields, hooks, and update flattenedFields\n for (const [collection, orderableFields] of fieldsToAdd) {\n addOrderableFieldsAndHook(\n collection,\n config as unknown as Config,\n orderableFields,\n joinFieldPathsByCollection,\n )\n // Regenerate flattenedFields since we added new fields\n collection.flattenedFields = flattenAllFields({ fields: collection.fields })\n }\n\n // Add endpoint if any orderable features exist\n if (fieldsToAdd.size > 0) {\n addOrderableEndpoint(config as SanitizedConfig, joinFieldPathsByCollection)\n }\n\n if (config.globals!.length > 0) {\n for (let i = 0; i < config.globals!.length; i++) {\n if (hasScheduledPublishEnabled(config.globals![i]!)) {\n schedulePublishGlobals.push(config.globals![i]!.slug)\n }\n\n config.globals![i] = sanitizeGlobal(\n config as unknown as Config,\n config.globals![i]!,\n richTextSanitizers,\n validRelationships,\n )\n }\n }\n\n // Resolve hierarchy relationships across collections (also adds sidebar tabs)\n resolveHierarchyCollections(config as unknown as Config)\n\n if (schedulePublishCollections.length || schedulePublishGlobals.length) {\n ;((config.jobs ??= {} as SanitizedJobsConfig).tasks ??= []).push(\n getSchedulePublishTask({\n adminUserSlug: config.admin!.user,\n collections: schedulePublishCollections,\n globals: schedulePublishGlobals,\n }),\n )\n }\n\n ;(config.jobs ??= {} as SanitizedJobsConfig).enabled = Boolean(\n (Array.isArray(configWithDefaults.jobs?.tasks) && configWithDefaults.jobs?.tasks?.length) ||\n (Array.isArray(configWithDefaults.jobs?.workflows) &&\n configWithDefaults.jobs?.workflows?.length),\n )\n config.jobs.hasConcurrency = Boolean(\n config.jobs.tasks?.some((task) => task.concurrency) ||\n config.jobs.workflows?.some((workflow) => workflow.concurrency),\n )\n\n // Need to add default jobs collection before locked documents collections\n if (config.jobs.enabled) {\n // Check for schedule property in both tasks and workflows\n const hasScheduleProperty =\n (config?.jobs?.tasks?.length && config.jobs.tasks.some((task) => task.schedule)) ||\n (config?.jobs?.workflows?.length &&\n config.jobs.workflows.some((workflow) => workflow.schedule))\n\n if (hasScheduleProperty) {\n config.jobs.scheduling = true\n }\n\n // Add payload-jobs-stats global for tracking job system metadata.\n ;(config.globals ??= []).push(\n sanitizeGlobal(\n config as unknown as Config,\n getJobStatsGlobal(),\n richTextSanitizers,\n validRelationships,\n ),\n )\n\n let defaultJobsCollection = getDefaultJobsCollection(config.jobs)\n\n if (typeof config.jobs.jobsCollectionOverrides === 'function') {\n defaultJobsCollection = config.jobs.jobsCollectionOverrides({\n defaultJobsCollection,\n })\n }\n const sanitizedJobsCollection = sanitizeCollection(\n config as unknown as Config,\n defaultJobsCollection,\n richTextSanitizers,\n validRelationships,\n )\n\n ;(config.collections ??= []).push(sanitizedJobsCollection)\n }\n\n const lockedDocumentsCollection = getLockedDocumentsCollection(config as unknown as Config)\n\n if (lockedDocumentsCollection) {\n configWithDefaults.collections!.push(\n sanitizeCollection(\n config as unknown as Config,\n lockedDocumentsCollection,\n richTextSanitizers,\n validRelationships,\n ),\n )\n }\n\n configWithDefaults.collections!.push(\n sanitizeCollection(\n config as unknown as Config,\n getPreferencesCollection(config as unknown as Config),\n richTextSanitizers,\n validRelationships,\n ),\n )\n\n const migrations = sanitizeCollection(\n config as unknown as Config,\n migrationsCollection,\n richTextSanitizers,\n validRelationships,\n )\n\n // @ts-expect-error indexSortableFields is only valid for @payloadcms/db-mongodb\n if (config?.db?.indexSortableFields) {\n migrations.indexes = [\n {\n fields: ['batch', 'name'],\n unique: false,\n },\n ]\n }\n configWithDefaults.collections!.push(migrations)\n\n if (queryPresetsCollections.length > 0) {\n configWithDefaults.collections!.push(\n sanitizeCollection(\n config as unknown as Config,\n getQueryPresetsConfig(config as unknown as Config),\n richTextSanitizers,\n validRelationships,\n ),\n )\n }\n\n addDefaultDashboardWidgets({\n config,\n richTextSanitizers,\n validRelationships,\n })\n\n if (config.serverURL !== '') {\n config.csrf!.push(config.serverURL!)\n }\n\n if (!config.storage) {\n config.storage = []\n }\n\n if (!config.upload) {\n config.upload = { adapters: [] }\n }\n\n config.upload.adapters = Array.from(\n new Set(config.collections!.map((c) => c.upload?.adapter).filter(Boolean) as string[]),\n )\n\n // Pass through the email config as is so adapters don't break\n if (incomingConfig.email) {\n config.email = incomingConfig.email\n }\n\n if (typeof incomingConfig.editor === 'function') {\n config.editor = incomingConfig.editor({\n config: config as SanitizedConfig,\n isRoot: true,\n parentIsLocalized: false,\n })\n }\n\n for (const sanitizeRichText of richTextSanitizers) {\n sanitizeRichText(config as SanitizedConfig)\n }\n\n return config as SanitizedConfig\n}\n"],"names":["en","defaultUserCollection","authRootEndpoints","sanitizeCollection","migrationsCollection","DuplicateCollection","InvalidConfiguration","defaultTimezones","sanitizeGlobal","resolveHierarchyCollections","baseBlockFields","formatLabels","sanitizeFields","getLockedDocumentsCollection","lockedDocumentsCollectionSlug","getPreferencesCollection","preferencesCollectionSlug","getQueryPresetsConfig","queryPresetsCollectionSlug","getDefaultJobsCollection","jobsCollectionSlug","getJobStatsGlobal","stagedUploadEndpoints","uploadInstructionsEndpoint","flattenAllFields","flattenBlock","hasScheduledPublishEnabled","validateTimezones","getSchedulePublishTask","addDefaultsToConfig","addOrderableEndpoint","addOrderableFieldsAndHook","sanitizeAdminConfig","configToSanitize","sanitizedConfig","loggingLevels","Forbidden","Locked","MissingFile","NotFound","ValidationError","admin","user","firstCollectionWithAuth","collections","find","auth","Boolean","slug","push","userCollection","timezones","supportedTimezones","source","addDefaultDashboardWidgets","config","richTextSanitizers","validRelationships","collectionQueryFields","name","type","label","t","options","filter","collection","hidden","map","labels","plural","value","required","components","Field","defaultValue","max","min","recentlyViewedFields","hasMany","adminConfig","dashboard","widgets","Component","minWidth","fields","existingFieldNames","Set","parentIsLocalized","defaultLayout","widgetSlug","width","sanitizeConfig","incomingConfig","configWithDefaults","duration","safetyBuffer","jobs","processingLease","endpoints","some","upload","endpoint","localization","firstLocale","locales","localeCodes","locale","code","rtl","toString","fallback","i18nConfig","fallbackLanguage","supportedLanguages","translations","i18n","supportedLangKeys","Object","keys","fallbackLang","includes","schedulePublishCollections","queryPresetsCollections","schedulePublishGlobals","collectionSlugs","c","dashboardWidgets","widget","length","blocks","block","sanitizedBlock","_sanitized","concat","flattenedSanitizedBlock","orderableJoins","i","has","add","draftsConfig","versions","drafts","schedulePublish","enableQueryPresets","fieldsToAdd","Map","joinFieldPathsByCollection","orderable","currentFields","get","set","defaultSort","joinInfo","targetCollection","targetCollectionSlug","orderFieldName","currentJoinFieldPaths","joinFieldOn","orderableFields","flattenedFields","size","globals","tasks","adminUserSlug","enabled","Array","isArray","workflows","hasConcurrency","task","concurrency","workflow","hasScheduleProperty","schedule","scheduling","defaultJobsCollection","jobsCollectionOverrides","sanitizedJobsCollection","lockedDocumentsCollection","migrations","db","indexSortableFields","indexes","unique","serverURL","csrf","storage","adapters","from","adapter","email","editor","isRoot","sanitizeRichText"],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { sanitizeConfig } from './sanitize.js';
|
|
3
|
+
const configDefaults = {
|
|
4
|
+
db: {
|
|
5
|
+
defaultIDType: 'text',
|
|
6
|
+
// @ts-expect-error partial config
|
|
7
|
+
init: ()=>{}
|
|
8
|
+
},
|
|
9
|
+
secret: 'secret'
|
|
10
|
+
};
|
|
11
|
+
describe('sanitizeConfig', ()=>{
|
|
12
|
+
it('should populate sanitized root config defaults for a minimal config', ()=>{
|
|
13
|
+
const config = {
|
|
14
|
+
...configDefaults
|
|
15
|
+
};
|
|
16
|
+
const sanitizedConfig = sanitizeConfig(config);
|
|
17
|
+
expect(sanitizedConfig.admin).toMatchObject({
|
|
18
|
+
avatar: 'gravatar',
|
|
19
|
+
components: {},
|
|
20
|
+
custom: {},
|
|
21
|
+
dashboard: {
|
|
22
|
+
defaultLayout: [
|
|
23
|
+
{
|
|
24
|
+
widgetSlug: 'collections',
|
|
25
|
+
width: 'full'
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
widgetSlug: 'activity',
|
|
29
|
+
width: 'small'
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
widgets: expect.any(Array)
|
|
33
|
+
},
|
|
34
|
+
dateFormat: 'MMMM do yyyy, h:mm a',
|
|
35
|
+
dependencies: {},
|
|
36
|
+
importMap: {
|
|
37
|
+
baseDir: process.cwd()
|
|
38
|
+
},
|
|
39
|
+
meta: {
|
|
40
|
+
defaultOGImageType: 'dynamic',
|
|
41
|
+
robots: 'noindex, nofollow',
|
|
42
|
+
titleSuffix: '- Payload'
|
|
43
|
+
},
|
|
44
|
+
routes: {
|
|
45
|
+
account: '/account',
|
|
46
|
+
createFirstUser: '/create-first-user',
|
|
47
|
+
forgot: '/forgot',
|
|
48
|
+
inactivity: '/logout-inactivity',
|
|
49
|
+
login: '/login',
|
|
50
|
+
logout: '/logout',
|
|
51
|
+
reset: '/reset',
|
|
52
|
+
unauthorized: '/unauthorized'
|
|
53
|
+
},
|
|
54
|
+
theme: 'all',
|
|
55
|
+
timezones: {
|
|
56
|
+
supportedTimezones: expect.any(Array)
|
|
57
|
+
},
|
|
58
|
+
user: 'users'
|
|
59
|
+
});
|
|
60
|
+
expect(sanitizedConfig.graphQL).toEqual({
|
|
61
|
+
disableIntrospectionInProduction: true,
|
|
62
|
+
disablePlaygroundInProduction: true,
|
|
63
|
+
maxComplexity: 1000,
|
|
64
|
+
schemaOutputFile: `${process.cwd()}/schema.graphql`
|
|
65
|
+
});
|
|
66
|
+
expect(sanitizedConfig.typescript).toEqual({
|
|
67
|
+
autoGenerate: true,
|
|
68
|
+
outputFile: `${process.cwd()}/payload-types.ts`
|
|
69
|
+
});
|
|
70
|
+
expect(sanitizedConfig.routes).toEqual({
|
|
71
|
+
admin: '/admin',
|
|
72
|
+
api: '/api',
|
|
73
|
+
graphQL: '/graphql',
|
|
74
|
+
graphQLPlayground: '/graphql-playground'
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
it('should populate a nested default when the property is explicitly undefined', ()=>{
|
|
78
|
+
const config = {
|
|
79
|
+
...configDefaults,
|
|
80
|
+
admin: {
|
|
81
|
+
avatar: undefined
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
const sanitizedConfig = sanitizeConfig(config);
|
|
85
|
+
expect(sanitizedConfig.admin.avatar).toBe('gravatar');
|
|
86
|
+
});
|
|
87
|
+
it('should populate sanitized localization defaults with no locales', ()=>{
|
|
88
|
+
const config = {
|
|
89
|
+
...configDefaults,
|
|
90
|
+
localization: {
|
|
91
|
+
defaultLocale: 'en',
|
|
92
|
+
locales: []
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
const sanitizedConfig = sanitizeConfig(config);
|
|
96
|
+
expect(sanitizedConfig.localization).toEqual({
|
|
97
|
+
defaultLocale: 'en',
|
|
98
|
+
fallback: true,
|
|
99
|
+
localeCodes: [],
|
|
100
|
+
locales: []
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
//# sourceMappingURL=sanitize.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/config/sanitize.spec.ts"],"sourcesContent":["import type { Config } from './types.js'\n\nimport { describe, expect, it } from 'vitest'\n\nimport { sanitizeConfig } from './sanitize.js'\n\nconst configDefaults: Config = {\n db: {\n defaultIDType: 'text',\n // @ts-expect-error partial config\n init: () => {},\n },\n secret: 'secret',\n}\n\ndescribe('sanitizeConfig', () => {\n it('should populate sanitized root config defaults for a minimal config', () => {\n const config: Config = {\n ...configDefaults,\n }\n\n const sanitizedConfig = sanitizeConfig(config)\n\n expect(sanitizedConfig.admin).toMatchObject({\n avatar: 'gravatar',\n components: {},\n custom: {},\n dashboard: {\n defaultLayout: [\n { widgetSlug: 'collections', width: 'full' },\n { widgetSlug: 'activity', width: 'small' },\n ],\n widgets: expect.any(Array),\n },\n dateFormat: 'MMMM do yyyy, h:mm a',\n dependencies: {},\n importMap: {\n baseDir: process.cwd(),\n },\n meta: {\n defaultOGImageType: 'dynamic',\n robots: 'noindex, nofollow',\n titleSuffix: '- Payload',\n },\n routes: {\n account: '/account',\n createFirstUser: '/create-first-user',\n forgot: '/forgot',\n inactivity: '/logout-inactivity',\n login: '/login',\n logout: '/logout',\n reset: '/reset',\n unauthorized: '/unauthorized',\n },\n theme: 'all',\n timezones: {\n supportedTimezones: expect.any(Array),\n },\n user: 'users',\n })\n expect(sanitizedConfig.graphQL).toEqual({\n disableIntrospectionInProduction: true,\n disablePlaygroundInProduction: true,\n maxComplexity: 1000,\n schemaOutputFile: `${process.cwd()}/schema.graphql`,\n })\n expect(sanitizedConfig.typescript).toEqual({\n autoGenerate: true,\n outputFile: `${process.cwd()}/payload-types.ts`,\n })\n expect(sanitizedConfig.routes).toEqual({\n admin: '/admin',\n api: '/api',\n graphQL: '/graphql',\n graphQLPlayground: '/graphql-playground',\n })\n })\n\n it('should populate a nested default when the property is explicitly undefined', () => {\n const config: Config = {\n ...configDefaults,\n admin: {\n avatar: undefined,\n },\n }\n\n const sanitizedConfig = sanitizeConfig(config)\n\n expect(sanitizedConfig.admin.avatar).toBe('gravatar')\n })\n\n it('should populate sanitized localization defaults with no locales', () => {\n const config: Config = {\n ...configDefaults,\n localization: {\n defaultLocale: 'en',\n locales: [],\n },\n }\n\n const sanitizedConfig = sanitizeConfig(config)\n\n expect(sanitizedConfig.localization).toEqual({\n defaultLocale: 'en',\n fallback: true,\n localeCodes: [],\n locales: [],\n })\n })\n})\n"],"names":["describe","expect","it","sanitizeConfig","configDefaults","db","defaultIDType","init","secret","config","sanitizedConfig","admin","toMatchObject","avatar","components","custom","dashboard","defaultLayout","widgetSlug","width","widgets","any","Array","dateFormat","dependencies","importMap","baseDir","process","cwd","meta","defaultOGImageType","robots","titleSuffix","routes","account","createFirstUser","forgot","inactivity","login","logout","reset","unauthorized","theme","timezones","supportedTimezones","user","graphQL","toEqual","disableIntrospectionInProduction","disablePlaygroundInProduction","maxComplexity","schemaOutputFile","typescript","autoGenerate","outputFile","api","graphQLPlayground","undefined","toBe","localization","defaultLocale","locales","fallback","localeCodes"],"mappings":"AAEA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAE7C,SAASC,cAAc,QAAQ,gBAAe;AAE9C,MAAMC,iBAAyB;IAC7BC,IAAI;QACFC,eAAe;QACf,kCAAkC;QAClCC,MAAM,KAAO;IACf;IACAC,QAAQ;AACV;AAEAR,SAAS,kBAAkB;IACzBE,GAAG,uEAAuE;QACxE,MAAMO,SAAiB;YACrB,GAAGL,cAAc;QACnB;QAEA,MAAMM,kBAAkBP,eAAeM;QAEvCR,OAAOS,gBAAgBC,KAAK,EAAEC,aAAa,CAAC;YAC1CC,QAAQ;YACRC,YAAY,CAAC;YACbC,QAAQ,CAAC;YACTC,WAAW;gBACTC,eAAe;oBACb;wBAAEC,YAAY;wBAAeC,OAAO;oBAAO;oBAC3C;wBAAED,YAAY;wBAAYC,OAAO;oBAAQ;iBAC1C;gBACDC,SAASnB,OAAOoB,GAAG,CAACC;YACtB;YACAC,YAAY;YACZC,cAAc,CAAC;YACfC,WAAW;gBACTC,SAASC,QAAQC,GAAG;YACtB;YACAC,MAAM;gBACJC,oBAAoB;gBACpBC,QAAQ;gBACRC,aAAa;YACf;YACAC,QAAQ;gBACNC,SAAS;gBACTC,iBAAiB;gBACjBC,QAAQ;gBACRC,YAAY;gBACZC,OAAO;gBACPC,QAAQ;gBACRC,OAAO;gBACPC,cAAc;YAChB;YACAC,OAAO;YACPC,WAAW;gBACTC,oBAAoB3C,OAAOoB,GAAG,CAACC;YACjC;YACAuB,MAAM;QACR;QACA5C,OAAOS,gBAAgBoC,OAAO,EAAEC,OAAO,CAAC;YACtCC,kCAAkC;YAClCC,+BAA+B;YAC/BC,eAAe;YACfC,kBAAkB,GAAGxB,QAAQC,GAAG,GAAG,eAAe,CAAC;QACrD;QACA3B,OAAOS,gBAAgB0C,UAAU,EAAEL,OAAO,CAAC;YACzCM,cAAc;YACdC,YAAY,GAAG3B,QAAQC,GAAG,GAAG,iBAAiB,CAAC;QACjD;QACA3B,OAAOS,gBAAgBuB,MAAM,EAAEc,OAAO,CAAC;YACrCpC,OAAO;YACP4C,KAAK;YACLT,SAAS;YACTU,mBAAmB;QACrB;IACF;IAEAtD,GAAG,8EAA8E;QAC/E,MAAMO,SAAiB;YACrB,GAAGL,cAAc;YACjBO,OAAO;gBACLE,QAAQ4C;YACV;QACF;QAEA,MAAM/C,kBAAkBP,eAAeM;QAEvCR,OAAOS,gBAAgBC,KAAK,CAACE,MAAM,EAAE6C,IAAI,CAAC;IAC5C;IAEAxD,GAAG,mEAAmE;QACpE,MAAMO,SAAiB;YACrB,GAAGL,cAAc;YACjBuD,cAAc;gBACZC,eAAe;gBACfC,SAAS,EAAE;YACb;QACF;QAEA,MAAMnD,kBAAkBP,eAAeM;QAEvCR,OAAOS,gBAAgBiD,YAAY,EAAEZ,OAAO,CAAC;YAC3Ca,eAAe;YACfE,UAAU;YACVC,aAAa,EAAE;YACfF,SAAS,EAAE;QACb;IACF;AACF"}
|