payload 3.0.0-alpha.40 → 3.0.0-alpha.42
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/auth.js +1 -1
- package/config.js +1 -1
- package/database.js +1 -1
- package/dist/admin/RichText.js +1 -1
- package/dist/admin/RichText.js.map +1 -0
- package/dist/admin/elements/Cell.js +1 -1
- package/dist/admin/elements/Cell.js.map +1 -0
- package/dist/admin/elements/DatePicker.js +1 -1
- package/dist/admin/elements/DatePicker.js.map +1 -0
- package/dist/admin/elements/PreviewButton.js +1 -1
- package/dist/admin/elements/PreviewButton.js.map +1 -0
- package/dist/admin/elements/PublishButton.js +1 -1
- package/dist/admin/elements/PublishButton.js.map +1 -0
- package/dist/admin/elements/SaveButton.js +1 -1
- package/dist/admin/elements/SaveButton.js.map +1 -0
- package/dist/admin/elements/SaveDraftButton.js +1 -1
- package/dist/admin/elements/SaveDraftButton.js.map +1 -0
- package/dist/admin/elements/Tab.js +1 -1
- package/dist/admin/elements/Tab.js.map +1 -0
- package/dist/admin/forms/Error.js +1 -1
- package/dist/admin/forms/Error.js.map +1 -0
- package/dist/admin/forms/FieldDescription.js +1 -1
- package/dist/admin/forms/FieldDescription.js.map +1 -0
- package/dist/admin/forms/FieldTypes.js +1 -1
- package/dist/admin/forms/FieldTypes.js.map +1 -0
- package/dist/admin/forms/Form.js +1 -1
- package/dist/admin/forms/Form.js.map +1 -0
- package/dist/admin/forms/Label.js +1 -1
- package/dist/admin/forms/Label.js.map +1 -0
- package/dist/admin/forms/RowLabel.js +1 -1
- package/dist/admin/forms/RowLabel.js.map +1 -0
- package/dist/admin/types.js +1 -1
- package/dist/admin/types.js.map +1 -0
- package/dist/admin/views/types.js +1 -1
- package/dist/admin/views/types.js.map +1 -0
- package/dist/assets/assets.d.js +1 -1
- package/dist/assets/assets.d.js.map +1 -0
- package/dist/auth/baseFields/accountLock.js +1 -1
- package/dist/auth/baseFields/accountLock.js.map +1 -0
- package/dist/auth/baseFields/apiKey.js +1 -1
- package/dist/auth/baseFields/apiKey.js.map +1 -0
- package/dist/auth/baseFields/auth.js +1 -1
- package/dist/auth/baseFields/auth.js.map +1 -0
- package/dist/auth/baseFields/verification.js +1 -1
- package/dist/auth/baseFields/verification.js.map +1 -0
- package/dist/auth/cookies.js +1 -1
- package/dist/auth/cookies.js.map +1 -0
- package/dist/auth/crypto.js +1 -1
- package/dist/auth/crypto.js.map +1 -0
- package/dist/auth/defaultAccess.js +1 -1
- package/dist/auth/defaultAccess.js.map +1 -0
- package/dist/auth/defaultUser.js +1 -1
- package/dist/auth/defaultUser.js.map +1 -0
- package/dist/auth/executeAccess.js +1 -1
- package/dist/auth/executeAccess.js.map +1 -0
- package/dist/auth/extractJWT.js +1 -1
- package/dist/auth/extractJWT.js.map +1 -0
- package/dist/auth/getAccessResults.js +1 -1
- package/dist/auth/getAccessResults.js.map +1 -0
- package/dist/auth/getAuthenticatedUser.js +1 -1
- package/dist/auth/getAuthenticatedUser.js.map +1 -0
- package/dist/auth/getFieldsToSign.js +1 -1
- package/dist/auth/getFieldsToSign.js.map +1 -0
- package/dist/auth/index.js +1 -1
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/isLocked.js +1 -1
- package/dist/auth/isLocked.js.map +1 -0
- package/dist/auth/operations/access.js +1 -1
- package/dist/auth/operations/access.js.map +1 -0
- package/dist/auth/operations/forgotPassword.js +1 -1
- package/dist/auth/operations/forgotPassword.js.map +1 -0
- package/dist/auth/operations/init.js +1 -1
- package/dist/auth/operations/init.js.map +1 -0
- package/dist/auth/operations/local/forgotPassword.js +1 -1
- package/dist/auth/operations/local/forgotPassword.js.map +1 -0
- package/dist/auth/operations/local/index.js +1 -1
- package/dist/auth/operations/local/index.js.map +1 -0
- package/dist/auth/operations/local/login.js +1 -1
- package/dist/auth/operations/local/login.js.map +1 -0
- package/dist/auth/operations/local/resetPassword.js +1 -1
- package/dist/auth/operations/local/resetPassword.js.map +1 -0
- package/dist/auth/operations/local/unlock.js +1 -1
- package/dist/auth/operations/local/unlock.js.map +1 -0
- package/dist/auth/operations/local/verifyEmail.js +1 -1
- package/dist/auth/operations/local/verifyEmail.js.map +1 -0
- package/dist/auth/operations/login.js +1 -1
- package/dist/auth/operations/login.js.map +1 -0
- package/dist/auth/operations/logout.js +1 -1
- package/dist/auth/operations/logout.js.map +1 -0
- package/dist/auth/operations/me.js +1 -1
- package/dist/auth/operations/me.js.map +1 -0
- package/dist/auth/operations/refresh.js +1 -1
- package/dist/auth/operations/refresh.js.map +1 -0
- package/dist/auth/operations/registerFirstUser.js +1 -1
- package/dist/auth/operations/registerFirstUser.js.map +1 -0
- package/dist/auth/operations/resetPassword.js +1 -1
- package/dist/auth/operations/resetPassword.js.map +1 -0
- package/dist/auth/operations/unlock.js +1 -1
- package/dist/auth/operations/unlock.js.map +1 -0
- package/dist/auth/operations/verifyEmail.js +1 -1
- package/dist/auth/operations/verifyEmail.js.map +1 -0
- package/dist/auth/sendVerificationEmail.js +1 -1
- package/dist/auth/sendVerificationEmail.js.map +1 -0
- package/dist/auth/strategies/apiKey.js +1 -1
- package/dist/auth/strategies/apiKey.js.map +1 -0
- package/dist/auth/strategies/jwt.js +1 -1
- package/dist/auth/strategies/jwt.js.map +1 -0
- package/dist/auth/strategies/local/authenticate.js +1 -1
- package/dist/auth/strategies/local/authenticate.js.map +1 -0
- package/dist/auth/strategies/local/generatePasswordSaltHash.js +1 -1
- package/dist/auth/strategies/local/generatePasswordSaltHash.js.map +1 -0
- package/dist/auth/strategies/local/incrementLoginAttempts.js +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -0
- package/dist/auth/strategies/local/register.js +1 -1
- package/dist/auth/strategies/local/register.js.map +1 -0
- package/dist/auth/strategies/local/resetLoginAttempts.js +1 -1
- package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -0
- package/dist/auth/types.js +1 -1
- package/dist/auth/types.js.map +1 -0
- package/dist/bin/generateTypes.js +1 -1
- package/dist/bin/generateTypes.js.map +1 -0
- package/dist/bin/index.js +1 -1
- package/dist/bin/index.js.map +1 -0
- package/dist/bin/loadEnv.js +1 -1
- package/dist/bin/loadEnv.js.map +1 -0
- package/dist/bin/migrate.js +1 -1
- package/dist/bin/migrate.js.map +1 -0
- package/dist/bin/register/clientExtensions.js +1 -1
- package/dist/bin/register/clientExtensions.js.map +1 -0
- package/dist/bin/register/index.js +1 -1
- package/dist/bin/register/index.js.map +1 -0
- package/dist/bin/register/read-default-tsconfig.js +1 -1
- package/dist/bin/register/read-default-tsconfig.js.map +1 -0
- package/dist/bin/register/register.js +1 -1
- package/dist/bin/register/register.js.map +1 -0
- package/dist/collections/config/build.js +1 -1
- package/dist/collections/config/build.js.map +1 -0
- package/dist/collections/config/defaults.js +1 -1
- package/dist/collections/config/defaults.js.map +1 -0
- package/dist/collections/config/sanitize.js +1 -1
- package/dist/collections/config/sanitize.js.map +1 -0
- package/dist/collections/config/schema.js +1 -1
- package/dist/collections/config/schema.js.map +1 -0
- package/dist/collections/config/types.js +1 -1
- package/dist/collections/config/types.js.map +1 -0
- package/dist/collections/dataloader.js +1 -1
- package/dist/collections/dataloader.js.map +1 -0
- package/dist/collections/operations/create.js +1 -1
- package/dist/collections/operations/create.js.map +1 -0
- package/dist/collections/operations/delete.js +1 -1
- package/dist/collections/operations/delete.js.map +1 -0
- package/dist/collections/operations/deleteByID.js +1 -1
- package/dist/collections/operations/deleteByID.js.map +1 -0
- package/dist/collections/operations/docAccess.js +1 -1
- package/dist/collections/operations/docAccess.js.map +1 -0
- package/dist/collections/operations/find.js +1 -1
- package/dist/collections/operations/find.js.map +1 -0
- package/dist/collections/operations/findByID.js +1 -1
- package/dist/collections/operations/findByID.js.map +1 -0
- package/dist/collections/operations/findVersionByID.js +1 -1
- package/dist/collections/operations/findVersionByID.js.map +1 -0
- package/dist/collections/operations/findVersions.js +1 -1
- package/dist/collections/operations/findVersions.js.map +1 -0
- package/dist/collections/operations/local/create.js +1 -1
- package/dist/collections/operations/local/create.js.map +1 -0
- package/dist/collections/operations/local/delete.js +1 -1
- package/dist/collections/operations/local/delete.js.map +1 -0
- package/dist/collections/operations/local/find.js +1 -1
- package/dist/collections/operations/local/find.js.map +1 -0
- package/dist/collections/operations/local/findByID.js +1 -1
- package/dist/collections/operations/local/findByID.js.map +1 -0
- package/dist/collections/operations/local/findVersionByID.js +1 -1
- package/dist/collections/operations/local/findVersionByID.js.map +1 -0
- package/dist/collections/operations/local/findVersions.js +1 -1
- package/dist/collections/operations/local/findVersions.js.map +1 -0
- package/dist/collections/operations/local/index.js +1 -1
- package/dist/collections/operations/local/index.js.map +1 -0
- package/dist/collections/operations/local/restoreVersion.js +1 -1
- package/dist/collections/operations/local/restoreVersion.js.map +1 -0
- package/dist/collections/operations/local/update.js +1 -1
- package/dist/collections/operations/local/update.js.map +1 -0
- package/dist/collections/operations/restoreVersion.js +1 -1
- package/dist/collections/operations/restoreVersion.js.map +1 -0
- package/dist/collections/operations/update.js +1 -1
- package/dist/collections/operations/update.js.map +1 -0
- package/dist/collections/operations/updateByID.js +1 -1
- package/dist/collections/operations/updateByID.js.map +1 -0
- package/dist/collections/operations/utils.js +1 -1
- package/dist/collections/operations/utils.js.map +1 -0
- package/dist/config/build.js +1 -1
- package/dist/config/build.js.map +1 -0
- package/dist/config/createClientConfig.js +1 -1
- package/dist/config/createClientConfig.js.map +1 -0
- package/dist/config/defaults.js +1 -1
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/find.js +1 -1
- package/dist/config/find.js.map +1 -0
- package/dist/config/load.js +1 -1
- package/dist/config/load.js.map +1 -0
- package/dist/config/sanitize.js +1 -1
- package/dist/config/sanitize.js.map +1 -0
- package/dist/config/schema.js +1 -1
- package/dist/config/schema.js.map +1 -0
- package/dist/config/shared/adminViewSchema.js +1 -1
- package/dist/config/shared/adminViewSchema.js.map +1 -0
- package/dist/config/shared/componentSchema.js +1 -1
- package/dist/config/shared/componentSchema.js.map +1 -0
- package/dist/config/types.js +1 -1
- package/dist/config/types.js.map +1 -0
- package/dist/config/validate.js +1 -1
- package/dist/config/validate.js.map +1 -0
- package/dist/database/combineQueries.js +1 -1
- package/dist/database/combineQueries.js.map +1 -0
- package/dist/database/createDatabaseAdapter.js +1 -1
- package/dist/database/createDatabaseAdapter.js.map +1 -0
- package/dist/database/flattenWhereToOperators.js +1 -1
- package/dist/database/flattenWhereToOperators.js.map +1 -0
- package/dist/database/getLocalizedPaths.js +1 -1
- package/dist/database/getLocalizedPaths.js.map +1 -0
- package/dist/database/migrations/createMigration.js +1 -1
- package/dist/database/migrations/createMigration.js.map +1 -0
- package/dist/database/migrations/getMigrations.js +1 -1
- package/dist/database/migrations/getMigrations.js.map +1 -0
- package/dist/database/migrations/migrate.js +1 -1
- package/dist/database/migrations/migrate.js.map +1 -0
- package/dist/database/migrations/migrateDown.js +1 -1
- package/dist/database/migrations/migrateDown.js.map +1 -0
- package/dist/database/migrations/migrateRefresh.js +1 -1
- package/dist/database/migrations/migrateRefresh.js.map +1 -0
- package/dist/database/migrations/migrateReset.js +1 -1
- package/dist/database/migrations/migrateReset.js.map +1 -0
- package/dist/database/migrations/migrateStatus.js +1 -1
- package/dist/database/migrations/migrateStatus.js.map +1 -0
- package/dist/database/migrations/migrationTemplate.js +1 -1
- package/dist/database/migrations/migrationTemplate.js.map +1 -0
- package/dist/database/migrations/migrationsCollection.js +1 -1
- package/dist/database/migrations/migrationsCollection.js.map +1 -0
- package/dist/database/migrations/readMigrationFiles.js +1 -1
- package/dist/database/migrations/readMigrationFiles.js.map +1 -0
- package/dist/database/queryValidation/types.js +1 -1
- package/dist/database/queryValidation/types.js.map +1 -0
- package/dist/database/queryValidation/validateQueryPaths.js +1 -1
- package/dist/database/queryValidation/validateQueryPaths.js.map +1 -0
- package/dist/database/queryValidation/validateSearchParams.js +1 -1
- package/dist/database/queryValidation/validateSearchParams.js.map +1 -0
- package/dist/database/types.js +1 -1
- package/dist/database/types.js.map +1 -0
- package/dist/email/build.js +1 -1
- package/dist/email/build.js.map +1 -0
- package/dist/email/defaults.js +1 -1
- package/dist/email/defaults.js.map +1 -0
- package/dist/email/mockHandler.js +1 -1
- package/dist/email/mockHandler.js.map +1 -0
- package/dist/email/sendEmail.js +1 -1
- package/dist/email/sendEmail.js.map +1 -0
- package/dist/email/types.js +1 -1
- package/dist/email/types.js.map +1 -0
- package/dist/errors/APIError.js +1 -1
- package/dist/errors/APIError.js.map +1 -0
- package/dist/errors/AuthenticationError.js +1 -1
- package/dist/errors/AuthenticationError.js.map +1 -0
- package/dist/errors/DuplicateCollection.js +1 -1
- package/dist/errors/DuplicateCollection.js.map +1 -0
- package/dist/errors/DuplicateFieldName.js +1 -1
- package/dist/errors/DuplicateFieldName.js.map +1 -0
- package/dist/errors/DuplicateGlobal.js +1 -1
- package/dist/errors/DuplicateGlobal.js.map +1 -0
- package/dist/errors/ErrorDeletingFile.js +1 -1
- package/dist/errors/ErrorDeletingFile.js.map +1 -0
- package/dist/errors/FileUploadError.js +1 -1
- package/dist/errors/FileUploadError.js.map +1 -0
- package/dist/errors/Forbidden.js +1 -1
- package/dist/errors/Forbidden.js.map +1 -0
- package/dist/errors/InvalidConfiguration.js +1 -1
- package/dist/errors/InvalidConfiguration.js.map +1 -0
- package/dist/errors/InvalidFieldName.js +1 -1
- package/dist/errors/InvalidFieldName.js.map +1 -0
- package/dist/errors/InvalidFieldRelationship.js +1 -1
- package/dist/errors/InvalidFieldRelationship.js.map +1 -0
- package/dist/errors/InvalidSchema.js +1 -1
- package/dist/errors/InvalidSchema.js.map +1 -0
- package/dist/errors/LockedAuth.js +1 -1
- package/dist/errors/LockedAuth.js.map +1 -0
- package/dist/errors/MissingCollectionLabel.js +1 -1
- package/dist/errors/MissingCollectionLabel.js.map +1 -0
- package/dist/errors/MissingFieldInputOptions.js +1 -1
- package/dist/errors/MissingFieldInputOptions.js.map +1 -0
- package/dist/errors/MissingFieldType.js +1 -1
- package/dist/errors/MissingFieldType.js.map +1 -0
- package/dist/errors/MissingFile.js +1 -1
- package/dist/errors/MissingFile.js.map +1 -0
- package/dist/errors/NotFound.js +1 -1
- package/dist/errors/NotFound.js.map +1 -0
- package/dist/errors/QueryError.js +1 -1
- package/dist/errors/QueryError.js.map +1 -0
- package/dist/errors/TimestampsRequired.js +1 -1
- package/dist/errors/TimestampsRequired.js.map +1 -0
- package/dist/errors/UnathorizedError.js +1 -1
- package/dist/errors/UnathorizedError.js.map +1 -0
- package/dist/errors/ValidationError.js +1 -1
- package/dist/errors/ValidationError.js.map +1 -0
- package/dist/errors/index.js +1 -1
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/types.js +1 -1
- package/dist/errors/types.js.map +1 -0
- package/dist/exports/auth.js +1 -1
- package/dist/exports/auth.js.map +1 -0
- package/dist/exports/components/utilities.js +1 -1
- package/dist/exports/components/utilities.js.map +1 -0
- package/dist/exports/config.js +1 -1
- package/dist/exports/config.js.map +1 -0
- package/dist/exports/database.js +1 -1
- package/dist/exports/database.js.map +1 -0
- package/dist/exports/errors.js +1 -1
- package/dist/exports/errors.js.map +1 -0
- package/dist/exports/fields/index.js +1 -1
- package/dist/exports/fields/index.js.map +1 -0
- package/dist/exports/fields/validations.js +1 -1
- package/dist/exports/fields/validations.js.map +1 -0
- package/dist/exports/operations.js +1 -1
- package/dist/exports/operations.js.map +1 -0
- package/dist/exports/types.js +1 -1
- package/dist/exports/types.js.map +1 -0
- package/dist/exports/utilities.js +1 -1
- package/dist/exports/utilities.js.map +1 -0
- package/dist/exports/versions.js +1 -1
- package/dist/exports/versions.js.map +1 -0
- package/dist/fields/baseFields/baseBlockFields.js +1 -1
- package/dist/fields/baseFields/baseBlockFields.js.map +1 -0
- package/dist/fields/baseFields/baseIDField.js +1 -1
- package/dist/fields/baseFields/baseIDField.js.map +1 -0
- package/dist/fields/config/sanitize.js +1 -1
- package/dist/fields/config/sanitize.js.map +1 -0
- package/dist/fields/config/sanitize.spec.js +1 -1
- package/dist/fields/config/sanitize.spec.js.map +1 -0
- package/dist/fields/config/schema.js +1 -1
- package/dist/fields/config/schema.js.map +1 -0
- package/dist/fields/config/types.js +1 -1
- package/dist/fields/config/types.js.map +1 -0
- package/dist/fields/getDefaultValue.js +1 -1
- package/dist/fields/getDefaultValue.js.map +1 -0
- package/dist/fields/hooks/afterChange/index.js +1 -1
- package/dist/fields/hooks/afterChange/index.js.map +1 -0
- package/dist/fields/hooks/afterChange/promise.js +1 -1
- package/dist/fields/hooks/afterChange/promise.js.map +1 -0
- package/dist/fields/hooks/afterChange/traverseFields.js +1 -1
- package/dist/fields/hooks/afterChange/traverseFields.js.map +1 -0
- package/dist/fields/hooks/afterRead/index.js +1 -1
- package/dist/fields/hooks/afterRead/index.js.map +1 -0
- package/dist/fields/hooks/afterRead/promise.js +1 -1
- package/dist/fields/hooks/afterRead/promise.js.map +1 -0
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +1 -1
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -0
- package/dist/fields/hooks/afterRead/traverseFields.js +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -0
- package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js +1 -1
- package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js.map +1 -0
- package/dist/fields/hooks/beforeChange/getExistingRowDoc.js +1 -1
- package/dist/fields/hooks/beforeChange/getExistingRowDoc.js.map +1 -0
- package/dist/fields/hooks/beforeChange/index.js +1 -1
- package/dist/fields/hooks/beforeChange/index.js.map +1 -0
- package/dist/fields/hooks/beforeChange/promise.js +1 -1
- package/dist/fields/hooks/beforeChange/promise.js.map +1 -0
- package/dist/fields/hooks/beforeChange/traverseFields.js +1 -1
- package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -0
- package/dist/fields/hooks/beforeValidate/index.js +1 -1
- package/dist/fields/hooks/beforeValidate/index.js.map +1 -0
- package/dist/fields/hooks/beforeValidate/promise.js +1 -1
- package/dist/fields/hooks/beforeValidate/promise.js.map +1 -0
- package/dist/fields/hooks/beforeValidate/traverseFields.js +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -0
- package/dist/fields/mergeBaseFields.js +1 -1
- package/dist/fields/mergeBaseFields.js.map +1 -0
- package/dist/fields/sortableFieldTypes.js +1 -1
- package/dist/fields/sortableFieldTypes.js.map +1 -0
- package/dist/fields/validations.js +1 -1
- package/dist/fields/validations.js.map +1 -0
- package/dist/fields/validations.spec.js +1 -1
- package/dist/fields/validations.spec.js.map +1 -0
- package/dist/globals/config/sanitize.js +1 -1
- package/dist/globals/config/sanitize.js.map +1 -0
- package/dist/globals/config/schema.js +1 -1
- package/dist/globals/config/schema.js.map +1 -0
- package/dist/globals/config/types.js +1 -1
- package/dist/globals/config/types.js.map +1 -0
- package/dist/globals/operations/docAccess.js +1 -1
- package/dist/globals/operations/docAccess.js.map +1 -0
- package/dist/globals/operations/findOne.js +1 -1
- package/dist/globals/operations/findOne.js.map +1 -0
- package/dist/globals/operations/findVersionByID.js +1 -1
- package/dist/globals/operations/findVersionByID.js.map +1 -0
- package/dist/globals/operations/findVersions.js +1 -1
- package/dist/globals/operations/findVersions.js.map +1 -0
- package/dist/globals/operations/local/findOne.js +1 -1
- package/dist/globals/operations/local/findOne.js.map +1 -0
- package/dist/globals/operations/local/findVersionByID.js +1 -1
- package/dist/globals/operations/local/findVersionByID.js.map +1 -0
- package/dist/globals/operations/local/findVersions.js +1 -1
- package/dist/globals/operations/local/findVersions.js.map +1 -0
- package/dist/globals/operations/local/index.js +1 -1
- package/dist/globals/operations/local/index.js.map +1 -0
- package/dist/globals/operations/local/restoreVersion.js +1 -1
- package/dist/globals/operations/local/restoreVersion.js.map +1 -0
- package/dist/globals/operations/local/update.js +1 -1
- package/dist/globals/operations/local/update.js.map +1 -0
- package/dist/globals/operations/restoreVersion.js +1 -1
- package/dist/globals/operations/restoreVersion.js.map +1 -0
- package/dist/globals/operations/update.js +1 -1
- package/dist/globals/operations/update.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -0
- package/dist/localization/middleware.js +1 -1
- package/dist/localization/middleware.js.map +1 -0
- package/dist/localization/sanitizeFallbackLocale.js +1 -1
- package/dist/localization/sanitizeFallbackLocale.js.map +1 -0
- package/dist/preferences/deleteUserPreferences.js +1 -1
- package/dist/preferences/deleteUserPreferences.js.map +1 -0
- package/dist/preferences/operations/delete.d.ts.map +1 -1
- package/dist/preferences/operations/delete.js +1 -2
- package/dist/preferences/operations/delete.js.map +1 -0
- package/dist/preferences/operations/findOne.js +1 -1
- package/dist/preferences/operations/findOne.js.map +1 -0
- package/dist/preferences/operations/update.js +1 -1
- package/dist/preferences/operations/update.js.map +1 -0
- package/dist/preferences/preferencesCollection.js +1 -1
- package/dist/preferences/preferencesCollection.js.map +1 -0
- package/dist/preferences/requestHandlers/delete.js +1 -1
- package/dist/preferences/requestHandlers/delete.js.map +1 -0
- package/dist/preferences/requestHandlers/findOne.js +1 -1
- package/dist/preferences/requestHandlers/findOne.js.map +1 -0
- package/dist/preferences/requestHandlers/update.js +1 -1
- package/dist/preferences/requestHandlers/update.js.map +1 -0
- package/dist/preferences/types.js +1 -1
- package/dist/preferences/types.js.map +1 -0
- package/dist/translations/extractTranslations.js +1 -1
- package/dist/translations/extractTranslations.js.map +1 -0
- package/dist/translations/getLocalI18n.js +1 -1
- package/dist/translations/getLocalI18n.js.map +1 -0
- package/dist/types/constants.js +1 -1
- package/dist/types/constants.js.map +1 -0
- package/dist/types/index.js +1 -1
- package/dist/types/index.js.map +1 -0
- package/dist/uploads/canResizeImage.js +1 -1
- package/dist/uploads/canResizeImage.js.map +1 -0
- package/dist/uploads/cropImage.js +1 -1
- package/dist/uploads/cropImage.js.map +1 -0
- package/dist/uploads/deleteAssociatedFiles.js +1 -1
- package/dist/uploads/deleteAssociatedFiles.js.map +1 -0
- package/dist/uploads/docWithFilenameExists.js +1 -1
- package/dist/uploads/docWithFilenameExists.js.map +1 -0
- package/dist/uploads/fileExists.js +1 -1
- package/dist/uploads/fileExists.js.map +1 -0
- package/dist/uploads/formatFilesize.js +1 -1
- package/dist/uploads/formatFilesize.js.map +1 -0
- package/dist/uploads/generateFileData.js +1 -1
- package/dist/uploads/generateFileData.js.map +1 -0
- package/dist/uploads/getBaseFields.js +1 -1
- package/dist/uploads/getBaseFields.js.map +1 -0
- package/dist/uploads/getExternalFile.js +1 -1
- package/dist/uploads/getExternalFile.js.map +1 -0
- package/dist/uploads/getFileByPath.js +1 -1
- package/dist/uploads/getFileByPath.js.map +1 -0
- package/dist/uploads/getImageSize.js +1 -1
- package/dist/uploads/getImageSize.js.map +1 -0
- package/dist/uploads/getSafeFilename.js +1 -1
- package/dist/uploads/getSafeFilename.js.map +1 -0
- package/dist/uploads/imageResizer.js +1 -1
- package/dist/uploads/imageResizer.js.map +1 -0
- package/dist/uploads/isImage.d.ts.map +1 -1
- package/dist/uploads/isImage.js +3 -2
- package/dist/uploads/isImage.js.map +1 -0
- package/dist/uploads/mimeTypeValidator.js +1 -1
- package/dist/uploads/mimeTypeValidator.js.map +1 -0
- package/dist/uploads/mimeTypeValidator.spec.js +1 -1
- package/dist/uploads/mimeTypeValidator.spec.js.map +1 -0
- package/dist/uploads/saveBufferToFile.js +1 -1
- package/dist/uploads/saveBufferToFile.js.map +1 -0
- package/dist/uploads/types.js +1 -1
- package/dist/uploads/types.js.map +1 -0
- package/dist/uploads/unlinkTempFiles.js +1 -1
- package/dist/uploads/unlinkTempFiles.js.map +1 -0
- package/dist/uploads/uploadFiles.js +1 -1
- package/dist/uploads/uploadFiles.js.map +1 -0
- package/dist/utilities/checkDuplicateCollections.js +1 -1
- package/dist/utilities/checkDuplicateCollections.js.map +1 -0
- package/dist/utilities/combineMerge.js +1 -1
- package/dist/utilities/combineMerge.js.map +1 -0
- package/dist/utilities/commitTransaction.js +1 -1
- package/dist/utilities/commitTransaction.js.map +1 -0
- package/dist/utilities/configToJSONSchema.js +1 -1
- package/dist/utilities/configToJSONSchema.js.map +1 -0
- package/dist/utilities/configToJSONSchema.spec.js +1 -1
- package/dist/utilities/configToJSONSchema.spec.js.map +1 -0
- package/dist/utilities/convertData.js +1 -1
- package/dist/utilities/convertData.js.map +1 -0
- package/dist/utilities/createArrayFromCommaDelineated.js +1 -1
- package/dist/utilities/createArrayFromCommaDelineated.js.map +1 -0
- package/dist/utilities/createLocalReq.js +1 -1
- package/dist/utilities/createLocalReq.js.map +1 -0
- package/dist/utilities/deepCopyObject.js +1 -1
- package/dist/utilities/deepCopyObject.js.map +1 -0
- package/dist/utilities/deepMerge.js +1 -1
- package/dist/utilities/deepMerge.js.map +1 -0
- package/dist/utilities/fieldSchemaToJSON.js +1 -1
- package/dist/utilities/fieldSchemaToJSON.js.map +1 -0
- package/dist/utilities/flattenTopLevelFields.js +1 -1
- package/dist/utilities/flattenTopLevelFields.js.map +1 -0
- package/dist/utilities/formatLabels.js +1 -1
- package/dist/utilities/formatLabels.js.map +1 -0
- package/dist/utilities/formatLabels.spec.js +1 -1
- package/dist/utilities/formatLabels.spec.js.map +1 -0
- package/dist/utilities/getCSSVariable.js +1 -1
- package/dist/utilities/getCSSVariable.js.map +1 -0
- package/dist/utilities/getCollectionIDFieldTypes.js +1 -1
- package/dist/utilities/getCollectionIDFieldTypes.js.map +1 -0
- package/dist/utilities/getEntityPolicies.js +1 -1
- package/dist/utilities/getEntityPolicies.js.map +1 -0
- package/dist/utilities/getIDType.js +1 -1
- package/dist/utilities/getIDType.js.map +1 -0
- package/dist/utilities/getObjectDotNotation.js +1 -1
- package/dist/utilities/getObjectDotNotation.js.map +1 -0
- package/dist/utilities/getUniqueListBy.js +1 -1
- package/dist/utilities/getUniqueListBy.js.map +1 -0
- package/dist/utilities/initTransaction.js +1 -1
- package/dist/utilities/initTransaction.js.map +1 -0
- package/dist/utilities/isEntityHidden.js +1 -1
- package/dist/utilities/isEntityHidden.js.map +1 -0
- package/dist/utilities/isNumber.js +1 -1
- package/dist/utilities/isNumber.js.map +1 -0
- package/dist/utilities/isPlainObject.js +1 -1
- package/dist/utilities/isPlainObject.js.map +1 -0
- package/dist/utilities/isValidID.js +1 -1
- package/dist/utilities/isValidID.js.map +1 -0
- package/dist/utilities/isolateObjectProperty.js +1 -1
- package/dist/utilities/isolateObjectProperty.js.map +1 -0
- package/dist/utilities/killTransaction.js +1 -1
- package/dist/utilities/killTransaction.js.map +1 -0
- package/dist/utilities/logger.js +1 -1
- package/dist/utilities/logger.js.map +1 -0
- package/dist/utilities/mapAsync.js +1 -1
- package/dist/utilities/mapAsync.js.map +1 -0
- package/dist/utilities/overwriteMerge.js +1 -1
- package/dist/utilities/overwriteMerge.js.map +1 -0
- package/dist/utilities/parseCookies.js +1 -1
- package/dist/utilities/parseCookies.js.map +1 -0
- package/dist/utilities/sanitizeInternalFields.js +1 -1
- package/dist/utilities/sanitizeInternalFields.js.map +1 -0
- package/dist/utilities/setsAreEqual.js +1 -1
- package/dist/utilities/setsAreEqual.js.map +1 -0
- package/dist/utilities/telemetry/events/adminInit.js +1 -1
- package/dist/utilities/telemetry/events/adminInit.js.map +1 -0
- package/dist/utilities/telemetry/events/serverInit.js +1 -1
- package/dist/utilities/telemetry/events/serverInit.js.map +1 -0
- package/dist/utilities/telemetry/index.js +1 -1
- package/dist/utilities/telemetry/index.js.map +1 -0
- package/dist/utilities/telemetry/oneWayHash.js +1 -1
- package/dist/utilities/telemetry/oneWayHash.js.map +1 -0
- package/dist/utilities/timestamp.js +1 -1
- package/dist/utilities/timestamp.js.map +1 -0
- package/dist/utilities/toKebabCase.js +1 -1
- package/dist/utilities/toKebabCase.js.map +1 -0
- package/dist/utilities/wait.js +1 -1
- package/dist/utilities/wait.js.map +1 -0
- package/dist/utilities/wordBoundariesRegex.js +1 -1
- package/dist/utilities/wordBoundariesRegex.js.map +1 -0
- package/dist/versions/baseFields.js +1 -1
- package/dist/versions/baseFields.js.map +1 -0
- package/dist/versions/buildCollectionFields.js +1 -1
- package/dist/versions/buildCollectionFields.js.map +1 -0
- package/dist/versions/buildGlobalFields.js +1 -1
- package/dist/versions/buildGlobalFields.js.map +1 -0
- package/dist/versions/deleteCollectionVersions.js +1 -1
- package/dist/versions/deleteCollectionVersions.js.map +1 -0
- package/dist/versions/drafts/appendVersionToQueryKey.js +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -0
- package/dist/versions/drafts/getQueryDraftsSort.js +1 -1
- package/dist/versions/drafts/getQueryDraftsSort.js.map +1 -0
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -0
- package/dist/versions/enforceMaxVersions.js +1 -1
- package/dist/versions/enforceMaxVersions.js.map +1 -0
- package/dist/versions/getLatestCollectionVersion.js +1 -1
- package/dist/versions/getLatestCollectionVersion.js.map +1 -0
- package/dist/versions/getLatestGlobalVersion.js +1 -1
- package/dist/versions/getLatestGlobalVersion.js.map +1 -0
- package/dist/versions/getVersionsModelName.js +1 -1
- package/dist/versions/getVersionsModelName.js.map +1 -0
- package/dist/versions/saveVersion.js +1 -1
- package/dist/versions/saveVersion.js.map +1 -0
- package/dist/versions/types.js +1 -1
- package/dist/versions/types.js.map +1 -0
- package/errors.js +1 -1
- package/operations.js +1 -1
- package/package.json +2 -2
- package/types.js +1 -1
- package/utilities.js +1 -1
- package/versions.js +1 -1
|
@@ -76,4 +76,4 @@ export const createLocalReq = async ({ context, fallbackLocale, locale, req = {}
|
|
|
76
76
|
return req;
|
|
77
77
|
};
|
|
78
78
|
|
|
79
|
-
//# sourceMappingURL=
|
|
79
|
+
//# sourceMappingURL=createLocalReq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/createLocalReq.ts"],"sourcesContent":["import type { Payload, RequestContext } from '../index.js'\nimport type { User } from '../auth/types.js'\nimport type { PayloadRequest } from '../types/index.js'\n\nimport { getDataLoader } from '../collections/dataloader.js'\nimport { getLocalI18n } from '../translations/getLocalI18n.js'\n\nfunction getRequestContext(\n req: PayloadRequest = { context: null } as PayloadRequest,\n context: RequestContext = {},\n): RequestContext {\n if (req.context) {\n if (Object.keys(req.context).length === 0 && req.context.constructor === Object) {\n // if req.context is `{}` avoid unnecessary spread\n return context\n } else {\n return { ...req.context, ...context }\n }\n } else {\n return context\n }\n}\n\nconst attachFakeURLProperties = (req: PayloadRequest) => {\n /**\n * *NOTE*\n * If no URL is provided, the local API was called directly outside\n * the context of a request. Therefore we create a fake URL object.\n * `ts-ignore` is used below for properties that are 'read-only'\n * since they do not exist yet we can safely ignore the error.\n */\n try {\n const urlProperties = new URL(req.payload.config?.serverURL)\n req.host = urlProperties.host\n req.protocol = urlProperties.protocol\n req.pathname = urlProperties.pathname\n // @ts-expect-error\n req.searchParams = urlProperties.searchParams\n // @ts-expect-error\n req.origin = urlProperties.origin\n // @ts-expect-error\n req.url = urlProperties.href\n return\n } catch (error) {\n /** do nothing */\n }\n\n req.host = 'localhost'\n req.protocol = 'https:'\n req.pathname = '/'\n // @ts-expect-error\n req.searchParams = new URLSearchParams()\n // @ts-expect-error\n req.origin = 'http://localhost'\n // @ts-expect-error\n req.url = 'http://localhost'\n return\n}\n\ntype CreateLocalReq = (\n options: {\n context?: RequestContext\n fallbackLocale?: string\n locale?: string\n req?: PayloadRequest\n user?: User\n },\n payload: Payload,\n) => Promise<PayloadRequest>\nexport const createLocalReq: CreateLocalReq = async (\n { context, fallbackLocale, locale, req = {} as PayloadRequest, user },\n payload,\n) => {\n const i18n = req?.i18n || (await getLocalI18n({ config: payload.config }))\n\n if (payload.config?.localization) {\n const defaultLocale = payload.config.localization.defaultLocale\n req.locale = locale || req?.locale || defaultLocale\n const fallbackLocaleFromConfig = payload.config.localization.locales.find(\n ({ code }) => req.locale === code,\n )?.fallbackLocale\n if (typeof fallbackLocale !== 'undefined') {\n req.fallbackLocale = fallbackLocale\n } else if (typeof req?.fallbackLocale === 'undefined') {\n req.fallbackLocale = fallbackLocaleFromConfig || defaultLocale\n }\n }\n\n req.context = getRequestContext(req, context)\n req.payloadAPI = req?.payloadAPI || 'local'\n req.payload = payload\n req.i18n = i18n\n req.t = i18n.t\n req.user = user || req?.user || null\n req.payloadDataLoader = req?.payloadDataLoader || getDataLoader(req)\n req.routeParams = req?.routeParams || {}\n req.query = req?.query || {}\n\n if (!req?.url) attachFakeURLProperties(req)\n\n return req\n}\n"],"names":["getDataLoader","getLocalI18n","getRequestContext","req","context","Object","keys","length","constructor","attachFakeURLProperties","urlProperties","URL","payload","config","serverURL","host","protocol","pathname","searchParams","origin","url","href","error","URLSearchParams","createLocalReq","fallbackLocale","locale","user","i18n","localization","defaultLocale","fallbackLocaleFromConfig","locales","find","code","payloadAPI","t","payloadDataLoader","routeParams","query"],"mappings":"AAIA,SAASA,aAAa,QAAQ,+BAA8B;AAC5D,SAASC,YAAY,QAAQ,kCAAiC;AAE9D,SAASC,kBACPC,MAAsB;IAAEC,SAAS;AAAK,CAAmB,EACzDA,UAA0B,CAAC,CAAC;IAE5B,IAAID,IAAIC,OAAO,EAAE;QACf,IAAIC,OAAOC,IAAI,CAACH,IAAIC,OAAO,EAAEG,MAAM,KAAK,KAAKJ,IAAIC,OAAO,CAACI,WAAW,KAAKH,QAAQ;YAC/E,kDAAkD;YAClD,OAAOD;QACT,OAAO;YACL,OAAO;gBAAE,GAAGD,IAAIC,OAAO;gBAAE,GAAGA,OAAO;YAAC;QACtC;IACF,OAAO;QACL,OAAOA;IACT;AACF;AAEA,MAAMK,0BAA0B,CAACN;IAC/B;;;;;;GAMC,GACD,IAAI;QACF,MAAMO,gBAAgB,IAAIC,IAAIR,IAAIS,OAAO,CAACC,MAAM,EAAEC;QAClDX,IAAIY,IAAI,GAAGL,cAAcK,IAAI;QAC7BZ,IAAIa,QAAQ,GAAGN,cAAcM,QAAQ;QACrCb,IAAIc,QAAQ,GAAGP,cAAcO,QAAQ;QACrC,mBAAmB;QACnBd,IAAIe,YAAY,GAAGR,cAAcQ,YAAY;QAC7C,mBAAmB;QACnBf,IAAIgB,MAAM,GAAGT,cAAcS,MAAM;QACjC,mBAAmB;QACnBhB,IAAIiB,GAAG,GAAGV,cAAcW,IAAI;QAC5B;IACF,EAAE,OAAOC,OAAO;IACd,eAAe,GACjB;IAEAnB,IAAIY,IAAI,GAAG;IACXZ,IAAIa,QAAQ,GAAG;IACfb,IAAIc,QAAQ,GAAG;IACf,mBAAmB;IACnBd,IAAIe,YAAY,GAAG,IAAIK;IACvB,mBAAmB;IACnBpB,IAAIgB,MAAM,GAAG;IACb,mBAAmB;IACnBhB,IAAIiB,GAAG,GAAG;IACV;AACF;AAYA,OAAO,MAAMI,iBAAiC,OAC5C,EAAEpB,OAAO,EAAEqB,cAAc,EAAEC,MAAM,EAAEvB,MAAM,CAAC,CAAmB,EAAEwB,IAAI,EAAE,EACrEf;IAEA,MAAMgB,OAAOzB,KAAKyB,QAAS,MAAM3B,aAAa;QAAEY,QAAQD,QAAQC,MAAM;IAAC;IAEvE,IAAID,QAAQC,MAAM,EAAEgB,cAAc;QAChC,MAAMC,gBAAgBlB,QAAQC,MAAM,CAACgB,YAAY,CAACC,aAAa;QAC/D3B,IAAIuB,MAAM,GAAGA,UAAUvB,KAAKuB,UAAUI;QACtC,MAAMC,2BAA2BnB,QAAQC,MAAM,CAACgB,YAAY,CAACG,OAAO,CAACC,IAAI,CACvE,CAAC,EAAEC,IAAI,EAAE,GAAK/B,IAAIuB,MAAM,KAAKQ,OAC5BT;QACH,IAAI,OAAOA,mBAAmB,aAAa;YACzCtB,IAAIsB,cAAc,GAAGA;QACvB,OAAO,IAAI,OAAOtB,KAAKsB,mBAAmB,aAAa;YACrDtB,IAAIsB,cAAc,GAAGM,4BAA4BD;QACnD;IACF;IAEA3B,IAAIC,OAAO,GAAGF,kBAAkBC,KAAKC;IACrCD,IAAIgC,UAAU,GAAGhC,KAAKgC,cAAc;IACpChC,IAAIS,OAAO,GAAGA;IACdT,IAAIyB,IAAI,GAAGA;IACXzB,IAAIiC,CAAC,GAAGR,KAAKQ,CAAC;IACdjC,IAAIwB,IAAI,GAAGA,QAAQxB,KAAKwB,QAAQ;IAChCxB,IAAIkC,iBAAiB,GAAGlC,KAAKkC,qBAAqBrC,cAAcG;IAChEA,IAAImC,WAAW,GAAGnC,KAAKmC,eAAe,CAAC;IACvCnC,IAAIoC,KAAK,GAAGpC,KAAKoC,SAAS,CAAC;IAE3B,IAAI,CAACpC,KAAKiB,KAAKX,wBAAwBN;IAEvC,OAAOA;AACT,EAAC"}
|
|
@@ -16,4 +16,4 @@ export const deepCopyObject = (inObject)=>{
|
|
|
16
16
|
return outObject;
|
|
17
17
|
};
|
|
18
18
|
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=deepCopyObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/deepCopyObject.ts"],"sourcesContent":["export const deepCopyObject = (inObject) => {\n if (inObject instanceof Date) return inObject\n\n if (inObject instanceof Set) return new Set(inObject)\n\n if (inObject instanceof Map) return new Map(inObject)\n\n if (typeof inObject !== 'object' || inObject === null) {\n return inObject // Return the value if inObject is not an object\n }\n\n // Create an array or object to hold the values\n const outObject = Array.isArray(inObject) ? [] : {}\n\n Object.keys(inObject).forEach((key) => {\n const value = inObject[key]\n\n // Recursively (deep) copy for nested objects, including arrays\n outObject[key] = typeof value === 'object' && value !== null ? deepCopyObject(value) : value\n })\n\n return outObject\n}\n"],"names":["deepCopyObject","inObject","Date","Set","Map","outObject","Array","isArray","Object","keys","forEach","key","value"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB,CAACC;IAC7B,IAAIA,oBAAoBC,MAAM,OAAOD;IAErC,IAAIA,oBAAoBE,KAAK,OAAO,IAAIA,IAAIF;IAE5C,IAAIA,oBAAoBG,KAAK,OAAO,IAAIA,IAAIH;IAE5C,IAAI,OAAOA,aAAa,YAAYA,aAAa,MAAM;QACrD,OAAOA,SAAS,gDAAgD;;IAClE;IAEA,+CAA+C;IAC/C,MAAMI,YAAYC,MAAMC,OAAO,CAACN,YAAY,EAAE,GAAG,CAAC;IAElDO,OAAOC,IAAI,CAACR,UAAUS,OAAO,CAAC,CAACC;QAC7B,MAAMC,QAAQX,QAAQ,CAACU,IAAI;QAE3B,+DAA+D;QAC/DN,SAAS,CAACM,IAAI,GAAG,OAAOC,UAAU,YAAYA,UAAU,OAAOZ,eAAeY,SAASA;IACzF;IAEA,OAAOP;AACT,EAAC"}
|
|
@@ -14,4 +14,4 @@ export function deepMerge(obj1, obj2) {
|
|
|
14
14
|
return output;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
//# sourceMappingURL=
|
|
17
|
+
//# sourceMappingURL=deepMerge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/deepMerge.ts"],"sourcesContent":["export function deepMerge(obj1, obj2) {\n const output = { ...obj1 }\n\n for (const key in obj2) {\n if (Object.prototype.hasOwnProperty.call(obj2, key)) {\n if (typeof obj2[key] === 'object' && !Array.isArray(obj2[key]) && obj1[key]) {\n output[key] = deepMerge(obj1[key], obj2[key])\n } else {\n output[key] = obj2[key]\n }\n }\n }\n\n return output\n}\n"],"names":["deepMerge","obj1","obj2","output","key","Object","prototype","hasOwnProperty","call","Array","isArray"],"mappings":"AAAA,OAAO,SAASA,UAAUC,IAAI,EAAEC,IAAI;IAClC,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IAEzB,IAAK,MAAMG,OAAOF,KAAM;QACtB,IAAIG,OAAOC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACN,MAAME,MAAM;YACnD,IAAI,OAAOF,IAAI,CAACE,IAAI,KAAK,YAAY,CAACK,MAAMC,OAAO,CAACR,IAAI,CAACE,IAAI,KAAKH,IAAI,CAACG,IAAI,EAAE;gBAC3ED,MAAM,CAACC,IAAI,GAAGJ,UAAUC,IAAI,CAACG,IAAI,EAAEF,IAAI,CAACE,IAAI;YAC9C,OAAO;gBACLD,MAAM,CAACC,IAAI,GAAGF,IAAI,CAACE,IAAI;YACzB;QACF;IACF;IAEA,OAAOD;AACT"}
|
|
@@ -82,4 +82,4 @@ export const fieldSchemaToJSON = (fields)=>{
|
|
|
82
82
|
}, []);
|
|
83
83
|
};
|
|
84
84
|
|
|
85
|
-
//# sourceMappingURL=
|
|
85
|
+
//# sourceMappingURL=fieldSchemaToJSON.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/fieldSchemaToJSON.ts"],"sourcesContent":["import type { FieldTypes } from '../exports/config.js'\nimport type { Field } from '../fields/config/types.js'\n\nexport type FieldSchemaJSON = {\n blocks?: FieldSchemaJSON // TODO: conditionally add based on `type`\n fields?: FieldSchemaJSON // TODO: conditionally add based on `type`\n hasMany?: boolean // TODO: conditionally add based on `type`\n name: string\n relationTo?: string // TODO: conditionally add based on `type`\n slug?: string // TODO: conditionally add based on `type`\n type: keyof FieldTypes\n}[]\n\nexport const fieldSchemaToJSON = (fields: Field[]): FieldSchemaJSON => {\n return fields.reduce((acc, field) => {\n let result = acc\n\n switch (field.type) {\n case 'group':\n acc.push({\n name: field.name,\n fields: fieldSchemaToJSON(field.fields),\n type: field.type,\n })\n\n break\n\n case 'array':\n acc.push({\n name: field.name,\n fields: fieldSchemaToJSON([\n ...field.fields,\n {\n name: 'id',\n type: 'text',\n },\n ]),\n type: field.type,\n })\n\n break\n\n case 'blocks':\n acc.push({\n name: field.name,\n blocks: field.blocks.reduce((acc, block) => {\n acc[block.slug] = {\n fields: fieldSchemaToJSON([\n ...block.fields,\n {\n name: 'id',\n type: 'text',\n },\n ]),\n }\n\n return acc\n }, {}),\n type: field.type,\n })\n\n break\n\n case 'row':\n case 'collapsible':\n result = result.concat(fieldSchemaToJSON(field.fields))\n break\n\n case 'tabs': {\n let tabFields = []\n\n field.tabs.forEach((tab) => {\n if ('name' in tab) {\n tabFields.push({\n name: tab.name,\n fields: fieldSchemaToJSON(tab.fields),\n type: field.type,\n })\n return\n }\n\n tabFields = tabFields.concat(fieldSchemaToJSON(tab.fields))\n })\n\n result = result.concat(tabFields)\n\n break\n }\n\n case 'relationship':\n case 'upload':\n acc.push({\n name: field.name,\n hasMany: 'hasMany' in field ? Boolean(field.hasMany) : false, // TODO: type this\n relationTo: field.relationTo,\n type: field.type,\n })\n\n break\n\n default:\n if ('name' in field) {\n acc.push({\n name: field.name,\n type: field.type,\n })\n }\n }\n\n return result\n }, [])\n}\n"],"names":["fieldSchemaToJSON","fields","reduce","acc","field","result","type","push","name","blocks","block","slug","concat","tabFields","tabs","forEach","tab","hasMany","Boolean","relationTo"],"mappings":"AAaA,OAAO,MAAMA,oBAAoB,CAACC;IAChC,OAAOA,OAAOC,MAAM,CAAC,CAACC,KAAKC;QACzB,IAAIC,SAASF;QAEb,OAAQC,MAAME,IAAI;YAChB,KAAK;gBACHH,IAAII,IAAI,CAAC;oBACPC,MAAMJ,MAAMI,IAAI;oBAChBP,QAAQD,kBAAkBI,MAAMH,MAAM;oBACtCK,MAAMF,MAAME,IAAI;gBAClB;gBAEA;YAEF,KAAK;gBACHH,IAAII,IAAI,CAAC;oBACPC,MAAMJ,MAAMI,IAAI;oBAChBP,QAAQD,kBAAkB;2BACrBI,MAAMH,MAAM;wBACf;4BACEO,MAAM;4BACNF,MAAM;wBACR;qBACD;oBACDA,MAAMF,MAAME,IAAI;gBAClB;gBAEA;YAEF,KAAK;gBACHH,IAAII,IAAI,CAAC;oBACPC,MAAMJ,MAAMI,IAAI;oBAChBC,QAAQL,MAAMK,MAAM,CAACP,MAAM,CAAC,CAACC,KAAKO;wBAChCP,GAAG,CAACO,MAAMC,IAAI,CAAC,GAAG;4BAChBV,QAAQD,kBAAkB;mCACrBU,MAAMT,MAAM;gCACf;oCACEO,MAAM;oCACNF,MAAM;gCACR;6BACD;wBACH;wBAEA,OAAOH;oBACT,GAAG,CAAC;oBACJG,MAAMF,MAAME,IAAI;gBAClB;gBAEA;YAEF,KAAK;YACL,KAAK;gBACHD,SAASA,OAAOO,MAAM,CAACZ,kBAAkBI,MAAMH,MAAM;gBACrD;YAEF,KAAK;gBAAQ;oBACX,IAAIY,YAAY,EAAE;oBAElBT,MAAMU,IAAI,CAACC,OAAO,CAAC,CAACC;wBAClB,IAAI,UAAUA,KAAK;4BACjBH,UAAUN,IAAI,CAAC;gCACbC,MAAMQ,IAAIR,IAAI;gCACdP,QAAQD,kBAAkBgB,IAAIf,MAAM;gCACpCK,MAAMF,MAAME,IAAI;4BAClB;4BACA;wBACF;wBAEAO,YAAYA,UAAUD,MAAM,CAACZ,kBAAkBgB,IAAIf,MAAM;oBAC3D;oBAEAI,SAASA,OAAOO,MAAM,CAACC;oBAEvB;gBACF;YAEA,KAAK;YACL,KAAK;gBACHV,IAAII,IAAI,CAAC;oBACPC,MAAMJ,MAAMI,IAAI;oBAChBS,SAAS,aAAab,QAAQc,QAAQd,MAAMa,OAAO,IAAI;oBACvDE,YAAYf,MAAMe,UAAU;oBAC5Bb,MAAMF,MAAME,IAAI;gBAClB;gBAEA;YAEF;gBACE,IAAI,UAAUF,OAAO;oBACnBD,IAAII,IAAI,CAAC;wBACPC,MAAMJ,MAAMI,IAAI;wBAChBF,MAAMF,MAAME,IAAI;oBAClB;gBACF;QACJ;QAEA,OAAOD;IACT,GAAG,EAAE;AACP,EAAC"}
|
|
@@ -40,4 +40,4 @@ import { fieldAffectsData, fieldHasSubFields, fieldIsPresentationalOnly, tabHasN
|
|
|
40
40
|
};
|
|
41
41
|
export default flattenFields;
|
|
42
42
|
|
|
43
|
-
//# sourceMappingURL=
|
|
43
|
+
//# sourceMappingURL=flattenTopLevelFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/flattenTopLevelFields.ts"],"sourcesContent":["import type { Field, FieldAffectingData, FieldPresentationalOnly } from '../fields/config/types.js'\n\nimport {\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsPresentationalOnly,\n tabHasName,\n} from '../fields/config/types.js'\n\n/**\n * Flattens a collection's fields into a single array of fields, as long\n * as the fields do not affect data.\n *\n * @param fields\n * @param keepPresentationalFields if true, will skip flattening fields that are presentational only\n */\nconst flattenFields = (\n fields: Field[],\n keepPresentationalFields?: boolean,\n): (FieldAffectingData | FieldPresentationalOnly)[] => {\n return fields.reduce((fieldsToUse, field) => {\n if (fieldAffectsData(field) || (keepPresentationalFields && fieldIsPresentationalOnly(field))) {\n return [...fieldsToUse, field]\n }\n\n if (fieldHasSubFields(field)) {\n return [...fieldsToUse, ...flattenFields(field.fields, keepPresentationalFields)]\n }\n\n if (field.type === 'tabs') {\n return [\n ...fieldsToUse,\n ...field.tabs.reduce((tabFields, tab) => {\n return [\n ...tabFields,\n ...(tabHasName(tab)\n ? [{ ...tab, type: 'tab' }]\n : flattenFields(tab.fields, keepPresentationalFields)),\n ]\n }, []),\n ]\n }\n return fieldsToUse\n }, [])\n}\n\nexport default flattenFields\n"],"names":["fieldAffectsData","fieldHasSubFields","fieldIsPresentationalOnly","tabHasName","flattenFields","fields","keepPresentationalFields","reduce","fieldsToUse","field","type","tabs","tabFields","tab"],"mappings":"AAEA,SACEA,gBAAgB,EAChBC,iBAAiB,EACjBC,yBAAyB,EACzBC,UAAU,QACL,4BAA2B;AAElC;;;;;;CAMC,GACD,MAAMC,gBAAgB,CACpBC,QACAC;IAEA,OAAOD,OAAOE,MAAM,CAAC,CAACC,aAAaC;QACjC,IAAIT,iBAAiBS,UAAWH,4BAA4BJ,0BAA0BO,QAAS;YAC7F,OAAO;mBAAID;gBAAaC;aAAM;QAChC;QAEA,IAAIR,kBAAkBQ,QAAQ;YAC5B,OAAO;mBAAID;mBAAgBJ,cAAcK,MAAMJ,MAAM,EAAEC;aAA0B;QACnF;QAEA,IAAIG,MAAMC,IAAI,KAAK,QAAQ;YACzB,OAAO;mBACFF;mBACAC,MAAME,IAAI,CAACJ,MAAM,CAAC,CAACK,WAAWC;oBAC/B,OAAO;2BACFD;2BACCT,WAAWU,OACX;4BAAC;gCAAE,GAAGA,GAAG;gCAAEH,MAAM;4BAAM;yBAAE,GACzBN,cAAcS,IAAIR,MAAM,EAAEC;qBAC/B;gBACH,GAAG,EAAE;aACN;QACH;QACA,OAAOE;IACT,GAAG,EAAE;AACP;AAEA,eAAeJ,cAAa"}
|
|
@@ -36,4 +36,4 @@ const formatNames = (slug)=>{
|
|
|
36
36
|
};
|
|
37
37
|
export { formatLabels, formatNames, toWords };
|
|
38
38
|
|
|
39
|
-
//# sourceMappingURL=
|
|
39
|
+
//# sourceMappingURL=formatLabels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/formatLabels.ts"],"sourcesContent":["import pluralize from 'pluralize'\nconst { isPlural, singular } = pluralize\n\nconst capitalizeFirstLetter = (string: string): string =>\n string.charAt(0).toUpperCase() + string.slice(1)\n\nconst toWords = (inputString: string, joinWords = false): string => {\n const notNullString = inputString || ''\n const trimmedString = notNullString.trim()\n const arrayOfStrings = trimmedString.split(/[\\s-]/)\n\n const splitStringsArray = []\n arrayOfStrings.forEach((tempString) => {\n if (tempString !== '') {\n const splitWords = tempString.split(/(?=[A-Z])/).join(' ')\n splitStringsArray.push(capitalizeFirstLetter(splitWords))\n }\n })\n\n return joinWords ? splitStringsArray.join('').replace(/\\s/g, '') : splitStringsArray.join(' ')\n}\n\nconst formatLabels = (slug: string): { plural: string; singular: string } => {\n const words = toWords(slug)\n return isPlural(slug)\n ? {\n plural: words,\n singular: singular(words),\n }\n : {\n plural: pluralize(words),\n singular: words,\n }\n}\n\nconst formatNames = (slug: string): { plural: string; singular: string } => {\n const words = toWords(slug, true)\n return isPlural(slug)\n ? {\n plural: words,\n singular: singular(words),\n }\n : {\n plural: pluralize(words),\n singular: words,\n }\n}\n\nexport { formatLabels, formatNames, toWords }\n"],"names":["pluralize","isPlural","singular","capitalizeFirstLetter","string","charAt","toUpperCase","slice","toWords","inputString","joinWords","notNullString","trimmedString","trim","arrayOfStrings","split","splitStringsArray","forEach","tempString","splitWords","join","push","replace","formatLabels","slug","words","plural","formatNames"],"mappings":"AAAA,OAAOA,eAAe,YAAW;AACjC,MAAM,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGF;AAE/B,MAAMG,wBAAwB,CAACC,SAC7BA,OAAOC,MAAM,CAAC,GAAGC,WAAW,KAAKF,OAAOG,KAAK,CAAC;AAEhD,MAAMC,UAAU,CAACC,aAAqBC,YAAY,KAAK;IACrD,MAAMC,gBAAgBF,eAAe;IACrC,MAAMG,gBAAgBD,cAAcE,IAAI;IACxC,MAAMC,iBAAiBF,cAAcG,KAAK,CAAC;IAE3C,MAAMC,oBAAoB,EAAE;IAC5BF,eAAeG,OAAO,CAAC,CAACC;QACtB,IAAIA,eAAe,IAAI;YACrB,MAAMC,aAAaD,WAAWH,KAAK,CAAC,aAAaK,IAAI,CAAC;YACtDJ,kBAAkBK,IAAI,CAAClB,sBAAsBgB;QAC/C;IACF;IAEA,OAAOT,YAAYM,kBAAkBI,IAAI,CAAC,IAAIE,OAAO,CAAC,OAAO,MAAMN,kBAAkBI,IAAI,CAAC;AAC5F;AAEA,MAAMG,eAAe,CAACC;IACpB,MAAMC,QAAQjB,QAAQgB;IACtB,OAAOvB,SAASuB,QACZ;QACEE,QAAQD;QACRvB,UAAUA,SAASuB;IACrB,IACA;QACEC,QAAQ1B,UAAUyB;QAClBvB,UAAUuB;IACZ;AACN;AAEA,MAAME,cAAc,CAACH;IACnB,MAAMC,QAAQjB,QAAQgB,MAAM;IAC5B,OAAOvB,SAASuB,QACZ;QACEE,QAAQD;QACRvB,UAAUA,SAASuB;IACrB,IACA;QACEC,QAAQ1B,UAAUyB;QAClBvB,UAAUuB;IACZ;AACN;AAEA,SAASF,YAAY,EAAEI,WAAW,EAAEnB,OAAO,GAAE"}
|
|
@@ -34,4 +34,4 @@ describe('formatLabels', ()=>{
|
|
|
34
34
|
});
|
|
35
35
|
});
|
|
36
36
|
|
|
37
|
-
//# sourceMappingURL=
|
|
37
|
+
//# sourceMappingURL=formatLabels.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/formatLabels.spec.ts"],"sourcesContent":["import { formatLabels, toWords } from './formatLabels'\n\ndescribe('formatLabels', () => {\n it('should format singular slug', () => {\n expect(formatLabels('word')).toMatchObject({\n plural: 'Words',\n singular: 'Word',\n })\n })\n\n it('should format plural slug', () => {\n expect(formatLabels('words')).toMatchObject({\n plural: 'Words',\n singular: 'Word',\n })\n })\n\n it('should format kebab case', () => {\n expect(formatLabels('my-slugs')).toMatchObject({\n plural: 'My Slugs',\n singular: 'My Slug',\n })\n })\n\n it('should format camelCase', () => {\n expect(formatLabels('camelCaseItems')).toMatchObject({\n plural: 'Camel Case Items',\n singular: 'Camel Case Item',\n })\n })\n\n describe('toWords', () => {\n it('should convert camel to capitalized words', () => {\n expect(toWords('camelCaseItems')).toBe('Camel Case Items')\n })\n\n it('should allow no separator (used for building GraphQL label from name)', () => {\n expect(toWords('myGraphField', true)).toBe('MyGraphField')\n })\n })\n})\n"],"names":["formatLabels","toWords","describe","it","expect","toMatchObject","plural","singular","toBe"],"mappings":"AAAA,SAASA,YAAY,EAAEC,OAAO,QAAQ,iBAAgB;AAEtDC,SAAS,gBAAgB;IACvBC,GAAG,+BAA+B;QAChCC,OAAOJ,aAAa,SAASK,aAAa,CAAC;YACzCC,QAAQ;YACRC,UAAU;QACZ;IACF;IAEAJ,GAAG,6BAA6B;QAC9BC,OAAOJ,aAAa,UAAUK,aAAa,CAAC;YAC1CC,QAAQ;YACRC,UAAU;QACZ;IACF;IAEAJ,GAAG,4BAA4B;QAC7BC,OAAOJ,aAAa,aAAaK,aAAa,CAAC;YAC7CC,QAAQ;YACRC,UAAU;QACZ;IACF;IAEAJ,GAAG,2BAA2B;QAC5BC,OAAOJ,aAAa,mBAAmBK,aAAa,CAAC;YACnDC,QAAQ;YACRC,UAAU;QACZ;IACF;IAEAL,SAAS,WAAW;QAClBC,GAAG,6CAA6C;YAC9CC,OAAOH,QAAQ,mBAAmBO,IAAI,CAAC;QACzC;QAEAL,GAAG,yEAAyE;YAC1EC,OAAOH,QAAQ,gBAAgB,OAAOO,IAAI,CAAC;QAC7C;IACF;AACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export default ((variable)=>getComputedStyle(document.documentElement).getPropertyValue(`--${variable}`));
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=getCSSVariable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getCSSVariable.ts"],"sourcesContent":["export default (variable) =>\n getComputedStyle(document.documentElement).getPropertyValue(`--${variable}`)\n"],"names":["variable","getComputedStyle","document","documentElement","getPropertyValue"],"mappings":"AAAA,eAAe,CAAA,CAACA,WACdC,iBAAiBC,SAASC,eAAe,EAAEC,gBAAgB,CAAC,CAAC,EAAE,EAAEJ,SAAS,CAAC,CAAA,EAAC"}
|
|
@@ -13,4 +13,4 @@
|
|
|
13
13
|
}, {});
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
//# sourceMappingURL=
|
|
16
|
+
//# sourceMappingURL=getCollectionIDFieldTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getCollectionIDFieldTypes.ts"],"sourcesContent":["import type { SanitizedConfig } from '../config/types.js'\n\n/**\n * While the default ID is determined by the db adapter, it can still differ for a collection if they\n * define a custom ID field. This builds a map of collection slugs to their ID field type.\n * @param defaultIDType as defined by the database adapter\n */\nexport function getCollectionIDFieldTypes({\n config,\n defaultIDType,\n}: {\n config: SanitizedConfig\n defaultIDType: 'number' | 'text'\n}): { [key: string]: 'number' | 'string' } {\n return config.collections.reduce((acc, collection) => {\n const customCollectionIdField = collection.fields.find(\n (field) => 'name' in field && field.name === 'id',\n )\n\n acc[collection.slug] = defaultIDType === 'text' ? 'string' : 'number'\n\n if (customCollectionIdField) {\n acc[collection.slug] = customCollectionIdField.type === 'number' ? 'number' : 'string'\n }\n\n return acc\n }, {})\n}\n"],"names":["getCollectionIDFieldTypes","config","defaultIDType","collections","reduce","acc","collection","customCollectionIdField","fields","find","field","name","slug","type"],"mappings":"AAEA;;;;CAIC,GACD,OAAO,SAASA,0BAA0B,EACxCC,MAAM,EACNC,aAAa,EAId;IACC,OAAOD,OAAOE,WAAW,CAACC,MAAM,CAAC,CAACC,KAAKC;QACrC,MAAMC,0BAA0BD,WAAWE,MAAM,CAACC,IAAI,CACpD,CAACC,QAAU,UAAUA,SAASA,MAAMC,IAAI,KAAK;QAG/CN,GAAG,CAACC,WAAWM,IAAI,CAAC,GAAGV,kBAAkB,SAAS,WAAW;QAE7D,IAAIK,yBAAyB;YAC3BF,GAAG,CAACC,WAAWM,IAAI,CAAC,GAAGL,wBAAwBM,IAAI,KAAK,WAAW,WAAW;QAChF;QAEA,OAAOR;IACT,GAAG,CAAC;AACN"}
|
|
@@ -196,4 +196,4 @@ export async function getEntityPolicies(args) {
|
|
|
196
196
|
return policies;
|
|
197
197
|
}
|
|
198
198
|
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZ2V0RW50aXR5UG9saWNpZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uUGVybWlzc2lvbiwgR2xvYmFsUGVybWlzc2lvbiB9IGZyb20gJy4uL2F1dGgvdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsIFR5cGVXaXRoSUQgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IEFjY2VzcyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcy5qcydcbmltcG9ydCB0eXBlIHsgRmllbGRBY2Nlc3MgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzLmpzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy90eXBlcy5qcydcbmltcG9ydCB0eXBlIHsgQWxsT3BlcmF0aW9ucywgRG9jdW1lbnQsIFBheWxvYWRSZXF1ZXN0LCBXaGVyZSB9IGZyb20gJy4uL3R5cGVzL2luZGV4LmpzJ1xuXG5pbXBvcnQgeyB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcy5qcydcblxudHlwZSBBcmdzID0ge1xuICBlbnRpdHk6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBTYW5pdGl6ZWRHbG9iYWxDb25maWdcbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgb3BlcmF0aW9uczogQWxsT3BlcmF0aW9uc1tdXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgdHlwZTogJ2NvbGxlY3Rpb24nIHwgJ2dsb2JhbCdcbn1cblxudHlwZSBSZXR1cm5UeXBlPFQgZXh0ZW5kcyBBcmdzPiA9IFRbJ3R5cGUnXSBleHRlbmRzICdnbG9iYWwnXG4gID8gR2xvYmFsUGVybWlzc2lvblxuICA6IENvbGxlY3Rpb25QZXJtaXNzaW9uXG5cbnR5cGUgQ3JlYXRlQWNjZXNzUHJvbWlzZSA9IChhcmdzOiB7XG4gIGFjY2VzczogQWNjZXNzIHwgRmllbGRBY2Nlc3NcbiAgYWNjZXNzTGV2ZWw6ICdlbnRpdHknIHwgJ2ZpZWxkJ1xuICBkaXNhYmxlV2hlcmU/OiBib29sZWFuXG4gIG9wZXJhdGlvbjogQWxsT3BlcmF0aW9uc1xuICBwb2xpY2llc09iajoge1xuICAgIFtrZXk6IHN0cmluZ106IGFueVxuICB9XG59KSA9PiBQcm9taXNlPHZvaWQ+XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFbnRpdHlQb2xpY2llczxUIGV4dGVuZHMgQXJncz4oYXJnczogVCk6IFByb21pc2U8UmV0dXJuVHlwZTxUPj4ge1xuICBjb25zdCB7IGlkLCBlbnRpdHksIG9wZXJhdGlvbnMsIHJlcSwgdHlwZSB9ID0gYXJnc1xuICBjb25zdCB7IGRhdGEsIHBheWxvYWQsIHVzZXIgfSA9IHJlcVxuICBjb25zdCBpc0xvZ2dlZEluID0gISF1c2VyXG5cbiAgY29uc3QgcG9saWNpZXMgPSB7XG4gICAgZmllbGRzOiB7fSxcbiAgfSBhcyBSZXR1cm5UeXBlPFQ+XG5cbiAgbGV0IGRvY0JlaW5nQWNjZXNzZWRcblxuICBhc3luYyBmdW5jdGlvbiBnZXRFbnRpdHlEb2MoeyB3aGVyZSB9OiB7IHdoZXJlPzogV2hlcmUgfSA9IHt9KTogUHJvbWlzZTxUeXBlV2l0aElEICYgRG9jdW1lbnQ+IHtcbiAgICBpZiAoZW50aXR5LnNsdWcpIHtcbiAgICAgIGlmICh0eXBlID09PSAnZ2xvYmFsJykge1xuICAgICAgICByZXR1cm4gcGF5bG9hZC5maW5kR2xvYmFsKHtcbiAgICAgICAgICBvdmVycmlkZUFjY2VzczogdHJ1ZSxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2x1ZzogZW50aXR5LnNsdWcsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlID09PSAnY29sbGVjdGlvbicgJiYgaWQpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aGVyZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBjb25zdCBwYWdpbmF0ZWRSZXMgPSBhd2FpdCBwYXlsb2FkLmZpbmQoe1xuICAgICAgICAgICAgY29sbGVjdGlvbjogZW50aXR5LnNsdWcsXG4gICAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICAgIGxpbWl0OiAxLFxuICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3M6IHRydWUsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICAgIC4uLndoZXJlLFxuICAgICAgICAgICAgICBhbmQ6IFtcbiAgICAgICAgICAgICAgICAuLi4od2hlcmUuYW5kIHx8IFtdKSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBpZDoge1xuICAgICAgICAgICAgICAgICAgICBlcXVhbHM6IGlkLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuXG4gICAgICAgICAgcmV0dXJuIHBhZ2luYXRlZFJlcz8uZG9jcz8uWzBdIHx8IHVuZGVmaW5lZFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBheWxvYWQuZmluZEJ5SUQoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIGNvbGxlY3Rpb246IGVudGl0eS5zbHVnLFxuICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgIG92ZXJyaWRlQWNjZXNzOiB0cnVlLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBjb25zdCBjcmVhdGVBY2Nlc3NQcm9taXNlOiBDcmVhdGVBY2Nlc3NQcm9taXNlID0gYXN5bmMgKHtcbiAgICBhY2Nlc3MsXG4gICAgYWNjZXNzTGV2ZWwsXG4gICAgZGlzYWJsZVdoZXJlID0gZmFsc2UsXG4gICAgb3BlcmF0aW9uLFxuICAgIHBvbGljaWVzT2JqLFxuICB9KSA9PiB7XG4gICAgY29uc3QgbXV0YWJsZVBvbGljaWVzID0gcG9saWNpZXNPYmpcblxuICAgIGlmIChhY2Nlc3NMZXZlbCA9PT0gJ2ZpZWxkJyAmJiBkb2NCZWluZ0FjY2Vzc2VkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIGFzc2lnbiBkb2NCZWluZ0FjY2Vzc2VkIGZpcnN0IGFzIHRoZSBwcm9taXNlIHRvIGF2b2lkIG11bHRpcGxlIGNhbGxzIHRvIGdldEVudGl0eURvY1xuICAgICAgZG9jQmVpbmdBY2Nlc3NlZCA9IGdldEVudGl0eURvYygpLnRoZW4oKGRvYykgPT4ge1xuICAgICAgICBkb2NCZWluZ0FjY2Vzc2VkID0gZG9jXG4gICAgICB9KVxuICAgIH1cbiAgICAvLyBhd2FpdGluZyB0aGUgcHJvbWlzZSB0byBlbnN1cmUgZG9jQmVpbmdBY2Nlc3NlZCBpcyBhc3NpZ25lZCBiZWZvcmUgaXQgaXMgdXNlZFxuICAgIGF3YWl0IGRvY0JlaW5nQWNjZXNzZWRcblxuICAgIC8vIGh0dHBzOi8vcGF5bG9hZGNtcy5zbGFjay5jb20vYXJjaGl2ZXMvQzA0OFo5QzJCRVgvcDE3MDIwNTQ5MjgzNDM3NjlcbiAgICBjb25zdCBhY2Nlc3NSZXN1bHQgPSBhd2FpdCBhY2Nlc3MoeyBpZCwgZGF0YSwgZG9jOiBkb2NCZWluZ0FjY2Vzc2VkLCByZXEgfSlcblxuICAgIGlmICh0eXBlb2YgYWNjZXNzUmVzdWx0ID09PSAnb2JqZWN0JyAmJiAhZGlzYWJsZVdoZXJlKSB7XG4gICAgICBtdXRhYmxlUG9saWNpZXNbb3BlcmF0aW9uXSA9IHtcbiAgICAgICAgcGVybWlzc2lvbjpcbiAgICAgICAgICBpZCB8fCB0eXBlID09PSAnZ2xvYmFsJyA/ICEhKGF3YWl0IGdldEVudGl0eURvYyh7IHdoZXJlOiBhY2Nlc3NSZXN1bHQgfSkpIDogdHJ1ZSxcbiAgICAgICAgd2hlcmU6IGFjY2Vzc1Jlc3VsdCxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG11dGFibGVQb2xpY2llc1tvcGVyYXRpb25dPy5wZXJtaXNzaW9uICE9PSBmYWxzZSkge1xuICAgICAgbXV0YWJsZVBvbGljaWVzW29wZXJhdGlvbl0gPSB7XG4gICAgICAgIHBlcm1pc3Npb246ICEhYWNjZXNzUmVzdWx0LFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGV4ZWN1dGVGaWVsZFBvbGljaWVzID0gYXN5bmMgKHsgZW50aXR5UGVybWlzc2lvbiwgZmllbGRzLCBvcGVyYXRpb24sIHBvbGljaWVzT2JqIH0pID0+IHtcbiAgICBjb25zdCBtdXRhYmxlUG9saWNpZXMgPSBwb2xpY2llc09iai5maWVsZHNcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgZmllbGRzLm1hcChhc3luYyAoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUpIHtcbiAgICAgICAgICBpZiAoIW11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXSkgbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdID0ge31cblxuICAgICAgICAgIGlmIChmaWVsZC5hY2Nlc3MgJiYgdHlwZW9mIGZpZWxkLmFjY2Vzc1tvcGVyYXRpb25dID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBhd2FpdCBjcmVhdGVBY2Nlc3NQcm9taXNlKHtcbiAgICAgICAgICAgICAgYWNjZXNzOiBmaWVsZC5hY2Nlc3Nbb3BlcmF0aW9uXSxcbiAgICAgICAgICAgICAgYWNjZXNzTGV2ZWw6ICdmaWVsZCcsXG4gICAgICAgICAgICAgIGRpc2FibGVXaGVyZTogdHJ1ZSxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICBwb2xpY2llc09iajogbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdW29wZXJhdGlvbl0gPSB7XG4gICAgICAgICAgICAgIHBlcm1pc3Npb246IHBvbGljaWVzT2JqW29wZXJhdGlvbl0/LnBlcm1pc3Npb24sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGZpZWxkLmZpZWxkcykge1xuICAgICAgICAgICAgaWYgKCFtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0uZmllbGRzKSBtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0uZmllbGRzID0ge31cblxuICAgICAgICAgICAgYXdhaXQgZXhlY3V0ZUZpZWxkUG9saWNpZXMoe1xuICAgICAgICAgICAgICBlbnRpdHlQZXJtaXNzaW9uLFxuICAgICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICBwb2xpY2llc09iajogbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoZmllbGQ/LmJsb2Nrcykge1xuICAgICAgICAgICAgaWYgKCFtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0/LmJsb2NrcykgbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdLmJsb2NrcyA9IHt9XG5cbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICBmaWVsZC5ibG9ja3MubWFwKGFzeW5jIChibG9jaykgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdLmJsb2Nrcz8uW2Jsb2NrLnNsdWddKSB7XG4gICAgICAgICAgICAgICAgICBtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0uYmxvY2tzW2Jsb2NrLnNsdWddID0ge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZHM6IHt9LFxuICAgICAgICAgICAgICAgICAgICBbb3BlcmF0aW9uXTogeyBwZXJtaXNzaW9uOiBlbnRpdHlQZXJtaXNzaW9uIH0sXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghbXV0YWJsZVBvbGljaWVzW2ZpZWxkLm5hbWVdLmJsb2Nrc1tibG9jay5zbHVnXVtvcGVyYXRpb25dKSB7XG4gICAgICAgICAgICAgICAgICBtdXRhYmxlUG9saWNpZXNbZmllbGQubmFtZV0uYmxvY2tzW2Jsb2NrLnNsdWddW29wZXJhdGlvbl0gPSB7XG4gICAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb246IGVudGl0eVBlcm1pc3Npb24sXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYXdhaXQgZXhlY3V0ZUZpZWxkUG9saWNpZXMoe1xuICAgICAgICAgICAgICAgICAgZW50aXR5UGVybWlzc2lvbixcbiAgICAgICAgICAgICAgICAgIGZpZWxkczogYmxvY2suZmllbGRzLFxuICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgICAgcG9saWNpZXNPYmo6IG11dGFibGVQb2xpY2llc1tmaWVsZC5uYW1lXS5ibG9ja3NbYmxvY2suc2x1Z10sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGZpZWxkLmZpZWxkcykge1xuICAgICAgICAgIGF3YWl0IGV4ZWN1dGVGaWVsZFBvbGljaWVzKHtcbiAgICAgICAgICAgIGVudGl0eVBlcm1pc3Npb24sXG4gICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgIHBvbGljaWVzT2JqLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSBpZiAoZmllbGQudHlwZSA9PT0gJ3RhYnMnKSB7XG4gICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBmaWVsZC50YWJzLm1hcChhc3luYyAodGFiKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0YWJIYXNOYW1lKHRhYikpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW11dGFibGVQb2xpY2llc1t0YWIubmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgIG11dGFibGVQb2xpY2llc1t0YWIubmFtZV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkczoge30sXG4gICAgICAgICAgICAgICAgICAgIFtvcGVyYXRpb25dOiB7IHBlcm1pc3Npb246IGVudGl0eVBlcm1pc3Npb24gfSxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFtdXRhYmxlUG9saWNpZXNbdGFiLm5hbWVdW29wZXJhdGlvbl0pIHtcbiAgICAgICAgICAgICAgICAgIG11dGFibGVQb2xpY2llc1t0YWIubmFtZV1bb3BlcmF0aW9uXSA9IHsgcGVybWlzc2lvbjogZW50aXR5UGVybWlzc2lvbiB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF3YWl0IGV4ZWN1dGVGaWVsZFBvbGljaWVzKHtcbiAgICAgICAgICAgICAgICAgIGVudGl0eVBlcm1pc3Npb24sXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IHRhYi5maWVsZHMsXG4gICAgICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgICBwb2xpY2llc09iajogbXV0YWJsZVBvbGljaWVzW3RhYi5uYW1lXSxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGF3YWl0IGV4ZWN1dGVGaWVsZFBvbGljaWVzKHtcbiAgICAgICAgICAgICAgICAgIGVudGl0eVBlcm1pc3Npb24sXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IHRhYi5maWVsZHMsXG4gICAgICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgICBwb2xpY2llc09iaixcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGF3YWl0IG9wZXJhdGlvbnMucmVkdWNlKGFzeW5jIChwcmlvck9wZXJhdGlvbiwgb3BlcmF0aW9uKSA9PiB7XG4gICAgYXdhaXQgcHJpb3JPcGVyYXRpb25cblxuICAgIGxldCBlbnRpdHlBY2Nlc3NQcm9taXNlOiBQcm9taXNlPHZvaWQ+XG5cbiAgICBpZiAodHlwZW9mIGVudGl0eS5hY2Nlc3Nbb3BlcmF0aW9uXSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgZW50aXR5QWNjZXNzUHJvbWlzZSA9IGNyZWF0ZUFjY2Vzc1Byb21pc2Uoe1xuICAgICAgICBhY2Nlc3M6IGVudGl0eS5hY2Nlc3Nbb3BlcmF0aW9uXSxcbiAgICAgICAgYWNjZXNzTGV2ZWw6ICdlbnRpdHknLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHBvbGljaWVzT2JqOiBwb2xpY2llcyxcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHBvbGljaWVzW29wZXJhdGlvbl0gPSB7XG4gICAgICAgIHBlcm1pc3Npb246IGlzTG9nZ2VkSW4sXG4gICAgICB9XG4gICAgfVxuXG4gICAgYXdhaXQgZW50aXR5QWNjZXNzUHJvbWlzZVxuXG4gICAgYXdhaXQgZXhlY3V0ZUZpZWxkUG9saWNpZXMoe1xuICAgICAgZW50aXR5UGVybWlzc2lvbjogcG9saWNpZXNbb3BlcmF0aW9uXS5wZXJtaXNzaW9uLFxuICAgICAgZmllbGRzOiBlbnRpdHkuZmllbGRzLFxuICAgICAgb3BlcmF0aW9uLFxuICAgICAgcG9saWNpZXNPYmo6IHBvbGljaWVzLFxuICAgIH0pXG4gIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gIHJldHVybiBwb2xpY2llc1xufVxuIl0sIm5hbWVzIjpbInRhYkhhc05hbWUiLCJnZXRFbnRpdHlQb2xpY2llcyIsImFyZ3MiLCJpZCIsImVudGl0eSIsIm9wZXJhdGlvbnMiLCJyZXEiLCJ0eXBlIiwiZGF0YSIsInBheWxvYWQiLCJ1c2VyIiwiaXNMb2dnZWRJbiIsInBvbGljaWVzIiwiZmllbGRzIiwiZG9jQmVpbmdBY2Nlc3NlZCIsImdldEVudGl0eURvYyIsIndoZXJlIiwic2x1ZyIsImZpbmRHbG9iYWwiLCJvdmVycmlkZUFjY2VzcyIsInBhZ2luYXRlZFJlcyIsImZpbmQiLCJjb2xsZWN0aW9uIiwiZGVwdGgiLCJsaW1pdCIsInBhZ2luYXRpb24iLCJhbmQiLCJlcXVhbHMiLCJkb2NzIiwidW5kZWZpbmVkIiwiZmluZEJ5SUQiLCJjcmVhdGVBY2Nlc3NQcm9taXNlIiwiYWNjZXNzIiwiYWNjZXNzTGV2ZWwiLCJkaXNhYmxlV2hlcmUiLCJvcGVyYXRpb24iLCJwb2xpY2llc09iaiIsIm11dGFibGVQb2xpY2llcyIsInRoZW4iLCJkb2MiLCJhY2Nlc3NSZXN1bHQiLCJwZXJtaXNzaW9uIiwiZXhlY3V0ZUZpZWxkUG9saWNpZXMiLCJlbnRpdHlQZXJtaXNzaW9uIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImZpZWxkIiwibmFtZSIsImJsb2NrcyIsImJsb2NrIiwidGFicyIsInRhYiIsInJlZHVjZSIsInByaW9yT3BlcmF0aW9uIiwiZW50aXR5QWNjZXNzUHJvbWlzZSIsInJlc29sdmUiXSwibWFwcGluZ3MiOiJBQU9BLFNBQVNBLFVBQVUsUUFBUSw0QkFBMkI7QUF3QnRELE9BQU8sZUFBZUMsa0JBQWtDQyxJQUFPO0lBQzdELE1BQU0sRUFBRUMsRUFBRSxFQUFFQyxNQUFNLEVBQUVDLFVBQVUsRUFBRUMsR0FBRyxFQUFFQyxJQUFJLEVBQUUsR0FBR0w7SUFDOUMsTUFBTSxFQUFFTSxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsSUFBSSxFQUFFLEdBQUdKO0lBQ2hDLE1BQU1LLGFBQWEsQ0FBQyxDQUFDRDtJQUVyQixNQUFNRSxXQUFXO1FBQ2ZDLFFBQVEsQ0FBQztJQUNYO0lBRUEsSUFBSUM7SUFFSixlQUFlQyxhQUFhLEVBQUVDLEtBQUssRUFBcUIsR0FBRyxDQUFDLENBQUM7UUFDM0QsSUFBSVosT0FBT2EsSUFBSSxFQUFFO1lBQ2YsSUFBSVYsU0FBUyxVQUFVO2dCQUNyQixPQUFPRSxRQUFRUyxVQUFVLENBQUM7b0JBQ3hCQyxnQkFBZ0I7b0JBQ2hCYjtvQkFDQVcsTUFBTWIsT0FBT2EsSUFBSTtnQkFDbkI7WUFDRjtZQUVBLElBQUlWLFNBQVMsZ0JBQWdCSixJQUFJO2dCQUMvQixJQUFJLE9BQU9hLFVBQVUsVUFBVTtvQkFDN0IsTUFBTUksZUFBZSxNQUFNWCxRQUFRWSxJQUFJLENBQUM7d0JBQ3RDQyxZQUFZbEIsT0FBT2EsSUFBSTt3QkFDdkJNLE9BQU87d0JBQ1BDLE9BQU87d0JBQ1BMLGdCQUFnQjt3QkFDaEJNLFlBQVk7d0JBQ1puQjt3QkFDQVUsT0FBTzs0QkFDTCxHQUFHQSxLQUFLOzRCQUNSVSxLQUFLO21DQUNDVixNQUFNVSxHQUFHLElBQUksRUFBRTtnQ0FDbkI7b0NBQ0V2QixJQUFJO3dDQUNGd0IsUUFBUXhCO29DQUNWO2dDQUNGOzZCQUNEO3dCQUNIO29CQUNGO29CQUVBLE9BQU9pQixjQUFjUSxNQUFNLENBQUMsRUFBRSxJQUFJQztnQkFDcEM7Z0JBRUEsT0FBT3BCLFFBQVFxQixRQUFRLENBQUM7b0JBQ3RCM0I7b0JBQ0FtQixZQUFZbEIsT0FBT2EsSUFBSTtvQkFDdkJNLE9BQU87b0JBQ1BKLGdCQUFnQjtvQkFDaEJiO2dCQUNGO1lBQ0Y7UUFDRjtRQUVBLE9BQU91QjtJQUNUO0lBRUEsTUFBTUUsc0JBQTJDLE9BQU8sRUFDdERDLE1BQU0sRUFDTkMsV0FBVyxFQUNYQyxlQUFlLEtBQUssRUFDcEJDLFNBQVMsRUFDVEMsV0FBVyxFQUNaO1FBQ0MsTUFBTUMsa0JBQWtCRDtRQUV4QixJQUFJSCxnQkFBZ0IsV0FBV25CLHFCQUFxQmUsV0FBVztZQUM3RCx1RkFBdUY7WUFDdkZmLG1CQUFtQkMsZUFBZXVCLElBQUksQ0FBQyxDQUFDQztnQkFDdEN6QixtQkFBbUJ5QjtZQUNyQjtRQUNGO1FBQ0EsZ0ZBQWdGO1FBQ2hGLE1BQU16QjtRQUVOLHNFQUFzRTtRQUN0RSxNQUFNMEIsZUFBZSxNQUFNUixPQUFPO1lBQUU3QjtZQUFJSztZQUFNK0IsS0FBS3pCO1lBQWtCUjtRQUFJO1FBRXpFLElBQUksT0FBT2tDLGlCQUFpQixZQUFZLENBQUNOLGNBQWM7WUFDckRHLGVBQWUsQ0FBQ0YsVUFBVSxHQUFHO2dCQUMzQk0sWUFDRXRDLE1BQU1JLFNBQVMsV0FBVyxDQUFDLENBQUUsTUFBTVEsYUFBYTtvQkFBRUMsT0FBT3dCO2dCQUFhLEtBQU07Z0JBQzlFeEIsT0FBT3dCO1lBQ1Q7UUFDRixPQUFPLElBQUlILGVBQWUsQ0FBQ0YsVUFBVSxFQUFFTSxlQUFlLE9BQU87WUFDM0RKLGVBQWUsQ0FBQ0YsVUFBVSxHQUFHO2dCQUMzQk0sWUFBWSxDQUFDLENBQUNEO1lBQ2hCO1FBQ0Y7SUFDRjtJQUVBLE1BQU1FLHVCQUF1QixPQUFPLEVBQUVDLGdCQUFnQixFQUFFOUIsTUFBTSxFQUFFc0IsU0FBUyxFQUFFQyxXQUFXLEVBQUU7UUFDdEYsTUFBTUMsa0JBQWtCRCxZQUFZdkIsTUFBTTtRQUUxQyxNQUFNK0IsUUFBUUMsR0FBRyxDQUNmaEMsT0FBT2lDLEdBQUcsQ0FBQyxPQUFPQztZQUNoQixJQUFJQSxNQUFNQyxJQUFJLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDWCxlQUFlLENBQUNVLE1BQU1DLElBQUksQ0FBQyxFQUFFWCxlQUFlLENBQUNVLE1BQU1DLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBRWpFLElBQUlELE1BQU1mLE1BQU0sSUFBSSxPQUFPZSxNQUFNZixNQUFNLENBQUNHLFVBQVUsS0FBSyxZQUFZO29CQUNqRSxNQUFNSixvQkFBb0I7d0JBQ3hCQyxRQUFRZSxNQUFNZixNQUFNLENBQUNHLFVBQVU7d0JBQy9CRixhQUFhO3dCQUNiQyxjQUFjO3dCQUNkQzt3QkFDQUMsYUFBYUMsZUFBZSxDQUFDVSxNQUFNQyxJQUFJLENBQUM7b0JBQzFDO2dCQUNGLE9BQU87b0JBQ0xYLGVBQWUsQ0FBQ1UsTUFBTUMsSUFBSSxDQUFDLENBQUNiLFVBQVUsR0FBRzt3QkFDdkNNLFlBQVlMLFdBQVcsQ0FBQ0QsVUFBVSxFQUFFTTtvQkFDdEM7Z0JBQ0Y7Z0JBRUEsSUFBSU0sTUFBTWxDLE1BQU0sRUFBRTtvQkFDaEIsSUFBSSxDQUFDd0IsZUFBZSxDQUFDVSxNQUFNQyxJQUFJLENBQUMsQ0FBQ25DLE1BQU0sRUFBRXdCLGVBQWUsQ0FBQ1UsTUFBTUMsSUFBSSxDQUFDLENBQUNuQyxNQUFNLEdBQUcsQ0FBQztvQkFFL0UsTUFBTTZCLHFCQUFxQjt3QkFDekJDO3dCQUNBOUIsUUFBUWtDLE1BQU1sQyxNQUFNO3dCQUNwQnNCO3dCQUNBQyxhQUFhQyxlQUFlLENBQUNVLE1BQU1DLElBQUksQ0FBQztvQkFDMUM7Z0JBQ0Y7Z0JBRUEsSUFBSUQsT0FBT0UsUUFBUTtvQkFDakIsSUFBSSxDQUFDWixlQUFlLENBQUNVLE1BQU1DLElBQUksQ0FBQyxFQUFFQyxRQUFRWixlQUFlLENBQUNVLE1BQU1DLElBQUksQ0FBQyxDQUFDQyxNQUFNLEdBQUcsQ0FBQztvQkFFaEYsTUFBTUwsUUFBUUMsR0FBRyxDQUNmRSxNQUFNRSxNQUFNLENBQUNILEdBQUcsQ0FBQyxPQUFPSTt3QkFDdEIsSUFBSSxDQUFDYixlQUFlLENBQUNVLE1BQU1DLElBQUksQ0FBQyxDQUFDQyxNQUFNLEVBQUUsQ0FBQ0MsTUFBTWpDLElBQUksQ0FBQyxFQUFFOzRCQUNyRG9CLGVBQWUsQ0FBQ1UsTUFBTUMsSUFBSSxDQUFDLENBQUNDLE1BQU0sQ0FBQ0MsTUFBTWpDLElBQUksQ0FBQyxHQUFHO2dDQUMvQ0osUUFBUSxDQUFDO2dDQUNULENBQUNzQixVQUFVLEVBQUU7b0NBQUVNLFlBQVlFO2dDQUFpQjs0QkFDOUM7d0JBQ0YsT0FBTyxJQUFJLENBQUNOLGVBQWUsQ0FBQ1UsTUFBTUMsSUFBSSxDQUFDLENBQUNDLE1BQU0sQ0FBQ0MsTUFBTWpDLElBQUksQ0FBQyxDQUFDa0IsVUFBVSxFQUFFOzRCQUNyRUUsZUFBZSxDQUFDVSxNQUFNQyxJQUFJLENBQUMsQ0FBQ0MsTUFBTSxDQUFDQyxNQUFNakMsSUFBSSxDQUFDLENBQUNrQixVQUFVLEdBQUc7Z0NBQzFETSxZQUFZRTs0QkFDZDt3QkFDRjt3QkFFQSxNQUFNRCxxQkFBcUI7NEJBQ3pCQzs0QkFDQTlCLFFBQVFxQyxNQUFNckMsTUFBTTs0QkFDcEJzQjs0QkFDQUMsYUFBYUMsZUFBZSxDQUFDVSxNQUFNQyxJQUFJLENBQUMsQ0FBQ0MsTUFBTSxDQUFDQyxNQUFNakMsSUFBSSxDQUFDO3dCQUM3RDtvQkFDRjtnQkFFSjtZQUNGLE9BQU8sSUFBSThCLE1BQU1sQyxNQUFNLEVBQUU7Z0JBQ3ZCLE1BQU02QixxQkFBcUI7b0JBQ3pCQztvQkFDQTlCLFFBQVFrQyxNQUFNbEMsTUFBTTtvQkFDcEJzQjtvQkFDQUM7Z0JBQ0Y7WUFDRixPQUFPLElBQUlXLE1BQU14QyxJQUFJLEtBQUssUUFBUTtnQkFDaEMsTUFBTXFDLFFBQVFDLEdBQUcsQ0FDZkUsTUFBTUksSUFBSSxDQUFDTCxHQUFHLENBQUMsT0FBT007b0JBQ3BCLElBQUlwRCxXQUFXb0QsTUFBTTt3QkFDbkIsSUFBSSxDQUFDZixlQUFlLENBQUNlLElBQUlKLElBQUksQ0FBQyxFQUFFOzRCQUM5QlgsZUFBZSxDQUFDZSxJQUFJSixJQUFJLENBQUMsR0FBRztnQ0FDMUJuQyxRQUFRLENBQUM7Z0NBQ1QsQ0FBQ3NCLFVBQVUsRUFBRTtvQ0FBRU0sWUFBWUU7Z0NBQWlCOzRCQUM5Qzt3QkFDRixPQUFPLElBQUksQ0FBQ04sZUFBZSxDQUFDZSxJQUFJSixJQUFJLENBQUMsQ0FBQ2IsVUFBVSxFQUFFOzRCQUNoREUsZUFBZSxDQUFDZSxJQUFJSixJQUFJLENBQUMsQ0FBQ2IsVUFBVSxHQUFHO2dDQUFFTSxZQUFZRTs0QkFBaUI7d0JBQ3hFO3dCQUNBLE1BQU1ELHFCQUFxQjs0QkFDekJDOzRCQUNBOUIsUUFBUXVDLElBQUl2QyxNQUFNOzRCQUNsQnNCOzRCQUNBQyxhQUFhQyxlQUFlLENBQUNlLElBQUlKLElBQUksQ0FBQzt3QkFDeEM7b0JBQ0YsT0FBTzt3QkFDTCxNQUFNTixxQkFBcUI7NEJBQ3pCQzs0QkFDQTlCLFFBQVF1QyxJQUFJdkMsTUFBTTs0QkFDbEJzQjs0QkFDQUM7d0JBQ0Y7b0JBQ0Y7Z0JBQ0Y7WUFFSjtRQUNGO0lBRUo7SUFFQSxNQUFNL0IsV0FBV2dELE1BQU0sQ0FBQyxPQUFPQyxnQkFBZ0JuQjtRQUM3QyxNQUFNbUI7UUFFTixJQUFJQztRQUVKLElBQUksT0FBT25ELE9BQU80QixNQUFNLENBQUNHLFVBQVUsS0FBSyxZQUFZO1lBQ2xEb0Isc0JBQXNCeEIsb0JBQW9CO2dCQUN4Q0MsUUFBUTVCLE9BQU80QixNQUFNLENBQUNHLFVBQVU7Z0JBQ2hDRixhQUFhO2dCQUNiRTtnQkFDQUMsYUFBYXhCO1lBQ2Y7UUFDRixPQUFPO1lBQ0xBLFFBQVEsQ0FBQ3VCLFVBQVUsR0FBRztnQkFDcEJNLFlBQVk5QjtZQUNkO1FBQ0Y7UUFFQSxNQUFNNEM7UUFFTixNQUFNYixxQkFBcUI7WUFDekJDLGtCQUFrQi9CLFFBQVEsQ0FBQ3VCLFVBQVUsQ0FBQ00sVUFBVTtZQUNoRDVCLFFBQVFULE9BQU9TLE1BQU07WUFDckJzQjtZQUNBQyxhQUFheEI7UUFDZjtJQUNGLEdBQUdnQyxRQUFRWSxPQUFPO0lBRWxCLE9BQU81QztBQUNUIn0=
|
|
199
|
+
//# sourceMappingURL=getEntityPolicies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getEntityPolicies.ts"],"sourcesContent":["import type { CollectionPermission, GlobalPermission } from '../auth/types.js'\nimport type { SanitizedCollectionConfig, TypeWithID } from '../collections/config/types.js'\nimport type { Access } from '../config/types.js'\nimport type { FieldAccess } from '../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\nimport type { AllOperations, Document, PayloadRequest, Where } from '../types/index.js'\n\nimport { tabHasName } from '../fields/config/types.js'\n\ntype Args = {\n entity: SanitizedCollectionConfig | SanitizedGlobalConfig\n id?: number | string\n operations: AllOperations[]\n req: PayloadRequest\n type: 'collection' | 'global'\n}\n\ntype ReturnType<T extends Args> = T['type'] extends 'global'\n ? GlobalPermission\n : CollectionPermission\n\ntype CreateAccessPromise = (args: {\n access: Access | FieldAccess\n accessLevel: 'entity' | 'field'\n disableWhere?: boolean\n operation: AllOperations\n policiesObj: {\n [key: string]: any\n }\n}) => Promise<void>\n\nexport async function getEntityPolicies<T extends Args>(args: T): Promise<ReturnType<T>> {\n const { id, entity, operations, req, type } = args\n const { data, payload, user } = req\n const isLoggedIn = !!user\n\n const policies = {\n fields: {},\n } as ReturnType<T>\n\n let docBeingAccessed\n\n async function getEntityDoc({ where }: { where?: Where } = {}): Promise<TypeWithID & Document> {\n if (entity.slug) {\n if (type === 'global') {\n return payload.findGlobal({\n overrideAccess: true,\n req,\n slug: entity.slug,\n })\n }\n\n if (type === 'collection' && id) {\n if (typeof where === 'object') {\n const paginatedRes = await payload.find({\n collection: entity.slug,\n depth: 0,\n limit: 1,\n overrideAccess: true,\n pagination: false,\n req,\n where: {\n ...where,\n and: [\n ...(where.and || []),\n {\n id: {\n equals: id,\n },\n },\n ],\n },\n })\n\n return paginatedRes?.docs?.[0] || undefined\n }\n\n return payload.findByID({\n id,\n collection: entity.slug,\n depth: 0,\n overrideAccess: true,\n req,\n })\n }\n }\n\n return undefined\n }\n\n const createAccessPromise: CreateAccessPromise = async ({\n access,\n accessLevel,\n disableWhere = false,\n operation,\n policiesObj,\n }) => {\n const mutablePolicies = policiesObj\n\n if (accessLevel === 'field' && docBeingAccessed === undefined) {\n // assign docBeingAccessed first as the promise to avoid multiple calls to getEntityDoc\n docBeingAccessed = getEntityDoc().then((doc) => {\n docBeingAccessed = doc\n })\n }\n // awaiting the promise to ensure docBeingAccessed is assigned before it is used\n await docBeingAccessed\n\n // https://payloadcms.slack.com/archives/C048Z9C2BEX/p1702054928343769\n const accessResult = await access({ id, data, doc: docBeingAccessed, req })\n\n if (typeof accessResult === 'object' && !disableWhere) {\n mutablePolicies[operation] = {\n permission:\n id || type === 'global' ? !!(await getEntityDoc({ where: accessResult })) : true,\n where: accessResult,\n }\n } else if (mutablePolicies[operation]?.permission !== false) {\n mutablePolicies[operation] = {\n permission: !!accessResult,\n }\n }\n }\n\n const executeFieldPolicies = async ({ entityPermission, fields, operation, policiesObj }) => {\n const mutablePolicies = policiesObj.fields\n\n await Promise.all(\n fields.map(async (field) => {\n if (field.name) {\n if (!mutablePolicies[field.name]) mutablePolicies[field.name] = {}\n\n if (field.access && typeof field.access[operation] === 'function') {\n await createAccessPromise({\n access: field.access[operation],\n accessLevel: 'field',\n disableWhere: true,\n operation,\n policiesObj: mutablePolicies[field.name],\n })\n } else {\n mutablePolicies[field.name][operation] = {\n permission: policiesObj[operation]?.permission,\n }\n }\n\n if (field.fields) {\n if (!mutablePolicies[field.name].fields) mutablePolicies[field.name].fields = {}\n\n await executeFieldPolicies({\n entityPermission,\n fields: field.fields,\n operation,\n policiesObj: mutablePolicies[field.name],\n })\n }\n\n if (field?.blocks) {\n if (!mutablePolicies[field.name]?.blocks) mutablePolicies[field.name].blocks = {}\n\n await Promise.all(\n field.blocks.map(async (block) => {\n if (!mutablePolicies[field.name].blocks?.[block.slug]) {\n mutablePolicies[field.name].blocks[block.slug] = {\n fields: {},\n [operation]: { permission: entityPermission },\n }\n } else if (!mutablePolicies[field.name].blocks[block.slug][operation]) {\n mutablePolicies[field.name].blocks[block.slug][operation] = {\n permission: entityPermission,\n }\n }\n\n await executeFieldPolicies({\n entityPermission,\n fields: block.fields,\n operation,\n policiesObj: mutablePolicies[field.name].blocks[block.slug],\n })\n }),\n )\n }\n } else if (field.fields) {\n await executeFieldPolicies({\n entityPermission,\n fields: field.fields,\n operation,\n policiesObj,\n })\n } else if (field.type === 'tabs') {\n await Promise.all(\n field.tabs.map(async (tab) => {\n if (tabHasName(tab)) {\n if (!mutablePolicies[tab.name]) {\n mutablePolicies[tab.name] = {\n fields: {},\n [operation]: { permission: entityPermission },\n }\n } else if (!mutablePolicies[tab.name][operation]) {\n mutablePolicies[tab.name][operation] = { permission: entityPermission }\n }\n await executeFieldPolicies({\n entityPermission,\n fields: tab.fields,\n operation,\n policiesObj: mutablePolicies[tab.name],\n })\n } else {\n await executeFieldPolicies({\n entityPermission,\n fields: tab.fields,\n operation,\n policiesObj,\n })\n }\n }),\n )\n }\n }),\n )\n }\n\n await operations.reduce(async (priorOperation, operation) => {\n await priorOperation\n\n let entityAccessPromise: Promise<void>\n\n if (typeof entity.access[operation] === 'function') {\n entityAccessPromise = createAccessPromise({\n access: entity.access[operation],\n accessLevel: 'entity',\n operation,\n policiesObj: policies,\n })\n } else {\n policies[operation] = {\n permission: isLoggedIn,\n }\n }\n\n await entityAccessPromise\n\n await executeFieldPolicies({\n entityPermission: policies[operation].permission,\n fields: entity.fields,\n operation,\n policiesObj: policies,\n })\n }, Promise.resolve())\n\n return policies\n}\n"],"names":["tabHasName","getEntityPolicies","args","id","entity","operations","req","type","data","payload","user","isLoggedIn","policies","fields","docBeingAccessed","getEntityDoc","where","slug","findGlobal","overrideAccess","paginatedRes","find","collection","depth","limit","pagination","and","equals","docs","undefined","findByID","createAccessPromise","access","accessLevel","disableWhere","operation","policiesObj","mutablePolicies","then","doc","accessResult","permission","executeFieldPolicies","entityPermission","Promise","all","map","field","name","blocks","block","tabs","tab","reduce","priorOperation","entityAccessPromise","resolve"],"mappings":"AAOA,SAASA,UAAU,QAAQ,4BAA2B;AAwBtD,OAAO,eAAeC,kBAAkCC,IAAO;IAC7D,MAAM,EAAEC,EAAE,EAAEC,MAAM,EAAEC,UAAU,EAAEC,GAAG,EAAEC,IAAI,EAAE,GAAGL;IAC9C,MAAM,EAAEM,IAAI,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAGJ;IAChC,MAAMK,aAAa,CAAC,CAACD;IAErB,MAAME,WAAW;QACfC,QAAQ,CAAC;IACX;IAEA,IAAIC;IAEJ,eAAeC,aAAa,EAAEC,KAAK,EAAqB,GAAG,CAAC,CAAC;QAC3D,IAAIZ,OAAOa,IAAI,EAAE;YACf,IAAIV,SAAS,UAAU;gBACrB,OAAOE,QAAQS,UAAU,CAAC;oBACxBC,gBAAgB;oBAChBb;oBACAW,MAAMb,OAAOa,IAAI;gBACnB;YACF;YAEA,IAAIV,SAAS,gBAAgBJ,IAAI;gBAC/B,IAAI,OAAOa,UAAU,UAAU;oBAC7B,MAAMI,eAAe,MAAMX,QAAQY,IAAI,CAAC;wBACtCC,YAAYlB,OAAOa,IAAI;wBACvBM,OAAO;wBACPC,OAAO;wBACPL,gBAAgB;wBAChBM,YAAY;wBACZnB;wBACAU,OAAO;4BACL,GAAGA,KAAK;4BACRU,KAAK;mCACCV,MAAMU,GAAG,IAAI,EAAE;gCACnB;oCACEvB,IAAI;wCACFwB,QAAQxB;oCACV;gCACF;6BACD;wBACH;oBACF;oBAEA,OAAOiB,cAAcQ,MAAM,CAAC,EAAE,IAAIC;gBACpC;gBAEA,OAAOpB,QAAQqB,QAAQ,CAAC;oBACtB3B;oBACAmB,YAAYlB,OAAOa,IAAI;oBACvBM,OAAO;oBACPJ,gBAAgB;oBAChBb;gBACF;YACF;QACF;QAEA,OAAOuB;IACT;IAEA,MAAME,sBAA2C,OAAO,EACtDC,MAAM,EACNC,WAAW,EACXC,eAAe,KAAK,EACpBC,SAAS,EACTC,WAAW,EACZ;QACC,MAAMC,kBAAkBD;QAExB,IAAIH,gBAAgB,WAAWnB,qBAAqBe,WAAW;YAC7D,uFAAuF;YACvFf,mBAAmBC,eAAeuB,IAAI,CAAC,CAACC;gBACtCzB,mBAAmByB;YACrB;QACF;QACA,gFAAgF;QAChF,MAAMzB;QAEN,sEAAsE;QACtE,MAAM0B,eAAe,MAAMR,OAAO;YAAE7B;YAAIK;YAAM+B,KAAKzB;YAAkBR;QAAI;QAEzE,IAAI,OAAOkC,iBAAiB,YAAY,CAACN,cAAc;YACrDG,eAAe,CAACF,UAAU,GAAG;gBAC3BM,YACEtC,MAAMI,SAAS,WAAW,CAAC,CAAE,MAAMQ,aAAa;oBAAEC,OAAOwB;gBAAa,KAAM;gBAC9ExB,OAAOwB;YACT;QACF,OAAO,IAAIH,eAAe,CAACF,UAAU,EAAEM,eAAe,OAAO;YAC3DJ,eAAe,CAACF,UAAU,GAAG;gBAC3BM,YAAY,CAAC,CAACD;YAChB;QACF;IACF;IAEA,MAAME,uBAAuB,OAAO,EAAEC,gBAAgB,EAAE9B,MAAM,EAAEsB,SAAS,EAAEC,WAAW,EAAE;QACtF,MAAMC,kBAAkBD,YAAYvB,MAAM;QAE1C,MAAM+B,QAAQC,GAAG,CACfhC,OAAOiC,GAAG,CAAC,OAAOC;YAChB,IAAIA,MAAMC,IAAI,EAAE;gBACd,IAAI,CAACX,eAAe,CAACU,MAAMC,IAAI,CAAC,EAAEX,eAAe,CAACU,MAAMC,IAAI,CAAC,GAAG,CAAC;gBAEjE,IAAID,MAAMf,MAAM,IAAI,OAAOe,MAAMf,MAAM,CAACG,UAAU,KAAK,YAAY;oBACjE,MAAMJ,oBAAoB;wBACxBC,QAAQe,MAAMf,MAAM,CAACG,UAAU;wBAC/BF,aAAa;wBACbC,cAAc;wBACdC;wBACAC,aAAaC,eAAe,CAACU,MAAMC,IAAI,CAAC;oBAC1C;gBACF,OAAO;oBACLX,eAAe,CAACU,MAAMC,IAAI,CAAC,CAACb,UAAU,GAAG;wBACvCM,YAAYL,WAAW,CAACD,UAAU,EAAEM;oBACtC;gBACF;gBAEA,IAAIM,MAAMlC,MAAM,EAAE;oBAChB,IAAI,CAACwB,eAAe,CAACU,MAAMC,IAAI,CAAC,CAACnC,MAAM,EAAEwB,eAAe,CAACU,MAAMC,IAAI,CAAC,CAACnC,MAAM,GAAG,CAAC;oBAE/E,MAAM6B,qBAAqB;wBACzBC;wBACA9B,QAAQkC,MAAMlC,MAAM;wBACpBsB;wBACAC,aAAaC,eAAe,CAACU,MAAMC,IAAI,CAAC;oBAC1C;gBACF;gBAEA,IAAID,OAAOE,QAAQ;oBACjB,IAAI,CAACZ,eAAe,CAACU,MAAMC,IAAI,CAAC,EAAEC,QAAQZ,eAAe,CAACU,MAAMC,IAAI,CAAC,CAACC,MAAM,GAAG,CAAC;oBAEhF,MAAML,QAAQC,GAAG,CACfE,MAAME,MAAM,CAACH,GAAG,CAAC,OAAOI;wBACtB,IAAI,CAACb,eAAe,CAACU,MAAMC,IAAI,CAAC,CAACC,MAAM,EAAE,CAACC,MAAMjC,IAAI,CAAC,EAAE;4BACrDoB,eAAe,CAACU,MAAMC,IAAI,CAAC,CAACC,MAAM,CAACC,MAAMjC,IAAI,CAAC,GAAG;gCAC/CJ,QAAQ,CAAC;gCACT,CAACsB,UAAU,EAAE;oCAAEM,YAAYE;gCAAiB;4BAC9C;wBACF,OAAO,IAAI,CAACN,eAAe,CAACU,MAAMC,IAAI,CAAC,CAACC,MAAM,CAACC,MAAMjC,IAAI,CAAC,CAACkB,UAAU,EAAE;4BACrEE,eAAe,CAACU,MAAMC,IAAI,CAAC,CAACC,MAAM,CAACC,MAAMjC,IAAI,CAAC,CAACkB,UAAU,GAAG;gCAC1DM,YAAYE;4BACd;wBACF;wBAEA,MAAMD,qBAAqB;4BACzBC;4BACA9B,QAAQqC,MAAMrC,MAAM;4BACpBsB;4BACAC,aAAaC,eAAe,CAACU,MAAMC,IAAI,CAAC,CAACC,MAAM,CAACC,MAAMjC,IAAI,CAAC;wBAC7D;oBACF;gBAEJ;YACF,OAAO,IAAI8B,MAAMlC,MAAM,EAAE;gBACvB,MAAM6B,qBAAqB;oBACzBC;oBACA9B,QAAQkC,MAAMlC,MAAM;oBACpBsB;oBACAC;gBACF;YACF,OAAO,IAAIW,MAAMxC,IAAI,KAAK,QAAQ;gBAChC,MAAMqC,QAAQC,GAAG,CACfE,MAAMI,IAAI,CAACL,GAAG,CAAC,OAAOM;oBACpB,IAAIpD,WAAWoD,MAAM;wBACnB,IAAI,CAACf,eAAe,CAACe,IAAIJ,IAAI,CAAC,EAAE;4BAC9BX,eAAe,CAACe,IAAIJ,IAAI,CAAC,GAAG;gCAC1BnC,QAAQ,CAAC;gCACT,CAACsB,UAAU,EAAE;oCAAEM,YAAYE;gCAAiB;4BAC9C;wBACF,OAAO,IAAI,CAACN,eAAe,CAACe,IAAIJ,IAAI,CAAC,CAACb,UAAU,EAAE;4BAChDE,eAAe,CAACe,IAAIJ,IAAI,CAAC,CAACb,UAAU,GAAG;gCAAEM,YAAYE;4BAAiB;wBACxE;wBACA,MAAMD,qBAAqB;4BACzBC;4BACA9B,QAAQuC,IAAIvC,MAAM;4BAClBsB;4BACAC,aAAaC,eAAe,CAACe,IAAIJ,IAAI,CAAC;wBACxC;oBACF,OAAO;wBACL,MAAMN,qBAAqB;4BACzBC;4BACA9B,QAAQuC,IAAIvC,MAAM;4BAClBsB;4BACAC;wBACF;oBACF;gBACF;YAEJ;QACF;IAEJ;IAEA,MAAM/B,WAAWgD,MAAM,CAAC,OAAOC,gBAAgBnB;QAC7C,MAAMmB;QAEN,IAAIC;QAEJ,IAAI,OAAOnD,OAAO4B,MAAM,CAACG,UAAU,KAAK,YAAY;YAClDoB,sBAAsBxB,oBAAoB;gBACxCC,QAAQ5B,OAAO4B,MAAM,CAACG,UAAU;gBAChCF,aAAa;gBACbE;gBACAC,aAAaxB;YACf;QACF,OAAO;YACLA,QAAQ,CAACuB,UAAU,GAAG;gBACpBM,YAAY9B;YACd;QACF;QAEA,MAAM4C;QAEN,MAAMb,qBAAqB;YACzBC,kBAAkB/B,QAAQ,CAACuB,UAAU,CAACM,UAAU;YAChD5B,QAAQT,OAAOS,MAAM;YACrBsB;YACAC,aAAaxB;QACf;IACF,GAAGgC,QAAQY,OAAO;IAElB,OAAO5C;AACT"}
|
|
@@ -5,4 +5,4 @@ export const getIDType = (idField, defaultIDType)=>{
|
|
|
5
5
|
return defaultIDType || 'ObjectID';
|
|
6
6
|
};
|
|
7
7
|
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=getIDType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getIDType.ts"],"sourcesContent":["import type { BaseDatabaseAdapter } from '../database/types.js'\nimport type { Field } from '../fields/config/types.js'\n\nexport const getIDType = (\n idField: Field | null,\n defaultIDType: BaseDatabaseAdapter['defaultIDType'] | null,\n): 'ObjectID' | 'number' | 'text' => {\n if (idField) {\n return idField.type === 'number' ? 'number' : 'text'\n }\n return defaultIDType || 'ObjectID'\n}\n"],"names":["getIDType","idField","defaultIDType","type"],"mappings":"AAGA,OAAO,MAAMA,YAAY,CACvBC,SACAC;IAEA,IAAID,SAAS;QACX,OAAOA,QAAQE,IAAI,KAAK,WAAW,WAAW;IAChD;IACA,OAAOD,iBAAiB;AAC1B,EAAC"}
|
|
@@ -4,4 +4,4 @@ export const getObjectDotNotation = (obj, path, defaultValue)=>{
|
|
|
4
4
|
return result === undefined ? defaultValue : result;
|
|
5
5
|
};
|
|
6
6
|
|
|
7
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=getObjectDotNotation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getObjectDotNotation.ts"],"sourcesContent":["export const getObjectDotNotation = <T>(\n obj: Record<string, unknown>,\n path: string,\n defaultValue?: T,\n): T => {\n if (!path || !obj) return defaultValue\n const result = path.split('.').reduce((o, i) => o?.[i], obj)\n return result === undefined ? defaultValue : (result as T)\n}\n"],"names":["getObjectDotNotation","obj","path","defaultValue","result","split","reduce","o","i","undefined"],"mappings":"AAAA,OAAO,MAAMA,uBAAuB,CAClCC,KACAC,MACAC;IAEA,IAAI,CAACD,QAAQ,CAACD,KAAK,OAAOE;IAC1B,MAAMC,SAASF,KAAKG,KAAK,CAAC,KAAKC,MAAM,CAAC,CAACC,GAAGC,IAAMD,GAAG,CAACC,EAAE,EAAEP;IACxD,OAAOG,WAAWK,YAAYN,eAAgBC;AAChD,EAAC"}
|
|
@@ -7,4 +7,4 @@ export default function getUniqueListBy(arr, key) {
|
|
|
7
7
|
];
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=getUniqueListBy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/getUniqueListBy.ts"],"sourcesContent":["export default function getUniqueListBy<T>(arr: T[], key: string): T[] {\n return [...new Map(arr.map((item) => [item[key], item])).values()]\n}\n"],"names":["getUniqueListBy","arr","key","Map","map","item","values"],"mappings":"AAAA,eAAe,SAASA,gBAAmBC,GAAQ,EAAEC,GAAW;IAC9D,OAAO;WAAI,IAAIC,IAAIF,IAAIG,GAAG,CAAC,CAACC,OAAS;gBAACA,IAAI,CAACH,IAAI;gBAAEG;aAAK,GAAGC,MAAM;KAAG;AACpE"}
|
|
@@ -26,4 +26,4 @@
|
|
|
26
26
|
return false;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=initTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/initTransaction.ts"],"sourcesContent":["import type { PayloadRequest } from '../types/index.js'\n\n/**\n * Starts a new transaction using the db adapter with a random id and then assigns it to the req.transaction\n * @returns true if beginning a transaction and false when req already has a transaction to use\n */\nexport async function initTransaction(req: PayloadRequest): Promise<boolean> {\n const { payload, transactionID, transactionIDPromise } = req\n if (transactionID) {\n // we already have a transaction, we're not in charge of committing it\n return false\n }\n if (transactionIDPromise) {\n // wait for whoever else is already creating the transaction\n await transactionIDPromise\n return false\n }\n if (typeof payload.db.beginTransaction === 'function') {\n // create a new transaction\n req.transactionIDPromise = payload.db.beginTransaction().then((transactionID) => {\n if (transactionID) {\n req.transactionID = transactionID\n }\n delete req.transactionIDPromise\n })\n await req.transactionIDPromise\n return !!req.transactionID\n }\n return false\n}\n"],"names":["initTransaction","req","payload","transactionID","transactionIDPromise","db","beginTransaction","then"],"mappings":"AAEA;;;CAGC,GACD,OAAO,eAAeA,gBAAgBC,GAAmB;IACvD,MAAM,EAAEC,OAAO,EAAEC,aAAa,EAAEC,oBAAoB,EAAE,GAAGH;IACzD,IAAIE,eAAe;QACjB,sEAAsE;QACtE,OAAO;IACT;IACA,IAAIC,sBAAsB;QACxB,4DAA4D;QAC5D,MAAMA;QACN,OAAO;IACT;IACA,IAAI,OAAOF,QAAQG,EAAE,CAACC,gBAAgB,KAAK,YAAY;QACrD,2BAA2B;QAC3BL,IAAIG,oBAAoB,GAAGF,QAAQG,EAAE,CAACC,gBAAgB,GAAGC,IAAI,CAAC,CAACJ;YAC7D,IAAIA,eAAe;gBACjBF,IAAIE,aAAa,GAAGA;YACtB;YACA,OAAOF,IAAIG,oBAAoB;QACjC;QACA,MAAMH,IAAIG,oBAAoB;QAC9B,OAAO,CAAC,CAACH,IAAIE,aAAa;IAC5B;IACA,OAAO;AACT"}
|
|
@@ -4,4 +4,4 @@ export const isEntityHidden = ({ hidden, user })=>{
|
|
|
4
4
|
}) : hidden === true;
|
|
5
5
|
};
|
|
6
6
|
|
|
7
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=isEntityHidden.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/isEntityHidden.ts"],"sourcesContent":["import type { User } from 'payload/auth'\n\nimport type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\n\nexport const isEntityHidden = ({\n hidden,\n user,\n}: {\n hidden: SanitizedCollectionConfig['admin']['hidden'] | SanitizedGlobalConfig['admin']['hidden']\n user: User\n}) => {\n return typeof hidden === 'function' ? hidden({ user }) : hidden === true\n}\n"],"names":["isEntityHidden","hidden","user"],"mappings":"AAKA,OAAO,MAAMA,iBAAiB,CAAC,EAC7BC,MAAM,EACNC,IAAI,EAIL;IACC,OAAO,OAAOD,WAAW,aAAaA,OAAO;QAAEC;IAAK,KAAKD,WAAW;AACtE,EAAC"}
|
|
@@ -5,4 +5,4 @@ export function isNumber(value) {
|
|
|
5
5
|
return !Number.isNaN(Number(value));
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
//# sourceMappingURL=
|
|
8
|
+
//# sourceMappingURL=isNumber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/isNumber.ts"],"sourcesContent":["export function isNumber(value: unknown): value is number {\n if (value === null || value === undefined || (typeof value === 'string' && value.trim() === '')) {\n return false\n }\n\n return !Number.isNaN(Number(value))\n}\n"],"names":["isNumber","value","undefined","trim","Number","isNaN"],"mappings":"AAAA,OAAO,SAASA,SAASC,KAAc;IACrC,IAAIA,UAAU,QAAQA,UAAUC,aAAc,OAAOD,UAAU,YAAYA,MAAME,IAAI,OAAO,IAAK;QAC/F,OAAO;IACT;IAEA,OAAO,CAACC,OAAOC,KAAK,CAACD,OAAOH;AAC9B"}
|
|
@@ -22,4 +22,4 @@ export function isPlainObject(o) {
|
|
|
22
22
|
return true;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
//# sourceMappingURL=
|
|
25
|
+
//# sourceMappingURL=isPlainObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/isPlainObject.ts"],"sourcesContent":["function isObject(o: unknown): boolean {\n return Object.prototype.toString.call(o) === '[object Object]'\n}\n\nexport function isPlainObject(o: unknown): boolean {\n // Is this a React component?\n if (typeof o === 'object' && '$$typeof' in o && typeof o.$$typeof === 'symbol') {\n return false\n }\n\n if (isObject(o) === false) return false\n\n // If has modified constructor\n const ctor = o.constructor\n if (ctor === undefined) return true\n\n // If has modified prototype\n const prot = ctor.prototype\n if (isObject(prot) === false) return false\n\n // If constructor does not have an Object-specific method\n // eslint-disable-next-line no-prototype-builtins\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false\n }\n\n // Most likely a plain Object\n return true\n}\n"],"names":["isObject","o","Object","prototype","toString","call","isPlainObject","$$typeof","ctor","constructor","undefined","prot","hasOwnProperty"],"mappings":"AAAA,SAASA,SAASC,CAAU;IAC1B,OAAOC,OAAOC,SAAS,CAACC,QAAQ,CAACC,IAAI,CAACJ,OAAO;AAC/C;AAEA,OAAO,SAASK,cAAcL,CAAU;IACtC,6BAA6B;IAC7B,IAAI,OAAOA,MAAM,YAAY,cAAcA,KAAK,OAAOA,EAAEM,QAAQ,KAAK,UAAU;QAC9E,OAAO;IACT;IAEA,IAAIP,SAASC,OAAO,OAAO,OAAO;IAElC,8BAA8B;IAC9B,MAAMO,OAAOP,EAAEQ,WAAW;IAC1B,IAAID,SAASE,WAAW,OAAO;IAE/B,4BAA4B;IAC5B,MAAMC,OAAOH,KAAKL,SAAS;IAC3B,IAAIH,SAASW,UAAU,OAAO,OAAO;IAErC,yDAAyD;IACzD,iDAAiD;IACjD,IAAIA,KAAKC,cAAc,CAAC,qBAAqB,OAAO;QAClD,OAAO;IACT;IAEA,6BAA6B;IAC7B,OAAO;AACT"}
|
|
@@ -17,4 +17,4 @@ export const isValidID = (value, type)=>{
|
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
//# sourceMappingURL=
|
|
20
|
+
//# sourceMappingURL=isValidID.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/isValidID.ts"],"sourcesContent":["import ObjectIdImport from 'bson-objectid'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport const isValidID = (\n value: number | string,\n type: 'ObjectID' | 'number' | 'text',\n): boolean => {\n if (type === 'text' && value) {\n if (['object', 'string'].includes(typeof value)) {\n const isObjectID = ObjectId.isValid(value as string)\n return typeof value === 'string' || isObjectID\n }\n return false\n }\n\n if (typeof value === 'number' && !Number.isNaN(value)) return true\n\n if (type === 'ObjectID') {\n return ObjectId.isValid(String(value))\n }\n}\n"],"names":["ObjectIdImport","ObjectId","default","isValidID","value","type","includes","isObjectID","isValid","Number","isNaN","String"],"mappings":"AAAA,OAAOA,oBAAoB,gBAAe;AAE1C,MAAMC,WAAYD,eAAeE,OAAO,IACtCF;AAEF,OAAO,MAAMG,YAAY,CACvBC,OACAC;IAEA,IAAIA,SAAS,UAAUD,OAAO;QAC5B,IAAI;YAAC;YAAU;SAAS,CAACE,QAAQ,CAAC,OAAOF,QAAQ;YAC/C,MAAMG,aAAaN,SAASO,OAAO,CAACJ;YACpC,OAAO,OAAOA,UAAU,YAAYG;QACtC;QACA,OAAO;IACT;IAEA,IAAI,OAAOH,UAAU,YAAY,CAACK,OAAOC,KAAK,CAACN,QAAQ,OAAO;IAE9D,IAAIC,SAAS,YAAY;QACvB,OAAOJ,SAASO,OAAO,CAACG,OAAOP;IACjC;AACF,EAAC"}
|
|
@@ -25,4 +25,4 @@
|
|
|
25
25
|
return new Proxy(object, handler);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=isolateObjectProperty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/isolateObjectProperty.ts"],"sourcesContent":["/**\n * Creates a proxy for the given object that has its own property\n */\nexport default function isolateObjectProperty<T>(object: T, key): T {\n const delegate = {}\n const handler = {\n deleteProperty(target, p): boolean {\n return Reflect.deleteProperty(p === key ? delegate : target, p)\n },\n get(target, p, receiver) {\n return Reflect.get(p === key ? delegate : target, p, receiver)\n },\n has(target, p) {\n return Reflect.has(p === key ? delegate : target, p)\n },\n set(target, p, newValue, receiver) {\n if (p === key) {\n // in case of transactionID we must ignore any receiver, because\n // \"If provided and target does not have a setter for propertyKey, the property will be set on receiver instead.\"\n return Reflect.set(delegate, p, newValue)\n } else {\n return Reflect.set(target, p, newValue, receiver)\n }\n },\n }\n return new Proxy(object, handler)\n}\n"],"names":["isolateObjectProperty","object","key","delegate","handler","deleteProperty","target","p","Reflect","get","receiver","has","set","newValue","Proxy"],"mappings":"AAAA;;CAEC,GACD,eAAe,SAASA,sBAAyBC,MAAS,EAAEC,GAAG;IAC7D,MAAMC,WAAW,CAAC;IAClB,MAAMC,UAAU;QACdC,gBAAeC,MAAM,EAAEC,CAAC;YACtB,OAAOC,QAAQH,cAAc,CAACE,MAAML,MAAMC,WAAWG,QAAQC;QAC/D;QACAE,KAAIH,MAAM,EAAEC,CAAC,EAAEG,QAAQ;YACrB,OAAOF,QAAQC,GAAG,CAACF,MAAML,MAAMC,WAAWG,QAAQC,GAAGG;QACvD;QACAC,KAAIL,MAAM,EAAEC,CAAC;YACX,OAAOC,QAAQG,GAAG,CAACJ,MAAML,MAAMC,WAAWG,QAAQC;QACpD;QACAK,KAAIN,MAAM,EAAEC,CAAC,EAAEM,QAAQ,EAAEH,QAAQ;YAC/B,IAAIH,MAAML,KAAK;gBACb,gEAAgE;gBAChE,iHAAiH;gBACjH,OAAOM,QAAQI,GAAG,CAACT,UAAUI,GAAGM;YAClC,OAAO;gBACL,OAAOL,QAAQI,GAAG,CAACN,QAAQC,GAAGM,UAAUH;YAC1C;QACF;IACF;IACA,OAAO,IAAII,MAAMb,QAAQG;AAC3B"}
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=killTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/killTransaction.ts"],"sourcesContent":["import type { PayloadRequest } from '../types/index.js'\n\n/**\n * Rollback the transaction from the req using the db adapter and removes it from the req\n */\nexport async function killTransaction(req: PayloadRequest): Promise<void> {\n const { payload, transactionID } = req\n if (transactionID) {\n await payload.db.rollbackTransaction(req.transactionID)\n delete req.transactionID\n }\n}\n"],"names":["killTransaction","req","payload","transactionID","db","rollbackTransaction"],"mappings":"AAEA;;CAEC,GACD,OAAO,eAAeA,gBAAgBC,GAAmB;IACvD,MAAM,EAAEC,OAAO,EAAEC,aAAa,EAAE,GAAGF;IACnC,IAAIE,eAAe;QACjB,MAAMD,QAAQE,EAAE,CAACC,mBAAmB,CAACJ,IAAIE,aAAa;QACtD,OAAOF,IAAIE,aAAa;IAC1B;AACF"}
|
package/dist/utilities/logger.js
CHANGED
|
@@ -30,4 +30,4 @@ const getLogger = (name = 'payload', options, destination)=>{
|
|
|
30
30
|
};
|
|
31
31
|
export default getLogger;
|
|
32
32
|
|
|
33
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/logger.ts"],"sourcesContent":["import pinoImport from 'pino'\nimport pinoPrettyImport from 'pino-pretty'\n\nconst pino = (pinoImport.default || pinoImport) as unknown as typeof pinoImport.default\nconst pinoPretty = (pinoPrettyImport.default ||\n pinoPrettyImport) as unknown as typeof pinoPrettyImport.default\n\nexport type PayloadLogger = pinoImport.default.Logger\n\nconst prettyOptions = {\n colorize: true,\n ignore: 'pid,hostname',\n translateTime: 'SYS:HH:MM:ss',\n}\n\nexport const defaultLoggerOptions: pinoImport.default.LoggerOptions = {\n transport: {\n options: prettyOptions,\n target: 'pino-pretty',\n },\n}\n\nexport const prettySyncLoggerDestination = pinoPretty({\n ...prettyOptions,\n destination: 1, // stdout\n sync: true,\n})\n\nconst getLogger = (\n name = 'payload',\n options?: pinoImport.default.LoggerOptions,\n destination?: pinoImport.default.DestinationStream,\n): PayloadLogger => {\n if (options) {\n return pino(\n {\n name: options?.name || name,\n enabled: process.env.DISABLE_LOGGING !== 'true',\n ...(options || defaultLoggerOptions),\n },\n destination,\n )\n }\n\n return pino(prettySyncLoggerDestination)\n}\n\nexport default getLogger\n"],"names":["pinoImport","pinoPrettyImport","pino","default","pinoPretty","prettyOptions","colorize","ignore","translateTime","defaultLoggerOptions","transport","options","target","prettySyncLoggerDestination","destination","sync","getLogger","name","enabled","process","env","DISABLE_LOGGING"],"mappings":"AAAA,OAAOA,gBAAgB,OAAM;AAC7B,OAAOC,sBAAsB,cAAa;AAE1C,MAAMC,OAAQF,WAAWG,OAAO,IAAIH;AACpC,MAAMI,aAAcH,iBAAiBE,OAAO,IAC1CF;AAIF,MAAMI,gBAAgB;IACpBC,UAAU;IACVC,QAAQ;IACRC,eAAe;AACjB;AAEA,OAAO,MAAMC,uBAAyD;IACpEC,WAAW;QACTC,SAASN;QACTO,QAAQ;IACV;AACF,EAAC;AAED,OAAO,MAAMC,8BAA8BT,WAAW;IACpD,GAAGC,aAAa;IAChBS,aAAa;IACbC,MAAM;AACR,GAAE;AAEF,MAAMC,YAAY,CAChBC,OAAO,SAAS,EAChBN,SACAG;IAEA,IAAIH,SAAS;QACX,OAAOT,KACL;YACEe,MAAMN,SAASM,QAAQA;YACvBC,SAASC,QAAQC,GAAG,CAACC,eAAe,KAAK;YACzC,GAAIV,WAAWF,oBAAoB;QACrC,GACAK;IAEJ;IAEA,OAAOZ,KAAKW;AACd;AAEA,eAAeG,UAAS"}
|
|
@@ -2,4 +2,4 @@ export async function mapAsync(arr, callbackfn) {
|
|
|
2
2
|
return Promise.all(arr.map(callbackfn));
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=mapAsync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/mapAsync.ts"],"sourcesContent":["export async function mapAsync<T, U>(\n arr: T[],\n callbackfn: (item: T, index: number, array: T[]) => Promise<U>,\n): Promise<U[]> {\n return Promise.all(arr.map(callbackfn))\n}\n"],"names":["mapAsync","arr","callbackfn","Promise","all","map"],"mappings":"AAAA,OAAO,eAAeA,SACpBC,GAAQ,EACRC,UAA8D;IAE9D,OAAOC,QAAQC,GAAG,CAACH,IAAII,GAAG,CAACH;AAC7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
const overwriteMerge = (_, sourceArray)=>sourceArray;
|
|
2
2
|
export default overwriteMerge;
|
|
3
3
|
|
|
4
|
-
//# sourceMappingURL=
|
|
4
|
+
//# sourceMappingURL=overwriteMerge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/overwriteMerge.ts"],"sourcesContent":["const overwriteMerge = (_, sourceArray) => sourceArray\n\nexport default overwriteMerge\n"],"names":["overwriteMerge","_","sourceArray"],"mappings":"AAAA,MAAMA,iBAAiB,CAACC,GAAGC,cAAgBA;AAE3C,eAAeF,eAAc"}
|
|
@@ -18,4 +18,4 @@ export const parseCookies = (headers)=>{
|
|
|
18
18
|
return list;
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=parseCookies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/parseCookies.ts"],"sourcesContent":["import APIError from '../errors/APIError.js'\n\nexport const parseCookies = (headers: Request['headers']): Map<string, string> => {\n const list = new Map<string, string>()\n const rc = headers.get('Cookie')\n\n if (rc) {\n rc.split(';').forEach((cookie) => {\n const parts = cookie.split('=')\n const key = parts.shift().trim()\n const encodedValue = parts.join('=')\n\n try {\n const decodedValue = decodeURI(encodedValue)\n list.set(key, decodedValue)\n } catch (e) {\n throw new APIError(`Error decoding cookie value for key ${key}: ${e.message}`)\n }\n })\n }\n\n return list\n}\n"],"names":["APIError","parseCookies","headers","list","Map","rc","get","split","forEach","cookie","parts","key","shift","trim","encodedValue","join","decodedValue","decodeURI","set","e","message"],"mappings":"AAAA,OAAOA,cAAc,wBAAuB;AAE5C,OAAO,MAAMC,eAAe,CAACC;IAC3B,MAAMC,OAAO,IAAIC;IACjB,MAAMC,KAAKH,QAAQI,GAAG,CAAC;IAEvB,IAAID,IAAI;QACNA,GAAGE,KAAK,CAAC,KAAKC,OAAO,CAAC,CAACC;YACrB,MAAMC,QAAQD,OAAOF,KAAK,CAAC;YAC3B,MAAMI,MAAMD,MAAME,KAAK,GAAGC,IAAI;YAC9B,MAAMC,eAAeJ,MAAMK,IAAI,CAAC;YAEhC,IAAI;gBACF,MAAMC,eAAeC,UAAUH;gBAC/BX,KAAKe,GAAG,CAACP,KAAKK;YAChB,EAAE,OAAOG,GAAG;gBACV,MAAM,IAAInB,SAAS,CAAC,oCAAoC,EAAEW,IAAI,EAAE,EAAEQ,EAAEC,OAAO,CAAC,CAAC;YAC/E;QACF;IACF;IAEA,OAAOjB;AACT,EAAC"}
|
|
@@ -18,4 +18,4 @@ const sanitizeInternalFields = (incomingDoc)=>Object.entries(incomingDoc).reduce
|
|
|
18
18
|
}, {});
|
|
19
19
|
export default sanitizeInternalFields;
|
|
20
20
|
|
|
21
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=sanitizeInternalFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/sanitizeInternalFields.ts"],"sourcesContent":["const internalFields = ['__v']\n\nconst sanitizeInternalFields = <T extends Record<string, unknown>>(incomingDoc: T): T =>\n Object.entries(incomingDoc).reduce((newDoc, [key, val]): T => {\n if (key === '_id') {\n return {\n ...newDoc,\n id: val,\n }\n }\n\n if (internalFields.indexOf(key) > -1) {\n return newDoc\n }\n\n return {\n ...newDoc,\n [key]: val,\n }\n }, {} as T)\n\nexport default sanitizeInternalFields\n"],"names":["internalFields","sanitizeInternalFields","incomingDoc","Object","entries","reduce","newDoc","key","val","id","indexOf"],"mappings":"AAAA,MAAMA,iBAAiB;IAAC;CAAM;AAE9B,MAAMC,yBAAyB,CAAoCC,cACjEC,OAAOC,OAAO,CAACF,aAAaG,MAAM,CAAC,CAACC,QAAQ,CAACC,KAAKC,IAAI;QACpD,IAAID,QAAQ,OAAO;YACjB,OAAO;gBACL,GAAGD,MAAM;gBACTG,IAAID;YACN;QACF;QAEA,IAAIR,eAAeU,OAAO,CAACH,OAAO,CAAC,GAAG;YACpC,OAAOD;QACT;QAEA,OAAO;YACL,GAAGA,MAAM;YACT,CAACC,IAAI,EAAEC;QACT;IACF,GAAG,CAAC;AAEN,eAAeP,uBAAsB"}
|
|
@@ -2,4 +2,4 @@ export const setsAreEqual = (xs, ys)=>xs.size === ys.size && [
|
|
|
2
2
|
...xs
|
|
3
3
|
].every((x)=>ys.has(x));
|
|
4
4
|
|
|
5
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=setsAreEqual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/setsAreEqual.ts"],"sourcesContent":["export const setsAreEqual = (xs: Set<unknown>, ys: Set<unknown>) =>\n xs.size === ys.size && [...xs].every((x) => ys.has(x))\n"],"names":["setsAreEqual","xs","ys","size","every","x","has"],"mappings":"AAAA,OAAO,MAAMA,eAAe,CAACC,IAAkBC,KAC7CD,GAAGE,IAAI,KAAKD,GAAGC,IAAI,IAAI;WAAIF;KAAG,CAACG,KAAK,CAAC,CAACC,IAAMH,GAAGI,GAAG,CAACD,IAAG"}
|
|
@@ -21,4 +21,4 @@ export const adminInit = ({ headers, payload, user })=>{
|
|
|
21
21
|
});
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
-
//# sourceMappingURL=
|
|
24
|
+
//# sourceMappingURL=adminInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utilities/telemetry/events/adminInit.ts"],"sourcesContent":["import type { Payload } from '../../../index.js'\nimport type { User } from '../../../auth/types.js'\n\nimport { sendEvent } from '../index.js'\nimport { oneWayHash } from '../oneWayHash.js'\n\nexport type AdminInitEvent = {\n domainID?: string\n type: 'admin-init'\n userID?: string\n}\n\ntype Args = {\n headers: Request['headers']\n payload: Payload\n user: User | null\n}\nexport const adminInit = ({ headers, payload, user }: Args): void => {\n const host = headers.get('host')\n\n let domainID: string\n let userID: string\n\n if (host) {\n domainID = oneWayHash(host, payload.secret)\n }\n\n if (user?.id) {\n userID = oneWayHash(String(user.id), payload.secret)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n sendEvent({\n event: {\n domainID,\n type: 'admin-init',\n userID,\n },\n payload,\n })\n}\n"],"names":["sendEvent","oneWayHash","adminInit","headers","payload","user","host","get","domainID","userID","secret","id","String","event","type"],"mappings":"AAGA,SAASA,SAAS,QAAQ,cAAa;AACvC,SAASC,UAAU,QAAQ,mBAAkB;AAa7C,OAAO,MAAMC,YAAY,CAAC,EAAEC,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAAQ;IACxD,MAAMC,OAAOH,QAAQI,GAAG,CAAC;IAEzB,IAAIC;IACJ,IAAIC;IAEJ,IAAIH,MAAM;QACRE,WAAWP,WAAWK,MAAMF,QAAQM,MAAM;IAC5C;IAEA,IAAIL,MAAMM,IAAI;QACZF,SAASR,WAAWW,OAAOP,KAAKM,EAAE,GAAGP,QAAQM,MAAM;IACrD;IAEA,mEAAmE;IACnEV,UAAU;QACRa,OAAO;YACLL;YACAM,MAAM;YACNL;QACF;QACAL;IACF;AACF,EAAC"}
|
|
@@ -9,4 +9,4 @@ export const serverInit = (payload)=>{
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
//# sourceMappingURL=
|
|
12
|
+
//# sourceMappingURL=serverInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/utilities/telemetry/events/serverInit.ts"],"sourcesContent":["import type { Payload } from '../../../index.js'\n\nimport { sendEvent } from '../index.js'\n\nexport type ServerInitEvent = {\n type: 'server-init'\n}\n\nexport const serverInit = (payload: Payload): void => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n sendEvent({\n event: {\n type: 'server-init',\n },\n payload,\n })\n}\n"],"names":["sendEvent","serverInit","payload","event","type"],"mappings":"AAEA,SAASA,SAAS,QAAQ,cAAa;AAMvC,OAAO,MAAMC,aAAa,CAACC;IACzB,mEAAmE;IACnEF,UAAU;QACRG,OAAO;YACLC,MAAM;QACR;QACAF;IACF;AACF,EAAC"}
|