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
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
import { createReadStream } from 'fs';
|
|
2
|
+
import fs from 'fs/promises';
|
|
3
|
+
import { imageDimensionsFromData, imageDimensionsFromStream } from 'image-dimensions';
|
|
4
|
+
/**
|
|
5
|
+
* Image dimension probe used as a fallback when `sharp` is not configured.
|
|
6
|
+
* Reads only the header bytes needed to determine width and height.
|
|
7
|
+
*
|
|
8
|
+
* PNG, JPEG, GIF, WebP, AVIF and HEIF/HEIC are delegated to `image-dimensions`
|
|
9
|
+
* (actively maintained, zero dependencies). BMP, ICO/CUR, SVG, TIFF and JPEG
|
|
10
|
+
* XL have no such maintained equivalent, so they're read here directly; each
|
|
11
|
+
* of those parsers advances by a fixed amount or is bounded by an explicit
|
|
12
|
+
* guard, so malformed input can never block the event loop.
|
|
13
|
+
*
|
|
14
|
+
* Replaces the archived `image-size` package, whose ICNS/HEIF parsers shipped
|
|
15
|
+
* unpatched denial-of-service vulnerabilities (CVE-2025-71330, CVE-2025-71319).
|
|
16
|
+
*
|
|
17
|
+
* Two edge cases changed behavior compared to the previous hand-rolled parser:
|
|
18
|
+
* - JPEG files using arithmetic coding or hierarchical encoding (SOF markers
|
|
19
|
+
* 5-7, 9-11, 13-15) are no longer read; `image-dimensions` only recognizes
|
|
20
|
+
* baseline and progressive JPEG (SOF0-3). These encodings are not produced
|
|
21
|
+
* by browsers or cameras, so this is not expected to affect real uploads.
|
|
22
|
+
* - AVIF/HEIF detection now checks the container's brand list instead of
|
|
23
|
+
* accepting any ISO base media file with a `ftyp` box, so non-image formats
|
|
24
|
+
* that share the same container (for example MP4/MOV) are correctly no
|
|
25
|
+
* longer misidentified as images.
|
|
26
|
+
*
|
|
27
|
+
* @throws if the buffer is not a recognized/parseable image format
|
|
28
|
+
*/ export function probeImageSize(data) {
|
|
29
|
+
const modernDimensions = imageDimensionsFromData(data);
|
|
30
|
+
const dimensions = modernDimensions ? {
|
|
31
|
+
height: modernDimensions.height,
|
|
32
|
+
width: modernDimensions.width
|
|
33
|
+
} : probeLegacyFormat(data);
|
|
34
|
+
if (!dimensions || !dimensions.width || !dimensions.height) {
|
|
35
|
+
throw new Error('Unsupported image type: unable to determine dimensions');
|
|
36
|
+
}
|
|
37
|
+
return dimensions;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Bytes read from the start of the file to detect a legacy/JXL format from
|
|
41
|
+
* its header; comfortably covers every signature `detectLegacyType` checks.
|
|
42
|
+
*/ const HEADER_SNIFF_LENGTH = 4096;
|
|
43
|
+
/**
|
|
44
|
+
* Probe used when the file lives on disk via `tempFilePath`. PNG, JPEG, GIF,
|
|
45
|
+
* WebP, AVIF and HEIF/HEIC are read through `imageDimensionsFromStream`,
|
|
46
|
+
* which reads only as many bytes as are needed to find the header, so a
|
|
47
|
+
* large file's data is never pulled into memory. BMP, ICO/CUR, SVG, TIFF and
|
|
48
|
+
* JPEG XL are detected from a small header sniff and, only then, read in
|
|
49
|
+
* full for `probeImageSize` to parse.
|
|
50
|
+
*
|
|
51
|
+
* @throws if the file is not a recognized/parseable image format
|
|
52
|
+
*/ export async function probeImageSizeFromPath(tempFilePath) {
|
|
53
|
+
const headerSniff = await readHeaderSniff(tempFilePath);
|
|
54
|
+
if (detectLegacyType(headerSniff)) {
|
|
55
|
+
return probeImageSize(await fs.readFile(tempFilePath));
|
|
56
|
+
}
|
|
57
|
+
const modernDimensions = await imageDimensionsFromStream(ReadableStream.from(createReadStream(tempFilePath)));
|
|
58
|
+
if (modernDimensions) {
|
|
59
|
+
return {
|
|
60
|
+
height: modernDimensions.height,
|
|
61
|
+
width: modernDimensions.width
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
return probeImageSize(await fs.readFile(tempFilePath));
|
|
65
|
+
}
|
|
66
|
+
async function readHeaderSniff(tempFilePath) {
|
|
67
|
+
const handle = await fs.open(tempFilePath, 'r');
|
|
68
|
+
try {
|
|
69
|
+
const buffer = Buffer.alloc(HEADER_SNIFF_LENGTH);
|
|
70
|
+
const { bytesRead } = await handle.read(buffer, 0, HEADER_SNIFF_LENGTH, 0);
|
|
71
|
+
return buffer.subarray(0, bytesRead);
|
|
72
|
+
} finally{
|
|
73
|
+
await handle.close();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function probeLegacyFormat(data) {
|
|
77
|
+
const type = detectLegacyType(data);
|
|
78
|
+
return type ? legacyParsers[type](data) : null;
|
|
79
|
+
}
|
|
80
|
+
function detectLegacyType(data) {
|
|
81
|
+
if (data.length < 2) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
if (data[0] === 0x42 && data[1] === 0x4d) {
|
|
85
|
+
return 'bmp';
|
|
86
|
+
}
|
|
87
|
+
if (data.length >= 8 && (data[0] === 0x49 && data[1] === 0x49 && data[2] === 0x2a || data[0] === 0x4d && data[1] === 0x4d && data[3] === 0x2a)) {
|
|
88
|
+
return 'tiff';
|
|
89
|
+
}
|
|
90
|
+
if (data.length >= 6 && data[0] === 0 && data[1] === 0 && (data[2] === 1 || data[2] === 2) && data[3] === 0) {
|
|
91
|
+
return 'ico';
|
|
92
|
+
}
|
|
93
|
+
if (data[0] === 0xff && data[1] === 0x0a || isJXLContainerSignature(data)) {
|
|
94
|
+
return 'jxl';
|
|
95
|
+
}
|
|
96
|
+
const head = data.toString('utf8', 0, Math.min(data.length, 1000));
|
|
97
|
+
if (/<svg[\s>]/i.test(head) || head.trimStart().startsWith('<?xml') && /<svg/i.test(head)) {
|
|
98
|
+
return 'svg';
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
const legacyParsers = {
|
|
103
|
+
bmp: (data)=>({
|
|
104
|
+
height: Math.abs(data.readInt32LE(22)),
|
|
105
|
+
width: data.readInt32LE(18)
|
|
106
|
+
}),
|
|
107
|
+
ico: (data)=>{
|
|
108
|
+
const count = data.readUInt16LE(4);
|
|
109
|
+
let best = {
|
|
110
|
+
height: 0,
|
|
111
|
+
width: 0
|
|
112
|
+
};
|
|
113
|
+
for(let i = 0; i < count && i < 1000; i++){
|
|
114
|
+
const entry = 6 + i * 16;
|
|
115
|
+
if (entry + 2 > data.length) {
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
// A zero byte means 256 px in the ICO format
|
|
119
|
+
const width = data[entry] === 0 ? 256 : data[entry];
|
|
120
|
+
const height = data[entry + 1] === 0 ? 256 : data[entry + 1];
|
|
121
|
+
if (width * height > best.width * best.height) {
|
|
122
|
+
best = {
|
|
123
|
+
height,
|
|
124
|
+
width
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return best.width ? best : null;
|
|
129
|
+
},
|
|
130
|
+
jxl: (data)=>parseJXL(data),
|
|
131
|
+
svg: (data)=>parseSVG(data),
|
|
132
|
+
tiff: (data)=>{
|
|
133
|
+
const isLittleEndian = data[0] === 0x49;
|
|
134
|
+
const readU16 = (offset)=>isLittleEndian ? data.readUInt16LE(offset) : data.readUInt16BE(offset);
|
|
135
|
+
const readU32 = (offset)=>isLittleEndian ? data.readUInt32LE(offset) : data.readUInt32BE(offset);
|
|
136
|
+
const ifdOffset = readU32(4);
|
|
137
|
+
if (ifdOffset + 2 > data.length) {
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
const entryCount = readU16(ifdOffset);
|
|
141
|
+
let width;
|
|
142
|
+
let height;
|
|
143
|
+
for(let i = 0; i < entryCount && i < 1000; i++){
|
|
144
|
+
const entry = ifdOffset + 2 + i * 12;
|
|
145
|
+
if (entry + 12 > data.length) {
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
const tag = readU16(entry);
|
|
149
|
+
const fieldType = readU16(entry + 2);
|
|
150
|
+
// SHORT (type 3) values are 16-bit, otherwise read as 32-bit LONG
|
|
151
|
+
const value = fieldType === 3 ? readU16(entry + 8) : readU32(entry + 8);
|
|
152
|
+
if (tag === 256) {
|
|
153
|
+
width = value;
|
|
154
|
+
} else if (tag === 257) {
|
|
155
|
+
height = value;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return width && height ? {
|
|
159
|
+
height,
|
|
160
|
+
width
|
|
161
|
+
} : null;
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
function parseSVG(data) {
|
|
165
|
+
const text = data.toString('utf8', 0, Math.min(data.length, 65536));
|
|
166
|
+
const tagMatch = text.match(/<svg[^>]*>/i);
|
|
167
|
+
if (!tagMatch) {
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
const tag = tagMatch[0];
|
|
171
|
+
const readLength = (name)=>{
|
|
172
|
+
const match = tag.match(new RegExp(`${name}\\s*=\\s*["']?\\s*([^"'\\s>]+)`, 'i'));
|
|
173
|
+
if (!match) {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
// Percentage units are relative and yield no concrete pixel size
|
|
177
|
+
if (/%\s*$/.test(match[1])) {
|
|
178
|
+
return null;
|
|
179
|
+
}
|
|
180
|
+
const value = parseFloat(match[1]);
|
|
181
|
+
return Number.isFinite(value) ? value : null;
|
|
182
|
+
};
|
|
183
|
+
const width = readLength('width');
|
|
184
|
+
const height = readLength('height');
|
|
185
|
+
if (width != null && height != null) {
|
|
186
|
+
return {
|
|
187
|
+
height: Math.round(height),
|
|
188
|
+
width: Math.round(width)
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
const viewBoxMatch = tag.match(/viewbox\s*=\s*["']?\s*([\d.\s,+-]+)/i);
|
|
192
|
+
if (viewBoxMatch) {
|
|
193
|
+
const parts = viewBoxMatch[1].trim().split(/[\s,]+/).map(Number);
|
|
194
|
+
if (parts.length === 4 && parts.every((n)=>Number.isFinite(n))) {
|
|
195
|
+
const [, , viewWidth, viewHeight] = parts;
|
|
196
|
+
if (width != null) {
|
|
197
|
+
return {
|
|
198
|
+
height: Math.round(width / viewWidth * viewHeight),
|
|
199
|
+
width: Math.round(width)
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
if (height != null) {
|
|
203
|
+
return {
|
|
204
|
+
height: Math.round(height),
|
|
205
|
+
width: Math.round(height / viewHeight * viewWidth)
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
height: Math.round(viewHeight),
|
|
210
|
+
width: Math.round(viewWidth)
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* JPEG XL isn't supported by `image-dimensions`, so its size header is read
|
|
218
|
+
* directly. A JXL file is either a bare codestream starting `FF 0A`, or an
|
|
219
|
+
* ISOBMFF container carrying the codestream in a single `jxlc` box or split
|
|
220
|
+
* across several `jxlp` boxes; either way the dimensions live in the first
|
|
221
|
+
* bits of the codestream (the `SizeHeader`). See https://www.w3.org/TR/jpeg-xl/
|
|
222
|
+
* for the bitstream layout.
|
|
223
|
+
*/ function parseJXL(data) {
|
|
224
|
+
if (data[0] === 0xff && data[1] === 0x0a) {
|
|
225
|
+
return parseJXLSizeHeader(data, 2);
|
|
226
|
+
}
|
|
227
|
+
// A boxed codestream still starts with the `FF 0A` signature, so it's
|
|
228
|
+
// skipped here too, same as the bare-codestream case above
|
|
229
|
+
const jxlcBox = findBox(data, 'jxlc', 0);
|
|
230
|
+
if (jxlcBox) {
|
|
231
|
+
return parseJXLSizeHeader(data, jxlcBox.bodyOffset + 2);
|
|
232
|
+
}
|
|
233
|
+
const jxlpBoxes = findAllBoxes(data, 'jxlp');
|
|
234
|
+
if (!jxlpBoxes.length) {
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
// Each `jxlp` payload is prefixed with a 4-byte partial-codestream index
|
|
238
|
+
const codestream = Buffer.concat(jxlpBoxes.map((box)=>data.subarray(box.bodyOffset + 4, box.offset + box.size)));
|
|
239
|
+
return parseJXLSizeHeader(codestream, 2);
|
|
240
|
+
}
|
|
241
|
+
function isJXLContainerSignature(data) {
|
|
242
|
+
return data.length >= 12 && data.readUInt32BE(0) === 0x0000000c && data.toString('ascii', 4, 8) === 'JXL ' && data[8] === 0x0d && data[9] === 0x0a && data[10] === 0x87 && data[11] === 0x0a;
|
|
243
|
+
}
|
|
244
|
+
function readBoxHeader(data, offset) {
|
|
245
|
+
if (offset + 8 > data.length) {
|
|
246
|
+
return null;
|
|
247
|
+
}
|
|
248
|
+
const name = data.toString('ascii', offset + 4, offset + 8);
|
|
249
|
+
let size = data.readUInt32BE(offset);
|
|
250
|
+
let bodyOffset = offset + 8;
|
|
251
|
+
if (size === 1) {
|
|
252
|
+
// A size of 1 means a 64-bit size follows the 8-byte header
|
|
253
|
+
if (offset + 16 > data.length) {
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
const largeSize = data.readBigUInt64BE(offset + 8);
|
|
257
|
+
if (largeSize > BigInt(Number.MAX_SAFE_INTEGER)) {
|
|
258
|
+
return null;
|
|
259
|
+
}
|
|
260
|
+
size = Number(largeSize);
|
|
261
|
+
bodyOffset = offset + 16;
|
|
262
|
+
} else if (size === 0) {
|
|
263
|
+
// A size of 0 means the box extends to the end of the buffer
|
|
264
|
+
size = data.length - offset;
|
|
265
|
+
}
|
|
266
|
+
if (size < bodyOffset - offset || offset + size > data.length) {
|
|
267
|
+
return null;
|
|
268
|
+
}
|
|
269
|
+
return {
|
|
270
|
+
name,
|
|
271
|
+
bodyOffset,
|
|
272
|
+
offset,
|
|
273
|
+
size
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
// Bounded to the same 1000-entry cap used elsewhere in this file so a
|
|
277
|
+
// malformed chain of boxes can never block the event loop
|
|
278
|
+
function findBox(data, name, startOffset) {
|
|
279
|
+
let offset = startOffset;
|
|
280
|
+
for(let i = 0; i < 1000 && offset < data.length; i++){
|
|
281
|
+
const box = readBoxHeader(data, offset);
|
|
282
|
+
if (!box) {
|
|
283
|
+
return null;
|
|
284
|
+
}
|
|
285
|
+
if (box.name === name) {
|
|
286
|
+
return box;
|
|
287
|
+
}
|
|
288
|
+
offset += box.size;
|
|
289
|
+
}
|
|
290
|
+
return null;
|
|
291
|
+
}
|
|
292
|
+
function findAllBoxes(data, name) {
|
|
293
|
+
const boxes = [];
|
|
294
|
+
let offset = 0;
|
|
295
|
+
for(let i = 0; i < 1000 && offset < data.length; i++){
|
|
296
|
+
const box = readBoxHeader(data, offset);
|
|
297
|
+
if (!box) {
|
|
298
|
+
break;
|
|
299
|
+
}
|
|
300
|
+
if (box.name === name) {
|
|
301
|
+
boxes.push(box);
|
|
302
|
+
}
|
|
303
|
+
offset += box.size;
|
|
304
|
+
}
|
|
305
|
+
return boxes;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Reads the JXL `SizeHeader` bit-packed structure (little-endian, LSB
|
|
309
|
+
* first) starting at `startOffset` in the codestream.
|
|
310
|
+
*/ function parseJXLSizeHeader(data, startOffset) {
|
|
311
|
+
let byteOffset = startOffset;
|
|
312
|
+
let bitOffset = 0;
|
|
313
|
+
const readBits = (length)=>{
|
|
314
|
+
let result = 0;
|
|
315
|
+
let bitsRead = 0;
|
|
316
|
+
while(bitsRead < length){
|
|
317
|
+
if (byteOffset >= data.length) {
|
|
318
|
+
throw new RangeError('Unexpected end of JXL codestream');
|
|
319
|
+
}
|
|
320
|
+
const currentByte = data[byteOffset];
|
|
321
|
+
const bitsLeft = 8 - bitOffset;
|
|
322
|
+
const bitsToRead = Math.min(length - bitsRead, bitsLeft);
|
|
323
|
+
const mask = (1 << bitsToRead) - 1;
|
|
324
|
+
result |= (currentByte >> bitOffset & mask) << bitsRead;
|
|
325
|
+
bitsRead += bitsToRead;
|
|
326
|
+
bitOffset += bitsToRead;
|
|
327
|
+
if (bitOffset === 8) {
|
|
328
|
+
byteOffset++;
|
|
329
|
+
bitOffset = 0;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
return result;
|
|
333
|
+
};
|
|
334
|
+
const readExplicitDimension = ()=>{
|
|
335
|
+
const sizeClass = readBits(2);
|
|
336
|
+
const extraBits = [
|
|
337
|
+
9,
|
|
338
|
+
13,
|
|
339
|
+
18,
|
|
340
|
+
30
|
|
341
|
+
][sizeClass];
|
|
342
|
+
return 1 + readBits(extraBits);
|
|
343
|
+
};
|
|
344
|
+
try {
|
|
345
|
+
const isSmallImage = readBits(1) === 1;
|
|
346
|
+
const height = isSmallImage ? 8 * (1 + readBits(5)) : readExplicitDimension();
|
|
347
|
+
const widthMode = readBits(3);
|
|
348
|
+
let width;
|
|
349
|
+
if (isSmallImage && widthMode === 0) {
|
|
350
|
+
width = 8 * (1 + readBits(5));
|
|
351
|
+
} else if (widthMode === 0) {
|
|
352
|
+
width = readExplicitDimension();
|
|
353
|
+
} else {
|
|
354
|
+
const aspectRatios = [
|
|
355
|
+
1,
|
|
356
|
+
1.2,
|
|
357
|
+
4 / 3,
|
|
358
|
+
1.5,
|
|
359
|
+
16 / 9,
|
|
360
|
+
5 / 4,
|
|
361
|
+
2
|
|
362
|
+
];
|
|
363
|
+
width = Math.floor(height * aspectRatios[widthMode - 1]);
|
|
364
|
+
}
|
|
365
|
+
return {
|
|
366
|
+
height,
|
|
367
|
+
width
|
|
368
|
+
};
|
|
369
|
+
} catch {
|
|
370
|
+
return null;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
//# sourceMappingURL=probeImageSize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/uploads/probeImageSize.ts"],"sourcesContent":["import { createReadStream } from 'fs'\nimport fs from 'fs/promises'\nimport { imageDimensionsFromData, imageDimensionsFromStream } from 'image-dimensions'\n\nimport type { ProbedImageSize } from './types.js'\n\n/**\n * Image dimension probe used as a fallback when `sharp` is not configured.\n * Reads only the header bytes needed to determine width and height.\n *\n * PNG, JPEG, GIF, WebP, AVIF and HEIF/HEIC are delegated to `image-dimensions`\n * (actively maintained, zero dependencies). BMP, ICO/CUR, SVG, TIFF and JPEG\n * XL have no such maintained equivalent, so they're read here directly; each\n * of those parsers advances by a fixed amount or is bounded by an explicit\n * guard, so malformed input can never block the event loop.\n *\n * Replaces the archived `image-size` package, whose ICNS/HEIF parsers shipped\n * unpatched denial-of-service vulnerabilities (CVE-2025-71330, CVE-2025-71319).\n *\n * Two edge cases changed behavior compared to the previous hand-rolled parser:\n * - JPEG files using arithmetic coding or hierarchical encoding (SOF markers\n * 5-7, 9-11, 13-15) are no longer read; `image-dimensions` only recognizes\n * baseline and progressive JPEG (SOF0-3). These encodings are not produced\n * by browsers or cameras, so this is not expected to affect real uploads.\n * - AVIF/HEIF detection now checks the container's brand list instead of\n * accepting any ISO base media file with a `ftyp` box, so non-image formats\n * that share the same container (for example MP4/MOV) are correctly no\n * longer misidentified as images.\n *\n * @throws if the buffer is not a recognized/parseable image format\n */\nexport function probeImageSize(data: Buffer): ProbedImageSize {\n const modernDimensions = imageDimensionsFromData(data)\n const dimensions = modernDimensions\n ? { height: modernDimensions.height, width: modernDimensions.width }\n : probeLegacyFormat(data)\n\n if (!dimensions || !dimensions.width || !dimensions.height) {\n throw new Error('Unsupported image type: unable to determine dimensions')\n }\n\n return dimensions\n}\n\n/**\n * Bytes read from the start of the file to detect a legacy/JXL format from\n * its header; comfortably covers every signature `detectLegacyType` checks.\n */\nconst HEADER_SNIFF_LENGTH = 4096\n\n/**\n * Probe used when the file lives on disk via `tempFilePath`. PNG, JPEG, GIF,\n * WebP, AVIF and HEIF/HEIC are read through `imageDimensionsFromStream`,\n * which reads only as many bytes as are needed to find the header, so a\n * large file's data is never pulled into memory. BMP, ICO/CUR, SVG, TIFF and\n * JPEG XL are detected from a small header sniff and, only then, read in\n * full for `probeImageSize` to parse.\n *\n * @throws if the file is not a recognized/parseable image format\n */\nexport async function probeImageSizeFromPath(tempFilePath: string): Promise<ProbedImageSize> {\n const headerSniff = await readHeaderSniff(tempFilePath)\n\n if (detectLegacyType(headerSniff)) {\n return probeImageSize(await fs.readFile(tempFilePath))\n }\n\n const modernDimensions = await imageDimensionsFromStream(\n ReadableStream.from(createReadStream(tempFilePath)),\n )\n\n if (modernDimensions) {\n return { height: modernDimensions.height, width: modernDimensions.width }\n }\n\n return probeImageSize(await fs.readFile(tempFilePath))\n}\n\nasync function readHeaderSniff(tempFilePath: string): Promise<Buffer> {\n const handle = await fs.open(tempFilePath, 'r')\n\n try {\n const buffer = Buffer.alloc(HEADER_SNIFF_LENGTH)\n const { bytesRead } = await handle.read(buffer, 0, HEADER_SNIFF_LENGTH, 0)\n return buffer.subarray(0, bytesRead)\n } finally {\n await handle.close()\n }\n}\n\ntype Dimensions = null | ProbedImageSize\n\ntype LegacyImageType = 'bmp' | 'ico' | 'jxl' | 'svg' | 'tiff'\n\nfunction probeLegacyFormat(data: Buffer): Dimensions {\n const type = detectLegacyType(data)\n return type ? legacyParsers[type](data) : null\n}\n\nfunction detectLegacyType(data: Buffer): LegacyImageType | null {\n if (data.length < 2) {\n return null\n }\n\n if (data[0] === 0x42 && data[1] === 0x4d) {\n return 'bmp'\n }\n if (\n data.length >= 8 &&\n ((data[0] === 0x49 && data[1] === 0x49 && data[2] === 0x2a) ||\n (data[0] === 0x4d && data[1] === 0x4d && data[3] === 0x2a))\n ) {\n return 'tiff'\n }\n if (\n data.length >= 6 &&\n data[0] === 0 &&\n data[1] === 0 &&\n (data[2] === 1 || data[2] === 2) &&\n data[3] === 0\n ) {\n return 'ico'\n }\n if ((data[0] === 0xff && data[1] === 0x0a) || isJXLContainerSignature(data)) {\n return 'jxl'\n }\n\n const head = data.toString('utf8', 0, Math.min(data.length, 1000))\n if (/<svg[\\s>]/i.test(head) || (head.trimStart().startsWith('<?xml') && /<svg/i.test(head))) {\n return 'svg'\n }\n\n return null\n}\n\nconst legacyParsers: Record<LegacyImageType, (data: Buffer) => Dimensions> = {\n bmp: (data) => ({ height: Math.abs(data.readInt32LE(22)), width: data.readInt32LE(18) }),\n ico: (data) => {\n const count = data.readUInt16LE(4)\n let best: ProbedImageSize = { height: 0, width: 0 }\n\n for (let i = 0; i < count && i < 1000; i++) {\n const entry = 6 + i * 16\n if (entry + 2 > data.length) {\n break\n }\n // A zero byte means 256 px in the ICO format\n const width = data[entry] === 0 ? 256 : data[entry]!\n const height = data[entry + 1] === 0 ? 256 : data[entry + 1]!\n if (width * height > best.width * best.height) {\n best = { height, width }\n }\n }\n\n return best.width ? best : null\n },\n jxl: (data) => parseJXL(data),\n svg: (data) => parseSVG(data),\n tiff: (data) => {\n const isLittleEndian = data[0] === 0x49\n const readU16 = (offset: number) =>\n isLittleEndian ? data.readUInt16LE(offset) : data.readUInt16BE(offset)\n const readU32 = (offset: number) =>\n isLittleEndian ? data.readUInt32LE(offset) : data.readUInt32BE(offset)\n\n const ifdOffset = readU32(4)\n if (ifdOffset + 2 > data.length) {\n return null\n }\n\n const entryCount = readU16(ifdOffset)\n let width: number | undefined\n let height: number | undefined\n\n for (let i = 0; i < entryCount && i < 1000; i++) {\n const entry = ifdOffset + 2 + i * 12\n if (entry + 12 > data.length) {\n break\n }\n const tag = readU16(entry)\n const fieldType = readU16(entry + 2)\n // SHORT (type 3) values are 16-bit, otherwise read as 32-bit LONG\n const value = fieldType === 3 ? readU16(entry + 8) : readU32(entry + 8)\n if (tag === 256) {\n width = value\n } else if (tag === 257) {\n height = value\n }\n }\n\n return width && height ? { height, width } : null\n },\n}\n\nfunction parseSVG(data: Buffer): Dimensions {\n const text = data.toString('utf8', 0, Math.min(data.length, 65536))\n const tagMatch = text.match(/<svg[^>]*>/i)\n if (!tagMatch) {\n return null\n }\n\n const tag = tagMatch[0]\n const readLength = (name: string): null | number => {\n const match = tag.match(new RegExp(`${name}\\\\s*=\\\\s*[\"']?\\\\s*([^\"'\\\\s>]+)`, 'i'))\n if (!match) {\n return null\n }\n // Percentage units are relative and yield no concrete pixel size\n if (/%\\s*$/.test(match[1]!)) {\n return null\n }\n const value = parseFloat(match[1]!)\n return Number.isFinite(value) ? value : null\n }\n\n const width = readLength('width')\n const height = readLength('height')\n if (width != null && height != null) {\n return { height: Math.round(height), width: Math.round(width) }\n }\n\n const viewBoxMatch = tag.match(/viewbox\\s*=\\s*[\"']?\\s*([\\d.\\s,+-]+)/i)\n if (viewBoxMatch) {\n const parts = viewBoxMatch[1]!\n .trim()\n .split(/[\\s,]+/)\n .map(Number)\n if (parts.length === 4 && parts.every((n) => Number.isFinite(n))) {\n const [, , viewWidth, viewHeight] = parts as [number, number, number, number]\n if (width != null) {\n return { height: Math.round((width / viewWidth) * viewHeight), width: Math.round(width) }\n }\n if (height != null) {\n return { height: Math.round(height), width: Math.round((height / viewHeight) * viewWidth) }\n }\n return { height: Math.round(viewHeight), width: Math.round(viewWidth) }\n }\n }\n\n return null\n}\n\n/**\n * JPEG XL isn't supported by `image-dimensions`, so its size header is read\n * directly. A JXL file is either a bare codestream starting `FF 0A`, or an\n * ISOBMFF container carrying the codestream in a single `jxlc` box or split\n * across several `jxlp` boxes; either way the dimensions live in the first\n * bits of the codestream (the `SizeHeader`). See https://www.w3.org/TR/jpeg-xl/\n * for the bitstream layout.\n */\nfunction parseJXL(data: Buffer): Dimensions {\n if (data[0] === 0xff && data[1] === 0x0a) {\n return parseJXLSizeHeader(data, 2)\n }\n\n // A boxed codestream still starts with the `FF 0A` signature, so it's\n // skipped here too, same as the bare-codestream case above\n const jxlcBox = findBox(data, 'jxlc', 0)\n if (jxlcBox) {\n return parseJXLSizeHeader(data, jxlcBox.bodyOffset + 2)\n }\n\n const jxlpBoxes = findAllBoxes(data, 'jxlp')\n if (!jxlpBoxes.length) {\n return null\n }\n\n // Each `jxlp` payload is prefixed with a 4-byte partial-codestream index\n const codestream = Buffer.concat(\n jxlpBoxes.map((box) => data.subarray(box.bodyOffset + 4, box.offset + box.size)),\n )\n return parseJXLSizeHeader(codestream, 2)\n}\n\nfunction isJXLContainerSignature(data: Buffer): boolean {\n return (\n data.length >= 12 &&\n data.readUInt32BE(0) === 0x0000000c &&\n data.toString('ascii', 4, 8) === 'JXL ' &&\n data[8] === 0x0d &&\n data[9] === 0x0a &&\n data[10] === 0x87 &&\n data[11] === 0x0a\n )\n}\n\ntype Box = { bodyOffset: number; name: string; offset: number; size: number }\n\nfunction readBoxHeader(data: Buffer, offset: number): Box | null {\n if (offset + 8 > data.length) {\n return null\n }\n\n const name = data.toString('ascii', offset + 4, offset + 8)\n let size = data.readUInt32BE(offset)\n let bodyOffset = offset + 8\n\n if (size === 1) {\n // A size of 1 means a 64-bit size follows the 8-byte header\n if (offset + 16 > data.length) {\n return null\n }\n const largeSize = data.readBigUInt64BE(offset + 8)\n if (largeSize > BigInt(Number.MAX_SAFE_INTEGER)) {\n return null\n }\n size = Number(largeSize)\n bodyOffset = offset + 16\n } else if (size === 0) {\n // A size of 0 means the box extends to the end of the buffer\n size = data.length - offset\n }\n\n if (size < bodyOffset - offset || offset + size > data.length) {\n return null\n }\n\n return { name, bodyOffset, offset, size }\n}\n\n// Bounded to the same 1000-entry cap used elsewhere in this file so a\n// malformed chain of boxes can never block the event loop\nfunction findBox(data: Buffer, name: string, startOffset: number): Box | null {\n let offset = startOffset\n\n for (let i = 0; i < 1000 && offset < data.length; i++) {\n const box = readBoxHeader(data, offset)\n if (!box) {\n return null\n }\n if (box.name === name) {\n return box\n }\n offset += box.size\n }\n\n return null\n}\n\nfunction findAllBoxes(data: Buffer, name: string): Box[] {\n const boxes: Box[] = []\n let offset = 0\n\n for (let i = 0; i < 1000 && offset < data.length; i++) {\n const box = readBoxHeader(data, offset)\n if (!box) {\n break\n }\n if (box.name === name) {\n boxes.push(box)\n }\n offset += box.size\n }\n\n return boxes\n}\n\n/**\n * Reads the JXL `SizeHeader` bit-packed structure (little-endian, LSB\n * first) starting at `startOffset` in the codestream.\n */\nfunction parseJXLSizeHeader(data: Buffer, startOffset: number): Dimensions {\n let byteOffset = startOffset\n let bitOffset = 0\n\n const readBits = (length: number): number => {\n let result = 0\n let bitsRead = 0\n\n while (bitsRead < length) {\n if (byteOffset >= data.length) {\n throw new RangeError('Unexpected end of JXL codestream')\n }\n const currentByte = data[byteOffset]!\n const bitsLeft = 8 - bitOffset\n const bitsToRead = Math.min(length - bitsRead, bitsLeft)\n const mask = (1 << bitsToRead) - 1\n result |= ((currentByte >> bitOffset) & mask) << bitsRead\n\n bitsRead += bitsToRead\n bitOffset += bitsToRead\n if (bitOffset === 8) {\n byteOffset++\n bitOffset = 0\n }\n }\n\n return result\n }\n\n const readExplicitDimension = (): number => {\n const sizeClass = readBits(2)\n const extraBits = [9, 13, 18, 30][sizeClass]!\n return 1 + readBits(extraBits)\n }\n\n try {\n const isSmallImage = readBits(1) === 1\n const height = isSmallImage ? 8 * (1 + readBits(5)) : readExplicitDimension()\n const widthMode = readBits(3)\n\n let width: number\n if (isSmallImage && widthMode === 0) {\n width = 8 * (1 + readBits(5))\n } else if (widthMode === 0) {\n width = readExplicitDimension()\n } else {\n const aspectRatios = [1, 1.2, 4 / 3, 1.5, 16 / 9, 5 / 4, 2]\n width = Math.floor(height * aspectRatios[widthMode - 1]!)\n }\n\n return { height, width }\n } catch {\n return null\n }\n}\n"],"names":["createReadStream","fs","imageDimensionsFromData","imageDimensionsFromStream","probeImageSize","data","modernDimensions","dimensions","height","width","probeLegacyFormat","Error","HEADER_SNIFF_LENGTH","probeImageSizeFromPath","tempFilePath","headerSniff","readHeaderSniff","detectLegacyType","readFile","ReadableStream","from","handle","open","buffer","Buffer","alloc","bytesRead","read","subarray","close","type","legacyParsers","length","isJXLContainerSignature","head","toString","Math","min","test","trimStart","startsWith","bmp","abs","readInt32LE","ico","count","readUInt16LE","best","i","entry","jxl","parseJXL","svg","parseSVG","tiff","isLittleEndian","readU16","offset","readUInt16BE","readU32","readUInt32LE","readUInt32BE","ifdOffset","entryCount","tag","fieldType","value","text","tagMatch","match","readLength","name","RegExp","parseFloat","Number","isFinite","round","viewBoxMatch","parts","trim","split","map","every","n","viewWidth","viewHeight","parseJXLSizeHeader","jxlcBox","findBox","bodyOffset","jxlpBoxes","findAllBoxes","codestream","concat","box","size","readBoxHeader","largeSize","readBigUInt64BE","BigInt","MAX_SAFE_INTEGER","startOffset","boxes","push","byteOffset","bitOffset","readBits","result","bitsRead","RangeError","currentByte","bitsLeft","bitsToRead","mask","readExplicitDimension","sizeClass","extraBits","isSmallImage","widthMode","aspectRatios","floor"],"mappings":"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"}
|