payload 4.0.0-internal.4cbdd50 → 4.0.0-internal.4e1f822
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/bin.js +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 +2 -22
- 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/forms/Field.d.ts +2 -2
- package/dist/admin/forms/Field.d.ts.map +1 -1
- package/dist/admin/forms/Field.js.map +1 -1
- package/dist/admin/forms/Form.d.ts +0 -29
- package/dist/admin/forms/Form.d.ts.map +1 -1
- package/dist/admin/forms/Form.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 +4 -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 +2 -2
- 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 +2 -1
- package/dist/auth/operations/login.d.ts.map +1 -1
- package/dist/auth/operations/login.js.map +1 -1
- package/dist/auth/operations/logout.d.ts.map +1 -1
- package/dist/auth/operations/me.d.ts +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 +9 -9
- package/dist/auth/operations/refresh.js.map +1 -1
- package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
- package/dist/auth/operations/resetPassword.d.ts.map +1 -1
- package/dist/auth/operations/resetPassword.js.map +1 -1
- package/dist/auth/operations/unlock.d.ts.map +1 -1
- package/dist/auth/operations/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/sendVerificationEmail.d.ts +2 -2
- package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
- package/dist/auth/sendVerificationEmail.js +1 -1
- package/dist/auth/sendVerificationEmail.js.map +1 -1
- package/dist/auth/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 +4 -5
- package/dist/auth/sessions.d.ts.map +1 -1
- package/dist/auth/sessions.js +5 -3
- package/dist/auth/sessions.js.map +1 -1
- package/dist/auth/strategies/apiKey.d.ts.map +1 -1
- package/dist/auth/strategies/apiKey.js +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 +2 -2
- package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -1
- package/dist/auth/strategies/local/register.d.ts.map +1 -1
- package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
- package/dist/auth/types.d.ts +34 -35
- 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 +126 -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 +60 -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 +103 -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 +75 -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 +49 -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 +48 -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 +178 -0
- package/dist/cli/commands/collections/updateDocument.js.map +1 -0
- package/dist/cli/commands/data/input.d.ts +10 -0
- package/dist/cli/commands/data/input.d.ts.map +1 -0
- package/dist/cli/commands/data/input.js +57 -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/{bin → cli/commands}/generateImportMap/iterateCollections.js +10 -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 +47 -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 +47 -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 +40 -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 +5 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +73 -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 +22 -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 +36 -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 +66 -0
- package/dist/cli/runtime/createRuntime.js.map +1 -0
- package/dist/cli/runtime/getCommandInput.d.ts +13 -0
- package/dist/cli/runtime/getCommandInput.d.ts.map +1 -0
- package/dist/cli/runtime/getCommandInput.js +78 -0
- package/dist/cli/runtime/getCommandInput.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 +117 -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 +42 -0
- package/dist/cli/runtime/output.d.ts.map +1 -0
- package/dist/cli/runtime/output.js +91 -0
- package/dist/cli/runtime/output.js.map +1 -0
- package/dist/cli/runtime/redirectOutputToStderr.d.ts +3 -0
- package/dist/cli/runtime/redirectOutputToStderr.d.ts.map +1 -0
- package/dist/cli/runtime/redirectOutputToStderr.js +17 -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 +7 -1
- package/dist/collections/config/client.js.map +1 -1
- package/dist/collections/config/defaults.d.ts +4 -8
- package/dist/collections/config/defaults.d.ts.map +1 -1
- package/dist/collections/config/defaults.js +37 -47
- 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 +62 -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 +1 -0
- 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 -158
- 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/local/count.d.ts +3 -3
- package/dist/collections/operations/local/count.d.ts.map +1 -1
- package/dist/collections/operations/local/count.js.map +1 -1
- package/dist/collections/operations/local/countVersions.d.ts +3 -3
- package/dist/collections/operations/local/countVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/countVersions.js.map +1 -1
- package/dist/collections/operations/local/create.d.ts +3 -3
- package/dist/collections/operations/local/create.d.ts.map +1 -1
- package/dist/collections/operations/local/create.js.map +1 -1
- package/dist/collections/operations/local/delete.d.ts +3 -3
- package/dist/collections/operations/local/delete.d.ts.map +1 -1
- package/dist/collections/operations/local/delete.js.map +1 -1
- package/dist/collections/operations/local/duplicate.d.ts +3 -3
- package/dist/collections/operations/local/duplicate.d.ts.map +1 -1
- package/dist/collections/operations/local/duplicate.js.map +1 -1
- package/dist/collections/operations/local/find.d.ts +3 -3
- package/dist/collections/operations/local/find.d.ts.map +1 -1
- package/dist/collections/operations/local/find.js.map +1 -1
- package/dist/collections/operations/local/findByID.d.ts +3 -3
- package/dist/collections/operations/local/findByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findByID.js.map +1 -1
- package/dist/collections/operations/local/findDistinct.d.ts +2 -2
- package/dist/collections/operations/local/findDistinct.d.ts.map +1 -1
- package/dist/collections/operations/local/findDistinct.js.map +1 -1
- package/dist/collections/operations/local/findVersionByID.d.ts +3 -3
- package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersionByID.js.map +1 -1
- package/dist/collections/operations/local/findVersions.d.ts +3 -3
- package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersions.js.map +1 -1
- package/dist/collections/operations/local/restoreVersion.d.ts +3 -3
- package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/local/restoreVersion.js.map +1 -1
- package/dist/collections/operations/local/update.d.ts +3 -3
- package/dist/collections/operations/local/update.d.ts.map +1 -1
- package/dist/collections/operations/local/update.js.map +1 -1
- 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 -29
- package/dist/collections/operations/utilities/types.d.ts.map +1 -1
- package/dist/collections/operations/utilities/types.js.map +1 -1
- package/dist/collections/operations/utilities/update.d.ts.map +1 -1
- package/dist/config/build.js +1 -1
- package/dist/config/build.js.map +1 -1
- package/dist/config/client.d.ts +4 -4
- 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 +0 -4
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +94 -119
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/definePlugin.d.ts +10 -10
- package/dist/config/definePlugin.d.ts.map +1 -1
- package/dist/config/definePlugin.js +7 -11
- package/dist/config/definePlugin.js.map +1 -1
- package/dist/config/orderable/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 +172 -38
- 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 +500 -399
- 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 +6 -0
- package/dist/exports/internal.d.ts.map +1 -1
- package/dist/exports/internal.js +7 -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 +8 -5
- package/dist/exports/shared.d.ts.map +1 -1
- package/dist/exports/shared.js +6 -4
- 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 +50 -12
- 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 +11 -1
- 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 +15 -4
- 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/local/countVersions.d.ts +3 -3
- package/dist/globals/operations/local/countVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/countVersions.js.map +1 -1
- package/dist/globals/operations/local/findOne.d.ts +3 -3
- package/dist/globals/operations/local/findOne.d.ts.map +1 -1
- package/dist/globals/operations/local/findOne.js.map +1 -1
- package/dist/globals/operations/local/findVersionByID.d.ts +3 -3
- package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersionByID.js.map +1 -1
- package/dist/globals/operations/local/findVersions.d.ts +3 -3
- package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersions.js.map +1 -1
- package/dist/globals/operations/local/restoreVersion.d.ts +3 -3
- package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/local/restoreVersion.js.map +1 -1
- package/dist/globals/operations/local/update.d.ts +3 -3
- package/dist/globals/operations/local/update.d.ts.map +1 -1
- package/dist/globals/operations/local/update.js.map +1 -1
- 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 +6085 -4339
- package/dist/index.d.ts +158 -55
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +85 -65
- 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 +8 -4
- package/dist/preferences/keys.d.ts.map +1 -1
- package/dist/preferences/keys.js +4 -1
- package/dist/preferences/keys.js.map +1 -1
- package/dist/preferences/types.d.ts +15 -0
- package/dist/preferences/types.d.ts.map +1 -1
- package/dist/preferences/types.js +3 -1
- package/dist/preferences/types.js.map +1 -1
- package/dist/query-presets/access.d.ts.map +1 -1
- package/dist/query-presets/config.d.ts.map +1 -1
- package/dist/query-presets/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 +12 -10
- 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/endpoints/getFileFromURL.js +2 -0
- package/dist/uploads/endpoints/getFileFromURL.js.map +1 -1
- 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 +3 -12
- 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/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 +60 -46
- 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/getExternalFile.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 +378 -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/matchMimeType.d.ts +8 -0
- package/dist/uploads/matchMimeType.d.ts.map +1 -0
- package/dist/uploads/matchMimeType.js +19 -0
- package/dist/uploads/matchMimeType.js.map +1 -0
- package/dist/uploads/matchMimeType.spec.js +66 -0
- package/dist/uploads/matchMimeType.spec.js.map +1 -0
- package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
- package/dist/uploads/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/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 +112 -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/utilities/addDataAndFileToRequest.d.ts.map +1 -1
- package/dist/utilities/addDataAndFileToRequest.js +12 -39
- 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.map +1 -1
- package/dist/utilities/configToJSONSchema.d.ts +13 -4
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +139 -61
- package/dist/utilities/configToJSONSchema.js.map +1 -1
- package/dist/utilities/configToJSONSchema.spec.js +378 -22
- package/dist/utilities/configToJSONSchema.spec.js.map +1 -1
- package/dist/utilities/createLocalReq.d.ts +2 -2
- package/dist/utilities/createLocalReq.d.ts.map +1 -1
- package/dist/utilities/createLocalReq.js.map +1 -1
- package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
- package/dist/utilities/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 +3 -0
- package/dist/utilities/getEntityPermissions/getEntityPermissions.js.map +1 -1
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts +7 -1
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.d.ts.map +1 -1
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.js +19 -2
- package/dist/utilities/getEntityPermissions/populateFieldPermissions.js.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/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/envPaths.d.ts.map +1 -1
- package/dist/utilities/telemetry/conf/envPaths.js +40 -31
- package/dist/utilities/telemetry/conf/envPaths.js.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/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 +18 -4
- package/dist/utilities/telemetry/index.d.ts.map +1 -1
- package/dist/utilities/telemetry/index.js +13 -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.map +1 -1
- package/dist/versions/deleteScheduledPublishJobs.d.ts.map +1 -1
- package/dist/versions/deleteScheduledPublishJobs.js +2 -2
- 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/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/utilities/isRSCEnabled.d.ts +0 -12
- package/dist/utilities/isRSCEnabled.d.ts.map +0 -1
- package/dist/utilities/isRSCEnabled.js +0 -14
- package/dist/utilities/isRSCEnabled.js.map +0 -1
- /package/dist/{bin → cli/commands}/generateImportMap/generateImportMap.spec.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utilities/telemetry/index.ts"],"sourcesContent":["import { execSync } from 'child_process'\nimport ciInfo from 'ci-info'\nimport { randomBytes } from 'crypto'\nimport fs from 'fs'\nimport path from 'path'\nimport { fileURLToPath } from 'url'\n\nimport type { Payload } from '../../types/index.js'\nimport type { AdminInitEvent } from './events/adminInit.js'\nimport type { ServerInitEvent } from './events/serverInit.js'\n\nimport { findUp } from '../findUp.js'\nimport { Conf } from './conf/index.js'\nimport { oneWayHash } from './oneWayHash.js'\n\nexport type BaseEvent = {\n ciName: null | string\n dbAdapter: string\n emailAdapter: null | string\n envID: string\n isCI: boolean\n locales: string[]\n localizationDefaultLocale: null | string\n localizationEnabled: boolean\n nodeEnv: string\n nodeVersion: string\n payloadVersion: string\n projectID: string\n projectIDSource: 'cwd' | 'git' | 'packageJSON' | 'serverURL'\n uploadAdapters: string[]\n}\n\ntype PackageJSON = {\n dependencies: Record<string, string | undefined>\n name: string\n}\n\ntype TelemetryEvent = AdminInitEvent | ServerInitEvent\n\ntype Args = {\n event: TelemetryEvent\n payload: Payload\n}\n\nlet baseEvent: BaseEvent | null = null\n\nexport const sendEvent = async ({ event, payload }: Args): Promise<void> => {\n try {\n if (payload.config.telemetry !== false) {\n const { packageJSON, packageJSONPath } = await getPackageJSON()\n\n // Only generate the base event once\n if (!baseEvent) {\n const { projectID, source: projectIDSource } = getProjectID(payload, packageJSON!)\n baseEvent = {\n ciName: ciInfo.isCI ? ciInfo.name : null,\n envID: getEnvID(),\n isCI: ciInfo.isCI,\n nodeEnv: process.env.NODE_ENV || 'development',\n nodeVersion: process.version,\n payloadVersion: getPayloadVersion(packageJSON!),\n projectID,\n projectIDSource,\n ...getLocalizationInfo(payload),\n dbAdapter: payload.db.name,\n emailAdapter: payload.email?.name || null,\n uploadAdapters: payload.config.upload.adapters,\n }\n }\n\n if (process.env.PAYLOAD_TELEMETRY_DEBUG) {\n payload.logger.info({\n event: { ...baseEvent, ...event, packageJSONPath },\n msg: 'Telemetry Event',\n })\n return\n }\n\n await fetch('https://telemetry.payloadcms.com/events', {\n body: JSON.stringify({ ...baseEvent, ...event }),\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n }\n } catch (_) {\n // Eat any errors in sending telemetry event\n }\n}\n\n/**\n * This is a quasi-persistent identifier used to dedupe recurring events. It's\n * generated from random data and completely anonymous.\n */\nconst getEnvID = (): string => {\n const conf = new Conf()\n const ENV_ID = 'envID'\n\n const val = conf.get(ENV_ID)\n if (val) {\n return val as string\n }\n\n const generated = randomBytes(32).toString('hex')\n conf.set(ENV_ID, generated)\n return generated\n}\n\nconst getProjectID = (\n payload: Payload,\n packageJSON: PackageJSON,\n): { projectID: string; source: BaseEvent['projectIDSource'] } => {\n const gitID = getGitID(payload)\n if (gitID) {\n return { projectID: oneWayHash(gitID, payload.secret), source: 'git' }\n }\n\n const packageJSONID = getPackageJSONID(payload, packageJSON)\n if (packageJSONID) {\n return { projectID: oneWayHash(packageJSONID, payload.secret), source: 'packageJSON' }\n }\n\n const serverURL = payload.config.serverURL\n if (serverURL) {\n return { projectID: oneWayHash(serverURL, payload.secret), source: 'serverURL' }\n }\n\n const cwd = process.cwd()\n return { projectID: oneWayHash(cwd, payload.secret), source: 'cwd' }\n}\n\nconst getGitID = (payload: Payload) => {\n try {\n const originBuffer = execSync('git config --local --get remote.origin.url', {\n stdio: 'pipe',\n timeout: 1000,\n })\n\n return oneWayHash(String(originBuffer).trim(), payload.secret)\n } catch (_) {\n return null\n }\n}\n\nconst getPackageJSON = async (): Promise<{\n packageJSON?: PackageJSON\n packageJSONPath: string\n}> => {\n let packageJSONPath = path.resolve(process.cwd(), 'package.json')\n\n if (!fs.existsSync(packageJSONPath)) {\n // Old logic\n const filename = fileURLToPath(import.meta.url)\n const dirname = path.dirname(filename)\n packageJSONPath = (await findUp({\n dir: dirname,\n fileNames: ['package.json'],\n }))!\n }\n\n const jsonContentString = await fs.promises.readFile(packageJSONPath, 'utf-8')\n const jsonContent: PackageJSON = JSON.parse(jsonContentString)\n return { packageJSON: jsonContent, packageJSONPath }\n}\n\nconst getPackageJSONID = (payload: Payload, packageJSON: PackageJSON): string => {\n return oneWayHash(packageJSON.name, payload.secret)\n}\n\nexport const getPayloadVersion = (packageJSON: PackageJSON): string => {\n return packageJSON?.dependencies?.payload ?? ''\n}\n\nexport const getLocalizationInfo = (\n payload: Payload,\n): Pick<BaseEvent, 'locales' | 'localizationDefaultLocale' | 'localizationEnabled'> => {\n if (!payload.config.localization) {\n return {\n locales: [],\n localizationDefaultLocale: null,\n localizationEnabled: false,\n }\n }\n\n return {\n locales: payload.config.localization.localeCodes,\n localizationDefaultLocale: payload.config.localization.defaultLocale,\n localizationEnabled: true,\n }\n}\n"],"names":["execSync","ciInfo","randomBytes","fs","path","fileURLToPath","findUp","Conf","oneWayHash","baseEvent","sendEvent","event","payload","config","telemetry","packageJSON","packageJSONPath","getPackageJSON","projectID","source","projectIDSource","getProjectID","ciName","isCI","name","envID","getEnvID","nodeEnv","process","env","NODE_ENV","nodeVersion","version","payloadVersion","getPayloadVersion","getLocalizationInfo","dbAdapter","db","emailAdapter","email","uploadAdapters","upload","adapters","PAYLOAD_TELEMETRY_DEBUG","logger","info","msg","fetch","body","JSON","stringify","headers","method","_","conf","ENV_ID","val","get","generated","toString","set","gitID","getGitID","secret","packageJSONID","getPackageJSONID","serverURL","cwd","originBuffer","stdio","timeout","String","trim","resolve","existsSync","filename","url","dirname","dir","fileNames","jsonContentString","promises","readFile","jsonContent","parse","dependencies","localization","locales","localizationDefaultLocale","localizationEnabled","localeCodes","defaultLocale"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/utilities/telemetry/index.ts"],"sourcesContent":["import { execSync } from 'child_process'\nimport ciInfo from 'ci-info'\nimport { randomBytes } from 'crypto'\nimport fs from 'fs'\nimport path from 'path'\nimport { fileURLToPath } from 'url'\n\nimport type { Payload } from '../../types/index.js'\nimport type { AdminInitEvent } from './events/adminInit.js'\nimport type { ServerInitEvent } from './events/serverInit.js'\nimport type { FigmaProduct, ProjectCohort } from './getProjectContext.js'\n\nimport { findUp } from '../findUp.js'\nimport { Conf } from './conf/index.js'\nimport { getProjectContext } from './getProjectContext.js'\nimport { oneWayHash } from './oneWayHash.js'\n\nexport type BaseEvent = {\n ciName: null | string\n dbAdapter: string\n emailAdapter: null | string\n envID: string\n figmaProduct?: FigmaProduct\n isCI: boolean\n locales: string[]\n localizationDefaultLocale: null | string\n localizationEnabled: boolean\n nodeEnv: string\n nodeVersion: string\n payloadVersion: string\n /** Slugs of installed first-party (`@payloadcms/`) plugins. */\n plugins: string[]\n projectCohorts: ProjectCohort[]\n projectID: string\n projectIDSource: 'cwd' | 'git' | 'packageJSON' | 'serverURL'\n uploadAdapters: string[]\n}\n\ntype PackageJSON = {\n dependencies: Record<string, string | undefined>\n name: string\n}\n\ntype TelemetryEvent = AdminInitEvent | ServerInitEvent\n\ntype Args<TEvent extends { type: string } = TelemetryEvent> = {\n event: TEvent\n payload: Payload\n}\n\nlet baseEvent: BaseEvent | null = null\n\nexport const sendTelemetryEvent = async <TEvent extends { type: string }>({\n event,\n payload,\n}: Args<TEvent>): Promise<void> => {\n try {\n if (payload.config.telemetry !== false) {\n const { packageJSON, packageJSONPath } = await getPackageJSON()\n\n // Only generate the base event once\n if (!baseEvent) {\n const { projectID, source: projectIDSource } = getProjectID(payload, packageJSON!)\n const plugins = getInstalledPluginSlugs(payload)\n baseEvent = {\n ciName: ciInfo.isCI ? ciInfo.name : null,\n envID: getEnvID(),\n isCI: ciInfo.isCI,\n nodeEnv: process.env.NODE_ENV || 'development',\n nodeVersion: process.version,\n payloadVersion: getPayloadVersion(packageJSON!),\n projectID,\n projectIDSource,\n ...getProjectContext({\n packages: Object.keys(packageJSON!.dependencies ?? {}),\n payload,\n plugins,\n }),\n ...getLocalizationInfo(payload),\n dbAdapter: payload.db.name,\n emailAdapter: payload.email?.name || null,\n plugins,\n uploadAdapters: payload.config.upload.adapters,\n }\n }\n\n if (process.env.PAYLOAD_TELEMETRY_DEBUG) {\n payload.logger.info({\n event: { ...baseEvent, ...event, packageJSONPath },\n msg: 'Telemetry Event',\n })\n return\n }\n\n await fetch('https://telemetry.payloadcms.com/events', {\n body: JSON.stringify({ ...baseEvent, ...event }),\n headers: {\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n }\n } catch (_) {\n // Eat any errors in sending telemetry event\n }\n}\n\n/**\n * This is a quasi-persistent identifier used to dedupe recurring events. It's\n * generated from random data and completely anonymous.\n */\nconst getEnvID = (): string => {\n const conf = new Conf()\n const ENV_ID = 'envID'\n\n const val = conf.get(ENV_ID)\n if (val) {\n return val as string\n }\n\n const generated = randomBytes(32).toString('hex')\n conf.set(ENV_ID, generated)\n return generated\n}\n\nconst getProjectID = (\n payload: Payload,\n packageJSON: PackageJSON,\n): { projectID: string; source: BaseEvent['projectIDSource'] } => {\n const gitID = getGitID(payload)\n if (gitID) {\n return { projectID: oneWayHash(gitID, payload.secret), source: 'git' }\n }\n\n const packageJSONID = getPackageJSONID(payload, packageJSON)\n if (packageJSONID) {\n return { projectID: oneWayHash(packageJSONID, payload.secret), source: 'packageJSON' }\n }\n\n const serverURL = payload.config.serverURL\n if (serverURL) {\n return { projectID: oneWayHash(serverURL, payload.secret), source: 'serverURL' }\n }\n\n const cwd = process.cwd()\n return { projectID: oneWayHash(cwd, payload.secret), source: 'cwd' }\n}\n\nconst getGitID = (payload: Payload) => {\n try {\n const originBuffer = execSync('git config --local --get remote.origin.url', {\n stdio: 'pipe',\n timeout: 1000,\n })\n\n return oneWayHash(String(originBuffer).trim(), payload.secret)\n } catch (_) {\n return null\n }\n}\n\nconst getPackageJSON = async (): Promise<{\n packageJSON?: PackageJSON\n packageJSONPath: string\n}> => {\n let packageJSONPath = path.resolve(process.cwd(), 'package.json')\n\n if (!fs.existsSync(packageJSONPath)) {\n // Old logic\n const filename = fileURLToPath(import.meta.url)\n const dirname = path.dirname(filename)\n packageJSONPath = (await findUp({\n dir: dirname,\n fileNames: ['package.json'],\n }))!\n }\n\n const jsonContentString = await fs.promises.readFile(packageJSONPath, 'utf-8')\n const jsonContent: PackageJSON = JSON.parse(jsonContentString)\n return { packageJSON: jsonContent, packageJSONPath }\n}\n\nconst getPackageJSONID = (payload: Payload, packageJSON: PackageJSON): string => {\n return oneWayHash(packageJSON.name, payload.secret)\n}\n\nexport const getPayloadVersion = (packageJSON: PackageJSON): string => {\n return packageJSON?.dependencies?.payload ?? ''\n}\n\n/**\n * Slugs of installed first-party (`@payloadcms/`) plugins. Custom plugin slugs\n * are author-defined and can leak project details, so they are never collected.\n */\nexport const getInstalledPluginSlugs = (payload: Payload): string[] =>\n (payload.config.plugins ?? [])\n .map((plugin) => plugin.slug)\n .filter((slug): slug is string => typeof slug === 'string' && slug.startsWith('@payloadcms/'))\n\nexport const getLocalizationInfo = (\n payload: Payload,\n): Pick<BaseEvent, 'locales' | 'localizationDefaultLocale' | 'localizationEnabled'> => {\n if (!payload.config.localization) {\n return {\n locales: [],\n localizationDefaultLocale: null,\n localizationEnabled: false,\n }\n }\n\n return {\n locales: payload.config.localization.localeCodes,\n localizationDefaultLocale: payload.config.localization.defaultLocale,\n localizationEnabled: true,\n }\n}\n"],"names":["execSync","ciInfo","randomBytes","fs","path","fileURLToPath","findUp","Conf","getProjectContext","oneWayHash","baseEvent","sendTelemetryEvent","event","payload","config","telemetry","packageJSON","packageJSONPath","getPackageJSON","projectID","source","projectIDSource","getProjectID","plugins","getInstalledPluginSlugs","ciName","isCI","name","envID","getEnvID","nodeEnv","process","env","NODE_ENV","nodeVersion","version","payloadVersion","getPayloadVersion","packages","Object","keys","dependencies","getLocalizationInfo","dbAdapter","db","emailAdapter","email","uploadAdapters","upload","adapters","PAYLOAD_TELEMETRY_DEBUG","logger","info","msg","fetch","body","JSON","stringify","headers","method","_","conf","ENV_ID","val","get","generated","toString","set","gitID","getGitID","secret","packageJSONID","getPackageJSONID","serverURL","cwd","originBuffer","stdio","timeout","String","trim","resolve","existsSync","filename","url","dirname","dir","fileNames","jsonContentString","promises","readFile","jsonContent","parse","map","plugin","slug","filter","startsWith","localization","locales","localizationDefaultLocale","localizationEnabled","localeCodes","defaultLocale"],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { definePlugin } from '../../config/definePlugin.js';
|
|
3
|
+
import { getInstalledPluginSlugs } from './index.js';
|
|
4
|
+
// `getInstalledPluginSlugs` is what populates `baseEvent.plugins` - the list of
|
|
5
|
+
// installed plugin slugs sent with every telemetry event.
|
|
6
|
+
const payloadWithPlugins = (plugins)=>({
|
|
7
|
+
config: {
|
|
8
|
+
plugins
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
describe('telemetry installed plugins', ()=>{
|
|
12
|
+
it('should send only first-party slugs, ignoring custom and slug-less plugins', ()=>{
|
|
13
|
+
const seoPlugin = definePlugin({
|
|
14
|
+
slug: '@payloadcms/plugin-seo',
|
|
15
|
+
plugin: ({ config })=>config
|
|
16
|
+
})();
|
|
17
|
+
const stripePlugin = definePlugin({
|
|
18
|
+
slug: '@payloadcms/plugin-stripe',
|
|
19
|
+
plugin: ({ config })=>config
|
|
20
|
+
})();
|
|
21
|
+
// A user's own plugin — its slug is author-defined and must not be sent.
|
|
22
|
+
const customPlugin = definePlugin({
|
|
23
|
+
slug: 'acme-internal-billing',
|
|
24
|
+
plugin: ({ config })=>config
|
|
25
|
+
})();
|
|
26
|
+
const legacyPlugin = (config)=>config;
|
|
27
|
+
const slugs = getInstalledPluginSlugs(payloadWithPlugins([
|
|
28
|
+
seoPlugin,
|
|
29
|
+
stripePlugin,
|
|
30
|
+
customPlugin,
|
|
31
|
+
legacyPlugin
|
|
32
|
+
]));
|
|
33
|
+
expect(slugs).toEqual([
|
|
34
|
+
'@payloadcms/plugin-seo',
|
|
35
|
+
'@payloadcms/plugin-stripe'
|
|
36
|
+
]);
|
|
37
|
+
});
|
|
38
|
+
it('should send an empty array when no first-party plugins are installed', ()=>{
|
|
39
|
+
expect(getInstalledPluginSlugs(payloadWithPlugins([]))).toEqual([]);
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=index.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utilities/telemetry/index.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport type { Plugin } from '../../config/types.js'\nimport type { Payload } from '../../types/index.js'\n\nimport { definePlugin } from '../../config/definePlugin.js'\nimport { getInstalledPluginSlugs } from './index.js'\n\n// `getInstalledPluginSlugs` is what populates `baseEvent.plugins` - the list of\n// installed plugin slugs sent with every telemetry event.\nconst payloadWithPlugins = (plugins: Plugin[]): Payload =>\n ({ config: { plugins } }) as unknown as Payload\n\ndescribe('telemetry installed plugins', () => {\n it('should send only first-party slugs, ignoring custom and slug-less plugins', () => {\n const seoPlugin = definePlugin({\n slug: '@payloadcms/plugin-seo',\n plugin: ({ config }) => config,\n })()\n const stripePlugin = definePlugin({\n slug: '@payloadcms/plugin-stripe',\n plugin: ({ config }) => config,\n })()\n // A user's own plugin — its slug is author-defined and must not be sent.\n const customPlugin = definePlugin({\n slug: 'acme-internal-billing',\n plugin: ({ config }) => config,\n })()\n const legacyPlugin: Plugin = (config) => config\n\n const slugs = getInstalledPluginSlugs(\n payloadWithPlugins([seoPlugin, stripePlugin, customPlugin, legacyPlugin]),\n )\n\n expect(slugs).toEqual(['@payloadcms/plugin-seo', '@payloadcms/plugin-stripe'])\n })\n\n it('should send an empty array when no first-party plugins are installed', () => {\n expect(getInstalledPluginSlugs(payloadWithPlugins([]))).toEqual([])\n })\n})\n"],"names":["describe","expect","it","definePlugin","getInstalledPluginSlugs","payloadWithPlugins","plugins","config","seoPlugin","slug","plugin","stripePlugin","customPlugin","legacyPlugin","slugs","toEqual"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAK7C,SAASC,YAAY,QAAQ,+BAA8B;AAC3D,SAASC,uBAAuB,QAAQ,aAAY;AAEpD,gFAAgF;AAChF,0DAA0D;AAC1D,MAAMC,qBAAqB,CAACC,UACzB,CAAA;QAAEC,QAAQ;YAAED;QAAQ;IAAE,CAAA;AAEzBN,SAAS,+BAA+B;IACtCE,GAAG,6EAA6E;QAC9E,MAAMM,YAAYL,aAAa;YAC7BM,MAAM;YACNC,QAAQ,CAAC,EAAEH,MAAM,EAAE,GAAKA;QAC1B;QACA,MAAMI,eAAeR,aAAa;YAChCM,MAAM;YACNC,QAAQ,CAAC,EAAEH,MAAM,EAAE,GAAKA;QAC1B;QACA,yEAAyE;QACzE,MAAMK,eAAeT,aAAa;YAChCM,MAAM;YACNC,QAAQ,CAAC,EAAEH,MAAM,EAAE,GAAKA;QAC1B;QACA,MAAMM,eAAuB,CAACN,SAAWA;QAEzC,MAAMO,QAAQV,wBACZC,mBAAmB;YAACG;YAAWG;YAAcC;YAAcC;SAAa;QAG1EZ,OAAOa,OAAOC,OAAO,CAAC;YAAC;YAA0B;SAA4B;IAC/E;IAEAb,GAAG,wEAAwE;QACzED,OAAOG,wBAAwBC,mBAAmB,EAAE,IAAIU,OAAO,CAAC,EAAE;IACpE;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oneWayHash.d.ts","sourceRoot":"","sources":["../../../src/utilities/telemetry/oneWayHash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAIxC,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"oneWayHash.d.ts","sourceRoot":"","sources":["../../../src/utilities/telemetry/oneWayHash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAIxC,eAAO,MAAM,UAAU,SAAU,UAAU,UAAU,MAAM,KAAG,MAU7D,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../src/utilities/timestamp.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../src/utilities/timestamp.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,UAAW,MAAM,SAMtC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toKebabCase.d.ts","sourceRoot":"","sources":["../../src/utilities/toKebabCase.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"toKebabCase.d.ts","sourceRoot":"","sources":["../../src/utilities/toKebabCase.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,YAAa,MAAM,uBAIzB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformColumnPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/transformColumnPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,MAAM,cAAc,GAAG,MAAM,EAAE,CAAA;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"transformColumnPreferences.d.ts","sourceRoot":"","sources":["../../src/utilities/transformColumnPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE/D,MAAM,MAAM,cAAc,GAAG,MAAM,EAAE,CAAA;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,YAC/B,MAAM,EAAE,GAAG,gBAAgB,EAAE,GAAG,cAAc,GAAG,MAAM,GAAG,SAAS,KAC3E,gBAAgB,EAAE,GAAG,SA0BvB,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,YAChC,MAAM,EAAE,GAAG,gBAAgB,EAAE,KACrC,cAEF,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transforms incoming data from object format to tuple array format.
|
|
3
|
+
* Converts { longitude: number, latitude: number } back to [longitude, latitude]
|
|
4
|
+
* for Payload's internal point field representation.
|
|
5
|
+
*/
|
|
6
|
+
export declare function transformPointDataToPayload(data: Record<string, unknown>): Record<string, unknown>;
|
|
7
|
+
//# sourceMappingURL=transformPointDataToPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformPointDataToPayload.d.ts","sourceRoot":"","sources":["../../src/utilities/transformPointDataToPayload.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgCzB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transforms incoming data from object format to tuple array format.
|
|
3
|
+
* Converts { longitude: number, latitude: number } back to [longitude, latitude]
|
|
4
|
+
* for Payload's internal point field representation.
|
|
5
|
+
*/ export function transformPointDataToPayload(data) {
|
|
6
|
+
if (!data || typeof data !== 'object') {
|
|
7
|
+
return data;
|
|
8
|
+
}
|
|
9
|
+
const transformed = {};
|
|
10
|
+
for (const [key, value] of Object.entries(data)){
|
|
11
|
+
if (value && typeof value === 'object' && 'longitude' in value && 'latitude' in value && typeof value.longitude === 'number' && typeof value.latitude === 'number') {
|
|
12
|
+
// Transform to tuple array [longitude, latitude]
|
|
13
|
+
transformed[key] = [
|
|
14
|
+
value.longitude,
|
|
15
|
+
value.latitude
|
|
16
|
+
];
|
|
17
|
+
} else if (Array.isArray(value)) {
|
|
18
|
+
transformed[key] = value.map((item)=>typeof item === 'object' ? transformPointDataToPayload(item) : item);
|
|
19
|
+
} else if (value && typeof value === 'object') {
|
|
20
|
+
transformed[key] = transformPointDataToPayload(value);
|
|
21
|
+
} else {
|
|
22
|
+
transformed[key] = value;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return transformed;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=transformPointDataToPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/transformPointDataToPayload.ts"],"sourcesContent":["/**\n * Transforms incoming data from object format to tuple array format.\n * Converts { longitude: number, latitude: number } back to [longitude, latitude]\n * for Payload's internal point field representation.\n */\nexport function transformPointDataToPayload(\n data: Record<string, unknown>,\n): Record<string, unknown> {\n if (!data || typeof data !== 'object') {\n return data\n }\n\n const transformed: Record<string, unknown> = {}\n\n for (const [key, value] of Object.entries(data)) {\n if (\n value &&\n typeof value === 'object' &&\n 'longitude' in value &&\n 'latitude' in value &&\n typeof value.longitude === 'number' &&\n typeof value.latitude === 'number'\n ) {\n // Transform to tuple array [longitude, latitude]\n transformed[key] = [value.longitude, value.latitude]\n } else if (Array.isArray(value)) {\n transformed[key] = value.map((item) =>\n typeof item === 'object'\n ? transformPointDataToPayload(item as Record<string, unknown>)\n : item,\n )\n } else if (value && typeof value === 'object') {\n transformed[key] = transformPointDataToPayload(value as Record<string, unknown>)\n } else {\n transformed[key] = value\n }\n }\n\n return transformed\n}\n"],"names":["transformPointDataToPayload","data","transformed","key","value","Object","entries","longitude","latitude","Array","isArray","map","item"],"mappings":"AAAA;;;;CAIC,GACD,OAAO,SAASA,4BACdC,IAA6B;IAE7B,IAAI,CAACA,QAAQ,OAAOA,SAAS,UAAU;QACrC,OAAOA;IACT;IAEA,MAAMC,cAAuC,CAAC;IAE9C,KAAK,MAAM,CAACC,KAAKC,MAAM,IAAIC,OAAOC,OAAO,CAACL,MAAO;QAC/C,IACEG,SACA,OAAOA,UAAU,YACjB,eAAeA,SACf,cAAcA,SACd,OAAOA,MAAMG,SAAS,KAAK,YAC3B,OAAOH,MAAMI,QAAQ,KAAK,UAC1B;YACA,iDAAiD;YACjDN,WAAW,CAACC,IAAI,GAAG;gBAACC,MAAMG,SAAS;gBAAEH,MAAMI,QAAQ;aAAC;QACtD,OAAO,IAAIC,MAAMC,OAAO,CAACN,QAAQ;YAC/BF,WAAW,CAACC,IAAI,GAAGC,MAAMO,GAAG,CAAC,CAACC,OAC5B,OAAOA,SAAS,WACZZ,4BAA4BY,QAC5BA;QAER,OAAO,IAAIR,SAAS,OAAOA,UAAU,UAAU;YAC7CF,WAAW,CAACC,IAAI,GAAGH,4BAA4BI;QACjD,OAAO;YACLF,WAAW,CAACC,IAAI,GAAGC;QACrB;IACF;IAEA,OAAOF;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformWhereQuery.d.ts","sourceRoot":"","sources":["../../src/utilities/transformWhereQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"transformWhereQuery.d.ts","sourceRoot":"","sources":["../../src/utilities/transformWhereQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,eAAgB,KAAK,KAAG,KA4CvD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/utilities/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,KAAK,EAAkC,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAiGlG,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE;IAC1C;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,IAAI,CAAA;IACjB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;IAC7C;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;CACxC,KAAK,OAAO,GAAG,IAAI,CAAA;AAEpB,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,sBAAsB,CAAA;IAChC,aAAa,CAAC,EAAE,CAAC,MAAM,UAAU,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAA;IAC5D,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAAA;IACjC,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;CACxC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/utilities/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,KAAK,EAAkC,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAiGlG,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE;IAC1C;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,IAAI,CAAA;IACjB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;IAC7C;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;CACxC,KAAK,OAAO,GAAG,IAAI,CAAA;AAEpB,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,sBAAsB,CAAA;IAChC,aAAa,CAAC,EAAE,CAAC,MAAM,UAAU,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAA;IAC5D,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAAA;IACjC,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;IAC7C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;CACxC,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,oJAYxB,kBAAkB,KAAG,IAgWvB,CAAA"}
|
|
@@ -67,7 +67,7 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
67
67
|
* @param fillEmpty fill empty properties to use this without data
|
|
68
68
|
* @param ref the data or any artifacts assigned in the callback during field recursion
|
|
69
69
|
* @param parentRef the data or any artifacts assigned in the callback during field recursion one level up
|
|
70
|
-
*/ export const traverseFields = ({ callback, callbackStack: _callbackStack = [], config, fields, fillEmpty = true, isTopLevel = true, leavesFirst = false, parentIsLocalized, parentPath = '', parentRef = {}, ref = {} })=>{
|
|
70
|
+
*/ export const traverseFields = ({ callback, callbackStack: _callbackStack = [], config, fields, fillEmpty = true, isTopLevel = true, leavesFirst = false, parentIsLocalized = false, parentPath = '', parentRef = {}, ref = {} })=>{
|
|
71
71
|
const fieldsMatched = fields.some((field)=>{
|
|
72
72
|
let callbackStack = [];
|
|
73
73
|
if (!isTopLevel) {
|
|
@@ -83,7 +83,7 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
83
83
|
if (!leavesFirst && callback && callback({
|
|
84
84
|
field,
|
|
85
85
|
next,
|
|
86
|
-
parentIsLocalized
|
|
86
|
+
parentIsLocalized,
|
|
87
87
|
parentPath,
|
|
88
88
|
parentRef,
|
|
89
89
|
ref
|
|
@@ -93,7 +93,7 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
93
93
|
callbackStack.push(()=>callback({
|
|
94
94
|
field,
|
|
95
95
|
next,
|
|
96
|
-
parentIsLocalized
|
|
96
|
+
parentIsLocalized,
|
|
97
97
|
parentPath,
|
|
98
98
|
parentRef,
|
|
99
99
|
ref
|
|
@@ -107,6 +107,10 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
107
107
|
let currentParentRef = parentRef;
|
|
108
108
|
if (field.type === 'tabs' && 'tabs' in field) {
|
|
109
109
|
for (const tab of field.tabs){
|
|
110
|
+
const tabIsLocalized = fieldShouldBeLocalized({
|
|
111
|
+
field: tab,
|
|
112
|
+
parentIsLocalized
|
|
113
|
+
});
|
|
110
114
|
let tabRef = ref;
|
|
111
115
|
if (skip) {
|
|
112
116
|
return false;
|
|
@@ -114,7 +118,7 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
114
118
|
if ('name' in tab && tab.name) {
|
|
115
119
|
if (!ref[tab.name] || typeof ref[tab.name] !== 'object') {
|
|
116
120
|
if (fillEmpty) {
|
|
117
|
-
if (
|
|
121
|
+
if (tabIsLocalized) {
|
|
118
122
|
;
|
|
119
123
|
ref[tab.name] = {
|
|
120
124
|
en: {}
|
|
@@ -133,7 +137,7 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
133
137
|
type: 'tab'
|
|
134
138
|
},
|
|
135
139
|
next,
|
|
136
|
-
parentIsLocalized
|
|
140
|
+
parentIsLocalized,
|
|
137
141
|
parentPath,
|
|
138
142
|
parentRef: currentParentRef,
|
|
139
143
|
ref: tabRef
|
|
@@ -146,14 +150,14 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
146
150
|
type: 'tab'
|
|
147
151
|
},
|
|
148
152
|
next,
|
|
149
|
-
parentIsLocalized
|
|
153
|
+
parentIsLocalized,
|
|
150
154
|
parentPath,
|
|
151
155
|
parentRef: currentParentRef,
|
|
152
156
|
ref: tabRef
|
|
153
157
|
}));
|
|
154
158
|
}
|
|
155
159
|
tabRef = tabRef[tab.name];
|
|
156
|
-
if (
|
|
160
|
+
if (tabIsLocalized) {
|
|
157
161
|
for(const key in tabRef){
|
|
158
162
|
if (tabRef[key] && typeof tabRef[key] === 'object') {
|
|
159
163
|
traverseFields({
|
|
@@ -179,7 +183,7 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
179
183
|
type: 'tab'
|
|
180
184
|
},
|
|
181
185
|
next,
|
|
182
|
-
parentIsLocalized
|
|
186
|
+
parentIsLocalized,
|
|
183
187
|
parentPath,
|
|
184
188
|
parentRef: currentParentRef,
|
|
185
189
|
ref: tabRef
|
|
@@ -192,14 +196,14 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
192
196
|
type: 'tab'
|
|
193
197
|
},
|
|
194
198
|
next,
|
|
195
|
-
parentIsLocalized
|
|
199
|
+
parentIsLocalized,
|
|
196
200
|
parentPath,
|
|
197
201
|
parentRef: currentParentRef,
|
|
198
202
|
ref: tabRef
|
|
199
203
|
}));
|
|
200
204
|
}
|
|
201
205
|
}
|
|
202
|
-
if (!
|
|
206
|
+
if (!tabIsLocalized) {
|
|
203
207
|
traverseFields({
|
|
204
208
|
callback,
|
|
205
209
|
callbackStack,
|
|
@@ -208,7 +212,7 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
208
212
|
fillEmpty,
|
|
209
213
|
isTopLevel: false,
|
|
210
214
|
leavesFirst,
|
|
211
|
-
parentIsLocalized
|
|
215
|
+
parentIsLocalized,
|
|
212
216
|
parentPath: tabHasName(tab) ? `${parentPath}${tab.name}.` : parentPath,
|
|
213
217
|
parentRef: currentParentRef,
|
|
214
218
|
ref: tabRef
|
|
@@ -228,7 +232,7 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
228
232
|
if (field.type === 'group' || field.type === 'tab') {
|
|
229
233
|
if (fieldShouldBeLocalized({
|
|
230
234
|
field,
|
|
231
|
-
parentIsLocalized
|
|
235
|
+
parentIsLocalized
|
|
232
236
|
})) {
|
|
233
237
|
;
|
|
234
238
|
ref[field.name] = {
|
|
@@ -241,7 +245,7 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
241
245
|
} else if (field.type === 'array' || field.type === 'blocks') {
|
|
242
246
|
if (fieldShouldBeLocalized({
|
|
243
247
|
field,
|
|
244
|
-
parentIsLocalized
|
|
248
|
+
parentIsLocalized
|
|
245
249
|
})) {
|
|
246
250
|
;
|
|
247
251
|
ref[field.name] = {
|
|
@@ -260,7 +264,7 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
260
264
|
}
|
|
261
265
|
if ((field.type === 'tab' || field.type === 'group') && fieldShouldBeLocalized({
|
|
262
266
|
field,
|
|
263
|
-
parentIsLocalized
|
|
267
|
+
parentIsLocalized
|
|
264
268
|
}) && currentRef && typeof currentRef === 'object') {
|
|
265
269
|
if (fieldAffectsData(field)) {
|
|
266
270
|
for(const key in currentRef){
|
|
@@ -297,15 +301,9 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
297
301
|
return;
|
|
298
302
|
}
|
|
299
303
|
if ((field.type === 'blocks' || field.type === 'array') && currentRef && typeof currentRef === 'object') {
|
|
300
|
-
// TODO: `?? field.localized ?? false` shouldn't be necessary, but right now it
|
|
301
|
-
// is so that all fields are correctly traversed in copyToLocale and
|
|
302
|
-
// therefore pass the localization integration tests.
|
|
303
|
-
// I tried replacing the `!parentIsLocalized` condition with `parentIsLocalized === false`
|
|
304
|
-
// in `fieldShouldBeLocalized`, but several tests failed. We must be calling it with incorrect
|
|
305
|
-
// parameters somewhere.
|
|
306
304
|
if (fieldShouldBeLocalized({
|
|
307
305
|
field,
|
|
308
|
-
parentIsLocalized
|
|
306
|
+
parentIsLocalized
|
|
309
307
|
})) {
|
|
310
308
|
if (Array.isArray(currentRef)) {
|
|
311
309
|
traverseArrayOrBlocksField({
|
|
@@ -349,7 +347,7 @@ const traverseArrayOrBlocksField = ({ callback, callbackStack, config, data, fie
|
|
|
349
347
|
field,
|
|
350
348
|
fillEmpty,
|
|
351
349
|
leavesFirst,
|
|
352
|
-
parentIsLocalized
|
|
350
|
+
parentIsLocalized,
|
|
353
351
|
parentPath,
|
|
354
352
|
parentRef: currentParentRef
|
|
355
353
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/traverseFields.ts"],"sourcesContent":["import type { Config, SanitizedConfig } from '../config/types.js'\nimport type { ArrayField, Block, BlocksField, Field, TabAsField } from '../fields/config/types.js'\n\nimport {\n fieldAffectsData,\n fieldHasSubFields,\n fieldShouldBeLocalized,\n tabHasName,\n} from '../fields/config/types.js'\n\nconst traverseArrayOrBlocksField = ({\n callback,\n callbackStack,\n config,\n data,\n field,\n fillEmpty,\n leavesFirst,\n parentIsLocalized,\n parentPath,\n parentRef,\n}: {\n callback: TraverseFieldsCallback\n callbackStack: (() => ReturnType<TraverseFieldsCallback>)[]\n config?: Config | SanitizedConfig\n data: Record<string, unknown>[]\n field: ArrayField | BlocksField\n fillEmpty: boolean\n leavesFirst: boolean\n parentIsLocalized: boolean\n parentPath: string\n parentRef?: unknown\n}) => {\n if (fillEmpty) {\n if (field.type === 'array') {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: field.fields,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: `${parentPath}${field.name}.`,\n parentRef,\n })\n }\n if (field.type === 'blocks') {\n for (const _block of field.blocks) {\n const block =\n typeof _block === 'string' ? config?.blocks?.find((b) => b.slug === _block) : _block\n if (block) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: block.fields,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: `${parentPath}${field.name}.`,\n parentRef,\n })\n }\n }\n }\n return\n }\n for (const ref of data) {\n let fields!: Field[]\n if (field.type === 'blocks' && typeof ref?.blockType === 'string') {\n const block =\n config?.blocks?.find((b) => b.slug === ref.blockType) ??\n field.blocks.find((b): b is Block => typeof b !== 'string' && b.slug === ref.blockType)\n\n fields = block?.fields as Field[]\n } else if (field.type === 'array') {\n fields = field.fields\n }\n\n if (fields) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: `${parentPath}${field.name}.`,\n parentRef,\n ref,\n })\n }\n }\n}\n\nexport type TraverseFieldsCallback = (args: {\n /**\n * The current field\n */\n field: Field | TabAsField\n /**\n * Function that when called will skip the current field and continue to the next\n */\n next?: () => void\n parentIsLocalized: boolean\n parentPath: string\n /**\n * The parent reference object\n */\n parentRef?: Record<string, unknown> | unknown\n /**\n * The current reference object\n */\n ref?: Record<string, unknown> | unknown\n}) => boolean | void\n\ntype TraverseFieldsArgs = {\n callback: TraverseFieldsCallback\n callbackStack?: (() => ReturnType<TraverseFieldsCallback>)[]\n config?: Config | SanitizedConfig\n fields: (Field | TabAsField)[]\n fillEmpty?: boolean\n isTopLevel?: boolean\n /**\n * @default false\n *\n * if this is `true`, the callback functions of the leaf fields will be called before the parent fields.\n * The return value of the callback function will be ignored.\n */\n leavesFirst?: boolean\n parentIsLocalized?: boolean\n parentPath?: string\n parentRef?: Record<string, unknown> | unknown\n ref?: Record<string, unknown> | unknown\n}\n\n/**\n * Iterate a recurse an array of fields, calling a callback for each field\n *\n * @param fields\n * @param callback callback called for each field, discontinue looping if callback returns truthy\n * @param fillEmpty fill empty properties to use this without data\n * @param ref the data or any artifacts assigned in the callback during field recursion\n * @param parentRef the data or any artifacts assigned in the callback during field recursion one level up\n */\nexport const traverseFields = ({\n callback,\n callbackStack: _callbackStack = [],\n config,\n fields,\n fillEmpty = true,\n isTopLevel = true,\n leavesFirst = false,\n parentIsLocalized,\n parentPath = '',\n parentRef = {},\n ref = {},\n}: TraverseFieldsArgs): void => {\n const fieldsMatched = fields.some((field) => {\n let callbackStack: (() => ReturnType<TraverseFieldsCallback>)[] = []\n if (!isTopLevel) {\n callbackStack = _callbackStack\n }\n let skip = false\n const next = () => {\n skip = true\n }\n\n if (!ref || typeof ref !== 'object') {\n return\n }\n\n if (\n !leavesFirst &&\n callback &&\n callback({ field, next, parentIsLocalized: parentIsLocalized!, parentPath, parentRef, ref })\n ) {\n return true\n } else if (leavesFirst) {\n callbackStack.push(() =>\n callback({\n field,\n next,\n parentIsLocalized: parentIsLocalized!,\n parentPath,\n parentRef,\n ref,\n }),\n )\n }\n\n if (skip) {\n return false\n }\n\n // avoid mutation of ref for all fields\n let currentRef = ref\n let currentParentRef = parentRef\n\n if (field.type === 'tabs' && 'tabs' in field) {\n for (const tab of field.tabs) {\n let tabRef = ref\n\n if (skip) {\n return false\n }\n\n if ('name' in tab && tab.name) {\n if (\n !ref[tab.name as keyof typeof ref] ||\n typeof ref[tab.name as keyof typeof ref] !== 'object'\n ) {\n if (fillEmpty) {\n if (tab.localized) {\n ;(ref as Record<string, any>)[tab.name] = { en: {} }\n } else {\n ;(ref as Record<string, any>)[tab.name] = {}\n }\n } else {\n continue\n }\n }\n\n if (\n callback &&\n !leavesFirst &&\n callback({\n field: { ...tab, type: 'tab' },\n next,\n parentIsLocalized: parentIsLocalized!,\n parentPath,\n parentRef: currentParentRef,\n ref: tabRef,\n })\n ) {\n return true\n } else if (leavesFirst) {\n callbackStack.push(() =>\n callback({\n field: { ...tab, type: 'tab' },\n next,\n parentIsLocalized: parentIsLocalized!,\n parentPath,\n parentRef: currentParentRef,\n ref: tabRef,\n }),\n )\n }\n\n tabRef = tabRef[tab.name as keyof typeof tabRef]\n\n if (tab.localized) {\n for (const key in tabRef as Record<string, unknown>) {\n if (\n tabRef[key as keyof typeof tabRef] &&\n typeof tabRef[key as keyof typeof tabRef] === 'object'\n ) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: tab.fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized: true,\n parentPath: `${parentPath}${tab.name}.`,\n parentRef: currentParentRef,\n ref: tabRef[key as keyof typeof tabRef],\n })\n }\n }\n }\n } else {\n if (\n callback &&\n !leavesFirst &&\n callback({\n field: { ...tab, type: 'tab' },\n next,\n parentIsLocalized: parentIsLocalized!,\n parentPath,\n parentRef: currentParentRef,\n ref: tabRef,\n })\n ) {\n return true\n } else if (leavesFirst) {\n callbackStack.push(() =>\n callback({\n field: { ...tab, type: 'tab' },\n next,\n parentIsLocalized: parentIsLocalized!,\n parentPath,\n parentRef: currentParentRef,\n ref: tabRef,\n }),\n )\n }\n }\n\n if (!tab.localized) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: tab.fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized: false,\n parentPath: tabHasName(tab) ? `${parentPath}${tab.name}.` : parentPath,\n parentRef: currentParentRef,\n ref: tabRef,\n })\n }\n\n if (skip) {\n return false\n }\n }\n\n return\n }\n\n if (field.type === 'tab' || fieldHasSubFields(field) || field.type === 'blocks') {\n if ('name' in field && field.name) {\n currentParentRef = currentRef\n if (!ref[field.name as keyof typeof ref]) {\n if (fillEmpty) {\n if (field.type === 'group' || field.type === 'tab') {\n if (fieldShouldBeLocalized({ field, parentIsLocalized: parentIsLocalized! })) {\n ;(ref as Record<string, any>)[field.name] = { en: {} }\n } else {\n ;(ref as Record<string, any>)[field.name] = {}\n }\n } else if (field.type === 'array' || field.type === 'blocks') {\n if (fieldShouldBeLocalized({ field, parentIsLocalized: parentIsLocalized! })) {\n ;(ref as Record<string, any>)[field.name] = { en: [] }\n } else {\n ;(ref as Record<string, any>)[field.name] = []\n }\n }\n } else {\n return\n }\n }\n currentRef = ref[field.name as keyof typeof ref]\n }\n\n if (\n (field.type === 'tab' || field.type === 'group') &&\n fieldShouldBeLocalized({ field, parentIsLocalized: parentIsLocalized! }) &&\n currentRef &&\n typeof currentRef === 'object'\n ) {\n if (fieldAffectsData(field)) {\n for (const key in currentRef as Record<string, unknown>) {\n if (currentRef[key as keyof typeof currentRef]) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: field.fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized: true,\n parentPath: field.name ? `${parentPath}${field.name}.` : parentPath,\n parentRef: currentParentRef,\n ref: currentRef[key as keyof typeof currentRef],\n })\n }\n }\n } else {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: field.fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized,\n parentRef: currentParentRef,\n ref: currentRef,\n })\n }\n\n return\n }\n\n if (\n (field.type === 'blocks' || field.type === 'array') &&\n currentRef &&\n typeof currentRef === 'object'\n ) {\n // TODO: `?? field.localized ?? false` shouldn't be necessary, but right now it\n // is so that all fields are correctly traversed in copyToLocale and\n // therefore pass the localization integration tests.\n // I tried replacing the `!parentIsLocalized` condition with `parentIsLocalized === false`\n // in `fieldShouldBeLocalized`, but several tests failed. We must be calling it with incorrect\n // parameters somewhere.\n if (\n fieldShouldBeLocalized({\n field,\n parentIsLocalized: parentIsLocalized ?? false,\n })\n ) {\n if (Array.isArray(currentRef)) {\n traverseArrayOrBlocksField({\n callback,\n callbackStack,\n config,\n data: currentRef,\n field,\n fillEmpty,\n leavesFirst,\n parentIsLocalized: true,\n parentPath,\n parentRef: currentParentRef,\n })\n } else {\n for (const key in currentRef as Record<string, unknown>) {\n const localeData = currentRef[key as keyof typeof currentRef]\n if (!Array.isArray(localeData)) {\n continue\n }\n\n traverseArrayOrBlocksField({\n callback,\n callbackStack,\n config,\n data: localeData,\n field,\n fillEmpty,\n leavesFirst,\n parentIsLocalized: true,\n parentPath,\n parentRef: currentParentRef,\n })\n }\n }\n } else if (Array.isArray(currentRef)) {\n traverseArrayOrBlocksField({\n callback,\n callbackStack,\n config,\n data: currentRef as Record<string, unknown>[],\n field,\n fillEmpty,\n leavesFirst,\n parentIsLocalized: parentIsLocalized!,\n parentPath,\n parentRef: currentParentRef,\n })\n }\n } else if (currentRef && typeof currentRef === 'object' && 'fields' in field) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: field.fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized,\n parentPath: 'name' in field && field.name ? `${parentPath}${field.name}.` : parentPath,\n parentRef: currentParentRef,\n ref: currentRef,\n })\n }\n }\n\n if (isTopLevel) {\n callbackStack.reverse().forEach((cb) => {\n cb()\n })\n }\n })\n\n // Fallback: Handle dot-notation paths when no fields matched\n if (!fieldsMatched && ref && typeof ref === 'object') {\n Object.keys(ref).forEach((key) => {\n if (key.includes('.')) {\n // Split on first dot only\n const firstDotIndex = key.indexOf('.')\n const fieldName = key.substring(0, firstDotIndex)\n const remainingPath = key.substring(firstDotIndex + 1)\n\n // Create nested structure for this field\n if (!ref[fieldName as keyof typeof ref]) {\n ;(ref as Record<string, unknown>)[fieldName] = {}\n }\n\n const nestedRef = ref[fieldName as keyof typeof ref] as Record<string, unknown>\n\n // Move the value to the nested structure\n nestedRef[remainingPath] = (ref as Record<string, unknown>)[key]\n delete (ref as Record<string, unknown>)[key]\n\n // Recursively process the newly created nested structure\n // The field traversal will naturally handle it if the field exists in the schema\n traverseFields({\n callback,\n callbackStack: _callbackStack,\n config,\n fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized,\n parentPath,\n parentRef,\n ref,\n })\n }\n })\n }\n}\n"],"names":["fieldAffectsData","fieldHasSubFields","fieldShouldBeLocalized","tabHasName","traverseArrayOrBlocksField","callback","callbackStack","config","data","field","fillEmpty","leavesFirst","parentIsLocalized","parentPath","parentRef","type","traverseFields","fields","isTopLevel","localized","name","_block","blocks","block","find","b","slug","ref","blockType","_callbackStack","fieldsMatched","some","skip","next","push","currentRef","currentParentRef","tab","tabs","tabRef","en","key","Array","isArray","localeData","reverse","forEach","cb","Object","keys","includes","firstDotIndex","indexOf","fieldName","substring","remainingPath","nestedRef"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/traverseFields.ts"],"sourcesContent":["import type { Config, SanitizedConfig } from '../config/types.js'\nimport type { ArrayField, Block, BlocksField, Field, TabAsField } from '../fields/config/types.js'\n\nimport {\n fieldAffectsData,\n fieldHasSubFields,\n fieldShouldBeLocalized,\n tabHasName,\n} from '../fields/config/types.js'\n\nconst traverseArrayOrBlocksField = ({\n callback,\n callbackStack,\n config,\n data,\n field,\n fillEmpty,\n leavesFirst,\n parentIsLocalized,\n parentPath,\n parentRef,\n}: {\n callback: TraverseFieldsCallback\n callbackStack: (() => ReturnType<TraverseFieldsCallback>)[]\n config?: Config | SanitizedConfig\n data: Record<string, unknown>[]\n field: ArrayField | BlocksField\n fillEmpty: boolean\n leavesFirst: boolean\n parentIsLocalized: boolean\n parentPath: string\n parentRef?: unknown\n}) => {\n if (fillEmpty) {\n if (field.type === 'array') {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: field.fields,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: `${parentPath}${field.name}.`,\n parentRef,\n })\n }\n if (field.type === 'blocks') {\n for (const _block of field.blocks) {\n const block =\n typeof _block === 'string' ? config?.blocks?.find((b) => b.slug === _block) : _block\n if (block) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: block.fields,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: `${parentPath}${field.name}.`,\n parentRef,\n })\n }\n }\n }\n return\n }\n for (const ref of data) {\n let fields!: Field[]\n if (field.type === 'blocks' && typeof ref?.blockType === 'string') {\n const block =\n config?.blocks?.find((b) => b.slug === ref.blockType) ??\n field.blocks.find((b): b is Block => typeof b !== 'string' && b.slug === ref.blockType)\n\n fields = block?.fields as Field[]\n } else if (field.type === 'array') {\n fields = field.fields\n }\n\n if (fields) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentPath: `${parentPath}${field.name}.`,\n parentRef,\n ref,\n })\n }\n }\n}\n\nexport type TraverseFieldsCallback = (args: {\n /**\n * The current field\n */\n field: Field | TabAsField\n /**\n * Function that when called will skip the current field and continue to the next\n */\n next?: () => void\n parentIsLocalized: boolean\n parentPath: string\n /**\n * The parent reference object\n */\n parentRef?: Record<string, unknown> | unknown\n /**\n * The current reference object\n */\n ref?: Record<string, unknown> | unknown\n}) => boolean | void\n\ntype TraverseFieldsArgs = {\n callback: TraverseFieldsCallback\n callbackStack?: (() => ReturnType<TraverseFieldsCallback>)[]\n config?: Config | SanitizedConfig\n fields: (Field | TabAsField)[]\n fillEmpty?: boolean\n isTopLevel?: boolean\n /**\n * @default false\n *\n * if this is `true`, the callback functions of the leaf fields will be called before the parent fields.\n * The return value of the callback function will be ignored.\n */\n leavesFirst?: boolean\n parentIsLocalized?: boolean\n parentPath?: string\n parentRef?: Record<string, unknown> | unknown\n ref?: Record<string, unknown> | unknown\n}\n\n/**\n * Iterate a recurse an array of fields, calling a callback for each field\n *\n * @param fields\n * @param callback callback called for each field, discontinue looping if callback returns truthy\n * @param fillEmpty fill empty properties to use this without data\n * @param ref the data or any artifacts assigned in the callback during field recursion\n * @param parentRef the data or any artifacts assigned in the callback during field recursion one level up\n */\nexport const traverseFields = ({\n callback,\n callbackStack: _callbackStack = [],\n config,\n fields,\n fillEmpty = true,\n isTopLevel = true,\n leavesFirst = false,\n parentIsLocalized = false,\n parentPath = '',\n parentRef = {},\n ref = {},\n}: TraverseFieldsArgs): void => {\n const fieldsMatched = fields.some((field) => {\n let callbackStack: (() => ReturnType<TraverseFieldsCallback>)[] = []\n if (!isTopLevel) {\n callbackStack = _callbackStack\n }\n let skip = false\n const next = () => {\n skip = true\n }\n\n if (!ref || typeof ref !== 'object') {\n return\n }\n\n if (\n !leavesFirst &&\n callback &&\n callback({ field, next, parentIsLocalized, parentPath, parentRef, ref })\n ) {\n return true\n } else if (leavesFirst) {\n callbackStack.push(() =>\n callback({\n field,\n next,\n parentIsLocalized,\n parentPath,\n parentRef,\n ref,\n }),\n )\n }\n\n if (skip) {\n return false\n }\n\n // avoid mutation of ref for all fields\n let currentRef = ref\n let currentParentRef = parentRef\n\n if (field.type === 'tabs' && 'tabs' in field) {\n for (const tab of field.tabs) {\n const tabIsLocalized = fieldShouldBeLocalized({ field: tab, parentIsLocalized })\n let tabRef = ref\n\n if (skip) {\n return false\n }\n\n if ('name' in tab && tab.name) {\n if (\n !ref[tab.name as keyof typeof ref] ||\n typeof ref[tab.name as keyof typeof ref] !== 'object'\n ) {\n if (fillEmpty) {\n if (tabIsLocalized) {\n ;(ref as Record<string, any>)[tab.name] = { en: {} }\n } else {\n ;(ref as Record<string, any>)[tab.name] = {}\n }\n } else {\n continue\n }\n }\n\n if (\n callback &&\n !leavesFirst &&\n callback({\n field: { ...tab, type: 'tab' },\n next,\n parentIsLocalized,\n parentPath,\n parentRef: currentParentRef,\n ref: tabRef,\n })\n ) {\n return true\n } else if (leavesFirst) {\n callbackStack.push(() =>\n callback({\n field: { ...tab, type: 'tab' },\n next,\n parentIsLocalized,\n parentPath,\n parentRef: currentParentRef,\n ref: tabRef,\n }),\n )\n }\n\n tabRef = tabRef[tab.name as keyof typeof tabRef]\n\n if (tabIsLocalized) {\n for (const key in tabRef as Record<string, unknown>) {\n if (\n tabRef[key as keyof typeof tabRef] &&\n typeof tabRef[key as keyof typeof tabRef] === 'object'\n ) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: tab.fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized: true,\n parentPath: `${parentPath}${tab.name}.`,\n parentRef: currentParentRef,\n ref: tabRef[key as keyof typeof tabRef],\n })\n }\n }\n }\n } else {\n if (\n callback &&\n !leavesFirst &&\n callback({\n field: { ...tab, type: 'tab' },\n next,\n parentIsLocalized,\n parentPath,\n parentRef: currentParentRef,\n ref: tabRef,\n })\n ) {\n return true\n } else if (leavesFirst) {\n callbackStack.push(() =>\n callback({\n field: { ...tab, type: 'tab' },\n next,\n parentIsLocalized,\n parentPath,\n parentRef: currentParentRef,\n ref: tabRef,\n }),\n )\n }\n }\n\n if (!tabIsLocalized) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: tab.fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized,\n parentPath: tabHasName(tab) ? `${parentPath}${tab.name}.` : parentPath,\n parentRef: currentParentRef,\n ref: tabRef,\n })\n }\n\n if (skip) {\n return false\n }\n }\n\n return\n }\n\n if (field.type === 'tab' || fieldHasSubFields(field) || field.type === 'blocks') {\n if ('name' in field && field.name) {\n currentParentRef = currentRef\n if (!ref[field.name as keyof typeof ref]) {\n if (fillEmpty) {\n if (field.type === 'group' || field.type === 'tab') {\n if (fieldShouldBeLocalized({ field, parentIsLocalized })) {\n ;(ref as Record<string, any>)[field.name] = { en: {} }\n } else {\n ;(ref as Record<string, any>)[field.name] = {}\n }\n } else if (field.type === 'array' || field.type === 'blocks') {\n if (fieldShouldBeLocalized({ field, parentIsLocalized })) {\n ;(ref as Record<string, any>)[field.name] = { en: [] }\n } else {\n ;(ref as Record<string, any>)[field.name] = []\n }\n }\n } else {\n return\n }\n }\n currentRef = ref[field.name as keyof typeof ref]\n }\n\n if (\n (field.type === 'tab' || field.type === 'group') &&\n fieldShouldBeLocalized({ field, parentIsLocalized }) &&\n currentRef &&\n typeof currentRef === 'object'\n ) {\n if (fieldAffectsData(field)) {\n for (const key in currentRef as Record<string, unknown>) {\n if (currentRef[key as keyof typeof currentRef]) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: field.fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized: true,\n parentPath: field.name ? `${parentPath}${field.name}.` : parentPath,\n parentRef: currentParentRef,\n ref: currentRef[key as keyof typeof currentRef],\n })\n }\n }\n } else {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: field.fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized,\n parentRef: currentParentRef,\n ref: currentRef,\n })\n }\n\n return\n }\n\n if (\n (field.type === 'blocks' || field.type === 'array') &&\n currentRef &&\n typeof currentRef === 'object'\n ) {\n if (fieldShouldBeLocalized({ field, parentIsLocalized })) {\n if (Array.isArray(currentRef)) {\n traverseArrayOrBlocksField({\n callback,\n callbackStack,\n config,\n data: currentRef,\n field,\n fillEmpty,\n leavesFirst,\n parentIsLocalized: true,\n parentPath,\n parentRef: currentParentRef,\n })\n } else {\n for (const key in currentRef as Record<string, unknown>) {\n const localeData = currentRef[key as keyof typeof currentRef]\n if (!Array.isArray(localeData)) {\n continue\n }\n\n traverseArrayOrBlocksField({\n callback,\n callbackStack,\n config,\n data: localeData,\n field,\n fillEmpty,\n leavesFirst,\n parentIsLocalized: true,\n parentPath,\n parentRef: currentParentRef,\n })\n }\n }\n } else if (Array.isArray(currentRef)) {\n traverseArrayOrBlocksField({\n callback,\n callbackStack,\n config,\n data: currentRef as Record<string, unknown>[],\n field,\n fillEmpty,\n leavesFirst,\n parentIsLocalized,\n parentPath,\n parentRef: currentParentRef,\n })\n }\n } else if (currentRef && typeof currentRef === 'object' && 'fields' in field) {\n traverseFields({\n callback,\n callbackStack,\n config,\n fields: field.fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized,\n parentPath: 'name' in field && field.name ? `${parentPath}${field.name}.` : parentPath,\n parentRef: currentParentRef,\n ref: currentRef,\n })\n }\n }\n\n if (isTopLevel) {\n callbackStack.reverse().forEach((cb) => {\n cb()\n })\n }\n })\n\n // Fallback: Handle dot-notation paths when no fields matched\n if (!fieldsMatched && ref && typeof ref === 'object') {\n Object.keys(ref).forEach((key) => {\n if (key.includes('.')) {\n // Split on first dot only\n const firstDotIndex = key.indexOf('.')\n const fieldName = key.substring(0, firstDotIndex)\n const remainingPath = key.substring(firstDotIndex + 1)\n\n // Create nested structure for this field\n if (!ref[fieldName as keyof typeof ref]) {\n ;(ref as Record<string, unknown>)[fieldName] = {}\n }\n\n const nestedRef = ref[fieldName as keyof typeof ref] as Record<string, unknown>\n\n // Move the value to the nested structure\n nestedRef[remainingPath] = (ref as Record<string, unknown>)[key]\n delete (ref as Record<string, unknown>)[key]\n\n // Recursively process the newly created nested structure\n // The field traversal will naturally handle it if the field exists in the schema\n traverseFields({\n callback,\n callbackStack: _callbackStack,\n config,\n fields,\n fillEmpty,\n isTopLevel: false,\n leavesFirst,\n parentIsLocalized,\n parentPath,\n parentRef,\n ref,\n })\n }\n })\n }\n}\n"],"names":["fieldAffectsData","fieldHasSubFields","fieldShouldBeLocalized","tabHasName","traverseArrayOrBlocksField","callback","callbackStack","config","data","field","fillEmpty","leavesFirst","parentIsLocalized","parentPath","parentRef","type","traverseFields","fields","isTopLevel","localized","name","_block","blocks","block","find","b","slug","ref","blockType","_callbackStack","fieldsMatched","some","skip","next","push","currentRef","currentParentRef","tab","tabs","tabIsLocalized","tabRef","en","key","Array","isArray","localeData","reverse","forEach","cb","Object","keys","includes","firstDotIndex","indexOf","fieldName","substring","remainingPath","nestedRef"],"mappings":"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"}
|
|
@@ -48,6 +48,118 @@ describe('traverseFields', ()=>{
|
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
50
|
});
|
|
51
|
+
describe('parent localization', ()=>{
|
|
52
|
+
it('should preserve parent localization through tabs', ()=>{
|
|
53
|
+
const fields = [
|
|
54
|
+
{
|
|
55
|
+
name: 'group',
|
|
56
|
+
type: 'group',
|
|
57
|
+
localized: true,
|
|
58
|
+
fields: [
|
|
59
|
+
{
|
|
60
|
+
type: 'tabs',
|
|
61
|
+
tabs: [
|
|
62
|
+
{
|
|
63
|
+
label: 'Tab',
|
|
64
|
+
fields: [
|
|
65
|
+
{
|
|
66
|
+
name: 'text',
|
|
67
|
+
type: 'text'
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
];
|
|
76
|
+
let textParentIsLocalized;
|
|
77
|
+
traverseFields({
|
|
78
|
+
fields,
|
|
79
|
+
callback: ({ field, parentIsLocalized })=>{
|
|
80
|
+
if (field.type === 'text') {
|
|
81
|
+
textParentIsLocalized = parentIsLocalized;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
expect(textParentIsLocalized).toBe(true);
|
|
86
|
+
});
|
|
87
|
+
it('should traverse localized tabs within localized parents', ()=>{
|
|
88
|
+
let textParentIsLocalized;
|
|
89
|
+
traverseFields({
|
|
90
|
+
callback: ({ field, parentIsLocalized })=>{
|
|
91
|
+
if (field.type === 'text') {
|
|
92
|
+
textParentIsLocalized = parentIsLocalized;
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
fields: [
|
|
96
|
+
{
|
|
97
|
+
name: 'group',
|
|
98
|
+
type: 'group',
|
|
99
|
+
localized: true,
|
|
100
|
+
fields: [
|
|
101
|
+
{
|
|
102
|
+
type: 'tabs',
|
|
103
|
+
tabs: [
|
|
104
|
+
{
|
|
105
|
+
name: 'tab',
|
|
106
|
+
localized: true,
|
|
107
|
+
fields: [
|
|
108
|
+
{
|
|
109
|
+
name: 'text',
|
|
110
|
+
type: 'text'
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
ref: {
|
|
120
|
+
group: {
|
|
121
|
+
en: {
|
|
122
|
+
tab: {
|
|
123
|
+
text: 'value'
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
expect(textParentIsLocalized).toBe(true);
|
|
130
|
+
});
|
|
131
|
+
it('should preserve parent localization through collapsibles', ()=>{
|
|
132
|
+
const fields = [
|
|
133
|
+
{
|
|
134
|
+
name: 'group',
|
|
135
|
+
type: 'group',
|
|
136
|
+
localized: true,
|
|
137
|
+
fields: [
|
|
138
|
+
{
|
|
139
|
+
type: 'collapsible',
|
|
140
|
+
label: 'Collapsible',
|
|
141
|
+
fields: [
|
|
142
|
+
{
|
|
143
|
+
name: 'text',
|
|
144
|
+
type: 'text'
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
}
|
|
148
|
+
]
|
|
149
|
+
}
|
|
150
|
+
];
|
|
151
|
+
let textParentIsLocalized;
|
|
152
|
+
traverseFields({
|
|
153
|
+
fields,
|
|
154
|
+
callback: ({ field, parentIsLocalized })=>{
|
|
155
|
+
if (field.type === 'text') {
|
|
156
|
+
textParentIsLocalized = parentIsLocalized;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
expect(textParentIsLocalized).toBe(true);
|
|
161
|
+
});
|
|
162
|
+
});
|
|
51
163
|
});
|
|
52
164
|
|
|
53
165
|
//# sourceMappingURL=traverseFields.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/traverseFields.spec.ts"],"sourcesContent":["import { describe, it, expect } from 'vitest'\nimport { traverseFields } from './traverseFields.js'\nimport { Field } from '../fields/config/types.js'\n\ndescribe('traverseFields', () => {\n const tabsField: Field = {\n type: 'tabs',\n tabs: [\n {\n label: 'Tab 1',\n name: 'tab1',\n fields: [\n {\n type: 'tabs',\n tabs: [\n {\n label: 'Ui Only Tab',\n fields: [\n {\n type: 'group',\n name: 'group1',\n label: 'Group 1',\n fields: [\n {\n type: 'text',\n name: 'text1',\n label: 'Text 1',\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n }\n\n describe('tabs traversal', () => {\n it('should return correct dot notation in parentPath', () => {\n traverseFields({\n fields: [tabsField],\n callback: ({ field, parentPath }) => {\n if (field.type === 'text' && field.name === 'text1') {\n expect(parentPath).toEqual('tab1.group1.')\n }\n },\n })\n })\n })\n})\n"],"names":["describe","it","expect","traverseFields","tabsField","type","tabs","label","name","fields","callback","field","parentPath","toEqual"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,EAAE,EAAEC,MAAM,QAAQ,SAAQ;AAC7C,SAASC,cAAc,QAAQ,sBAAqB;AAGpDH,SAAS,kBAAkB;IACzB,MAAMI,YAAmB;QACvBC,MAAM;QACNC,MAAM;YACJ;gBACEC,OAAO;gBACPC,MAAM;gBACNC,QAAQ;oBACN;wBACEJ,MAAM;wBACNC,MAAM;4BACJ;gCACEC,OAAO;gCACPE,QAAQ;oCACN;wCACEJ,MAAM;wCACNG,MAAM;wCACND,OAAO;wCACPE,QAAQ;4CACN;gDACEJ,MAAM;gDACNG,MAAM;gDACND,OAAO;4CACT;yCACD;oCACH;iCACD;4BACH;yBACD;oBACH;iBACD;YACH;SACD;IACH;IAEAP,SAAS,kBAAkB;QACzBC,GAAG,oDAAoD;YACrDE,eAAe;gBACbM,QAAQ;oBAACL;iBAAU;gBACnBM,UAAU,CAAC,EAAEC,KAAK,EAAEC,UAAU,EAAE;oBAC9B,IAAID,MAAMN,IAAI,KAAK,UAAUM,MAAMH,IAAI,KAAK,SAAS;wBACnDN,OAAOU,YAAYC,OAAO,CAAC;oBAC7B;gBACF;YACF;QACF;IACF;AACF"}
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/traverseFields.spec.ts"],"sourcesContent":["import { describe, it, expect } from 'vitest'\nimport { traverseFields } from './traverseFields.js'\nimport type { Field } from '../fields/config/types.js'\n\ndescribe('traverseFields', () => {\n const tabsField: Field = {\n type: 'tabs',\n tabs: [\n {\n label: 'Tab 1',\n name: 'tab1',\n fields: [\n {\n type: 'tabs',\n tabs: [\n {\n label: 'Ui Only Tab',\n fields: [\n {\n type: 'group',\n name: 'group1',\n label: 'Group 1',\n fields: [\n {\n type: 'text',\n name: 'text1',\n label: 'Text 1',\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n }\n\n describe('tabs traversal', () => {\n it('should return correct dot notation in parentPath', () => {\n traverseFields({\n fields: [tabsField],\n callback: ({ field, parentPath }) => {\n if (field.type === 'text' && field.name === 'text1') {\n expect(parentPath).toEqual('tab1.group1.')\n }\n },\n })\n })\n })\n\n describe('parent localization', () => {\n it('should preserve parent localization through tabs', () => {\n const fields: Field[] = [\n {\n name: 'group',\n type: 'group',\n localized: true,\n fields: [\n {\n type: 'tabs',\n tabs: [\n {\n label: 'Tab',\n fields: [\n {\n name: 'text',\n type: 'text',\n },\n ],\n },\n ],\n },\n ],\n },\n ]\n let textParentIsLocalized: boolean | undefined\n\n traverseFields({\n fields,\n callback: ({ field, parentIsLocalized }) => {\n if (field.type === 'text') {\n textParentIsLocalized = parentIsLocalized\n }\n },\n })\n\n expect(textParentIsLocalized).toBe(true)\n })\n\n it('should traverse localized tabs within localized parents', () => {\n let textParentIsLocalized: boolean | undefined\n\n traverseFields({\n callback: ({ field, parentIsLocalized }) => {\n if (field.type === 'text') {\n textParentIsLocalized = parentIsLocalized\n }\n },\n fields: [\n {\n name: 'group',\n type: 'group',\n localized: true,\n fields: [\n {\n type: 'tabs',\n tabs: [\n {\n name: 'tab',\n localized: true,\n fields: [\n {\n name: 'text',\n type: 'text',\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n ref: {\n group: {\n en: {\n tab: {\n text: 'value',\n },\n },\n },\n },\n })\n\n expect(textParentIsLocalized).toBe(true)\n })\n\n it('should preserve parent localization through collapsibles', () => {\n const fields: Field[] = [\n {\n name: 'group',\n type: 'group',\n localized: true,\n fields: [\n {\n type: 'collapsible',\n label: 'Collapsible',\n fields: [\n {\n name: 'text',\n type: 'text',\n },\n ],\n },\n ],\n },\n ]\n let textParentIsLocalized: boolean | undefined\n\n traverseFields({\n fields,\n callback: ({ field, parentIsLocalized }) => {\n if (field.type === 'text') {\n textParentIsLocalized = parentIsLocalized\n }\n },\n })\n\n expect(textParentIsLocalized).toBe(true)\n })\n })\n})\n"],"names":["describe","it","expect","traverseFields","tabsField","type","tabs","label","name","fields","callback","field","parentPath","toEqual","localized","textParentIsLocalized","parentIsLocalized","toBe","ref","group","en","tab","text"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,EAAE,EAAEC,MAAM,QAAQ,SAAQ;AAC7C,SAASC,cAAc,QAAQ,sBAAqB;AAGpDH,SAAS,kBAAkB;IACzB,MAAMI,YAAmB;QACvBC,MAAM;QACNC,MAAM;YACJ;gBACEC,OAAO;gBACPC,MAAM;gBACNC,QAAQ;oBACN;wBACEJ,MAAM;wBACNC,MAAM;4BACJ;gCACEC,OAAO;gCACPE,QAAQ;oCACN;wCACEJ,MAAM;wCACNG,MAAM;wCACND,OAAO;wCACPE,QAAQ;4CACN;gDACEJ,MAAM;gDACNG,MAAM;gDACND,OAAO;4CACT;yCACD;oCACH;iCACD;4BACH;yBACD;oBACH;iBACD;YACH;SACD;IACH;IAEAP,SAAS,kBAAkB;QACzBC,GAAG,oDAAoD;YACrDE,eAAe;gBACbM,QAAQ;oBAACL;iBAAU;gBACnBM,UAAU,CAAC,EAAEC,KAAK,EAAEC,UAAU,EAAE;oBAC9B,IAAID,MAAMN,IAAI,KAAK,UAAUM,MAAMH,IAAI,KAAK,SAAS;wBACnDN,OAAOU,YAAYC,OAAO,CAAC;oBAC7B;gBACF;YACF;QACF;IACF;IAEAb,SAAS,uBAAuB;QAC9BC,GAAG,oDAAoD;YACrD,MAAMQ,SAAkB;gBACtB;oBACED,MAAM;oBACNH,MAAM;oBACNS,WAAW;oBACXL,QAAQ;wBACN;4BACEJ,MAAM;4BACNC,MAAM;gCACJ;oCACEC,OAAO;oCACPE,QAAQ;wCACN;4CACED,MAAM;4CACNH,MAAM;wCACR;qCACD;gCACH;6BACD;wBACH;qBACD;gBACH;aACD;YACD,IAAIU;YAEJZ,eAAe;gBACbM;gBACAC,UAAU,CAAC,EAAEC,KAAK,EAAEK,iBAAiB,EAAE;oBACrC,IAAIL,MAAMN,IAAI,KAAK,QAAQ;wBACzBU,wBAAwBC;oBAC1B;gBACF;YACF;YAEAd,OAAOa,uBAAuBE,IAAI,CAAC;QACrC;QAEAhB,GAAG,2DAA2D;YAC5D,IAAIc;YAEJZ,eAAe;gBACbO,UAAU,CAAC,EAAEC,KAAK,EAAEK,iBAAiB,EAAE;oBACrC,IAAIL,MAAMN,IAAI,KAAK,QAAQ;wBACzBU,wBAAwBC;oBAC1B;gBACF;gBACAP,QAAQ;oBACN;wBACED,MAAM;wBACNH,MAAM;wBACNS,WAAW;wBACXL,QAAQ;4BACN;gCACEJ,MAAM;gCACNC,MAAM;oCACJ;wCACEE,MAAM;wCACNM,WAAW;wCACXL,QAAQ;4CACN;gDACED,MAAM;gDACNH,MAAM;4CACR;yCACD;oCACH;iCACD;4BACH;yBACD;oBACH;iBACD;gBACDa,KAAK;oBACHC,OAAO;wBACLC,IAAI;4BACFC,KAAK;gCACHC,MAAM;4BACR;wBACF;oBACF;gBACF;YACF;YAEApB,OAAOa,uBAAuBE,IAAI,CAAC;QACrC;QAEAhB,GAAG,4DAA4D;YAC7D,MAAMQ,SAAkB;gBACtB;oBACED,MAAM;oBACNH,MAAM;oBACNS,WAAW;oBACXL,QAAQ;wBACN;4BACEJ,MAAM;4BACNE,OAAO;4BACPE,QAAQ;gCACN;oCACED,MAAM;oCACNH,MAAM;gCACR;6BACD;wBACH;qBACD;gBACH;aACD;YACD,IAAIU;YAEJZ,eAAe;gBACbM;gBACAC,UAAU,CAAC,EAAEC,KAAK,EAAEK,iBAAiB,EAAE;oBACrC,IAAIL,MAAMN,IAAI,KAAK,QAAQ;wBACzBU,wBAAwBC;oBAC1B;gBACF;YACF;YAEAd,OAAOa,uBAAuBE,IAAI,CAAC;QACrC;IACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseForLocalizedFields.d.ts","sourceRoot":"","sources":["../../src/utilities/traverseForLocalizedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAEtD,eAAO,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"traverseForLocalizedFields.d.ts","sourceRoot":"","sources":["../../src/utilities/traverseForLocalizedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AAEtD,eAAO,MAAM,0BAA0B,WAAY,KAAK,EAAE,KAAG,OA6C5D,CAAA"}
|