payload 3.0.0-alpha.9 → 3.0.0-beta.0
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.d.ts +5 -5
- package/auth.js +5 -44
- package/bin.js +17 -1
- package/config.d.ts +13 -10
- package/config.js +13 -59
- package/database.d.ts +22 -22
- package/database.js +21 -108
- package/dist/admin/RichText.d.ts +14 -11
- package/dist/admin/RichText.d.ts.map +1 -1
- package/dist/admin/RichText.js +2 -5
- package/dist/admin/RichText.js.map +1 -0
- package/dist/admin/elements/Cell.d.ts +8 -8
- package/dist/admin/elements/Cell.d.ts.map +1 -1
- package/dist/admin/elements/Cell.js +2 -5
- package/dist/admin/elements/Cell.js.map +1 -0
- package/dist/admin/elements/DatePicker.js +2 -5
- package/dist/admin/elements/DatePicker.js.map +1 -0
- package/dist/admin/elements/PreviewButton.d.ts +1 -8
- package/dist/admin/elements/PreviewButton.d.ts.map +1 -1
- package/dist/admin/elements/PreviewButton.js +2 -5
- package/dist/admin/elements/PreviewButton.js.map +1 -0
- package/dist/admin/elements/PublishButton.d.ts +1 -10
- package/dist/admin/elements/PublishButton.d.ts.map +1 -1
- package/dist/admin/elements/PublishButton.js +2 -5
- package/dist/admin/elements/PublishButton.js.map +1 -0
- package/dist/admin/elements/SaveButton.d.ts +1 -7
- package/dist/admin/elements/SaveButton.d.ts.map +1 -1
- package/dist/admin/elements/SaveButton.js +2 -5
- package/dist/admin/elements/SaveButton.js.map +1 -0
- package/dist/admin/elements/SaveDraftButton.d.ts +1 -8
- package/dist/admin/elements/SaveDraftButton.d.ts.map +1 -1
- package/dist/admin/elements/SaveDraftButton.js +2 -5
- package/dist/admin/elements/SaveDraftButton.js.map +1 -0
- package/dist/admin/elements/Tab.d.ts +3 -3
- package/dist/admin/elements/Tab.d.ts.map +1 -1
- package/dist/admin/elements/Tab.js +2 -5
- package/dist/admin/elements/Tab.js.map +1 -0
- package/dist/admin/forms/Error.d.ts +1 -0
- package/dist/admin/forms/Error.d.ts.map +1 -1
- package/dist/admin/forms/Error.js +2 -5
- package/dist/admin/forms/Error.js.map +1 -0
- package/dist/admin/forms/FieldDescription.d.ts +10 -6
- package/dist/admin/forms/FieldDescription.d.ts.map +1 -1
- package/dist/admin/forms/FieldDescription.js +2 -5
- package/dist/admin/forms/FieldDescription.js.map +1 -0
- package/dist/admin/forms/FieldTypes.js +2 -5
- package/dist/admin/forms/FieldTypes.js.map +1 -0
- package/dist/admin/forms/Form.d.ts +26 -0
- package/dist/admin/forms/Form.d.ts.map +1 -1
- package/dist/admin/forms/Form.js +2 -5
- package/dist/admin/forms/Form.js.map +1 -0
- package/dist/admin/forms/Label.d.ts +5 -1
- package/dist/admin/forms/Label.d.ts.map +1 -1
- package/dist/admin/forms/Label.js +2 -5
- package/dist/admin/forms/Label.js.map +1 -0
- package/dist/admin/forms/RowLabel.d.ts +2 -9
- package/dist/admin/forms/RowLabel.d.ts.map +1 -1
- package/dist/admin/forms/RowLabel.js +2 -5
- package/dist/admin/forms/RowLabel.js.map +1 -0
- package/dist/admin/types.d.ts +15 -18
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/admin/types.js +2 -5
- package/dist/admin/types.js.map +1 -0
- package/dist/admin/views/types.d.ts +55 -0
- package/dist/admin/views/types.d.ts.map +1 -0
- package/dist/admin/views/types.js +3 -0
- package/dist/admin/views/types.js.map +1 -0
- package/dist/assets/assets.d.js +1 -2
- package/dist/assets/assets.d.js.map +1 -0
- package/dist/auth/baseFields/accountLock.d.ts +1 -1
- package/dist/auth/baseFields/accountLock.d.ts.map +1 -1
- package/dist/auth/baseFields/accountLock.js +6 -16
- package/dist/auth/baseFields/accountLock.js.map +1 -0
- package/dist/auth/baseFields/apiKey.d.ts +1 -1
- package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
- package/dist/auth/baseFields/apiKey.js +8 -27
- package/dist/auth/baseFields/apiKey.js.map +1 -0
- package/dist/auth/baseFields/auth.d.ts +1 -1
- package/dist/auth/baseFields/auth.d.ts.map +1 -1
- package/dist/auth/baseFields/auth.js +5 -19
- package/dist/auth/baseFields/auth.js.map +1 -0
- package/dist/auth/baseFields/verification.d.ts +1 -1
- package/dist/auth/baseFields/verification.d.ts.map +1 -1
- package/dist/auth/baseFields/verification.js +6 -20
- package/dist/auth/baseFields/verification.js.map +1 -0
- package/dist/auth/cookies.d.ts +6 -2
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/cookies.js +7 -34
- package/dist/auth/cookies.js.map +1 -0
- package/dist/auth/crypto.js +7 -30
- package/dist/auth/crypto.js.map +1 -0
- package/dist/auth/defaultAccess.d.ts +1 -1
- package/dist/auth/defaultAccess.d.ts.map +1 -1
- package/dist/auth/defaultAccess.js +2 -12
- package/dist/auth/defaultAccess.js.map +1 -0
- package/dist/auth/defaultUser.d.ts +1 -1
- package/dist/auth/defaultUser.d.ts.map +1 -1
- package/dist/auth/defaultUser.js +6 -21
- package/dist/auth/defaultUser.js.map +1 -0
- package/dist/auth/executeAccess.d.ts +2 -2
- package/dist/auth/executeAccess.d.ts.map +1 -1
- package/dist/auth/executeAccess.js +5 -15
- package/dist/auth/executeAccess.js.map +1 -0
- package/dist/auth/executeAuthStrategies.d.ts +3 -0
- package/dist/auth/executeAuthStrategies.d.ts.map +1 -0
- package/dist/auth/executeAuthStrategies.js +11 -0
- package/dist/auth/executeAuthStrategies.js.map +1 -0
- package/dist/auth/extractJWT.d.ts +1 -1
- package/dist/auth/extractJWT.d.ts.map +1 -1
- package/dist/auth/extractJWT.js +4 -14
- package/dist/auth/extractJWT.js.map +1 -0
- package/dist/auth/getAccessResults.d.ts +2 -2
- package/dist/auth/getAccessResults.d.ts.map +1 -1
- package/dist/auth/getAccessResults.js +15 -21
- package/dist/auth/getAccessResults.js.map +1 -0
- package/dist/auth/getFieldsToSign.d.ts +2 -2
- package/dist/auth/getFieldsToSign.d.ts.map +1 -1
- package/dist/auth/getFieldsToSign.js +5 -15
- package/dist/auth/getFieldsToSign.js.map +1 -0
- package/dist/auth/index.d.ts +3 -3
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +4 -27
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/isLocked.js +2 -12
- package/dist/auth/isLocked.js.map +1 -0
- package/dist/auth/operations/access.d.ts +2 -2
- package/dist/auth/operations/access.d.ts.map +1 -1
- package/dist/auth/operations/access.js +12 -22
- package/dist/auth/operations/access.js.map +1 -0
- package/dist/auth/operations/auth.d.ts +13 -0
- package/dist/auth/operations/auth.d.ts.map +1 -0
- package/dist/auth/operations/auth.js +35 -0
- package/dist/auth/operations/auth.js.map +1 -0
- package/dist/auth/operations/forgotPassword.d.ts +2 -2
- package/dist/auth/operations/forgotPassword.d.ts.map +1 -1
- package/dist/auth/operations/forgotPassword.js +21 -32
- package/dist/auth/operations/forgotPassword.js.map +1 -0
- package/dist/auth/operations/init.d.ts +1 -1
- package/dist/auth/operations/init.d.ts.map +1 -1
- package/dist/auth/operations/init.js +2 -12
- package/dist/auth/operations/init.js.map +1 -0
- package/dist/auth/operations/local/auth.d.ts +4 -0
- package/dist/auth/operations/local/auth.d.ts.map +1 -0
- package/dist/auth/operations/local/auth.js +13 -0
- package/dist/auth/operations/local/auth.js.map +1 -0
- package/dist/auth/operations/local/forgotPassword.d.ts +3 -3
- package/dist/auth/operations/local/forgotPassword.d.ts.map +1 -1
- package/dist/auth/operations/local/forgotPassword.js +8 -18
- package/dist/auth/operations/local/forgotPassword.js.map +1 -0
- package/dist/auth/operations/local/index.d.ts +6 -5
- package/dist/auth/operations/local/index.d.ts.map +1 -1
- package/dist/auth/operations/local/index.js +14 -27
- package/dist/auth/operations/local/index.js.map +1 -0
- package/dist/auth/operations/local/login.d.ts +4 -4
- package/dist/auth/operations/local/login.d.ts.map +1 -1
- package/dist/auth/operations/local/login.js +8 -18
- package/dist/auth/operations/local/login.js.map +1 -0
- package/dist/auth/operations/local/resetPassword.d.ts +4 -4
- package/dist/auth/operations/local/resetPassword.d.ts.map +1 -1
- package/dist/auth/operations/local/resetPassword.js +8 -18
- package/dist/auth/operations/local/resetPassword.js.map +1 -0
- package/dist/auth/operations/local/unlock.d.ts +3 -3
- package/dist/auth/operations/local/unlock.d.ts.map +1 -1
- package/dist/auth/operations/local/unlock.js +8 -18
- package/dist/auth/operations/local/unlock.js.map +1 -0
- package/dist/auth/operations/local/verifyEmail.d.ts +3 -3
- package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
- package/dist/auth/operations/local/verifyEmail.js +8 -18
- package/dist/auth/operations/local/verifyEmail.js.map +1 -0
- package/dist/auth/operations/login.d.ts +5 -9
- package/dist/auth/operations/login.d.ts.map +1 -1
- package/dist/auth/operations/login.js +32 -50
- package/dist/auth/operations/login.js.map +1 -0
- package/dist/auth/operations/logout.d.ts +2 -2
- package/dist/auth/operations/logout.d.ts.map +1 -1
- package/dist/auth/operations/logout.js +6 -21
- package/dist/auth/operations/logout.js.map +1 -0
- package/dist/auth/operations/me.d.ts +6 -6
- package/dist/auth/operations/me.d.ts.map +1 -1
- package/dist/auth/operations/me.js +4 -19
- package/dist/auth/operations/me.js.map +1 -0
- package/dist/auth/operations/refresh.d.ts +3 -3
- package/dist/auth/operations/refresh.d.ts.map +1 -1
- package/dist/auth/operations/refresh.js +19 -34
- package/dist/auth/operations/refresh.js.map +1 -0
- package/dist/auth/operations/registerFirstUser.d.ts +4 -12
- package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
- package/dist/auth/operations/registerFirstUser.js +11 -21
- package/dist/auth/operations/registerFirstUser.js.map +1 -0
- package/dist/auth/operations/resetPassword.d.ts +2 -2
- package/dist/auth/operations/resetPassword.d.ts.map +1 -1
- package/dist/auth/operations/resetPassword.js +21 -43
- package/dist/auth/operations/resetPassword.js.map +1 -0
- package/dist/auth/operations/unlock.d.ts +2 -2
- package/dist/auth/operations/unlock.d.ts.map +1 -1
- package/dist/auth/operations/unlock.js +17 -39
- package/dist/auth/operations/unlock.js.map +1 -0
- package/dist/auth/operations/verifyEmail.d.ts +2 -2
- package/dist/auth/operations/verifyEmail.d.ts.map +1 -1
- package/dist/auth/operations/verifyEmail.js +14 -37
- package/dist/auth/operations/verifyEmail.js.map +1 -0
- package/dist/auth/sendVerificationEmail.d.ts +5 -5
- package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
- package/dist/auth/sendVerificationEmail.js +4 -14
- package/dist/auth/sendVerificationEmail.js.map +1 -0
- package/dist/auth/strategies/apiKey.d.ts +2 -2
- package/dist/auth/strategies/apiKey.d.ts.map +1 -1
- package/dist/auth/strategies/apiKey.js +6 -19
- package/dist/auth/strategies/apiKey.js.map +1 -0
- package/dist/auth/strategies/jwt.d.ts +1 -1
- package/dist/auth/strategies/jwt.d.ts.map +1 -1
- package/dist/auth/strategies/jwt.js +6 -21
- package/dist/auth/strategies/jwt.js.map +1 -0
- package/dist/auth/strategies/local/authenticate.d.ts +1 -1
- package/dist/auth/strategies/local/authenticate.d.ts.map +1 -1
- package/dist/auth/strategies/local/authenticate.js +6 -21
- package/dist/auth/strategies/local/authenticate.js.map +1 -0
- package/dist/auth/strategies/local/generatePasswordSaltHash.d.ts.map +1 -1
- package/dist/auth/strategies/local/generatePasswordSaltHash.js +7 -22
- package/dist/auth/strategies/local/generatePasswordSaltHash.js.map +1 -0
- package/dist/auth/strategies/local/incrementLoginAttempts.d.ts +3 -3
- package/dist/auth/strategies/local/incrementLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/incrementLoginAttempts.js +4 -12
- package/dist/auth/strategies/local/incrementLoginAttempts.js.map +1 -0
- package/dist/auth/strategies/local/register.d.ts +3 -3
- package/dist/auth/strategies/local/register.d.ts.map +1 -1
- package/dist/auth/strategies/local/register.js +9 -16
- package/dist/auth/strategies/local/register.js.map +1 -0
- package/dist/auth/strategies/local/resetLoginAttempts.d.ts +3 -3
- package/dist/auth/strategies/local/resetLoginAttempts.d.ts.map +1 -1
- package/dist/auth/strategies/local/resetLoginAttempts.js +3 -12
- package/dist/auth/strategies/local/resetLoginAttempts.js.map +1 -0
- package/dist/auth/types.d.ts +8 -3
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js +2 -12
- package/dist/auth/types.js.map +1 -0
- package/dist/bin/generateTypes.d.ts +1 -1
- package/dist/bin/generateTypes.d.ts.map +1 -1
- package/dist/bin/generateTypes.js +10 -34
- package/dist/bin/generateTypes.js.map +1 -0
- package/dist/bin/index.d.ts +1 -1
- package/dist/bin/index.d.ts.map +1 -1
- package/dist/bin/index.js +25 -69
- package/dist/bin/index.js.map +1 -0
- package/dist/bin/loadEnv.js +13 -26
- package/dist/bin/loadEnv.js.map +1 -0
- package/dist/bin/loader/clientExtensions.d.ts +2 -0
- package/dist/bin/loader/clientExtensions.d.ts.map +1 -0
- package/dist/bin/loader/clientExtensions.js +13 -0
- package/dist/bin/loader/clientExtensions.js.map +1 -0
- package/dist/bin/loader/compile.d.ts +5 -0
- package/dist/bin/loader/compile.d.ts.map +1 -0
- package/dist/bin/loader/compile.js +27 -0
- package/dist/bin/loader/compile.js.map +1 -0
- package/dist/bin/loader/index.d.ts +34 -0
- package/dist/bin/loader/index.d.ts.map +1 -0
- package/dist/bin/loader/index.js +113 -0
- package/dist/bin/loader/index.js.map +1 -0
- package/dist/bin/loader/read-default-tsconfig.d.ts +4 -0
- package/dist/bin/loader/read-default-tsconfig.d.ts.map +1 -0
- package/dist/bin/loader/read-default-tsconfig.js +92 -0
- package/dist/bin/loader/read-default-tsconfig.js.map +1 -0
- package/dist/bin/migrate.d.ts +7 -1
- package/dist/bin/migrate.d.ts.map +1 -1
- package/dist/bin/migrate.js +12 -37
- package/dist/bin/migrate.js.map +1 -0
- package/dist/collections/config/build.d.ts +1 -1
- package/dist/collections/config/build.d.ts.map +1 -1
- package/dist/collections/config/build.js +2 -12
- package/dist/collections/config/build.js.map +1 -0
- package/dist/collections/config/client.d.ts +322 -0
- package/dist/collections/config/client.d.ts.map +1 -0
- package/dist/collections/config/client.js +72 -0
- package/dist/collections/config/client.js.map +1 -0
- package/dist/collections/config/defaults.d.ts +5 -5
- package/dist/collections/config/defaults.js +9 -32
- package/dist/collections/config/defaults.js.map +1 -0
- package/dist/collections/config/sanitize.d.ts +2 -2
- package/dist/collections/config/sanitize.d.ts.map +1 -1
- package/dist/collections/config/sanitize.js +38 -54
- package/dist/collections/config/sanitize.js.map +1 -0
- package/dist/collections/config/schema.d.ts.map +1 -1
- package/dist/collections/config/schema.js +152 -176
- package/dist/collections/config/schema.js.map +1 -0
- package/dist/collections/config/types.d.ts +25 -52
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js +2 -5
- package/dist/collections/config/types.js.map +1 -0
- package/dist/collections/dataloader.d.ts +2 -2
- package/dist/collections/dataloader.d.ts.map +1 -1
- package/dist/collections/dataloader.js +8 -23
- package/dist/collections/dataloader.js.map +1 -0
- package/dist/collections/operations/create.d.ts +4 -12
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +38 -53
- package/dist/collections/operations/create.js.map +1 -0
- package/dist/collections/operations/delete.d.ts +5 -14
- package/dist/collections/operations/delete.d.ts.map +1 -1
- package/dist/collections/operations/delete.js +27 -42
- package/dist/collections/operations/delete.js.map +1 -0
- package/dist/collections/operations/deleteByID.d.ts +2 -3
- package/dist/collections/operations/deleteByID.d.ts.map +1 -1
- package/dist/collections/operations/deleteByID.js +27 -42
- package/dist/collections/operations/deleteByID.js.map +1 -0
- package/dist/collections/operations/docAccess.d.ts +3 -3
- package/dist/collections/operations/docAccess.d.ts.map +1 -1
- package/dist/collections/operations/docAccess.js +12 -22
- package/dist/collections/operations/docAccess.js.map +1 -0
- package/dist/collections/operations/duplicate.d.ts +14 -0
- package/dist/collections/operations/duplicate.d.ts.map +1 -0
- package/dist/collections/operations/duplicate.js +257 -0
- package/dist/collections/operations/duplicate.js.map +1 -0
- package/dist/collections/operations/find.d.ts +3 -4
- package/dist/collections/operations/find.d.ts.map +1 -1
- package/dist/collections/operations/find.js +25 -40
- package/dist/collections/operations/find.js.map +1 -0
- package/dist/collections/operations/findByID.d.ts +2 -2
- package/dist/collections/operations/findByID.d.ts.map +1 -1
- package/dist/collections/operations/findByID.js +21 -36
- package/dist/collections/operations/findByID.js.map +1 -0
- package/dist/collections/operations/findVersionByID.d.ts +3 -3
- package/dist/collections/operations/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/findVersionByID.js +19 -34
- package/dist/collections/operations/findVersionByID.js.map +1 -0
- package/dist/collections/operations/findVersions.d.ts +4 -5
- package/dist/collections/operations/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/findVersions.js +20 -35
- package/dist/collections/operations/findVersions.js.map +1 -0
- package/dist/collections/operations/local/create.d.ts +4 -5
- package/dist/collections/operations/local/create.d.ts.map +1 -1
- package/dist/collections/operations/local/create.js +11 -25
- package/dist/collections/operations/local/create.js.map +1 -0
- package/dist/collections/operations/local/delete.d.ts +5 -5
- package/dist/collections/operations/local/delete.d.ts.map +1 -1
- package/dist/collections/operations/local/delete.js +10 -20
- package/dist/collections/operations/local/delete.js.map +1 -0
- package/dist/collections/operations/local/duplicate.d.ts +21 -0
- package/dist/collections/operations/local/duplicate.d.ts.map +1 -0
- package/dist/collections/operations/local/duplicate.js +25 -0
- package/dist/collections/operations/local/duplicate.js.map +1 -0
- package/dist/collections/operations/local/find.d.ts +3 -4
- package/dist/collections/operations/local/find.d.ts.map +1 -1
- package/dist/collections/operations/local/find.js +8 -18
- package/dist/collections/operations/local/find.js.map +1 -0
- package/dist/collections/operations/local/findByID.d.ts +2 -4
- package/dist/collections/operations/local/findByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findByID.js +8 -18
- package/dist/collections/operations/local/findByID.js.map +1 -0
- package/dist/collections/operations/local/findVersionByID.d.ts +3 -4
- package/dist/collections/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersionByID.js +8 -18
- package/dist/collections/operations/local/findVersionByID.js.map +1 -0
- package/dist/collections/operations/local/findVersions.d.ts +4 -5
- package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
- package/dist/collections/operations/local/findVersions.js +8 -18
- package/dist/collections/operations/local/findVersions.js.map +1 -0
- package/dist/collections/operations/local/index.d.ts +16 -13
- package/dist/collections/operations/local/index.d.ts.map +1 -1
- package/dist/collections/operations/local/index.js +22 -35
- package/dist/collections/operations/local/index.js.map +1 -0
- package/dist/collections/operations/local/restoreVersion.d.ts +2 -3
- package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/local/restoreVersion.js +8 -18
- package/dist/collections/operations/local/restoreVersion.js.map +1 -0
- package/dist/collections/operations/local/update.d.ts +4 -5
- package/dist/collections/operations/local/update.d.ts.map +1 -1
- package/dist/collections/operations/local/update.js +12 -27
- package/dist/collections/operations/local/update.js.map +1 -0
- package/dist/collections/operations/restoreVersion.d.ts +2 -2
- package/dist/collections/operations/restoreVersion.d.ts.map +1 -1
- package/dist/collections/operations/restoreVersion.js +26 -41
- package/dist/collections/operations/restoreVersion.js.map +1 -0
- package/dist/collections/operations/update.d.ts +5 -10
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +43 -58
- package/dist/collections/operations/update.js.map +1 -0
- package/dist/collections/operations/updateByID.d.ts +4 -12
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +44 -59
- package/dist/collections/operations/updateByID.js.map +1 -0
- package/dist/collections/operations/utils.d.ts +13 -13
- package/dist/collections/operations/utils.d.ts.map +1 -1
- package/dist/collections/operations/utils.js +3 -12
- package/dist/collections/operations/utils.js.map +1 -0
- package/dist/config/build.d.ts +1 -1
- package/dist/config/build.d.ts.map +1 -1
- package/dist/config/build.js +9 -15
- package/dist/config/build.js.map +1 -0
- package/dist/config/client.d.ts +18 -0
- package/dist/config/client.d.ts.map +1 -0
- package/dist/config/client.js +65 -0
- package/dist/config/client.js.map +1 -0
- package/dist/config/defaults.d.ts +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +3 -21
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/find.d.ts +1 -2
- package/dist/config/find.d.ts.map +1 -1
- package/dist/config/find.js +18 -34
- package/dist/config/find.js.map +1 -0
- package/dist/config/sanitize.d.ts +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js +27 -40
- package/dist/config/sanitize.js.map +1 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +113 -133
- package/dist/config/schema.js.map +1 -0
- package/dist/config/shared/adminViewSchema.js +9 -24
- package/dist/config/shared/adminViewSchema.js.map +1 -0
- package/dist/config/shared/componentSchema.js +21 -50
- package/dist/config/shared/componentSchema.js.map +1 -0
- package/dist/config/types.d.ts +56 -52
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +9 -21
- package/dist/config/types.js.map +1 -0
- package/dist/config/validate.d.ts +2 -3
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +17 -74
- package/dist/config/validate.js.map +1 -0
- package/dist/database/combineQueries.d.ts +1 -1
- package/dist/database/combineQueries.d.ts.map +1 -1
- package/dist/database/combineQueries.js +4 -14
- package/dist/database/combineQueries.js.map +1 -0
- package/dist/database/createDatabaseAdapter.d.ts +1 -1
- package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
- package/dist/database/createDatabaseAdapter.js +14 -24
- package/dist/database/createDatabaseAdapter.js.map +1 -0
- package/dist/database/flattenWhereToOperators.d.ts +1 -1
- package/dist/database/flattenWhereToOperators.d.ts.map +1 -1
- package/dist/database/flattenWhereToOperators.js +2 -12
- package/dist/database/flattenWhereToOperators.js.map +1 -0
- package/dist/database/getLocalizedPaths.d.ts +3 -3
- package/dist/database/getLocalizedPaths.d.ts.map +1 -1
- package/dist/database/getLocalizedPaths.js +7 -22
- package/dist/database/getLocalizedPaths.js.map +1 -0
- package/dist/database/migrations/createMigration.d.ts +1 -1
- package/dist/database/migrations/createMigration.d.ts.map +1 -1
- package/dist/database/migrations/createMigration.js +7 -22
- package/dist/database/migrations/createMigration.js.map +1 -0
- package/dist/database/migrations/getMigrations.d.ts +2 -2
- package/dist/database/migrations/getMigrations.d.ts.map +1 -1
- package/dist/database/migrations/getMigrations.js +4 -12
- package/dist/database/migrations/getMigrations.js.map +1 -0
- package/dist/database/migrations/migrate.d.ts +1 -1
- package/dist/database/migrations/migrate.d.ts.map +1 -1
- package/dist/database/migrations/migrate.js +12 -22
- package/dist/database/migrations/migrate.js.map +1 -0
- package/dist/database/migrations/migrateDown.d.ts +1 -1
- package/dist/database/migrations/migrateDown.d.ts.map +1 -1
- package/dist/database/migrations/migrateDown.js +12 -22
- package/dist/database/migrations/migrateDown.js.map +1 -0
- package/dist/database/migrations/migrateRefresh.d.ts +1 -1
- package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
- package/dist/database/migrations/migrateRefresh.js +16 -24
- package/dist/database/migrations/migrateRefresh.js.map +1 -0
- package/dist/database/migrations/migrateReset.d.ts +1 -1
- package/dist/database/migrations/migrateReset.d.ts.map +1 -1
- package/dist/database/migrations/migrateReset.js +12 -22
- package/dist/database/migrations/migrateReset.js.map +1 -0
- package/dist/database/migrations/migrateStatus.d.ts +1 -1
- package/dist/database/migrations/migrateStatus.d.ts.map +1 -1
- package/dist/database/migrations/migrateStatus.js +8 -18
- package/dist/database/migrations/migrateStatus.js.map +1 -0
- package/dist/database/migrations/migrationTemplate.js +2 -12
- package/dist/database/migrations/migrationTemplate.js.map +1 -0
- package/dist/database/migrations/migrationsCollection.d.ts +1 -1
- package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
- package/dist/database/migrations/migrationsCollection.js +2 -12
- package/dist/database/migrations/migrationsCollection.js.map +1 -0
- package/dist/database/migrations/readMigrationFiles.d.ts +2 -2
- package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
- package/dist/database/migrations/readMigrationFiles.js +18 -25
- package/dist/database/migrations/readMigrationFiles.js.map +1 -0
- package/dist/database/queryValidation/types.d.ts +2 -2
- package/dist/database/queryValidation/types.d.ts.map +1 -1
- package/dist/database/queryValidation/types.js +2 -5
- package/dist/database/queryValidation/types.js.map +1 -0
- package/dist/database/queryValidation/validateQueryPaths.d.ts +5 -5
- package/dist/database/queryValidation/validateQueryPaths.d.ts.map +1 -1
- package/dist/database/queryValidation/validateQueryPaths.js +13 -28
- package/dist/database/queryValidation/validateQueryPaths.js.map +1 -0
- package/dist/database/queryValidation/validateSearchParams.d.ts +5 -5
- package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
- package/dist/database/queryValidation/validateSearchParams.js +18 -25
- package/dist/database/queryValidation/validateSearchParams.js.map +1 -0
- package/dist/database/types.d.ts +16 -10
- package/dist/database/types.d.ts.map +1 -1
- package/dist/database/types.js +2 -5
- package/dist/database/types.js.map +1 -0
- package/dist/email/build.d.ts +2 -2
- package/dist/email/build.d.ts.map +1 -1
- package/dist/email/build.js +11 -26
- package/dist/email/build.js.map +1 -0
- package/dist/email/defaults.d.ts +1 -1
- package/dist/email/defaults.d.ts.map +1 -1
- package/dist/email/defaults.js +2 -12
- package/dist/email/defaults.js.map +1 -0
- package/dist/email/mockHandler.d.ts +2 -2
- package/dist/email/mockHandler.d.ts.map +1 -1
- package/dist/email/mockHandler.js +8 -23
- package/dist/email/mockHandler.js.map +1 -0
- package/dist/email/sendEmail.js +2 -12
- package/dist/email/sendEmail.js.map +1 -0
- package/dist/email/types.js +2 -5
- package/dist/email/types.js.map +1 -0
- package/dist/errors/APIError.js +4 -19
- package/dist/errors/APIError.js.map +1 -0
- package/dist/errors/AuthenticationError.d.ts +1 -1
- package/dist/errors/AuthenticationError.d.ts.map +1 -1
- package/dist/errors/AuthenticationError.js +7 -22
- package/dist/errors/AuthenticationError.js.map +1 -0
- package/dist/errors/DuplicateCollection.d.ts +1 -1
- package/dist/errors/DuplicateCollection.d.ts.map +1 -1
- package/dist/errors/DuplicateCollection.js +4 -19
- package/dist/errors/DuplicateCollection.js.map +1 -0
- package/dist/errors/DuplicateFieldName.d.ts +1 -1
- package/dist/errors/DuplicateFieldName.d.ts.map +1 -1
- package/dist/errors/DuplicateFieldName.js +4 -19
- package/dist/errors/DuplicateFieldName.js.map +1 -0
- package/dist/errors/DuplicateGlobal.d.ts +2 -2
- package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
- package/dist/errors/DuplicateGlobal.js +4 -19
- package/dist/errors/DuplicateGlobal.js.map +1 -0
- package/dist/errors/ErrorDeletingFile.d.ts +1 -1
- package/dist/errors/ErrorDeletingFile.d.ts.map +1 -1
- package/dist/errors/ErrorDeletingFile.js +7 -22
- package/dist/errors/ErrorDeletingFile.js.map +1 -0
- package/dist/errors/FileUploadError.d.ts +1 -1
- package/dist/errors/FileUploadError.d.ts.map +1 -1
- package/dist/errors/FileUploadError.js +7 -22
- package/dist/errors/FileUploadError.js.map +1 -0
- package/dist/errors/Forbidden.d.ts +1 -1
- package/dist/errors/Forbidden.d.ts.map +1 -1
- package/dist/errors/Forbidden.js +7 -22
- package/dist/errors/Forbidden.js.map +1 -0
- package/dist/errors/InvalidConfiguration.d.ts +1 -1
- package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
- package/dist/errors/InvalidConfiguration.js +6 -21
- package/dist/errors/InvalidConfiguration.js.map +1 -0
- package/dist/errors/InvalidFieldName.d.ts +2 -2
- package/dist/errors/InvalidFieldName.d.ts.map +1 -1
- package/dist/errors/InvalidFieldName.js +4 -19
- package/dist/errors/InvalidFieldName.js.map +1 -0
- package/dist/errors/InvalidFieldRelationship.d.ts +2 -2
- package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
- package/dist/errors/InvalidFieldRelationship.js +4 -19
- package/dist/errors/InvalidFieldRelationship.js.map +1 -0
- package/dist/errors/InvalidSchema.d.ts +1 -1
- package/dist/errors/InvalidSchema.d.ts.map +1 -1
- package/dist/errors/InvalidSchema.js +6 -21
- package/dist/errors/InvalidSchema.js.map +1 -0
- package/dist/errors/LockedAuth.d.ts +1 -1
- package/dist/errors/LockedAuth.d.ts.map +1 -1
- package/dist/errors/LockedAuth.js +7 -22
- package/dist/errors/LockedAuth.js.map +1 -0
- package/dist/errors/MissingCollectionLabel.d.ts +1 -1
- package/dist/errors/MissingCollectionLabel.d.ts.map +1 -1
- package/dist/errors/MissingCollectionLabel.js +4 -19
- package/dist/errors/MissingCollectionLabel.js.map +1 -0
- package/dist/errors/MissingEditorProp.d.ts +7 -0
- package/dist/errors/MissingEditorProp.d.ts.map +1 -0
- package/dist/errors/MissingEditorProp.js +10 -0
- package/dist/errors/MissingEditorProp.js.map +1 -0
- package/dist/errors/MissingFieldInputOptions.d.ts +2 -2
- package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
- package/dist/errors/MissingFieldInputOptions.js +4 -19
- package/dist/errors/MissingFieldInputOptions.js.map +1 -0
- package/dist/errors/MissingFieldType.d.ts +2 -2
- package/dist/errors/MissingFieldType.d.ts.map +1 -1
- package/dist/errors/MissingFieldType.js +6 -21
- package/dist/errors/MissingFieldType.js.map +1 -0
- package/dist/errors/MissingFile.d.ts +1 -1
- package/dist/errors/MissingFile.d.ts.map +1 -1
- package/dist/errors/MissingFile.js +7 -22
- package/dist/errors/MissingFile.js.map +1 -0
- package/dist/errors/NotFound.d.ts +1 -1
- package/dist/errors/NotFound.d.ts.map +1 -1
- package/dist/errors/NotFound.js +7 -22
- package/dist/errors/NotFound.js.map +1 -0
- package/dist/errors/QueryError.d.ts +1 -1
- package/dist/errors/QueryError.d.ts.map +1 -1
- package/dist/errors/QueryError.js +6 -21
- package/dist/errors/QueryError.js.map +1 -0
- package/dist/errors/TimestampsRequired.d.ts +2 -2
- package/dist/errors/TimestampsRequired.d.ts.map +1 -1
- package/dist/errors/TimestampsRequired.js +4 -19
- package/dist/errors/TimestampsRequired.js.map +1 -0
- package/dist/errors/UnathorizedError.d.ts +1 -1
- package/dist/errors/UnathorizedError.d.ts.map +1 -1
- package/dist/errors/UnathorizedError.js +7 -22
- package/dist/errors/UnathorizedError.js.map +1 -0
- package/dist/errors/ValidationError.d.ts +1 -1
- package/dist/errors/ValidationError.d.ts.map +1 -1
- package/dist/errors/ValidationError.js +8 -23
- package/dist/errors/ValidationError.js.map +1 -0
- package/dist/errors/index.d.ts +19 -19
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +20 -94
- package/dist/errors/index.js.map +1 -0
- package/dist/errors/types.d.ts +1 -1
- package/dist/errors/types.d.ts.map +1 -1
- package/dist/errors/types.js +2 -19
- package/dist/errors/types.js.map +1 -0
- package/dist/exports/auth.d.ts +5 -5
- package/dist/exports/auth.d.ts.map +1 -1
- package/dist/exports/auth.js +5 -44
- package/dist/exports/auth.js.map +1 -0
- package/dist/exports/components/utilities.js +1 -2
- package/dist/exports/components/utilities.js.map +1 -0
- package/dist/exports/config.d.ts +13 -10
- package/dist/exports/config.d.ts.map +1 -1
- package/dist/exports/config.js +13 -59
- package/dist/exports/config.js.map +1 -0
- package/dist/exports/database.d.ts +22 -22
- package/dist/exports/database.d.ts.map +1 -1
- package/dist/exports/database.js +21 -108
- package/dist/exports/database.js.map +1 -0
- package/dist/exports/errors.d.ts +1 -1
- package/dist/exports/errors.d.ts.map +1 -1
- package/dist/exports/errors.js +2 -68
- package/dist/exports/errors.js.map +1 -0
- package/dist/exports/fields/index.d.ts +2 -2
- package/dist/exports/fields/index.d.ts.map +1 -1
- package/dist/exports/fields/index.js +3 -26
- package/dist/exports/fields/index.js.map +1 -0
- package/dist/exports/fields/validations.d.ts +1 -1
- package/dist/exports/fields/validations.d.ts.map +1 -1
- package/dist/exports/fields/validations.js +2 -19
- package/dist/exports/fields/validations.js.map +1 -0
- package/dist/exports/node.d.ts +3 -0
- package/dist/exports/node.d.ts.map +1 -0
- package/dist/exports/node.js +4 -0
- package/dist/exports/node.js.map +1 -0
- package/dist/exports/operations.d.ts +29 -28
- package/dist/exports/operations.d.ts.map +1 -1
- package/dist/exports/operations.js +30 -125
- package/dist/exports/operations.js.map +1 -0
- package/dist/exports/types.d.ts +16 -11
- package/dist/exports/types.d.ts.map +1 -1
- package/dist/exports/types.js +4 -74
- package/dist/exports/types.js.map +1 -0
- package/dist/exports/uploads.d.ts +2 -0
- package/dist/exports/uploads.d.ts.map +1 -0
- package/dist/exports/uploads.js +3 -0
- package/dist/exports/uploads.js.map +1 -0
- package/dist/exports/utilities.d.ts +31 -27
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +32 -141
- package/dist/exports/utilities.js.map +1 -0
- package/dist/exports/versions.d.ts +8 -9
- package/dist/exports/versions.d.ts.map +1 -1
- package/dist/exports/versions.js +8 -45
- package/dist/exports/versions.js.map +1 -0
- package/dist/fields/baseFields/baseBlockFields.d.ts +2 -2
- package/dist/fields/baseFields/baseBlockFields.d.ts.map +1 -1
- package/dist/fields/baseFields/baseBlockFields.js +6 -16
- package/dist/fields/baseFields/baseBlockFields.js.map +1 -0
- package/dist/fields/baseFields/baseIDField.d.ts +2 -2
- package/dist/fields/baseFields/baseIDField.d.ts.map +1 -1
- package/dist/fields/baseFields/baseIDField.js +17 -23
- package/dist/fields/baseFields/baseIDField.js.map +1 -0
- package/dist/fields/config/client.d.ts +1289 -0
- package/dist/fields/config/client.d.ts.map +1 -0
- package/dist/fields/config/client.js +79 -0
- package/dist/fields/config/client.js.map +1 -0
- package/dist/fields/config/sanitize.d.ts +9 -3
- package/dist/fields/config/sanitize.d.ts.map +1 -1
- package/dist/fields/config/sanitize.js +40 -45
- package/dist/fields/config/sanitize.js.map +1 -0
- package/dist/fields/config/sanitize.spec.js +25 -29
- package/dist/fields/config/sanitize.spec.js.map +1 -0
- package/dist/fields/config/schema.d.ts.map +1 -1
- package/dist/fields/config/schema.js +349 -432
- package/dist/fields/config/schema.js.map +1 -0
- package/dist/fields/config/types.d.ts +82 -20
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js +15 -69
- package/dist/fields/config/types.js.map +1 -0
- package/dist/fields/getDefaultValue.d.ts +2 -2
- package/dist/fields/getDefaultValue.d.ts.map +1 -1
- package/dist/fields/getDefaultValue.js +8 -13
- package/dist/fields/getDefaultValue.js.map +1 -0
- package/dist/fields/hooks/afterChange/index.d.ts +7 -3
- package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/index.js +9 -16
- package/dist/fields/hooks/afterChange/index.js.map +1 -0
- package/dist/fields/hooks/afterChange/promise.d.ts +4 -4
- package/dist/fields/hooks/afterChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/promise.js +14 -22
- package/dist/fields/hooks/afterChange/promise.js.map +1 -0
- package/dist/fields/hooks/afterChange/traverseFields.d.ts +4 -4
- package/dist/fields/hooks/afterChange/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/traverseFields.js +4 -14
- package/dist/fields/hooks/afterChange/traverseFields.js.map +1 -0
- package/dist/fields/hooks/afterRead/index.d.ts +12 -3
- package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/index.js +14 -16
- package/dist/fields/hooks/afterRead/index.js.map +1 -0
- package/dist/fields/hooks/afterRead/promise.d.ts +4 -4
- package/dist/fields/hooks/afterRead/promise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/promise.js +28 -38
- package/dist/fields/hooks/afterRead/promise.js.map +1 -0
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts +2 -2
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +5 -15
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js.map +1 -0
- package/dist/fields/hooks/afterRead/traverseFields.d.ts +4 -4
- package/dist/fields/hooks/afterRead/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/traverseFields.js +4 -14
- package/dist/fields/hooks/afterRead/traverseFields.js.map +1 -0
- package/dist/fields/hooks/beforeChange/beforeDuplicate.d.ts +3 -0
- package/dist/fields/hooks/beforeChange/beforeDuplicate.d.ts.map +1 -0
- package/dist/fields/hooks/beforeChange/beforeDuplicate.js +6 -0
- package/dist/fields/hooks/beforeChange/beforeDuplicate.js.map +1 -0
- package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js +2 -12
- package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js.map +1 -0
- package/dist/fields/hooks/beforeChange/getExistingRowDoc.js +2 -12
- package/dist/fields/hooks/beforeChange/getExistingRowDoc.js.map +1 -0
- package/dist/fields/hooks/beforeChange/index.d.ts +14 -5
- package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/index.js +21 -19
- package/dist/fields/hooks/beforeChange/index.js.map +1 -0
- package/dist/fields/hooks/beforeChange/promise.d.ts +7 -7
- package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.js +71 -54
- package/dist/fields/hooks/beforeChange/promise.js.map +1 -0
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts +15 -7
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/traverseFields.js +12 -14
- package/dist/fields/hooks/beforeChange/traverseFields.js.map +1 -0
- package/dist/fields/hooks/beforeValidate/index.d.ts +12 -3
- package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/index.js +13 -16
- package/dist/fields/hooks/beforeValidate/index.js.map +1 -0
- package/dist/fields/hooks/beforeValidate/promise.d.ts +4 -4
- package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.js +30 -39
- package/dist/fields/hooks/beforeValidate/promise.js.map +1 -0
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +4 -4
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.js +4 -14
- package/dist/fields/hooks/beforeValidate/traverseFields.js.map +1 -0
- package/dist/fields/mergeBaseFields.d.ts +1 -1
- package/dist/fields/mergeBaseFields.d.ts.map +1 -1
- package/dist/fields/mergeBaseFields.js +8 -23
- package/dist/fields/mergeBaseFields.js.map +1 -0
- package/dist/fields/setDefaultBeforeDuplicate.d.ts +3 -0
- package/dist/fields/setDefaultBeforeDuplicate.d.ts.map +1 -0
- package/dist/fields/setDefaultBeforeDuplicate.js +20 -0
- package/dist/fields/setDefaultBeforeDuplicate.js.map +1 -0
- package/dist/fields/sortableFieldTypes.js +2 -12
- package/dist/fields/sortableFieldTypes.js.map +1 -0
- package/dist/fields/validations.d.ts +6 -6
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +36 -101
- package/dist/fields/validations.js.map +1 -0
- package/dist/fields/validations.spec.js +73 -77
- package/dist/fields/validations.spec.js.map +1 -0
- package/dist/globals/config/client.d.ts +21 -0
- package/dist/globals/config/client.d.ts.map +1 -0
- package/dist/globals/config/client.js +48 -0
- package/dist/globals/config/client.js.map +1 -0
- package/dist/globals/config/sanitize.d.ts +2 -2
- package/dist/globals/config/sanitize.d.ts.map +1 -1
- package/dist/globals/config/sanitize.js +18 -34
- package/dist/globals/config/sanitize.js.map +1 -0
- package/dist/globals/config/schema.d.ts.map +1 -1
- package/dist/globals/config/schema.js +56 -70
- package/dist/globals/config/schema.js.map +1 -0
- package/dist/globals/config/types.d.ts +18 -32
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/globals/config/types.js +2 -5
- package/dist/globals/config/types.js.map +1 -0
- package/dist/globals/operations/docAccess.d.ts +3 -3
- package/dist/globals/operations/docAccess.d.ts.map +1 -1
- package/dist/globals/operations/docAccess.js +12 -22
- package/dist/globals/operations/docAccess.js.map +1 -0
- package/dist/globals/operations/findOne.d.ts +2 -2
- package/dist/globals/operations/findOne.d.ts.map +1 -1
- package/dist/globals/operations/findOne.js +14 -29
- package/dist/globals/operations/findOne.js.map +1 -0
- package/dist/globals/operations/findVersionByID.d.ts +3 -3
- package/dist/globals/operations/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/findVersionByID.js +18 -33
- package/dist/globals/operations/findVersionByID.js.map +1 -0
- package/dist/globals/operations/findVersions.d.ts +4 -5
- package/dist/globals/operations/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/findVersions.js +20 -35
- package/dist/globals/operations/findVersions.js.map +1 -0
- package/dist/globals/operations/local/findOne.d.ts +2 -4
- package/dist/globals/operations/local/findOne.d.ts.map +1 -1
- package/dist/globals/operations/local/findOne.js +11 -21
- package/dist/globals/operations/local/findOne.js.map +1 -0
- package/dist/globals/operations/local/findVersionByID.d.ts +3 -5
- package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersionByID.js +10 -19
- package/dist/globals/operations/local/findVersionByID.js.map +1 -0
- package/dist/globals/operations/local/findVersions.d.ts +4 -6
- package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersions.js +9 -19
- package/dist/globals/operations/local/findVersions.js.map +1 -0
- package/dist/globals/operations/local/index.d.ts +5 -5
- package/dist/globals/operations/local/index.d.ts.map +1 -1
- package/dist/globals/operations/local/index.js +12 -27
- package/dist/globals/operations/local/index.js.map +1 -0
- package/dist/globals/operations/local/restoreVersion.d.ts +2 -4
- package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/local/restoreVersion.js +9 -19
- package/dist/globals/operations/local/restoreVersion.js.map +1 -0
- package/dist/globals/operations/local/update.d.ts +2 -4
- package/dist/globals/operations/local/update.d.ts.map +1 -1
- package/dist/globals/operations/local/update.js +9 -19
- package/dist/globals/operations/local/update.js.map +1 -0
- package/dist/globals/operations/restoreVersion.d.ts +3 -3
- package/dist/globals/operations/restoreVersion.d.ts.map +1 -1
- package/dist/globals/operations/restoreVersion.js +16 -31
- package/dist/globals/operations/restoreVersion.js.map +1 -0
- package/dist/globals/operations/update.d.ts +4 -12
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +23 -38
- package/dist/globals/operations/update.js.map +1 -0
- package/dist/index.d.ts +60 -49
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +76 -79
- package/dist/index.js.map +1 -0
- package/dist/preferences/deleteUserPreferences.d.ts +3 -3
- package/dist/preferences/deleteUserPreferences.d.ts.map +1 -1
- package/dist/preferences/deleteUserPreferences.js +2 -12
- package/dist/preferences/deleteUserPreferences.js.map +1 -0
- package/dist/preferences/operations/delete.d.ts +2 -2
- package/dist/preferences/operations/delete.d.ts.map +1 -1
- package/dist/preferences/operations/delete.js +14 -31
- package/dist/preferences/operations/delete.js.map +1 -0
- package/dist/preferences/operations/findOne.d.ts +2 -2
- package/dist/preferences/operations/findOne.d.ts.map +1 -1
- package/dist/preferences/operations/findOne.js +5 -19
- package/dist/preferences/operations/findOne.js.map +1 -0
- package/dist/preferences/operations/update.d.ts +1 -1
- package/dist/preferences/operations/update.d.ts.map +1 -1
- package/dist/preferences/operations/update.js +8 -23
- package/dist/preferences/operations/update.js.map +1 -0
- package/dist/preferences/preferencesCollection.d.ts +2 -2
- package/dist/preferences/preferencesCollection.d.ts.map +1 -1
- package/dist/preferences/preferencesCollection.js +8 -18
- package/dist/preferences/preferencesCollection.js.map +1 -0
- package/dist/preferences/requestHandlers/delete.d.ts +1 -1
- package/dist/preferences/requestHandlers/delete.d.ts.map +1 -1
- package/dist/preferences/requestHandlers/delete.js +6 -21
- package/dist/preferences/requestHandlers/delete.js.map +1 -0
- package/dist/preferences/requestHandlers/findOne.d.ts +1 -1
- package/dist/preferences/requestHandlers/findOne.d.ts.map +1 -1
- package/dist/preferences/requestHandlers/findOne.js +6 -21
- package/dist/preferences/requestHandlers/findOne.js.map +1 -0
- package/dist/preferences/requestHandlers/update.d.ts +1 -1
- package/dist/preferences/requestHandlers/update.d.ts.map +1 -1
- package/dist/preferences/requestHandlers/update.js +6 -21
- package/dist/preferences/requestHandlers/update.js.map +1 -0
- package/dist/preferences/types.d.ts +7 -6
- package/dist/preferences/types.d.ts.map +1 -1
- package/dist/preferences/types.js +2 -5
- package/dist/preferences/types.js.map +1 -0
- package/dist/translations/getLocalI18n.d.ts +3 -2
- package/dist/translations/getLocalI18n.d.ts.map +1 -1
- package/dist/translations/getLocalI18n.js +4 -16
- package/dist/translations/getLocalI18n.js.map +1 -0
- package/dist/types/constants.js +2 -12
- package/dist/types/constants.js.map +1 -0
- package/dist/types/index.d.ts +8 -6
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -12
- package/dist/types/index.js.map +1 -0
- package/dist/uploads/canResizeImage.js +4 -13
- package/dist/uploads/canResizeImage.js.map +1 -0
- package/dist/uploads/cropImage.d.ts +3 -7
- package/dist/uploads/cropImage.d.ts.map +1 -1
- package/dist/uploads/cropImage.js +4 -28
- package/dist/uploads/cropImage.js.map +1 -0
- package/dist/uploads/deleteAssociatedFiles.d.ts +4 -4
- package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
- package/dist/uploads/deleteAssociatedFiles.js +11 -26
- package/dist/uploads/deleteAssociatedFiles.js.map +1 -0
- package/dist/uploads/docWithFilenameExists.d.ts +1 -1
- package/dist/uploads/docWithFilenameExists.d.ts.map +1 -1
- package/dist/uploads/docWithFilenameExists.js +2 -12
- package/dist/uploads/docWithFilenameExists.js.map +1 -0
- package/dist/uploads/fileExists.js +4 -19
- package/dist/uploads/fileExists.js.map +1 -0
- package/dist/uploads/formatFilesize.js +2 -12
- package/dist/uploads/formatFilesize.js.map +1 -0
- package/dist/uploads/generateFileData.d.ts +4 -4
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +42 -55
- package/dist/uploads/generateFileData.js.map +1 -0
- package/dist/uploads/getBaseFields.d.ts +5 -5
- package/dist/uploads/getBaseFields.d.ts.map +1 -1
- package/dist/uploads/getBaseFields.js +52 -36
- package/dist/uploads/getBaseFields.js.map +1 -0
- package/dist/uploads/getExternalFile.d.ts +2 -2
- package/dist/uploads/getExternalFile.d.ts.map +1 -1
- package/dist/uploads/getExternalFile.js +5 -15
- package/dist/uploads/getExternalFile.js.map +1 -0
- package/dist/uploads/getFileByPath.d.ts +2 -3
- package/dist/uploads/getFileByPath.d.ts.map +1 -1
- package/dist/uploads/getFileByPath.js +11 -26
- package/dist/uploads/getFileByPath.js.map +1 -0
- package/dist/uploads/getImageSize.d.ts +3 -3
- package/dist/uploads/getImageSize.d.ts.map +1 -1
- package/dist/uploads/getImageSize.js +7 -22
- package/dist/uploads/getImageSize.js.map +1 -0
- package/dist/uploads/getSafeFilename.d.ts +1 -1
- package/dist/uploads/getSafeFilename.d.ts.map +1 -1
- package/dist/uploads/getSafeFilename.js +8 -23
- package/dist/uploads/getSafeFilename.js.map +1 -0
- package/dist/uploads/imageResizer.d.ts +6 -5
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +29 -44
- package/dist/uploads/imageResizer.js.map +1 -0
- package/dist/uploads/isImage.d.ts.map +1 -1
- package/dist/uploads/isImage.js +4 -13
- package/dist/uploads/isImage.js.map +1 -0
- package/dist/uploads/mimeTypeValidator.d.ts +1 -1
- package/dist/uploads/mimeTypeValidator.d.ts.map +1 -1
- package/dist/uploads/mimeTypeValidator.js +2 -12
- package/dist/uploads/mimeTypeValidator.js.map +1 -0
- package/dist/uploads/mimeTypeValidator.spec.js +11 -15
- package/dist/uploads/mimeTypeValidator.spec.js.map +1 -0
- package/dist/uploads/saveBufferToFile.d.ts +1 -1
- package/dist/uploads/saveBufferToFile.js +6 -21
- package/dist/uploads/saveBufferToFile.js.map +1 -0
- package/dist/uploads/types.d.ts +9 -5
- package/dist/uploads/types.d.ts.map +1 -1
- package/dist/uploads/types.js +2 -5
- package/dist/uploads/types.js.map +1 -0
- package/dist/uploads/unlinkTempFiles.d.ts +3 -3
- package/dist/uploads/unlinkTempFiles.d.ts.map +1 -1
- package/dist/uploads/unlinkTempFiles.js +9 -22
- package/dist/uploads/unlinkTempFiles.js.map +1 -0
- package/dist/uploads/uploadFiles.d.ts +3 -3
- package/dist/uploads/uploadFiles.d.ts.map +1 -1
- package/dist/uploads/uploadFiles.js +6 -21
- package/dist/uploads/uploadFiles.js.map +1 -0
- package/dist/utilities/checkDuplicateCollections.d.ts +1 -1
- package/dist/utilities/checkDuplicateCollections.d.ts.map +1 -1
- package/dist/utilities/checkDuplicateCollections.js +4 -14
- package/dist/utilities/checkDuplicateCollections.js.map +1 -0
- package/dist/utilities/combineMerge.js +4 -19
- package/dist/utilities/combineMerge.js.map +1 -0
- package/dist/utilities/commitTransaction.d.ts +1 -1
- package/dist/utilities/commitTransaction.d.ts.map +1 -1
- package/dist/utilities/commitTransaction.js +4 -12
- package/dist/utilities/commitTransaction.js.map +1 -0
- package/dist/utilities/configToJSONSchema.d.ts +12 -6
- package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
- package/dist/utilities/configToJSONSchema.js +82 -97
- package/dist/utilities/configToJSONSchema.js.map +1 -0
- package/dist/utilities/configToJSONSchema.spec.js +5 -9
- package/dist/utilities/configToJSONSchema.spec.js.map +1 -0
- package/dist/utilities/convertData.js +3 -23
- package/dist/utilities/convertData.js.map +1 -0
- package/dist/utilities/createArrayFromCommaDelineated.js +2 -12
- package/dist/utilities/createArrayFromCommaDelineated.js.map +1 -0
- package/dist/utilities/createLocalReq.d.ts +3 -3
- package/dist/utilities/createLocalReq.d.ts.map +1 -1
- package/dist/utilities/createLocalReq.js +26 -38
- package/dist/utilities/createLocalReq.js.map +1 -0
- package/dist/utilities/deepCopyObject.js +2 -12
- package/dist/utilities/deepCopyObject.js.map +1 -0
- package/dist/utilities/deepMerge.js +2 -12
- package/dist/utilities/deepMerge.js.map +1 -0
- package/dist/utilities/fieldSchemaToJSON.d.ts +3 -3
- package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
- package/dist/utilities/fieldSchemaToJSON.js +22 -22
- package/dist/utilities/fieldSchemaToJSON.js.map +1 -0
- package/dist/utilities/flattenTopLevelFields.d.ts +3 -2
- package/dist/utilities/flattenTopLevelFields.d.ts.map +1 -1
- package/dist/utilities/flattenTopLevelFields.js +7 -17
- package/dist/utilities/flattenTopLevelFields.js.map +1 -0
- package/dist/utilities/formatLabels.d.ts +0 -1
- package/dist/utilities/formatLabels.d.ts.map +1 -1
- package/dist/utilities/formatLabels.js +10 -70
- package/dist/utilities/formatLabels.js.map +1 -0
- package/dist/utilities/formatLabels.spec.js +8 -12
- package/dist/utilities/formatLabels.spec.js.map +1 -0
- package/dist/utilities/getCSSVariable.js +2 -12
- package/dist/utilities/getCSSVariable.js.map +1 -0
- package/dist/utilities/getCollectionIDFieldTypes.d.ts +13 -0
- package/dist/utilities/getCollectionIDFieldTypes.d.ts.map +1 -0
- package/dist/utilities/getCollectionIDFieldTypes.js +16 -0
- package/dist/utilities/getCollectionIDFieldTypes.js.map +1 -0
- package/dist/utilities/getEntityPolicies.d.ts +4 -4
- package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
- package/dist/utilities/getEntityPolicies.js +7 -17
- package/dist/utilities/getEntityPolicies.js.map +1 -0
- package/dist/utilities/getIDType.d.ts +2 -2
- package/dist/utilities/getIDType.d.ts.map +1 -1
- package/dist/utilities/getIDType.js +2 -12
- package/dist/utilities/getIDType.js.map +1 -0
- package/dist/utilities/getObjectDotNotation.d.ts.map +1 -1
- package/dist/utilities/getObjectDotNotation.js +2 -12
- package/dist/utilities/getObjectDotNotation.js.map +1 -0
- package/dist/utilities/getUniqueListBy.js +2 -12
- package/dist/utilities/getUniqueListBy.js.map +1 -0
- package/dist/utilities/importWithoutClientFiles.d.ts +7 -0
- package/dist/utilities/importWithoutClientFiles.d.ts.map +1 -0
- package/dist/utilities/importWithoutClientFiles.js +41 -0
- package/dist/utilities/importWithoutClientFiles.js.map +1 -0
- package/dist/utilities/initTransaction.d.ts +1 -1
- package/dist/utilities/initTransaction.d.ts.map +1 -1
- package/dist/utilities/initTransaction.js +5 -12
- package/dist/utilities/initTransaction.js.map +1 -0
- package/dist/utilities/isEntityHidden.d.ts +2 -2
- package/dist/utilities/isEntityHidden.d.ts.map +1 -1
- package/dist/utilities/isEntityHidden.js +2 -12
- package/dist/utilities/isEntityHidden.js.map +1 -0
- package/dist/utilities/isNumber.js +2 -12
- package/dist/utilities/isNumber.js.map +1 -0
- package/dist/utilities/isPlainObject.d.ts +2 -0
- package/dist/utilities/isPlainObject.d.ts.map +1 -0
- package/dist/utilities/isPlainObject.js +25 -0
- package/dist/utilities/isPlainObject.js.map +1 -0
- package/dist/utilities/isReactComponent.d.ts +4 -0
- package/dist/utilities/isReactComponent.d.ts.map +1 -0
- package/dist/utilities/isReactComponent.js +11 -0
- package/dist/utilities/isReactComponent.js.map +1 -0
- package/dist/utilities/isValidID.d.ts.map +1 -1
- package/dist/utilities/isValidID.js +6 -20
- package/dist/utilities/isValidID.js.map +1 -0
- package/dist/utilities/isolateObjectProperty.js +2 -12
- package/dist/utilities/isolateObjectProperty.js.map +1 -0
- package/dist/utilities/killTransaction.d.ts +1 -1
- package/dist/utilities/killTransaction.d.ts.map +1 -1
- package/dist/utilities/killTransaction.js +4 -12
- package/dist/utilities/killTransaction.js.map +1 -0
- package/dist/utilities/logger.d.ts +6 -6
- package/dist/utilities/logger.d.ts.map +1 -1
- package/dist/utilities/logger.js +18 -37
- package/dist/utilities/logger.js.map +1 -0
- package/dist/utilities/mapAsync.js +2 -12
- package/dist/utilities/mapAsync.js.map +1 -0
- package/dist/utilities/mergeListSearchAndWhere.d.ts +12 -0
- package/dist/utilities/mergeListSearchAndWhere.d.ts.map +1 -0
- package/dist/utilities/mergeListSearchAndWhere.js +57 -0
- package/dist/utilities/mergeListSearchAndWhere.js.map +1 -0
- package/dist/utilities/overwriteMerge.js +2 -12
- package/dist/utilities/overwriteMerge.js.map +1 -0
- package/dist/utilities/parseCookies.js +4 -14
- package/dist/utilities/parseCookies.js.map +1 -0
- package/dist/utilities/sanitizeInternalFields.d.ts.map +1 -1
- package/dist/utilities/sanitizeInternalFields.js +2 -12
- package/dist/utilities/sanitizeInternalFields.js.map +1 -0
- package/dist/utilities/setsAreEqual.js +2 -12
- package/dist/utilities/setsAreEqual.js.map +1 -0
- package/dist/utilities/telemetry/events/adminInit.d.ts +2 -2
- package/dist/utilities/telemetry/events/adminInit.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/adminInit.js +8 -18
- package/dist/utilities/telemetry/events/adminInit.js.map +1 -0
- package/dist/utilities/telemetry/events/serverInit.d.ts +1 -1
- package/dist/utilities/telemetry/events/serverInit.d.ts.map +1 -1
- package/dist/utilities/telemetry/events/serverInit.js +4 -14
- package/dist/utilities/telemetry/events/serverInit.js.map +1 -0
- package/dist/utilities/telemetry/index.d.ts +3 -3
- package/dist/utilities/telemetry/index.d.ts.map +1 -1
- package/dist/utilities/telemetry/index.js +23 -41
- package/dist/utilities/telemetry/index.js.map +1 -0
- package/dist/utilities/telemetry/oneWayHash.d.ts +1 -0
- package/dist/utilities/telemetry/oneWayHash.d.ts.map +1 -1
- package/dist/utilities/telemetry/oneWayHash.js +4 -14
- package/dist/utilities/telemetry/oneWayHash.js.map +1 -0
- package/dist/utilities/timestamp.js +2 -12
- package/dist/utilities/timestamp.js.map +1 -0
- package/dist/utilities/toKebabCase.js +2 -12
- package/dist/utilities/toKebabCase.js.map +1 -0
- package/dist/utilities/wait.d.ts +1 -2
- package/dist/utilities/wait.d.ts.map +1 -1
- package/dist/utilities/wait.js +2 -13
- package/dist/utilities/wait.js.map +1 -0
- package/dist/utilities/wordBoundariesRegex.js +3 -13
- package/dist/utilities/wordBoundariesRegex.js.map +1 -0
- package/dist/versions/baseFields.d.ts +4 -2
- package/dist/versions/baseFields.d.ts.map +1 -1
- package/dist/versions/baseFields.js +8 -32
- package/dist/versions/baseFields.js.map +1 -0
- package/dist/versions/buildCollectionFields.d.ts +2 -2
- package/dist/versions/buildCollectionFields.d.ts.map +1 -1
- package/dist/versions/buildCollectionFields.js +2 -12
- package/dist/versions/buildCollectionFields.js.map +1 -0
- package/dist/versions/buildGlobalFields.d.ts +2 -2
- package/dist/versions/buildGlobalFields.d.ts.map +1 -1
- package/dist/versions/buildGlobalFields.js +12 -22
- package/dist/versions/buildGlobalFields.js.map +1 -0
- package/dist/versions/deleteCollectionVersions.d.ts +3 -3
- package/dist/versions/deleteCollectionVersions.d.ts.map +1 -1
- package/dist/versions/deleteCollectionVersions.js +2 -12
- package/dist/versions/deleteCollectionVersions.js.map +1 -0
- package/dist/versions/drafts/appendVersionToQueryKey.d.ts +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.d.ts.map +1 -1
- package/dist/versions/drafts/appendVersionToQueryKey.js +2 -12
- package/dist/versions/drafts/appendVersionToQueryKey.js.map +1 -0
- package/dist/versions/drafts/getQueryDraftsSort.js +2 -12
- package/dist/versions/drafts/getQueryDraftsSort.js.map +1 -0
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts +4 -4
- package/dist/versions/drafts/replaceWithDraftIfAvailable.d.ts.map +1 -1
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js +13 -27
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js.map +1 -0
- package/dist/versions/enforceMaxVersions.d.ts +3 -3
- package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
- package/dist/versions/enforceMaxVersions.js +3 -12
- package/dist/versions/enforceMaxVersions.js.map +1 -0
- package/dist/versions/getLatestCollectionVersion.d.ts +3 -3
- package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
- package/dist/versions/getLatestCollectionVersion.js +6 -14
- package/dist/versions/getLatestCollectionVersion.js.map +1 -0
- package/dist/versions/getLatestGlobalVersion.d.ts +3 -3
- package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
- package/dist/versions/getLatestGlobalVersion.js +6 -15
- package/dist/versions/getLatestGlobalVersion.js.map +1 -0
- package/dist/versions/saveVersion.d.ts +4 -4
- package/dist/versions/saveVersion.d.ts.map +1 -1
- package/dist/versions/saveVersion.js +9 -23
- package/dist/versions/saveVersion.js.map +1 -0
- package/dist/versions/types.js +2 -5
- package/dist/versions/types.js.map +1 -0
- package/errors.d.ts +1 -1
- package/errors.js +2 -68
- package/node.d.ts +3 -0
- package/node.js +4 -0
- package/operations.d.ts +29 -28
- package/operations.js +30 -125
- package/package.json +13 -18
- package/src/index.ts +486 -0
- package/types.d.ts +16 -11
- package/types.js +4 -74
- package/uploads.d.ts +2 -0
- package/uploads.js +3 -0
- package/utilities.d.ts +31 -27
- package/utilities.js +32 -141
- package/versions.d.ts +8 -9
- package/versions.js +8 -45
- package/.eslintrc.js +0 -58
- package/.release-it.js +0 -51
- package/dist/auth/getAuthenticatedUser.d.ts +0 -3
- package/dist/auth/getAuthenticatedUser.d.ts.map +0 -1
- package/dist/auth/getAuthenticatedUser.js +0 -21
- package/dist/bundlers/mocks/db-mongodb.js +0 -3
- package/dist/bundlers/mocks/db-postgres.js +0 -13
- package/dist/bundlers/mocks/dotENV.js +0 -15
- package/dist/bundlers/mocks/emptyModule.js +0 -13
- package/dist/bundlers/mocks/fileMock.js +0 -13
- package/dist/bundlers/types.d.ts +0 -8
- package/dist/bundlers/types.d.ts.map +0 -1
- package/dist/bundlers/types.js +0 -6
- package/dist/config/clientFiles.d.ts +0 -2
- package/dist/config/clientFiles.d.ts.map +0 -1
- package/dist/config/clientFiles.js +0 -23
- package/dist/config/createClientConfig.d.ts +0 -6
- package/dist/config/createClientConfig.d.ts.map +0 -1
- package/dist/config/createClientConfig.js +0 -132
- package/dist/config/load.d.ts +0 -6
- package/dist/config/load.d.ts.map +0 -1
- package/dist/config/load.js +0 -45
- package/dist/express/middleware/errorHandler.d.ts +0 -2
- package/dist/express/middleware/errorHandler.d.ts.map +0 -1
- package/dist/express/middleware/errorHandler.js +0 -3
- package/dist/express/middleware/index.d.ts +0 -2
- package/dist/express/middleware/index.d.ts.map +0 -1
- package/dist/express/middleware/index.js +0 -3
- package/dist/globals/config/build.d.ts +0 -2
- package/dist/globals/config/build.d.ts.map +0 -1
- package/dist/globals/config/build.js +0 -3
- package/dist/globals/graphql/resolvers/docAccess.d.ts +0 -2
- package/dist/globals/graphql/resolvers/docAccess.d.ts.map +0 -1
- package/dist/globals/graphql/resolvers/docAccess.js +0 -3
- package/dist/localization/middleware.d.ts +0 -5
- package/dist/localization/middleware.d.ts.map +0 -1
- package/dist/localization/middleware.js +0 -47
- package/dist/localization/sanitizeFallbackLocale.d.ts +0 -3
- package/dist/localization/sanitizeFallbackLocale.d.ts.map +0 -1
- package/dist/localization/sanitizeFallbackLocale.js +0 -19
- package/dist/translations/extractTranslations.d.ts +0 -2
- package/dist/translations/extractTranslations.d.ts.map +0 -1
- package/dist/translations/extractTranslations.js +0 -30
- package/dist/versions/getVersionsModelName.d.ts +0 -4
- package/dist/versions/getVersionsModelName.d.ts.map +0 -1
- package/dist/versions/getVersionsModelName.js +0 -13
|
@@ -1,36 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
configToJSONSchema: function() {
|
|
13
|
-
return configToJSONSchema;
|
|
14
|
-
},
|
|
15
|
-
entityToJSONSchema: function() {
|
|
16
|
-
return entityToJSONSchema;
|
|
17
|
-
},
|
|
18
|
-
fieldsToJSONSchema: function() {
|
|
19
|
-
return fieldsToJSONSchema;
|
|
20
|
-
},
|
|
21
|
-
withNullableJSONSchemaType: function() {
|
|
22
|
-
return withNullableJSONSchemaType;
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
const _pluralize = require("pluralize");
|
|
26
|
-
const _types = require("../fields/config/types");
|
|
27
|
-
const _deepCopyObject = require("./deepCopyObject");
|
|
28
|
-
const _formatLabels = require("./formatLabels");
|
|
1
|
+
import pluralize from 'pluralize';
|
|
2
|
+
const { singular } = pluralize;
|
|
3
|
+
import { fieldAffectsData, tabHasName } from '../fields/config/types.js';
|
|
4
|
+
import { deepCopyObject } from './deepCopyObject.js';
|
|
5
|
+
import { toWords } from './formatLabels.js';
|
|
6
|
+
import { getCollectionIDFieldTypes } from './getCollectionIDFieldTypes.js';
|
|
29
7
|
const fieldIsRequired = (field)=>{
|
|
30
8
|
const isConditional = Boolean(field?.admin && field?.admin?.condition);
|
|
31
9
|
if (isConditional) return false;
|
|
32
10
|
const isMarkedRequired = 'required' in field && field.required === true;
|
|
33
|
-
if (
|
|
11
|
+
if (fieldAffectsData(field) && isMarkedRequired) return true;
|
|
34
12
|
// if any subfields are required, this field is required
|
|
35
13
|
if ('fields' in field && field.type !== 'array') {
|
|
36
14
|
return field.fields.some((subField)=>fieldIsRequired(subField));
|
|
@@ -64,13 +42,15 @@ function generateEntitySchemas(entities) {
|
|
|
64
42
|
return acc;
|
|
65
43
|
}, {});
|
|
66
44
|
return {
|
|
45
|
+
type: 'object',
|
|
67
46
|
additionalProperties: false,
|
|
68
47
|
properties,
|
|
69
|
-
required: Object.keys(properties)
|
|
70
|
-
type: 'object'
|
|
48
|
+
required: Object.keys(properties)
|
|
71
49
|
};
|
|
72
50
|
}
|
|
73
|
-
|
|
51
|
+
/**
|
|
52
|
+
* Returns a JSON Schema Type with 'null' added if the field is not required.
|
|
53
|
+
*/ export function withNullableJSONSchemaType(fieldType, isRequired) {
|
|
74
54
|
const fieldTypes = [
|
|
75
55
|
fieldType
|
|
76
56
|
];
|
|
@@ -78,23 +58,27 @@ function withNullableJSONSchemaType(fieldType, isRequired) {
|
|
|
78
58
|
fieldTypes.push('null');
|
|
79
59
|
return fieldTypes;
|
|
80
60
|
}
|
|
81
|
-
function fieldsToJSONSchema(
|
|
61
|
+
export function fieldsToJSONSchema(/**
|
|
62
|
+
* Used for relationship fields, to determine whether to use a string or number type for the ID.
|
|
63
|
+
* While there is a default ID field type set by the db adapter, they can differ on a collection-level
|
|
64
|
+
* if they have custom ID fields.
|
|
65
|
+
*/ collectionIDFieldTypes, fields, /**
|
|
82
66
|
* Allows you to define new top-level interfaces that can be re-used in the output schema.
|
|
83
|
-
*/ interfaceNameDefinitions) {
|
|
67
|
+
*/ interfaceNameDefinitions, config) {
|
|
84
68
|
const requiredFieldNames = new Set();
|
|
85
69
|
return {
|
|
86
70
|
properties: Object.fromEntries(fields.reduce((fieldSchemas, field)=>{
|
|
87
|
-
const isRequired =
|
|
71
|
+
const isRequired = fieldAffectsData(field) && fieldIsRequired(field);
|
|
88
72
|
if (isRequired) requiredFieldNames.add(field.name);
|
|
89
73
|
let fieldSchema;
|
|
90
74
|
switch(field.type){
|
|
91
75
|
case 'text':
|
|
92
76
|
if (field.hasMany === true) {
|
|
93
77
|
fieldSchema = {
|
|
78
|
+
type: withNullableJSONSchemaType('array', isRequired),
|
|
94
79
|
items: {
|
|
95
80
|
type: 'string'
|
|
96
|
-
}
|
|
97
|
-
type: withNullableJSONSchemaType('array', isRequired)
|
|
81
|
+
}
|
|
98
82
|
};
|
|
99
83
|
} else {
|
|
100
84
|
fieldSchema = {
|
|
@@ -116,10 +100,10 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
116
100
|
{
|
|
117
101
|
if (field.hasMany === true) {
|
|
118
102
|
fieldSchema = {
|
|
103
|
+
type: withNullableJSONSchemaType('array', isRequired),
|
|
119
104
|
items: {
|
|
120
105
|
type: 'number'
|
|
121
|
-
}
|
|
122
|
-
type: withNullableJSONSchemaType('array', isRequired)
|
|
106
|
+
}
|
|
123
107
|
};
|
|
124
108
|
} else {
|
|
125
109
|
fieldSchema = {
|
|
@@ -153,6 +137,8 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
153
137
|
{
|
|
154
138
|
if (field.editor.outputSchema) {
|
|
155
139
|
fieldSchema = field.editor.outputSchema({
|
|
140
|
+
collectionIDFieldTypes,
|
|
141
|
+
config,
|
|
156
142
|
field,
|
|
157
143
|
interfaceNameDefinitions,
|
|
158
144
|
isRequired
|
|
@@ -160,10 +146,10 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
160
146
|
} else {
|
|
161
147
|
// Maintain backwards compatibility with existing rich text editors
|
|
162
148
|
fieldSchema = {
|
|
149
|
+
type: withNullableJSONSchemaType('array', isRequired),
|
|
163
150
|
items: {
|
|
164
151
|
type: 'object'
|
|
165
|
-
}
|
|
166
|
-
type: withNullableJSONSchemaType('array', isRequired)
|
|
152
|
+
}
|
|
167
153
|
};
|
|
168
154
|
}
|
|
169
155
|
break;
|
|
@@ -171,8 +157,8 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
171
157
|
case 'radio':
|
|
172
158
|
{
|
|
173
159
|
fieldSchema = {
|
|
174
|
-
|
|
175
|
-
|
|
160
|
+
type: withNullableJSONSchemaType('string', isRequired),
|
|
161
|
+
enum: buildOptionEnums(field.options)
|
|
176
162
|
};
|
|
177
163
|
break;
|
|
178
164
|
}
|
|
@@ -181,16 +167,16 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
181
167
|
const optionEnums = buildOptionEnums(field.options);
|
|
182
168
|
if (field.hasMany) {
|
|
183
169
|
fieldSchema = {
|
|
170
|
+
type: withNullableJSONSchemaType('array', isRequired),
|
|
184
171
|
items: {
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
}
|
|
188
|
-
type: withNullableJSONSchemaType('array', isRequired)
|
|
172
|
+
type: 'string',
|
|
173
|
+
enum: optionEnums
|
|
174
|
+
}
|
|
189
175
|
};
|
|
190
176
|
} else {
|
|
191
177
|
fieldSchema = {
|
|
192
|
-
|
|
193
|
-
|
|
178
|
+
type: withNullableJSONSchemaType('string', isRequired),
|
|
179
|
+
enum: optionEnums
|
|
194
180
|
};
|
|
195
181
|
}
|
|
196
182
|
break;
|
|
@@ -198,6 +184,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
198
184
|
case 'point':
|
|
199
185
|
{
|
|
200
186
|
fieldSchema = {
|
|
187
|
+
type: withNullableJSONSchemaType('array', isRequired),
|
|
201
188
|
items: [
|
|
202
189
|
{
|
|
203
190
|
type: 'number'
|
|
@@ -207,8 +194,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
207
194
|
}
|
|
208
195
|
],
|
|
209
196
|
maxItems: 2,
|
|
210
|
-
minItems: 2
|
|
211
|
-
type: withNullableJSONSchemaType('array', isRequired)
|
|
197
|
+
minItems: 2
|
|
212
198
|
};
|
|
213
199
|
break;
|
|
214
200
|
}
|
|
@@ -217,9 +203,11 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
217
203
|
if (Array.isArray(field.relationTo)) {
|
|
218
204
|
if (field.hasMany) {
|
|
219
205
|
fieldSchema = {
|
|
206
|
+
type: withNullableJSONSchemaType('array', isRequired),
|
|
220
207
|
items: {
|
|
221
208
|
oneOf: field.relationTo.map((relation)=>{
|
|
222
209
|
return {
|
|
210
|
+
type: 'object',
|
|
223
211
|
additionalProperties: false,
|
|
224
212
|
properties: {
|
|
225
213
|
relationTo: {
|
|
@@ -239,17 +227,16 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
239
227
|
required: [
|
|
240
228
|
'value',
|
|
241
229
|
'relationTo'
|
|
242
|
-
]
|
|
243
|
-
type: 'object'
|
|
230
|
+
]
|
|
244
231
|
};
|
|
245
232
|
})
|
|
246
|
-
}
|
|
247
|
-
type: withNullableJSONSchemaType('array', isRequired)
|
|
233
|
+
}
|
|
248
234
|
};
|
|
249
235
|
} else {
|
|
250
236
|
fieldSchema = {
|
|
251
237
|
oneOf: field.relationTo.map((relation)=>{
|
|
252
238
|
return {
|
|
239
|
+
type: withNullableJSONSchemaType('object', isRequired),
|
|
253
240
|
additionalProperties: false,
|
|
254
241
|
properties: {
|
|
255
242
|
relationTo: {
|
|
@@ -269,14 +256,14 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
269
256
|
required: [
|
|
270
257
|
'value',
|
|
271
258
|
'relationTo'
|
|
272
|
-
]
|
|
273
|
-
type: withNullableJSONSchemaType('object', isRequired)
|
|
259
|
+
]
|
|
274
260
|
};
|
|
275
261
|
})
|
|
276
262
|
};
|
|
277
263
|
}
|
|
278
264
|
} else if (field.hasMany) {
|
|
279
265
|
fieldSchema = {
|
|
266
|
+
type: withNullableJSONSchemaType('array', isRequired),
|
|
280
267
|
items: {
|
|
281
268
|
oneOf: [
|
|
282
269
|
{
|
|
@@ -286,8 +273,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
286
273
|
$ref: `#/definitions/${field.relationTo}`
|
|
287
274
|
}
|
|
288
275
|
]
|
|
289
|
-
}
|
|
290
|
-
type: withNullableJSONSchemaType('array', isRequired)
|
|
276
|
+
}
|
|
291
277
|
};
|
|
292
278
|
} else {
|
|
293
279
|
fieldSchema = {
|
|
@@ -323,10 +309,12 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
323
309
|
case 'blocks':
|
|
324
310
|
{
|
|
325
311
|
fieldSchema = {
|
|
312
|
+
type: withNullableJSONSchemaType('array', isRequired),
|
|
326
313
|
items: {
|
|
327
314
|
oneOf: field.blocks.map((block)=>{
|
|
328
|
-
const blockFieldSchemas = fieldsToJSONSchema(collectionIDFieldTypes, block.fields, interfaceNameDefinitions);
|
|
315
|
+
const blockFieldSchemas = fieldsToJSONSchema(collectionIDFieldTypes, block.fields, interfaceNameDefinitions, config);
|
|
329
316
|
const blockSchema = {
|
|
317
|
+
type: 'object',
|
|
330
318
|
additionalProperties: false,
|
|
331
319
|
properties: {
|
|
332
320
|
...blockFieldSchemas.properties,
|
|
@@ -337,8 +325,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
337
325
|
required: [
|
|
338
326
|
'blockType',
|
|
339
327
|
...blockFieldSchemas.required
|
|
340
|
-
]
|
|
341
|
-
type: 'object'
|
|
328
|
+
]
|
|
342
329
|
};
|
|
343
330
|
if (block.interfaceName) {
|
|
344
331
|
interfaceNameDefinitions.set(block.interfaceName, blockSchema);
|
|
@@ -348,20 +335,19 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
348
335
|
}
|
|
349
336
|
return blockSchema;
|
|
350
337
|
})
|
|
351
|
-
}
|
|
352
|
-
type: withNullableJSONSchemaType('array', isRequired)
|
|
338
|
+
}
|
|
353
339
|
};
|
|
354
340
|
break;
|
|
355
341
|
}
|
|
356
342
|
case 'array':
|
|
357
343
|
{
|
|
358
344
|
fieldSchema = {
|
|
345
|
+
type: withNullableJSONSchemaType('array', isRequired),
|
|
359
346
|
items: {
|
|
360
|
-
additionalProperties: false,
|
|
361
347
|
type: 'object',
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
348
|
+
additionalProperties: false,
|
|
349
|
+
...fieldsToJSONSchema(collectionIDFieldTypes, field.fields, interfaceNameDefinitions, config)
|
|
350
|
+
}
|
|
365
351
|
};
|
|
366
352
|
if (field.interfaceName) {
|
|
367
353
|
interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
|
|
@@ -374,7 +360,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
374
360
|
case 'row':
|
|
375
361
|
case 'collapsible':
|
|
376
362
|
{
|
|
377
|
-
const childSchema = fieldsToJSONSchema(collectionIDFieldTypes, field.fields, interfaceNameDefinitions);
|
|
363
|
+
const childSchema = fieldsToJSONSchema(collectionIDFieldTypes, field.fields, interfaceNameDefinitions, config);
|
|
378
364
|
Object.entries(childSchema.properties).forEach(([propName, propSchema])=>{
|
|
379
365
|
fieldSchemas.set(propName, propSchema);
|
|
380
366
|
});
|
|
@@ -386,12 +372,12 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
386
372
|
case 'tabs':
|
|
387
373
|
{
|
|
388
374
|
field.tabs.forEach((tab)=>{
|
|
389
|
-
const childSchema = fieldsToJSONSchema(collectionIDFieldTypes, tab.fields, interfaceNameDefinitions);
|
|
390
|
-
if (
|
|
375
|
+
const childSchema = fieldsToJSONSchema(collectionIDFieldTypes, tab.fields, interfaceNameDefinitions, config);
|
|
376
|
+
if (tabHasName(tab)) {
|
|
391
377
|
// could have interface
|
|
392
378
|
fieldSchemas.set(tab.name, {
|
|
393
|
-
additionalProperties: false,
|
|
394
379
|
type: 'object',
|
|
380
|
+
additionalProperties: false,
|
|
395
381
|
...childSchema
|
|
396
382
|
});
|
|
397
383
|
requiredFieldNames.add(tab.name);
|
|
@@ -409,9 +395,9 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
409
395
|
case 'group':
|
|
410
396
|
{
|
|
411
397
|
fieldSchema = {
|
|
412
|
-
additionalProperties: false,
|
|
413
398
|
type: 'object',
|
|
414
|
-
|
|
399
|
+
additionalProperties: false,
|
|
400
|
+
...fieldsToJSONSchema(collectionIDFieldTypes, field.fields, interfaceNameDefinitions, config)
|
|
415
401
|
};
|
|
416
402
|
if (field.interfaceName) {
|
|
417
403
|
interfaceNameDefinitions.set(field.interfaceName, fieldSchema);
|
|
@@ -426,7 +412,7 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
426
412
|
break;
|
|
427
413
|
}
|
|
428
414
|
}
|
|
429
|
-
if (fieldSchema &&
|
|
415
|
+
if (fieldSchema && fieldAffectsData(field)) {
|
|
430
416
|
fieldSchemas.set(field.name, fieldSchema);
|
|
431
417
|
}
|
|
432
418
|
return fieldSchemas;
|
|
@@ -434,15 +420,16 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, /**
|
|
|
434
420
|
required: Array.from(requiredFieldNames)
|
|
435
421
|
};
|
|
436
422
|
}
|
|
437
|
-
function
|
|
438
|
-
|
|
439
|
-
const
|
|
423
|
+
// This function is part of the public API and is exported through payload/utilities
|
|
424
|
+
export function entityToJSONSchema(config, incomingEntity, interfaceNameDefinitions, defaultIDType) {
|
|
425
|
+
const entity = deepCopyObject(incomingEntity);
|
|
426
|
+
const title = entity.typescript?.interface ? entity.typescript.interface : singular(toWords(entity.slug, true));
|
|
440
427
|
const idField = {
|
|
441
428
|
name: 'id',
|
|
442
|
-
|
|
443
|
-
|
|
429
|
+
type: defaultIDType,
|
|
430
|
+
required: true
|
|
444
431
|
};
|
|
445
|
-
const customIdField = entity.fields.find((field)=>
|
|
432
|
+
const customIdField = entity.fields.find((field)=>fieldAffectsData(field) && field.name === 'id');
|
|
446
433
|
if (customIdField && customIdField.type !== 'group' && customIdField.type !== 'tab') {
|
|
447
434
|
customIdField.required = true;
|
|
448
435
|
} else {
|
|
@@ -451,7 +438,7 @@ function entityToJSONSchema(config, incomingEntity, interfaceNameDefinitions, de
|
|
|
451
438
|
// mark timestamp fields required
|
|
452
439
|
if ('timestamps' in entity && entity.timestamps !== false) {
|
|
453
440
|
entity.fields = entity.fields.map((field)=>{
|
|
454
|
-
if (
|
|
441
|
+
if (fieldAffectsData(field) && (field.name === 'createdAt' || field.name === 'updatedAt')) {
|
|
455
442
|
return {
|
|
456
443
|
...field,
|
|
457
444
|
required: true
|
|
@@ -466,23 +453,21 @@ function entityToJSONSchema(config, incomingEntity, interfaceNameDefinitions, de
|
|
|
466
453
|
type: 'text'
|
|
467
454
|
});
|
|
468
455
|
}
|
|
469
|
-
//
|
|
470
|
-
const collectionIDFieldTypes =
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
acc[collection.slug] = customCollectionIdField.type === 'number' ? 'number' : 'string';
|
|
475
|
-
}
|
|
476
|
-
return acc;
|
|
477
|
-
}, {});
|
|
456
|
+
// Used for relationship fields, to determine whether to use a string or number type for the ID.
|
|
457
|
+
const collectionIDFieldTypes = getCollectionIDFieldTypes({
|
|
458
|
+
config,
|
|
459
|
+
defaultIDType
|
|
460
|
+
});
|
|
478
461
|
return {
|
|
462
|
+
type: 'object',
|
|
479
463
|
additionalProperties: false,
|
|
480
464
|
title,
|
|
481
|
-
|
|
482
|
-
...fieldsToJSONSchema(collectionIDFieldTypes, entity.fields, interfaceNameDefinitions)
|
|
465
|
+
...fieldsToJSONSchema(collectionIDFieldTypes, entity.fields, interfaceNameDefinitions, config)
|
|
483
466
|
};
|
|
484
467
|
}
|
|
485
|
-
|
|
468
|
+
/**
|
|
469
|
+
* This is used for generating the TypeScript types (payload-types.ts) with the payload generate:types command.
|
|
470
|
+
*/ export function configToJSONSchema(config, defaultIDType) {
|
|
486
471
|
// a mutable Map to store custom top-level `interfaceName` types. Fields with an `interfaceName` property will be moved to the top-level definitions here
|
|
487
472
|
const interfaceNameDefinitions = new Map();
|
|
488
473
|
// Collections and Globals have to be moved to the top-level definitions as well. Reason: The top-level type will be the `Config` type - we don't want all collection and global
|
|
@@ -501,6 +486,7 @@ function configToJSONSchema(config, defaultIDType) {
|
|
|
501
486
|
...Object.fromEntries(interfaceNameDefinitions)
|
|
502
487
|
},
|
|
503
488
|
// These properties here will be very simple, as all the complexity is in the definitions. These are just the properties for the top-level `Config` type
|
|
489
|
+
type: 'object',
|
|
504
490
|
properties: {
|
|
505
491
|
collections: generateEntitySchemas(config.collections || []),
|
|
506
492
|
globals: generateEntitySchemas(config.globals || [])
|
|
@@ -509,9 +495,8 @@ function configToJSONSchema(config, defaultIDType) {
|
|
|
509
495
|
'collections',
|
|
510
496
|
'globals'
|
|
511
497
|
],
|
|
512
|
-
title: 'Config'
|
|
513
|
-
type: 'object'
|
|
498
|
+
title: 'Config'
|
|
514
499
|
};
|
|
515
500
|
}
|
|
516
501
|
|
|
517
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlnVG9KU09OU2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSlNPTlNjaGVtYTQsIEpTT05TY2hlbWE0VHlwZU5hbWUgfSBmcm9tICdqc29uLXNjaGVtYSdcblxuaW1wb3J0IHsgc2luZ3VsYXIgfSBmcm9tICdwbHVyYWxpemUnXG5cbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnIH0gZnJvbSAnLi4vZXhwb3J0cy9jb25maWcnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBGaWVsZEFmZmVjdGluZ0RhdGEsIE9wdGlvbiB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGRlZXBDb3B5T2JqZWN0IH0gZnJvbSAnLi9kZWVwQ29weU9iamVjdCdcbmltcG9ydCB7IHRvV29yZHMgfSBmcm9tICcuL2Zvcm1hdExhYmVscydcblxuY29uc3QgZmllbGRJc1JlcXVpcmVkID0gKGZpZWxkOiBGaWVsZCkgPT4ge1xuICBjb25zdCBpc0NvbmRpdGlvbmFsID0gQm9vbGVhbihmaWVsZD8uYWRtaW4gJiYgZmllbGQ/LmFkbWluPy5jb25kaXRpb24pXG4gIGlmIChpc0NvbmRpdGlvbmFsKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBpc01hcmtlZFJlcXVpcmVkID0gJ3JlcXVpcmVkJyBpbiBmaWVsZCAmJiBmaWVsZC5yZXF1aXJlZCA9PT0gdHJ1ZVxuICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgaXNNYXJrZWRSZXF1aXJlZCkgcmV0dXJuIHRydWVcblxuICAvLyBpZiBhbnkgc3ViZmllbGRzIGFyZSByZXF1aXJlZCwgdGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICBpZiAoJ2ZpZWxkcycgaW4gZmllbGQgJiYgZmllbGQudHlwZSAhPT0gJ2FycmF5Jykge1xuICAgIHJldHVybiBmaWVsZC5maWVsZHMuc29tZSgoc3ViRmllbGQpID0+IGZpZWxkSXNSZXF1aXJlZChzdWJGaWVsZCkpXG4gIH1cblxuICAvLyBpZiBhbnkgdGFiIHN1YmZpZWxkcyBoYXZlIHJlcXVpcmVkIGZpZWxkcywgdGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICBpZiAoZmllbGQudHlwZSA9PT0gJ3RhYnMnKSB7XG4gICAgcmV0dXJuIGZpZWxkLnRhYnMuc29tZSgodGFiKSA9PiB7XG4gICAgICBpZiAoJ25hbWUnIGluIHRhYikge1xuICAgICAgICByZXR1cm4gdGFiLmZpZWxkcy5zb21lKChzdWJGaWVsZCkgPT4gZmllbGRJc1JlcXVpcmVkKHN1YkZpZWxkKSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gYnVpbGRPcHRpb25FbnVtcyhvcHRpb25zOiBPcHRpb25bXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIG9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcgJiYgJ3ZhbHVlJyBpbiBvcHRpb24pIHtcbiAgICAgIHJldHVybiBvcHRpb24udmFsdWVcbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9uXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlRW50aXR5U2NoZW1hcyhcbiAgZW50aXRpZXM6IChTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgU2FuaXRpemVkR2xvYmFsQ29uZmlnKVtdLFxuKTogSlNPTlNjaGVtYTQge1xuICBjb25zdCBwcm9wZXJ0aWVzID0gWy4uLmVudGl0aWVzXS5yZWR1Y2UoKGFjYywgeyBzbHVnIH0pID0+IHtcbiAgICBhY2Nbc2x1Z10gPSB7XG4gICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke3NsdWd9YCxcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjXG4gIH0sIHt9KVxuXG4gIHJldHVybiB7XG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgIHByb3BlcnRpZXMsXG4gICAgcmVxdWlyZWQ6IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLFxuICAgIHR5cGU6ICdvYmplY3QnLFxuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyBhIEpTT04gU2NoZW1hIFR5cGUgd2l0aCAnbnVsbCcgYWRkZWQgaWYgdGhlIGZpZWxkIGlzIG5vdCByZXF1aXJlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKFxuICBmaWVsZFR5cGU6IEpTT05TY2hlbWE0VHlwZU5hbWUsXG4gIGlzUmVxdWlyZWQ6IGJvb2xlYW4sXG4pOiBKU09OU2NoZW1hNFR5cGVOYW1lIHwgSlNPTlNjaGVtYTRUeXBlTmFtZVtdIHtcbiAgY29uc3QgZmllbGRUeXBlcyA9IFtmaWVsZFR5cGVdXG4gIGlmIChpc1JlcXVpcmVkKSByZXR1cm4gZmllbGRUeXBlXG4gIGZpZWxkVHlwZXMucHVzaCgnbnVsbCcpXG4gIHJldHVybiBmaWVsZFR5cGVzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWVsZHNUb0pTT05TY2hlbWEoXG4gIGNvbGxlY3Rpb25JREZpZWxkVHlwZXM6IHsgW2tleTogc3RyaW5nXTogJ251bWJlcicgfCAnc3RyaW5nJyB9LFxuICBmaWVsZHM6IEZpZWxkW10sXG4gIC8qKlxuICAgKiBBbGxvd3MgeW91IHRvIGRlZmluZSBuZXcgdG9wLWxldmVsIGludGVyZmFjZXMgdGhhdCBjYW4gYmUgcmUtdXNlZCBpbiB0aGUgb3V0cHV0IHNjaGVtYS5cbiAgICovXG4gIGludGVyZmFjZU5hbWVEZWZpbml0aW9uczogTWFwPHN0cmluZywgSlNPTlNjaGVtYTQ+LFxuKToge1xuICBwcm9wZXJ0aWVzOiB7XG4gICAgW2s6IHN0cmluZ106IEpTT05TY2hlbWE0XG4gIH1cbiAgcmVxdWlyZWQ6IHN0cmluZ1tdXG59IHtcbiAgY29uc3QgcmVxdWlyZWRGaWVsZE5hbWVzID0gbmV3IFNldDxzdHJpbmc+KClcblxuICByZXR1cm4ge1xuICAgIHByb3BlcnRpZXM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIGZpZWxkcy5yZWR1Y2UoKGZpZWxkU2NoZW1hcywgZmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgaXNSZXF1aXJlZCA9IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkSXNSZXF1aXJlZChmaWVsZClcbiAgICAgICAgaWYgKGlzUmVxdWlyZWQpIHJlcXVpcmVkRmllbGROYW1lcy5hZGQoZmllbGQubmFtZSlcblxuICAgICAgICBsZXQgZmllbGRTY2hlbWE6IEpTT05TY2hlbWE0XG4gICAgICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgICAgIGNhc2UgJ3RleHQnOlxuICAgICAgICAgICAgaWYgKGZpZWxkLmhhc01hbnkgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IHsgdHlwZTogJ3N0cmluZycgfSxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7IHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdzdHJpbmcnLCBpc1JlcXVpcmVkKSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3RleHRhcmVhJzpcbiAgICAgICAgICBjYXNlICdjb2RlJzpcbiAgICAgICAgICBjYXNlICdlbWFpbCc6XG4gICAgICAgICAgY2FzZSAnZGF0ZSc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0geyB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnc3RyaW5nJywgaXNSZXF1aXJlZCkgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdudW1iZXInOiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuaGFzTWFueSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICBpdGVtczogeyB0eXBlOiAnbnVtYmVyJyB9LFxuICAgICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdhcnJheScsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHsgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ251bWJlcicsIGlzUmVxdWlyZWQpIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnY2hlY2tib3gnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHsgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ2Jvb2xlYW4nLCBpc1JlcXVpcmVkKSB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ2pzb24nOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgdHlwZTogWydvYmplY3QnLCAnYXJyYXknLCAnc3RyaW5nJywgJ251bWJlcicsICdib29sZWFuJywgJ251bGwnXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAncmljaFRleHQnOiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuZWRpdG9yLm91dHB1dFNjaGVtYSkge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IGZpZWxkLmVkaXRvci5vdXRwdXRTY2hlbWEoe1xuICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gTWFpbnRhaW4gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyByaWNoIHRleHQgZWRpdG9yc1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3JhZGlvJzoge1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIGVudW06IGJ1aWxkT3B0aW9uRW51bXMoZmllbGQub3B0aW9ucyksXG4gICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdzdHJpbmcnLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdzZWxlY3QnOiB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb25FbnVtcyA9IGJ1aWxkT3B0aW9uRW51bXMoZmllbGQub3B0aW9ucylcblxuICAgICAgICAgICAgaWYgKGZpZWxkLmhhc01hbnkpIHtcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICAgIGVudW06IG9wdGlvbkVudW1zLFxuICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgZW51bTogb3B0aW9uRW51bXMsXG4gICAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ3N0cmluZycsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAncG9pbnQnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgaXRlbXM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIG1heEl0ZW1zOiAyLFxuICAgICAgICAgICAgICBtaW5JdGVtczogMixcbiAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ2FycmF5JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pKSB7XG4gICAgICAgICAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgICAgICBvbmVPZjogZmllbGQucmVsYXRpb25Uby5tYXAoKHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25Ubzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0OiByZWxhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uSURGaWVsZFR5cGVzW3JlbGF0aW9uXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZWY6IGAjL2RlZmluaXRpb25zLyR7cmVsYXRpb259YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogWyd2YWx1ZScsICdyZWxhdGlvblRvJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdhcnJheScsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICAgIG9uZU9mOiBmaWVsZC5yZWxhdGlvblRvLm1hcCgocmVsYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25Ubzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdDogcmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uSURGaWVsZFR5cGVzW3JlbGF0aW9uXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZWY6IGAjL2RlZmluaXRpb25zLyR7cmVsYXRpb259YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBbJ3ZhbHVlJywgJ3JlbGF0aW9uVG8nXSxcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnb2JqZWN0JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogY29sbGVjdGlvbklERmllbGRUeXBlc1tmaWVsZC5yZWxhdGlvblRvXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICRyZWY6IGAjL2RlZmluaXRpb25zLyR7ZmllbGQucmVsYXRpb25Ub31gLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdhcnJheScsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZShcbiAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzW2ZpZWxkLnJlbGF0aW9uVG9dLFxuICAgICAgICAgICAgICAgICAgICAgIGlzUmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2ZpZWxkLnJlbGF0aW9uVG99YCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3VwbG9hZCc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBvbmVPZjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6IGNvbGxlY3Rpb25JREZpZWxkVHlwZXNbZmllbGQucmVsYXRpb25Ub10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2ZpZWxkLnJlbGF0aW9uVG99YCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFpc1JlcXVpcmVkKSBmaWVsZFNjaGVtYS5vbmVPZi5wdXNoKHsgdHlwZTogJ251bGwnIH0pXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgIG9uZU9mOiBmaWVsZC5ibG9ja3MubWFwKChibG9jaykgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tGaWVsZFNjaGVtYXMgPSBmaWVsZHNUb0pTT05TY2hlbWEoXG4gICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25JREZpZWxkVHlwZXMsXG4gICAgICAgICAgICAgICAgICAgIGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLFxuICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICBjb25zdCBibG9ja1NjaGVtYTogSlNPTlNjaGVtYTQgPSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICAgIC4uLmJsb2NrRmllbGRTY2hlbWFzLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgYmxvY2tUeXBlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdDogYmxvY2suc2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogWydibG9ja1R5cGUnLCAuLi5ibG9ja0ZpZWxkU2NoZW1hcy5yZXF1aXJlZF0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAoYmxvY2suaW50ZXJmYWNlTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMuc2V0KGJsb2NrLmludGVyZmFjZU5hbWUsIGJsb2NrU2NoZW1hKVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtibG9jay5pbnRlcmZhY2VOYW1lfWAsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGJsb2NrU2NoZW1hXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdhcnJheScsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAuLi5maWVsZHNUb0pTT05TY2hlbWEoXG4gICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzLFxuICAgICAgICAgICAgICAgICAgZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdhcnJheScsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmllbGQuaW50ZXJmYWNlTmFtZSkge1xuICAgICAgICAgICAgICBpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMuc2V0KGZpZWxkLmludGVyZmFjZU5hbWUsIGZpZWxkU2NoZW1hKVxuXG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgICRyZWY6IGAjL2RlZmluaXRpb25zLyR7ZmllbGQuaW50ZXJmYWNlTmFtZX1gLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3Jvdyc6XG4gICAgICAgICAgY2FzZSAnY29sbGFwc2libGUnOiB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZFNjaGVtYSA9IGZpZWxkc1RvSlNPTlNjaGVtYShcbiAgICAgICAgICAgICAgY29sbGVjdGlvbklERmllbGRUeXBlcyxcbiAgICAgICAgICAgICAgZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICBpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhjaGlsZFNjaGVtYS5wcm9wZXJ0aWVzKS5mb3JFYWNoKChbcHJvcE5hbWUsIHByb3BTY2hlbWFdKSA9PiB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hcy5zZXQocHJvcE5hbWUsIHByb3BTY2hlbWEpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgY2hpbGRTY2hlbWEucmVxdWlyZWQuZm9yRWFjaCgocHJvcE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgcmVxdWlyZWRGaWVsZE5hbWVzLmFkZChwcm9wTmFtZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3RhYnMnOiB7XG4gICAgICAgICAgICBmaWVsZC50YWJzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBjaGlsZFNjaGVtYSA9IGZpZWxkc1RvSlNPTlNjaGVtYShcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzLFxuICAgICAgICAgICAgICAgIHRhYi5maWVsZHMsXG4gICAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGlmICh0YWJIYXNOYW1lKHRhYikpIHtcbiAgICAgICAgICAgICAgICAvLyBjb3VsZCBoYXZlIGludGVyZmFjZVxuICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hcy5zZXQodGFiLm5hbWUsIHtcbiAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICAgICAgLi4uY2hpbGRTY2hlbWEsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICByZXF1aXJlZEZpZWxkTmFtZXMuYWRkKHRhYi5uYW1lKVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGNoaWxkU2NoZW1hLnByb3BlcnRpZXMpLmZvckVhY2goKFtwcm9wTmFtZSwgcHJvcFNjaGVtYV0pID0+IHtcbiAgICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hcy5zZXQocHJvcE5hbWUsIHByb3BTY2hlbWEpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICBjaGlsZFNjaGVtYS5yZXF1aXJlZC5mb3JFYWNoKChwcm9wTmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmVxdWlyZWRGaWVsZE5hbWVzLmFkZChwcm9wTmFtZSlcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdncm91cCc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICAuLi5maWVsZHNUb0pTT05TY2hlbWEoY29sbGVjdGlvbklERmllbGRUeXBlcywgZmllbGQuZmllbGRzLCBpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMpLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmllbGQuaW50ZXJmYWNlTmFtZSkge1xuICAgICAgICAgICAgICBpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMuc2V0KGZpZWxkLmludGVyZmFjZU5hbWUsIGZpZWxkU2NoZW1hKVxuXG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgICRyZWY6IGAjL2RlZmluaXRpb25zLyR7ZmllbGQuaW50ZXJmYWNlTmFtZX1gLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkU2NoZW1hICYmIGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSB7XG4gICAgICAgICAgZmllbGRTY2hlbWFzLnNldChmaWVsZC5uYW1lLCBmaWVsZFNjaGVtYSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZFNjaGVtYXNcbiAgICAgIH0sIG5ldyBNYXA8c3RyaW5nLCBKU09OU2NoZW1hND4oKSksXG4gICAgKSxcbiAgICByZXF1aXJlZDogQXJyYXkuZnJvbShyZXF1aXJlZEZpZWxkTmFtZXMpLFxuICB9XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgcGFydCBvZiB0aGUgcHVibGljIEFQSSBhbmQgaXMgZXhwb3J0ZWQgdGhyb3VnaCBwYXlsb2FkL3V0aWxpdGllc1xuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eVRvSlNPTlNjaGVtYShcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGluY29taW5nRW50aXR5OiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgU2FuaXRpemVkR2xvYmFsQ29uZmlnLFxuICBpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnM6IE1hcDxzdHJpbmcsIEpTT05TY2hlbWE0PixcbiAgZGVmYXVsdElEVHlwZTogJ251bWJlcicgfCAndGV4dCcsXG4pOiBKU09OU2NoZW1hNCB7XG4gIGNvbnN0IGVudGl0eTogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IFNhbml0aXplZEdsb2JhbENvbmZpZyA9IGRlZXBDb3B5T2JqZWN0KGluY29taW5nRW50aXR5KVxuICBjb25zdCB0aXRsZSA9IGVudGl0eS50eXBlc2NyaXB0Py5pbnRlcmZhY2VcbiAgICA/IGVudGl0eS50eXBlc2NyaXB0LmludGVyZmFjZVxuICAgIDogc2luZ3VsYXIodG9Xb3JkcyhlbnRpdHkuc2x1ZywgdHJ1ZSkpXG5cbiAgY29uc3QgaWRGaWVsZDogRmllbGRBZmZlY3RpbmdEYXRhID0geyBuYW1lOiAnaWQnLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogZGVmYXVsdElEVHlwZSBhcyAndGV4dCcgfVxuICBjb25zdCBjdXN0b21JZEZpZWxkID0gZW50aXR5LmZpZWxkcy5maW5kKFxuICAgIChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJyxcbiAgKSBhcyBGaWVsZEFmZmVjdGluZ0RhdGFcblxuICBpZiAoY3VzdG9tSWRGaWVsZCAmJiBjdXN0b21JZEZpZWxkLnR5cGUgIT09ICdncm91cCcgJiYgY3VzdG9tSWRGaWVsZC50eXBlICE9PSAndGFiJykge1xuICAgIGN1c3RvbUlkRmllbGQucmVxdWlyZWQgPSB0cnVlXG4gIH0gZWxzZSB7XG4gICAgZW50aXR5LmZpZWxkcy51bnNoaWZ0KGlkRmllbGQpXG4gIH1cblxuICAvLyBtYXJrIHRpbWVzdGFtcCBmaWVsZHMgcmVxdWlyZWRcbiAgaWYgKCd0aW1lc3RhbXBzJyBpbiBlbnRpdHkgJiYgZW50aXR5LnRpbWVzdGFtcHMgIT09IGZhbHNlKSB7XG4gICAgZW50aXR5LmZpZWxkcyA9IGVudGl0eS5maWVsZHMubWFwKChmaWVsZCkgPT4ge1xuICAgICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIChmaWVsZC5uYW1lID09PSAnY3JlYXRlZEF0JyB8fCBmaWVsZC5uYW1lID09PSAndXBkYXRlZEF0JykpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZpZWxkXG4gICAgfSlcbiAgfVxuXG4gIGlmICgnYXV0aCcgaW4gZW50aXR5ICYmIGVudGl0eS5hdXRoICYmICFlbnRpdHkuYXV0aD8uZGlzYWJsZUxvY2FsU3RyYXRlZ3kpIHtcbiAgICBlbnRpdHkuZmllbGRzLnB1c2goe1xuICAgICAgbmFtZTogJ3Bhc3N3b3JkJyxcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICB9KVxuICB9XG5cbiAgLy8gdXNlZCBmb3IgcmVsYXRpb25zaGlwIGZpZWxkcywgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gdXNlIGEgc3RyaW5nIG9yIG51bWJlciB0eXBlIGZvciB0aGUgSURcbiAgY29uc3QgY29sbGVjdGlvbklERmllbGRUeXBlczogeyBba2V5OiBzdHJpbmddOiAnbnVtYmVyJyB8ICdzdHJpbmcnIH0gPSBjb25maWcuY29sbGVjdGlvbnMucmVkdWNlKFxuICAgIChhY2MsIGNvbGxlY3Rpb24pID0+IHtcbiAgICAgIGNvbnN0IGN1c3RvbUNvbGxlY3Rpb25JZEZpZWxkID0gY29sbGVjdGlvbi5maWVsZHMuZmluZChcbiAgICAgICAgKGZpZWxkKSA9PiAnbmFtZScgaW4gZmllbGQgJiYgZmllbGQubmFtZSA9PT0gJ2lkJyxcbiAgICAgIClcblxuICAgICAgYWNjW2NvbGxlY3Rpb24uc2x1Z10gPSBkZWZhdWx0SURUeXBlID09PSAndGV4dCcgPyAnc3RyaW5nJyA6ICdudW1iZXInXG5cbiAgICAgIGlmIChjdXN0b21Db2xsZWN0aW9uSWRGaWVsZCkge1xuICAgICAgICBhY2NbY29sbGVjdGlvbi5zbHVnXSA9IGN1c3RvbUNvbGxlY3Rpb25JZEZpZWxkLnR5cGUgPT09ICdudW1iZXInID8gJ251bWJlcicgOiAnc3RyaW5nJ1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSxcbiAgICB7fSxcbiAgKVxuXG4gIHJldHVybiB7XG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgIHRpdGxlLFxuICAgIHR5cGU6ICdvYmplY3QnLFxuICAgIC4uLmZpZWxkc1RvSlNPTlNjaGVtYShjb2xsZWN0aW9uSURGaWVsZFR5cGVzLCBlbnRpdHkuZmllbGRzLCBpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMpLFxuICB9XG59XG5cbi8qKlxuICogVGhpcyBpcyB1c2VkIGZvciBnZW5lcmF0aW5nIHRoZSBUeXBlU2NyaXB0IHR5cGVzIChwYXlsb2FkLXR5cGVzLnRzKSB3aXRoIHRoZSBwYXlsb2FkIGdlbmVyYXRlOnR5cGVzIGNvbW1hbmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb25maWdUb0pTT05TY2hlbWEoXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICBkZWZhdWx0SURUeXBlPzogJ251bWJlcicgfCAndGV4dCcsXG4pOiBKU09OU2NoZW1hNCB7XG4gIC8vIGEgbXV0YWJsZSBNYXAgdG8gc3RvcmUgY3VzdG9tIHRvcC1sZXZlbCBgaW50ZXJmYWNlTmFtZWAgdHlwZXMuIEZpZWxkcyB3aXRoIGFuIGBpbnRlcmZhY2VOYW1lYCBwcm9wZXJ0eSB3aWxsIGJlIG1vdmVkIHRvIHRoZSB0b3AtbGV2ZWwgZGVmaW5pdGlvbnMgaGVyZVxuICBjb25zdCBpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnM6IE1hcDxzdHJpbmcsIEpTT05TY2hlbWE0PiA9IG5ldyBNYXAoKVxuXG4gIC8vIENvbGxlY3Rpb25zIGFuZCBHbG9iYWxzIGhhdmUgdG8gYmUgbW92ZWQgdG8gdGhlIHRvcC1sZXZlbCBkZWZpbml0aW9ucyBhcyB3ZWxsLiBSZWFzb246IFRoZSB0b3AtbGV2ZWwgdHlwZSB3aWxsIGJlIHRoZSBgQ29uZmlnYCB0eXBlIC0gd2UgZG9uJ3Qgd2FudCBhbGwgY29sbGVjdGlvbiBhbmQgZ2xvYmFsXG4gIC8vIHR5cGVzIHRvIGJlIGlubGluZWQgaW5zaWRlIHRoZSBgQ29uZmlnYCB0eXBlXG4gIGNvbnN0IGVudGl0eURlZmluaXRpb25zOiB7IFtrOiBzdHJpbmddOiBKU09OU2NoZW1hNCB9ID0gW1xuICAgIC4uLmNvbmZpZy5nbG9iYWxzLFxuICAgIC4uLmNvbmZpZy5jb2xsZWN0aW9ucyxcbiAgXS5yZWR1Y2UoKGFjYywgZW50aXR5KSA9PiB7XG4gICAgYWNjW2VudGl0eS5zbHVnXSA9IGVudGl0eVRvSlNPTlNjaGVtYShjb25maWcsIGVudGl0eSwgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLCBkZWZhdWx0SURUeXBlKVxuICAgIHJldHVybiBhY2NcbiAgfSwge30pXG5cbiAgcmV0dXJuIHtcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgZGVmaW5pdGlvbnM6IHsgLi4uZW50aXR5RGVmaW5pdGlvbnMsIC4uLk9iamVjdC5mcm9tRW50cmllcyhpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMpIH0sXG4gICAgLy8gVGhlc2UgcHJvcGVydGllcyBoZXJlIHdpbGwgYmUgdmVyeSBzaW1wbGUsIGFzIGFsbCB0aGUgY29tcGxleGl0eSBpcyBpbiB0aGUgZGVmaW5pdGlvbnMuIFRoZXNlIGFyZSBqdXN0IHRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgdG9wLWxldmVsIGBDb25maWdgIHR5cGVcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBjb2xsZWN0aW9uczogZ2VuZXJhdGVFbnRpdHlTY2hlbWFzKGNvbmZpZy5jb2xsZWN0aW9ucyB8fCBbXSksXG4gICAgICBnbG9iYWxzOiBnZW5lcmF0ZUVudGl0eVNjaGVtYXMoY29uZmlnLmdsb2JhbHMgfHwgW10pLFxuICAgIH0sXG4gICAgcmVxdWlyZWQ6IFsnY29sbGVjdGlvbnMnLCAnZ2xvYmFscyddLFxuICAgIHRpdGxlOiAnQ29uZmlnJyxcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImNvbmZpZ1RvSlNPTlNjaGVtYSIsImVudGl0eVRvSlNPTlNjaGVtYSIsImZpZWxkc1RvSlNPTlNjaGVtYSIsIndpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlIiwiZmllbGRJc1JlcXVpcmVkIiwiZmllbGQiLCJpc0NvbmRpdGlvbmFsIiwiQm9vbGVhbiIsImFkbWluIiwiY29uZGl0aW9uIiwiaXNNYXJrZWRSZXF1aXJlZCIsInJlcXVpcmVkIiwiZmllbGRBZmZlY3RzRGF0YSIsInR5cGUiLCJmaWVsZHMiLCJzb21lIiwic3ViRmllbGQiLCJ0YWJzIiwidGFiIiwiYnVpbGRPcHRpb25FbnVtcyIsIm9wdGlvbnMiLCJtYXAiLCJvcHRpb24iLCJ2YWx1ZSIsImdlbmVyYXRlRW50aXR5U2NoZW1hcyIsImVudGl0aWVzIiwicHJvcGVydGllcyIsInJlZHVjZSIsImFjYyIsInNsdWciLCIkcmVmIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJPYmplY3QiLCJrZXlzIiwiZmllbGRUeXBlIiwiaXNSZXF1aXJlZCIsImZpZWxkVHlwZXMiLCJwdXNoIiwiY29sbGVjdGlvbklERmllbGRUeXBlcyIsImludGVyZmFjZU5hbWVEZWZpbml0aW9ucyIsInJlcXVpcmVkRmllbGROYW1lcyIsIlNldCIsImZyb21FbnRyaWVzIiwiZmllbGRTY2hlbWFzIiwiYWRkIiwibmFtZSIsImZpZWxkU2NoZW1hIiwiaGFzTWFueSIsIml0ZW1zIiwiZWRpdG9yIiwib3V0cHV0U2NoZW1hIiwiZW51bSIsIm9wdGlvbkVudW1zIiwibWF4SXRlbXMiLCJtaW5JdGVtcyIsIkFycmF5IiwiaXNBcnJheSIsInJlbGF0aW9uVG8iLCJvbmVPZiIsInJlbGF0aW9uIiwiY29uc3QiLCJibG9ja3MiLCJibG9jayIsImJsb2NrRmllbGRTY2hlbWFzIiwiYmxvY2tTY2hlbWEiLCJibG9ja1R5cGUiLCJpbnRlcmZhY2VOYW1lIiwic2V0IiwiY2hpbGRTY2hlbWEiLCJlbnRyaWVzIiwiZm9yRWFjaCIsInByb3BOYW1lIiwicHJvcFNjaGVtYSIsInRhYkhhc05hbWUiLCJNYXAiLCJmcm9tIiwiY29uZmlnIiwiaW5jb21pbmdFbnRpdHkiLCJkZWZhdWx0SURUeXBlIiwiZW50aXR5IiwiZGVlcENvcHlPYmplY3QiLCJ0aXRsZSIsInR5cGVzY3JpcHQiLCJpbnRlcmZhY2UiLCJzaW5ndWxhciIsInRvV29yZHMiLCJpZEZpZWxkIiwiY3VzdG9tSWRGaWVsZCIsImZpbmQiLCJ1bnNoaWZ0IiwidGltZXN0YW1wcyIsImF1dGgiLCJkaXNhYmxlTG9jYWxTdHJhdGVneSIsImNvbGxlY3Rpb25zIiwiY29sbGVjdGlvbiIsImN1c3RvbUNvbGxlY3Rpb25JZEZpZWxkIiwiZW50aXR5RGVmaW5pdGlvbnMiLCJnbG9iYWxzIiwiZGVmaW5pdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBOGdCZ0JBLGtCQUFrQjtlQUFsQkE7O0lBdkVBQyxrQkFBa0I7ZUFBbEJBOztJQXZYQUMsa0JBQWtCO2VBQWxCQTs7SUFWQUMsMEJBQTBCO2VBQTFCQTs7OzJCQXBFUzt1QkFPb0I7Z0NBQ2Q7OEJBQ1A7QUFFeEIsTUFBTUMsa0JBQWtCLENBQUNDO0lBQ3ZCLE1BQU1DLGdCQUFnQkMsUUFBUUYsT0FBT0csU0FBU0gsT0FBT0csT0FBT0M7SUFDNUQsSUFBSUgsZUFBZSxPQUFPO0lBRTFCLE1BQU1JLG1CQUFtQixjQUFjTCxTQUFTQSxNQUFNTSxRQUFRLEtBQUs7SUFDbkUsSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNQLFVBQVVLLGtCQUFrQixPQUFPO0lBRXhELHdEQUF3RDtJQUN4RCxJQUFJLFlBQVlMLFNBQVNBLE1BQU1RLElBQUks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
|
|
502
|
+
//# sourceMappingURL=configToJSONSchema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/configToJSONSchema.ts"],"sourcesContent":["import type { JSONSchema4, JSONSchema4TypeName } from 'json-schema'\n\nimport pluralize from 'pluralize'\nconst { singular } = pluralize\n\nimport type { SanitizedCollectionConfig } from '../collections/config/types.js'\nimport type { SanitizedConfig } from '../config/types.js'\nimport type { Field, FieldAffectingData, Option } from '../fields/config/types.js'\nimport type { SanitizedGlobalConfig } from '../globals/config/types.js'\n\nimport { fieldAffectsData, tabHasName } from '../fields/config/types.js'\nimport { deepCopyObject } from './deepCopyObject.js'\nimport { toWords } from './formatLabels.js'\nimport { getCollectionIDFieldTypes } from './getCollectionIDFieldTypes.js'\n\nconst fieldIsRequired = (field: Field) => {\n const isConditional = Boolean(field?.admin && field?.admin?.condition)\n if (isConditional) return false\n\n const isMarkedRequired = 'required' in field && field.required === true\n if (fieldAffectsData(field) && isMarkedRequired) return true\n\n // if any subfields are required, this field is required\n if ('fields' in field && field.type !== 'array') {\n return field.fields.some((subField) => fieldIsRequired(subField))\n }\n\n // if any tab subfields have required fields, this field is required\n if (field.type === 'tabs') {\n return field.tabs.some((tab) => {\n if ('name' in tab) {\n return tab.fields.some((subField) => fieldIsRequired(subField))\n }\n return false\n })\n }\n\n return false\n}\n\nfunction buildOptionEnums(options: Option[]): string[] {\n return options.map((option) => {\n if (typeof option === 'object' && 'value' in option) {\n return option.value\n }\n\n return option\n })\n}\n\nfunction generateEntitySchemas(\n entities: (SanitizedCollectionConfig | SanitizedGlobalConfig)[],\n): JSONSchema4 {\n const properties = [...entities].reduce((acc, { slug }) => {\n acc[slug] = {\n $ref: `#/definitions/${slug}`,\n }\n\n return acc\n }, {})\n\n return {\n type: 'object',\n additionalProperties: false,\n properties,\n required: Object.keys(properties),\n }\n}\n\n/**\n * Returns a JSON Schema Type with 'null' added if the field is not required.\n */\nexport function withNullableJSONSchemaType(\n fieldType: JSONSchema4TypeName,\n isRequired: boolean,\n): JSONSchema4TypeName | JSONSchema4TypeName[] {\n const fieldTypes = [fieldType]\n if (isRequired) return fieldType\n fieldTypes.push('null')\n return fieldTypes\n}\n\nexport function fieldsToJSONSchema(\n /**\n * Used for relationship fields, to determine whether to use a string or number type for the ID.\n * While there is a default ID field type set by the db adapter, they can differ on a collection-level\n * if they have custom ID fields.\n */\n collectionIDFieldTypes: { [key: string]: 'number' | 'string' },\n fields: Field[],\n /**\n * Allows you to define new top-level interfaces that can be re-used in the output schema.\n */\n interfaceNameDefinitions: Map<string, JSONSchema4>,\n config?: SanitizedConfig,\n): {\n properties: {\n [k: string]: JSONSchema4\n }\n required: string[]\n} {\n const requiredFieldNames = new Set<string>()\n\n return {\n properties: Object.fromEntries(\n fields.reduce((fieldSchemas, field) => {\n const isRequired = fieldAffectsData(field) && fieldIsRequired(field)\n if (isRequired) requiredFieldNames.add(field.name)\n\n let fieldSchema: JSONSchema4\n switch (field.type) {\n case 'text':\n if (field.hasMany === true) {\n fieldSchema = {\n type: withNullableJSONSchemaType('array', isRequired),\n items: { type: 'string' },\n }\n } else {\n fieldSchema = { type: withNullableJSONSchemaType('string', isRequired) }\n }\n break\n case 'textarea':\n case 'code':\n case 'email':\n case 'date': {\n fieldSchema = { type: withNullableJSONSchemaType('string', isRequired) }\n break\n }\n\n case 'number': {\n if (field.hasMany === true) {\n fieldSchema = {\n type: withNullableJSONSchemaType('array', isRequired),\n items: { type: 'number' },\n }\n } else {\n fieldSchema = { type: withNullableJSONSchemaType('number', isRequired) }\n }\n break\n }\n\n case 'checkbox': {\n fieldSchema = { type: withNullableJSONSchemaType('boolean', isRequired) }\n break\n }\n\n case 'json': {\n fieldSchema = {\n type: ['object', 'array', 'string', 'number', 'boolean', 'null'],\n }\n break\n }\n\n case 'richText': {\n if (field.editor.outputSchema) {\n fieldSchema = field.editor.outputSchema({\n collectionIDFieldTypes,\n config,\n field,\n interfaceNameDefinitions,\n isRequired,\n })\n } else {\n // Maintain backwards compatibility with existing rich text editors\n fieldSchema = {\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'object',\n },\n }\n }\n\n break\n }\n\n case 'radio': {\n fieldSchema = {\n type: withNullableJSONSchemaType('string', isRequired),\n enum: buildOptionEnums(field.options),\n }\n\n break\n }\n\n case 'select': {\n const optionEnums = buildOptionEnums(field.options)\n\n if (field.hasMany) {\n fieldSchema = {\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'string',\n enum: optionEnums,\n },\n }\n } else {\n fieldSchema = {\n type: withNullableJSONSchemaType('string', isRequired),\n enum: optionEnums,\n }\n }\n\n break\n }\n\n case 'point': {\n fieldSchema = {\n type: withNullableJSONSchemaType('array', isRequired),\n items: [\n {\n type: 'number',\n },\n {\n type: 'number',\n },\n ],\n maxItems: 2,\n minItems: 2,\n }\n break\n }\n\n case 'relationship': {\n if (Array.isArray(field.relationTo)) {\n if (field.hasMany) {\n fieldSchema = {\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n oneOf: field.relationTo.map((relation) => {\n return {\n type: 'object',\n additionalProperties: false,\n properties: {\n relationTo: {\n const: relation,\n },\n value: {\n oneOf: [\n {\n type: collectionIDFieldTypes[relation],\n },\n {\n $ref: `#/definitions/${relation}`,\n },\n ],\n },\n },\n required: ['value', 'relationTo'],\n }\n }),\n },\n }\n } else {\n fieldSchema = {\n oneOf: field.relationTo.map((relation) => {\n return {\n type: withNullableJSONSchemaType('object', isRequired),\n additionalProperties: false,\n properties: {\n relationTo: {\n const: relation,\n },\n value: {\n oneOf: [\n {\n type: collectionIDFieldTypes[relation],\n },\n {\n $ref: `#/definitions/${relation}`,\n },\n ],\n },\n },\n required: ['value', 'relationTo'],\n }\n }),\n }\n }\n } else if (field.hasMany) {\n fieldSchema = {\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n oneOf: [\n {\n type: collectionIDFieldTypes[field.relationTo],\n },\n {\n $ref: `#/definitions/${field.relationTo}`,\n },\n ],\n },\n }\n } else {\n fieldSchema = {\n oneOf: [\n {\n type: withNullableJSONSchemaType(\n collectionIDFieldTypes[field.relationTo],\n isRequired,\n ),\n },\n {\n $ref: `#/definitions/${field.relationTo}`,\n },\n ],\n }\n }\n\n break\n }\n\n case 'upload': {\n fieldSchema = {\n oneOf: [\n {\n type: collectionIDFieldTypes[field.relationTo],\n },\n {\n $ref: `#/definitions/${field.relationTo}`,\n },\n ],\n }\n if (!isRequired) fieldSchema.oneOf.push({ type: 'null' })\n break\n }\n\n case 'blocks': {\n fieldSchema = {\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n oneOf: field.blocks.map((block) => {\n const blockFieldSchemas = fieldsToJSONSchema(\n collectionIDFieldTypes,\n block.fields,\n interfaceNameDefinitions,\n config,\n )\n\n const blockSchema: JSONSchema4 = {\n type: 'object',\n additionalProperties: false,\n properties: {\n ...blockFieldSchemas.properties,\n blockType: {\n const: block.slug,\n },\n },\n required: ['blockType', ...blockFieldSchemas.required],\n }\n\n if (block.interfaceName) {\n interfaceNameDefinitions.set(block.interfaceName, blockSchema)\n\n return {\n $ref: `#/definitions/${block.interfaceName}`,\n }\n }\n\n return blockSchema\n }),\n },\n }\n break\n }\n\n case 'array': {\n fieldSchema = {\n type: withNullableJSONSchemaType('array', isRequired),\n items: {\n type: 'object',\n additionalProperties: false,\n ...fieldsToJSONSchema(\n collectionIDFieldTypes,\n field.fields,\n interfaceNameDefinitions,\n config,\n ),\n },\n }\n\n if (field.interfaceName) {\n interfaceNameDefinitions.set(field.interfaceName, fieldSchema)\n\n fieldSchema = {\n $ref: `#/definitions/${field.interfaceName}`,\n }\n }\n break\n }\n\n case 'row':\n case 'collapsible': {\n const childSchema = fieldsToJSONSchema(\n collectionIDFieldTypes,\n field.fields,\n interfaceNameDefinitions,\n config,\n )\n Object.entries(childSchema.properties).forEach(([propName, propSchema]) => {\n fieldSchemas.set(propName, propSchema)\n })\n childSchema.required.forEach((propName) => {\n requiredFieldNames.add(propName)\n })\n break\n }\n\n case 'tabs': {\n field.tabs.forEach((tab) => {\n const childSchema = fieldsToJSONSchema(\n collectionIDFieldTypes,\n tab.fields,\n interfaceNameDefinitions,\n config,\n )\n if (tabHasName(tab)) {\n // could have interface\n fieldSchemas.set(tab.name, {\n type: 'object',\n additionalProperties: false,\n ...childSchema,\n })\n requiredFieldNames.add(tab.name)\n } else {\n Object.entries(childSchema.properties).forEach(([propName, propSchema]) => {\n fieldSchemas.set(propName, propSchema)\n })\n childSchema.required.forEach((propName) => {\n requiredFieldNames.add(propName)\n })\n }\n })\n break\n }\n\n case 'group': {\n fieldSchema = {\n type: 'object',\n additionalProperties: false,\n ...fieldsToJSONSchema(\n collectionIDFieldTypes,\n field.fields,\n interfaceNameDefinitions,\n config,\n ),\n }\n\n if (field.interfaceName) {\n interfaceNameDefinitions.set(field.interfaceName, fieldSchema)\n\n fieldSchema = {\n $ref: `#/definitions/${field.interfaceName}`,\n }\n }\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldSchema && fieldAffectsData(field)) {\n fieldSchemas.set(field.name, fieldSchema)\n }\n\n return fieldSchemas\n }, new Map<string, JSONSchema4>()),\n ),\n required: Array.from(requiredFieldNames),\n }\n}\n\n// This function is part of the public API and is exported through payload/utilities\nexport function entityToJSONSchema(\n config: SanitizedConfig,\n incomingEntity: SanitizedCollectionConfig | SanitizedGlobalConfig,\n interfaceNameDefinitions: Map<string, JSONSchema4>,\n defaultIDType: 'number' | 'text',\n): JSONSchema4 {\n const entity: SanitizedCollectionConfig | SanitizedGlobalConfig = deepCopyObject(incomingEntity)\n const title = entity.typescript?.interface\n ? entity.typescript.interface\n : singular(toWords(entity.slug, true))\n\n const idField: FieldAffectingData = { name: 'id', type: defaultIDType as 'text', required: true }\n const customIdField = entity.fields.find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n ) as FieldAffectingData\n\n if (customIdField && customIdField.type !== 'group' && customIdField.type !== 'tab') {\n customIdField.required = true\n } else {\n entity.fields.unshift(idField)\n }\n\n // mark timestamp fields required\n if ('timestamps' in entity && entity.timestamps !== false) {\n entity.fields = entity.fields.map((field) => {\n if (fieldAffectsData(field) && (field.name === 'createdAt' || field.name === 'updatedAt')) {\n return {\n ...field,\n required: true,\n }\n }\n return field\n })\n }\n\n if ('auth' in entity && entity.auth && !entity.auth?.disableLocalStrategy) {\n entity.fields.push({\n name: 'password',\n type: 'text',\n })\n }\n\n // Used for relationship fields, to determine whether to use a string or number type for the ID.\n const collectionIDFieldTypes = getCollectionIDFieldTypes({ config, defaultIDType })\n\n return {\n type: 'object',\n additionalProperties: false,\n title,\n ...fieldsToJSONSchema(collectionIDFieldTypes, entity.fields, interfaceNameDefinitions, config),\n }\n}\n\n/**\n * This is used for generating the TypeScript types (payload-types.ts) with the payload generate:types command.\n */\nexport function configToJSONSchema(\n config: SanitizedConfig,\n defaultIDType?: 'number' | 'text',\n): JSONSchema4 {\n // a mutable Map to store custom top-level `interfaceName` types. Fields with an `interfaceName` property will be moved to the top-level definitions here\n const interfaceNameDefinitions: Map<string, JSONSchema4> = new Map()\n\n // Collections and Globals have to be moved to the top-level definitions as well. Reason: The top-level type will be the `Config` type - we don't want all collection and global\n // types to be inlined inside the `Config` type\n const entityDefinitions: { [k: string]: JSONSchema4 } = [\n ...config.globals,\n ...config.collections,\n ].reduce((acc, entity) => {\n acc[entity.slug] = entityToJSONSchema(config, entity, interfaceNameDefinitions, defaultIDType)\n return acc\n }, {})\n\n return {\n additionalProperties: false,\n definitions: { ...entityDefinitions, ...Object.fromEntries(interfaceNameDefinitions) },\n // These properties here will be very simple, as all the complexity is in the definitions. These are just the properties for the top-level `Config` type\n type: 'object',\n properties: {\n collections: generateEntitySchemas(config.collections || []),\n globals: generateEntitySchemas(config.globals || []),\n },\n required: ['collections', 'globals'],\n title: 'Config',\n }\n}\n"],"names":["pluralize","singular","fieldAffectsData","tabHasName","deepCopyObject","toWords","getCollectionIDFieldTypes","fieldIsRequired","field","isConditional","Boolean","admin","condition","isMarkedRequired","required","type","fields","some","subField","tabs","tab","buildOptionEnums","options","map","option","value","generateEntitySchemas","entities","properties","reduce","acc","slug","$ref","additionalProperties","Object","keys","withNullableJSONSchemaType","fieldType","isRequired","fieldTypes","push","fieldsToJSONSchema","collectionIDFieldTypes","interfaceNameDefinitions","config","requiredFieldNames","Set","fromEntries","fieldSchemas","add","name","fieldSchema","hasMany","items","editor","outputSchema","enum","optionEnums","maxItems","minItems","Array","isArray","relationTo","oneOf","relation","const","blocks","block","blockFieldSchemas","blockSchema","blockType","interfaceName","set","childSchema","entries","forEach","propName","propSchema","Map","from","entityToJSONSchema","incomingEntity","defaultIDType","entity","title","typescript","interface","idField","customIdField","find","unshift","timestamps","auth","disableLocalStrategy","configToJSONSchema","entityDefinitions","globals","collections","definitions"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,eAAe,YAAW;AACjC,MAAM,EAAEC,QAAQ,EAAE,GAAGD;AAOrB,SAASE,gBAAgB,EAAEC,UAAU,QAAQ,4BAA2B;AACxE,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,OAAO,QAAQ,oBAAmB;AAC3C,SAASC,yBAAyB,QAAQ,iCAAgC;AAE1E,MAAMC,kBAAkB,CAACC;IACvB,MAAMC,gBAAgBC,QAAQF,OAAOG,SAASH,OAAOG,OAAOC;IAC5D,IAAIH,eAAe,OAAO;IAE1B,MAAMI,mBAAmB,cAAcL,SAASA,MAAMM,QAAQ,KAAK;IACnE,IAAIZ,iBAAiBM,UAAUK,kBAAkB,OAAO;IAExD,wDAAwD;IACxD,IAAI,YAAYL,SAASA,MAAMO,IAAI,KAAK,SAAS;QAC/C,OAAOP,MAAMQ,MAAM,CAACC,IAAI,CAAC,CAACC,WAAaX,gBAAgBW;IACzD;IAEA,oEAAoE;IACpE,IAAIV,MAAMO,IAAI,KAAK,QAAQ;QACzB,OAAOP,MAAMW,IAAI,CAACF,IAAI,CAAC,CAACG;YACtB,IAAI,UAAUA,KAAK;gBACjB,OAAOA,IAAIJ,MAAM,CAACC,IAAI,CAAC,CAACC,WAAaX,gBAAgBW;YACvD;YACA,OAAO;QACT;IACF;IAEA,OAAO;AACT;AAEA,SAASG,iBAAiBC,OAAiB;IACzC,OAAOA,QAAQC,GAAG,CAAC,CAACC;QAClB,IAAI,OAAOA,WAAW,YAAY,WAAWA,QAAQ;YACnD,OAAOA,OAAOC,KAAK;QACrB;QAEA,OAAOD;IACT;AACF;AAEA,SAASE,sBACPC,QAA+D;IAE/D,MAAMC,aAAa;WAAID;KAAS,CAACE,MAAM,CAAC,CAACC,KAAK,EAAEC,IAAI,EAAE;QACpDD,GAAG,CAACC,KAAK,GAAG;YACVC,MAAM,CAAC,cAAc,EAAED,KAAK,CAAC;QAC/B;QAEA,OAAOD;IACT,GAAG,CAAC;IAEJ,OAAO;QACLf,MAAM;QACNkB,sBAAsB;QACtBL;QACAd,UAAUoB,OAAOC,IAAI,CAACP;IACxB;AACF;AAEA;;CAEC,GACD,OAAO,SAASQ,2BACdC,SAA8B,EAC9BC,UAAmB;IAEnB,MAAMC,aAAa;QAACF;KAAU;IAC9B,IAAIC,YAAY,OAAOD;IACvBE,WAAWC,IAAI,CAAC;IAChB,OAAOD;AACT;AAEA,OAAO,SAASE,mBACd;;;;GAIC,GACDC,sBAA8D,EAC9D1B,MAAe,EACf;;GAEC,GACD2B,wBAAkD,EAClDC,MAAwB;IAOxB,MAAMC,qBAAqB,IAAIC;IAE/B,OAAO;QACLlB,YAAYM,OAAOa,WAAW,CAC5B/B,OAAOa,MAAM,CAAC,CAACmB,cAAcxC;YAC3B,MAAM8B,aAAapC,iBAAiBM,UAAUD,gBAAgBC;YAC9D,IAAI8B,YAAYO,mBAAmBI,GAAG,CAACzC,MAAM0C,IAAI;YAEjD,IAAIC;YACJ,OAAQ3C,MAAMO,IAAI;gBAChB,KAAK;oBACH,IAAIP,MAAM4C,OAAO,KAAK,MAAM;wBAC1BD,cAAc;4BACZpC,MAAMqB,2BAA2B,SAASE;4BAC1Ce,OAAO;gCAAEtC,MAAM;4BAAS;wBAC1B;oBACF,OAAO;wBACLoC,cAAc;4BAAEpC,MAAMqB,2BAA2B,UAAUE;wBAAY;oBACzE;oBACA;gBACF,KAAK;gBACL,KAAK;gBACL,KAAK;gBACL,KAAK;oBAAQ;wBACXa,cAAc;4BAAEpC,MAAMqB,2BAA2B,UAAUE;wBAAY;wBACvE;oBACF;gBAEA,KAAK;oBAAU;wBACb,IAAI9B,MAAM4C,OAAO,KAAK,MAAM;4BAC1BD,cAAc;gCACZpC,MAAMqB,2BAA2B,SAASE;gCAC1Ce,OAAO;oCAAEtC,MAAM;gCAAS;4BAC1B;wBACF,OAAO;4BACLoC,cAAc;gCAAEpC,MAAMqB,2BAA2B,UAAUE;4BAAY;wBACzE;wBACA;oBACF;gBAEA,KAAK;oBAAY;wBACfa,cAAc;4BAAEpC,MAAMqB,2BAA2B,WAAWE;wBAAY;wBACxE;oBACF;gBAEA,KAAK;oBAAQ;wBACXa,cAAc;4BACZpC,MAAM;gCAAC;gCAAU;gCAAS;gCAAU;gCAAU;gCAAW;6BAAO;wBAClE;wBACA;oBACF;gBAEA,KAAK;oBAAY;wBACf,IAAIP,MAAM8C,MAAM,CAACC,YAAY,EAAE;4BAC7BJ,cAAc3C,MAAM8C,MAAM,CAACC,YAAY,CAAC;gCACtCb;gCACAE;gCACApC;gCACAmC;gCACAL;4BACF;wBACF,OAAO;4BACL,mEAAmE;4BACnEa,cAAc;gCACZpC,MAAMqB,2BAA2B,SAASE;gCAC1Ce,OAAO;oCACLtC,MAAM;gCACR;4BACF;wBACF;wBAEA;oBACF;gBAEA,KAAK;oBAAS;wBACZoC,cAAc;4BACZpC,MAAMqB,2BAA2B,UAAUE;4BAC3CkB,MAAMnC,iBAAiBb,MAAMc,OAAO;wBACtC;wBAEA;oBACF;gBAEA,KAAK;oBAAU;wBACb,MAAMmC,cAAcpC,iBAAiBb,MAAMc,OAAO;wBAElD,IAAId,MAAM4C,OAAO,EAAE;4BACjBD,cAAc;gCACZpC,MAAMqB,2BAA2B,SAASE;gCAC1Ce,OAAO;oCACLtC,MAAM;oCACNyC,MAAMC;gCACR;4BACF;wBACF,OAAO;4BACLN,cAAc;gCACZpC,MAAMqB,2BAA2B,UAAUE;gCAC3CkB,MAAMC;4BACR;wBACF;wBAEA;oBACF;gBAEA,KAAK;oBAAS;wBACZN,cAAc;4BACZpC,MAAMqB,2BAA2B,SAASE;4BAC1Ce,OAAO;gCACL;oCACEtC,MAAM;gCACR;gCACA;oCACEA,MAAM;gCACR;6BACD;4BACD2C,UAAU;4BACVC,UAAU;wBACZ;wBACA;oBACF;gBAEA,KAAK;oBAAgB;wBACnB,IAAIC,MAAMC,OAAO,CAACrD,MAAMsD,UAAU,GAAG;4BACnC,IAAItD,MAAM4C,OAAO,EAAE;gCACjBD,cAAc;oCACZpC,MAAMqB,2BAA2B,SAASE;oCAC1Ce,OAAO;wCACLU,OAAOvD,MAAMsD,UAAU,CAACvC,GAAG,CAAC,CAACyC;4CAC3B,OAAO;gDACLjD,MAAM;gDACNkB,sBAAsB;gDACtBL,YAAY;oDACVkC,YAAY;wDACVG,OAAOD;oDACT;oDACAvC,OAAO;wDACLsC,OAAO;4DACL;gEACEhD,MAAM2B,sBAAsB,CAACsB,SAAS;4DACxC;4DACA;gEACEhC,MAAM,CAAC,cAAc,EAAEgC,SAAS,CAAC;4DACnC;yDACD;oDACH;gDACF;gDACAlD,UAAU;oDAAC;oDAAS;iDAAa;4CACnC;wCACF;oCACF;gCACF;4BACF,OAAO;gCACLqC,cAAc;oCACZY,OAAOvD,MAAMsD,UAAU,CAACvC,GAAG,CAAC,CAACyC;wCAC3B,OAAO;4CACLjD,MAAMqB,2BAA2B,UAAUE;4CAC3CL,sBAAsB;4CACtBL,YAAY;gDACVkC,YAAY;oDACVG,OAAOD;gDACT;gDACAvC,OAAO;oDACLsC,OAAO;wDACL;4DACEhD,MAAM2B,sBAAsB,CAACsB,SAAS;wDACxC;wDACA;4DACEhC,MAAM,CAAC,cAAc,EAAEgC,SAAS,CAAC;wDACnC;qDACD;gDACH;4CACF;4CACAlD,UAAU;gDAAC;gDAAS;6CAAa;wCACnC;oCACF;gCACF;4BACF;wBACF,OAAO,IAAIN,MAAM4C,OAAO,EAAE;4BACxBD,cAAc;gCACZpC,MAAMqB,2BAA2B,SAASE;gCAC1Ce,OAAO;oCACLU,OAAO;wCACL;4CACEhD,MAAM2B,sBAAsB,CAAClC,MAAMsD,UAAU,CAAC;wCAChD;wCACA;4CACE9B,MAAM,CAAC,cAAc,EAAExB,MAAMsD,UAAU,CAAC,CAAC;wCAC3C;qCACD;gCACH;4BACF;wBACF,OAAO;4BACLX,cAAc;gCACZY,OAAO;oCACL;wCACEhD,MAAMqB,2BACJM,sBAAsB,CAAClC,MAAMsD,UAAU,CAAC,EACxCxB;oCAEJ;oCACA;wCACEN,MAAM,CAAC,cAAc,EAAExB,MAAMsD,UAAU,CAAC,CAAC;oCAC3C;iCACD;4BACH;wBACF;wBAEA;oBACF;gBAEA,KAAK;oBAAU;wBACbX,cAAc;4BACZY,OAAO;gCACL;oCACEhD,MAAM2B,sBAAsB,CAAClC,MAAMsD,UAAU,CAAC;gCAChD;gCACA;oCACE9B,MAAM,CAAC,cAAc,EAAExB,MAAMsD,UAAU,CAAC,CAAC;gCAC3C;6BACD;wBACH;wBACA,IAAI,CAACxB,YAAYa,YAAYY,KAAK,CAACvB,IAAI,CAAC;4BAAEzB,MAAM;wBAAO;wBACvD;oBACF;gBAEA,KAAK;oBAAU;wBACboC,cAAc;4BACZpC,MAAMqB,2BAA2B,SAASE;4BAC1Ce,OAAO;gCACLU,OAAOvD,MAAM0D,MAAM,CAAC3C,GAAG,CAAC,CAAC4C;oCACvB,MAAMC,oBAAoB3B,mBACxBC,wBACAyB,MAAMnD,MAAM,EACZ2B,0BACAC;oCAGF,MAAMyB,cAA2B;wCAC/BtD,MAAM;wCACNkB,sBAAsB;wCACtBL,YAAY;4CACV,GAAGwC,kBAAkBxC,UAAU;4CAC/B0C,WAAW;gDACTL,OAAOE,MAAMpC,IAAI;4CACnB;wCACF;wCACAjB,UAAU;4CAAC;+CAAgBsD,kBAAkBtD,QAAQ;yCAAC;oCACxD;oCAEA,IAAIqD,MAAMI,aAAa,EAAE;wCACvB5B,yBAAyB6B,GAAG,CAACL,MAAMI,aAAa,EAAEF;wCAElD,OAAO;4CACLrC,MAAM,CAAC,cAAc,EAAEmC,MAAMI,aAAa,CAAC,CAAC;wCAC9C;oCACF;oCAEA,OAAOF;gCACT;4BACF;wBACF;wBACA;oBACF;gBAEA,KAAK;oBAAS;wBACZlB,cAAc;4BACZpC,MAAMqB,2BAA2B,SAASE;4BAC1Ce,OAAO;gCACLtC,MAAM;gCACNkB,sBAAsB;gCACtB,GAAGQ,mBACDC,wBACAlC,MAAMQ,MAAM,EACZ2B,0BACAC,OACD;4BACH;wBACF;wBAEA,IAAIpC,MAAM+D,aAAa,EAAE;4BACvB5B,yBAAyB6B,GAAG,CAAChE,MAAM+D,aAAa,EAAEpB;4BAElDA,cAAc;gCACZnB,MAAM,CAAC,cAAc,EAAExB,MAAM+D,aAAa,CAAC,CAAC;4BAC9C;wBACF;wBACA;oBACF;gBAEA,KAAK;gBACL,KAAK;oBAAe;wBAClB,MAAME,cAAchC,mBAClBC,wBACAlC,MAAMQ,MAAM,EACZ2B,0BACAC;wBAEFV,OAAOwC,OAAO,CAACD,YAAY7C,UAAU,EAAE+C,OAAO,CAAC,CAAC,CAACC,UAAUC,WAAW;4BACpE7B,aAAawB,GAAG,CAACI,UAAUC;wBAC7B;wBACAJ,YAAY3D,QAAQ,CAAC6D,OAAO,CAAC,CAACC;4BAC5B/B,mBAAmBI,GAAG,CAAC2B;wBACzB;wBACA;oBACF;gBAEA,KAAK;oBAAQ;wBACXpE,MAAMW,IAAI,CAACwD,OAAO,CAAC,CAACvD;4BAClB,MAAMqD,cAAchC,mBAClBC,wBACAtB,IAAIJ,MAAM,EACV2B,0BACAC;4BAEF,IAAIzC,WAAWiB,MAAM;gCACnB,uBAAuB;gCACvB4B,aAAawB,GAAG,CAACpD,IAAI8B,IAAI,EAAE;oCACzBnC,MAAM;oCACNkB,sBAAsB;oCACtB,GAAGwC,WAAW;gCAChB;gCACA5B,mBAAmBI,GAAG,CAAC7B,IAAI8B,IAAI;4BACjC,OAAO;gCACLhB,OAAOwC,OAAO,CAACD,YAAY7C,UAAU,EAAE+C,OAAO,CAAC,CAAC,CAACC,UAAUC,WAAW;oCACpE7B,aAAawB,GAAG,CAACI,UAAUC;gCAC7B;gCACAJ,YAAY3D,QAAQ,CAAC6D,OAAO,CAAC,CAACC;oCAC5B/B,mBAAmBI,GAAG,CAAC2B;gCACzB;4BACF;wBACF;wBACA;oBACF;gBAEA,KAAK;oBAAS;wBACZzB,cAAc;4BACZpC,MAAM;4BACNkB,sBAAsB;4BACtB,GAAGQ,mBACDC,wBACAlC,MAAMQ,MAAM,EACZ2B,0BACAC,OACD;wBACH;wBAEA,IAAIpC,MAAM+D,aAAa,EAAE;4BACvB5B,yBAAyB6B,GAAG,CAAChE,MAAM+D,aAAa,EAAEpB;4BAElDA,cAAc;gCACZnB,MAAM,CAAC,cAAc,EAAExB,MAAM+D,aAAa,CAAC,CAAC;4BAC9C;wBACF;wBACA;oBACF;gBAEA;oBAAS;wBACP;oBACF;YACF;YAEA,IAAIpB,eAAejD,iBAAiBM,QAAQ;gBAC1CwC,aAAawB,GAAG,CAAChE,MAAM0C,IAAI,EAAEC;YAC/B;YAEA,OAAOH;QACT,GAAG,IAAI8B;QAEThE,UAAU8C,MAAMmB,IAAI,CAAClC;IACvB;AACF;AAEA,oFAAoF;AACpF,OAAO,SAASmC,mBACdpC,MAAuB,EACvBqC,cAAiE,EACjEtC,wBAAkD,EAClDuC,aAAgC;IAEhC,MAAMC,SAA4D/E,eAAe6E;IACjF,MAAMG,QAAQD,OAAOE,UAAU,EAAEC,YAC7BH,OAAOE,UAAU,CAACC,SAAS,GAC3BrF,SAASI,QAAQ8E,OAAOpD,IAAI,EAAE;IAElC,MAAMwD,UAA8B;QAAErC,MAAM;QAAMnC,MAAMmE;QAAyBpE,UAAU;IAAK;IAChG,MAAM0E,gBAAgBL,OAAOnE,MAAM,CAACyE,IAAI,CACtC,CAACjF,QAAUN,iBAAiBM,UAAUA,MAAM0C,IAAI,KAAK;IAGvD,IAAIsC,iBAAiBA,cAAczE,IAAI,KAAK,WAAWyE,cAAczE,IAAI,KAAK,OAAO;QACnFyE,cAAc1E,QAAQ,GAAG;IAC3B,OAAO;QACLqE,OAAOnE,MAAM,CAAC0E,OAAO,CAACH;IACxB;IAEA,iCAAiC;IACjC,IAAI,gBAAgBJ,UAAUA,OAAOQ,UAAU,KAAK,OAAO;QACzDR,OAAOnE,MAAM,GAAGmE,OAAOnE,MAAM,CAACO,GAAG,CAAC,CAACf;YACjC,IAAIN,iBAAiBM,UAAWA,CAAAA,MAAM0C,IAAI,KAAK,eAAe1C,MAAM0C,IAAI,KAAK,WAAU,GAAI;gBACzF,OAAO;oBACL,GAAG1C,KAAK;oBACRM,UAAU;gBACZ;YACF;YACA,OAAON;QACT;IACF;IAEA,IAAI,UAAU2E,UAAUA,OAAOS,IAAI,IAAI,CAACT,OAAOS,IAAI,EAAEC,sBAAsB;QACzEV,OAAOnE,MAAM,CAACwB,IAAI,CAAC;YACjBU,MAAM;YACNnC,MAAM;QACR;IACF;IAEA,iGAAiG;IACjG,MAAM2B,yBAAyBpC,0BAA0B;QAAEsC;QAAQsC;IAAc;IAEjF,OAAO;QACLnE,MAAM;QACNkB,sBAAsB;QACtBmD;QACA,GAAG3C,mBAAmBC,wBAAwByC,OAAOnE,MAAM,EAAE2B,0BAA0BC,OAAO;IAChG;AACF;AAEA;;CAEC,GACD,OAAO,SAASkD,mBACdlD,MAAuB,EACvBsC,aAAiC;IAEjC,yJAAyJ;IACzJ,MAAMvC,2BAAqD,IAAImC;IAE/D,gLAAgL;IAChL,+CAA+C;IAC/C,MAAMiB,oBAAkD;WACnDnD,OAAOoD,OAAO;WACdpD,OAAOqD,WAAW;KACtB,CAACpE,MAAM,CAAC,CAACC,KAAKqD;QACbrD,GAAG,CAACqD,OAAOpD,IAAI,CAAC,GAAGiD,mBAAmBpC,QAAQuC,QAAQxC,0BAA0BuC;QAChF,OAAOpD;IACT,GAAG,CAAC;IAEJ,OAAO;QACLG,sBAAsB;QACtBiE,aAAa;YAAE,GAAGH,iBAAiB;YAAE,GAAG7D,OAAOa,WAAW,CAACJ,yBAAyB;QAAC;QACrF,wJAAwJ;QACxJ5B,MAAM;QACNa,YAAY;YACVqE,aAAavE,sBAAsBkB,OAAOqD,WAAW,IAAI,EAAE;YAC3DD,SAAStE,sBAAsBkB,OAAOoD,OAAO,IAAI,EAAE;QACrD;QACAlF,UAAU;YAAC;YAAe;SAAU;QACpCsE,OAAO;IACT;AACF"}
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
const _sanitize = require("../config/sanitize");
|
|
6
|
-
const _configToJSONSchema = require("./configToJSONSchema");
|
|
1
|
+
import { sanitizeConfig } from '../config/sanitize.js';
|
|
2
|
+
import { configToJSONSchema } from './configToJSONSchema.js';
|
|
7
3
|
describe('configToJSONSchema', ()=>{
|
|
8
4
|
it('should handle optional arrays with required fields', ()=>{
|
|
9
5
|
const config = {
|
|
@@ -27,8 +23,8 @@ describe('configToJSONSchema', ()=>{
|
|
|
27
23
|
}
|
|
28
24
|
]
|
|
29
25
|
};
|
|
30
|
-
const sanitizedConfig =
|
|
31
|
-
const schema =
|
|
26
|
+
const sanitizedConfig = sanitizeConfig(config);
|
|
27
|
+
const schema = configToJSONSchema(sanitizedConfig, 'text');
|
|
32
28
|
expect(schema?.definitions?.test).toStrictEqual({
|
|
33
29
|
additionalProperties: false,
|
|
34
30
|
properties: {
|
|
@@ -69,4 +65,4 @@ describe('configToJSONSchema', ()=>{
|
|
|
69
65
|
});
|
|
70
66
|
});
|
|
71
67
|
|
|
72
|
-
//# sourceMappingURL=
|
|
68
|
+
//# sourceMappingURL=configToJSONSchema.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/configToJSONSchema.spec.ts"],"sourcesContent":["import type { Config } from '../config/types.js'\n\nimport { sanitizeConfig } from '../config/sanitize.js'\nimport { configToJSONSchema } from './configToJSONSchema.js'\n\ndescribe('configToJSONSchema', () => {\n it('should handle optional arrays with required fields', () => {\n const config: Config = {\n collections: [\n {\n fields: [\n {\n name: 'someRequiredField',\n type: 'array',\n fields: [\n {\n name: 'someRequiredField',\n required: true,\n type: 'text',\n },\n ],\n },\n ],\n slug: 'test',\n timestamps: false,\n },\n ],\n }\n\n const sanitizedConfig = sanitizeConfig(config)\n const schema = configToJSONSchema(sanitizedConfig, 'text')\n\n expect(schema?.definitions?.test).toStrictEqual({\n additionalProperties: false,\n properties: {\n id: {\n type: 'string',\n },\n someRequiredField: {\n items: {\n additionalProperties: false,\n properties: {\n id: {\n type: ['string', 'null'],\n },\n someRequiredField: {\n type: 'string',\n },\n },\n required: ['someRequiredField'],\n type: 'object',\n },\n type: ['array', 'null'],\n },\n },\n required: ['id'],\n title: 'Test',\n type: 'object',\n })\n })\n})\n"],"names":["sanitizeConfig","configToJSONSchema","describe","it","config","collections","fields","name","type","required","slug","timestamps","sanitizedConfig","schema","expect","definitions","test","toStrictEqual","additionalProperties","properties","id","someRequiredField","items","title"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,cAAc,QAAQ,wBAAuB;AACtD,SAASC,kBAAkB,QAAQ,0BAAyB;AAE5DC,SAAS,sBAAsB;IAC7BC,GAAG,sDAAsD;QACvD,MAAMC,SAAiB;YACrBC,aAAa;gBACX;oBACEC,QAAQ;wBACN;4BACEC,MAAM;4BACNC,MAAM;4BACNF,QAAQ;gCACN;oCACEC,MAAM;oCACNE,UAAU;oCACVD,MAAM;gCACR;6BACD;wBACH;qBACD;oBACDE,MAAM;oBACNC,YAAY;gBACd;aACD;QACH;QAEA,MAAMC,kBAAkBZ,eAAeI;QACvC,MAAMS,SAASZ,mBAAmBW,iBAAiB;QAEnDE,OAAOD,QAAQE,aAAaC,MAAMC,aAAa,CAAC;YAC9CC,sBAAsB;YACtBC,YAAY;gBACVC,IAAI;oBACFZ,MAAM;gBACR;gBACAa,mBAAmB;oBACjBC,OAAO;wBACLJ,sBAAsB;wBACtBC,YAAY;4BACVC,IAAI;gCACFZ,MAAM;oCAAC;oCAAU;iCAAO;4BAC1B;4BACAa,mBAAmB;gCACjBb,MAAM;4BACR;wBACF;wBACAC,UAAU;4BAAC;yBAAoB;wBAC/BD,MAAM;oBACR;oBACAA,MAAM;wBAAC;wBAAS;qBAAO;gBACzB;YACF;YACAC,UAAU;gBAAC;aAAK;YAChBc,OAAO;YACPf,MAAM;QACR;IACF;AACF"}
|