payload 3.0.0-alpha.41 → 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
|
@@ -462,4 +462,4 @@ export const ui = joi.object().keys({
|
|
|
462
462
|
const fieldSchema = joi.alternatives().try(text, number, textarea, email, code, json, select, group, array, row, collapsible, tabs, radio, relationship, checkbox, upload, richText, blocks, date, point, ui).id('field');
|
|
463
463
|
export default fieldSchema;
|
|
464
464
|
|
|
465
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZHMvY29uZmlnL3NjaGVtYS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgam9pIGZyb20gJ2pvaSdcblxuaW1wb3J0IHsgY29tcG9uZW50U2NoZW1hIH0gZnJvbSAnLi4vLi4vY29uZmlnL3NoYXJlZC9jb21wb25lbnRTY2hlbWEuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMgPSBqb2lcbiAgLm9iamVjdCgpXG4gIC5rZXlzKHtcbiAgICBDZWxsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgRmllbGQ6IGNvbXBvbmVudFNjaGVtYSxcbiAgICBGaWx0ZXI6IGNvbXBvbmVudFNjaGVtYSxcbiAgfSlcbiAgLmRlZmF1bHQoe30pXG5cbmV4cG9ydCBjb25zdCBiYXNlQWRtaW5GaWVsZHMgPSBqb2kub2JqZWN0KCkua2V5cyh7XG4gIGNsYXNzTmFtZTogam9pLnN0cmluZygpLFxuICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMsXG4gIGNvbmRpdGlvbjogam9pLmZ1bmMoKSxcbiAgZGVzY3JpcHRpb246IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSwgY29tcG9uZW50U2NoZW1hKSxcbiAgZGlzYWJsZUJ1bGtFZGl0OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBkaXNhYmxlZDogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgaGlkZGVuOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBpbml0Q29sbGFwc2VkOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBwb3NpdGlvbjogam9pLnN0cmluZygpLnZhbGlkKCdzaWRlYmFyJyksXG4gIHJlYWRPbmx5OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBzdHlsZTogam9pLm9iamVjdCgpLnVua25vd24oKSxcbiAgd2lkdGg6IGpvaS5zdHJpbmcoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBiYXNlRmllbGQgPSBqb2lcbiAgLm9iamVjdCgpXG4gIC5rZXlzKHtcbiAgICBhY2Nlc3M6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIGNyZWF0ZTogam9pLmZ1bmMoKSxcbiAgICAgIHJlYWQ6IGpvaS5mdW5jKCksXG4gICAgICB1cGRhdGU6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5kZWZhdWx0KCksXG4gICAgY3VzdG9tOiBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIGpvaS5hbnkoKSksXG4gICAgaGlkZGVuOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGhvb2tzOiBqb2lcbiAgICAgIC5vYmplY3QoKVxuICAgICAgLmtleXMoe1xuICAgICAgICBhZnRlckNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGFmdGVyUmVhZDogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGJlZm9yZUNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSkuZGVmYXVsdChbXSksXG4gICAgICAgIGJlZm9yZVZhbGlkYXRlOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuZnVuYygpKS5kZWZhdWx0KFtdKSxcbiAgICAgIH0pXG4gICAgICAuZGVmYXVsdCgpLFxuICAgIGluZGV4OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGxhYmVsOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSwgam9pLnN0cmluZygpLCBqb2kudmFsaWQoZmFsc2UpKSxcbiAgICBsb2NhbGl6ZWQ6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgcmVxdWlyZWQ6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gICAgc2F2ZVRvSldUOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5ib29sZWFuKCksIGpvaS5zdHJpbmcoKSkuZGVmYXVsdChmYWxzZSksXG4gICAgdW5pcXVlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIHZhbGlkYXRlOiBqb2kuZnVuYygpLFxuICB9KVxuICAuZGVmYXVsdCgpXG5cbmV4cG9ydCBjb25zdCBpZEZpZWxkID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2lkJyksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndGV4dCcsICdudW1iZXInKSxcbiAgbG9jYWxpemVkOiBqb2kuaW52YWxpZCh0cnVlKSxcbiAgcmVxdWlyZWQ6IGpvaS5ub3QoZmFsc2UsIDApLmRlZmF1bHQodHJ1ZSksXG59KVxuXG5leHBvcnQgY29uc3QgdGV4dCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndGV4dCcpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgYXV0b0NvbXBsZXRlOiBqb2kuc3RyaW5nKCksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBhZnRlcklucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgICAgYmVmb3JlSW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gICAgcGxhY2Vob2xkZXI6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pLCBqb2kuc3RyaW5nKCkpLFxuICAgIHJ0bDogam9pLmJvb2xlYW4oKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGpvaS5mdW5jKCkpLFxuICBoYXNNYW55OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBtYXhMZW5ndGg6IGpvaS5udW1iZXIoKSxcbiAgbWF4Um93czogam9pLm51bWJlcigpLndoZW4oJ2hhc01hbnknLCB7IGlzOiBqb2kubm90KHRydWUpLCB0aGVuOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gIG1pbkxlbmd0aDogam9pLm51bWJlcigpLFxuICBtaW5Sb3dzOiBqb2kubnVtYmVyKCkud2hlbignaGFzTWFueScsIHsgaXM6IGpvaS5ub3QodHJ1ZSksIHRoZW46IGpvaS5mb3JiaWRkZW4oKSB9KSxcbn0pXG5cbmV4cG9ydCBjb25zdCBudW1iZXIgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ251bWJlcicpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgYXV0b0NvbXBsZXRlOiBqb2kuc3RyaW5nKCksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBhZnRlcklucHV0OiBqb2lcbiAgICAgICAgLmFycmF5KClcbiAgICAgICAgLml0ZW1zKGNvbXBvbmVudFNjaGVtYSlcbiAgICAgICAgLndoZW4oJ2hhc01hbnknLCB7IG5vdDogdHJ1ZSwgb3RoZXJ3aXNlOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gICAgICBiZWZvcmVJbnB1dDogam9pXG4gICAgICAgIC5hcnJheSgpXG4gICAgICAgIC5pdGVtcyhjb21wb25lbnRTY2hlbWEpXG4gICAgICAgIC53aGVuKCdoYXNNYW55JywgeyBub3Q6IHRydWUsIG90aGVyd2lzZTogam9pLmZvcmJpZGRlbigpIH0pLFxuICAgIH0pLFxuICAgIHBsYWNlaG9sZGVyOiBqb2kuc3RyaW5nKCksXG4gICAgc3RlcDogam9pLm51bWJlcigpLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5udW1iZXIoKSwgam9pLmZ1bmMoKSksXG4gIGhhc01hbnk6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gIG1heDogam9pLm51bWJlcigpLFxuICBtYXhSb3dzOiBqb2kubnVtYmVyKCkud2hlbignaGFzTWFueScsIHsgaXM6IGpvaS5ub3QodHJ1ZSksIHRoZW46IGpvaS5mb3JiaWRkZW4oKSB9KSxcbiAgbWluOiBqb2kubnVtYmVyKCksXG4gIG1pblJvd3M6IGpvaS5udW1iZXIoKS53aGVuKCdoYXNNYW55JywgeyBpczogam9pLm5vdCh0cnVlKSwgdGhlbjogam9pLmZvcmJpZGRlbigpIH0pLFxufSlcblxuZXhwb3J0IGNvbnN0IHRleHRhcmVhID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCd0ZXh0YXJlYScpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBhZnRlcklucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgICAgYmVmb3JlSW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgfSksXG4gICAgcGxhY2Vob2xkZXI6IGpvaS5zdHJpbmcoKSxcbiAgICByb3dzOiBqb2kubnVtYmVyKCksXG4gICAgcnRsOiBqb2kuYm9vbGVhbigpLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgam9pLmZ1bmMoKSksXG4gIG1heExlbmd0aDogam9pLm51bWJlcigpLFxuICBtaW5MZW5ndGg6IGpvaS5udW1iZXIoKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBlbWFpbCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnZW1haWwnKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGF1dG9Db21wbGV0ZTogam9pLnN0cmluZygpLFxuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgYWZ0ZXJJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICAgIGJlZm9yZUlucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgIH0pLFxuICAgIHBsYWNlaG9sZGVyOiBqb2kuc3RyaW5nKCksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbiAgbWF4TGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIG1pbkxlbmd0aDogam9pLm51bWJlcigpLFxufSlcblxuZXhwb3J0IGNvbnN0IGNvZGUgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2NvZGUnKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgIH0pLFxuICAgIGVkaXRvck9wdGlvbnM6IGpvaS5vYmplY3QoKS51bmtub3duKCksIC8vIEVkaXRvclsnb3B0aW9ucyddIEBtb25hY28tZWRpdG9yL3JlYWN0XG4gICAgbGFuZ3VhZ2U6IGpvaS5zdHJpbmcoKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGpvaS5mdW5jKCkpLFxufSlcblxuZXhwb3J0IGNvbnN0IGpzb24gPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2pzb24nKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgIH0pLFxuICAgIGVkaXRvck9wdGlvbnM6IGpvaS5vYmplY3QoKS51bmtub3duKCksIC8vIEVkaXRvclsnb3B0aW9ucyddIEBtb25hY28tZWRpdG9yL3JlYWN0XG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLmFycmF5KCksIGpvaS5vYmplY3QoKSksXG59KVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0ID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdzZWxlY3QnKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgIH0pLFxuICAgIGlzQ2xlYXJhYmxlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICAgIGlzU29ydGFibGU6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaVxuICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgIC50cnkoam9pLnN0cmluZygpLmFsbG93KCcnKSwgam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpLmFsbG93KCcnKSksIGpvaS5mdW5jKCkpLFxuICBoYXNNYW55OiBqb2kuYm9vbGVhbigpLmRlZmF1bHQoZmFsc2UpLFxuICBvcHRpb25zOiBqb2lcbiAgICAuYXJyYXkoKVxuICAgIC5taW4oMSlcbiAgICAuaXRlbXMoXG4gICAgICBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICBqb2kuc3RyaW5nKCksXG4gICAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICAgIGxhYmVsOiBqb2lcbiAgICAgICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgICAgICAgICB2YWx1ZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCkuYWxsb3coJycpLFxuICAgICAgICB9KSxcbiAgICAgICksXG4gICAgKVxuICAgIC5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IHJhZGlvID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdyYWRpbycpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgfSksXG4gICAgbGF5b3V0OiBqb2kuc3RyaW5nKCkudmFsaWQoJ3ZlcnRpY2FsJywgJ2hvcml6b250YWwnKSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCkuYWxsb3coJycpLCBqb2kuZnVuYygpKSxcbiAgb3B0aW9uczogam9pXG4gICAgLmFycmF5KClcbiAgICAubWluKDEpXG4gICAgLml0ZW1zKFxuICAgICAgam9pLmFsdGVybmF0aXZlcygpLnRyeShcbiAgICAgICAgam9pLnN0cmluZygpLFxuICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICBsYWJlbDogam9pXG4gICAgICAgICAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAgICAgICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSlcbiAgICAgICAgICAgIC5yZXF1aXJlZCgpLFxuICAgICAgICAgIHZhbHVlOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKS5hbGxvdygnJyksXG4gICAgICAgIH0pLFxuICAgICAgKSxcbiAgICApXG4gICAgLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3Qgcm93ID0gYmFzZUZpZWxkLmtleXMoe1xuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3JvdycpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMuZGVmYXVsdCgpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSksXG59KVxuXG5leHBvcnQgY29uc3QgY29sbGFwc2libGUgPSBiYXNlRmllbGQua2V5cyh7XG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnY29sbGFwc2libGUnKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmRlZmF1bHQoKSxcbiAgZmllbGRzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kubGluaygnI2ZpZWxkJykpLFxuICBsYWJlbDogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGNvbXBvbmVudFNjaGVtYSksXG59KVxuXG5jb25zdCB0YWIgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS53aGVuKCdsb2NhbGl6ZWQnLCB7IGlzOiBqb2kuZXhpc3QoKSwgdGhlbjogam9pLnJlcXVpcmVkKCkgfSksXG4gIGRlc2NyaXB0aW9uOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgY29tcG9uZW50U2NoZW1hKSxcbiAgZmllbGRzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kubGluaygnI2ZpZWxkJykpLnJlcXVpcmVkKCksXG4gIGludGVyZmFjZU5hbWU6IGpvaS5zdHJpbmcoKS53aGVuKCduYW1lJywgeyBub3Q6IGpvaS5leGlzdCgpLCB0aGVuOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gIGxhYmVsOiBqb2lcbiAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpXG4gICAgLndoZW4oJ25hbWUnLCB7IGlzOiBqb2kubm90KCksIHRoZW46IGpvaS5yZXF1aXJlZCgpIH0pLFxuICBsb2NhbGl6ZWQ6IGpvaS5ib29sZWFuKCksXG4gIHNhdmVUb0pXVDogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYm9vbGVhbigpLCBqb2kuc3RyaW5nKCkpLFxufSlcblxuZXhwb3J0IGNvbnN0IHRhYnMgPSBiYXNlRmllbGQua2V5cyh7XG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndGFicycpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgZGVzY3JpcHRpb246IGpvaS5mb3JiaWRkZW4oKSxcbiAgfSksXG4gIGZpZWxkczogam9pLmZvcmJpZGRlbigpLFxuICBsb2NhbGl6ZWQ6IGpvaS5mb3JiaWRkZW4oKSxcbiAgdGFiczogam9pLmFycmF5KCkuaXRlbXModGFiKS5yZXF1aXJlZCgpLFxufSlcblxuZXhwb3J0IGNvbnN0IGdyb3VwID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdncm91cCcpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMua2V5cyh7XG4gICAgaGlkZUd1dHRlcjogam9pLmJvb2xlYW4oKS5kZWZhdWx0KHRydWUpLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5vYmplY3QoKSwgam9pLmZ1bmMoKSksXG4gIGZpZWxkczogam9pLmFycmF5KCkuaXRlbXMoam9pLmxpbmsoJyNmaWVsZCcpKSxcbiAgaW50ZXJmYWNlTmFtZTogam9pLnN0cmluZygpLFxufSlcblxuZXhwb3J0IGNvbnN0IGFycmF5ID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdhcnJheScpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHNcbiAgICAua2V5cyh7XG4gICAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHNcbiAgICAgICAgLmtleXMoe1xuICAgICAgICAgIFJvd0xhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICAgIH0pXG4gICAgICAgIC5kZWZhdWx0KHt9KSxcbiAgICB9KVxuICAgIC5kZWZhdWx0KHt9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5hcnJheSgpLml0ZW1zKGpvaS5vYmplY3QoKSksIGpvaS5mdW5jKCkpLFxuICBmaWVsZHM6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5saW5rKCcjZmllbGQnKSkucmVxdWlyZWQoKSxcbiAgaW50ZXJmYWNlTmFtZTogam9pLnN0cmluZygpLFxuICBsYWJlbHM6IGpvaS5vYmplY3Qoe1xuICAgIHBsdXJhbDogam9pXG4gICAgICAuYWx0ZXJuYXRpdmVzKClcbiAgICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSksXG4gICAgc2luZ3VsYXI6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICB9KSxcbiAgbWF4Um93czogam9pLm51bWJlcigpLFxuICBtaW5Sb3dzOiBqb2kubnVtYmVyKCksXG59KVxuXG5leHBvcnQgY29uc3QgdXBsb2FkID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCd1cGxvYWQnKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgIH0pLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5vYmplY3QoKSwgam9pLmZ1bmMoKSksXG4gIGZpbHRlck9wdGlvbnM6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLm9iamVjdCgpLCBqb2kuZnVuYygpKSxcbiAgbWF4RGVwdGg6IGpvaS5udW1iZXIoKSxcbiAgcmVsYXRpb25Ubzogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG59KVxuXG5leHBvcnQgY29uc3QgY2hlY2tib3ggPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2NoZWNrYm94JykucmVxdWlyZWQoKSxcbiAgYWRtaW46IGJhc2VBZG1pbkZpZWxkcy5rZXlzKHtcbiAgICBjb21wb25lbnRzOiBiYXNlQWRtaW5Db21wb25lbnRGaWVsZHMua2V5cyh7XG4gICAgICBFcnJvcjogY29tcG9uZW50U2NoZW1hLFxuICAgICAgTGFiZWw6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIGFmdGVySW5wdXQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudFNjaGVtYSksXG4gICAgICBiZWZvcmVJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICB9KSxcbiAgfSksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYm9vbGVhbigpLCBqb2kuZnVuYygpKSxcbn0pXG5cbmV4cG9ydCBjb25zdCBwb2ludCA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgncG9pbnQnKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgYWZ0ZXJJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICAgIGJlZm9yZUlucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgIH0pLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5hcnJheSgpLml0ZW1zKGpvaS5udW1iZXIoKSkubWF4KDIpLm1pbigyKSwgam9pLmZ1bmMoKSksXG59KVxuXG5leHBvcnQgY29uc3QgcmVsYXRpb25zaGlwID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdyZWxhdGlvbnNoaXAnKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGFsbG93Q3JlYXRlOiBqb2kuYm9vbGVhbigpLmRlZmF1bHQodHJ1ZSksXG4gICAgY29tcG9uZW50czogYmFzZUFkbWluQ29tcG9uZW50RmllbGRzLmtleXMoe1xuICAgICAgRXJyb3I6IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgIExhYmVsOiBjb21wb25lbnRTY2hlbWEsXG4gICAgfSksXG4gICAgaXNTb3J0YWJsZTogam9pLmJvb2xlYW4oKS5kZWZhdWx0KGZhbHNlKSxcbiAgICBzb3J0T3B0aW9uczogam9pLmFsdGVybmF0aXZlcygpLmNvbmRpdGlvbmFsKGpvaS5yZWYoJy4uLnJlbGF0aW9uVG8nKSwge1xuICAgICAgaXM6IGpvaS5zdHJpbmcoKSxcbiAgICAgIG90aGVyd2lzZTogam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBqb2kuc3RyaW5nKCkpLFxuICAgICAgdGhlbjogam9pLnN0cmluZygpLFxuICAgIH0pLFxuICB9KSxcbiAgZGVmYXVsdFZhbHVlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5mdW5jKCkpLFxuICBmaWx0ZXJPcHRpb25zOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5vYmplY3QoKSwgam9pLmZ1bmMoKSksXG4gIGhhc01hbnk6IGpvaS5ib29sZWFuKCkuZGVmYXVsdChmYWxzZSksXG4gIG1heDogam9pXG4gICAgLm51bWJlcigpXG4gICAgLndoZW4oJ2hhc01hbnknLCB7IGlzOiBqb2kubm90KHRydWUpLCB0aGVuOiBqb2kuZm9yYmlkZGVuKCkgfSlcbiAgICAud2FybmluZygnZGVwcmVjYXRlZCcsIHsgbWVzc2FnZTogJ1VzZSBtYXhSb3dzIGluc3RlYWQuJyB9KSxcbiAgbWF4RGVwdGg6IGpvaS5udW1iZXIoKSxcbiAgbWF4Um93czogam9pLm51bWJlcigpLndoZW4oJ2hhc01hbnknLCB7IGlzOiBqb2kubm90KHRydWUpLCB0aGVuOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gIG1pbjogam9pXG4gICAgLm51bWJlcigpXG4gICAgLndoZW4oJ2hhc01hbnknLCB7IGlzOiBqb2kubm90KHRydWUpLCB0aGVuOiBqb2kuZm9yYmlkZGVuKCkgfSlcbiAgICAud2FybmluZygnZGVwcmVjYXRlZCcsIHsgbWVzc2FnZTogJ1VzZSBtaW5Sb3dzIGluc3RlYWQuJyB9KSxcbiAgbWluUm93czogam9pLm51bWJlcigpLndoZW4oJ2hhc01hbnknLCB7IGlzOiBqb2kubm90KHRydWUpLCB0aGVuOiBqb2kuZm9yYmlkZGVuKCkgfSksXG4gIHJlbGF0aW9uVG86IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLnJlcXVpcmVkKCksIGpvaS5hcnJheSgpLml0ZW1zKGpvaS5zdHJpbmcoKSkpLFxufSlcblxuZXhwb3J0IGNvbnN0IGJsb2NrcyA9IGJhc2VGaWVsZC5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgnYmxvY2tzJykucmVxdWlyZWQoKSxcbiAgYmxvY2tzOiBqb2lcbiAgICAuYXJyYXkoKVxuICAgIC5pdGVtcyhcbiAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICBzbHVnOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgICAgICAgY3VzdG9tOiBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIGpvaS5hbnkoKSksXG4gICAgICAgIGZpZWxkczogam9pLmFycmF5KCkuaXRlbXMoam9pLmxpbmsoJyNmaWVsZCcpKSxcbiAgICAgICAgZ3JhcGhRTDogam9pLm9iamVjdCgpLmtleXMoe1xuICAgICAgICAgIHNpbmd1bGFyTmFtZTogam9pLnN0cmluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgaW1hZ2VBbHRUZXh0OiBqb2kuc3RyaW5nKCksXG4gICAgICAgIGltYWdlVVJMOiBqb2kuc3RyaW5nKCksXG4gICAgICAgIGludGVyZmFjZU5hbWU6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgbGFiZWxzOiBqb2kub2JqZWN0KHtcbiAgICAgICAgICBwbHVyYWw6IGpvaVxuICAgICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgICAgICAgIHNpbmd1bGFyOiBqb2lcbiAgICAgICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICApXG4gICAgLnJlcXVpcmVkKCksXG4gIGRlZmF1bHRWYWx1ZTogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kub2JqZWN0KCkpLCBqb2kuZnVuYygpKSxcbiAgbGFiZWxzOiBqb2kub2JqZWN0KHtcbiAgICBwbHVyYWw6IGpvaVxuICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgIHNpbmd1bGFyOiBqb2lcbiAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgLnRyeShqb2kuc3RyaW5nKCksIGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgW2pvaS5zdHJpbmcoKV0pKSxcbiAgfSksXG4gIG1heFJvd3M6IGpvaS5udW1iZXIoKSxcbiAgbWluUm93czogam9pLm51bWJlcigpLFxufSlcblxuZXhwb3J0IGNvbnN0IHJpY2hUZXh0ID0gYmFzZUZpZWxkLmtleXMoe1xuICBuYW1lOiBqb2kuc3RyaW5nKCkucmVxdWlyZWQoKSxcbiAgdHlwZTogam9pLnN0cmluZygpLnZhbGlkKCdyaWNoVGV4dCcpLnJlcXVpcmVkKCksXG4gIGFkbWluOiBiYXNlQWRtaW5GaWVsZHMuZGVmYXVsdCgpLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLmFycmF5KCkuaXRlbXMoam9pLm9iamVjdCgpKSwgam9pLmZ1bmMoKSwgam9pLm9iamVjdCgpKSxcbiAgZWRpdG9yOiBqb2lcbiAgICAub2JqZWN0KClcbiAgICAua2V5cyh7XG4gICAgICBDZWxsQ29tcG9uZW50OiBjb21wb25lbnRTY2hlbWEub3B0aW9uYWwoKSxcbiAgICAgIEZpZWxkQ29tcG9uZW50OiBjb21wb25lbnRTY2hlbWEub3B0aW9uYWwoKSxcbiAgICAgIExhenlDZWxsQ29tcG9uZW50OiBqb2kuZnVuYygpLm9wdGlvbmFsKCksXG4gICAgICBMYXp5RmllbGRDb21wb25lbnQ6IGpvaS5mdW5jKCkub3B0aW9uYWwoKSxcbiAgICAgIGFmdGVyUmVhZFByb21pc2U6IGpvaS5mdW5jKCkub3B0aW9uYWwoKSxcbiAgICAgIG91dHB1dFNjaGVtYTogam9pLmZ1bmMoKS5vcHRpb25hbCgpLFxuICAgICAgcG9wdWxhdGlvblByb21pc2U6IGpvaS5mdW5jKCkub3B0aW9uYWwoKSxcbiAgICAgIHZhbGlkYXRlOiBqb2kuZnVuYygpLnJlcXVpcmVkKCksXG4gICAgfSlcbiAgICAudW5rbm93bigpLFxufSlcblxuZXhwb3J0IGNvbnN0IGRhdGUgPSBiYXNlRmllbGQua2V5cyh7XG4gIG5hbWU6IGpvaS5zdHJpbmcoKS5yZXF1aXJlZCgpLFxuICB0eXBlOiBqb2kuc3RyaW5nKCkudmFsaWQoJ2RhdGUnKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogYmFzZUFkbWluRmllbGRzLmtleXMoe1xuICAgIGNvbXBvbmVudHM6IGJhc2VBZG1pbkNvbXBvbmVudEZpZWxkcy5rZXlzKHtcbiAgICAgIEVycm9yOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICBMYWJlbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgYWZ0ZXJJbnB1dDogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50U2NoZW1hKSxcbiAgICAgIGJlZm9yZUlucHV0OiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnRTY2hlbWEpLFxuICAgIH0pLFxuICAgIGRhdGU6IGpvaS5vYmplY3Qoe1xuICAgICAgZGlzcGxheUZvcm1hdDogam9pLnN0cmluZygpLFxuICAgICAgbWF4RGF0ZTogam9pLmRhdGUoKSxcbiAgICAgIG1heFRpbWU6IGpvaS5kYXRlKCksXG4gICAgICBtaW5EYXRlOiBqb2kuZGF0ZSgpLFxuICAgICAgbWluVGltZTogam9pLmRhdGUoKSxcbiAgICAgIG1vbnRoc1RvU2hvdzogam9pLm51bWJlcigpLFxuICAgICAgb3ZlcnJpZGVzOiBqb2kub2JqZWN0KCkudW5rbm93bigpLFxuICAgICAgcGlja2VyQXBwZWFyYW5jZTogam9pLnN0cmluZygpLFxuICAgICAgdGltZUZvcm1hdDogam9pLnN0cmluZygpLFxuICAgICAgdGltZUludGVydmFsczogam9pLm51bWJlcigpLFxuICAgIH0pLFxuICAgIHBsYWNlaG9sZGVyOiBqb2kuc3RyaW5nKCksXG4gIH0pLFxuICBkZWZhdWx0VmFsdWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbn0pXG5cbmV4cG9ydCBjb25zdCB1aSA9IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgbmFtZTogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gIHR5cGU6IGpvaS5zdHJpbmcoKS52YWxpZCgndWknKS5yZXF1aXJlZCgpLFxuICBhZG1pbjogam9pXG4gICAgLm9iamVjdCgpXG4gICAgLmtleXMoe1xuICAgICAgY29tcG9uZW50czogam9pXG4gICAgICAgIC5vYmplY3QoKVxuICAgICAgICAua2V5cyh7XG4gICAgICAgICAgQ2VsbDogY29tcG9uZW50U2NoZW1hLFxuICAgICAgICAgIEZpZWxkOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICAgIH0pXG4gICAgICAgIC5kZWZhdWx0KHt9KSxcbiAgICAgIGNvbmRpdGlvbjogam9pLmZ1bmMoKSxcbiAgICAgIHBvc2l0aW9uOiBqb2kuc3RyaW5nKCkudmFsaWQoJ3NpZGViYXInKSxcbiAgICAgIHdpZHRoOiBqb2kuc3RyaW5nKCksXG4gICAgfSlcbiAgICAuZGVmYXVsdCgpLFxuICBjdXN0b206IGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgam9pLmFueSgpKSxcbiAgbGFiZWw6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSksXG59KVxuXG5jb25zdCBmaWVsZFNjaGVtYSA9IGpvaVxuICAuYWx0ZXJuYXRpdmVzKClcbiAgLnRyeShcbiAgICB0ZXh0LFxuICAgIG51bWJlcixcbiAgICB0ZXh0YXJlYSxcbiAgICBlbWFpbCxcbiAgICBjb2RlLFxuICAgIGpzb24sXG4gICAgc2VsZWN0LFxuICAgIGdyb3VwLFxuICAgIGFycmF5LFxuICAgIHJvdyxcbiAgICBjb2xsYXBzaWJsZSxcbiAgICB0YWJzLFxuICAgIHJhZGlvLFxuICAgIHJlbGF0aW9uc2hpcCxcbiAgICBjaGVja2JveCxcbiAgICB1cGxvYWQsXG4gICAgcmljaFRleHQsXG4gICAgYmxvY2tzLFxuICAgIGRhdGUsXG4gICAgcG9pbnQsXG4gICAgdWksXG4gIClcbiAgLmlkKCdmaWVsZCcpXG5cbmV4cG9ydCBkZWZhdWx0IGZpZWxkU2NoZW1hXG4iXSwibmFtZXMiOlsiam9pIiwiY29tcG9uZW50U2NoZW1hIiwiYmFzZUFkbWluQ29tcG9uZW50RmllbGRzIiwib2JqZWN0Iiwia2V5cyIsIkNlbGwiLCJGaWVsZCIsIkZpbHRlciIsImRlZmF1bHQiLCJiYXNlQWRtaW5GaWVsZHMiLCJjbGFzc05hbWUiLCJzdHJpbmciLCJjb21wb25lbnRzIiwiY29uZGl0aW9uIiwiZnVuYyIsImRlc2NyaXB0aW9uIiwiYWx0ZXJuYXRpdmVzIiwidHJ5IiwicGF0dGVybiIsImRpc2FibGVCdWxrRWRpdCIsImJvb2xlYW4iLCJkaXNhYmxlZCIsImhpZGRlbiIsImluaXRDb2xsYXBzZWQiLCJwb3NpdGlvbiIsInZhbGlkIiwicmVhZE9ubHkiLCJzdHlsZSIsInVua25vd24iLCJ3aWR0aCIsImJhc2VGaWVsZCIsImFjY2VzcyIsImNyZWF0ZSIsInJlYWQiLCJ1cGRhdGUiLCJhZG1pbiIsImN1c3RvbSIsImFueSIsImhvb2tzIiwiYWZ0ZXJDaGFuZ2UiLCJhcnJheSIsIml0ZW1zIiwiYWZ0ZXJSZWFkIiwiYmVmb3JlQ2hhbmdlIiwiYmVmb3JlVmFsaWRhdGUiLCJpbmRleCIsImxhYmVsIiwibG9jYWxpemVkIiwicmVxdWlyZWQiLCJzYXZlVG9KV1QiLCJ1bmlxdWUiLCJ2YWxpZGF0ZSIsImlkRmllbGQiLCJuYW1lIiwidHlwZSIsImludmFsaWQiLCJub3QiLCJ0ZXh0IiwiYXV0b0NvbXBsZXRlIiwiRXJyb3IiLCJMYWJlbCIsImFmdGVySW5wdXQiLCJiZWZvcmVJbnB1dCIsInBsYWNlaG9sZGVyIiwicnRsIiwiZGVmYXVsdFZhbHVlIiwiaGFzTWFueSIsIm1heExlbmd0aCIsIm51bWJlciIsIm1heFJvd3MiLCJ3aGVuIiwiaXMiLCJ0aGVuIiwiZm9yYmlkZGVuIiwibWluTGVuZ3RoIiwibWluUm93cyIsIm90aGVyd2lzZSIsInN0ZXAiLCJtYXgiLCJtaW4iLCJ0ZXh0YXJlYSIsInJvd3MiLCJlbWFpbCIsImNvZGUiLCJlZGl0b3JPcHRpb25zIiwibGFuZ3VhZ2UiLCJqc29uIiwic2VsZWN0IiwiaXNDbGVhcmFibGUiLCJpc1NvcnRhYmxlIiwiYWxsb3ciLCJvcHRpb25zIiwidmFsdWUiLCJyYWRpbyIsImxheW91dCIsInJvdyIsImZpZWxkcyIsImxpbmsiLCJjb2xsYXBzaWJsZSIsInRhYiIsImV4aXN0IiwiaW50ZXJmYWNlTmFtZSIsInRhYnMiLCJncm91cCIsImhpZGVHdXR0ZXIiLCJSb3dMYWJlbCIsImxhYmVscyIsInBsdXJhbCIsInNpbmd1bGFyIiwidXBsb2FkIiwiZmlsdGVyT3B0aW9ucyIsIm1heERlcHRoIiwicmVsYXRpb25UbyIsImNoZWNrYm94IiwicG9pbnQiLCJyZWxhdGlvbnNoaXAiLCJhbGxvd0NyZWF0ZSIsInNvcnRPcHRpb25zIiwiY29uZGl0aW9uYWwiLCJyZWYiLCJ3YXJuaW5nIiwibWVzc2FnZSIsImJsb2NrcyIsInNsdWciLCJncmFwaFFMIiwic2luZ3VsYXJOYW1lIiwiaW1hZ2VBbHRUZXh0IiwiaW1hZ2VVUkwiLCJyaWNoVGV4dCIsImVkaXRvciIsIkNlbGxDb21wb25lbnQiLCJvcHRpb25hbCIsIkZpZWxkQ29tcG9uZW50IiwiTGF6eUNlbGxDb21wb25lbnQiLCJMYXp5RmllbGRDb21wb25lbnQiLCJhZnRlclJlYWRQcm9taXNlIiwib3V0cHV0U2NoZW1hIiwicG9wdWxhdGlvblByb21pc2UiLCJkYXRlIiwiZGlzcGxheUZvcm1hdCIsIm1heERhdGUiLCJtYXhUaW1lIiwibWluRGF0ZSIsIm1pblRpbWUiLCJtb250aHNUb1Nob3ciLCJvdmVycmlkZXMiLCJwaWNrZXJBcHBlYXJh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
|
|
465
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/config/schema.ts"],"sourcesContent":["import joi from 'joi'\n\nimport { componentSchema } from '../../config/shared/componentSchema.js'\n\nexport const baseAdminComponentFields = joi\n .object()\n .keys({\n Cell: componentSchema,\n Field: componentSchema,\n Filter: componentSchema,\n })\n .default({})\n\nexport const baseAdminFields = joi.object().keys({\n className: joi.string(),\n components: baseAdminComponentFields,\n condition: joi.func(),\n description: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]), componentSchema),\n disableBulkEdit: joi.boolean().default(false),\n disabled: joi.boolean().default(false),\n hidden: joi.boolean().default(false),\n initCollapsed: joi.boolean().default(false),\n position: joi.string().valid('sidebar'),\n readOnly: joi.boolean().default(false),\n style: joi.object().unknown(),\n width: joi.string(),\n})\n\nexport const baseField = joi\n .object()\n .keys({\n access: joi.object().keys({\n create: joi.func(),\n read: joi.func(),\n update: joi.func(),\n }),\n admin: baseAdminFields.default(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n hidden: joi.boolean().default(false),\n hooks: joi\n .object()\n .keys({\n afterChange: joi.array().items(joi.func()).default([]),\n afterRead: joi.array().items(joi.func()).default([]),\n beforeChange: joi.array().items(joi.func()).default([]),\n beforeValidate: joi.array().items(joi.func()).default([]),\n })\n .default(),\n index: joi.boolean().default(false),\n label: joi\n .alternatives()\n .try(joi.object().pattern(joi.string(), [joi.string()]), joi.string(), joi.valid(false)),\n localized: joi.boolean().default(false),\n required: joi.boolean().default(false),\n saveToJWT: joi.alternatives().try(joi.boolean(), joi.string()).default(false),\n unique: joi.boolean().default(false),\n validate: joi.func(),\n })\n .default()\n\nexport const idField = baseField.keys({\n name: joi.string().valid('id'),\n type: joi.string().valid('text', 'number'),\n localized: joi.invalid(true),\n required: joi.not(false, 0).default(true),\n})\n\nexport const text = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('text').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi\n .alternatives()\n .try(joi.object().pattern(joi.string(), [joi.string()]), joi.string()),\n rtl: joi.boolean(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n hasMany: joi.boolean().default(false),\n maxLength: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n minLength: joi.number(),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n})\n\nexport const number = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('number').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi\n .array()\n .items(componentSchema)\n .when('hasMany', { not: true, otherwise: joi.forbidden() }),\n beforeInput: joi\n .array()\n .items(componentSchema)\n .when('hasMany', { not: true, otherwise: joi.forbidden() }),\n }),\n placeholder: joi.string(),\n step: joi.number(),\n }),\n defaultValue: joi.alternatives().try(joi.number(), joi.func()),\n hasMany: joi.boolean().default(false),\n max: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n min: joi.number(),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n})\n\nexport const textarea = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('textarea').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi.string(),\n rows: joi.number(),\n rtl: joi.boolean(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n maxLength: joi.number(),\n minLength: joi.number(),\n})\n\nexport const email = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('email').required(),\n admin: baseAdminFields.keys({\n autoComplete: joi.string(),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n placeholder: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n maxLength: joi.number(),\n minLength: joi.number(),\n})\n\nexport const code = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('code').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n editorOptions: joi.object().unknown(), // Editor['options'] @monaco-editor/react\n language: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n})\n\nexport const json = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('json').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n editorOptions: joi.object().unknown(), // Editor['options'] @monaco-editor/react\n }),\n defaultValue: joi.alternatives().try(joi.array(), joi.object()),\n})\n\nexport const select = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('select').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n isClearable: joi.boolean().default(false),\n isSortable: joi.boolean().default(false),\n }),\n defaultValue: joi\n .alternatives()\n .try(joi.string().allow(''), joi.array().items(joi.string().allow('')), joi.func()),\n hasMany: joi.boolean().default(false),\n options: joi\n .array()\n .min(1)\n .items(\n joi.alternatives().try(\n joi.string(),\n joi.object({\n label: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n value: joi.string().required().allow(''),\n }),\n ),\n )\n .required(),\n})\n\nexport const radio = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('radio').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n layout: joi.string().valid('vertical', 'horizontal'),\n }),\n defaultValue: joi.alternatives().try(joi.string().allow(''), joi.func()),\n options: joi\n .array()\n .min(1)\n .items(\n joi.alternatives().try(\n joi.string(),\n joi.object({\n label: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]))\n .required(),\n value: joi.string().required().allow(''),\n }),\n ),\n )\n .required(),\n})\n\nexport const row = baseField.keys({\n type: joi.string().valid('row').required(),\n admin: baseAdminFields.default(),\n fields: joi.array().items(joi.link('#field')),\n})\n\nexport const collapsible = baseField.keys({\n type: joi.string().valid('collapsible').required(),\n admin: baseAdminFields.default(),\n fields: joi.array().items(joi.link('#field')),\n label: joi.alternatives().try(joi.string(), componentSchema),\n})\n\nconst tab = baseField.keys({\n name: joi.string().when('localized', { is: joi.exist(), then: joi.required() }),\n description: joi.alternatives().try(joi.string(), componentSchema),\n fields: joi.array().items(joi.link('#field')).required(),\n interfaceName: joi.string().when('name', { not: joi.exist(), then: joi.forbidden() }),\n label: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()]))\n .when('name', { is: joi.not(), then: joi.required() }),\n localized: joi.boolean(),\n saveToJWT: joi.alternatives().try(joi.boolean(), joi.string()),\n})\n\nexport const tabs = baseField.keys({\n type: joi.string().valid('tabs').required(),\n admin: baseAdminFields.keys({\n description: joi.forbidden(),\n }),\n fields: joi.forbidden(),\n localized: joi.forbidden(),\n tabs: joi.array().items(tab).required(),\n})\n\nexport const group = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('group').required(),\n admin: baseAdminFields.keys({\n hideGutter: joi.boolean().default(true),\n }),\n defaultValue: joi.alternatives().try(joi.object(), joi.func()),\n fields: joi.array().items(joi.link('#field')),\n interfaceName: joi.string(),\n})\n\nexport const array = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('array').required(),\n admin: baseAdminFields\n .keys({\n components: baseAdminComponentFields\n .keys({\n RowLabel: componentSchema,\n })\n .default({}),\n })\n .default({}),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()),\n fields: joi.array().items(joi.link('#field')).required(),\n interfaceName: joi.string(),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n maxRows: joi.number(),\n minRows: joi.number(),\n})\n\nexport const upload = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('upload').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n }),\n defaultValue: joi.alternatives().try(joi.object(), joi.func()),\n filterOptions: joi.alternatives().try(joi.object(), joi.func()),\n maxDepth: joi.number(),\n relationTo: joi.string().required(),\n})\n\nexport const checkbox = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('checkbox').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.boolean(), joi.func()),\n})\n\nexport const point = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('point').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.array().items(joi.number()).max(2).min(2), joi.func()),\n})\n\nexport const relationship = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('relationship').required(),\n admin: baseAdminFields.keys({\n allowCreate: joi.boolean().default(true),\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n }),\n isSortable: joi.boolean().default(false),\n sortOptions: joi.alternatives().conditional(joi.ref('...relationTo'), {\n is: joi.string(),\n otherwise: joi.object().pattern(joi.string(), joi.string()),\n then: joi.string(),\n }),\n }),\n defaultValue: joi.alternatives().try(joi.func()),\n filterOptions: joi.alternatives().try(joi.object(), joi.func()),\n hasMany: joi.boolean().default(false),\n max: joi\n .number()\n .when('hasMany', { is: joi.not(true), then: joi.forbidden() })\n .warning('deprecated', { message: 'Use maxRows instead.' }),\n maxDepth: joi.number(),\n maxRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n min: joi\n .number()\n .when('hasMany', { is: joi.not(true), then: joi.forbidden() })\n .warning('deprecated', { message: 'Use minRows instead.' }),\n minRows: joi.number().when('hasMany', { is: joi.not(true), then: joi.forbidden() }),\n relationTo: joi.alternatives().try(joi.string().required(), joi.array().items(joi.string())),\n})\n\nexport const blocks = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('blocks').required(),\n blocks: joi\n .array()\n .items(\n joi.object({\n slug: joi.string().required(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n fields: joi.array().items(joi.link('#field')),\n graphQL: joi.object().keys({\n singularName: joi.string(),\n }),\n imageAltText: joi.string(),\n imageURL: joi.string(),\n interfaceName: joi.string(),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n }),\n )\n .required(),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func()),\n labels: joi.object({\n plural: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n singular: joi\n .alternatives()\n .try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n }),\n maxRows: joi.number(),\n minRows: joi.number(),\n})\n\nexport const richText = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('richText').required(),\n admin: baseAdminFields.default(),\n defaultValue: joi.alternatives().try(joi.array().items(joi.object()), joi.func(), joi.object()),\n editor: joi\n .object()\n .keys({\n CellComponent: componentSchema.optional(),\n FieldComponent: componentSchema.optional(),\n LazyCellComponent: joi.func().optional(),\n LazyFieldComponent: joi.func().optional(),\n afterReadPromise: joi.func().optional(),\n outputSchema: joi.func().optional(),\n populationPromise: joi.func().optional(),\n validate: joi.func().required(),\n })\n .unknown(),\n})\n\nexport const date = baseField.keys({\n name: joi.string().required(),\n type: joi.string().valid('date').required(),\n admin: baseAdminFields.keys({\n components: baseAdminComponentFields.keys({\n Error: componentSchema,\n Label: componentSchema,\n afterInput: joi.array().items(componentSchema),\n beforeInput: joi.array().items(componentSchema),\n }),\n date: joi.object({\n displayFormat: joi.string(),\n maxDate: joi.date(),\n maxTime: joi.date(),\n minDate: joi.date(),\n minTime: joi.date(),\n monthsToShow: joi.number(),\n overrides: joi.object().unknown(),\n pickerAppearance: joi.string(),\n timeFormat: joi.string(),\n timeIntervals: joi.number(),\n }),\n placeholder: joi.string(),\n }),\n defaultValue: joi.alternatives().try(joi.string(), joi.func()),\n})\n\nexport const ui = joi.object().keys({\n name: joi.string().required(),\n type: joi.string().valid('ui').required(),\n admin: joi\n .object()\n .keys({\n components: joi\n .object()\n .keys({\n Cell: componentSchema,\n Field: componentSchema,\n })\n .default({}),\n condition: joi.func(),\n position: joi.string().valid('sidebar'),\n width: joi.string(),\n })\n .default(),\n custom: joi.object().pattern(joi.string(), joi.any()),\n label: joi.alternatives().try(joi.string(), joi.object().pattern(joi.string(), [joi.string()])),\n})\n\nconst fieldSchema = joi\n .alternatives()\n .try(\n text,\n number,\n textarea,\n email,\n code,\n json,\n select,\n group,\n array,\n row,\n collapsible,\n tabs,\n radio,\n relationship,\n checkbox,\n upload,\n richText,\n blocks,\n date,\n point,\n ui,\n )\n .id('field')\n\nexport default fieldSchema\n"],"names":["joi","componentSchema","baseAdminComponentFields","object","keys","Cell","Field","Filter","default","baseAdminFields","className","string","components","condition","func","description","alternatives","try","pattern","disableBulkEdit","boolean","disabled","hidden","initCollapsed","position","valid","readOnly","style","unknown","width","baseField","access","create","read","update","admin","custom","any","hooks","afterChange","array","items","afterRead","beforeChange","beforeValidate","index","label","localized","required","saveToJWT","unique","validate","idField","name","type","invalid","not","text","autoComplete","Error","Label","afterInput","beforeInput","placeholder","rtl","defaultValue","hasMany","maxLength","number","maxRows","when","is","then","forbidden","minLength","minRows","otherwise","step","max","min","textarea","rows","email","code","editorOptions","language","json","select","isClearable","isSortable","allow","options","value","radio","layout","row","fields","link","collapsible","tab","exist","interfaceName","tabs","group","hideGutter","RowLabel","labels","plural","singular","upload","filterOptions","maxDepth","relationTo","checkbox","point","relationship","allowCreate","sortOptions","conditional","ref","warning","message","blocks","slug","graphQL","singularName","imageAltText","imageURL","richText","editor","CellComponent","optional","FieldComponent","LazyCellComponent","LazyFieldComponent","afterReadPromise","outputSchema","populationPromise","date","displayFormat","maxDate","maxTime","minDate","minTime","monthsToShow","overrides","pickerAppearance","timeFormat","timeIntervals","ui","fieldSchema","id"],"mappings":"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"}
|
|
@@ -41,4 +41,4 @@ export function fieldIsLocalized(field) {
|
|
|
41
41
|
return 'localized' in field && field.localized;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9maWVsZHMvY29uZmlnL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVzZS1iZWZvcmUtZGVmaW5lICovXG5pbXBvcnQgdHlwZSB7IEVkaXRvclByb3BzIH0gZnJvbSAnQG1vbmFjby1lZGl0b3IvcmVhY3QnXG5pbXBvcnQgdHlwZSB7IENTU1Byb3BlcnRpZXMgfSBmcm9tICdyZWFjdCdcblxuLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5pbXBvcnQgbW9uYWNvZWRpdG9yIGZyb20gJ21vbmFjby1lZGl0b3InIC8vIElNUE9SVEFOVCAtIERPIE5PVCBSRU1PVkU6IFRoaXMgaXMgcmVxdWlyZWQgZm9yIHBucG0ncyBkZWZhdWx0IGlzb2xhdGVkIG1vZGUgdG8gd29yayAtIGV2ZW4gdGhvdWdoIHRoZSBpbXBvcnQgaXMgbm90IHVzZWQuIFRoaXMgaXMgZHVlIHRvIGEgdHlwZXNjcmlwdCBidWc6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvNDc2NjMjaXNzdWVjb21tZW50LTE1MTkxMzgxODkuICh0c2J1Z2lzb2xhdGVkbW9kZSlcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7XG4gIENvbmRpdGlvbmFsRGF0ZVByb3BzLFxuICBEZXNjcmlwdGlvbixcbiAgRXJyb3JQcm9wcyxcbiAgTGFiZWxQcm9wcyxcbiAgUmljaFRleHRBZGFwdGVyLFxuICBSb3dMYWJlbCxcbn0gZnJvbSAnLi4vLi4vYWRtaW4vdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IFVzZXIgfSBmcm9tICcuLi8uLi9hdXRoL2luZGV4LmpzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnLCBUeXBlV2l0aElEIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzLmpzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcy5qcydcbmltcG9ydCB0eXBlIHsgT3BlcmF0aW9uLCBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQsIFdoZXJlIH0gZnJvbSAnLi4vLi4vdHlwZXMvaW5kZXguanMnXG5cbmV4cG9ydCB0eXBlIEZpZWxkSG9va0FyZ3M8VCBleHRlbmRzIFR5cGVXaXRoSUQgPSBhbnksIFAgPSBhbnksIFMgPSBhbnk+ID0ge1xuICAvKiogVGhlIGNvbGxlY3Rpb24gd2hpY2ggdGhlIGZpZWxkIGJlbG9uZ3MgdG8uIElmIHRoZSBmaWVsZCBiZWxvbmdzIHRvIGEgZ2xvYmFsLCB0aGlzIHdpbGwgYmUgbnVsbC4gKi9cbiAgY29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IG51bGxcbiAgY29udGV4dDogUmVxdWVzdENvbnRleHRcbiAgLyoqIFRoZSBkYXRhIHBhc3NlZCB0byB1cGRhdGUgdGhlIGRvY3VtZW50IHdpdGhpbiBjcmVhdGUgYW5kIHVwZGF0ZSBvcGVyYXRpb25zLCBhbmQgdGhlIGZ1bGwgZG9jdW1lbnQgaXRzZWxmIGluIHRoZSBhZnRlclJlYWQgaG9vay4gKi9cbiAgZGF0YT86IFBhcnRpYWw8VD5cbiAgLyoqIFRoZSBmaWVsZCB3aGljaCB0aGUgaG9vayBpcyBydW5uaW5nIGFnYWluc3QuICovXG4gIGZpZWxkOiBGaWVsZEFmZmVjdGluZ0RhdGFcbiAgLyoqIEJvb2xlYW4gdG8gZGVub3RlIGlmIHRoaXMgaG9vayBpcyBydW5uaW5nIGFnYWluc3QgZmluZGluZyBvbmUsIG9yIGZpbmRpbmcgbWFueSB3aXRoaW4gdGhlIGFmdGVyUmVhZCBob29rLiAqL1xuICBmaW5kTWFueT86IGJvb2xlYW5cbiAgLyoqIFRoZSBnbG9iYWwgd2hpY2ggdGhlIGZpZWxkIGJlbG9uZ3MgdG8uIElmIHRoZSBmaWVsZCBiZWxvbmdzIHRvIGEgY29sbGVjdGlvbiwgdGhpcyB3aWxsIGJlIG51bGwuICovXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICAvKiogQSBzdHJpbmcgcmVsYXRpbmcgdG8gd2hpY2ggb3BlcmF0aW9uIHRoZSBmaWVsZCB0eXBlIGlzIGN1cnJlbnRseSBleGVjdXRpbmcgd2l0aGluLiBVc2VmdWwgd2l0aGluIGJlZm9yZVZhbGlkYXRlLCBiZWZvcmVDaGFuZ2UsIGFuZCBhZnRlckNoYW5nZSBob29rcyB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gY3JlYXRlIGFuZCB1cGRhdGUgb3BlcmF0aW9ucy4gKi9cbiAgb3BlcmF0aW9uPzogJ2NyZWF0ZScgfCAnZGVsZXRlJyB8ICdyZWFkJyB8ICd1cGRhdGUnXG4gIC8qKiBUaGUgZnVsbCBvcmlnaW5hbCBkb2N1bWVudCBpbiBgdXBkYXRlYCBvcGVyYXRpb25zLiBJbiB0aGUgYGFmdGVyQ2hhbmdlYCBob29rLCB0aGlzIGlzIHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgb2YgdGhlIG9wZXJhdGlvbi4gKi9cbiAgb3JpZ2luYWxEb2M/OiBUXG4gIC8qKiBUaGUgZG9jdW1lbnQgYmVmb3JlIGNoYW5nZXMgd2VyZSBhcHBsaWVkLCBvbmx5IGluIGBhZnRlckNoYW5nZWAgaG9va3MuICovXG4gIHByZXZpb3VzRG9jPzogVFxuICAvKiogVGhlIHNpYmxpbmcgZGF0YSBvZiB0aGUgZG9jdW1lbnQgYmVmb3JlIGNoYW5nZXMgYmVpbmcgYXBwbGllZCwgb25seSBpbiBgYmVmb3JlQ2hhbmdlYCBhbmQgYGFmdGVyQ2hhbmdlYCBob29rLiAqL1xuICBwcmV2aW91c1NpYmxpbmdEb2M/OiBUXG4gIC8qKiBUaGUgcHJldmlvdXMgdmFsdWUgb2YgdGhlIGZpZWxkLCBiZWZvcmUgY2hhbmdlcywgb25seSBpbiBgYmVmb3JlQ2hhbmdlYCBhbmQgYGFmdGVyQ2hhbmdlYCBob29rcy4gKi9cbiAgcHJldmlvdXNWYWx1ZT86IFBcbiAgLyoqIFRoZSBFeHByZXNzIHJlcXVlc3Qgb2JqZWN0LiBJdCBpcyBtb2NrZWQgZm9yIExvY2FsIEFQSSBvcGVyYXRpb25zLiAqL1xuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIC8qKiBUaGUgc2libGluZyBkYXRhIHBhc3NlZCB0byBhIGZpZWxkIHRoYXQgdGhlIGhvb2sgaXMgcnVubmluZyBhZ2FpbnN0LiAqL1xuICBzaWJsaW5nRGF0YTogUGFydGlhbDxTPlxuICAvKiogVGhlIHZhbHVlIG9mIHRoZSBmaWVsZC4gKi9cbiAgdmFsdWU/OiBQXG59XG5cbmV4cG9ydCB0eXBlIEZpZWxkSG9vazxUIGV4dGVuZHMgVHlwZVdpdGhJRCA9IGFueSwgUCA9IGFueSwgUyA9IGFueT4gPSAoXG4gIGFyZ3M6IEZpZWxkSG9va0FyZ3M8VCwgUCwgUz4sXG4pID0+IFAgfCBQcm9taXNlPFA+XG5cbmV4cG9ydCB0eXBlIEZpZWxkQWNjZXNzPFQgZXh0ZW5kcyBUeXBlV2l0aElEID0gYW55LCBQID0gYW55LCBVID0gYW55PiA9IChhcmdzOiB7XG4gIC8qKlxuICAgKiBUaGUgaW5jb21pbmcgZGF0YSB1c2VkIHRvIGBjcmVhdGVgIG9yIGB1cGRhdGVgIHRoZSBkb2N1bWVudCB3aXRoLiBgZGF0YWAgaXMgdW5kZWZpbmVkIGR1cmluZyB0aGUgYHJlYWRgIG9wZXJhdGlvbi5cbiAgICovXG4gIGRhdGE/OiBQYXJ0aWFsPFQ+XG4gIC8qKlxuICAgKiBUaGUgb3JpZ2luYWwgZGF0YSBvZiB0aGUgZG9jdW1lbnQgYmVmb3JlIHRoZSBgdXBkYXRlYCBpcyBhcHBsaWVkLiBgZG9jYCBpcyB1bmRlZmluZWQgZHVyaW5nIHRoZSBgY3JlYXRlYCBvcGVyYXRpb24uXG4gICAqL1xuICBkb2M/OiBUXG4gIC8qKlxuICAgKiBUaGUgYGlkYCBvZiB0aGUgY3VycmVudCBkb2N1bWVudCBiZWluZyByZWFkIG9yIHVwZGF0ZWQuIGBpZGAgaXMgdW5kZWZpbmVkIGR1cmluZyB0aGUgYGNyZWF0ZWAgb3BlcmF0aW9uLlxuICAgKi9cbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqIFRoZSBgRXhwcmVzc2AgcmVxdWVzdCBvYmplY3QgY29udGFpbmluZyB0aGUgY3VycmVudGx5IGF1dGhlbnRpY2F0ZWQgYHVzZXJgICovXG4gIHJlcTogUGF5bG9hZFJlcXVlc3Q8VT5cbiAgLyoqIFRoZSBgcGF5bG9hZGAgb2JqZWN0IHRvIGludGVyZmFjZSB3aXRoIHRoZSBwYXlsb2FkIEFQSSAqL1xuICBzaWJsaW5nRGF0YT86IFBhcnRpYWw8UD5cbn0pID0+IFByb21pc2U8Ym9vbGVhbj4gfCBib29sZWFuXG5cbmV4cG9ydCB0eXBlIENvbmRpdGlvbjxUIGV4dGVuZHMgVHlwZVdpdGhJRCA9IGFueSwgUCA9IGFueT4gPSAoXG4gIGRhdGE6IFBhcnRpYWw8VD4sXG4gIHNpYmxpbmdEYXRhOiBQYXJ0aWFsPFA+LFxuICB7IHVzZXIgfTogeyB1c2VyOiBVc2VyIH0sXG4pID0+IGJvb2xlYW5cblxuZXhwb3J0IHR5cGUgRmlsdGVyT3B0aW9uc1Byb3BzPFQgPSBhbnk+ID0ge1xuICBkYXRhOiBUXG4gIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgcmVsYXRpb25Ubzogc3RyaW5nXG4gIHNpYmxpbmdEYXRhOiB1bmtub3duXG4gIHVzZXI6IFBhcnRpYWw8VXNlcj5cbn1cblxuZXhwb3J0IHR5cGUgRmlsdGVyT3B0aW9uczxUID0gYW55PiA9XG4gIHwgKChvcHRpb25zOiBGaWx0ZXJPcHRpb25zUHJvcHM8VD4pID0+IFByb21pc2U8V2hlcmUgfCBib29sZWFuPiB8IFdoZXJlIHwgYm9vbGVhbilcbiAgfCBXaGVyZVxuICB8IG51bGxcblxudHlwZSBBZG1pbiA9IHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIGNvbXBvbmVudHM/OiB7XG4gICAgQ2VsbD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgIEZpZWxkPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgRmlsdGVyPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIH1cbiAgLyoqXG4gICAqIFlvdSBjYW4gcHJvZ3JhbW1hdGljYWxseSBzaG93IC8gaGlkZSBmaWVsZHMgYmFzZWQgb24gd2hhdCBvdGhlciBmaWVsZHMgYXJlIGRvaW5nLlxuICAgKiBUaGlzIGlzIGFsc28gcnVuIG9uIHRoZSBzZXJ2ZXIsIHRvIGRldGVybWluZSBpZiB0aGUgZmllbGQgc2hvdWxkIGJlIHZhbGlkYXRlZC5cbiAgICovXG4gIGNvbmRpdGlvbj86IENvbmRpdGlvblxuICBkZXNjcmlwdGlvbj86IERlc2NyaXB0aW9uXG4gIGRpc2FibGVCdWxrRWRpdD86IGJvb2xlYW5cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGhpZGRlbj86IGJvb2xlYW5cbiAgcG9zaXRpb24/OiAnc2lkZWJhcidcbiAgcmVhZE9ubHk/OiBib29sZWFuXG4gIHN0eWxlPzogQ1NTUHJvcGVydGllc1xuICB3aWR0aD86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBMYWJlbHMgPSB7XG4gIHBsdXJhbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZ1xuICBzaW5ndWxhcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBCYXNlVmFsaWRhdGVPcHRpb25zPFREYXRhLCBUU2libGluZ0RhdGE+ID0ge1xuICBkYXRhOiBQYXJ0aWFsPFREYXRhPlxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBvcGVyYXRpb24/OiBPcGVyYXRpb25cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaWJsaW5nRGF0YTogUGFydGlhbDxUU2libGluZ0RhdGE+XG59XG5cbmV4cG9ydCB0eXBlIFZhbGlkYXRlT3B0aW9uczxURGF0YSwgVFNpYmxpbmdEYXRhLCBURmllbGRDb25maWcgZXh0ZW5kcyBvYmplY3Q+ID0gQmFzZVZhbGlkYXRlT3B0aW9uczxcbiAgVERhdGEsXG4gIFRTaWJsaW5nRGF0YVxuPiAmXG4gIFRGaWVsZENvbmZpZ1xuXG5leHBvcnQgdHlwZSBWYWxpZGF0ZTxcbiAgVFZhbHVlID0gYW55LFxuICBURGF0YSA9IGFueSxcbiAgVFNpYmxpbmdEYXRhID0gYW55LFxuICBURmllbGRDb25maWcgZXh0ZW5kcyBvYmplY3QgPSB7fSxcbj4gPSAoXG4gIHZhbHVlOiBUVmFsdWUsXG4gIG9wdGlvbnM6IFZhbGlkYXRlT3B0aW9uczxURGF0YSwgVFNpYmxpbmdEYXRhLCBURmllbGRDb25maWc+LFxuKSA9PiBQcm9taXNlPHN0cmluZyB8IHRydWU+IHwgc3RyaW5nIHwgdHJ1ZVxuXG5leHBvcnQgdHlwZSBDbGllbnRWYWxpZGF0ZSA9IE9taXQ8VmFsaWRhdGUsICdyZXEnPlxuXG5leHBvcnQgdHlwZSBPcHRpb25PYmplY3QgPSB7XG4gIGxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gIHZhbHVlOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgT3B0aW9uID0gT3B0aW9uT2JqZWN0IHwgc3RyaW5nXG5cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRCYXNlIHtcbiAgYWNjZXNzPzoge1xuICAgIGNyZWF0ZT86IEZpZWxkQWNjZXNzXG4gICAgcmVhZD86IEZpZWxkQWNjZXNzXG4gICAgdXBkYXRlPzogRmllbGRBY2Nlc3NcbiAgfVxuICBhZG1pbj86IEFkbWluXG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgZGVmYXVsdFZhbHVlPzogYW55XG4gIGhpZGRlbj86IGJvb2xlYW5cbiAgaG9va3M/OiB7XG4gICAgYWZ0ZXJDaGFuZ2U/OiBGaWVsZEhvb2tbXVxuICAgIGFmdGVyUmVhZD86IEZpZWxkSG9va1tdXG4gICAgYmVmb3JlQ2hhbmdlPzogRmllbGRIb29rW11cbiAgICBiZWZvcmVWYWxpZGF0ZT86IEZpZWxkSG9va1tdXG4gIH1cbiAgaW5kZXg/OiBib29sZWFuXG4gIGxhYmVsPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IGZhbHNlIHwgc3RyaW5nXG4gIGxvY2FsaXplZD86IGJvb2xlYW5cbiAgbmFtZTogc3RyaW5nXG4gIHJlcXVpcmVkPzogYm9vbGVhblxuICBzYXZlVG9KV1Q/OiBib29sZWFuIHwgc3RyaW5nXG4gIHVuaXF1ZT86IGJvb2xlYW5cbiAgdmFsaWRhdGU/OiBWYWxpZGF0ZVxufVxuXG5leHBvcnQgdHlwZSBOdW1iZXJGaWVsZCA9IEZpZWxkQmFzZSAmIHtcbiAgYWRtaW4/OiBBZG1pbiAmIHtcbiAgICAvKiogU2V0IHRoaXMgcHJvcGVydHkgdG8gYSBzdHJpbmcgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGJyb3dzZXIgYXV0b2NvbXBsZXRlLiAqL1xuICAgIGF1dG9Db21wbGV0ZT86IHN0cmluZ1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICAgICAgYWZ0ZXJJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICBiZWZvcmVJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgfVxuICAgIC8qKiBTZXQgdGhpcyBwcm9wZXJ0eSB0byBkZWZpbmUgYSBwbGFjZWhvbGRlciBzdHJpbmcgZm9yIHRoZSBmaWVsZC4gKi9cbiAgICBwbGFjZWhvbGRlcj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBzdHJpbmdcbiAgICAvKiogU2V0IGEgdmFsdWUgZm9yIHRoZSBudW1iZXIgZmllbGQgdG8gaW5jcmVtZW50IC8gZGVjcmVtZW50IHVzaW5nIGJyb3dzZXIgY29udHJvbHMuICovXG4gICAgc3RlcD86IG51bWJlclxuICB9XG4gIC8qKiBNYXhpbXVtIHZhbHVlIGFjY2VwdGVkLiBVc2VkIGluIHRoZSBkZWZhdWx0IGB2YWxpZGF0aW9uYCBmdW5jdGlvbi4gKi9cbiAgbWF4PzogbnVtYmVyXG4gIC8qKiBNaW5pbXVtIHZhbHVlIGFjY2VwdGVkLiBVc2VkIGluIHRoZSBkZWZhdWx0IGB2YWxpZGF0aW9uYCBmdW5jdGlvbi4gKi9cbiAgbWluPzogbnVtYmVyXG4gIHR5cGU6ICdudW1iZXInXG59ICYgKFxuICAgIHwge1xuICAgICAgICAvKiogTWFrZXMgdGhpcyBmaWVsZCBhbiBvcmRlcmVkIGFycmF5IG9mIG51bWJlcnMgaW5zdGVhZCBvZiBqdXN0IGEgc2luZ2xlIG51bWJlci4gKi9cbiAgICAgICAgaGFzTWFueTogdHJ1ZVxuICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2YgbnVtYmVycyBpbiB0aGUgbnVtYmVycyBhcnJheSwgaWYgYGhhc01hbnlgIGlzIHNldCB0byB0cnVlLiAqL1xuICAgICAgICBtYXhSb3dzPzogbnVtYmVyXG4gICAgICAgIC8qKiBNaW5pbXVtIG51bWJlciBvZiBudW1iZXJzIGluIHRoZSBudW1iZXJzIGFycmF5LCBpZiBgaGFzTWFueWAgaXMgc2V0IHRvIHRydWUuICovXG4gICAgICAgIG1pblJvd3M/OiBudW1iZXJcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgLyoqIE1ha2VzIHRoaXMgZmllbGQgYW4gb3JkZXJlZCBhcnJheSBvZiBudW1iZXJzIGluc3RlYWQgb2YganVzdCBhIHNpbmdsZSBudW1iZXIuICovXG4gICAgICAgIGhhc01hbnk/OiBmYWxzZSB8IHVuZGVmaW5lZFxuICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2YgbnVtYmVycyBpbiB0aGUgbnVtYmVycyBhcnJheSwgaWYgYGhhc01hbnlgIGlzIHNldCB0byB0cnVlLiAqL1xuICAgICAgICBtYXhSb3dzPzogdW5kZWZpbmVkXG4gICAgICAgIC8qKiBNaW5pbXVtIG51bWJlciBvZiBudW1iZXJzIGluIHRoZSBudW1iZXJzIGFycmF5LCBpZiBgaGFzTWFueWAgaXMgc2V0IHRvIHRydWUuICovXG4gICAgICAgIG1pblJvd3M/OiB1bmRlZmluZWRcbiAgICAgIH1cbiAgKVxuXG5leHBvcnQgdHlwZSBUZXh0RmllbGQgPSBGaWVsZEJhc2UgJiB7XG4gIGFkbWluPzogQWRtaW4gJiB7XG4gICAgYXV0b0NvbXBsZXRlPzogc3RyaW5nXG4gICAgY29tcG9uZW50cz86IHtcbiAgICAgIEVycm9yPzogUmVhY3QuQ29tcG9uZW50VHlwZTxFcnJvclByb3BzPlxuICAgICAgTGFiZWw/OiBSZWFjdC5Db21wb25lbnRUeXBlPExhYmVsUHJvcHM+XG4gICAgICBhZnRlcklucHV0PzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIGJlZm9yZUlucHV0PzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICB9XG4gICAgcGxhY2Vob2xkZXI/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gICAgcnRsPzogYm9vbGVhblxuICB9XG4gIG1heExlbmd0aD86IG51bWJlclxuICBtaW5MZW5ndGg/OiBudW1iZXJcbiAgdHlwZTogJ3RleHQnXG59ICYgKFxuICAgIHwge1xuICAgICAgICAvKiogTWFrZXMgdGhpcyBmaWVsZCBhbiBvcmRlcmVkIGFycmF5IG9mIHN0cmluZ3MgaW5zdGVhZCBvZiBqdXN0IGEgc2luZ2xlIHN0cmluZy4gKi9cbiAgICAgICAgaGFzTWFueTogdHJ1ZVxuICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2Ygc3RyaW5ncyBpbiB0aGUgc3RyaW5ncyBhcnJheSwgaWYgYGhhc01hbnlgIGlzIHNldCB0byB0cnVlLiAqL1xuICAgICAgICBtYXhSb3dzPzogbnVtYmVyXG4gICAgICAgIC8qKiBNaW5pbXVtIG51bWJlciBvZiBzdHJpbmdzIGluIHRoZSBzdHJpbmdzIGFycmF5LCBpZiBgaGFzTWFueWAgaXMgc2V0IHRvIHRydWUuICovXG4gICAgICAgIG1pblJvd3M/OiBudW1iZXJcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgLyoqIE1ha2VzIHRoaXMgZmllbGQgYW4gb3JkZXJlZCBhcnJheSBvZiBzdHJpbmdzIGluc3RlYWQgb2YganVzdCBhIHNpbmdsZSBzdHJpbmcuICovXG4gICAgICAgIGhhc01hbnk/OiBmYWxzZSB8IHVuZGVmaW5lZFxuICAgICAgICAvKiogTWF4aW11bSBudW1iZXIgb2Ygc3RyaW5ncyBpbiB0aGUgc3RyaW5ncyBhcnJheSwgaWYgYGhhc01hbnlgIGlzIHNldCB0byB0cnVlLiAqL1xuICAgICAgICBtYXhSb3dzPzogdW5kZWZpbmVkXG4gICAgICAgIC8qKiBNaW5pbXVtIG51bWJlciBvZiBzdHJpbmdzIGluIHRoZSBzdHJpbmdzIGFycmF5LCBpZiBgaGFzTWFueWAgaXMgc2V0IHRvIHRydWUuICovXG4gICAgICAgIG1pblJvd3M/OiB1bmRlZmluZWRcbiAgICAgIH1cbiAgKVxuXG5leHBvcnQgdHlwZSBFbWFpbEZpZWxkID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGF1dG9Db21wbGV0ZT86IHN0cmluZ1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICAgICAgYWZ0ZXJJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICBiZWZvcmVJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgfVxuICAgIHBsYWNlaG9sZGVyPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZ1xuICB9XG4gIHR5cGU6ICdlbWFpbCdcbn1cblxuZXhwb3J0IHR5cGUgVGV4dGFyZWFGaWVsZCA9IEZpZWxkQmFzZSAmIHtcbiAgYWRtaW4/OiBBZG1pbiAmIHtcbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgRXJyb3I/OiBSZWFjdC5Db21wb25lbnRUeXBlPEVycm9yUHJvcHM+XG4gICAgICBMYWJlbD86IFJlYWN0LkNvbXBvbmVudFR5cGU8TGFiZWxQcm9wcz5cbiAgICAgIGFmdGVySW5wdXQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgYmVmb3JlSW5wdXQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgIH1cbiAgICBwbGFjZWhvbGRlcj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBzdHJpbmdcbiAgICByb3dzPzogbnVtYmVyXG4gICAgcnRsPzogYm9vbGVhblxuICB9XG4gIG1heExlbmd0aD86IG51bWJlclxuICBtaW5MZW5ndGg/OiBudW1iZXJcbiAgdHlwZTogJ3RleHRhcmVhJ1xufVxuXG5leHBvcnQgdHlwZSBDaGVja2JveEZpZWxkID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICAgICAgYWZ0ZXJJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICBiZWZvcmVJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgfVxuICB9XG4gIHR5cGU6ICdjaGVja2JveCdcbn1cblxuZXhwb3J0IHR5cGUgRGF0ZUZpZWxkID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICAgICAgYWZ0ZXJJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICBiZWZvcmVJbnB1dD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgfVxuICAgIGRhdGU/OiBDb25kaXRpb25hbERhdGVQcm9wc1xuICAgIHBsYWNlaG9sZGVyPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZ1xuICB9XG4gIHR5cGU6ICdkYXRlJ1xufVxuXG5leHBvcnQgdHlwZSBHcm91cEZpZWxkID0gT21pdDxGaWVsZEJhc2UsICdyZXF1aXJlZCcgfCAndmFsaWRhdGlvbic+ICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGhpZGVHdXR0ZXI/OiBib29sZWFuXG4gIH1cbiAgZmllbGRzOiBGaWVsZFtdXG4gIC8qKiBDdXN0b21pemUgZ2VuZXJhdGVkIEdyYXBoUUwgYW5kIFR5cGVzY3JpcHQgc2NoZW1hIG5hbWVzLlxuICAgKiBCeSBkZWZhdWx0IGl0IGlzIGJvdW5kIHRvIHRoZSBjb2xsZWN0aW9uLlxuICAgKlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd291bGQgbGlrZSB0byBnZW5lcmF0ZSBhIHRvcCBsZXZlbCB0eXBlIHRvIHNoYXJlIGFtb25nc3QgY29sbGVjdGlvbnMvZmllbGRzLlxuICAgKiAqKk5vdGUqKjogVG9wIGxldmVsIHR5cGVzIGNhbiBjb2xsaWRlLCBlbnN1cmUgdGhleSBhcmUgdW5pcXVlIGFtb25nIGNvbGxlY3Rpb25zLCBhcnJheXMsIGdyb3VwcywgYmxvY2tzLCB0YWJzLlxuICAgKi9cbiAgaW50ZXJmYWNlTmFtZT86IHN0cmluZ1xuICB0eXBlOiAnZ3JvdXAnXG59XG5cbmV4cG9ydCB0eXBlIFJvd0FkbWluID0gT21pdDxBZG1pbiwgJ2Rlc2NyaXB0aW9uJz5cblxuZXhwb3J0IHR5cGUgUm93RmllbGQgPSBPbWl0PEZpZWxkQmFzZSwgJ2FkbWluJyB8ICdsYWJlbCcgfCAnbmFtZSc+ICYge1xuICBhZG1pbj86IFJvd0FkbWluXG4gIGZpZWxkczogRmllbGRbXVxuICB0eXBlOiAncm93J1xufVxuXG5leHBvcnQgdHlwZSBDb2xsYXBzaWJsZUZpZWxkID0gT21pdDxGaWVsZEJhc2UsICdsYWJlbCcgfCAnbmFtZSc+ICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGluaXRDb2xsYXBzZWQ/OiBib29sZWFuXG4gIH1cbiAgZmllbGRzOiBGaWVsZFtdXG4gIGxhYmVsOiBSb3dMYWJlbFxuICB0eXBlOiAnY29sbGFwc2libGUnXG59XG5cbmV4cG9ydCB0eXBlIFRhYnNBZG1pbiA9IE9taXQ8QWRtaW4sICdkZXNjcmlwdGlvbic+XG5cbnR5cGUgVGFiQmFzZSA9IE9taXQ8RmllbGRCYXNlLCAncmVxdWlyZWQnIHwgJ3ZhbGlkYXRpb24nPiAmIHtcbiAgZGVzY3JpcHRpb24/OiBEZXNjcmlwdGlvblxuICBmaWVsZHM6IEZpZWxkW11cbiAgaW50ZXJmYWNlTmFtZT86IHN0cmluZ1xuICBzYXZlVG9KV1Q/OiBib29sZWFuIHwgc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIE5hbWVkVGFiID0gVGFiQmFzZSAmIHtcbiAgLyoqIEN1c3RvbWl6ZSBnZW5lcmF0ZWQgR3JhcGhRTCBhbmQgVHlwZXNjcmlwdCBzY2hlbWEgbmFtZXMuXG4gICAqIFRoZSBzbHVnIGlzIHVzZWQgYnkgZGVmYXVsdC5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VmdWwgaWYgeW91IHdvdWxkIGxpa2UgdG8gZ2VuZXJhdGUgYSB0b3AgbGV2ZWwgdHlwZSB0byBzaGFyZSBhbW9uZ3N0IGNvbGxlY3Rpb25zL2ZpZWxkcy5cbiAgICogKipOb3RlKio6IFRvcCBsZXZlbCB0eXBlcyBjYW4gY29sbGlkZSwgZW5zdXJlIHRoZXkgYXJlIHVuaXF1ZSBhbW9uZyBjb2xsZWN0aW9ucywgYXJyYXlzLCBncm91cHMsIGJsb2NrcywgdGFicy5cbiAgICovXG4gIGludGVyZmFjZU5hbWU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgVW5uYW1lZFRhYiA9IE9taXQ8VGFiQmFzZSwgJ25hbWUnPiAmIHtcbiAgaW50ZXJmYWNlTmFtZT86IG5ldmVyXG4gIGxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gIGxvY2FsaXplZD86IG5ldmVyXG59XG5cbmV4cG9ydCB0eXBlIFRhYiA9IE5hbWVkVGFiIHwgVW5uYW1lZFRhYlxuXG5leHBvcnQgdHlwZSBUYWJzRmllbGQgPSBPbWl0PEZpZWxkQmFzZSwgJ2FkbWluJyB8ICdsb2NhbGl6ZWQnIHwgJ25hbWUnIHwgJ3NhdmVUb0pXVCc+ICYge1xuICBhZG1pbj86IFRhYnNBZG1pblxuICB0YWJzOiBUYWJbXVxuICB0eXBlOiAndGFicydcbn1cblxuZXhwb3J0IHR5cGUgVGFiQXNGaWVsZCA9IFRhYiAmIHtcbiAgbmFtZT86IHN0cmluZ1xuICB0eXBlOiAndGFiJ1xufVxuXG5leHBvcnQgdHlwZSBVSUZpZWxkID0ge1xuICBhZG1pbjoge1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBDZWxsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICBGaWVsZDogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICBGaWx0ZXI/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICB9XG4gICAgY29uZGl0aW9uPzogQ29uZGl0aW9uXG4gICAgZGlzYWJsZUJ1bGtFZGl0PzogYm9vbGVhblxuICAgIHBvc2l0aW9uPzogc3RyaW5nXG4gICAgd2lkdGg/OiBzdHJpbmdcbiAgfVxuICAvKiogRXh0ZW5zaW9uIHBvaW50IHRvIGFkZCB5b3VyIGN1c3RvbSBkYXRhLiAqL1xuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gIGxhYmVsPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgdHlwZTogJ3VpJ1xufVxuXG5leHBvcnQgdHlwZSBVcGxvYWRGaWVsZCA9IEZpZWxkQmFzZSAmIHtcbiAgYWRtaW4/OiB7XG4gICAgY29tcG9uZW50cz86IHtcbiAgICAgIEVycm9yPzogUmVhY3QuQ29tcG9uZW50VHlwZTxFcnJvclByb3BzPlxuICAgICAgTGFiZWw/OiBSZWFjdC5Db21wb25lbnRUeXBlPExhYmVsUHJvcHM+XG4gICAgfVxuICB9XG4gIGZpbHRlck9wdGlvbnM/OiBGaWx0ZXJPcHRpb25zXG4gIG1heERlcHRoPzogbnVtYmVyXG4gIHJlbGF0aW9uVG86IHN0cmluZ1xuICB0eXBlOiAndXBsb2FkJ1xufVxuXG50eXBlIENvZGVBZG1pbiA9IEFkbWluICYge1xuICBjb21wb25lbnRzPzoge1xuICAgIEVycm9yPzogUmVhY3QuQ29tcG9uZW50VHlwZTxFcnJvclByb3BzPlxuICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICB9XG4gIGVkaXRvck9wdGlvbnM/OiBFZGl0b3JQcm9wc1snb3B0aW9ucyddXG4gIGxhbmd1YWdlPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIENvZGVGaWVsZCA9IE9taXQ8RmllbGRCYXNlLCAnYWRtaW4nPiAmIHtcbiAgYWRtaW4/OiBDb2RlQWRtaW5cbiAgbWF4TGVuZ3RoPzogbnVtYmVyXG4gIG1pbkxlbmd0aD86IG51bWJlclxuICB0eXBlOiAnY29kZSdcbn1cblxudHlwZSBKU09OQWRtaW4gPSBBZG1pbiAmIHtcbiAgY29tcG9uZW50cz86IHtcbiAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICBMYWJlbD86IFJlYWN0LkNvbXBvbmVudFR5cGU8TGFiZWxQcm9wcz5cbiAgfVxuICBlZGl0b3JPcHRpb25zPzogRWRpdG9yUHJvcHNbJ29wdGlvbnMnXVxufVxuXG5leHBvcnQgdHlwZSBKU09ORmllbGQgPSBPbWl0PEZpZWxkQmFzZSwgJ2FkbWluJz4gJiB7XG4gIGFkbWluPzogSlNPTkFkbWluXG4gIHR5cGU6ICdqc29uJ1xufVxuXG5leHBvcnQgdHlwZSBTZWxlY3RGaWVsZCA9IEZpZWxkQmFzZSAmIHtcbiAgYWRtaW4/OiBBZG1pbiAmIHtcbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgRXJyb3I/OiBSZWFjdC5Db21wb25lbnRUeXBlPEVycm9yUHJvcHM+XG4gICAgICBMYWJlbD86IFJlYWN0LkNvbXBvbmVudFR5cGU8TGFiZWxQcm9wcz5cbiAgICB9XG4gICAgaXNDbGVhcmFibGU/OiBib29sZWFuXG4gICAgaXNTb3J0YWJsZT86IGJvb2xlYW5cbiAgfVxuICBoYXNNYW55PzogYm9vbGVhblxuICBvcHRpb25zOiBPcHRpb25bXVxuICB0eXBlOiAnc2VsZWN0J1xufVxuXG50eXBlIFNoYXJlZFJlbGF0aW9uc2hpcFByb3BlcnRpZXMgPSBGaWVsZEJhc2UgJiB7XG4gIGZpbHRlck9wdGlvbnM/OiBGaWx0ZXJPcHRpb25zXG4gIGhhc01hbnk/OiBib29sZWFuXG4gIG1heERlcHRoPzogbnVtYmVyXG4gIHR5cGU6ICdyZWxhdGlvbnNoaXAnXG59ICYgKFxuICAgIHwge1xuICAgICAgICBoYXNNYW55OiB0cnVlXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVwcmVjYXRlZCBVc2UgJ21heFJvd3MnIGluc3RlYWRcbiAgICAgICAgICovXG4gICAgICAgIG1heD86IG51bWJlclxuICAgICAgICBtYXhSb3dzPzogbnVtYmVyXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVwcmVjYXRlZCBVc2UgJ21pblJvd3MnIGluc3RlYWRcbiAgICAgICAgICovXG4gICAgICAgIG1pbj86IG51bWJlclxuICAgICAgICBtaW5Sb3dzPzogbnVtYmVyXG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIGhhc01hbnk/OiBmYWxzZSB8IHVuZGVmaW5lZFxuICAgICAgICAvKipcbiAgICAgICAgICogQGRlcHJlY2F0ZWQgVXNlICdtYXhSb3dzJyBpbnN0ZWFkXG4gICAgICAgICAqL1xuICAgICAgICBtYXg/OiB1bmRlZmluZWRcbiAgICAgICAgbWF4Um93cz86IHVuZGVmaW5lZFxuICAgICAgICAvKipcbiAgICAgICAgICogQGRlcHJlY2F0ZWQgVXNlICdtaW5Sb3dzJyBpbnN0ZWFkXG4gICAgICAgICAqL1xuICAgICAgICBtaW4/OiB1bmRlZmluZWRcbiAgICAgICAgbWluUm93cz86IHVuZGVmaW5lZFxuICAgICAgfVxuICApXG5cbnR5cGUgUmVsYXRpb25zaGlwQWRtaW4gPSBBZG1pbiAmIHtcbiAgYWxsb3dDcmVhdGU/OiBib29sZWFuXG4gIGNvbXBvbmVudHM/OiB7XG4gICAgRXJyb3I/OiBSZWFjdC5Db21wb25lbnRUeXBlPEVycm9yUHJvcHM+XG4gICAgTGFiZWw/OiBSZWFjdC5Db21wb25lbnRUeXBlPExhYmVsUHJvcHM+XG4gIH1cbiAgaXNTb3J0YWJsZT86IGJvb2xlYW5cbn1cbmV4cG9ydCB0eXBlIFBvbHltb3JwaGljUmVsYXRpb25zaGlwRmllbGQgPSBTaGFyZWRSZWxhdGlvbnNoaXBQcm9wZXJ0aWVzICYge1xuICBhZG1pbj86IFJlbGF0aW9uc2hpcEFkbWluICYge1xuICAgIHNvcnRPcHRpb25zPzogeyBbY29sbGVjdGlvblNsdWc6IHN0cmluZ106IHN0cmluZyB9XG4gIH1cbiAgcmVsYXRpb25Ubzogc3RyaW5nW11cbn1cbmV4cG9ydCB0eXBlIFNpbmdsZVJlbGF0aW9uc2hpcEZpZWxkID0gU2hhcmVkUmVsYXRpb25zaGlwUHJvcGVydGllcyAmIHtcbiAgYWRtaW4/OiBSZWxhdGlvbnNoaXBBZG1pbiAmIHtcbiAgICBzb3J0T3B0aW9ucz86IHN0cmluZ1xuICB9XG4gIHJlbGF0aW9uVG86IHN0cmluZ1xufVxuZXhwb3J0IHR5cGUgUmVsYXRpb25zaGlwRmllbGQgPSBQb2x5bW9ycGhpY1JlbGF0aW9uc2hpcEZpZWxkIHwgU2luZ2xlUmVsYXRpb25zaGlwRmllbGRcblxuZXhwb3J0IHR5cGUgVmFsdWVXaXRoUmVsYXRpb24gPSB7XG4gIHJlbGF0aW9uVG86IHN0cmluZ1xuICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUlzVmFsdWVXaXRoUmVsYXRpb24odmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBWYWx1ZVdpdGhSZWxhdGlvbiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdyZWxhdGlvblRvJyBpbiB2YWx1ZSAmJiAndmFsdWUnIGluIHZhbHVlXG59XG5cbmV4cG9ydCB0eXBlIFJlbGF0aW9uc2hpcFZhbHVlID1cbiAgfCAobnVtYmVyIHwgc3RyaW5nKVtdXG4gIHwgVmFsdWVXaXRoUmVsYXRpb25cbiAgfCBWYWx1ZVdpdGhSZWxhdGlvbltdXG4gIHwgKG51bWJlciB8IHN0cmluZylcblxuZXhwb3J0IHR5cGUgUmljaFRleHRGaWVsZDxcbiAgVmFsdWUgZXh0ZW5kcyBvYmplY3QgPSBhbnksXG4gIEFkYXB0ZXJQcm9wcyA9IGFueSxcbiAgRXh0cmFQcm9wZXJ0aWVzID0ge30sXG4+ID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IEFkbWluXG4gIGVkaXRvcj86IFJpY2hUZXh0QWRhcHRlcjxWYWx1ZSwgQWRhcHRlclByb3BzLCBBZGFwdGVyUHJvcHM+XG4gIHR5cGU6ICdyaWNoVGV4dCdcbn0gJiBFeHRyYVByb3BlcnRpZXNcblxuZXhwb3J0IHR5cGUgQXJyYXlGaWVsZCA9IEZpZWxkQmFzZSAmIHtcbiAgYWRtaW4/OiBBZG1pbiAmIHtcbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgUm93TGFiZWw/OiBSb3dMYWJlbFxuICAgIH0gJiBBZG1pblsnY29tcG9uZW50cyddXG4gICAgaW5pdENvbGxhcHNlZD86IGJvb2xlYW5cbiAgfVxuICBmaWVsZHM6IEZpZWxkW11cbiAgLyoqIEN1c3RvbWl6ZSBnZW5lcmF0ZWQgR3JhcGhRTCBhbmQgVHlwZXNjcmlwdCBzY2hlbWEgbmFtZXMuXG4gICAqIEJ5IGRlZmF1bHQgaXQgaXMgYm91bmQgdG8gdGhlIGNvbGxlY3Rpb24uXG4gICAqXG4gICAqIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSB3b3VsZCBsaWtlIHRvIGdlbmVyYXRlIGEgdG9wIGxldmVsIHR5cGUgdG8gc2hhcmUgYW1vbmdzdCBjb2xsZWN0aW9ucy9maWVsZHMuXG4gICAqICoqTm90ZSoqOiBUb3AgbGV2ZWwgdHlwZXMgY2FuIGNvbGxpZGUsIGVuc3VyZSB0aGV5IGFyZSB1bmlxdWUgYW1vbmcgY29sbGVjdGlvbnMsIGFycmF5cywgZ3JvdXBzLCBibG9ja3MsIHRhYnMuXG4gICAqL1xuICBpbnRlcmZhY2VOYW1lPzogc3RyaW5nXG4gIGxhYmVscz86IExhYmVsc1xuICBtYXhSb3dzPzogbnVtYmVyXG4gIG1pblJvd3M/OiBudW1iZXJcbiAgdHlwZTogJ2FycmF5J1xufVxuXG5leHBvcnQgdHlwZSBSYWRpb0ZpZWxkID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICBFcnJvcj86IFJlYWN0LkNvbXBvbmVudFR5cGU8RXJyb3JQcm9wcz5cbiAgICAgIExhYmVsPzogUmVhY3QuQ29tcG9uZW50VHlwZTxMYWJlbFByb3BzPlxuICAgIH1cbiAgICBsYXlvdXQ/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnXG4gIH1cbiAgb3B0aW9uczogT3B0aW9uW11cbiAgdHlwZTogJ3JhZGlvJ1xufVxuXG5leHBvcnQgdHlwZSBCbG9jayA9IHtcbiAgLyoqIEV4dGVuc2lvbiBwb2ludCB0byBhZGQgeW91ciBjdXN0b20gZGF0YS4gKi9cbiAgY3VzdG9tPzogUmVjb3JkPHN0cmluZywgYW55PlxuICBmaWVsZHM6IEZpZWxkW11cbiAgLyoqIEBkZXByZWNhdGVkIC0gcGxlYXNlIG1pZ3JhdGUgdG8gdGhlIGludGVyZmFjZU5hbWUgcHJvcGVydHkgaW5zdGVhZC4gKi9cbiAgZ3JhcGhRTD86IHtcbiAgICBzaW5ndWxhck5hbWU/OiBzdHJpbmdcbiAgfVxuICBpbWFnZUFsdFRleHQ/OiBzdHJpbmdcbiAgaW1hZ2VVUkw/OiBzdHJpbmdcbiAgLyoqIEN1c3RvbWl6ZSBnZW5lcmF0ZWQgR3JhcGhRTCBhbmQgVHlwZXNjcmlwdCBzY2hlbWEgbmFtZXMuXG4gICAqIFRoZSBzbHVnIGlzIHVzZWQgYnkgZGVmYXVsdC5cbiAgICpcbiAgICogVGhpcyBpcyB1c2VmdWwgaWYgeW91IHdvdWxkIGxpa2UgdG8gZ2VuZXJhdGUgYSB0b3AgbGV2ZWwgdHlwZSB0byBzaGFyZSBhbW9uZ3N0IGNvbGxlY3Rpb25zL2ZpZWxkcy5cbiAgICogKipOb3RlKio6IFRvcCBsZXZlbCB0eXBlcyBjYW4gY29sbGlkZSwgZW5zdXJlIHRoZXkgYXJlIHVuaXF1ZSBhbW9uZyBjb2xsZWN0aW9ucywgYXJyYXlzLCBncm91cHMsIGJsb2NrcywgdGFicy5cbiAgICovXG4gIGludGVyZmFjZU5hbWU/OiBzdHJpbmdcbiAgbGFiZWxzPzogTGFiZWxzXG4gIHNsdWc6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBCbG9ja0ZpZWxkID0gRmllbGRCYXNlICYge1xuICBhZG1pbj86IEFkbWluICYge1xuICAgIGluaXRDb2xsYXBzZWQ/OiBib29sZWFuXG4gIH1cbiAgYmxvY2tzOiBCbG9ja1tdXG4gIGRlZmF1bHRWYWx1ZT86IHVua25vd25cbiAgbGFiZWxzPzogTGFiZWxzXG4gIG1heFJvd3M/OiBudW1iZXJcbiAgbWluUm93cz86IG51bWJlclxuICB0eXBlOiAnYmxvY2tzJ1xufVxuXG5leHBvcnQgdHlwZSBQb2ludEZpZWxkID0gRmllbGRCYXNlICYge1xuICB0eXBlOiAncG9pbnQnXG59XG5cbmV4cG9ydCB0eXBlIEZpZWxkID1cbiAgfCBBcnJheUZpZWxkXG4gIHwgQmxvY2tGaWVsZFxuICB8IENoZWNrYm94RmllbGRcbiAgfCBDb2RlRmllbGRcbiAgfCBDb2xsYXBzaWJsZUZpZWxkXG4gIHwgRGF0ZUZpZWxkXG4gIHwgRW1haWxGaWVsZFxuICB8IEdyb3VwRmllbGRcbiAgfCBKU09ORmllbGRcbiAgfCBOdW1iZXJGaWVsZFxuICB8IFBvaW50RmllbGRcbiAgfCBSYWRpb0ZpZWxkXG4gIHwgUmVsYXRpb25zaGlwRmllbGRcbiAgfCBSaWNoVGV4dEZpZWxkXG4gIHwgUm93RmllbGRcbiAgfCBTZWxlY3RGaWVsZFxuICB8IFRhYnNGaWVsZFxuICB8IFRleHRGaWVsZFxuICB8IFRleHRhcmVhRmllbGRcbiAgfCBVSUZpZWxkXG4gIHwgVXBsb2FkRmllbGRcblxuZXhwb3J0IHR5cGUgQ2xpZW50Q29uZmlnRmllbGQgPSBPbWl0PEZpZWxkLCAnYWNjZXNzJyB8ICdkZWZhdWx0VmFsdWUnIHwgJ2hvb2tzJyB8ICd2YWxpZGF0ZSc+XG5cbmV4cG9ydCB0eXBlIEZpZWxkQWZmZWN0aW5nRGF0YSA9XG4gIHwgQXJyYXlGaWVsZFxuICB8IEJsb2NrRmllbGRcbiAgfCBDaGVja2JveEZpZWxkXG4gIHwgQ29kZUZpZWxkXG4gIHwgRGF0ZUZpZWxkXG4gIHwgRW1haWxGaWVsZFxuICB8IEdyb3VwRmllbGRcbiAgfCBKU09ORmllbGRcbiAgfCBOdW1iZXJGaWVsZFxuICB8IFBvaW50RmllbGRcbiAgfCBSYWRpb0ZpZWxkXG4gIHwgUmVsYXRpb25zaGlwRmllbGRcbiAgfCBSaWNoVGV4dEZpZWxkXG4gIHwgU2VsZWN0RmllbGRcbiAgfCBUYWJBc0ZpZWxkXG4gIHwgVGV4dEZpZWxkXG4gIHwgVGV4dGFyZWFGaWVsZFxuICB8IFVwbG9hZEZpZWxkXG5cbmV4cG9ydCB0eXBlIE5vblByZXNlbnRhdGlvbmFsRmllbGQgPVxuICB8IEFycmF5RmllbGRcbiAgfCBCbG9ja0ZpZWxkXG4gIHwgQ2hlY2tib3hGaWVsZFxuICB8IENvZGVGaWVsZFxuICB8IENvbGxhcHNpYmxlRmllbGRcbiAgfCBEYXRlRmllbGRcbiAgfCBFbWFpbEZpZWxkXG4gIHwgR3JvdXBGaWVsZFxuICB8IEpTT05GaWVsZFxuICB8IE51bWJlckZpZWxkXG4gIHwgUG9pbnRGaWVsZFxuICB8IFJhZGlvRmllbGRcbiAgfCBSZWxhdGlvbnNoaXBGaWVsZFxuICB8IFJpY2hUZXh0RmllbGRcbiAgfCBSb3dGaWVsZFxuICB8IFNlbGVjdEZpZWxkXG4gIHwgVGFic0ZpZWxkXG4gIHwgVGV4dEZpZWxkXG4gIHwgVGV4dGFyZWFGaWVsZFxuICB8IFVwbG9hZEZpZWxkXG5cbmV4cG9ydCB0eXBlIEZpZWxkV2l0aFBhdGggPSBGaWVsZCAmIHtcbiAgcGF0aD86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBGaWVsZFdpdGhTdWJGaWVsZHMgPSBBcnJheUZpZWxkIHwgQ29sbGFwc2libGVGaWVsZCB8IEdyb3VwRmllbGQgfCBSb3dGaWVsZFxuXG5leHBvcnQgdHlwZSBGaWVsZFByZXNlbnRhdGlvbmFsT25seSA9IFVJRmllbGRcblxuZXhwb3J0IHR5cGUgRmllbGRXaXRoTWFueSA9IFJlbGF0aW9uc2hpcEZpZWxkIHwgU2VsZWN0RmllbGRcblxuZXhwb3J0IHR5cGUgRmllbGRXaXRoTWF4RGVwdGggPSBSZWxhdGlvbnNoaXBGaWVsZCB8IFVwbG9hZEZpZWxkXG5cbmV4cG9ydCBmdW5jdGlvbiBmaWVsZEhhc1N1YkZpZWxkcyhmaWVsZDogRmllbGQpOiBmaWVsZCBpcyBGaWVsZFdpdGhTdWJGaWVsZHMge1xuICByZXR1cm4gKFxuICAgIGZpZWxkLnR5cGUgPT09ICdncm91cCcgfHxcbiAgICBmaWVsZC50eXBlID09PSAnYXJyYXknIHx8XG4gICAgZmllbGQudHlwZSA9PT0gJ3JvdycgfHxcbiAgICBmaWVsZC50eXBlID09PSAnY29sbGFwc2libGUnXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpZWxkSXNBcnJheVR5cGUoZmllbGQ6IEZpZWxkKTogZmllbGQgaXMgQXJyYXlGaWVsZCB7XG4gIHJldHVybiBmaWVsZC50eXBlID09PSAnYXJyYXknXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWVsZElzQmxvY2tUeXBlKGZpZWxkOiBGaWVsZCk6IGZpZWxkIGlzIEJsb2NrRmllbGQge1xuICByZXR1cm4gZmllbGQudHlwZSA9PT0gJ2Jsb2Nrcydcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpZWxkSXNHcm91cFR5cGUoZmllbGQ6IEZpZWxkKTogZmllbGQgaXMgR3JvdXBGaWVsZCB7XG4gIHJldHVybiBmaWVsZC50eXBlID09PSAnZ3JvdXAnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25Jc09iamVjdChvcHRpb246IE9wdGlvbik6IG9wdGlvbiBpcyBPcHRpb25PYmplY3Qge1xuICByZXR1cm4gdHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbnNBcmVPYmplY3RzKG9wdGlvbnM6IE9wdGlvbltdKTogb3B0aW9ucyBpcyBPcHRpb25PYmplY3RbXSB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG9wdGlvbnMpICYmIHR5cGVvZiBvcHRpb25zPy5bMF0gPT09ICdvYmplY3QnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25Jc1ZhbHVlKG9wdGlvbjogT3B0aW9uKTogb3B0aW9uIGlzIHN0cmluZyB7XG4gIHJldHVybiB0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmllbGRTdXBwb3J0c01hbnkoZmllbGQ6IEZpZWxkKTogZmllbGQgaXMgRmllbGRXaXRoTWFueSB7XG4gIHJldHVybiBmaWVsZC50eXBlID09PSAnc2VsZWN0JyB8fCBmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmllbGRIYXNNYXhEZXB0aChmaWVsZDogRmllbGQpOiBmaWVsZCBpcyBGaWVsZFdpdGhNYXhEZXB0aCB7XG4gIHJldHVybiAoXG4gICAgKGZpZWxkLnR5cGUgPT09ICd1cGxvYWQnIHx8IGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnKSAmJiB0eXBlb2YgZmllbGQubWF4RGVwdGggPT09ICdudW1iZXInXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpZWxkSXNQcmVzZW50YXRpb25hbE9ubHkoZmllbGQ6IEZpZWxkIHwgVGFiQXNGaWVsZCk6IGZpZWxkIGlzIFVJRmllbGQge1xuICByZXR1cm4gZmllbGQudHlwZSA9PT0gJ3VpJ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmllbGRBZmZlY3RzRGF0YShmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkKTogZmllbGQgaXMgRmllbGRBZmZlY3RpbmdEYXRhIHtcbiAgcmV0dXJuICduYW1lJyBpbiBmaWVsZCAmJiAhZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seShmaWVsZClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRhYkhhc05hbWUodGFiOiBUYWIpOiB0YWIgaXMgTmFtZWRUYWIge1xuICByZXR1cm4gJ25hbWUnIGluIHRhYlxufVxuXG5leHBvcnQgZnVuY3Rpb24gZmllbGRJc0xvY2FsaXplZChmaWVsZDogRmllbGQgfCBUYWIpOiBib29sZWFuIHtcbiAgcmV0dXJuICdsb2NhbGl6ZWQnIGluIGZpZWxkICYmIGZpZWxkLmxvY2FsaXplZFxufVxuXG5leHBvcnQgdHlwZSBIb29rTmFtZSA9XG4gIHwgJ2FmdGVyQ2hhbmdlJ1xuICB8ICdhZnRlclJlYWQnXG4gIHwgJ2JlZm9yZUNoYW5nZSdcbiAgfCAnYmVmb3JlUmVhZCdcbiAgfCAnYmVmb3JlVmFsaWRhdGUnXG4iXSwibmFtZXMiOlsidmFsdWVJc1ZhbHVlV2l0aFJlbGF0aW9uIiwidmFsdWUiLCJmaWVsZEhhc1N1YkZpZWxkcyIsImZpZWxkIiwidHlwZSIsImZpZWxkSXNBcnJheVR5cGUiLCJmaWVsZElzQmxvY2tUeXBlIiwiZmllbGRJc0dyb3VwVHlwZSIsIm9wdGlvbklzT2JqZWN0Iiwib3B0aW9uIiwib3B0aW9uc0FyZU9iamVjdHMiLCJvcHRpb25zIiwiQXJyYXkiLCJpc0FycmF5Iiwib3B0aW9uSXNWYWx1ZSIsImZpZWxkU3VwcG9ydHNNYW55IiwiZmllbGRIYXNNYXhEZXB0aCIsIm1heERlcHRoIiwiZmllbGRJc1ByZXNlbnRhdGlvbmFsT25seSIsImZpZWxkQWZmZWN0c0RhdGEiLCJ0YWJIYXNOYW1lIiwidGFiIiwiZmllbGRJc0xvY2FsaXplZCIsImxvY2FsaXplZCJdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDLEdBb2dCdkMsT0FBTyxTQUFTQSx5QkFBeUJDLEtBQWM7SUFDckQsT0FBT0EsVUFBVSxRQUFRLE9BQU9BLFVBQVUsWUFBWSxnQkFBZ0JBLFNBQVMsV0FBV0E7QUFDNUY7QUF1S0EsT0FBTyxTQUFTQyxrQkFBa0JDLEtBQVk7SUFDNUMsT0FDRUEsTUFBTUMsSUFBSSxLQUFLLFdBQ2ZELE1BQU1DLElBQUksS0FBSyxXQUNmRCxNQUFNQyxJQUFJLEtBQUssU0FDZkQsTUFBTUMsSUFBSSxLQUFLO0FBRW5CO0FBRUEsT0FBTyxTQUFTQyxpQkFBaUJGLEtBQVk7SUFDM0MsT0FBT0EsTUFBTUMsSUFBSSxLQUFLO0FBQ3hCO0FBRUEsT0FBTyxTQUFTRSxpQkFBaUJILEtBQVk7SUFDM0MsT0FBT0EsTUFBTUMsSUFBSSxLQUFLO0FBQ3hCO0FBRUEsT0FBTyxTQUFTRyxpQkFBaUJKLEtBQVk7SUFDM0MsT0FBT0EsTUFBTUMsSUFBSSxLQUFLO0FBQ3hCO0FBRUEsT0FBTyxTQUFTSSxlQUFlQyxNQUFjO0lBQzNDLE9BQU8sT0FBT0EsV0FBVztBQUMzQjtBQUVBLE9BQU8sU0FBU0Msa0JBQWtCQyxPQUFpQjtJQUNqRCxPQUFPQyxNQUFNQyxPQUFPLENBQUNGLFlBQVksT0FBT0EsU0FBUyxDQUFDLEVBQUUsS0FBSztBQUMzRDtBQUVBLE9BQU8sU0FBU0csY0FBY0wsTUFBYztJQUMxQyxPQUFPLE9BQU9BLFdBQVc7QUFDM0I7QUFFQSxPQUFPLFNBQVNNLGtCQUFrQlosS0FBWTtJQUM1QyxPQUFPQSxNQUFNQyxJQUFJLEtBQUssWUFBWUQsTUFBTUMsSUFBSSxLQUFLO0FBQ25EO0FBRUEsT0FBTyxTQUFTWSxpQkFBaUJiLEtBQVk7SUFDM0MsT0FDRSxBQUFDQSxDQUFBQSxNQUFNQyxJQUFJLEtBQUssWUFBWUQsTUFBTUMsSUFBSSxLQUFLLGNBQWEsS0FBTSxPQUFPRCxNQUFNYyxRQUFRLEtBQUs7QUFFNUY7QUFFQSxPQUFPLFNBQVNDLDBCQUEwQmYsS0FBeUI7SUFDakUsT0FBT0EsTUFBTUMsSUFBSSxLQUFLO0FBQ3hCO0FBRUEsT0FBTyxTQUFTZSxpQkFBaUJoQixLQUF5QjtJQUN4RCxPQUFPLFVBQVVBLFNBQVMsQ0FBQ2UsMEJBQTBCZjtBQUN2RDtBQUVBLE9BQU8sU0FBU2lCLFdBQVdDLEdBQVE7SUFDakMsT0FBTyxVQUFVQTtBQUNuQjtBQUVBLE9BQU8sU0FBU0MsaUJBQWlCbkIsS0FBa0I7SUFDakQsT0FBTyxlQUFlQSxTQUFTQSxNQUFNb0IsU0FBUztBQUNoRCJ9
|
|
44
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/config/types.ts"],"sourcesContent":["/* eslint-disable no-use-before-define */\nimport type { EditorProps } from '@monaco-editor/react'\nimport type { CSSProperties } from 'react'\n\n//eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport monacoeditor from 'monaco-editor' // IMPORTANT - DO NOT REMOVE: This is required for pnpm's default isolated mode to work - even though the import is not used. This is due to a typescript bug: https://github.com/microsoft/TypeScript/issues/47663#issuecomment-1519138189. (tsbugisolatedmode)\nimport type React from 'react'\n\nimport type {\n ConditionalDateProps,\n Description,\n ErrorProps,\n LabelProps,\n RichTextAdapter,\n RowLabel,\n} from '../../admin/types.js'\nimport type { User } from '../../auth/index.js'\nimport type { SanitizedCollectionConfig, TypeWithID } from '../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../globals/config/types.js'\nimport type { Operation, PayloadRequest, RequestContext, Where } from '../../types/index.js'\n\nexport type FieldHookArgs<T extends TypeWithID = any, P = any, S = any> = {\n /** The collection which the field belongs to. If the field belongs to a global, this will be null. */\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n /** The data passed to update the document within create and update operations, and the full document itself in the afterRead hook. */\n data?: Partial<T>\n /** The field which the hook is running against. */\n field: FieldAffectingData\n /** Boolean to denote if this hook is running against finding one, or finding many within the afterRead hook. */\n findMany?: boolean\n /** The global which the field belongs to. If the field belongs to a collection, this will be null. */\n global: SanitizedGlobalConfig | null\n /** A string relating to which operation the field type is currently executing within. Useful within beforeValidate, beforeChange, and afterChange hooks to differentiate between create and update operations. */\n operation?: 'create' | 'delete' | 'read' | 'update'\n /** The full original document in `update` operations. In the `afterChange` hook, this is the resulting document of the operation. */\n originalDoc?: T\n /** The document before changes were applied, only in `afterChange` hooks. */\n previousDoc?: T\n /** The sibling data of the document before changes being applied, only in `beforeChange` and `afterChange` hook. */\n previousSiblingDoc?: T\n /** The previous value of the field, before changes, only in `beforeChange` and `afterChange` hooks. */\n previousValue?: P\n /** The Express request object. It is mocked for Local API operations. */\n req: PayloadRequest\n /** The sibling data passed to a field that the hook is running against. */\n siblingData: Partial<S>\n /** The value of the field. */\n value?: P\n}\n\nexport type FieldHook<T extends TypeWithID = any, P = any, S = any> = (\n args: FieldHookArgs<T, P, S>,\n) => P | Promise<P>\n\nexport type FieldAccess<T extends TypeWithID = any, P = any, U = any> = (args: {\n /**\n * The incoming data used to `create` or `update` the document with. `data` is undefined during the `read` operation.\n */\n data?: Partial<T>\n /**\n * The original data of the document before the `update` is applied. `doc` is undefined during the `create` operation.\n */\n doc?: T\n /**\n * The `id` of the current document being read or updated. `id` is undefined during the `create` operation.\n */\n id?: number | string\n /** The `Express` request object containing the currently authenticated `user` */\n req: PayloadRequest<U>\n /** The `payload` object to interface with the payload API */\n siblingData?: Partial<P>\n}) => Promise<boolean> | boolean\n\nexport type Condition<T extends TypeWithID = any, P = any> = (\n data: Partial<T>,\n siblingData: Partial<P>,\n { user }: { user: User },\n) => boolean\n\nexport type FilterOptionsProps<T = any> = {\n data: T\n id: number | string\n relationTo: string\n siblingData: unknown\n user: Partial<User>\n}\n\nexport type FilterOptions<T = any> =\n | ((options: FilterOptionsProps<T>) => Promise<Where | boolean> | Where | boolean)\n | Where\n | null\n\ntype Admin = {\n className?: string\n components?: {\n Cell?: React.ComponentType<any>\n Field?: React.ComponentType<any>\n Filter?: React.ComponentType<any>\n }\n /**\n * You can programmatically show / hide fields based on what other fields are doing.\n * This is also run on the server, to determine if the field should be validated.\n */\n condition?: Condition\n description?: Description\n disableBulkEdit?: boolean\n disabled?: boolean\n hidden?: boolean\n position?: 'sidebar'\n readOnly?: boolean\n style?: CSSProperties\n width?: string\n}\n\nexport type Labels = {\n plural: Record<string, string> | string\n singular: Record<string, string> | string\n}\n\nexport type BaseValidateOptions<TData, TSiblingData> = {\n data: Partial<TData>\n id?: number | string\n operation?: Operation\n req: PayloadRequest\n siblingData: Partial<TSiblingData>\n}\n\nexport type ValidateOptions<TData, TSiblingData, TFieldConfig extends object> = BaseValidateOptions<\n TData,\n TSiblingData\n> &\n TFieldConfig\n\nexport type Validate<\n TValue = any,\n TData = any,\n TSiblingData = any,\n TFieldConfig extends object = {},\n> = (\n value: TValue,\n options: ValidateOptions<TData, TSiblingData, TFieldConfig>,\n) => Promise<string | true> | string | true\n\nexport type ClientValidate = Omit<Validate, 'req'>\n\nexport type OptionObject = {\n label: Record<string, string> | string\n value: string\n}\n\nexport type Option = OptionObject | string\n\nexport interface FieldBase {\n access?: {\n create?: FieldAccess\n read?: FieldAccess\n update?: FieldAccess\n }\n admin?: Admin\n /** Extension point to add your custom data. */\n custom?: Record<string, any>\n defaultValue?: any\n hidden?: boolean\n hooks?: {\n afterChange?: FieldHook[]\n afterRead?: FieldHook[]\n beforeChange?: FieldHook[]\n beforeValidate?: FieldHook[]\n }\n index?: boolean\n label?: Record<string, string> | false | string\n localized?: boolean\n name: string\n required?: boolean\n saveToJWT?: boolean | string\n unique?: boolean\n validate?: Validate\n}\n\nexport type NumberField = FieldBase & {\n admin?: Admin & {\n /** Set this property to a string that will be used for browser autocomplete. */\n autoComplete?: string\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n afterInput?: React.ComponentType<any>[]\n beforeInput?: React.ComponentType<any>[]\n }\n /** Set this property to define a placeholder string for the field. */\n placeholder?: Record<string, string> | string\n /** Set a value for the number field to increment / decrement using browser controls. */\n step?: number\n }\n /** Maximum value accepted. Used in the default `validation` function. */\n max?: number\n /** Minimum value accepted. Used in the default `validation` function. */\n min?: number\n type: 'number'\n} & (\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany: true\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: number\n }\n | {\n /** Makes this field an ordered array of numbers instead of just a single number. */\n hasMany?: false | undefined\n /** Maximum number of numbers in the numbers array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of numbers in the numbers array, if `hasMany` is set to true. */\n minRows?: undefined\n }\n )\n\nexport type TextField = FieldBase & {\n admin?: Admin & {\n autoComplete?: string\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n afterInput?: React.ComponentType<any>[]\n beforeInput?: React.ComponentType<any>[]\n }\n placeholder?: Record<string, string> | string\n rtl?: boolean\n }\n maxLength?: number\n minLength?: number\n type: 'text'\n} & (\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany: true\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: number\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: number\n }\n | {\n /** Makes this field an ordered array of strings instead of just a single string. */\n hasMany?: false | undefined\n /** Maximum number of strings in the strings array, if `hasMany` is set to true. */\n maxRows?: undefined\n /** Minimum number of strings in the strings array, if `hasMany` is set to true. */\n minRows?: undefined\n }\n )\n\nexport type EmailField = FieldBase & {\n admin?: Admin & {\n autoComplete?: string\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n afterInput?: React.ComponentType<any>[]\n beforeInput?: React.ComponentType<any>[]\n }\n placeholder?: Record<string, string> | string\n }\n type: 'email'\n}\n\nexport type TextareaField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n afterInput?: React.ComponentType<any>[]\n beforeInput?: React.ComponentType<any>[]\n }\n placeholder?: Record<string, string> | string\n rows?: number\n rtl?: boolean\n }\n maxLength?: number\n minLength?: number\n type: 'textarea'\n}\n\nexport type CheckboxField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n afterInput?: React.ComponentType<any>[]\n beforeInput?: React.ComponentType<any>[]\n }\n }\n type: 'checkbox'\n}\n\nexport type DateField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n afterInput?: React.ComponentType<any>[]\n beforeInput?: React.ComponentType<any>[]\n }\n date?: ConditionalDateProps\n placeholder?: Record<string, string> | string\n }\n type: 'date'\n}\n\nexport type GroupField = Omit<FieldBase, 'required' | 'validation'> & {\n admin?: Admin & {\n hideGutter?: boolean\n }\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n type: 'group'\n}\n\nexport type RowAdmin = Omit<Admin, 'description'>\n\nexport type RowField = Omit<FieldBase, 'admin' | 'label' | 'name'> & {\n admin?: RowAdmin\n fields: Field[]\n type: 'row'\n}\n\nexport type CollapsibleField = Omit<FieldBase, 'label' | 'name'> & {\n admin?: Admin & {\n initCollapsed?: boolean\n }\n fields: Field[]\n label: RowLabel\n type: 'collapsible'\n}\n\nexport type TabsAdmin = Omit<Admin, 'description'>\n\ntype TabBase = Omit<FieldBase, 'required' | 'validation'> & {\n description?: Description\n fields: Field[]\n interfaceName?: string\n saveToJWT?: boolean | string\n}\n\nexport type NamedTab = TabBase & {\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n}\n\nexport type UnnamedTab = Omit<TabBase, 'name'> & {\n interfaceName?: never\n label: Record<string, string> | string\n localized?: never\n}\n\nexport type Tab = NamedTab | UnnamedTab\n\nexport type TabsField = Omit<FieldBase, 'admin' | 'localized' | 'name' | 'saveToJWT'> & {\n admin?: TabsAdmin\n tabs: Tab[]\n type: 'tabs'\n}\n\nexport type TabAsField = Tab & {\n name?: string\n type: 'tab'\n}\n\nexport type UIField = {\n admin: {\n components?: {\n Cell?: React.ComponentType<any>\n Field: React.ComponentType<any>\n Filter?: React.ComponentType<any>\n }\n condition?: Condition\n disableBulkEdit?: boolean\n position?: string\n width?: string\n }\n /** Extension point to add your custom data. */\n custom?: Record<string, any>\n label?: Record<string, string> | string\n name: string\n type: 'ui'\n}\n\nexport type UploadField = FieldBase & {\n admin?: {\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n }\n }\n filterOptions?: FilterOptions\n maxDepth?: number\n relationTo: string\n type: 'upload'\n}\n\ntype CodeAdmin = Admin & {\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n }\n editorOptions?: EditorProps['options']\n language?: string\n}\n\nexport type CodeField = Omit<FieldBase, 'admin'> & {\n admin?: CodeAdmin\n maxLength?: number\n minLength?: number\n type: 'code'\n}\n\ntype JSONAdmin = Admin & {\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n }\n editorOptions?: EditorProps['options']\n}\n\nexport type JSONField = Omit<FieldBase, 'admin'> & {\n admin?: JSONAdmin\n type: 'json'\n}\n\nexport type SelectField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n }\n isClearable?: boolean\n isSortable?: boolean\n }\n hasMany?: boolean\n options: Option[]\n type: 'select'\n}\n\ntype SharedRelationshipProperties = FieldBase & {\n filterOptions?: FilterOptions\n hasMany?: boolean\n maxDepth?: number\n type: 'relationship'\n} & (\n | {\n hasMany: true\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: number\n maxRows?: number\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: number\n minRows?: number\n }\n | {\n hasMany?: false | undefined\n /**\n * @deprecated Use 'maxRows' instead\n */\n max?: undefined\n maxRows?: undefined\n /**\n * @deprecated Use 'minRows' instead\n */\n min?: undefined\n minRows?: undefined\n }\n )\n\ntype RelationshipAdmin = Admin & {\n allowCreate?: boolean\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n }\n isSortable?: boolean\n}\nexport type PolymorphicRelationshipField = SharedRelationshipProperties & {\n admin?: RelationshipAdmin & {\n sortOptions?: { [collectionSlug: string]: string }\n }\n relationTo: string[]\n}\nexport type SingleRelationshipField = SharedRelationshipProperties & {\n admin?: RelationshipAdmin & {\n sortOptions?: string\n }\n relationTo: string\n}\nexport type RelationshipField = PolymorphicRelationshipField | SingleRelationshipField\n\nexport type ValueWithRelation = {\n relationTo: string\n value: number | string\n}\n\nexport function valueIsValueWithRelation(value: unknown): value is ValueWithRelation {\n return value !== null && typeof value === 'object' && 'relationTo' in value && 'value' in value\n}\n\nexport type RelationshipValue =\n | (number | string)[]\n | ValueWithRelation\n | ValueWithRelation[]\n | (number | string)\n\nexport type RichTextField<\n Value extends object = any,\n AdapterProps = any,\n ExtraProperties = {},\n> = FieldBase & {\n admin?: Admin\n editor?: RichTextAdapter<Value, AdapterProps, AdapterProps>\n type: 'richText'\n} & ExtraProperties\n\nexport type ArrayField = FieldBase & {\n admin?: Admin & {\n components?: {\n RowLabel?: RowLabel\n } & Admin['components']\n initCollapsed?: boolean\n }\n fields: Field[]\n /** Customize generated GraphQL and Typescript schema names.\n * By default it is bound to the collection.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'array'\n}\n\nexport type RadioField = FieldBase & {\n admin?: Admin & {\n components?: {\n Error?: React.ComponentType<ErrorProps>\n Label?: React.ComponentType<LabelProps>\n }\n layout?: 'horizontal' | 'vertical'\n }\n options: Option[]\n type: 'radio'\n}\n\nexport type Block = {\n /** Extension point to add your custom data. */\n custom?: Record<string, any>\n fields: Field[]\n /** @deprecated - please migrate to the interfaceName property instead. */\n graphQL?: {\n singularName?: string\n }\n imageAltText?: string\n imageURL?: string\n /** Customize generated GraphQL and Typescript schema names.\n * The slug is used by default.\n *\n * This is useful if you would like to generate a top level type to share amongst collections/fields.\n * **Note**: Top level types can collide, ensure they are unique among collections, arrays, groups, blocks, tabs.\n */\n interfaceName?: string\n labels?: Labels\n slug: string\n}\n\nexport type BlockField = FieldBase & {\n admin?: Admin & {\n initCollapsed?: boolean\n }\n blocks: Block[]\n defaultValue?: unknown\n labels?: Labels\n maxRows?: number\n minRows?: number\n type: 'blocks'\n}\n\nexport type PointField = FieldBase & {\n type: 'point'\n}\n\nexport type Field =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextField\n | TextareaField\n | UIField\n | UploadField\n\nexport type ClientConfigField = Omit<Field, 'access' | 'defaultValue' | 'hooks' | 'validate'>\n\nexport type FieldAffectingData =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | SelectField\n | TabAsField\n | TextField\n | TextareaField\n | UploadField\n\nexport type NonPresentationalField =\n | ArrayField\n | BlockField\n | CheckboxField\n | CodeField\n | CollapsibleField\n | DateField\n | EmailField\n | GroupField\n | JSONField\n | NumberField\n | PointField\n | RadioField\n | RelationshipField\n | RichTextField\n | RowField\n | SelectField\n | TabsField\n | TextField\n | TextareaField\n | UploadField\n\nexport type FieldWithPath = Field & {\n path?: string\n}\n\nexport type FieldWithSubFields = ArrayField | CollapsibleField | GroupField | RowField\n\nexport type FieldPresentationalOnly = UIField\n\nexport type FieldWithMany = RelationshipField | SelectField\n\nexport type FieldWithMaxDepth = RelationshipField | UploadField\n\nexport function fieldHasSubFields(field: Field): field is FieldWithSubFields {\n return (\n field.type === 'group' ||\n field.type === 'array' ||\n field.type === 'row' ||\n field.type === 'collapsible'\n )\n}\n\nexport function fieldIsArrayType(field: Field): field is ArrayField {\n return field.type === 'array'\n}\n\nexport function fieldIsBlockType(field: Field): field is BlockField {\n return field.type === 'blocks'\n}\n\nexport function fieldIsGroupType(field: Field): field is GroupField {\n return field.type === 'group'\n}\n\nexport function optionIsObject(option: Option): option is OptionObject {\n return typeof option === 'object'\n}\n\nexport function optionsAreObjects(options: Option[]): options is OptionObject[] {\n return Array.isArray(options) && typeof options?.[0] === 'object'\n}\n\nexport function optionIsValue(option: Option): option is string {\n return typeof option === 'string'\n}\n\nexport function fieldSupportsMany(field: Field): field is FieldWithMany {\n return field.type === 'select' || field.type === 'relationship'\n}\n\nexport function fieldHasMaxDepth(field: Field): field is FieldWithMaxDepth {\n return (\n (field.type === 'upload' || field.type === 'relationship') && typeof field.maxDepth === 'number'\n )\n}\n\nexport function fieldIsPresentationalOnly(field: Field | TabAsField): field is UIField {\n return field.type === 'ui'\n}\n\nexport function fieldAffectsData(field: Field | TabAsField): field is FieldAffectingData {\n return 'name' in field && !fieldIsPresentationalOnly(field)\n}\n\nexport function tabHasName(tab: Tab): tab is NamedTab {\n return 'name' in tab\n}\n\nexport function fieldIsLocalized(field: Field | Tab): boolean {\n return 'localized' in field && field.localized\n}\n\nexport type HookName =\n | 'afterChange'\n | 'afterRead'\n | 'beforeChange'\n | 'beforeRead'\n | 'beforeValidate'\n"],"names":["valueIsValueWithRelation","value","fieldHasSubFields","field","type","fieldIsArrayType","fieldIsBlockType","fieldIsGroupType","optionIsObject","option","optionsAreObjects","options","Array","isArray","optionIsValue","fieldSupportsMany","fieldHasMaxDepth","maxDepth","fieldIsPresentationalOnly","fieldAffectsData","tabHasName","tab","fieldIsLocalized","localized"],"mappings":"AAAA,uCAAuC,GAogBvC,OAAO,SAASA,yBAAyBC,KAAc;IACrD,OAAOA,UAAU,QAAQ,OAAOA,UAAU,YAAY,gBAAgBA,SAAS,WAAWA;AAC5F;AAuKA,OAAO,SAASC,kBAAkBC,KAAY;IAC5C,OACEA,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,WACfD,MAAMC,IAAI,KAAK,SACfD,MAAMC,IAAI,KAAK;AAEnB;AAEA,OAAO,SAASC,iBAAiBF,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASE,iBAAiBH,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASG,iBAAiBJ,KAAY;IAC3C,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASI,eAAeC,MAAc;IAC3C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASC,kBAAkBC,OAAiB;IACjD,OAAOC,MAAMC,OAAO,CAACF,YAAY,OAAOA,SAAS,CAAC,EAAE,KAAK;AAC3D;AAEA,OAAO,SAASG,cAAcL,MAAc;IAC1C,OAAO,OAAOA,WAAW;AAC3B;AAEA,OAAO,SAASM,kBAAkBZ,KAAY;IAC5C,OAAOA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK;AACnD;AAEA,OAAO,SAASY,iBAAiBb,KAAY;IAC3C,OACE,AAACA,CAAAA,MAAMC,IAAI,KAAK,YAAYD,MAAMC,IAAI,KAAK,cAAa,KAAM,OAAOD,MAAMc,QAAQ,KAAK;AAE5F;AAEA,OAAO,SAASC,0BAA0Bf,KAAyB;IACjE,OAAOA,MAAMC,IAAI,KAAK;AACxB;AAEA,OAAO,SAASe,iBAAiBhB,KAAyB;IACxD,OAAO,UAAUA,SAAS,CAACe,0BAA0Bf;AACvD;AAEA,OAAO,SAASiB,WAAWC,GAAQ;IACjC,OAAO,UAAUA;AACnB;AAEA,OAAO,SAASC,iBAAiBnB,KAAkB;IACjD,OAAO,eAAeA,SAASA,MAAMoB,SAAS;AAChD"}
|
|
@@ -12,4 +12,4 @@ const getValueWithDefault = async ({ defaultValue, locale, user, value })=>{
|
|
|
12
12
|
};
|
|
13
13
|
export default getValueWithDefault;
|
|
14
14
|
|
|
15
|
-
//# sourceMappingURL=
|
|
15
|
+
//# sourceMappingURL=getDefaultValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/fields/getDefaultValue.ts"],"sourcesContent":["import type { User } from '../auth/index.js'\n\ntype Args = {\n defaultValue: unknown\n locale: string | undefined\n user: User\n value?: unknown\n}\n\nconst getValueWithDefault = async ({\n defaultValue,\n locale,\n user,\n value,\n}: Args): Promise<unknown> => {\n if (typeof value !== 'undefined') {\n return value\n }\n\n if (defaultValue && typeof defaultValue === 'function') {\n return defaultValue({ locale, user })\n }\n\n return defaultValue\n}\n\nexport default getValueWithDefault\n"],"names":["getValueWithDefault","defaultValue","locale","user","value"],"mappings":"AASA,MAAMA,sBAAsB,OAAO,EACjCC,YAAY,EACZC,MAAM,EACNC,IAAI,EACJC,KAAK,EACA;IACL,IAAI,OAAOA,UAAU,aAAa;QAChC,OAAOA;IACT;IAEA,IAAIH,gBAAgB,OAAOA,iBAAiB,YAAY;QACtD,OAAOA,aAAa;YAAEC;YAAQC;QAAK;IACrC;IAEA,OAAOF;AACT;AAEA,eAAeD,oBAAmB"}
|
|
@@ -19,4 +19,4 @@ export const afterChange = async ({ collection, context, data, doc: incomingDoc,
|
|
|
19
19
|
return doc;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
//# sourceMappingURL=
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/hooks/afterChange/index.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { PayloadRequest, RequestContext } from '../../../types/index.js'\n\nimport { deepCopyObject } from '../../../utilities/deepCopyObject.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args<T> = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: Record<string, unknown> | T\n doc: Record<string, unknown> | T\n global: SanitizedGlobalConfig | null\n operation: 'create' | 'update'\n previousDoc: Record<string, unknown> | T\n req: PayloadRequest\n}\n\nexport const afterChange = async <T extends Record<string, unknown>>({\n collection,\n context,\n data,\n\n doc: incomingDoc,\n global,\n operation,\n previousDoc,\n req,\n}: Args<T>): Promise<T> => {\n const doc = deepCopyObject(incomingDoc)\n\n await traverseFields({\n collection,\n context,\n data,\n doc,\n fields: collection?.fields || global?.fields,\n global,\n operation,\n previousDoc,\n previousSiblingDoc: previousDoc,\n req,\n siblingData: data,\n siblingDoc: doc,\n })\n\n return doc\n}\n"],"names":["deepCopyObject","traverseFields","afterChange","collection","context","data","doc","incomingDoc","global","operation","previousDoc","req","fields","previousSiblingDoc","siblingData","siblingDoc"],"mappings":"AAIA,SAASA,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,sBAAqB;AAapD,OAAO,MAAMC,cAAc,OAA0C,EACnEC,UAAU,EACVC,OAAO,EACPC,IAAI,EAEJC,KAAKC,WAAW,EAChBC,MAAM,EACNC,SAAS,EACTC,WAAW,EACXC,GAAG,EACK;IACR,MAAML,MAAMN,eAAeO;IAE3B,MAAMN,eAAe;QACnBE;QACAC;QACAC;QACAC;QACAM,QAAQT,YAAYS,UAAUJ,QAAQI;QACtCJ;QACAC;QACAC;QACAG,oBAAoBH;QACpBC;QACAG,aAAaT;QACbU,YAAYT;IACd;IAEA,OAAOA;AACT,EAAC"}
|
|
@@ -187,4 +187,4 @@ export const promise = async ({ collection, context, data, doc, field, global, o
|
|
|
187
187
|
}
|
|
188
188
|
};
|
|
189
189
|
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYWZ0ZXJDaGFuZ2UvcHJvbWlzZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzLmpzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcy5qcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFJlcXVlc3RDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvaW5kZXguanMnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBUYWJBc0ZpZWxkIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzLmpzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vLi4vY29uZmlnL3R5cGVzLmpzJ1xuaW1wb3J0IHsgdHJhdmVyc2VGaWVsZHMgfSBmcm9tICcuL3RyYXZlcnNlRmllbGRzLmpzJ1xuXG50eXBlIEFyZ3MgPSB7XG4gIGNvbGxlY3Rpb246IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBudWxsXG4gIGNvbnRleHQ6IFJlcXVlc3RDb250ZXh0XG4gIGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGRvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgZmllbGQ6IEZpZWxkIHwgVGFiQXNGaWVsZFxuICBnbG9iYWw6IFNhbml0aXplZEdsb2JhbENvbmZpZyB8IG51bGxcbiAgb3BlcmF0aW9uOiAnY3JlYXRlJyB8ICd1cGRhdGUnXG4gIHByZXZpb3VzRG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICBwcmV2aW91c1NpYmxpbmdEb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2libGluZ0RhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIHNpYmxpbmdEb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHRoZSBmb2xsb3dpbmcgYWN0aW9ucywgaW4gb3JkZXI6XG4vLyAtIEV4ZWN1dGUgZmllbGQgaG9va3NcblxuZXhwb3J0IGNvbnN0IHByb21pc2UgPSBhc3luYyAoe1xuICBjb2xsZWN0aW9uLFxuICBjb250ZXh0LFxuICBkYXRhLFxuICBkb2MsXG4gIGZpZWxkLFxuICBnbG9iYWwsXG4gIG9wZXJhdGlvbixcbiAgcHJldmlvdXNEb2MsXG4gIHByZXZpb3VzU2libGluZ0RvYyxcbiAgcmVxLFxuICBzaWJsaW5nRGF0YSxcbiAgc2libGluZ0RvYyxcbn06IEFyZ3MpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSB7XG4gICAgLy8gRXhlY3V0ZSBob29rc1xuICAgIGlmIChmaWVsZC5ob29rcz8uYWZ0ZXJDaGFuZ2UpIHtcbiAgICAgIGF3YWl0IGZpZWxkLmhvb2tzLmFmdGVyQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBjdXJyZW50SG9vaykgPT4ge1xuICAgICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgICBjb25zdCBob29rZWRWYWx1ZSA9IGF3YWl0IGN1cnJlbnRIb29rKHtcbiAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgIG9yaWdpbmFsRG9jOiBkb2MsXG4gICAgICAgICAgcHJldmlvdXNEb2MsXG4gICAgICAgICAgcHJldmlvdXNTaWJsaW5nRG9jLFxuICAgICAgICAgIHByZXZpb3VzVmFsdWU6IHByZXZpb3VzRG9jW2ZpZWxkLm5hbWVdLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBzaWJsaW5nRGF0YSxcbiAgICAgICAgICB2YWx1ZTogc2libGluZ0RhdGFbZmllbGQubmFtZV0sXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKGhvb2tlZFZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0gaG9va2VkVmFsdWVcbiAgICAgICAgfVxuICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG4gICAgfVxuICB9XG5cbiAgLy8gVHJhdmVyc2Ugc3ViZmllbGRzXG4gIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgIGNhc2UgJ2dyb3VwJzoge1xuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgcHJldmlvdXNEb2MsXG4gICAgICAgIHByZXZpb3VzU2libGluZ0RvYzogcHJldmlvdXNEb2NbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGE6IChzaWJsaW5nRGF0YT8uW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB8fCB7fSxcbiAgICAgICAgc2libGluZ0RvYzogc2libGluZ0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICBjb25zdCByb3dzID0gc2libGluZ0RvY1tmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgZG9jLFxuICAgICAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgICAgZ2xvYmFsLFxuICAgICAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgICAgIHByZXZpb3VzRG9jLFxuICAgICAgICAgICAgICBwcmV2aW91c1NpYmxpbmdEb2M6IHByZXZpb3VzRG9jPy5bZmllbGQubmFtZV0/LltpXSB8fCAoe30gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRGF0YT8uW2ZpZWxkLm5hbWVdPy5baV0gfHwge30sXG4gICAgICAgICAgICAgIHNpYmxpbmdEb2M6IHsgLi4ucm93IH0gfHwge30sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICBjb25zdCByb3dzID0gc2libGluZ0RvY1tmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93LCBpKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmxvY2sgPSBmaWVsZC5ibG9ja3MuZmluZCgoYmxvY2tUeXBlKSA9PiBibG9ja1R5cGUuc2x1ZyA9PT0gcm93LmJsb2NrVHlwZSlcblxuICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzRG9jLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzU2libGluZ0RvYzpcbiAgICAgICAgICAgICAgICAgIHByZXZpb3VzRG9jPy5bZmllbGQubmFtZV0/LltpXSB8fCAoe30gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLFxuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICBzaWJsaW5nRGF0YTogc2libGluZ0RhdGE/LltmaWVsZC5uYW1lXT8uW2ldIHx8IHt9LFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEb2M6IHsgLi4ucm93IH0gfHwge30sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAncm93JzpcbiAgICBjYXNlICdjb2xsYXBzaWJsZSc6IHtcbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgZ2xvYmFsLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIHByZXZpb3VzRG9jLFxuICAgICAgICBwcmV2aW91c1NpYmxpbmdEb2M6IHsgLi4ucHJldmlvdXNTaWJsaW5nRG9jIH0sXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGE6IHNpYmxpbmdEYXRhIHx8IHt9LFxuICAgICAgICBzaWJsaW5nRG9jOiB7IC4uLnNpYmxpbmdEb2MgfSxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAndGFiJzoge1xuICAgICAgbGV0IHRhYlNpYmxpbmdEYXRhID0gc2libGluZ0RhdGFcbiAgICAgIGxldCB0YWJTaWJsaW5nRG9jID0gc2libGluZ0RvY1xuICAgICAgbGV0IHRhYlByZXZpb3VzU2libGluZ0RvYyA9IHNpYmxpbmdEb2NcblxuICAgICAgaWYgKHRhYkhhc05hbWUoZmllbGQpKSB7XG4gICAgICAgIHRhYlNpYmxpbmdEYXRhID0gc2libGluZ0RhdGFbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgICAgdGFiU2libGluZ0RvYyA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgICAgdGFiUHJldmlvdXNTaWJsaW5nRG9jID0gcHJldmlvdXNEb2NbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIH1cblxuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgcHJldmlvdXNEb2MsXG4gICAgICAgIHByZXZpb3VzU2libGluZ0RvYzogdGFiUHJldmlvdXNTaWJsaW5nRG9jLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiB0YWJTaWJsaW5nRGF0YSxcbiAgICAgICAgc2libGluZ0RvYzogdGFiU2libGluZ0RvYyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAndGFicyc6IHtcbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLnRhYnMubWFwKCh0YWIpID0+ICh7IC4uLnRhYiwgdHlwZTogJ3RhYicgfSkpLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgcHJldmlvdXNEb2MsXG4gICAgICAgIHByZXZpb3VzU2libGluZ0RvYzogeyAuLi5wcmV2aW91c1NpYmxpbmdEb2MgfSxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YTogc2libGluZ0RhdGEgfHwge30sXG4gICAgICAgIHNpYmxpbmdEb2M6IHsgLi4uc2libGluZ0RvYyB9LFxuICAgICAgfSlcbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgZGVmYXVsdDoge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmaWVsZEFmZmVjdHNEYXRhIiwidGFiSGFzTmFtZSIsInRyYXZlcnNlRmllbGRzIiwicHJvbWlzZSIsImNvbGxlY3Rpb24iLCJjb250ZXh0IiwiZGF0YSIsImRvYyIsImZpZWxkIiwiZ2xvYmFsIiwib3BlcmF0aW9uIiwicHJldmlvdXNEb2MiLCJwcmV2aW91c1NpYmxpbmdEb2MiLCJyZXEiLCJzaWJsaW5nRGF0YSIsInNpYmxpbmdEb2MiLCJob29rcyIsImFmdGVyQ2hhbmdlIiwicmVkdWNlIiwicHJpb3JIb29rIiwiY3VycmVudEhvb2siLCJob29rZWRWYWx1ZSIsIm9yaWdpbmFsRG9jIiwicHJldmlvdXNWYWx1ZSIsIm5hbWUiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsIlByb21pc2UiLCJyZXNvbHZlIiwidHlwZSIsImZpZWxkcyIsInJvd3MiLCJBcnJheSIsImlzQXJyYXkiLCJwcm9taXNlcyIsImZvckVhY2giLCJyb3ciLCJpIiwicHVzaCIsImFsbCIsImJsb2NrIiwiYmxvY2tzIiwiZmluZCIsImJsb2NrVHlwZSIsInNsdWciLCJ0YWJTaWJsaW5nRGF0YSIsInRhYlNpYmxpbmdEb2MiLCJ0YWJQcmV2aW91c1NpYmxpbmdEb2MiLCJ0YWJzIiwibWFwIiwidGFiIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0MsR0FNcEMsU0FBU0EsZ0JBQWdCLEVBQUVDLFVBQVUsUUFBUSx3QkFBdUI7QUFDcEUsU0FBU0MsY0FBYyxRQUFRLHNCQUFxQjtBQWlCcEQsb0VBQW9FO0FBQ3BFLHdCQUF3QjtBQUV4QixPQUFPLE1BQU1DLFVBQVUsT0FBTyxFQUM1QkMsVUFBVSxFQUNWQyxPQUFPLEVBQ1BDLElBQUksRUFDSkMsR0FBRyxFQUNIQyxLQUFLLEVBQ0xDLE1BQU0sRUFDTkMsU0FBUyxFQUNUQyxXQUFXLEVBQ1hDLGtCQUFrQixFQUNsQkMsR0FBRyxFQUNIQyxXQUFXLEVBQ1hDLFVBQVUsRUFDTDtJQUNMLElBQUlmLGlCQUFpQlEsUUFBUTtRQUMzQixnQkFBZ0I7UUFDaEIsSUFBSUEsTUFBTVEsS0FBSyxFQUFFQyxhQUFhO1lBQzVCLE1BQU1ULE1BQU1RLEtBQUssQ0FBQ0MsV0FBVyxDQUFDQyxNQUFNLENBQUMsT0FBT0MsV0FBV0M7Z0JBQ3JELE1BQU1EO2dCQUVOLE1BQU1FLGNBQWMsTUFBTUQsWUFBWTtvQkFDcENoQjtvQkFDQUM7b0JBQ0FDO29CQUNBRTtvQkFDQUM7b0JBQ0FDO29CQUNBWSxhQUFhZjtvQkFDYkk7b0JBQ0FDO29CQUNBVyxlQUFlWixXQUFXLENBQUNILE1BQU1nQixJQUFJLENBQUM7b0JBQ3RDWDtvQkFDQUM7b0JBQ0FXLE9BQU9YLFdBQVcs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
|
|
190
|
+
//# sourceMappingURL=promise.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/hooks/afterChange/promise.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { PayloadRequest, RequestContext } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { fieldAffectsData, tabHasName } from '../../config/types.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: Record<string, unknown>\n doc: Record<string, unknown>\n field: Field | TabAsField\n global: SanitizedGlobalConfig | null\n operation: 'create' | 'update'\n previousDoc: Record<string, unknown>\n previousSiblingDoc: Record<string, unknown>\n req: PayloadRequest\n siblingData: Record<string, unknown>\n siblingDoc: Record<string, unknown>\n}\n\n// This function is responsible for the following actions, in order:\n// - Execute field hooks\n\nexport const promise = async ({\n collection,\n context,\n data,\n doc,\n field,\n global,\n operation,\n previousDoc,\n previousSiblingDoc,\n req,\n siblingData,\n siblingDoc,\n}: Args): Promise<void> => {\n if (fieldAffectsData(field)) {\n // Execute hooks\n if (field.hooks?.afterChange) {\n await field.hooks.afterChange.reduce(async (priorHook, currentHook) => {\n await priorHook\n\n const hookedValue = await currentHook({\n collection,\n context,\n data,\n field,\n global,\n operation,\n originalDoc: doc,\n previousDoc,\n previousSiblingDoc,\n previousValue: previousDoc[field.name],\n req,\n siblingData,\n value: siblingData[field.name],\n })\n\n if (hookedValue !== undefined) {\n siblingDoc[field.name] = hookedValue\n }\n }, Promise.resolve())\n }\n }\n\n // Traverse subfields\n switch (field.type) {\n case 'group': {\n await traverseFields({\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n previousDoc,\n previousSiblingDoc: previousDoc[field.name] as Record<string, unknown>,\n req,\n siblingData: (siblingData?.[field.name] as Record<string, unknown>) || {},\n siblingDoc: siblingDoc[field.name] as Record<string, unknown>,\n })\n\n break\n }\n\n case 'array': {\n const rows = siblingDoc[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n promises.push(\n traverseFields({\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n previousDoc,\n previousSiblingDoc: previousDoc?.[field.name]?.[i] || ({} as Record<string, unknown>),\n req,\n siblingData: siblingData?.[field.name]?.[i] || {},\n siblingDoc: { ...row } || {},\n }),\n )\n })\n await Promise.all(promises)\n }\n break\n }\n\n case 'blocks': {\n const rows = siblingDoc[field.name]\n\n if (Array.isArray(rows)) {\n const promises = []\n rows.forEach((row, i) => {\n const block = field.blocks.find((blockType) => blockType.slug === row.blockType)\n\n if (block) {\n promises.push(\n traverseFields({\n collection,\n context,\n data,\n doc,\n fields: block.fields,\n global,\n operation,\n previousDoc,\n previousSiblingDoc:\n previousDoc?.[field.name]?.[i] || ({} as Record<string, unknown>),\n req,\n siblingData: siblingData?.[field.name]?.[i] || {},\n siblingDoc: { ...row } || {},\n }),\n )\n }\n })\n await Promise.all(promises)\n }\n\n break\n }\n\n case 'row':\n case 'collapsible': {\n await traverseFields({\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n previousDoc,\n previousSiblingDoc: { ...previousSiblingDoc },\n req,\n siblingData: siblingData || {},\n siblingDoc: { ...siblingDoc },\n })\n\n break\n }\n\n case 'tab': {\n let tabSiblingData = siblingData\n let tabSiblingDoc = siblingDoc\n let tabPreviousSiblingDoc = siblingDoc\n\n if (tabHasName(field)) {\n tabSiblingData = siblingData[field.name] as Record<string, unknown>\n tabSiblingDoc = siblingDoc[field.name] as Record<string, unknown>\n tabPreviousSiblingDoc = previousDoc[field.name] as Record<string, unknown>\n }\n\n await traverseFields({\n collection,\n context,\n data,\n doc,\n fields: field.fields,\n global,\n operation,\n previousDoc,\n previousSiblingDoc: tabPreviousSiblingDoc,\n req,\n siblingData: tabSiblingData,\n siblingDoc: tabSiblingDoc,\n })\n\n break\n }\n\n case 'tabs': {\n await traverseFields({\n collection,\n context,\n data,\n doc,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n global,\n operation,\n previousDoc,\n previousSiblingDoc: { ...previousSiblingDoc },\n req,\n siblingData: siblingData || {},\n siblingDoc: { ...siblingDoc },\n })\n break\n }\n\n default: {\n break\n }\n }\n}\n"],"names":["fieldAffectsData","tabHasName","traverseFields","promise","collection","context","data","doc","field","global","operation","previousDoc","previousSiblingDoc","req","siblingData","siblingDoc","hooks","afterChange","reduce","priorHook","currentHook","hookedValue","originalDoc","previousValue","name","value","undefined","Promise","resolve","type","fields","rows","Array","isArray","promises","forEach","row","i","push","all","block","blocks","find","blockType","slug","tabSiblingData","tabSiblingDoc","tabPreviousSiblingDoc","tabs","map","tab"],"mappings":"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"}
|
|
@@ -20,4 +20,4 @@ export const traverseFields = async ({ collection, context, data, doc, fields, g
|
|
|
20
20
|
await Promise.all(promises);
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=traverseFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/hooks/afterChange/traverseFields.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { PayloadRequest, RequestContext } from '../../../types/index.js'\nimport type { Field, TabAsField } from '../../config/types.js'\n\nimport { promise } from './promise.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n data: Record<string, unknown>\n doc: Record<string, unknown>\n fields: (Field | TabAsField)[]\n global: SanitizedGlobalConfig | null\n operation: 'create' | 'update'\n previousDoc: Record<string, unknown>\n previousSiblingDoc: Record<string, unknown>\n req: PayloadRequest\n siblingData: Record<string, unknown>\n siblingDoc: Record<string, unknown>\n}\n\nexport const traverseFields = async ({\n collection,\n context,\n data,\n doc,\n fields,\n global,\n operation,\n previousDoc,\n previousSiblingDoc,\n req,\n siblingData,\n siblingDoc,\n}: Args): Promise<void> => {\n const promises = []\n\n fields.forEach((field) => {\n promises.push(\n promise({\n collection,\n context,\n data,\n doc,\n field,\n global,\n operation,\n previousDoc,\n previousSiblingDoc,\n req,\n siblingData,\n siblingDoc,\n }),\n )\n })\n\n await Promise.all(promises)\n}\n"],"names":["promise","traverseFields","collection","context","data","doc","fields","global","operation","previousDoc","previousSiblingDoc","req","siblingData","siblingDoc","promises","forEach","field","push","Promise","all"],"mappings":"AAKA,SAASA,OAAO,QAAQ,eAAc;AAiBtC,OAAO,MAAMC,iBAAiB,OAAO,EACnCC,UAAU,EACVC,OAAO,EACPC,IAAI,EACJC,GAAG,EACHC,MAAM,EACNC,MAAM,EACNC,SAAS,EACTC,WAAW,EACXC,kBAAkB,EAClBC,GAAG,EACHC,WAAW,EACXC,UAAU,EACL;IACL,MAAMC,WAAW,EAAE;IAEnBR,OAAOS,OAAO,CAAC,CAACC;QACdF,SAASG,IAAI,CACXjB,QAAQ;YACNE;YACAC;YACAC;YACAC;YACAW;YACAT;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;IAEJ;IAEA,MAAMK,QAAQC,GAAG,CAACL;AACpB,EAAC"}
|
|
@@ -32,4 +32,4 @@ export async function afterRead(args) {
|
|
|
32
32
|
return doc;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
//# sourceMappingURL=
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/fields/hooks/afterRead/index.ts"],"sourcesContent":["import type { SanitizedCollectionConfig } from '../../../collections/config/types.js'\nimport type { SanitizedGlobalConfig } from '../../../globals/config/types.js'\nimport type { PayloadRequest, RequestContext } from '../../../types/index.js'\n\nimport { deepCopyObject } from '../../../utilities/deepCopyObject.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n collection: SanitizedCollectionConfig | null\n context: RequestContext\n currentDepth?: number\n depth: number\n doc: Record<string, unknown>\n fallbackLocale: null | string\n findMany?: boolean\n flattenLocales?: boolean\n global: SanitizedGlobalConfig | null\n locale: string\n overrideAccess: boolean\n req: PayloadRequest\n showHiddenFields: boolean\n}\n\nexport async function afterRead<T = any>(args: Args): Promise<T> {\n const {\n collection,\n context,\n currentDepth: incomingCurrentDepth,\n depth: incomingDepth,\n doc: incomingDoc,\n fallbackLocale,\n findMany,\n flattenLocales = true,\n global,\n locale,\n overrideAccess,\n req,\n showHiddenFields,\n } = args\n\n const doc = deepCopyObject(incomingDoc)\n const fieldPromises = []\n const populationPromises = []\n\n let depth =\n incomingDepth || incomingDepth === 0\n ? parseInt(String(incomingDepth), 10)\n : req.payload.config.defaultDepth\n if (depth > req.payload.config.maxDepth) depth = req.payload.config.maxDepth\n\n const currentDepth = incomingCurrentDepth || 1\n\n traverseFields({\n collection,\n context,\n currentDepth,\n depth,\n doc,\n fallbackLocale,\n fieldPromises,\n fields: collection?.fields || global?.fields,\n findMany,\n flattenLocales,\n global,\n locale,\n overrideAccess,\n populationPromises,\n req,\n showHiddenFields,\n siblingDoc: doc,\n })\n\n await Promise.all(fieldPromises)\n await Promise.all(populationPromises)\n\n return doc\n}\n"],"names":["deepCopyObject","traverseFields","afterRead","args","collection","context","currentDepth","incomingCurrentDepth","depth","incomingDepth","doc","incomingDoc","fallbackLocale","findMany","flattenLocales","global","locale","overrideAccess","req","showHiddenFields","fieldPromises","populationPromises","parseInt","String","payload","config","defaultDepth","maxDepth","fields","siblingDoc","Promise","all"],"mappings":"AAIA,SAASA,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,sBAAqB;AAkBpD,OAAO,eAAeC,UAAmBC,IAAU;IACjD,MAAM,EACJC,UAAU,EACVC,OAAO,EACPC,cAAcC,oBAAoB,EAClCC,OAAOC,aAAa,EACpBC,KAAKC,WAAW,EAChBC,cAAc,EACdC,QAAQ,EACRC,iBAAiB,IAAI,EACrBC,MAAM,EACNC,MAAM,EACNC,cAAc,EACdC,GAAG,EACHC,gBAAgB,EACjB,GAAGhB;IAEJ,MAAMO,MAAMV,eAAeW;IAC3B,MAAMS,gBAAgB,EAAE;IACxB,MAAMC,qBAAqB,EAAE;IAE7B,IAAIb,QACFC,iBAAiBA,kBAAkB,IAC/Ba,SAASC,OAAOd,gBAAgB,MAChCS,IAAIM,OAAO,CAACC,MAAM,CAACC,YAAY;IACrC,IAAIlB,QAAQU,IAAIM,OAAO,CAACC,MAAM,CAACE,QAAQ,EAAEnB,QAAQU,IAAIM,OAAO,CAACC,MAAM,CAACE,QAAQ;IAE5E,MAAMrB,eAAeC,wBAAwB;IAE7CN,eAAe;QACbG;QACAC;QACAC;QACAE;QACAE;QACAE;QACAQ;QACAQ,QAAQxB,YAAYwB,UAAUb,QAAQa;QACtCf;QACAC;QACAC;QACAC;QACAC;QACAI;QACAH;QACAC;QACAU,YAAYnB;IACd;IAEA,MAAMoB,QAAQC,GAAG,CAACX;IAClB,MAAMU,QAAQC,GAAG,CAACV;IAElB,OAAOX;AACT"}
|
|
@@ -443,4 +443,4 @@ export const promise = async ({ collection, context, currentDepth, depth, doc, f
|
|
|
443
443
|
}
|
|
444
444
|
};
|
|
445
445
|
|
|
446
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYWZ0ZXJSZWFkL3Byb21pc2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgUmljaFRleHRBZGFwdGVyIH0gZnJvbSAnLi4vLi4vLi4vYWRtaW4vdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzLmpzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9pbmRleC5qcydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMuanMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIHRhYkhhc05hbWUgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMuanMnXG5pbXBvcnQgZ2V0VmFsdWVXaXRoRGVmYXVsdCBmcm9tICcuLi8uLi9nZXREZWZhdWx0VmFsdWUuanMnXG5pbXBvcnQgeyByZWxhdGlvbnNoaXBQb3B1bGF0aW9uUHJvbWlzZSB9IGZyb20gJy4vcmVsYXRpb25zaGlwUG9wdWxhdGlvblByb21pc2UuanMnXG5pbXBvcnQgeyB0cmF2ZXJzZUZpZWxkcyB9IGZyb20gJy4vdHJhdmVyc2VGaWVsZHMuanMnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IG51bGxcbiAgY29udGV4dDogUmVxdWVzdENvbnRleHRcbiAgY3VycmVudERlcHRoOiBudW1iZXJcbiAgZGVwdGg6IG51bWJlclxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIGZhbGxiYWNrTG9jYWxlOiBudWxsIHwgc3RyaW5nXG4gIGZpZWxkOiBGaWVsZCB8IFRhYkFzRmllbGRcbiAgZmllbGRQcm9taXNlczogUHJvbWlzZTx2b2lkPltdXG4gIGZpbmRNYW55OiBib29sZWFuXG4gIGZsYXR0ZW5Mb2NhbGVzOiBib29sZWFuXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBsb2NhbGU6IG51bGwgfCBzdHJpbmdcbiAgb3ZlcnJpZGVBY2Nlc3M6IGJvb2xlYW5cbiAgcG9wdWxhdGlvblByb21pc2VzOiBQcm9taXNlPHZvaWQ+W11cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaG93SGlkZGVuRmllbGRzOiBib29sZWFuXG4gIHNpYmxpbmdEb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIHRyaWdnZXJBY2Nlc3NDb250cm9sPzogYm9vbGVhblxuICB0cmlnZ2VySG9va3M/OiBib29sZWFuXG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHRoZSBmb2xsb3dpbmcgYWN0aW9ucywgaW4gb3JkZXI6XG4vLyAtIFJlbW92ZSBoaWRkZW4gZmllbGRzIGZyb20gcmVzcG9uc2Vcbi8vIC0gRmxhdHRlbiBsb2NhbGVzIGludG8gcmVxdWVzdGVkIGxvY2FsZVxuLy8gLSBTYW5pdGl6ZSBvdXRnb2luZyBkYXRhIChwb2ludCBmaWVsZCwgZXRjLilcbi8vIC0gRXhlY3V0ZSBmaWVsZCBob29rc1xuLy8gLSBFeGVjdXRlIHJlYWQgYWNjZXNzIGNvbnRyb2xcbi8vIC0gUG9wdWxhdGUgcmVsYXRpb25zaGlwc1xuXG5leHBvcnQgY29uc3QgcHJvbWlzZSA9IGFzeW5jICh7XG4gIGNvbGxlY3Rpb24sXG4gIGNvbnRleHQsXG4gIGN1cnJlbnREZXB0aCxcbiAgZGVwdGgsXG4gIGRvYyxcbiAgZmFsbGJhY2tMb2NhbGUsXG4gIGZpZWxkLFxuICBmaWVsZFByb21pc2VzLFxuICBmaW5kTWFueSxcbiAgZmxhdHRlbkxvY2FsZXMsXG4gIGdsb2JhbCxcbiAgbG9jYWxlLFxuICBvdmVycmlkZUFjY2VzcyxcbiAgcG9wdWxhdGlvblByb21pc2VzLFxuICByZXEsXG4gIHNob3dIaWRkZW5GaWVsZHMsXG4gIHNpYmxpbmdEb2MsXG4gIHRyaWdnZXJBY2Nlc3NDb250cm9sID0gdHJ1ZSxcbiAgdHJpZ2dlckhvb2tzID0gdHJ1ZSxcbn06IEFyZ3MpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgaWYgKFxuICAgIGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmXG4gICAgZmllbGQuaGlkZGVuICYmXG4gICAgdHlwZW9mIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gIT09ICd1bmRlZmluZWQnICYmXG4gICAgIXNob3dIaWRkZW5GaWVsZHNcbiAgKSB7XG4gICAgZGVsZXRlIHNpYmxpbmdEb2NbZmllbGQubmFtZV1cbiAgfVxuXG4gIGNvbnN0IHNob3VsZEhvaXN0TG9jYWxpemVkVmFsdWUgPVxuICAgIGZsYXR0ZW5Mb2NhbGVzICYmXG4gICAgZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiZcbiAgICB0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9PT0gJ29iamVjdCcgJiZcbiAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdICE9PSBudWxsICYmXG4gICAgZmllbGQubG9jYWxpemVkICYmXG4gICAgbG9jYWxlICE9PSAnYWxsJyAmJlxuICAgIHJlcS5wYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb25cblxuICBpZiAoc2hvdWxkSG9pc3RMb2NhbGl6ZWRWYWx1ZSkge1xuICAgIC8vIHJlcGxhY2UgYWN0dWFsIHZhbHVlIHdpdGggbG9jYWxpemVkIHZhbHVlIGJlZm9yZSBzYW5pdGl6aW5nXG4gICAgLy8geyBbbG9jYWxlXTogZmllbGRzIH0gLT4gZmllbGRzXG4gICAgY29uc3QgdmFsdWUgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdW2xvY2FsZV1cblxuICAgIGxldCBob2lzdGVkVmFsdWUgPSB2YWx1ZVxuXG4gICAgaWYgKGZhbGxiYWNrTG9jYWxlICYmIGZhbGxiYWNrTG9jYWxlICE9PSBsb2NhbGUpIHtcbiAgICAgIGNvbnN0IGZhbGxiYWNrVmFsdWUgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdW2ZhbGxiYWNrTG9jYWxlXVxuICAgICAgY29uc3QgaXNOdWxsT3JVbmRlZmluZWQgPSB0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8IHZhbHVlID09PSBudWxsXG5cbiAgICAgIGlmIChmYWxsYmFja1ZhbHVlKSB7XG4gICAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgIGNhc2UgJ3RleHRhcmVhJzoge1xuICAgICAgICAgICAgaWYgKHZhbHVlID09PSAnJyB8fCBpc051bGxPclVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBob2lzdGVkVmFsdWUgPSBmYWxsYmFja1ZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGlmIChpc051bGxPclVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICBob2lzdGVkVmFsdWUgPSBmYWxsYmFja1ZhbHVlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSBob2lzdGVkVmFsdWVcbiAgfVxuXG4gIC8vIFNhbml0aXplIG91dGdvaW5nIGZpZWxkIHZhbHVlXG4gIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgIGNhc2UgJ2dyb3VwJzoge1xuICAgICAgLy8gRmlsbCBncm91cHMgd2l0aCBlbXB0eSBvYmplY3RzIHNvIGZpZWxkcyB3aXRoIGhvb2tzIHdpdGhpbiBncm91cHMgY2FuIHBvcHVsYXRlXG4gICAgICAvLyB0aGVtc2VsdmVzIHZpcnR1YWxseSBhcyBuZWNlc3NhcnlcbiAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IHt9XG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuICAgIGNhc2UgJ3RhYnMnOiB7XG4gICAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgdGFiSGFzTmFtZSh0YWIpICYmXG4gICAgICAgICAgKHR5cGVvZiBzaWJsaW5nRG9jW3RhYi5uYW1lXSA9PT0gJ3VuZGVmaW5lZCcgfHwgc2libGluZ0RvY1t0YWIubmFtZV0gPT09IG51bGwpXG4gICAgICAgICkge1xuICAgICAgICAgIHNpYmxpbmdEb2NbdGFiLm5hbWVdID0ge31cbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdyaWNoVGV4dCc6IHtcbiAgICAgIGNvbnN0IGVkaXRvcjogUmljaFRleHRBZGFwdGVyID0gZmllbGQ/LmVkaXRvclxuICAgICAgLy8gVGhpcyBpcyBydW4gaGVyZSBBTkQgaW4gdGhlIEdyYXBoUUwgUmVzb2x2ZXJcbiAgICAgIGlmIChlZGl0b3I/LnBvcHVsYXRpb25Qcm9taXNlKSB7XG4gICAgICAgIGNvbnN0IHBvcHVsYXRpb25Qcm9taXNlID0gZWRpdG9yLnBvcHVsYXRpb25Qcm9taXNlKHtcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgICBmbGF0dGVuTG9jYWxlcyxcbiAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgICAgc2libGluZ0RvYyxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAocG9wdWxhdGlvblByb21pc2UpIHtcbiAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMucHVzaChwb3B1bGF0aW9uUHJvbWlzZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBUaGlzIGlzIG9ubHkgcnVuIGhlcmUsIGluZGVwZW5kZW50IG9mIGRlcHRoXG4gICAgICBpZiAoZWRpdG9yPy5hZnRlclJlYWRQcm9taXNlKSB7XG4gICAgICAgIGNvbnN0IGFmdGVyUmVhZFByb21pc2UgPSBlZGl0b3I/LmFmdGVyUmVhZFByb21pc2Uoe1xuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGluY29taW5nRWRpdG9yU3RhdGU6IHNpYmxpbmdEb2NbZmllbGQubmFtZV0gYXMgb2JqZWN0LFxuICAgICAgICAgIHNpYmxpbmdEb2MsXG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKGFmdGVyUmVhZFByb21pc2UpIHtcbiAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMucHVzaChhZnRlclJlYWRQcm9taXNlKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAncG9pbnQnOiB7XG4gICAgICBjb25zdCBwb2ludERvYyA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHBvaW50RG9jPy5jb29yZGluYXRlcykgJiYgcG9pbnREb2MuY29vcmRpbmF0ZXMubGVuZ3RoID09PSAyKSB7XG4gICAgICAgIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSBwb2ludERvYy5jb29yZGluYXRlc1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IHVuZGVmaW5lZFxuICAgICAgfVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSB7XG4gICAgLy8gRXhlY3V0ZSBob29rc1xuICAgIGlmICh0cmlnZ2VySG9va3MgJiYgZmllbGQuaG9va3M/LmFmdGVyUmVhZCkge1xuICAgICAgYXdhaXQgZmllbGQuaG9va3MuYWZ0ZXJSZWFkLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBjdXJyZW50SG9vaykgPT4ge1xuICAgICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgICBjb25zdCBzaG91bGRSdW5Ib29rT25BbGxMb2NhbGVzID1cbiAgICAgICAgICBmaWVsZC5sb2NhbGl6ZWQgJiZcbiAgICAgICAgICAobG9jYWxlID09PSAnYWxsJyB8fCAhZmxhdHRlbkxvY2FsZXMpICYmXG4gICAgICAgICAgdHlwZW9mIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPT09ICdvYmplY3QnXG5cbiAgICAgICAgaWYgKHNob3VsZFJ1bkhvb2tPbkFsbExvY2FsZXMpIHtcbiAgICAgICAgICBjb25zdCBob29rUHJvbWlzZXMgPSBPYmplY3QuZW50cmllcyhzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdKS5tYXAoKFtsb2NhbGUsIHZhbHVlXSkgPT5cbiAgICAgICAgICAgIChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGhvb2tlZFZhbHVlID0gYXdhaXQgY3VycmVudEhvb2soe1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICBkYXRhOiBkb2MsXG4gICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgZ2xvYmFsLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogJ3JlYWQnLFxuICAgICAgICAgICAgICAgIG9yaWdpbmFsRG9jOiBkb2MsXG4gICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEYXRhOiBzaWJsaW5nRG9jLFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIGlmIChob29rZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc2libGluZ0RvY1tmaWVsZC5uYW1lXVtsb2NhbGVdID0gaG9va2VkVmFsdWVcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkoKSxcbiAgICAgICAgICApXG5cbiAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChob29rUHJvbWlzZXMpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaG9va2VkVmFsdWUgPSBhd2FpdCBjdXJyZW50SG9vayh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIGRhdGE6IGRvYyxcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgZmluZE1hbnksXG4gICAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgICBvcGVyYXRpb246ICdyZWFkJyxcbiAgICAgICAgICAgIG9yaWdpbmFsRG9jOiBkb2MsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICBzaWJsaW5nRGF0YTogc2libGluZ0RvYyxcbiAgICAgICAgICAgIHZhbHVlOiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBpZiAoaG9va2VkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IGhvb2tlZFZhbHVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcbiAgICB9XG5cbiAgICAvLyBFeGVjdXRlIGFjY2VzcyBjb250cm9sXG4gICAgbGV0IGFsbG93RGVmYXVsdFZhbHVlID0gdHJ1ZVxuICAgIGlmICh0cmlnZ2VyQWNjZXNzQ29udHJvbCAmJiBmaWVsZC5hY2Nlc3MgJiYgZmllbGQuYWNjZXNzLnJlYWQpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG92ZXJyaWRlQWNjZXNzXG4gICAgICAgID8gdHJ1ZVxuICAgICAgICA6IGF3YWl0IGZpZWxkLmFjY2Vzcy5yZWFkKHtcbiAgICAgICAgICAgIGlkOiBkb2MuaWQgYXMgbnVtYmVyIHwgc3RyaW5nLFxuICAgICAgICAgICAgZGF0YTogZG9jLFxuICAgICAgICAgICAgZG9jLFxuICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgc2libGluZ0RhdGE6IHNpYmxpbmdEb2MsXG4gICAgICAgICAgfSlcblxuICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgYWxsb3dEZWZhdWx0VmFsdWUgPSBmYWxzZVxuICAgICAgICBkZWxldGUgc2libGluZ0RvY1tmaWVsZC5uYW1lXVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNldCBkZWZhdWx0VmFsdWUgb24gdGhlIGZpZWxkIGZvciBnbG9iYWxzIGJlaW5nIHJldHVybmVkIHdpdGhvdXQgYmVpbmcgZmlyc3QgY3JlYXRlZFxuICAgIC8vIG9yIGNvbGxlY3Rpb24gZG9jdW1lbnRzIGNyZWF0ZWQgcHJpb3IgdG8gaGF2aW5nIGEgZGVmYXVsdFxuICAgIGlmIChcbiAgICAgIGFsbG93RGVmYXVsdFZhbHVlICYmXG4gICAgICB0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9PT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIHR5cGVvZiBmaWVsZC5kZWZhdWx0VmFsdWUgIT09ICd1bmRlZmluZWQnXG4gICAgKSB7XG4gICAgICBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0gYXdhaXQgZ2V0VmFsdWVXaXRoRGVmYXVsdCh7XG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZmllbGQuZGVmYXVsdFZhbHVlLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHVzZXI6IHJlcS51c2VyLFxuICAgICAgICB2YWx1ZTogc2libGluZ0RvY1tmaWVsZC5uYW1lXSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnIHx8IGZpZWxkLnR5cGUgPT09ICd1cGxvYWQnKSB7XG4gICAgICBwb3B1bGF0aW9uUHJvbWlzZXMucHVzaChcbiAgICAgICAgcmVsYXRpb25zaGlwUG9wdWxhdGlvblByb21pc2Uoe1xuICAgICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgICAgc2libGluZ0RvYyxcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICBsZXQgZ3JvdXBEb2MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gIT09ICdvYmplY3QnKSBncm91cERvYyA9IHt9XG5cbiAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICBkZXB0aCxcbiAgICAgICAgZG9jLFxuICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgZmllbGRQcm9taXNlcyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGZpbmRNYW55LFxuICAgICAgICBmbGF0dGVuTG9jYWxlcyxcbiAgICAgICAgZ2xvYmFsLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgc2libGluZ0RvYzogZ3JvdXBEb2MsXG4gICAgICAgIHRyaWdnZXJBY2Nlc3NDb250cm9sLFxuICAgICAgICB0cmlnZ2VySG9va3MsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2FycmF5Jzoge1xuICAgICAgY29uc3Qgcm93cyA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm93cykpIHtcbiAgICAgICAgcm93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgZG9jLFxuICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgICAgICBmaWVsZFByb21pc2VzLFxuICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgICAgIGZsYXR0ZW5Mb2NhbGVzLFxuICAgICAgICAgICAgZ2xvYmFsLFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgICAgc2libGluZ0RvYzogcm93IHx8IHt9LFxuICAgICAgICAgICAgdHJpZ2dlckFjY2Vzc0NvbnRyb2wsXG4gICAgICAgICAgICB0cmlnZ2VySG9va3MsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSBpZiAoIXNob3VsZEhvaXN0TG9jYWxpemVkVmFsdWUgJiYgdHlwZW9mIHJvd3MgPT09ICdvYmplY3QnICYmIHJvd3MgIT09IG51bGwpIHtcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhyb3dzKS5mb3JFYWNoKChsb2NhbGVSb3dzKSA9PiB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobG9jYWxlUm93cykpIHtcbiAgICAgICAgICAgIGxvY2FsZVJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICAgICAgICAgIGRlcHRoLFxuICAgICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgICAgICAgICBmaWVsZFByb21pc2VzLFxuICAgICAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICAgIGZpbmRNYW55LFxuICAgICAgICAgICAgICAgIGZsYXR0ZW5Mb2NhbGVzLFxuICAgICAgICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEb2M6IHJvdyB8fCB7fSxcbiAgICAgICAgICAgICAgICB0cmlnZ2VyQWNjZXNzQ29udHJvbCxcbiAgICAgICAgICAgICAgICB0cmlnZ2VySG9va3MsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSBbXVxuICAgICAgfVxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICBjb25zdCByb3dzID0gc2libGluZ0RvY1tmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICByb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIGNvbnN0IGJsb2NrID0gZmllbGQuYmxvY2tzLmZpbmQoKGJsb2NrVHlwZSkgPT4gYmxvY2tUeXBlLnNsdWcgPT09IHJvdy5ibG9ja1R5cGUpXG5cbiAgICAgICAgICBpZiAoYmxvY2spIHtcbiAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICAgICAgZG9jLFxuICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgICAgICAgZmllbGRQcm9taXNlcyxcbiAgICAgICAgICAgICAgZmllbGRzOiBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgIGZpbmRNYW55LFxuICAgICAgICAgICAgICBmbGF0dGVuTG9jYWxlcyxcbiAgICAgICAgICAgICAgZ2xvYmFsLFxuICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXMsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogcm93IHx8IHt9LFxuICAgICAgICAgICAgICB0cmlnZ2VyQWNjZXNzQ29udHJvbCxcbiAgICAgICAgICAgICAgdHJpZ2dlckhvb2tzLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9IGVsc2UgaWYgKCFzaG91bGRIb2lzdExvY2FsaXplZFZhbHVlICYmIHR5cGVvZiByb3dzID09PSAnb2JqZWN0JyAmJiByb3dzICE9PSBudWxsKSB7XG4gICAgICAgIE9iamVjdC52YWx1ZXMocm93cykuZm9yRWFjaCgobG9jYWxlUm93cykgPT4ge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGxvY2FsZVJvd3MpKSB7XG4gICAgICAgICAgICBsb2NhbGVSb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBibG9jayA9IGZpZWxkLmJsb2Nrcy5maW5kKChibG9ja1R5cGUpID0+IGJsb2NrVHlwZS5zbHVnID09PSByb3cuYmxvY2tUeXBlKVxuXG4gICAgICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICAgICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgICAgICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIGZpbmRNYW55LFxuICAgICAgICAgICAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgICAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgICAgICAgICAgICBzaWJsaW5nRG9jOiByb3cgfHwge30sXG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyQWNjZXNzQ29udHJvbCxcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJIb29rcyxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSBbXVxuICAgICAgfVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3Jvdyc6XG4gICAgY2FzZSAnY29sbGFwc2libGUnOiB7XG4gICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgZGVwdGgsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICByZXEsXG4gICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgIHNpYmxpbmdEb2MsXG4gICAgICAgIHRyaWdnZXJBY2Nlc3NDb250cm9sLFxuICAgICAgICB0cmlnZ2VySG9va3MsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYic6IHtcbiAgICAgIGxldCB0YWJEb2MgPSBzaWJsaW5nRG9jXG4gICAgICBpZiAodGFiSGFzTmFtZShmaWVsZCkpIHtcbiAgICAgICAgdGFiRG9jID0gc2libGluZ0RvY1tmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gIT09ICdvYmplY3QnKSB0YWJEb2MgPSB7fVxuICAgICAgfVxuXG4gICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGN1cnJlbnREZXB0aCxcbiAgICAgICAgZGVwdGgsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgIGZpZWxkUHJvbWlzZXMsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBmaW5kTWFueSxcbiAgICAgICAgZmxhdHRlbkxvY2FsZXMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcG9wdWxhdGlvblByb21pc2VzLFxuICAgICAgICByZXEsXG4gICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgIHNpYmxpbmdEb2M6IHRhYkRvYyxcbiAgICAgICAgdHJpZ2dlckFjY2Vzc0NvbnRyb2wsXG4gICAgICAgIHRyaWdnZXJIb29rcyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAndGFicyc6IHtcbiAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgY3VycmVudERlcHRoLFxuICAgICAgICBkZXB0aCxcbiAgICAgICAgZG9jLFxuICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgZmllbGRQcm9taXNlcyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC50YWJzLm1hcCgodGFiKSA9PiAoeyAuLi50YWIsIHR5cGU6ICd0YWInIH0pKSxcbiAgICAgICAgZmluZE1hbnksXG4gICAgICAgIGZsYXR0ZW5Mb2NhbGVzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHBvcHVsYXRpb25Qcm9taXNlcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaG93SGlkZGVuRmllbGRzLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgICB0cmlnZ2VyQWNjZXNzQ29udHJvbCxcbiAgICAgICAgdHJpZ2dlckhvb2tzLFxuICAgICAgfSlcbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgZGVmYXVsdDoge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmaWVsZEFmZmVjdHNEYXRhIiwidGFiSGFzTmFtZSIsImdldFZhbHVlV2l0aERlZmF1bHQiLCJyZWxhdGlvbnNoaXBQb3B1bGF0aW9uUHJvbWlzZSIsInRyYXZlcnNlRmllbGRzIiwicHJvbWlzZSIsImNvbGxlY3Rpb24iLCJjb250ZXh0IiwiY3VycmVudERlcHRoIiwiZGVwdGgiLCJkb2MiLCJmYWxsYmFja0xvY2FsZSIsImZpZWxkIiwiZmllbGRQcm9taXNlcyIsImZpbmRNYW55IiwiZmxhdHRlbkxvY2FsZXMiLCJnbG9iYWwiLCJsb2NhbGUiLCJvdmVycmlkZUFjY2VzcyIsInBvcHVsYXRpb25Qcm9taXNlcyIsInJlcSIsInNob3dIaWRkZW5GaWVsZHMiLCJzaWJsaW5nRG9jIiwidHJpZ2dlckFjY2Vzc0NvbnRyb2wiLCJ0cmlnZ2VySG9va3MiLCJoaWRkZW4iLCJuYW1lIiwic2hvdWxkSG9pc3RMb2NhbGl6ZWRWYWx1ZSIsImxvY2FsaXplZCIsInBheWxvYWQiLCJjb25maWciLCJsb2NhbGl6YXRpb24iLCJ2YWx1ZSIsImhvaXN0ZWRWYWx1ZSIsImZhbGxiYWNrVmFsdWUiLCJpc051bGxPclVuZGVmaW5lZCIsInR5cGUiLCJ0YWJzIiwiZm9yRWFjaCIsInRhYiIsImVkaXRvciIsInBvcHVsYXRpb25Qcm9taXNlIiwicHVzaCIsImFmdGVyUmVhZFByb21pc2UiLCJpbmNvbWluZ0VkaXRvclN0YXRlIiwicG9pbnREb2MiLCJBcnJheSIsImlzQXJyYXkiLCJjb29yZGluYXRlcyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImhvb2tzIiwiYWZ0ZXJSZWFkIiwicmVkdWNlIiwicHJpb3JIb29rIiwiY3VycmVudEhvb2siLCJzaG91bGRSdW5Ib29rT25BbGxMb2NhbGVzIiwiaG9va1Byb21pc2VzIiwiT2JqZWN0IiwiZW50cmllcyIsIm1hcCIsImhvb2tlZFZhbHVlIiwiZGF0YSIsIm9wZXJhdGlvbiIsIm9yaWdpbmFsRG9jIiwic2libGluZ0RhdGEiLCJQcm9taXNlIiwiYWxsIiwicmVzb2x2ZSIsImFsbG93RGVmYXVsdFZhbHVlIiwiYWNjZXNzIiwicmVhZCIsInJlc3VsdCIsImlkIiwiZGVmYXVsdFZhbHVlIiwidXNlciIsImdyb3VwRG9jIiwiZmllbGRzIiwicm93cyIsInJvdyIsInZhbHVlcyIsImxvY2FsZVJvd3MiLCJibG9jayIsImJsb2NrcyIsImZpbmQiLCJibG9ja1R5cGUiLCJzbHVnIiwidGFiRG9jIl0sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0MsR0FPcEMsU0FBU0EsZ0JBQWdCLEVBQUVDLFVBQVUsUUFBUSx3QkFBdUI7QUFDcEUsT0FBT0MseUJBQXlCLDJCQUEwQjtBQUMxRCxTQUFTQyw2QkFBNkIsUUFBUSxxQ0FBb0M7QUFDbEYsU0FBU0MsY0FBYyxRQUFRLHNCQUFxQjtBQXdCcEQsb0VBQW9FO0FBQ3BFLHVDQUF1QztBQUN2QywwQ0FBMEM7QUFDMUMsK0NBQStDO0FBQy9DLHdCQUF3QjtBQUN4QixnQ0FBZ0M7QUFDaEMsMkJBQTJCO0FBRTNCLE9BQU8sTUFBTUMsVUFBVSxPQUFPLEVBQzVCQyxVQUFVLEVBQ1ZDLE9BQU8sRUFDUEMsWUFBWSxFQUNaQyxLQUFLLEVBQ0xDLEdBQUcsRUFDSEMsY0FBYyxFQUNkQyxLQUFLLEVBQ0xDLGFBQWEsRUFDYkMsUUFBUSxFQUNSQyxjQUFjLEVB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
|
|
446
|
+
//# sourceMappingURL=promise.js.map
|