payload 3.0.0-beta.2 → 3.0.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/RichText.d.ts +15 -10
- package/dist/admin/RichText.d.ts.map +1 -1
- package/dist/admin/RichText.js.map +1 -1
- package/dist/admin/elements/PreviewButton.d.ts +2 -1
- package/dist/admin/elements/PreviewButton.d.ts.map +1 -1
- package/dist/admin/elements/PreviewButton.js.map +1 -1
- package/dist/admin/elements/PublishButton.d.ts +2 -1
- package/dist/admin/elements/PublishButton.d.ts.map +1 -1
- package/dist/admin/elements/PublishButton.js.map +1 -1
- package/dist/admin/elements/SaveButton.d.ts +2 -1
- package/dist/admin/elements/SaveButton.d.ts.map +1 -1
- package/dist/admin/elements/SaveButton.js.map +1 -1
- package/dist/admin/elements/SaveDraftButton.d.ts +2 -1
- package/dist/admin/elements/SaveDraftButton.d.ts.map +1 -1
- package/dist/admin/elements/SaveDraftButton.js.map +1 -1
- package/dist/admin/elements/Tab.d.ts +3 -0
- package/dist/admin/elements/Tab.d.ts.map +1 -1
- package/dist/admin/elements/Tab.js.map +1 -1
- package/dist/admin/elements/WithServerSideProps.d.ts +5 -0
- package/dist/admin/elements/WithServerSideProps.d.ts.map +1 -0
- package/dist/admin/elements/WithServerSideProps.js +3 -0
- package/dist/admin/elements/WithServerSideProps.js.map +1 -0
- package/dist/admin/forms/FieldDescription.d.ts +4 -2
- package/dist/admin/forms/FieldDescription.d.ts.map +1 -1
- package/dist/admin/forms/FieldDescription.js.map +1 -1
- package/dist/admin/forms/RowLabel.d.ts +2 -1
- package/dist/admin/forms/RowLabel.d.ts.map +1 -1
- package/dist/admin/forms/RowLabel.js.map +1 -1
- package/dist/admin/types.d.ts +1 -0
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/admin/types.js.map +1 -1
- package/dist/admin/views/types.d.ts +2 -2
- package/dist/admin/views/types.d.ts.map +1 -1
- package/dist/admin/views/types.js.map +1 -1
- package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
- package/dist/auth/baseFields/apiKey.js +6 -4
- package/dist/auth/baseFields/apiKey.js.map +1 -1
- package/dist/auth/cookies.d.ts +16 -4
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/cookies.js +45 -14
- package/dist/auth/cookies.js.map +1 -1
- package/dist/auth/defaultAccess.d.ts +2 -2
- package/dist/auth/defaultAccess.d.ts.map +1 -1
- package/dist/auth/defaultAccess.js.map +1 -1
- package/dist/auth/executeAccess.d.ts +2 -2
- package/dist/auth/executeAccess.d.ts.map +1 -1
- package/dist/auth/executeAccess.js.map +1 -1
- package/dist/auth/executeAuthStrategies.d.ts +3 -2
- package/dist/auth/executeAuthStrategies.d.ts.map +1 -1
- package/dist/auth/executeAuthStrategies.js.map +1 -1
- package/dist/auth/getAccessResults.d.ts +2 -2
- package/dist/auth/getAccessResults.d.ts.map +1 -1
- package/dist/auth/getAccessResults.js.map +1 -1
- package/dist/auth/getFieldsToSign.d.ts +2 -2
- package/dist/auth/getFieldsToSign.d.ts.map +1 -1
- package/dist/auth/getFieldsToSign.js.map +1 -1
- package/dist/auth/operations/access.d.ts +2 -2
- package/dist/auth/operations/access.d.ts.map +1 -1
- package/dist/auth/operations/access.js.map +1 -1
- package/dist/auth/operations/auth.d.ts +5 -4
- package/dist/auth/operations/auth.d.ts.map +1 -1
- package/dist/auth/operations/auth.js.map +1 -1
- package/dist/auth/operations/forgotPassword.d.ts +2 -2
- package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
- package/dist/auth/operations/forgotPassword.js +6 -5
- package/dist/auth/operations/forgotPassword.js.map +1 -1
- package/dist/auth/operations/init.d.ts +2 -2
- package/dist/auth/operations/init.d.ts.map +1 -1
- package/dist/auth/operations/init.js.map +1 -1
- package/dist/auth/operations/local/auth.js.map +1 -1
- package/dist/auth/operations/local/forgotPassword.d.ts +2 -2
- package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
- package/dist/auth/operations/local/forgotPassword.js.map +1 -1
- package/dist/auth/operations/local/login.d.ts +2 -2
- package/dist/auth/operations/local/login.d.ts.map +1 -1
- package/dist/auth/operations/local/login.js.map +1 -1
- package/dist/auth/operations/local/resetPassword.d.ts +2 -2
- package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
- package/dist/auth/operations/local/resetPassword.js.map +1 -1
- package/dist/auth/operations/local/unlock.d.ts +2 -2
- package/dist/auth/operations/local/unlock.d.ts.map +1 -1
- package/dist/auth/operations/local/unlock.js.map +1 -1
- package/dist/auth/operations/local/verifyEmail.d.ts +2 -2
- package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
- package/dist/auth/operations/local/verifyEmail.js.map +1 -1
- package/dist/auth/operations/login.d.ts +2 -2
- package/dist/auth/operations/login.d.ts.map +1 -1
- package/dist/auth/operations/login.js +17 -1
- package/dist/auth/operations/login.js.map +1 -1
- package/dist/auth/operations/logout.d.ts +2 -2
- package/dist/auth/operations/logout.d.ts.map +1 -1
- package/dist/auth/operations/logout.js.map +1 -1
- package/dist/auth/operations/me.d.ts +2 -2
- package/dist/auth/operations/me.d.ts.map +1 -1
- package/dist/auth/operations/me.js.map +1 -1
- package/dist/auth/operations/refresh.d.ts +2 -2
- package/dist/auth/operations/refresh.d.ts.map +1 -1
- package/dist/auth/operations/refresh.js.map +1 -1
- package/dist/auth/operations/registerFirstUser.d.ts +2 -2
- package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
- package/dist/auth/operations/registerFirstUser.js.map +1 -1
- package/dist/auth/operations/resetPassword.d.ts +2 -2
- 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 +2 -2
- package/dist/auth/operations/unlock.d.ts.map +1 -1
- package/dist/auth/operations/unlock.js.map +1 -1
- package/dist/auth/operations/verifyEmail.d.ts +2 -2
- package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
- package/dist/auth/operations/verifyEmail.js.map +1 -1
- package/dist/auth/sendVerificationEmail.d.ts +7 -8
- package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
- package/dist/auth/sendVerificationEmail.js +7 -7
- package/dist/auth/sendVerificationEmail.js.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.map +1 -1
- package/dist/auth/strategies/local/register.d.ts +2 -2
- package/dist/auth/strategies/local/register.d.ts.map +1 -1
- package/dist/auth/strategies/local/register.js.map +1 -1
- package/dist/auth/strategies/local/resetLoginAttempts.d.ts +2 -2
- package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -1
- package/dist/auth/types.d.ts +5 -5
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js.map +1 -1
- package/dist/bin/loader/index.d.ts.map +1 -1
- package/dist/bin/loader/index.js +4 -0
- package/dist/bin/loader/index.js.map +1 -1
- package/dist/collections/config/client.d.ts +17 -13
- package/dist/collections/config/client.d.ts.map +1 -1
- package/dist/collections/config/client.js +3 -1
- package/dist/collections/config/client.js.map +1 -1
- package/dist/collections/config/defaults.d.ts +6 -5
- package/dist/collections/config/defaults.d.ts.map +1 -1
- package/dist/collections/config/defaults.js +1 -0
- package/dist/collections/config/defaults.js.map +1 -1
- package/dist/collections/config/sanitize.d.ts +1 -2
- package/dist/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +2 -3
- package/dist/collections/config/sanitize.js.map +1 -1
- package/dist/collections/config/schema.d.ts.map +1 -1
- package/dist/collections/config/schema.js +3 -0
- package/dist/collections/config/schema.js.map +1 -1
- package/dist/collections/config/types.d.ts +33 -23
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js.map +1 -1
- package/dist/collections/dataloader.d.ts.map +1 -1
- package/dist/collections/dataloader.js +4 -6
- package/dist/collections/dataloader.js.map +1 -1
- package/dist/collections/operations/count.d.ts +13 -0
- package/dist/collections/operations/count.d.ts.map +1 -0
- package/dist/collections/operations/count.js +75 -0
- package/dist/collections/operations/count.js.map +1 -0
- package/dist/collections/operations/create.d.ts +2 -2
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +4 -8
- package/dist/collections/operations/create.js.map +1 -1
- package/dist/collections/operations/delete.d.ts +2 -2
- package/dist/collections/operations/delete.d.ts.map +1 -1
- package/dist/collections/operations/delete.js.map +1 -1
- package/dist/collections/operations/deleteByID.d.ts +2 -2
- package/dist/collections/operations/deleteByID.d.ts.map +1 -1
- package/dist/collections/operations/deleteByID.js.map +1 -1
- package/dist/collections/operations/docAccess.d.ts +2 -2
- package/dist/collections/operations/docAccess.d.ts.map +1 -1
- package/dist/collections/operations/docAccess.js.map +1 -1
- package/dist/collections/operations/duplicate.d.ts +2 -2
- package/dist/collections/operations/duplicate.d.ts.map +1 -1
- package/dist/collections/operations/duplicate.js.map +1 -1
- package/dist/collections/operations/find.d.ts +2 -2
- package/dist/collections/operations/find.d.ts.map +1 -1
- package/dist/collections/operations/find.js.map +1 -1
- package/dist/collections/operations/findByID.d.ts +2 -2
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findByID.js.map +1 -1
- package/dist/collections/operations/findVersionByID.d.ts +2 -2
- package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/findVersionByID.js.map +1 -1
- package/dist/collections/operations/findVersions.d.ts +2 -2
- package/dist/collections/operations/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/findVersions.js.map +1 -1
- package/dist/collections/operations/local/count.d.ts +20 -0
- package/dist/collections/operations/local/count.d.ts.map +1 -0
- package/dist/collections/operations/local/count.js +19 -0
- package/dist/collections/operations/local/count.js.map +1 -0
- package/dist/collections/operations/local/create.d.ts +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- 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/findVersionByID.d.ts +4 -4
- 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 +4 -4
- 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/index.d.ts +2 -0
- package/dist/collections/operations/local/index.d.ts.map +1 -1
- package/dist/collections/operations/local/index.js +2 -0
- package/dist/collections/operations/local/index.js.map +1 -1
- package/dist/collections/operations/local/restoreVersion.d.ts +4 -4
- 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 +4 -4
- 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 +2 -2
- package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/restoreVersion.js.map +1 -1
- package/dist/collections/operations/update.d.ts +2 -2
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +3 -3
- package/dist/collections/operations/update.js.map +1 -1
- package/dist/collections/operations/updateByID.d.ts +2 -2
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +2 -2
- package/dist/collections/operations/updateByID.js.map +1 -1
- package/dist/collections/operations/utils.d.ts +8 -2
- package/dist/collections/operations/utils.d.ts.map +1 -1
- package/dist/collections/operations/utils.js.map +1 -1
- package/dist/config/client.d.ts +2 -1
- package/dist/config/client.d.ts.map +1 -1
- package/dist/config/client.js +2 -1
- package/dist/config/client.js.map +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +1 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/find.d.ts.map +1 -1
- package/dist/config/find.js +20 -9
- package/dist/config/find.js.map +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js +8 -2
- package/dist/config/sanitize.js.map +1 -1
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +2 -1
- package/dist/config/schema.js.map +1 -1
- package/dist/config/types.d.ts +36 -53
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +3 -12
- package/dist/config/types.js.map +1 -1
- package/dist/database/migrations/migrate.js.map +1 -1
- package/dist/database/migrations/migrateDown.js.map +1 -1
- package/dist/database/migrations/migrateRefresh.js.map +1 -1
- package/dist/database/migrations/migrateReset.js.map +1 -1
- package/dist/database/queryValidation/validateQueryPaths.d.ts +2 -2
- package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
- package/dist/database/queryValidation/validateQueryPaths.js +1 -1
- package/dist/database/queryValidation/validateQueryPaths.js.map +1 -1
- package/dist/database/queryValidation/validateSearchParams.d.ts +2 -2
- package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
- package/dist/database/queryValidation/validateSearchParams.js.map +1 -1
- package/dist/database/types.d.ts +29 -19
- package/dist/database/types.d.ts.map +1 -1
- package/dist/database/types.js.map +1 -1
- package/dist/email/consoleEmailAdapter.d.ts +3 -0
- package/dist/email/consoleEmailAdapter.d.ts.map +1 -0
- package/dist/email/consoleEmailAdapter.js +17 -0
- package/dist/email/consoleEmailAdapter.js.map +1 -0
- package/dist/email/defaults.d.ts +2 -2
- package/dist/email/defaults.d.ts.map +1 -1
- package/dist/email/defaults.js +3 -3
- package/dist/email/defaults.js.map +1 -1
- package/dist/email/getStringifiedToAddress.d.ts +3 -0
- package/dist/email/getStringifiedToAddress.d.ts.map +1 -0
- package/dist/email/getStringifiedToAddress.js +20 -0
- package/dist/email/getStringifiedToAddress.js.map +1 -0
- package/dist/email/sendEmail.d.ts +3 -2
- package/dist/email/sendEmail.d.ts.map +1 -1
- package/dist/email/sendEmail.js +8 -4
- package/dist/email/sendEmail.js.map +1 -1
- package/dist/email/types.d.ts +26 -18
- package/dist/email/types.d.ts.map +1 -1
- package/dist/email/types.js +5 -1
- package/dist/email/types.js.map +1 -1
- package/dist/errors/APIError.d.ts +2 -2
- package/dist/errors/APIError.d.ts.map +1 -1
- package/dist/errors/APIError.js +1 -2
- package/dist/errors/APIError.js.map +1 -1
- package/dist/errors/AuthenticationError.d.ts +2 -3
- package/dist/errors/AuthenticationError.d.ts.map +1 -1
- package/dist/errors/AuthenticationError.js +2 -3
- package/dist/errors/AuthenticationError.js.map +1 -1
- package/dist/errors/DuplicateCollection.d.ts +2 -3
- package/dist/errors/DuplicateCollection.d.ts.map +1 -1
- package/dist/errors/DuplicateCollection.js +2 -3
- package/dist/errors/DuplicateCollection.js.map +1 -1
- package/dist/errors/DuplicateFieldName.d.ts +2 -3
- package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
- package/dist/errors/DuplicateFieldName.js +2 -3
- package/dist/errors/DuplicateFieldName.js.map +1 -1
- package/dist/errors/DuplicateGlobal.d.ts +2 -3
- package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
- package/dist/errors/DuplicateGlobal.js +2 -3
- package/dist/errors/DuplicateGlobal.js.map +1 -1
- package/dist/errors/ErrorDeletingFile.d.ts +2 -3
- package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
- package/dist/errors/ErrorDeletingFile.js +2 -3
- package/dist/errors/ErrorDeletingFile.js.map +1 -1
- package/dist/errors/FileRetrievalError.d.ts +6 -0
- package/dist/errors/FileRetrievalError.d.ts.map +1 -0
- package/dist/errors/FileRetrievalError.js +13 -0
- package/dist/errors/FileRetrievalError.js.map +1 -0
- package/dist/errors/FileUploadError.d.ts +2 -3
- package/dist/errors/FileUploadError.d.ts.map +1 -1
- package/dist/errors/FileUploadError.js +2 -3
- package/dist/errors/FileUploadError.js.map +1 -1
- package/dist/errors/Forbidden.d.ts +2 -3
- package/dist/errors/Forbidden.d.ts.map +1 -1
- package/dist/errors/Forbidden.js +2 -3
- package/dist/errors/Forbidden.js.map +1 -1
- package/dist/errors/InvalidConfiguration.d.ts +2 -3
- package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
- package/dist/errors/InvalidConfiguration.js +2 -3
- package/dist/errors/InvalidConfiguration.js.map +1 -1
- package/dist/errors/InvalidFieldName.d.ts +2 -3
- package/dist/errors/InvalidFieldName.d.ts.map +1 -1
- package/dist/errors/InvalidFieldName.js +2 -3
- package/dist/errors/InvalidFieldName.js.map +1 -1
- package/dist/errors/InvalidFieldRelationship.d.ts +2 -3
- package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
- package/dist/errors/InvalidFieldRelationship.js +2 -3
- package/dist/errors/InvalidFieldRelationship.js.map +1 -1
- package/dist/errors/InvalidSchema.d.ts +2 -3
- package/dist/errors/InvalidSchema.d.ts.map +1 -1
- package/dist/errors/InvalidSchema.js +2 -3
- package/dist/errors/InvalidSchema.js.map +1 -1
- package/dist/errors/LockedAuth.d.ts +2 -3
- package/dist/errors/LockedAuth.d.ts.map +1 -1
- package/dist/errors/LockedAuth.js +2 -3
- package/dist/errors/LockedAuth.js.map +1 -1
- package/dist/errors/MissingCollectionLabel.d.ts +2 -3
- package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
- package/dist/errors/MissingCollectionLabel.js +2 -3
- package/dist/errors/MissingCollectionLabel.js.map +1 -1
- package/dist/errors/MissingEditorProp.d.ts +2 -3
- package/dist/errors/MissingEditorProp.d.ts.map +1 -1
- package/dist/errors/MissingEditorProp.js +2 -3
- package/dist/errors/MissingEditorProp.js.map +1 -1
- package/dist/errors/MissingFieldInputOptions.d.ts +2 -3
- package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
- package/dist/errors/MissingFieldInputOptions.js +2 -3
- package/dist/errors/MissingFieldInputOptions.js.map +1 -1
- package/dist/errors/MissingFieldType.d.ts +2 -3
- package/dist/errors/MissingFieldType.d.ts.map +1 -1
- package/dist/errors/MissingFieldType.js +2 -3
- package/dist/errors/MissingFieldType.js.map +1 -1
- package/dist/errors/MissingFile.d.ts +2 -3
- package/dist/errors/MissingFile.d.ts.map +1 -1
- package/dist/errors/MissingFile.js +2 -3
- package/dist/errors/MissingFile.js.map +1 -1
- package/dist/errors/NotFound.d.ts +2 -3
- package/dist/errors/NotFound.d.ts.map +1 -1
- package/dist/errors/NotFound.js +2 -3
- package/dist/errors/NotFound.js.map +1 -1
- package/dist/errors/QueryError.d.ts +2 -3
- package/dist/errors/QueryError.d.ts.map +1 -1
- package/dist/errors/QueryError.js +2 -3
- package/dist/errors/QueryError.js.map +1 -1
- package/dist/errors/TimestampsRequired.d.ts +2 -3
- package/dist/errors/TimestampsRequired.d.ts.map +1 -1
- package/dist/errors/TimestampsRequired.js +2 -3
- package/dist/errors/TimestampsRequired.js.map +1 -1
- package/dist/errors/UnathorizedError.d.ts +2 -3
- package/dist/errors/UnathorizedError.d.ts.map +1 -1
- package/dist/errors/UnathorizedError.js +2 -3
- package/dist/errors/UnathorizedError.js.map +1 -1
- package/dist/errors/ValidationError.d.ts +2 -3
- package/dist/errors/ValidationError.d.ts.map +1 -1
- package/dist/errors/ValidationError.js +2 -3
- package/dist/errors/ValidationError.js.map +1 -1
- package/dist/errors/index.d.ts +20 -19
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +20 -19
- package/dist/errors/index.js.map +1 -1
- package/dist/exports/auth.d.ts +1 -0
- package/dist/exports/auth.d.ts.map +1 -1
- package/dist/exports/auth.js +1 -0
- package/dist/exports/auth.js.map +1 -1
- package/dist/exports/database.d.ts +1 -1
- package/dist/exports/database.d.ts.map +1 -1
- package/dist/exports/database.js.map +1 -1
- package/dist/exports/node.d.ts +3 -0
- package/dist/exports/node.d.ts.map +1 -1
- package/dist/exports/node.js +3 -1
- package/dist/exports/node.js.map +1 -1
- package/dist/exports/operations.d.ts +1 -0
- package/dist/exports/operations.d.ts.map +1 -1
- package/dist/exports/operations.js +1 -0
- package/dist/exports/operations.js.map +1 -1
- package/dist/exports/types.d.ts +1 -0
- package/dist/exports/types.d.ts.map +1 -1
- package/dist/exports/types.js.map +1 -1
- package/dist/exports/utilities.d.ts +7 -2
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +7 -3
- package/dist/exports/utilities.js.map +1 -1
- package/dist/fields/config/client.d.ts +128 -103
- package/dist/fields/config/client.d.ts.map +1 -1
- package/dist/fields/config/client.js +2 -1
- package/dist/fields/config/client.js.map +1 -1
- package/dist/fields/config/sanitize.d.ts.map +1 -1
- package/dist/fields/config/sanitize.js +26 -9
- package/dist/fields/config/sanitize.js.map +1 -1
- package/dist/fields/config/sanitize.spec.js +4 -1
- package/dist/fields/config/sanitize.spec.js.map +1 -1
- package/dist/fields/config/schema.d.ts.map +1 -1
- package/dist/fields/config/schema.js +7 -1
- package/dist/fields/config/schema.js.map +1 -1
- package/dist/fields/config/types.d.ts +65 -54
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js.map +1 -1
- package/dist/fields/getDefaultValue.d.ts +2 -2
- package/dist/fields/getDefaultValue.d.ts.map +1 -1
- package/dist/fields/getDefaultValue.js.map +1 -1
- package/dist/fields/hooks/afterChange/index.d.ts +2 -2
- package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/index.js.map +1 -1
- package/dist/fields/hooks/afterChange/promise.d.ts +2 -2
- package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/promise.js.map +1 -1
- package/dist/fields/hooks/afterChange/traverseFields.d.ts +2 -2
- package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/traverseFields.js.map +1 -1
- package/dist/fields/hooks/afterRead/index.d.ts +2 -2
- package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/index.js.map +1 -1
- package/dist/fields/hooks/afterRead/promise.d.ts +5 -2
- package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/promise.js +4 -16
- package/dist/fields/hooks/afterRead/promise.js.map +1 -1
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +2 -2
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.d.ts +5 -2
- package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -1
- package/dist/fields/hooks/beforeChange/index.d.ts +2 -2
- package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/index.js.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.d.ts +2 -2
- package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.js +3 -1
- package/dist/fields/hooks/beforeChange/promise.js.map +1 -1
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts +14 -2
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/index.d.ts +2 -2
- package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/index.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts +8 -2
- package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.js +2 -0
- package/dist/fields/hooks/beforeValidate/promise.js.map +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +8 -2
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -1
- package/dist/fields/validations.d.ts +6 -4
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +49 -10
- package/dist/fields/validations.js.map +1 -1
- package/dist/fields/validations.spec.js +6 -1
- package/dist/fields/validations.spec.js.map +1 -1
- package/dist/globals/config/client.d.ts +1 -1
- package/dist/globals/config/client.d.ts.map +1 -1
- package/dist/globals/config/client.js +2 -1
- package/dist/globals/config/client.js.map +1 -1
- package/dist/globals/config/schema.d.ts.map +1 -1
- package/dist/globals/config/schema.js +1 -0
- package/dist/globals/config/schema.js.map +1 -1
- package/dist/globals/config/types.d.ts +10 -9
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/globals/config/types.js.map +1 -1
- package/dist/globals/operations/docAccess.d.ts +2 -2
- package/dist/globals/operations/docAccess.d.ts.map +1 -1
- package/dist/globals/operations/docAccess.js.map +1 -1
- package/dist/globals/operations/findOne.d.ts +2 -3
- package/dist/globals/operations/findOne.d.ts.map +1 -1
- package/dist/globals/operations/findOne.js.map +1 -1
- package/dist/globals/operations/findVersionByID.d.ts +2 -2
- package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/findVersionByID.js.map +1 -1
- package/dist/globals/operations/findVersions.d.ts +2 -2
- package/dist/globals/operations/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/findVersions.js.map +1 -1
- package/dist/globals/operations/local/findOne.d.ts +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +2 -2
- package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/restoreVersion.js.map +1 -1
- package/dist/globals/operations/update.d.ts +2 -2
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js.map +1 -1
- package/dist/index.d.ts +17 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -14
- package/dist/index.js.map +1 -1
- package/dist/preferences/deleteUserPreferences.d.ts +2 -2
- package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
- package/dist/preferences/deleteUserPreferences.js.map +1 -1
- package/dist/preferences/operations/delete.js +2 -2
- package/dist/preferences/operations/delete.js.map +1 -1
- package/dist/preferences/operations/update.d.ts +1 -1
- package/dist/preferences/operations/update.js +1 -1
- package/dist/preferences/operations/update.js.map +1 -1
- package/dist/preferences/requestHandlers/delete.d.ts.map +1 -1
- package/dist/preferences/requestHandlers/delete.js +18 -5
- package/dist/preferences/requestHandlers/delete.js.map +1 -1
- package/dist/preferences/requestHandlers/findOne.d.ts.map +1 -1
- package/dist/preferences/requestHandlers/findOne.js +18 -5
- package/dist/preferences/requestHandlers/findOne.js.map +1 -1
- package/dist/preferences/requestHandlers/update.d.ts.map +1 -1
- package/dist/preferences/requestHandlers/update.js +19 -7
- package/dist/preferences/requestHandlers/update.js.map +1 -1
- package/dist/preferences/types.d.ts +3 -4
- package/dist/preferences/types.d.ts.map +1 -1
- package/dist/preferences/types.js.map +1 -1
- package/dist/types/index.d.ts +21 -17
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/uploads/deleteAssociatedFiles.d.ts +2 -2
- package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
- package/dist/uploads/deleteAssociatedFiles.js.map +1 -1
- package/dist/uploads/docWithFilenameExists.d.ts +2 -2
- package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
- package/dist/uploads/docWithFilenameExists.js.map +1 -1
- package/dist/uploads/generateFileData.d.ts +2 -2
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +5 -4
- package/dist/uploads/generateFileData.js.map +1 -1
- package/dist/uploads/getExternalFile.d.ts +5 -4
- package/dist/uploads/getExternalFile.d.ts.map +1 -1
- package/dist/uploads/getExternalFile.js +10 -6
- package/dist/uploads/getExternalFile.js.map +1 -1
- package/dist/uploads/getFileByPath.d.ts +2 -2
- package/dist/uploads/getFileByPath.d.ts.map +1 -1
- package/dist/uploads/getFileByPath.js.map +1 -1
- package/dist/uploads/getImageSize.d.ts +2 -2
- package/dist/uploads/getImageSize.d.ts.map +1 -1
- package/dist/uploads/getImageSize.js +19 -5
- package/dist/uploads/getImageSize.js.map +1 -1
- package/dist/uploads/getSafeFilename.d.ts +2 -2
- package/dist/uploads/getSafeFilename.d.ts.map +1 -1
- package/dist/uploads/getSafeFilename.js.map +1 -1
- package/dist/uploads/imageResizer.d.ts +3 -3
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js.map +1 -1
- package/dist/uploads/tempFile.d.ts +7 -0
- package/dist/uploads/tempFile.d.ts.map +1 -0
- package/dist/uploads/tempFile.js +39 -0
- package/dist/uploads/tempFile.js.map +1 -0
- package/dist/uploads/types.d.ts +12 -2
- package/dist/uploads/types.d.ts.map +1 -1
- package/dist/uploads/types.js.map +1 -1
- package/dist/uploads/unlinkTempFiles.d.ts +2 -2
- package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
- package/dist/uploads/unlinkTempFiles.js.map +1 -1
- package/dist/uploads/uploadFiles.d.ts +2 -2
- package/dist/uploads/uploadFiles.d.ts.map +1 -1
- package/dist/uploads/uploadFiles.js.map +1 -1
- package/dist/utilities/checkDuplicateCollections.js +1 -1
- package/dist/utilities/checkDuplicateCollections.js.map +1 -1
- package/dist/utilities/commitTransaction.d.ts +2 -2
- package/dist/utilities/commitTransaction.d.ts.map +1 -1
- package/dist/utilities/commitTransaction.js.map +1 -1
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +53 -1
- package/dist/utilities/configToJSONSchema.js.map +1 -1
- package/dist/utilities/createLocalReq.d.ts +3 -3
- package/dist/utilities/createLocalReq.d.ts.map +1 -1
- package/dist/utilities/createLocalReq.js +3 -1
- package/dist/utilities/createLocalReq.js.map +1 -1
- package/dist/utilities/getEntityPolicies.d.ts +2 -2
- package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
- package/dist/utilities/getEntityPolicies.js.map +1 -1
- package/dist/utilities/importWithoutClientFiles.d.ts.map +1 -1
- package/dist/utilities/importWithoutClientFiles.js +8 -5
- package/dist/utilities/importWithoutClientFiles.js.map +1 -1
- package/dist/utilities/initTransaction.d.ts +2 -2
- package/dist/utilities/initTransaction.d.ts.map +1 -1
- package/dist/utilities/initTransaction.js.map +1 -1
- package/dist/utilities/isEntityHidden.d.ts +2 -2
- package/dist/utilities/isEntityHidden.d.ts.map +1 -1
- package/dist/utilities/isEntityHidden.js.map +1 -1
- package/dist/utilities/isReactComponent.d.ts +2 -0
- package/dist/utilities/isReactComponent.d.ts.map +1 -1
- package/dist/utilities/isReactComponent.js +8 -2
- package/dist/utilities/isReactComponent.js.map +1 -1
- package/dist/utilities/killTransaction.d.ts +2 -2
- package/dist/utilities/killTransaction.d.ts.map +1 -1
- package/dist/utilities/killTransaction.js.map +1 -1
- package/dist/utilities/parseCookies.js +1 -1
- package/dist/utilities/parseCookies.js.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.d.ts +2 -2
- package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.js.map +1 -1
- package/dist/utilities/telemetry/index.d.ts +9 -0
- package/dist/utilities/telemetry/index.d.ts.map +1 -1
- package/dist/utilities/telemetry/index.js +62 -14
- package/dist/utilities/telemetry/index.js.map +1 -1
- package/dist/versions/deleteCollectionVersions.d.ts +2 -2
- package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
- package/dist/versions/deleteCollectionVersions.js.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +2 -2
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -1
- package/dist/versions/enforceMaxVersions.d.ts +2 -2
- package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
- package/dist/versions/enforceMaxVersions.js.map +1 -1
- package/dist/versions/getLatestCollectionVersion.d.ts +2 -2
- package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
- package/dist/versions/getLatestCollectionVersion.js.map +1 -1
- package/dist/versions/getLatestGlobalVersion.d.ts +2 -2
- package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
- package/dist/versions/getLatestGlobalVersion.js.map +1 -1
- package/dist/versions/saveVersion.d.ts +2 -2
- package/dist/versions/saveVersion.d.ts.map +1 -1
- package/dist/versions/saveVersion.js +1 -1
- package/dist/versions/saveVersion.js.map +1 -1
- package/package.json +71 -65
- package/auth.d.ts +0 -6
- package/auth.js +0 -6
- package/config.d.ts +0 -14
- package/config.js +0 -14
- package/database.d.ts +0 -23
- package/database.js +0 -22
- package/dist/email/build.d.ts +0 -5
- package/dist/email/build.d.ts.map +0 -1
- package/dist/email/build.js +0 -63
- package/dist/email/build.js.map +0 -1
- package/dist/email/mockHandler.d.ts +0 -5
- package/dist/email/mockHandler.d.ts.map +0 -1
- package/dist/email/mockHandler.js +0 -24
- package/dist/email/mockHandler.js.map +0 -1
- package/dist/utilities/getIDType.d.ts +0 -4
- package/dist/utilities/getIDType.d.ts.map +0 -1
- package/dist/utilities/getIDType.js +0 -8
- package/dist/utilities/getIDType.js.map +0 -1
- package/errors.d.ts +0 -2
- package/errors.js +0 -3
- package/node.d.ts +0 -3
- package/node.js +0 -4
- package/operations.d.ts +0 -30
- package/operations.js +0 -31
- package/src/index.ts +0 -486
- package/types.d.ts +0 -17
- package/types.js +0 -5
- package/uploads.d.ts +0 -2
- package/uploads.js +0 -3
- package/utilities.d.ts +0 -32
- package/utilities.js +0 -33
- package/versions.d.ts +0 -9
- package/versions.js +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import type { RichTextAdapter } from '../admin/types.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RichTextField,\n SelectField,\n TextField,\n TextareaField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { getIDType } from '../utilities/getIDType.js'\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\nimport { fieldAffectsData } from './config/types.js'\n\nexport const text: Validate<string | string[], unknown, unknown, TextField> = (\n value,\n {\n hasMany,\n maxLength: fieldMaxLength,\n maxRows,\n minLength,\n minRows,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (!required) {\n if (!value) return true\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n const stringsToValidate: string[] = Array.isArray(value) ? value : [value]\n\n for (const stringValue of stringsToValidate) {\n const length = stringValue?.length || 0\n\n if (typeof maxLength === 'number' && length > maxLength) {\n return t('validation:shorterThanMax', { label: t('value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('value'), minLength, stringValue })\n }\n }\n\n if (required) {\n if (!(typeof value === 'string' || Array.isArray(value)) || value?.length === 0) {\n return t('validation:required')\n }\n }\n\n return true\n}\n\nexport const password: Validate<string, unknown, unknown, TextField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const email: Validate<string, unknown, unknown, EmailField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && !/\\S[^\\s@]*@\\S+\\.\\S+/.test(value)) || (!value && required)) {\n return t('validation:emailAddress')\n }\n\n return true\n}\n\nexport const textarea: Validate<string, unknown, unknown, TextareaField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const code: Validate<string, unknown, unknown, CodeField> = (\n value,\n { req: { t }, required },\n) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const json: Validate<string, unknown, unknown, JSONField & { jsonError?: string }> = (\n value,\n { jsonError, req: { t }, required },\n) => {\n if (required && !value) {\n return t('validation:required')\n }\n\n if (jsonError !== undefined) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport const checkbox: Validate<boolean, unknown, unknown, CheckboxField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport const date: Validate<Date, unknown, unknown, DateField> = (\n value,\n { req: { t }, required },\n) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\n /* eslint-disable-line */\n return true\n }\n\n if (value) {\n return t('validation:notValidDate', { value })\n }\n\n if (required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const richText: Validate<object, unknown, unknown, RichTextField> = async (\n value,\n options,\n) => {\n const editor: RichTextAdapter = options?.editor\n\n return editor.validate(value, options)\n}\n\nconst validateArrayLength = (\n value,\n options: {\n maxRows?: number\n minRows?: number\n required?: boolean\n t: (key: string, options?: { [key: string]: number | string }) => string\n },\n) => {\n const { maxRows, minRows, required, t } = options\n\n const arrayLength = Array.isArray(value) ? value.length : value || 0\n\n if (!required && arrayLength === 0) return true\n\n if (minRows && arrayLength < minRows) {\n return t('validation:requiresAtLeast', { count: minRows, label: t('general:rows') })\n }\n\n if (maxRows && arrayLength > maxRows) {\n return t('validation:requiresNoMoreThan', { count: maxRows, label: t('general:rows') })\n }\n\n if (required && !arrayLength) {\n return t('validation:requiresAtLeast', { count: 1, label: t('general:row') })\n }\n\n return true\n}\n\nexport const number: Validate<number | number[], unknown, unknown, NumberField> = (\n value,\n { hasMany, max, maxRows, min, minRows, req: { t }, required },\n) => {\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) return t('validation:required')\n if (!required) return true\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) return t('validation:enterNumber')\n\n const numberValue = parseFloat(number as unknown as string)\n\n if (typeof max === 'number' && numberValue > max) {\n return t('validation:greaterThanMax', { label: t('general:value'), max, value })\n }\n\n if (typeof min === 'number' && numberValue < min) {\n return t('validation:lessThanMin', { label: t('general:value'), min, value })\n }\n }\n\n return true\n}\n\nexport const array: Validate<unknown[], unknown, unknown, ArrayField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport const blocks: Validate<unknown, unknown, unknown, BlockField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nconst validateFilterOptions: Validate<\n unknown,\n unknown,\n unknown,\n RelationshipField | UploadField\n> = async (\n value,\n { id, data, filterOptions, relationTo, req, req: { payload, t, user }, siblingData },\n) => {\n if (typeof filterOptions !== 'undefined' && value) {\n const options: {\n [collection: string]: (number | string)[]\n } = {}\n\n const falseCollections: string[] = []\n const collections = typeof relationTo === 'string' ? [relationTo] : relationTo\n const values = Array.isArray(value) ? value : [value]\n\n for (const collection of collections) {\n try {\n let optionFilter =\n typeof filterOptions === 'function'\n ? await filterOptions({\n id,\n data,\n relationTo: collection,\n siblingData,\n user,\n })\n : filterOptions\n\n if (optionFilter === true) {\n optionFilter = null\n }\n\n const valueIDs: (number | string)[] = []\n\n values.forEach((val) => {\n if (typeof val === 'object' && val?.value) {\n valueIDs.push(val.value)\n }\n\n if (typeof val === 'string' || typeof val === 'number') {\n valueIDs.push(val)\n }\n })\n\n if (valueIDs.length > 0) {\n const findWhere: Where = {\n and: [{ id: { in: valueIDs } }],\n }\n\n if (optionFilter && optionFilter !== true) findWhere.and.push(optionFilter)\n\n if (optionFilter === false) {\n falseCollections.push(collection)\n }\n\n const result = await payload.find({\n collection,\n depth: 0,\n limit: 0,\n pagination: false,\n req,\n where: findWhere,\n })\n\n options[collection] = result.docs.map((doc) => doc.id)\n } else {\n options[collection] = []\n }\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error validating filter options for collection ${collection}`,\n })\n options[collection] = []\n }\n }\n\n const invalidRelationships = values.filter((val) => {\n let collection: string\n let requestedID: number | string\n\n if (typeof relationTo === 'string') {\n collection = relationTo\n\n if (typeof val === 'string' || typeof val === 'number') {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collection = val.relationTo\n requestedID = val.value\n }\n\n if (falseCollections.find((slug) => relationTo === slug)) {\n return true\n }\n\n if (!options[collection]) return true\n\n return options[collection].indexOf(requestedID) === -1\n })\n\n if (invalidRelationships.length > 0) {\n return invalidRelationships.reduce((err, invalid, i) => {\n return `${err} ${JSON.stringify(invalid)}${\n invalidRelationships.length === i + 1 ? ',' : ''\n } `\n }, t('validation:invalidSelections')) as string\n }\n\n return true\n }\n\n return true\n}\n\nexport const upload: Validate<unknown, unknown, unknown, UploadField> = (\n value: string,\n options,\n) => {\n if (!value && options.required) {\n return options?.req?.t('validation:required')\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const idField = options?.req?.payload?.config?.collections\n ?.find((collection) => collection.slug === options.relationTo)\n ?.fields?.find((field) => fieldAffectsData(field) && field.name === 'id')\n\n const type = getIDType(idField, options?.req?.payload?.db?.defaultIDType)\n\n if (!isValidID(value, type)) {\n return options.req?.t('validation:validUploadID')\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const relationship: Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n> = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: {\n payload,\n payload: { config },\n t,\n },\n required,\n } = options\n\n if ((!value || (Array.isArray(value) && value.length === 0)) && required) {\n return t('validation:required')\n }\n\n if (Array.isArray(value) && value.length > 0) {\n if (minRows && value.length < minRows) {\n return t('validation:lessThanMin', {\n label: t('general:rows'),\n min: minRows,\n value: value.length,\n })\n }\n\n if (maxRows && value.length > maxRows) {\n return t('validation:greaterThanMax', {\n label: t('general:rows'),\n max: maxRows,\n value: value.length,\n })\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const values = Array.isArray(value) ? value : [value]\n\n const invalidRelationships = values.filter((val) => {\n let collectionSlug: string\n let requestedID\n\n if (typeof relationTo === 'string') {\n collectionSlug = relationTo\n\n // custom id\n if (val) {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collectionSlug = val.relationTo\n requestedID = val.value\n }\n\n if (requestedID === null) return false\n\n const idField = config?.collections\n ?.find((collection) => collection.slug === collectionSlug)\n ?.fields?.find((field) => fieldAffectsData(field) && field.name === 'id')\n\n const type = getIDType(idField, payload?.db?.defaultIDType)\n\n return !isValidID(requestedID, type)\n })\n\n if (invalidRelationships.length > 0) {\n return `This relationship field has the following invalid relationships: ${invalidRelationships\n .map((err, invalid) => {\n return `${err} ${JSON.stringify(invalid)}`\n })\n .join(', ')}`\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const select: Validate<unknown, unknown, unknown, SelectField> = (\n value,\n { hasMany, options, req: { t }, required },\n) => {\n if (\n Array.isArray(value) &&\n value.some(\n (input) =>\n !options.some(\n (option) => option === input || (typeof option !== 'string' && option?.value === input),\n ),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n typeof value === 'string' &&\n !options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n required &&\n (typeof value === 'undefined' ||\n value === null ||\n (hasMany && Array.isArray(value) && (value as [])?.length === 0))\n ) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const radio: Validate<unknown, unknown, unknown, RadioField> = (\n value,\n { options, req: { t }, required },\n) => {\n if (value) {\n const valueMatchesOption = options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n return valueMatchesOption || t('validation:invalidSelection')\n }\n\n return required ? t('validation:required') : true\n}\n\nexport const point: Validate<[number | string, number | string], unknown, unknown, PointField> = (\n value = ['', ''],\n { req: { t }, required },\n) => {\n const lng = parseFloat(String(value[0]))\n const lat = parseFloat(String(value[1]))\n if (\n required &&\n ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number') ||\n Number.isNaN(lng) ||\n Number.isNaN(lat) ||\n (Array.isArray(value) && value.length !== 2))\n ) {\n return t('validation:requiresTwoNumbers')\n }\n\n if ((value[1] && Number.isNaN(lng)) || (value[0] && Number.isNaN(lat))) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport default {\n array,\n blocks,\n checkbox,\n code,\n date,\n email,\n json,\n number,\n password,\n point,\n radio,\n relationship,\n richText,\n select,\n text,\n textarea,\n upload,\n}\n"],"names":["getIDType","isNumber","isValidID","fieldAffectsData","text","value","hasMany","maxLength","fieldMaxLength","maxRows","minLength","minRows","req","payload","config","t","required","lengthValidationResult","validateArrayLength","defaultMaxTextLength","stringsToValidate","Array","isArray","stringValue","length","label","password","email","test","textarea","code","undefined","json","jsonError","checkbox","date","isNaN","Date","parse","toString","richText","options","editor","validate","arrayLength","count","number","max","min","numbersToValidate","numberValue","parseFloat","array","blocks","validateFilterOptions","id","data","filterOptions","relationTo","user","siblingData","falseCollections","collections","values","collection","optionFilter","valueIDs","forEach","val","push","findWhere","and","in","result","find","depth","limit","pagination","where","docs","map","doc","err","logger","error","msg","invalidRelationships","filter","requestedID","slug","indexOf","reduce","invalid","i","JSON","stringify","upload","idField","fields","field","name","type","db","defaultIDType","relationship","collectionSlug","join","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/fields/validations.ts"],"sourcesContent":["import Ajv from 'ajv'\n\nimport type { RichTextAdapter } from '../admin/types.js'\nimport type { Where } from '../types/index.js'\nimport type {\n ArrayField,\n BlockField,\n CheckboxField,\n CodeField,\n DateField,\n EmailField,\n JSONField,\n NumberField,\n PointField,\n RadioField,\n RelationshipField,\n RelationshipValue,\n RichTextField,\n SelectField,\n TextField,\n TextareaField,\n UploadField,\n Validate,\n} from './config/types.js'\n\nimport { isNumber } from '../utilities/isNumber.js'\nimport { isValidID } from '../utilities/isValidID.js'\n\nexport const text: Validate<string | string[], unknown, unknown, TextField> = (\n value,\n {\n hasMany,\n maxLength: fieldMaxLength,\n maxRows,\n minLength,\n minRows,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (!required) {\n if (!value) return true\n }\n\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n const stringsToValidate: string[] = Array.isArray(value) ? value : [value]\n\n for (const stringValue of stringsToValidate) {\n const length = stringValue?.length || 0\n\n if (typeof maxLength === 'number' && length > maxLength) {\n return t('validation:shorterThanMax', { label: t('value'), maxLength, stringValue })\n }\n\n if (typeof minLength === 'number' && length < minLength) {\n return t('validation:longerThanMin', { label: t('value'), minLength, stringValue })\n }\n }\n\n if (required) {\n if (!(typeof value === 'string' || Array.isArray(value)) || value?.length === 0) {\n return t('validation:required')\n }\n }\n\n return true\n}\n\nexport const password: Validate<string, unknown, unknown, TextField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const email: Validate<string, unknown, unknown, EmailField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && !/\\S[^\\s@]*@\\S+\\.\\S+/.test(value)) || (!value && required)) {\n return t('validation:emailAddress')\n }\n\n return true\n}\n\nexport const textarea: Validate<string, unknown, unknown, TextareaField> = (\n value,\n {\n maxLength: fieldMaxLength,\n minLength,\n req: {\n payload: { config },\n t,\n },\n required,\n },\n) => {\n let maxLength: number\n\n if (typeof config?.defaultMaxTextLength === 'number') maxLength = config.defaultMaxTextLength\n if (typeof fieldMaxLength === 'number') maxLength = fieldMaxLength\n if (value && maxLength && value.length > maxLength) {\n return t('validation:shorterThanMax', { maxLength })\n }\n\n if (value && minLength && value.length < minLength) {\n return t('validation:longerThanMin', { minLength })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const code: Validate<string, unknown, unknown, CodeField> = (\n value,\n { req: { t }, required },\n) => {\n if (required && value === undefined) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const json: Validate<string, unknown, unknown, JSONField & { jsonError?: string }> = async (\n value,\n { jsonError, jsonSchema, req: { t }, required },\n) => {\n const isNotEmpty = (value) => {\n if (value === undefined || value === null) {\n return false\n }\n\n if (Array.isArray(value) && value.length === 0) {\n return false\n }\n\n if (typeof value === 'object' && Object.keys(value).length === 0) {\n return false\n }\n\n return true\n }\n\n const fetchSchema = ({ schema, uri }: Record<string, unknown>) => {\n if (uri && schema) return schema\n // @ts-expect-error\n return fetch(uri)\n .then((response) => {\n if (!response.ok) {\n throw new Error('Network response was not ok')\n }\n return response.json()\n })\n .then((json) => {\n const jsonSchemaSanitizations = {\n id: undefined,\n $id: json.id,\n $schema: 'http://json-schema.org/draft-07/schema#',\n }\n\n return Object.assign(json, jsonSchemaSanitizations)\n })\n }\n\n if (required && !value) {\n return t('validation:required')\n }\n\n if (jsonError !== undefined) {\n return t('validation:invalidInput')\n }\n\n if (jsonSchema && isNotEmpty(value)) {\n try {\n jsonSchema.schema = await fetchSchema(jsonSchema)\n const { schema } = jsonSchema\n // @ts-expect-error\n const ajv = new Ajv()\n\n if (!ajv.validate(schema, value)) {\n return t(ajv.errorsText())\n }\n } catch (error) {\n return t(error.message)\n }\n }\n return true\n}\n\nexport const checkbox: Validate<boolean, unknown, unknown, CheckboxField> = (\n value,\n { req: { t }, required },\n) => {\n if ((value && typeof value !== 'boolean') || (required && typeof value !== 'boolean')) {\n return t('validation:trueOrFalse')\n }\n\n return true\n}\n\nexport const date: Validate<Date, unknown, unknown, DateField> = (\n value,\n { req: { t }, required },\n) => {\n if (value && !isNaN(Date.parse(value.toString()))) {\n /* eslint-disable-line */\n return true\n }\n\n if (value) {\n return t('validation:notValidDate', { value })\n }\n\n if (required) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const richText: Validate<object, unknown, unknown, RichTextField> = async (\n value,\n options,\n) => {\n const editor: RichTextAdapter = options?.editor\n\n return editor.validate(value, options)\n}\n\nconst validateArrayLength = (\n value,\n options: {\n maxRows?: number\n minRows?: number\n required?: boolean\n t: (key: string, options?: { [key: string]: number | string }) => string\n },\n) => {\n const { maxRows, minRows, required, t } = options\n\n const arrayLength = Array.isArray(value) ? value.length : value || 0\n\n if (!required && arrayLength === 0) return true\n\n if (minRows && arrayLength < minRows) {\n return t('validation:requiresAtLeast', { count: minRows, label: t('general:rows') })\n }\n\n if (maxRows && arrayLength > maxRows) {\n return t('validation:requiresNoMoreThan', { count: maxRows, label: t('general:rows') })\n }\n\n if (required && !arrayLength) {\n return t('validation:requiresAtLeast', { count: 1, label: t('general:row') })\n }\n\n return true\n}\n\nexport const number: Validate<number | number[], unknown, unknown, NumberField> = (\n value,\n { hasMany, max, maxRows, min, minRows, req: { t }, required },\n) => {\n if (hasMany === true) {\n const lengthValidationResult = validateArrayLength(value, { maxRows, minRows, required, t })\n if (typeof lengthValidationResult === 'string') return lengthValidationResult\n }\n\n if (!value && !isNumber(value)) {\n // if no value is present, validate based on required\n if (required) return t('validation:required')\n if (!required) return true\n }\n\n const numbersToValidate: number[] = Array.isArray(value) ? value : [value]\n\n for (const number of numbersToValidate) {\n if (!isNumber(number)) return t('validation:enterNumber')\n\n const numberValue = parseFloat(number as unknown as string)\n\n if (typeof max === 'number' && numberValue > max) {\n return t('validation:greaterThanMax', { label: t('general:value'), max, value })\n }\n\n if (typeof min === 'number' && numberValue < min) {\n return t('validation:lessThanMin', { label: t('general:value'), min, value })\n }\n }\n\n return true\n}\n\nexport const array: Validate<unknown[], unknown, unknown, ArrayField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nexport const blocks: Validate<unknown, unknown, unknown, BlockField> = (\n value,\n { maxRows, minRows, req: { t }, required },\n) => {\n return validateArrayLength(value, { maxRows, minRows, required, t })\n}\n\nconst validateFilterOptions: Validate<\n unknown,\n unknown,\n unknown,\n RelationshipField | UploadField\n> = async (\n value,\n { id, data, filterOptions, relationTo, req, req: { payload, t, user }, siblingData },\n) => {\n if (typeof filterOptions !== 'undefined' && value) {\n const options: {\n [collection: string]: (number | string)[]\n } = {}\n\n const falseCollections: string[] = []\n const collections = typeof relationTo === 'string' ? [relationTo] : relationTo\n const values = Array.isArray(value) ? value : [value]\n\n for (const collection of collections) {\n try {\n let optionFilter =\n typeof filterOptions === 'function'\n ? await filterOptions({\n id,\n data,\n relationTo: collection,\n siblingData,\n user,\n })\n : filterOptions\n\n if (optionFilter === true) {\n optionFilter = null\n }\n\n const valueIDs: (number | string)[] = []\n\n values.forEach((val) => {\n if (typeof val === 'object' && val?.value) {\n valueIDs.push(val.value)\n }\n\n if (typeof val === 'string' || typeof val === 'number') {\n valueIDs.push(val)\n }\n })\n\n if (valueIDs.length > 0) {\n const findWhere: Where = {\n and: [{ id: { in: valueIDs } }],\n }\n\n if (optionFilter && optionFilter !== true) findWhere.and.push(optionFilter)\n\n if (optionFilter === false) {\n falseCollections.push(collection)\n }\n\n const result = await payload.find({\n collection,\n depth: 0,\n limit: 0,\n pagination: false,\n req,\n where: findWhere,\n })\n\n options[collection] = result.docs.map((doc) => doc.id)\n } else {\n options[collection] = []\n }\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `Error validating filter options for collection ${collection}`,\n })\n options[collection] = []\n }\n }\n\n const invalidRelationships = values.filter((val) => {\n let collection: string\n let requestedID: number | string\n\n if (typeof relationTo === 'string') {\n collection = relationTo\n\n if (typeof val === 'string' || typeof val === 'number') {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collection = val.relationTo\n requestedID = val.value\n }\n\n if (falseCollections.find((slug) => relationTo === slug)) {\n return true\n }\n\n if (!options[collection]) return true\n\n return options[collection].indexOf(requestedID) === -1\n })\n\n if (invalidRelationships.length > 0) {\n return invalidRelationships.reduce((err, invalid, i) => {\n return `${err} ${JSON.stringify(invalid)}${\n invalidRelationships.length === i + 1 ? ',' : ''\n } `\n }, t('validation:invalidSelections')) as string\n }\n\n return true\n }\n\n return true\n}\n\nexport const upload: Validate<unknown, unknown, unknown, UploadField> = (\n value: string,\n options,\n) => {\n if (!value && options.required) {\n return options?.req?.t('validation:required')\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const idType =\n options?.req?.payload?.collections[options.relationTo]?.customIDType ||\n options?.req?.payload?.db?.defaultIDType\n\n if (!isValidID(value, idType)) {\n return options.req?.t('validation:validUploadID')\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const relationship: Validate<\n RelationshipValue,\n unknown,\n unknown,\n RelationshipField\n> = async (value, options) => {\n const {\n maxRows,\n minRows,\n relationTo,\n req: { payload, t },\n required,\n } = options\n\n if ((!value || (Array.isArray(value) && value.length === 0)) && required) {\n return t('validation:required')\n }\n\n if (Array.isArray(value) && value.length > 0) {\n if (minRows && value.length < minRows) {\n return t('validation:lessThanMin', {\n label: t('general:rows'),\n min: minRows,\n value: value.length,\n })\n }\n\n if (maxRows && value.length > maxRows) {\n return t('validation:greaterThanMax', {\n label: t('general:rows'),\n max: maxRows,\n value: value.length,\n })\n }\n }\n\n if (typeof value !== 'undefined' && value !== null) {\n const values = Array.isArray(value) ? value : [value]\n\n const invalidRelationships = values.filter((val) => {\n let collectionSlug: string\n let requestedID\n\n if (typeof relationTo === 'string') {\n collectionSlug = relationTo\n\n // custom id\n if (val) {\n requestedID = val\n }\n }\n\n if (Array.isArray(relationTo) && typeof val === 'object' && val?.relationTo) {\n collectionSlug = val.relationTo\n requestedID = val.value\n }\n\n if (requestedID === null) return false\n\n const idType =\n payload.collections[collectionSlug]?.customIDType || payload?.db?.defaultIDType || 'text'\n\n return !isValidID(requestedID, idType)\n })\n\n if (invalidRelationships.length > 0) {\n return `This relationship field has the following invalid relationships: ${invalidRelationships\n .map((err, invalid) => {\n return `${err} ${JSON.stringify(invalid)}`\n })\n .join(', ')}`\n }\n }\n\n return validateFilterOptions(value, options)\n}\n\nexport const select: Validate<unknown, unknown, unknown, SelectField> = (\n value,\n { hasMany, options, req: { t }, required },\n) => {\n if (\n Array.isArray(value) &&\n value.some(\n (input) =>\n !options.some(\n (option) => option === input || (typeof option !== 'string' && option?.value === input),\n ),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n typeof value === 'string' &&\n !options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n ) {\n return t('validation:invalidSelection')\n }\n\n if (\n required &&\n (typeof value === 'undefined' ||\n value === null ||\n (hasMany && Array.isArray(value) && (value as [])?.length === 0))\n ) {\n return t('validation:required')\n }\n\n return true\n}\n\nexport const radio: Validate<unknown, unknown, unknown, RadioField> = (\n value,\n { options, req: { t }, required },\n) => {\n if (value) {\n const valueMatchesOption = options.some(\n (option) => option === value || (typeof option !== 'string' && option.value === value),\n )\n return valueMatchesOption || t('validation:invalidSelection')\n }\n\n return required ? t('validation:required') : true\n}\n\nexport const point: Validate<[number | string, number | string], unknown, unknown, PointField> = (\n value = ['', ''],\n { req: { t }, required },\n) => {\n const lng = parseFloat(String(value[0]))\n const lat = parseFloat(String(value[1]))\n if (\n required &&\n ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number') ||\n Number.isNaN(lng) ||\n Number.isNaN(lat) ||\n (Array.isArray(value) && value.length !== 2))\n ) {\n return t('validation:requiresTwoNumbers')\n }\n\n if ((value[1] && Number.isNaN(lng)) || (value[0] && Number.isNaN(lat))) {\n return t('validation:invalidInput')\n }\n\n return true\n}\n\nexport default {\n array,\n blocks,\n checkbox,\n code,\n date,\n email,\n json,\n number,\n password,\n point,\n radio,\n relationship,\n richText,\n select,\n text,\n textarea,\n upload,\n}\n"],"names":["Ajv","isNumber","isValidID","text","value","hasMany","maxLength","fieldMaxLength","maxRows","minLength","minRows","req","payload","config","t","required","lengthValidationResult","validateArrayLength","defaultMaxTextLength","stringsToValidate","Array","isArray","stringValue","length","label","password","email","test","textarea","code","undefined","json","jsonError","jsonSchema","isNotEmpty","Object","keys","fetchSchema","schema","uri","fetch","then","response","ok","Error","jsonSchemaSanitizations","id","$id","$schema","assign","ajv","validate","errorsText","error","message","checkbox","date","isNaN","Date","parse","toString","richText","options","editor","arrayLength","count","number","max","min","numbersToValidate","numberValue","parseFloat","array","blocks","validateFilterOptions","data","filterOptions","relationTo","user","siblingData","falseCollections","collections","values","collection","optionFilter","valueIDs","forEach","val","push","findWhere","and","in","result","find","depth","limit","pagination","where","docs","map","doc","err","logger","msg","invalidRelationships","filter","requestedID","slug","indexOf","reduce","invalid","i","JSON","stringify","upload","idType","customIDType","db","defaultIDType","relationship","collectionSlug","join","select","some","input","option","radio","valueMatchesOption","point","lng","String","lat","Number"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/fields/validations.spec.ts"],"sourcesContent":["import type { ValidateOptions } from './config/types.js'\n\nimport { number, password, point, relationship, select, text, textarea } from './validations.js'\n\nconst t = jest.fn((string) => string)\n\nlet options: ValidateOptions<any, any> = {\n data: undefined,\n operation: 'create',\n siblingData: undefined,\n req: {\n t,\n context: {},\n payload: {\n config: {},\n },\n },\n}\n\ndescribe('Field Validations', () => {\n describe('text', () => {\n it('should validate', () => {\n const val = 'test'\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = text(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n it('should validate an array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true })\n expect(result).toBe(true)\n })\n it('should handle required array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true, required: true })\n expect(result).toBe(true)\n })\n })\n\n describe('textarea', () => {\n options = { ...options, field: { name: 'test', type: 'textarea' } }\n it('should validate', () => {\n const val = 'test'\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = textarea(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n\n it('should handle undefined', () => {\n const val = undefined\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n\n it('should validate minLength', () => {\n const val = 'short'\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('password', () => {\n const passwordOptions = {\n ...options,\n name: 'test',\n type: 'password',\n }\n it('should validate', () => {\n const val = 'test'\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('point', () => {\n const pointOptions = {\n ...options,\n name: 'point',\n type: 'point',\n }\n it('should validate numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should validate strings that could be numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should show required message when undefined', () => {\n const val = undefined\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array', () => {\n const val = []\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array of undefined', () => {\n const val = [undefined, undefined]\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle undefined not required', () => {\n const val = undefined\n const result = password(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle empty array not required', () => {\n const val = []\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle array of undefined not required', () => {\n const val = [undefined, undefined]\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should prevent text input', () => {\n const val = ['bad', 'input']\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n it('should prevent missing value', () => {\n const val = [0.1]\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n })\n\n describe('relationship', () => {\n const relationCollection = {\n fields: [\n {\n name: 'id',\n type: 'text',\n },\n ],\n slug: 'relation',\n }\n\n const relationshipOptions = {\n ...options,\n req: {\n ...options.req,\n payload: {\n ...options.req.payload,\n config: {\n collections: [relationCollection],\n },\n collections: {\n relation: {\n config: relationCollection,\n },\n },\n },\n },\n relationTo: 'relation',\n }\n it('should handle required', async () => {\n const val = undefined\n const result = await relationship(val, { ...relationshipOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle required with hasMany', async () => {\n const val = []\n const result = await relationship(val, {\n ...relationshipOptions,\n hasMany: true,\n required: true,\n })\n expect(result).not.toBe(true)\n })\n it('should enforce hasMany min', async () => {\n const minOptions = {\n ...relationshipOptions,\n hasMany: true,\n minRows: 2,\n }\n\n const val = ['a']\n\n const result = await relationship(val, minOptions)\n expect(result).not.toBe(true)\n\n const allowed = await relationship(['a', 'b'], minOptions)\n expect(allowed).toStrictEqual(true)\n })\n it('should enforce hasMany max', async () => {\n const maxOptions = {\n ...relationshipOptions,\n hasMany: true,\n maxRows: 2,\n }\n let val = ['a', 'b', 'c']\n\n const result = await relationship(val, maxOptions)\n expect(result).not.toBe(true)\n\n val = ['a']\n const allowed = await relationship(val, maxOptions)\n expect(allowed).toStrictEqual(true)\n })\n })\n\n describe('select', () => {\n const selectOptions = {\n ...options,\n options: ['one', 'two', 'three'],\n type: 'select',\n }\n const optionsRequired = {\n ...selectOptions,\n options: [\n {\n label: 'One',\n value: 'one',\n },\n {\n label: 'two',\n value: 'two',\n },\n {\n label: 'three',\n value: 'three',\n },\n ],\n required: true,\n }\n const optionsWithEmptyString = {\n ...selectOptions,\n options: [\n {\n label: 'None',\n value: '',\n },\n {\n label: 'Option',\n value: 'option',\n },\n ],\n }\n it('should allow valid input', () => {\n const val = 'one'\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input', () => {\n const val = 'bad'\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow null input', () => {\n const val = null\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should allow undefined input', () => {\n let val\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent empty string input', () => {\n const val = ''\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required', () => {\n let val\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string input with required', () => {\n const result = select('', optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required and hasMany', () => {\n let val\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty array input with required and hasMany', () => {\n optionsRequired.hasMany = true\n const result = select([], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string array input with required and hasMany', () => {\n options.hasMany = true\n const result = select([''], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent null input with required and hasMany', () => {\n const val = null\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with option objects', () => {\n const val = 'one'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with option objects', () => {\n const val = 'bad'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow empty string input with option object', () => {\n const val = ''\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow empty string input with option object and required', () => {\n const val = ''\n optionsWithEmptyString.required = true\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow valid input with hasMany', () => {\n const val = ['one', 'two']\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany', () => {\n const val = ['one', 'bad']\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with hasMany option objects', () => {\n const val = ['one', 'three']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany option objects', () => {\n const val = ['three', 'bad']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n })\n describe('number', () => {\n const numberOptions = {\n ...options,\n name: 'test',\n type: 'number',\n }\n it('should validate', () => {\n const val = 1\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should validate 0', () => {\n const val = 0\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe(true)\n })\n it('should validate 2', () => {\n const val = 1.5\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should show invalid number message', () => {\n const val = 'test'\n const result = number(val, { ...numberOptions })\n expect(result).toBe('validation:enterNumber')\n })\n it('should handle empty value', () => {\n const val = ''\n const result = number(val, { ...numberOptions })\n expect(result).toBe(true)\n })\n it('should handle required value', () => {\n const val = ''\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should validate minValue', () => {\n const val = 2.4\n const result = number(val, { ...numberOptions, min: 2.5 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate maxValue', () => {\n const val = 1.25\n const result = number(val, { ...numberOptions, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true })\n expect(result).toBe(true)\n })\n it('should validate an array of numbers using min', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, min: 3 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate an array of numbers using max', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers using minRows', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, minRows: 4 })\n expect(result).toBe('validation:requiresAtLeast')\n })\n it('should validate an array of numbers using maxRows', async () => {\n const val = [1.25, 2.5, 3.5]\n const result = number(val, { ...numberOptions, hasMany: true, maxRows: 2 })\n expect(result).toBe('validation:requiresNoMoreThan')\n })\n })\n})\n"],"names":["number","password","point","relationship","select","text","textarea","t","jest","fn","string","options","data","undefined","operation","siblingData","req","context","payload","config","describe","it","val","result","expect","toBe","required","maxLength","minLength","hasMany","field","name","type","passwordOptions","pointOptions","not","relationCollection","fields","slug","relationshipOptions","collections","relation","relationTo","minOptions","minRows","allowed","toStrictEqual","maxOptions","maxRows","selectOptions","optionsRequired","label","value","optionsWithEmptyString","numberOptions","min","max"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../src/fields/validations.spec.ts"],"sourcesContent":["import type { ValidateOptions } from './config/types.js'\n\nimport { number, password, point, relationship, select, text, textarea } from './validations.js'\n\nconst t = jest.fn((string) => string)\n\nlet options: ValidateOptions<any, any> = {\n data: undefined,\n operation: 'create',\n siblingData: undefined,\n req: {\n t,\n context: {},\n payload: {\n config: {\n db: {\n defaultIDType: 'text',\n init: () => null,\n },\n },\n },\n },\n}\n\ndescribe('Field Validations', () => {\n describe('text', () => {\n it('should validate', () => {\n const val = 'test'\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = text(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = text(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = text(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n it('should validate an array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true })\n expect(result).toBe(true)\n })\n it('should handle required array of texts', async () => {\n const val = ['test']\n const result = text(val, { ...options, hasMany: true, required: true })\n expect(result).toBe(true)\n })\n })\n\n describe('textarea', () => {\n options = { ...options, field: { name: 'test', type: 'textarea' } }\n it('should validate', () => {\n const val = 'test'\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = textarea(val, { ...options, required: true })\n expect(result).toBe('validation:required')\n })\n\n it('should handle undefined', () => {\n const val = undefined\n const result = textarea(val, options)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n\n it('should validate minLength', () => {\n const val = 'short'\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = textarea(val, { ...options, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('password', () => {\n const passwordOptions = {\n ...options,\n name: 'test',\n type: 'password',\n }\n it('should validate', () => {\n const val = 'test'\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should show required message', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should handle undefined', () => {\n const val = undefined\n const result = password(val, passwordOptions)\n expect(result).toBe(true)\n })\n it('should validate maxLength', () => {\n const val = 'toolong'\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe('validation:shorterThanMax')\n })\n it('should validate minLength', () => {\n const val = 'short'\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe('validation:longerThanMin')\n })\n it('should validate maxLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, maxLength: 5 })\n expect(result).toBe(true)\n })\n it('should validate minLength with no value', () => {\n const val = undefined\n const result = password(val, { ...passwordOptions, minLength: 10 })\n expect(result).toBe(true)\n })\n })\n\n describe('point', () => {\n const pointOptions = {\n ...options,\n name: 'point',\n type: 'point',\n }\n it('should validate numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should validate strings that could be numbers', () => {\n const val = ['0.1', '0.2']\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should show required message when undefined', () => {\n const val = undefined\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array', () => {\n const val = []\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should show required message when array of undefined', () => {\n const val = [undefined, undefined]\n const result = point(val, { ...pointOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle undefined not required', () => {\n const val = undefined\n const result = password(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle empty array not required', () => {\n const val = []\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should handle array of undefined not required', () => {\n const val = [undefined, undefined]\n const result = point(val, pointOptions)\n expect(result).toBe(true)\n })\n it('should prevent text input', () => {\n const val = ['bad', 'input']\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n it('should prevent missing value', () => {\n const val = [0.1]\n const result = point(val, pointOptions)\n expect(result).not.toBe(true)\n })\n })\n\n describe('relationship', () => {\n const relationCollection = {\n fields: [\n {\n name: 'id',\n type: 'text',\n },\n ],\n slug: 'relation',\n }\n\n const relationshipOptions = {\n ...options,\n req: {\n ...options.req,\n payload: {\n ...options.req.payload,\n config: {\n collections: [relationCollection],\n },\n collections: {\n relation: {\n config: relationCollection,\n },\n },\n },\n },\n relationTo: 'relation',\n }\n it('should handle required', async () => {\n const val = undefined\n const result = await relationship(val, { ...relationshipOptions, required: true })\n expect(result).not.toBe(true)\n })\n it('should handle required with hasMany', async () => {\n const val = []\n const result = await relationship(val, {\n ...relationshipOptions,\n hasMany: true,\n required: true,\n })\n expect(result).not.toBe(true)\n })\n it('should enforce hasMany min', async () => {\n const minOptions = {\n ...relationshipOptions,\n hasMany: true,\n minRows: 2,\n }\n\n const val = ['a']\n\n const result = await relationship(val, minOptions)\n expect(result).not.toBe(true)\n\n const allowed = await relationship(['a', 'b'], minOptions)\n expect(allowed).toStrictEqual(true)\n })\n it('should enforce hasMany max', async () => {\n const maxOptions = {\n ...relationshipOptions,\n hasMany: true,\n maxRows: 2,\n }\n let val = ['a', 'b', 'c']\n\n const result = await relationship(val, maxOptions)\n expect(result).not.toBe(true)\n\n val = ['a']\n const allowed = await relationship(val, maxOptions)\n expect(allowed).toStrictEqual(true)\n })\n })\n\n describe('select', () => {\n const selectOptions = {\n ...options,\n options: ['one', 'two', 'three'],\n type: 'select',\n }\n const optionsRequired = {\n ...selectOptions,\n options: [\n {\n label: 'One',\n value: 'one',\n },\n {\n label: 'two',\n value: 'two',\n },\n {\n label: 'three',\n value: 'three',\n },\n ],\n required: true,\n }\n const optionsWithEmptyString = {\n ...selectOptions,\n options: [\n {\n label: 'None',\n value: '',\n },\n {\n label: 'Option',\n value: 'option',\n },\n ],\n }\n it('should allow valid input', () => {\n const val = 'one'\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input', () => {\n const val = 'bad'\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow null input', () => {\n const val = null\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should allow undefined input', () => {\n let val\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent empty string input', () => {\n const val = ''\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required', () => {\n let val\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string input with required', () => {\n const result = select('', optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent undefined input with required and hasMany', () => {\n let val\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty array input with required and hasMany', () => {\n optionsRequired.hasMany = true\n const result = select([], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent empty string array input with required and hasMany', () => {\n options.hasMany = true\n const result = select([''], optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should prevent null input with required and hasMany', () => {\n const val = null\n options.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with option objects', () => {\n const val = 'one'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with option objects', () => {\n const val = 'bad'\n options.hasMany = false\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow empty string input with option object', () => {\n const val = ''\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow empty string input with option object and required', () => {\n const val = ''\n optionsWithEmptyString.required = true\n const result = select(val, optionsWithEmptyString)\n expect(result).toStrictEqual(true)\n })\n it('should allow valid input with hasMany', () => {\n const val = ['one', 'two']\n const result = select(val, selectOptions)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany', () => {\n const val = ['one', 'bad']\n const result = select(val, selectOptions)\n expect(result).not.toStrictEqual(true)\n })\n it('should allow valid input with hasMany option objects', () => {\n const val = ['one', 'three']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).toStrictEqual(true)\n })\n it('should prevent invalid input with hasMany option objects', () => {\n const val = ['three', 'bad']\n optionsRequired.hasMany = true\n const result = select(val, optionsRequired)\n expect(result).not.toStrictEqual(true)\n })\n })\n describe('number', () => {\n const numberOptions = {\n ...options,\n name: 'test',\n type: 'number',\n }\n it('should validate', () => {\n const val = 1\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should validate 0', () => {\n const val = 0\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe(true)\n })\n it('should validate 2', () => {\n const val = 1.5\n const result = number(val, numberOptions)\n expect(result).toBe(true)\n })\n it('should show invalid number message', () => {\n const val = 'test'\n const result = number(val, { ...numberOptions })\n expect(result).toBe('validation:enterNumber')\n })\n it('should handle empty value', () => {\n const val = ''\n const result = number(val, { ...numberOptions })\n expect(result).toBe(true)\n })\n it('should handle required value', () => {\n const val = ''\n const result = number(val, { ...numberOptions, required: true })\n expect(result).toBe('validation:required')\n })\n it('should validate minValue', () => {\n const val = 2.4\n const result = number(val, { ...numberOptions, min: 2.5 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate maxValue', () => {\n const val = 1.25\n const result = number(val, { ...numberOptions, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true })\n expect(result).toBe(true)\n })\n it('should validate an array of numbers using min', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, min: 3 })\n expect(result).toBe('validation:lessThanMin')\n })\n it('should validate an array of numbers using max', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, max: 1 })\n expect(result).toBe('validation:greaterThanMax')\n })\n it('should validate an array of numbers using minRows', async () => {\n const val = [1.25, 2.5]\n const result = number(val, { ...numberOptions, hasMany: true, minRows: 4 })\n expect(result).toBe('validation:requiresAtLeast')\n })\n it('should validate an array of numbers using maxRows', async () => {\n const val = [1.25, 2.5, 3.5]\n const result = number(val, { ...numberOptions, hasMany: true, maxRows: 2 })\n expect(result).toBe('validation:requiresNoMoreThan')\n })\n })\n})\n"],"names":["number","password","point","relationship","select","text","textarea","t","jest","fn","string","options","data","undefined","operation","siblingData","req","context","payload","config","db","defaultIDType","init","describe","it","val","result","expect","toBe","required","maxLength","minLength","hasMany","field","name","type","passwordOptions","pointOptions","not","relationCollection","fields","slug","relationshipOptions","collections","relation","relationTo","minOptions","minRows","allowed","toStrictEqual","maxOptions","maxRows","selectOptions","optionsRequired","label","value","optionsWithEmptyString","numberOptions","min","max"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { TFunction } from '@payloadcms/translations';
|
|
|
2
2
|
import type { LivePreviewConfig, SanitizedConfig, ServerOnlyLivePreviewProperties } from '../../config/types.js';
|
|
3
3
|
import type { ClientFieldConfig } from '../../fields/config/client.js';
|
|
4
4
|
import type { SanitizedGlobalConfig } from './types.js';
|
|
5
|
-
export type ServerOnlyGlobalProperties = keyof Pick<SanitizedGlobalConfig, 'access' | 'admin' | 'endpoints' | 'fields' | 'hooks'>;
|
|
5
|
+
export type ServerOnlyGlobalProperties = keyof Pick<SanitizedGlobalConfig, 'access' | 'admin' | 'custom' | 'endpoints' | 'fields' | 'hooks'>;
|
|
6
6
|
export type ServerOnlyGlobalAdminProperties = keyof Pick<SanitizedGlobalConfig['admin'], 'components' | 'hidden' | 'preview'>;
|
|
7
7
|
export type ClientGlobalConfig = Omit<SanitizedGlobalConfig, 'admin' | 'fields' | ServerOnlyGlobalProperties> & {
|
|
8
8
|
admin: Omit<SanitizedGlobalConfig['admin'], ServerOnlyGlobalAdminProperties & 'fields' & 'livePreview'> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/globals/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,+BAA+B,EAChC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAIvD,MAAM,MAAM,0BAA0B,GAAG,MAAM,IAAI,CACjD,qBAAqB,EACrB,QAAQ,GAAG,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/globals/config/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,+BAA+B,EAChC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAIvD,MAAM,MAAM,0BAA0B,GAAG,MAAM,IAAI,CACjD,qBAAqB,EACrB,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CACjE,CAAA;AACD,MAAM,MAAM,+BAA+B,GAAG,MAAM,IAAI,CACtD,qBAAqB,CAAC,OAAO,CAAC,EAC9B,YAAY,GAAG,QAAQ,GAAG,SAAS,CACpC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,qBAAqB,EACrB,OAAO,GAAG,QAAQ,GAAG,0BAA0B,CAChD,GAAG;IACF,KAAK,EAAE,IAAI,CACT,qBAAqB,CAAC,OAAO,CAAC,EAC9B,+BAA+B,GAAG,QAAQ,GAAG,aAAa,CAC3D,GAAG;QACF,WAAW,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,+BAA+B,CAAC,CAAA;KACvE,CAAA;IACD,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,wBAAwB,mBAGlC;IACD,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC,EAAE,SAAS,CAAA;CACb,KAAG,kBAwCH,CAAA;AAED,eAAO,MAAM,yBAAyB,oBAGnC;IACD,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACnC,CAAC,EAAE,SAAS,CAAA;CACb,KAAG,kBAAkB,EAAsE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/config/client.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport type {\n LivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from '../../config/types.js'\nimport type { ClientFieldConfig } from '../../fields/config/client.js'\nimport type { SanitizedGlobalConfig } from './types.js'\n\nimport { createClientFieldConfigs } from '../../fields/config/client.js'\n\nexport type ServerOnlyGlobalProperties = keyof Pick<\n SanitizedGlobalConfig,\n 'access' | 'admin' | 'endpoints' | 'fields' | 'hooks'\n>\nexport type ServerOnlyGlobalAdminProperties = keyof Pick<\n SanitizedGlobalConfig['admin'],\n 'components' | 'hidden' | 'preview'\n>\n\nexport type ClientGlobalConfig = Omit<\n SanitizedGlobalConfig,\n 'admin' | 'fields' | ServerOnlyGlobalProperties\n> & {\n admin: Omit<\n SanitizedGlobalConfig['admin'],\n ServerOnlyGlobalAdminProperties & 'fields' & 'livePreview'\n > & {\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n }\n fields: ClientFieldConfig[]\n}\n\nexport const createClientGlobalConfig = ({\n global,\n t,\n}: {\n global: SanitizedConfig['globals'][0]\n t: TFunction\n}): ClientGlobalConfig => {\n const sanitized = { ...global }\n sanitized.fields = createClientFieldConfigs({ fields: sanitized.fields, t })\n\n const serverOnlyProperties: Partial<ServerOnlyGlobalProperties>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n // `admin` is handled separately\n ]\n\n serverOnlyProperties.forEach((key) => {\n if (key in sanitized) {\n delete sanitized[key]\n }\n })\n\n if ('admin' in sanitized) {\n sanitized.admin = { ...sanitized.admin }\n\n const serverOnlyGlobalAdminProperties: Partial<ServerOnlyGlobalAdminProperties>[] = [\n 'components',\n 'hidden',\n 'preview',\n ]\n\n serverOnlyGlobalAdminProperties.forEach((key) => {\n if (key in sanitized.admin) {\n delete sanitized.admin[key]\n }\n })\n\n if ('livePreview' in sanitized.admin) {\n sanitized.admin.livePreview = { ...sanitized.admin.livePreview }\n delete sanitized.admin.livePreview.url\n }\n }\n\n return sanitized\n}\n\nexport const createClientGlobalConfigs = ({\n globals,\n t,\n}: {\n globals: SanitizedConfig['globals']\n t: TFunction\n}): ClientGlobalConfig[] => globals.map((global) => createClientGlobalConfig({ global, t }))\n"],"names":["createClientFieldConfigs","createClientGlobalConfig","global","t","sanitized","fields","serverOnlyProperties","forEach","key","admin","serverOnlyGlobalAdminProperties","livePreview","url","createClientGlobalConfigs","globals","map"],"rangeMappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/config/client.ts"],"sourcesContent":["import type { TFunction } from '@payloadcms/translations'\n\nimport type {\n LivePreviewConfig,\n SanitizedConfig,\n ServerOnlyLivePreviewProperties,\n} from '../../config/types.js'\nimport type { ClientFieldConfig } from '../../fields/config/client.js'\nimport type { SanitizedGlobalConfig } from './types.js'\n\nimport { createClientFieldConfigs } from '../../fields/config/client.js'\n\nexport type ServerOnlyGlobalProperties = keyof Pick<\n SanitizedGlobalConfig,\n 'access' | 'admin' | 'custom' | 'endpoints' | 'fields' | 'hooks'\n>\nexport type ServerOnlyGlobalAdminProperties = keyof Pick<\n SanitizedGlobalConfig['admin'],\n 'components' | 'hidden' | 'preview'\n>\n\nexport type ClientGlobalConfig = Omit<\n SanitizedGlobalConfig,\n 'admin' | 'fields' | ServerOnlyGlobalProperties\n> & {\n admin: Omit<\n SanitizedGlobalConfig['admin'],\n ServerOnlyGlobalAdminProperties & 'fields' & 'livePreview'\n > & {\n livePreview?: Omit<LivePreviewConfig, ServerOnlyLivePreviewProperties>\n }\n fields: ClientFieldConfig[]\n}\n\nexport const createClientGlobalConfig = ({\n global,\n t,\n}: {\n global: SanitizedConfig['globals'][0]\n t: TFunction\n}): ClientGlobalConfig => {\n const sanitized = { ...global }\n sanitized.fields = createClientFieldConfigs({ fields: sanitized.fields, t })\n\n const serverOnlyProperties: Partial<ServerOnlyGlobalProperties>[] = [\n 'hooks',\n 'access',\n 'endpoints',\n 'custom',\n // `admin` is handled separately\n ]\n\n serverOnlyProperties.forEach((key) => {\n if (key in sanitized) {\n delete sanitized[key]\n }\n })\n\n if ('admin' in sanitized) {\n sanitized.admin = { ...sanitized.admin }\n\n const serverOnlyGlobalAdminProperties: Partial<ServerOnlyGlobalAdminProperties>[] = [\n 'components',\n 'hidden',\n 'preview',\n ]\n\n serverOnlyGlobalAdminProperties.forEach((key) => {\n if (key in sanitized.admin) {\n delete sanitized.admin[key]\n }\n })\n\n if ('livePreview' in sanitized.admin) {\n sanitized.admin.livePreview = { ...sanitized.admin.livePreview }\n delete sanitized.admin.livePreview.url\n }\n }\n\n return sanitized\n}\n\nexport const createClientGlobalConfigs = ({\n globals,\n t,\n}: {\n globals: SanitizedConfig['globals']\n t: TFunction\n}): ClientGlobalConfig[] => globals.map((global) => createClientGlobalConfig({ global, t }))\n"],"names":["createClientFieldConfigs","createClientGlobalConfig","global","t","sanitized","fields","serverOnlyProperties","forEach","key","admin","serverOnlyGlobalAdminProperties","livePreview","url","createClientGlobalConfigs","globals","map"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAUA,SAASA,wBAAwB,QAAQ,gCAA+B;AAwBxE,OAAO,MAAMC,2BAA2B,CAAC,EACvCC,MAAM,EACNC,CAAC,EAIF;IACC,MAAMC,YAAY;QAAE,GAAGF,MAAM;IAAC;IAC9BE,UAAUC,MAAM,GAAGL,yBAAyB;QAAEK,QAAQD,UAAUC,MAAM;QAAEF;IAAE;IAE1E,MAAMG,uBAA8D;QAClE;QACA;QACA;QACA;KAED;IAEDA,qBAAqBC,OAAO,CAAC,CAACC;QAC5B,IAAIA,OAAOJ,WAAW;YACpB,OAAOA,SAAS,CAACI,IAAI;QACvB;IACF;IAEA,IAAI,WAAWJ,WAAW;QACxBA,UAAUK,KAAK,GAAG;YAAE,GAAGL,UAAUK,KAAK;QAAC;QAEvC,MAAMC,kCAA8E;YAClF;YACA;YACA;SACD;QAEDA,gCAAgCH,OAAO,CAAC,CAACC;YACvC,IAAIA,OAAOJ,UAAUK,KAAK,EAAE;gBAC1B,OAAOL,UAAUK,KAAK,CAACD,IAAI;YAC7B;QACF;QAEA,IAAI,iBAAiBJ,UAAUK,KAAK,EAAE;YACpCL,UAAUK,KAAK,CAACE,WAAW,GAAG;gBAAE,GAAGP,UAAUK,KAAK,CAACE,WAAW;YAAC;YAC/D,OAAOP,UAAUK,KAAK,CAACE,WAAW,CAACC,GAAG;QACxC;IACF;IAEA,OAAOR;AACT,EAAC;AAED,OAAO,MAAMS,4BAA4B,CAAC,EACxCC,OAAO,EACPX,CAAC,EAIF,GAA2BW,QAAQC,GAAG,CAAC,CAACb,SAAWD,yBAAyB;YAAEC;YAAQC;QAAE,IAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/globals/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,QAAA,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/globals/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,QAAA,MAAM,YAAY,uBAmFN,CAAA;AAEZ,eAAe,YAAY,CAAA"}
|
|
@@ -26,6 +26,7 @@ const globalSchema = joi.object().keys({
|
|
|
26
26
|
}))
|
|
27
27
|
})
|
|
28
28
|
}),
|
|
29
|
+
custom: joi.object().pattern(joi.string(), joi.any()),
|
|
29
30
|
description: joi.alternatives().try(joi.string(), componentSchema),
|
|
30
31
|
group: joi.alternatives().try(joi.string(), joi.object().pattern(joi.string(), [
|
|
31
32
|
joi.string()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { endpointsSchema } from '../../config/schema.js'\nimport {\n componentSchema,\n customViewSchema,\n livePreviewSchema,\n} from '../../config/shared/componentSchema.js'\n\nconst globalSchema = joi\n .object()\n .keys({\n slug: joi.string().required(),\n access: joi.object({\n read: joi.func(),\n readVersions: joi.func(),\n update: joi.func(),\n }),\n admin: joi.object({\n components: joi.object({\n elements: joi.object({\n PreviewButton: componentSchema,\n PublishButton: componentSchema,\n SaveButton: componentSchema,\n SaveDraftButton: componentSchema,\n }),\n views: joi.object({\n Edit: joi.alternatives().try(\n componentSchema,\n joi.object({\n API: joi.alternatives().try(componentSchema, customViewSchema),\n Default: joi.alternatives().try(componentSchema, customViewSchema),\n Preview: joi.alternatives().try(componentSchema, customViewSchema),\n Version: joi.alternatives().try(componentSchema, customViewSchema),\n Versions: joi.alternatives().try(componentSchema, customViewSchema),\n // Relationships\n // References\n }),\n ),\n }),\n }),\n description: joi.alternatives().try(joi.string(), componentSchema),\n group: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n hidden: joi.alternatives().try(joi.boolean(), joi.func()),\n hideAPIURL: joi.boolean(),\n livePreview: joi.object(livePreviewSchema),\n preview: joi.func(),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n endpoints: endpointsSchema,\n fields: joi.array(),\n graphQL: joi.alternatives().try(\n joi.object().keys({\n name: joi.string(),\n }),\n joi.boolean(),\n ),\n hooks: joi.object({\n afterChange: joi.array().items(joi.func()),\n afterRead: joi.array().items(joi.func()),\n beforeChange: joi.array().items(joi.func()),\n beforeRead: joi.array().items(joi.func()),\n beforeValidate: joi.array().items(joi.func()),\n }),\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n typescript: joi.object().keys({\n interface: joi.string(),\n }),\n versions: joi.alternatives().try(\n joi.object({\n drafts: joi.alternatives().try(\n joi.object({\n autosave: joi.alternatives().try(\n joi.boolean(),\n joi.object({\n interval: joi.number(),\n }),\n ),\n }),\n joi.boolean(),\n ),\n max: joi.number(),\n }),\n joi.boolean(),\n ),\n })\n .unknown()\n\nexport default globalSchema\n"],"names":["joi","endpointsSchema","componentSchema","customViewSchema","livePreviewSchema","globalSchema","object","keys","slug","string","required","access","read","func","readVersions","update","admin","components","elements","PreviewButton","PublishButton","SaveButton","SaveDraftButton","views","Edit","alternatives","try","API","Default","Preview","Version","Versions","
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { endpointsSchema } from '../../config/schema.js'\nimport {\n componentSchema,\n customViewSchema,\n livePreviewSchema,\n} from '../../config/shared/componentSchema.js'\n\nconst globalSchema = joi\n .object()\n .keys({\n slug: joi.string().required(),\n access: joi.object({\n read: joi.func(),\n readVersions: joi.func(),\n update: joi.func(),\n }),\n admin: joi.object({\n components: joi.object({\n elements: joi.object({\n PreviewButton: componentSchema,\n PublishButton: componentSchema,\n SaveButton: componentSchema,\n SaveDraftButton: componentSchema,\n }),\n views: joi.object({\n Edit: joi.alternatives().try(\n componentSchema,\n joi.object({\n API: joi.alternatives().try(componentSchema, customViewSchema),\n Default: joi.alternatives().try(componentSchema, customViewSchema),\n Preview: joi.alternatives().try(componentSchema, customViewSchema),\n Version: joi.alternatives().try(componentSchema, customViewSchema),\n Versions: joi.alternatives().try(componentSchema, customViewSchema),\n // Relationships\n // References\n }),\n ),\n }),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n description: joi.alternatives().try(joi.string(), componentSchema),\n group: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n hidden: joi.alternatives().try(joi.boolean(), joi.func()),\n hideAPIURL: joi.boolean(),\n livePreview: joi.object(livePreviewSchema),\n preview: joi.func(),\n }),\n custom: joi.object().pattern(joi.string(), joi.any()),\n dbName: joi.alternatives().try(joi.string(), joi.func()),\n endpoints: endpointsSchema,\n fields: joi.array(),\n graphQL: joi.alternatives().try(\n joi.object().keys({\n name: joi.string(),\n }),\n joi.boolean(),\n ),\n hooks: joi.object({\n afterChange: joi.array().items(joi.func()),\n afterRead: joi.array().items(joi.func()),\n beforeChange: joi.array().items(joi.func()),\n beforeRead: joi.array().items(joi.func()),\n beforeValidate: joi.array().items(joi.func()),\n }),\n label: joi\n .alternatives()\n .try(joi.func(), joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n typescript: joi.object().keys({\n interface: joi.string(),\n }),\n versions: joi.alternatives().try(\n joi.object({\n drafts: joi.alternatives().try(\n joi.object({\n autosave: joi.alternatives().try(\n joi.boolean(),\n joi.object({\n interval: joi.number(),\n }),\n ),\n }),\n joi.boolean(),\n ),\n max: joi.number(),\n }),\n joi.boolean(),\n ),\n })\n .unknown()\n\nexport default globalSchema\n"],"names":["joi","endpointsSchema","componentSchema","customViewSchema","livePreviewSchema","globalSchema","object","keys","slug","string","required","access","read","func","readVersions","update","admin","components","elements","PreviewButton","PublishButton","SaveButton","SaveDraftButton","views","Edit","alternatives","try","API","Default","Preview","Version","Versions","custom","pattern","any","description","group","hidden","boolean","hideAPIURL","livePreview","preview","dbName","endpoints","fields","array","graphQL","name","hooks","afterChange","items","afterRead","beforeChange","beforeRead","beforeValidate","label","typescript","interface","versions","drafts","autosave","interval","number","max","unknown"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import type { GraphQLNonNull, GraphQLObjectType } from 'graphql';
|
|
2
2
|
import type { DeepRequired } from 'ts-essentials';
|
|
3
3
|
import type { CustomPreviewButton, CustomPublishButton, CustomSaveButton, CustomSaveDraftButton } from '../../admin/types.js';
|
|
4
|
-
import type { User } from '../../auth/types.js';
|
|
5
4
|
import type { Access, EditConfig, Endpoint, EntityDescription, GeneratePreviewURL, LivePreviewConfig } from '../../config/types.js';
|
|
6
5
|
import type { DBIdentifierName } from '../../database/types.js';
|
|
7
6
|
import type { Field } from '../../fields/config/types.js';
|
|
8
|
-
import type {
|
|
7
|
+
import type { PayloadRequestWithData, RequestContext } from '../../types/index.js';
|
|
9
8
|
import type { Where } from '../../types/index.js';
|
|
10
9
|
import type { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types.js';
|
|
11
10
|
export type TypeWithID = {
|
|
@@ -17,7 +16,7 @@ export type BeforeValidateHook = (args: {
|
|
|
17
16
|
/** The global which this hook is being run on */
|
|
18
17
|
global: SanitizedGlobalConfig;
|
|
19
18
|
originalDoc?: any;
|
|
20
|
-
req:
|
|
19
|
+
req: PayloadRequestWithData;
|
|
21
20
|
}) => any;
|
|
22
21
|
export type BeforeChangeHook = (args: {
|
|
23
22
|
context: RequestContext;
|
|
@@ -25,7 +24,7 @@ export type BeforeChangeHook = (args: {
|
|
|
25
24
|
/** The global which this hook is being run on */
|
|
26
25
|
global: SanitizedGlobalConfig;
|
|
27
26
|
originalDoc?: any;
|
|
28
|
-
req:
|
|
27
|
+
req: PayloadRequestWithData;
|
|
29
28
|
}) => any;
|
|
30
29
|
export type AfterChangeHook = (args: {
|
|
31
30
|
context: RequestContext;
|
|
@@ -33,14 +32,14 @@ export type AfterChangeHook = (args: {
|
|
|
33
32
|
/** The global which this hook is being run on */
|
|
34
33
|
global: SanitizedGlobalConfig;
|
|
35
34
|
previousDoc: any;
|
|
36
|
-
req:
|
|
35
|
+
req: PayloadRequestWithData;
|
|
37
36
|
}) => any;
|
|
38
37
|
export type BeforeReadHook = (args: {
|
|
39
38
|
context: RequestContext;
|
|
40
39
|
doc: any;
|
|
41
40
|
/** The global which this hook is being run on */
|
|
42
41
|
global: SanitizedGlobalConfig;
|
|
43
|
-
req:
|
|
42
|
+
req: PayloadRequestWithData;
|
|
44
43
|
}) => any;
|
|
45
44
|
export type AfterReadHook = (args: {
|
|
46
45
|
context: RequestContext;
|
|
@@ -49,7 +48,7 @@ export type AfterReadHook = (args: {
|
|
|
49
48
|
/** The global which this hook is being run on */
|
|
50
49
|
global: SanitizedGlobalConfig;
|
|
51
50
|
query?: Where;
|
|
52
|
-
req:
|
|
51
|
+
req: PayloadRequestWithData;
|
|
53
52
|
}) => any;
|
|
54
53
|
export type GlobalAdminOptions = {
|
|
55
54
|
/**
|
|
@@ -86,6 +85,8 @@ export type GlobalAdminOptions = {
|
|
|
86
85
|
Edit?: EditConfig;
|
|
87
86
|
};
|
|
88
87
|
};
|
|
88
|
+
/** Extension point to add your custom data. Available in server and client. */
|
|
89
|
+
custom?: Record<string, any>;
|
|
89
90
|
/**
|
|
90
91
|
* Custom description for collection
|
|
91
92
|
*/
|
|
@@ -98,7 +99,7 @@ export type GlobalAdminOptions = {
|
|
|
98
99
|
* Exclude the global from the admin nav and routes
|
|
99
100
|
*/
|
|
100
101
|
hidden?: ((args: {
|
|
101
|
-
user:
|
|
102
|
+
user: PayloadRequestWithData['user'];
|
|
102
103
|
}) => boolean) | boolean;
|
|
103
104
|
/**
|
|
104
105
|
* Hide the API URL within the Edit view
|
|
@@ -121,7 +122,7 @@ export type GlobalConfig = {
|
|
|
121
122
|
update?: Access;
|
|
122
123
|
};
|
|
123
124
|
admin?: GlobalAdminOptions;
|
|
124
|
-
/** Extension point to add your custom data. */
|
|
125
|
+
/** Extension point to add your custom data. Server only. */
|
|
125
126
|
custom?: Record<string, any>;
|
|
126
127
|
/**
|
|
127
128
|
* Customize the SQL table name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/config/types.ts"],"sourcesContent":["import type { GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport type { DeepRequired } from 'ts-essentials'\n\nimport type {\n CustomPreviewButton,\n CustomPublishButton,\n CustomSaveButton,\n CustomSaveDraftButton,\n} from '../../admin/types.js'\nimport type { User } from '../../auth/types.js'\nimport type {\n Access,\n EditConfig,\n Endpoint,\n EntityDescription,\n GeneratePreviewURL,\n LivePreviewConfig,\n} from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { Field } from '../../fields/config/types.js'\nimport type {
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/config/types.ts"],"sourcesContent":["import type { GraphQLNonNull, GraphQLObjectType } from 'graphql'\nimport type { DeepRequired } from 'ts-essentials'\n\nimport type {\n CustomPreviewButton,\n CustomPublishButton,\n CustomSaveButton,\n CustomSaveDraftButton,\n} from '../../admin/types.js'\nimport type { User } from '../../auth/types.js'\nimport type {\n Access,\n EditConfig,\n Endpoint,\n EntityDescription,\n GeneratePreviewURL,\n LivePreviewConfig,\n} from '../../config/types.js'\nimport type { DBIdentifierName } from '../../database/types.js'\nimport type { Field } from '../../fields/config/types.js'\nimport type { PayloadRequestWithData, RequestContext } from '../../types/index.js'\nimport type { Where } from '../../types/index.js'\nimport type { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types.js'\n\nexport type TypeWithID = {\n id: number | string\n}\n\nexport type BeforeValidateHook = (args: {\n context: RequestContext\n data?: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n req: PayloadRequestWithData\n}) => any\n\nexport type BeforeChangeHook = (args: {\n context: RequestContext\n data: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n originalDoc?: any\n req: PayloadRequestWithData\n}) => any\n\nexport type AfterChangeHook = (args: {\n context: RequestContext\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n previousDoc: any\n req: PayloadRequestWithData\n}) => any\n\nexport type BeforeReadHook = (args: {\n context: RequestContext\n doc: any\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n req: PayloadRequestWithData\n}) => any\n\nexport type AfterReadHook = (args: {\n context: RequestContext\n doc: any\n findMany?: boolean\n /** The global which this hook is being run on */\n global: SanitizedGlobalConfig\n query?: Where\n req: PayloadRequestWithData\n}) => any\n\nexport type GlobalAdminOptions = {\n /**\n * Custom admin components\n */\n components?: {\n elements?: {\n /**\n * Replaces the \"Preview\" button\n */\n PreviewButton?: CustomPreviewButton\n /**\n * Replaces the \"Publish\" button\n * + drafts must be enabled\n */\n PublishButton?: CustomPublishButton\n /**\n * Replaces the \"Save\" button\n * + drafts must be disabled\n */\n SaveButton?: CustomSaveButton\n /**\n * Replaces the \"Save Draft\" button\n * + drafts must be enabled\n * + autosave must be disabled\n */\n SaveDraftButton?: CustomSaveDraftButton\n }\n views?: {\n /**\n * Set to a React component to replace the entire \"Edit\" view, including all nested routes.\n * Set to an object to replace or modify individual nested routes, or to add new ones.\n */\n Edit?: EditConfig\n }\n }\n /** Extension point to add your custom data. Available in server and client. */\n custom?: Record<string, any>\n /**\n * Custom description for collection\n */\n description?: EntityDescription\n /**\n * Place globals into a navigational group\n * */\n group?: Record<string, string> | string\n /**\n * Exclude the global from the admin nav and routes\n */\n hidden?: ((args: { user: PayloadRequestWithData['user'] }) => boolean) | boolean\n /**\n * Hide the API URL within the Edit view\n */\n hideAPIURL?: boolean\n /**\n * Live preview options\n */\n livePreview?: LivePreviewConfig\n /**\n * Function to generate custom preview URL\n */\n preview?: GeneratePreviewURL\n}\n\nexport type GlobalConfig = {\n access?: {\n read?: Access\n readDrafts?: Access\n readVersions?: Access\n update?: Access\n }\n admin?: GlobalAdminOptions\n /** Extension point to add your custom data. Server only. */\n custom?: Record<string, any>\n /**\n * Customize the SQL table name\n */\n dbName?: DBIdentifierName\n endpoints?: Omit<Endpoint, 'root'>[] | false\n fields: Field[]\n graphQL?:\n | {\n name?: string\n }\n | false\n hooks?: {\n afterChange?: AfterChangeHook[]\n afterRead?: AfterReadHook[]\n beforeChange?: BeforeChangeHook[]\n beforeRead?: BeforeReadHook[]\n beforeValidate?: BeforeValidateHook[]\n }\n label?: Record<string, string> | string\n slug: string\n /**\n * Options used in typescript generation\n */\n typescript?: {\n /**\n * Typescript generation name given to the interface type\n */\n interface?: string\n }\n versions?: IncomingGlobalVersions | boolean\n}\n\nexport interface SanitizedGlobalConfig\n extends Omit<DeepRequired<GlobalConfig>, 'endpoints' | 'fields' | 'versions'> {\n endpoints: Endpoint[] | false\n fields: Field[]\n versions: SanitizedGlobalVersions\n}\n\nexport type Globals = {\n config: SanitizedGlobalConfig[]\n graphQL?:\n | {\n [slug: string]: {\n mutationInputType: GraphQLNonNull<any>\n type: GraphQLObjectType\n versionType?: GraphQLObjectType\n }\n }\n | false\n}\n"],"names":[],"rangeMappings":"","mappings":"AAyLA,WAWC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { GlobalPermission } from '../../auth/index.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { PayloadRequestWithData } from '../../types/index.js';
|
|
3
3
|
import type { SanitizedGlobalConfig } from '../config/types.js';
|
|
4
4
|
type Arguments = {
|
|
5
5
|
globalConfig: SanitizedGlobalConfig;
|
|
6
|
-
req:
|
|
6
|
+
req: PayloadRequestWithData;
|
|
7
7
|
};
|
|
8
8
|
export declare const docAccessOperation: (args: Arguments) => Promise<GlobalPermission>;
|
|
9
9
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docAccess.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/docAccess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,KAAK,EAAiB,
|
|
1
|
+
{"version":3,"file":"docAccess.d.ts","sourceRoot":"","sources":["../../../src/globals/operations/docAccess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,KAAK,EAAiB,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AACjF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAO/D,KAAK,SAAS,GAAG;IACf,YAAY,EAAE,qBAAqB,CAAA;IACnC,GAAG,EAAE,sBAAsB,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAgB,SAAS,KAAG,QAAQ,gBAAgB,CAuBlF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/globals/operations/docAccess.ts"],"sourcesContent":["import type { GlobalPermission } from '../../auth/index.js'\nimport type { AllOperations,
|
|
1
|
+
{"version":3,"sources":["../../../src/globals/operations/docAccess.ts"],"sourcesContent":["import type { GlobalPermission } from '../../auth/index.js'\nimport type { AllOperations, PayloadRequestWithData } from '../../types/index.js'\nimport type { SanitizedGlobalConfig } from '../config/types.js'\n\nimport { commitTransaction } from '../../utilities/commitTransaction.js'\nimport { getEntityPolicies } from '../../utilities/getEntityPolicies.js'\nimport { initTransaction } from '../../utilities/initTransaction.js'\nimport { killTransaction } from '../../utilities/killTransaction.js'\n\ntype Arguments = {\n globalConfig: SanitizedGlobalConfig\n req: PayloadRequestWithData\n}\n\nexport const docAccessOperation = async (args: Arguments): Promise<GlobalPermission> => {\n const { globalConfig, req } = args\n\n const globalOperations: AllOperations[] = ['read', 'update']\n\n if (globalConfig.versions) {\n globalOperations.push('readVersions')\n }\n\n try {\n const shouldCommit = await initTransaction(req)\n const result = await getEntityPolicies({\n type: 'global',\n entity: globalConfig,\n operations: globalOperations,\n req,\n })\n if (shouldCommit) await commitTransaction(req)\n return result\n } catch (e: unknown) {\n await killTransaction(req)\n throw e\n }\n}\n"],"names":["commitTransaction","getEntityPolicies","initTransaction","killTransaction","docAccessOperation","args","globalConfig","req","globalOperations","versions","push","shouldCommit","result","type","entity","operations","e"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAIA,SAASA,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,iBAAiB,QAAQ,uCAAsC;AACxE,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,qCAAoC;AAOpE,OAAO,MAAMC,qBAAqB,OAAOC;IACvC,MAAM,EAAEC,YAAY,EAAEC,GAAG,EAAE,GAAGF;IAE9B,MAAMG,mBAAoC;QAAC;QAAQ;KAAS;IAE5D,IAAIF,aAAaG,QAAQ,EAAE;QACzBD,iBAAiBE,IAAI,CAAC;IACxB;IAEA,IAAI;QACF,MAAMC,eAAe,MAAMT,gBAAgBK;QAC3C,MAAMK,SAAS,MAAMX,kBAAkB;YACrCY,MAAM;YACNC,QAAQR;YACRS,YAAYP;YACZD;QACF;QACA,IAAII,cAAc,MAAMX,kBAAkBO;QAC1C,OAAOK;IACT,EAAE,OAAOI,GAAY;QACnB,MAAMb,gBAAgBI;QACtB,MAAMS;IACR;AACF,EAAC"}
|