payload 3.0.0-alpha.4 → 3.0.0-alpha.41
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/components.d.ts +14 -0
- package/components.js +71 -0
- package/config.d.ts +10 -10
- package/config.js +10 -59
- package/database.d.ts +22 -22
- package/database.js +21 -108
- package/dist/admin/RichText.d.ts +9 -5
- package/dist/admin/RichText.d.ts.map +1 -1
- package/dist/admin/RichText.js +2 -5
- package/dist/admin/elements/Cell.d.ts +2 -2
- package/dist/admin/elements/Cell.d.ts.map +1 -1
- package/dist/admin/elements/Cell.js +2 -5
- package/dist/admin/elements/DatePicker.js +2 -5
- package/dist/admin/elements/PreviewButton.js +2 -5
- package/dist/admin/elements/PublishButton.js +2 -5
- package/dist/admin/elements/SaveButton.js +2 -5
- package/dist/admin/elements/SaveDraftButton.js +2 -5
- 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/forms/Error.js +2 -5
- package/dist/admin/forms/FieldDescription.js +2 -5
- package/dist/admin/forms/FieldTypes.js +2 -5
- package/dist/admin/forms/Form.d.ts +22 -0
- package/dist/admin/forms/Form.d.ts.map +1 -1
- package/dist/admin/forms/Form.js +2 -5
- package/dist/admin/forms/Label.js +2 -5
- package/dist/admin/forms/RowLabel.d.ts +1 -1
- package/dist/admin/forms/RowLabel.d.ts.map +1 -1
- package/dist/admin/forms/RowLabel.js +2 -5
- package/dist/admin/types.d.ts +19 -18
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/admin/types.js +2 -5
- package/dist/admin/views/types.d.ts +41 -0
- package/dist/admin/views/types.d.ts.map +1 -0
- package/dist/admin/views/types.js +3 -0
- package/dist/assets/assets.d.js +0 -1
- 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/apiKey.d.ts +1 -1
- package/dist/auth/baseFields/apiKey.d.ts.map +1 -1
- package/dist/auth/baseFields/apiKey.js +6 -21
- 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 +6 -16
- 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 +8 -18
- package/dist/auth/cookies.d.ts +2 -2
- package/dist/auth/cookies.d.ts.map +1 -1
- package/dist/auth/cookies.js +6 -33
- package/dist/auth/crypto.js +7 -30
- 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/defaultUser.d.ts +1 -1
- package/dist/auth/defaultUser.d.ts.map +1 -1
- package/dist/auth/defaultUser.js +6 -16
- 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/extractJWT.d.ts +1 -1
- package/dist/auth/extractJWT.d.ts.map +1 -1
- package/dist/auth/extractJWT.js +4 -14
- package/dist/auth/getAccessResults.d.ts +2 -2
- package/dist/auth/getAccessResults.d.ts.map +1 -1
- package/dist/auth/getAccessResults.js +9 -19
- package/dist/auth/getAuthenticatedUser.d.ts +1 -1
- package/dist/auth/getAuthenticatedUser.d.ts.map +1 -1
- package/dist/auth/getAuthenticatedUser.js +2 -12
- 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/index.d.ts +3 -3
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +4 -27
- package/dist/auth/isLocked.js +2 -12
- 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/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/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/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/index.d.ts +5 -5
- package/dist/auth/operations/local/index.d.ts.map +1 -1
- package/dist/auth/operations/local/index.js +12 -27
- 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/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/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/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/login.d.ts +7 -7
- package/dist/auth/operations/login.d.ts.map +1 -1
- package/dist/auth/operations/login.js +32 -47
- 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/me.d.ts +3 -3
- package/dist/auth/operations/me.d.ts.map +1 -1
- package/dist/auth/operations/me.js +4 -19
- 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/registerFirstUser.d.ts +9 -9
- package/dist/auth/operations/registerFirstUser.d.ts.map +1 -1
- package/dist/auth/operations/registerFirstUser.js +11 -21
- 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/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/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/sendVerificationEmail.d.ts +5 -5
- package/dist/auth/sendVerificationEmail.d.ts.map +1 -1
- package/dist/auth/sendVerificationEmail.js +4 -14
- 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 +4 -19
- 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/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/generatePasswordSaltHash.js +7 -22
- 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 +2 -12
- 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 +6 -16
- 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 +2 -12
- package/dist/auth/types.d.ts +2 -2
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/auth/types.js +2 -12
- 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/index.d.ts +1 -1
- package/dist/bin/index.d.ts.map +1 -1
- package/dist/bin/index.js +25 -69
- package/dist/bin/loadEnv.js +13 -26
- 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/register/clientExtensions.d.ts +2 -0
- package/dist/bin/register/clientExtensions.d.ts.map +1 -0
- package/dist/bin/register/clientExtensions.js +13 -0
- package/dist/bin/register/index.d.ts +34 -0
- package/dist/bin/register/index.d.ts.map +1 -0
- package/dist/bin/register/index.js +95 -0
- package/dist/bin/register/read-default-tsconfig.d.ts +4 -0
- package/dist/bin/register/read-default-tsconfig.d.ts.map +1 -0
- package/dist/bin/register/read-default-tsconfig.js +92 -0
- package/dist/bin/register/register.d.ts +15 -0
- package/dist/bin/register/register.d.ts.map +1 -0
- package/dist/bin/register/register.js +92 -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/defaults.d.ts +5 -5
- package/dist/collections/config/defaults.js +9 -32
- 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 +34 -49
- package/dist/collections/config/schema.js +157 -172
- package/dist/collections/config/types.d.ts +13 -13
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js +2 -5
- 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/operations/create.d.ts +9 -9
- package/dist/collections/operations/create.d.ts.map +1 -1
- package/dist/collections/operations/create.js +38 -53
- package/dist/collections/operations/delete.d.ts +9 -10
- package/dist/collections/operations/delete.d.ts.map +1 -1
- package/dist/collections/operations/delete.js +27 -42
- 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/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/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/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/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/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/local/create.d.ts +4 -5
- package/dist/collections/operations/local/create.d.ts.map +1 -1
- package/dist/collections/operations/local/create.js +10 -25
- 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/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/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/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/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/index.d.ts +13 -13
- package/dist/collections/operations/local/index.d.ts.map +1 -1
- package/dist/collections/operations/local/index.js +20 -35
- 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/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/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/update.d.ts +7 -8
- package/dist/collections/operations/update.d.ts.map +1 -1
- package/dist/collections/operations/update.js +43 -58
- package/dist/collections/operations/updateByID.d.ts +9 -9
- package/dist/collections/operations/updateByID.d.ts.map +1 -1
- package/dist/collections/operations/updateByID.js +44 -59
- package/dist/collections/operations/utils.d.ts +12 -12
- package/dist/collections/operations/utils.d.ts.map +1 -1
- package/dist/collections/operations/utils.js +3 -12
- 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/createClientConfig.d.ts +1243 -3
- package/dist/config/createClientConfig.d.ts.map +1 -1
- package/dist/config/createClientConfig.js +107 -72
- package/dist/config/defaults.d.ts +1 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +4 -19
- 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/load.d.ts +2 -2
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +17 -30
- package/dist/config/sanitize.d.ts +1 -1
- package/dist/config/sanitize.d.ts.map +1 -1
- package/dist/config/sanitize.js +25 -40
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +116 -133
- package/dist/config/shared/adminViewSchema.js +9 -24
- package/dist/config/shared/componentSchema.js +21 -50
- package/dist/config/types.d.ts +28 -34
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +9 -21
- package/dist/config/validate.d.ts +1 -1
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +15 -71
- 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/createDatabaseAdapter.d.ts +1 -1
- package/dist/database/createDatabaseAdapter.d.ts.map +1 -1
- package/dist/database/createDatabaseAdapter.js +14 -24
- 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/getLocalizedPaths.d.ts +3 -3
- package/dist/database/getLocalizedPaths.d.ts.map +1 -1
- package/dist/database/getLocalizedPaths.js +7 -22
- 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/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/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/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/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/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/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/migrationTemplate.js +2 -12
- 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/readMigrationFiles.d.ts +2 -2
- package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
- package/dist/database/migrations/readMigrationFiles.js +17 -25
- 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/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/validateSearchParams.d.ts +5 -5
- package/dist/database/queryValidation/validateSearchParams.d.ts.map +1 -1
- package/dist/database/queryValidation/validateSearchParams.js +17 -25
- package/dist/database/types.d.ts +11 -9
- package/dist/database/types.d.ts.map +1 -1
- package/dist/database/types.js +2 -5
- 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/defaults.d.ts +1 -1
- package/dist/email/defaults.d.ts.map +1 -1
- package/dist/email/defaults.js +2 -12
- 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/sendEmail.js +2 -12
- package/dist/email/types.js +2 -5
- package/dist/errors/APIError.js +4 -19
- 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/DuplicateCollection.d.ts +1 -1
- package/dist/errors/DuplicateCollection.d.ts.map +1 -1
- package/dist/errors/DuplicateCollection.js +4 -19
- 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/DuplicateGlobal.d.ts +2 -2
- package/dist/errors/DuplicateGlobal.d.ts.map +1 -1
- package/dist/errors/DuplicateGlobal.js +4 -19
- 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/FileUploadError.d.ts +1 -1
- package/dist/errors/FileUploadError.d.ts.map +1 -1
- package/dist/errors/FileUploadError.js +7 -22
- 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/InvalidConfiguration.d.ts +1 -1
- package/dist/errors/InvalidConfiguration.d.ts.map +1 -1
- package/dist/errors/InvalidConfiguration.js +6 -21
- 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/InvalidFieldRelationship.d.ts +2 -2
- package/dist/errors/InvalidFieldRelationship.d.ts.map +1 -1
- package/dist/errors/InvalidFieldRelationship.js +4 -19
- 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/LockedAuth.d.ts +1 -1
- package/dist/errors/LockedAuth.d.ts.map +1 -1
- package/dist/errors/LockedAuth.js +7 -22
- 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/MissingFieldInputOptions.d.ts +2 -2
- package/dist/errors/MissingFieldInputOptions.d.ts.map +1 -1
- package/dist/errors/MissingFieldInputOptions.js +4 -19
- 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/MissingFile.d.ts +1 -1
- package/dist/errors/MissingFile.d.ts.map +1 -1
- package/dist/errors/MissingFile.js +7 -22
- 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/QueryError.d.ts +1 -1
- package/dist/errors/QueryError.d.ts.map +1 -1
- package/dist/errors/QueryError.js +6 -21
- 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/UnathorizedError.d.ts +1 -1
- package/dist/errors/UnathorizedError.d.ts.map +1 -1
- package/dist/errors/UnathorizedError.js +7 -22
- 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/index.d.ts +19 -19
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +20 -94
- 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/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/components/utilities.js +0 -1
- package/dist/exports/config.d.ts +10 -10
- package/dist/exports/config.d.ts.map +1 -1
- package/dist/exports/config.js +10 -59
- 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/errors.d.ts +1 -1
- package/dist/exports/errors.d.ts.map +1 -1
- package/dist/exports/errors.js +2 -68
- 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/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/operations.d.ts +28 -28
- package/dist/exports/operations.d.ts.map +1 -1
- package/dist/exports/operations.js +29 -125
- package/dist/exports/types.d.ts +11 -11
- package/dist/exports/types.d.ts.map +1 -1
- package/dist/exports/types.js +4 -74
- package/dist/exports/utilities.d.ts +28 -27
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +29 -141
- package/dist/exports/versions.d.ts +9 -9
- package/dist/exports/versions.d.ts.map +1 -1
- package/dist/exports/versions.js +9 -45
- package/dist/fields/baseFields/baseBlockFields.d.ts +1 -1
- package/dist/fields/baseFields/baseBlockFields.d.ts.map +1 -1
- package/dist/fields/baseFields/baseBlockFields.js +6 -16
- package/dist/fields/baseFields/baseIDField.d.ts +1 -1
- package/dist/fields/baseFields/baseIDField.d.ts.map +1 -1
- package/dist/fields/baseFields/baseIDField.js +7 -21
- package/dist/fields/config/sanitize.d.ts +2 -2
- package/dist/fields/config/sanitize.d.ts.map +1 -1
- package/dist/fields/config/sanitize.js +28 -43
- package/dist/fields/config/sanitize.spec.js +25 -29
- package/dist/fields/config/schema.js +336 -431
- package/dist/fields/config/types.d.ts +5 -6
- package/dist/fields/config/types.d.ts.map +1 -1
- package/dist/fields/config/types.js +15 -69
- package/dist/fields/getDefaultValue.d.ts +1 -1
- package/dist/fields/getDefaultValue.d.ts.map +1 -1
- package/dist/fields/getDefaultValue.js +2 -12
- package/dist/fields/hooks/afterChange/index.d.ts +3 -3
- package/dist/fields/hooks/afterChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/afterChange/index.js +6 -16
- 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/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/afterRead/index.d.ts +3 -3
- package/dist/fields/hooks/afterRead/index.d.ts.map +1 -1
- package/dist/fields/hooks/afterRead/index.js +6 -16
- 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/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/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/beforeChange/cloneDataFromOriginalDoc.js +2 -12
- package/dist/fields/hooks/beforeChange/getExistingRowDoc.js +2 -12
- package/dist/fields/hooks/beforeChange/index.d.ts +3 -4
- package/dist/fields/hooks/beforeChange/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/index.js +8 -18
- package/dist/fields/hooks/beforeChange/promise.d.ts +4 -5
- package/dist/fields/hooks/beforeChange/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/promise.js +26 -35
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts +4 -5
- package/dist/fields/hooks/beforeChange/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeChange/traverseFields.js +4 -14
- package/dist/fields/hooks/beforeValidate/index.d.ts +3 -3
- package/dist/fields/hooks/beforeValidate/index.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/index.js +6 -16
- 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/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/mergeBaseFields.d.ts +1 -1
- package/dist/fields/mergeBaseFields.d.ts.map +1 -1
- package/dist/fields/mergeBaseFields.js +8 -23
- package/dist/fields/sortableFieldTypes.js +2 -12
- package/dist/fields/validations.d.ts +6 -6
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +31 -97
- package/dist/fields/validations.spec.js +93 -87
- 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 +23 -34
- package/dist/globals/config/schema.js +55 -70
- package/dist/globals/config/types.d.ts +11 -11
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/globals/config/types.js +2 -5
- 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/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/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/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/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/findVersionByID.d.ts +3 -5
- package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
- package/dist/globals/operations/local/findVersionByID.js +9 -19
- 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/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/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/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/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/update.d.ts +9 -9
- package/dist/globals/operations/update.d.ts.map +1 -1
- package/dist/globals/operations/update.js +23 -38
- package/dist/index.d.ts +29 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -71
- package/dist/localization/middleware.js +2 -12
- package/dist/localization/sanitizeFallbackLocale.js +2 -12
- 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/operations/delete.d.ts +2 -2
- package/dist/preferences/operations/delete.d.ts.map +1 -1
- package/dist/preferences/operations/delete.js +10 -25
- 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 +2 -12
- 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/preferencesCollection.d.ts +2 -2
- package/dist/preferences/preferencesCollection.d.ts.map +1 -1
- package/dist/preferences/preferencesCollection.js +8 -18
- 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/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/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/types.d.ts +2 -2
- package/dist/preferences/types.d.ts.map +1 -1
- package/dist/preferences/types.js +2 -5
- package/dist/translations/extractTranslations.js +4 -14
- package/dist/translations/getLocalI18n.d.ts +1 -1
- package/dist/translations/getLocalI18n.d.ts.map +1 -1
- package/dist/translations/getLocalI18n.js +5 -15
- package/dist/types/constants.js +2 -12
- 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/uploads/canResizeImage.js +2 -12
- 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/deleteAssociatedFiles.d.ts +4 -4
- package/dist/uploads/deleteAssociatedFiles.d.ts.map +1 -1
- package/dist/uploads/deleteAssociatedFiles.js +11 -26
- 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/fileExists.js +4 -19
- package/dist/uploads/formatFilesize.js +2 -12
- 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/getBaseFields.d.ts +3 -3
- package/dist/uploads/getBaseFields.d.ts.map +1 -1
- package/dist/uploads/getBaseFields.js +6 -16
- 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/getFileByPath.d.ts +1 -1
- package/dist/uploads/getFileByPath.d.ts.map +1 -1
- package/dist/uploads/getFileByPath.js +11 -25
- package/dist/uploads/getImageSize.d.ts +3 -3
- package/dist/uploads/getImageSize.d.ts.map +1 -1
- package/dist/uploads/getImageSize.js +14 -22
- 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/imageResizer.d.ts +6 -5
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +29 -44
- package/dist/uploads/isImage.js +2 -12
- 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.spec.js +11 -15
- package/dist/uploads/saveBufferToFile.d.ts +1 -1
- package/dist/uploads/saveBufferToFile.js +6 -21
- package/dist/uploads/types.d.ts +8 -4
- package/dist/uploads/types.d.ts.map +1 -1
- package/dist/uploads/types.js +2 -5
- 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/uploadFiles.d.ts +3 -3
- package/dist/uploads/uploadFiles.d.ts.map +1 -1
- package/dist/uploads/uploadFiles.js +6 -21
- 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/combineMerge.js +4 -19
- 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/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.spec.js +5 -9
- package/dist/utilities/convertData.js +3 -23
- package/dist/utilities/createArrayFromCommaDelineated.js +2 -12
- package/dist/utilities/createLocalReq.d.ts +3 -3
- package/dist/utilities/createLocalReq.d.ts.map +1 -1
- package/dist/utilities/createLocalReq.js +7 -16
- package/dist/utilities/deepCopyObject.js +2 -12
- package/dist/utilities/deepMerge.js +2 -12
- package/dist/utilities/fieldSchemaToJSON.d.ts +2 -2
- package/dist/utilities/fieldSchemaToJSON.d.ts.map +1 -1
- package/dist/utilities/fieldSchemaToJSON.js +2 -12
- package/dist/utilities/flattenTopLevelFields.d.ts +1 -1
- package/dist/utilities/flattenTopLevelFields.d.ts.map +1 -1
- package/dist/utilities/flattenTopLevelFields.js +6 -16
- package/dist/utilities/formatLabels.d.ts +2 -1
- package/dist/utilities/formatLabels.d.ts.map +1 -1
- package/dist/utilities/formatLabels.js +10 -70
- package/dist/utilities/formatLabels.spec.js +8 -12
- package/dist/utilities/getCSSVariable.js +2 -12
- 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/getEntityPolicies.d.ts +4 -4
- package/dist/utilities/getEntityPolicies.d.ts.map +1 -1
- package/dist/utilities/getEntityPolicies.js +4 -14
- 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/getObjectDotNotation.js +2 -12
- package/dist/utilities/getUniqueListBy.js +2 -12
- 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/isEntityHidden.d.ts +2 -2
- package/dist/utilities/isEntityHidden.d.ts.map +1 -1
- package/dist/utilities/isEntityHidden.js +2 -12
- package/dist/utilities/isNumber.js +2 -12
- 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/isValidID.d.ts.map +1 -1
- package/dist/utilities/isValidID.js +6 -20
- package/dist/utilities/isolateObjectProperty.js +2 -12
- 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/logger.d.ts +6 -6
- package/dist/utilities/logger.d.ts.map +1 -1
- package/dist/utilities/logger.js +18 -37
- package/dist/utilities/mapAsync.js +2 -12
- package/dist/utilities/overwriteMerge.js +2 -12
- package/dist/utilities/parseCookies.js +4 -14
- package/dist/utilities/sanitizeInternalFields.js +2 -12
- package/dist/utilities/setsAreEqual.js +2 -12
- 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 +7 -17
- 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/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/oneWayHash.js +4 -14
- package/dist/utilities/timestamp.js +2 -12
- package/dist/utilities/toKebabCase.js +2 -12
- package/dist/utilities/wait.js +2 -12
- package/dist/utilities/wordBoundariesRegex.js +3 -13
- package/dist/versions/baseFields.d.ts +1 -1
- package/dist/versions/baseFields.d.ts.map +1 -1
- package/dist/versions/baseFields.js +7 -25
- 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/buildGlobalFields.d.ts +2 -2
- package/dist/versions/buildGlobalFields.d.ts.map +1 -1
- package/dist/versions/buildGlobalFields.js +12 -22
- 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/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/getQueryDraftsSort.js +2 -12
- 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 +12 -27
- package/dist/versions/enforceMaxVersions.d.ts +3 -3
- package/dist/versions/enforceMaxVersions.d.ts.map +1 -1
- package/dist/versions/enforceMaxVersions.js +2 -12
- package/dist/versions/getLatestCollectionVersion.d.ts +3 -3
- package/dist/versions/getLatestCollectionVersion.d.ts.map +1 -1
- package/dist/versions/getLatestCollectionVersion.js +4 -14
- package/dist/versions/getLatestGlobalVersion.d.ts +3 -3
- package/dist/versions/getLatestGlobalVersion.d.ts.map +1 -1
- package/dist/versions/getLatestGlobalVersion.js +5 -15
- package/dist/versions/getVersionsModelName.d.ts +2 -2
- package/dist/versions/getVersionsModelName.d.ts.map +1 -1
- package/dist/versions/getVersionsModelName.js +2 -12
- package/dist/versions/saveVersion.d.ts +4 -4
- package/dist/versions/saveVersion.d.ts.map +1 -1
- package/dist/versions/saveVersion.js +8 -23
- package/dist/versions/types.js +2 -5
- package/errors.d.ts +1 -1
- package/errors.js +2 -68
- package/graphql.d.ts +3 -0
- package/graphql.js +27 -0
- package/operations.d.ts +28 -28
- package/operations.js +29 -125
- package/package.json +10 -7
- package/types.d.ts +11 -11
- package/types.js +4 -74
- package/utilities.d.ts +28 -27
- package/utilities.js +29 -141
- package/versions.d.ts +9 -9
- package/versions.js +9 -45
- package/.eslintrc.js +0 -58
- 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/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
|
@@ -1,37 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* (format, trim, etc.) of each requested image size and return the result object.
|
|
8
|
-
* This only handles the image sizes. The transforms of the original image
|
|
9
|
-
* are handled in {@link ./generateFileData.ts}.
|
|
10
|
-
*
|
|
11
|
-
* The image will be resized according to the provided
|
|
12
|
-
* resize config. If no image sizes are requested, the resolved data will be empty.
|
|
13
|
-
* For every image that dos not need to be resized, an result object with `null`
|
|
14
|
-
* parameters will be returned.
|
|
15
|
-
*
|
|
16
|
-
* @param resizeConfig - the resize config
|
|
17
|
-
* @returns the result of the resize operation(s)
|
|
18
|
-
*/ "default", {
|
|
19
|
-
enumerable: true,
|
|
20
|
-
get: function() {
|
|
21
|
-
return resizeAndTransformImageSizes;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
const _filetype = require("file-type");
|
|
25
|
-
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
26
|
-
const _sanitizefilename = /*#__PURE__*/ _interop_require_default(require("sanitize-filename"));
|
|
27
|
-
const _sharp = /*#__PURE__*/ _interop_require_default(require("sharp"));
|
|
28
|
-
const _isNumber = require("../utilities/isNumber");
|
|
29
|
-
const _fileExists = /*#__PURE__*/ _interop_require_default(require("./fileExists"));
|
|
30
|
-
function _interop_require_default(obj) {
|
|
31
|
-
return obj && obj.__esModule ? obj : {
|
|
32
|
-
default: obj
|
|
33
|
-
};
|
|
34
|
-
}
|
|
1
|
+
import fileType from 'file-type';
|
|
2
|
+
const { fromBuffer } = fileType;
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import sanitize from 'sanitize-filename';
|
|
5
|
+
import { isNumber } from '../utilities/isNumber.js';
|
|
6
|
+
import fileExists from './fileExists.js';
|
|
35
7
|
/**
|
|
36
8
|
* Sanitize the image name and extract the extension from the source image
|
|
37
9
|
*
|
|
@@ -39,7 +11,7 @@ function _interop_require_default(obj) {
|
|
|
39
11
|
* @returns the sanitized name and extension
|
|
40
12
|
*/ const getSanitizedImageData = (sourceImage)=>{
|
|
41
13
|
const extension = sourceImage.split('.').pop();
|
|
42
|
-
const name = (
|
|
14
|
+
const name = sanitize(sourceImage.substring(0, sourceImage.lastIndexOf('.')) || sourceImage);
|
|
43
15
|
return {
|
|
44
16
|
name,
|
|
45
17
|
ext: extension
|
|
@@ -130,7 +102,7 @@ function _interop_require_default(obj) {
|
|
|
130
102
|
* @returns true if the image should passed directly to sharp
|
|
131
103
|
*/ const applyPayloadAdjustments = ({ fit, height, width, withoutEnlargement, withoutReduction }, original)=>{
|
|
132
104
|
if (fit === 'contain' || fit === 'inside') return false;
|
|
133
|
-
if (!
|
|
105
|
+
if (!isNumber(height) && !isNumber(width)) return false;
|
|
134
106
|
const targetAspectRatio = width / height;
|
|
135
107
|
const originalAspectRatio = original.width / original.height;
|
|
136
108
|
if (originalAspectRatio === targetAspectRatio) return false;
|
|
@@ -157,14 +129,27 @@ function _interop_require_default(obj) {
|
|
|
157
129
|
}
|
|
158
130
|
return resizeConfig;
|
|
159
131
|
};
|
|
160
|
-
|
|
132
|
+
/**
|
|
133
|
+
* For the provided image sizes, handle the resizing and the transforms
|
|
134
|
+
* (format, trim, etc.) of each requested image size and return the result object.
|
|
135
|
+
* This only handles the image sizes. The transforms of the original image
|
|
136
|
+
* are handled in {@link ./generateFileData.ts}.
|
|
137
|
+
*
|
|
138
|
+
* The image will be resized according to the provided
|
|
139
|
+
* resize config. If no image sizes are requested, the resolved data will be empty.
|
|
140
|
+
* For every image that dos not need to be resized, an result object with `null`
|
|
141
|
+
* parameters will be returned.
|
|
142
|
+
*
|
|
143
|
+
* @param resizeConfig - the resize config
|
|
144
|
+
* @returns the result of the resize operation(s)
|
|
145
|
+
*/ export default async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, sharp, staticPath }) {
|
|
161
146
|
const { imageSizes } = config.upload;
|
|
162
147
|
// Noting to resize here so return as early as possible
|
|
163
148
|
if (!imageSizes) return {
|
|
164
149
|
sizeData: {},
|
|
165
150
|
sizesToSave: []
|
|
166
151
|
};
|
|
167
|
-
const sharpBase = (
|
|
152
|
+
const sharpBase = sharp(file.tempFilePath || file.data).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
|
|
168
153
|
;
|
|
169
154
|
const results = await Promise.all(imageSizes.map(async (imageResizeConfig)=>{
|
|
170
155
|
imageResizeConfig = sanitizeResizeConfig(imageResizeConfig);
|
|
@@ -191,8 +176,8 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
|
|
|
191
176
|
});
|
|
192
177
|
// Focal point adjustments
|
|
193
178
|
const focalPoint = {
|
|
194
|
-
x:
|
|
195
|
-
y:
|
|
179
|
+
x: isNumber(req.query.uploadEdits.focalPoint?.x) ? req.query.uploadEdits.focalPoint.x : 50,
|
|
180
|
+
y: isNumber(req.query.uploadEdits.focalPoint?.y) ? req.query.uploadEdits.focalPoint.y : 50
|
|
196
181
|
};
|
|
197
182
|
const safeResizeWidth = resizeWidth ?? scaledImageInfo.width;
|
|
198
183
|
const maxOffsetX = scaledImageInfo.width - safeResizeWidth;
|
|
@@ -223,12 +208,12 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
|
|
|
223
208
|
});
|
|
224
209
|
const sanitizedImage = getSanitizedImageData(savedFilename);
|
|
225
210
|
req.payloadUploadSizes[imageResizeConfig.name] = bufferData;
|
|
226
|
-
const mimeInfo = await
|
|
211
|
+
const mimeInfo = await fromBuffer(bufferData);
|
|
227
212
|
const imageNameWithDimensions = createImageName(sanitizedImage.name, bufferInfo, mimeInfo?.ext || sanitizedImage.ext);
|
|
228
213
|
const imagePath = `${staticPath}/${imageNameWithDimensions}`;
|
|
229
|
-
if (await (
|
|
214
|
+
if (await fileExists(imagePath)) {
|
|
230
215
|
try {
|
|
231
|
-
|
|
216
|
+
fs.unlinkSync(imagePath);
|
|
232
217
|
} catch {
|
|
233
218
|
// Ignore unlink errors
|
|
234
219
|
}
|
|
@@ -251,4 +236,4 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
|
|
|
251
236
|
});
|
|
252
237
|
}
|
|
253
238
|
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE91dHB1dEluZm8gfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBVcGxvYWRFZGl0cyB9IGZyb20gJy4uL2V4cG9ydHMvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEN1c3RvbVBheWxvYWRSZXF1ZXN0LCBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWxlU2l6ZSwgRmlsZVNpemVzLCBGaWxlVG9TYXZlLCBJbWFnZVNpemUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2lzTnVtYmVyJ1xuaW1wb3J0IGZpbGVFeGlzdHMgZnJvbSAnLi9maWxlRXhpc3RzJ1xuXG50eXBlIFJlc2l6ZUFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemVcbiAgZmlsZTogQ3VzdG9tUGF5bG9hZFJlcXVlc3RbJ2ZpbGUnXVxuICBtaW1lVHlwZTogc3RyaW5nXG4gIHJlcTogUGF5bG9hZFJlcXVlc3QgJiB7XG4gICAgcXVlcnk/OiB7XG4gICAgICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG4gICAgfVxuICB9XG4gIHNhdmVkRmlsZW5hbWU6IHN0cmluZ1xuICBzdGF0aWNQYXRoOiBzdHJpbmdcbn1cblxuLyoqIFJlc3VsdCBmcm9tIHJlc2l6aW5nIGFuZCB0cmFuc2Zvcm1pbmcgdGhlIHJlcXVlc3RlZCBpbWFnZSBzaXplcyAqL1xudHlwZSBJbWFnZVNpemVzUmVzdWx0ID0ge1xuICBzaXplRGF0YTogRmlsZVNpemVzXG4gIHNpemVzVG9TYXZlOiBGaWxlVG9TYXZlW11cbn1cblxudHlwZSBTYW5pdGl6ZWRJbWFnZURhdGEgPSB7XG4gIGV4dDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xufVxuXG4vKipcbiAqIFNhbml0aXplIHRoZSBpbWFnZSBuYW1lIGFuZCBleHRyYWN0IHRoZSBleHRlbnNpb24gZnJvbSB0aGUgc291cmNlIGltYWdlXG4gKlxuICogQHBhcmFtIHNvdXJjZUltYWdlIC0gdGhlIHNvdXJjZSBpbWFnZVxuICogQHJldHVybnMgdGhlIHNhbml0aXplZCBuYW1lIGFuZCBleHRlbnNpb25cbiAqL1xuY29uc3QgZ2V0U2FuaXRpemVkSW1hZ2VEYXRhID0gKHNvdXJjZUltYWdlOiBzdHJpbmcpOiBTYW5pdGl6ZWRJbWFnZURhdGEgPT4ge1xuICBjb25zdCBleHRlbnNpb24gPSBzb3VyY2VJbWFnZS5zcGxpdCgnLicpLnBvcCgpXG4gIGNvbnN0IG5hbWUgPSBzYW5pdGl6ZShzb3VyY2VJbWFnZS5zdWJzdHJpbmcoMCwgc291cmNlSW1hZ2UubGFzdEluZGV4T2YoJy4nKSkgfHwgc291cmNlSW1hZ2UpXG4gIHJldHVybiB7IG5hbWUsIGV4dDogZXh0ZW5zaW9uIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgaW1hZ2UgbmFtZSBiYXNlZCBvbiB0aGUgb3V0cHV0IGltYWdlIG5hbWUsIHRoZSBkaW1lbnNpb25zIGFuZFxuICogdGhlIGV4dGVuc2lvbi5cbiAqXG4gKiBJZ25vcmUgdGhlIGZhY3QgdGhhdCBkdXBsaWNhdGUgbmFtZXMgY291bGQgaGFwcGVuIGlmIHRoZSB0aGVyZSBpcyBvbmVcbiAqIHNpemUgd2l0aCBgd2lkdGggQU5EIGhlaWdodGAgYW5kIG9uZSB3aXRoIG9ubHkgYGhlaWdodCBPUiB3aWR0aGAuIEJlY2F1c2VcbiAqIHNwYWNlIGlzIGV4cGVuc2l2ZSwgd2Ugd2lsbCByZXVzZSB0aGUgc2FtZSBpbWFnZSBmb3IgYm90aCBzaXplcy5cbiAqXG4gKiBAcGFyYW0gb3V0cHV0SW1hZ2VOYW1lIC0gdGhlIHNhbml0aXplZCBpbWFnZSBuYW1lXG4gKiBAcGFyYW0gYnVmZmVySW5mbyAtIHRoZSBidWZmZXIgaW5mb1xuICogQHBhcmFtIGV4dGVuc2lvbiAtIHRoZSBleHRlbnNpb24gdG8gdXNlXG4gKiBAcmV0dXJucyB0aGUgbmV3IGltYWdlIG5hbWUgdGhhdCBpcyBub3QgdGFrZW5cbiAqL1xuY29uc3QgY3JlYXRlSW1hZ2VOYW1lID0gKFxuICBvdXRwdXRJbWFnZU5hbWU6IHN0cmluZyxcbiAgeyBoZWlnaHQsIHdpZHRoIH06IE91dHB1dEluZm8sXG4gIGV4dGVuc2lvbjogc3RyaW5nLFxuKSA9PiBgJHtvdXRwdXRJbWFnZU5hbWV9LSR7d2lkdGh9eCR7aGVpZ2h0fS4ke2V4dGVuc2lvbn1gXG5cbi8qKlxuICogQ3JlYXRlIHRoZSByZXN1bHQgb2JqZWN0IGZvciB0aGUgaW1hZ2UgcmVzaXplIG9wZXJhdGlvbiBiYXNlZCBvbiB0aGVcbiAqIHByb3ZpZGVkIHBhcmFtZXRlcnMuIElmIHRoZSBuYW1lIGlzIG5vdCBwcm92aWRlZCwgYW4gZW1wdHkgcmVzdWx0IG9iamVjdFxuICogaXMgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlbmFtZSAtIHRoZSBmaWxlbmFtZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSB3aWR0aCAtIHRoZSB3aWR0aCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBoZWlnaHQgLSB0aGUgaGVpZ2h0IG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGZpbGVzaXplIC0gdGhlIGZpbGVzaXplIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIG1pbWVUeXBlIC0gdGhlIG1pbWUgdHlwZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBzaXplc1RvU2F2ZSAtIHRoZSBzaXplcyB0byBzYXZlXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdFxuICovXG5jb25zdCBjcmVhdGVSZXN1bHQgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgZmlsZW5hbWU6IEZpbGVTaXplWydmaWxlbmFtZSddID0gbnVsbCxcbiAgd2lkdGg6IEZpbGVTaXplWyd3aWR0aCddID0gbnVsbCxcbiAgaGVpZ2h0OiBGaWxlU2l6ZVsnaGVpZ2h0J10gPSBudWxsLFxuICBmaWxlc2l6ZTogRmlsZVNpemVbJ2ZpbGVzaXplJ10gPSBudWxsLFxuICBtaW1lVHlwZTogRmlsZVNpemVbJ21pbWVUeXBlJ10gPSBudWxsLFxuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdID0gW10sXG4pOiBJbWFnZVNpemVzUmVzdWx0ID0+ICh7XG4gIHNpemVEYXRhOiB7XG4gICAgW25hbWVdOiB7XG4gICAgICBmaWxlbmFtZSxcbiAgICAgIGZpbGVzaXplLFxuICAgICAgaGVpZ2h0LFxuICAgICAgbWltZVR5cGUsXG4gICAgICB3aWR0aCxcbiAgICB9LFxuICB9LFxuICBzaXplc1RvU2F2ZSxcbn0pXG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGltYWdlIG5lZWRzIHRvIGJlIHJlc2l6ZWQgYWNjb3JkaW5nIHRvIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9uc1xuICogYW5kIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplLiBJZiB0aGUgcmVzaXplIG9wdGlvbnMgd2l0aG91dEVubGFyZ2VtZW50IG9yIHdpdGhvdXRSZWR1Y3Rpb24gYXJlIHByb3ZpZGVkLFxuICogdGhlIGltYWdlIHdpbGwgYmUgcmVzaXplZCByZWdhcmRsZXNzIG9mIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucywgZ2l2ZW4gdGhhdCB0aGVcbiAqIHdpZHRoIG9yIGhlaWdodCB0byBiZSByZXNpemVkIGlzIHByb3ZpZGVkLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMgYW5kIHJlc2l6ZSBvcHRpb25zXG4gKiBAcGFyYW0gb3JpZ2luYWwgLSB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZVxuICogQHJldHVybnMgdHJ1ZSBpZiByZXNpemluZyBpcyBub3QgbmVlZGVkLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuY29uc3QgcHJldmVudFJlc2l6ZSA9IChcbiAgeyBoZWlnaHQ6IGRlc2lyZWRIZWlnaHQsIHdpZHRoOiBkZXNpcmVkV2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pOiBib29sZWFuID0+IHtcbiAgLy8gZGVmYXVsdCBpcyB0byBhbGxvdyByZWR1Y3Rpb25cbiAgaWYgKHdpdGhvdXRSZWR1Y3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIC8vIGRlZmF1bHQgaXMgdG8gcHJldmVudCBlbmxhcmdlbWVudFxuICBpZiAod2l0aG91dEVubGFyZ2VtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkID0gIWRlc2lyZWRIZWlnaHQgfHwgIWRlc2lyZWRXaWR0aFxuICBpZiAoaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCkge1xuICAgIC8vIElmIHdpZHRoIGFuZCBoZWlnaHQgYXJlIG5vdCBkZWZpbmVkLCBpdCBtZWFucyB0aGVyZSBpcyBhIGZvcm1hdCBjb252ZXJzaW9uXG4gICAgLy8gYW5kIHRoZSBpbWFnZSBuZWVkcyB0byBiZSBcInJlc2l6ZWRcIiAodHJhbnNmb3JtZWQpLlxuICAgIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudFdpZHRoID0gZGVzaXJlZFdpZHRoID4gb3JpZ2luYWwud2lkdGhcbiAgY29uc3QgaGFzSW5zdWZmaWNpZW50SGVpZ2h0ID0gZGVzaXJlZEhlaWdodCA+IG9yaWdpbmFsLmhlaWdodFxuICBpZiAoaGFzSW5zdWZmaWNpZW50V2lkdGggJiYgaGFzSW5zdWZmaWNpZW50SGVpZ2h0KSB7XG4gICAgLy8gZG9lc24ndCBuZWVkIHJlc2l6ZSAtIHByZXZlbnQgZW5sYXJnZW1lbnQuIFRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUgaW5zdWZmaWNpZW50LlxuICAgIC8vIGlmIG9ubHkgb25lIGRpbWVuc2lvbiBpcyBpbnN1ZmZpY2llbnQgYW5kIHRoZSBvdGhlciBpcyBzdWZmaWNpZW50LCByZXNpemluZyBuZWVkcyB0byBoYXBwZW4sIGFzIHRoZSBpbWFnZVxuICAgIC8vIHNob3VsZCBiZSByZXNpemVkIHRvIHRoZSBzdWZmaWNpZW50IGRpbWVuc2lvbi5cbiAgICByZXR1cm4gdHJ1ZSAvLyBkbyBub3QgY3JlYXRlIGEgbmV3IHNpemVcbiAgfVxuXG4gIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgaW1hZ2Ugc2hvdWxkIGJlIHBhc3NlZCBkaXJlY3RseSB0byBzaGFycCB3aXRob3V0IHBheWxvYWQgYWRqdXN0aW5nIHByb3BlcnRpZXMuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucyBhbmQgcmVzaXplIG9wdGlvbnNcbiAqIEBwYXJhbSBvcmlnaW5hbCAtIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBpbWFnZSBzaG91bGQgcGFzc2VkIGRpcmVjdGx5IHRvIHNoYXJwXG4gKi9cbmNvbnN0IGFwcGx5UGF5bG9hZEFkanVzdG1lbnRzID0gKFxuICB7IGZpdCwgaGVpZ2h0LCB3aWR0aCwgd2l0aG91dEVubGFyZ2VtZW50LCB3aXRob3V0UmVkdWN0aW9uIH06IEltYWdlU2l6ZSxcbiAgb3JpZ2luYWw6IFByb2JlZEltYWdlU2l6ZSxcbikgPT4ge1xuICBpZiAoZml0ID09PSAnY29udGFpbicgfHwgZml0ID09PSAnaW5zaWRlJykgcmV0dXJuIGZhbHNlXG4gIGlmICghaXNOdW1iZXIoaGVpZ2h0KSAmJiAhaXNOdW1iZXIod2lkdGgpKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCB0YXJnZXRBc3BlY3RSYXRpbyA9IHdpZHRoIC8gaGVpZ2h0XG4gIGNvbnN0IG9yaWdpbmFsQXNwZWN0UmF0aW8gPSBvcmlnaW5hbC53aWR0aCAvIG9yaWdpbmFsLmhlaWdodFxuICBpZiAob3JpZ2luYWxBc3BlY3RSYXRpbyA9PT0gdGFyZ2V0QXNwZWN0UmF0aW8pIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IHNraXBFbmxhcmdlbWVudCA9IHdpdGhvdXRFbmxhcmdlbWVudCAmJiAob3JpZ2luYWwuaGVpZ2h0IDwgaGVpZ2h0IHx8IG9yaWdpbmFsLndpZHRoIDwgd2lkdGgpXG4gIGNvbnN0IHNraXBSZWR1Y3Rpb24gPSB3aXRob3V0UmVkdWN0aW9uICYmIChvcmlnaW5hbC5oZWlnaHQgPiBoZWlnaHQgfHwgb3JpZ2luYWwud2lkdGggPiB3aWR0aClcbiAgaWYgKHNraXBFbmxhcmdlbWVudCB8fCBza2lwUmVkdWN0aW9uKSByZXR1cm4gZmFsc2VcblxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIFNhbml0aXplIHRoZSByZXNpemUgY29uZmlnLiBJZiB0aGUgcmVzaXplIGNvbmZpZyBoYXMgdGhlIGB3aXRob3V0UmVkdWN0aW9uYFxuICogcHJvcGVydHkgc2V0IHRvIHRydWUsIHRoZSBgZml0YCBhbmQgYHBvc2l0aW9uYCBwcm9wZXJ0aWVzIHdpbGwgYmUgc2V0IHRvIGBjb250YWluYFxuICogYW5kIGB0b3AgbGVmdGAgcmVzcGVjdGl2ZWx5LlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSB0aGUgcmVzaXplIGNvbmZpZ1xuICogQHJldHVybnMgYSBzYW5pdGl6ZWQgcmVzaXplIGNvbmZpZ1xuICovXG5jb25zdCBzYW5pdGl6ZVJlc2l6ZUNvbmZpZyA9IChyZXNpemVDb25maWc6IEltYWdlU2l6ZSk6IEltYWdlU2l6ZSA9PiB7XG4gIGlmIChyZXNpemVDb25maWcud2l0aG91dFJlZHVjdGlvbikge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXNpemVDb25maWcsXG4gICAgICAvLyBXaHkgZml0IGBjb250YWluYCBzaG91bGQgYWxzbyBiZSBzZXQgdG8gaHR0cHM6Ly9naXRodWIuY29tL2xvdmVsbC9zaGFycC9pc3N1ZXMvMzU5NVxuICAgICAgZml0OiByZXNpemVDb25maWc/LmZpdCB8fCAnY29udGFpbicsXG4gICAgICBwb3NpdGlvbjogcmVzaXplQ29uZmlnPy5wb3NpdGlvbiB8fCAnbGVmdCB0b3AnLFxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzaXplQ29uZmlnXG59XG5cbi8qKlxuICogRm9yIHRoZSBwcm92aWRlZCBpbWFnZSBzaXplcywgaGFuZGxlIHRoZSByZXNpemluZyBhbmQgdGhlIHRyYW5zZm9ybXNcbiAqIChmb3JtYXQsIHRyaW0sIGV0Yy4pIG9mIGVhY2ggcmVxdWVzdGVkIGltYWdlIHNpemUgYW5kIHJldHVybiB0aGUgcmVzdWx0IG9iamVjdC5cbiAqIFRoaXMgb25seSBoYW5kbGVzIHRoZSBpbWFnZSBzaXplcy4gVGhlIHRyYW5zZm9ybXMgb2YgdGhlIG9yaWdpbmFsIGltYWdlXG4gKiBhcmUgaGFuZGxlZCBpbiB7QGxpbmsgLi9nZW5lcmF0ZUZpbGVEYXRhLnRzfS5cbiAqXG4gKiBUaGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWRcbiAqIHJlc2l6ZSBjb25maWcuIElmIG5vIGltYWdlIHNpemVzIGFyZSByZXF1ZXN0ZWQsIHRoZSByZXNvbHZlZCBkYXRhIHdpbGwgYmUgZW1wdHkuXG4gKiBGb3IgZXZlcnkgaW1hZ2UgdGhhdCBkb3Mgbm90IG5lZWQgdG8gYmUgcmVzaXplZCwgYW4gcmVzdWx0IG9iamVjdCB3aXRoIGBudWxsYFxuICogcGFyYW1ldGVycyB3aWxsIGJlIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSB0aGUgcmVzaXplIGNvbmZpZ1xuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgcmVzaXplIG9wZXJhdGlvbihzKVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzKHtcbiAgY29uZmlnLFxuICBkaW1lbnNpb25zLFxuICBmaWxlLFxuICBtaW1lVHlwZSxcbiAgcmVxLFxuICBzYXZlZEZpbGVuYW1lLFxuICBzdGF0aWNQYXRoLFxufTogUmVzaXplQXJncyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4ge1xuICBjb25zdCB7IGltYWdlU2l6ZXMgfSA9IGNvbmZpZy51cGxvYWRcbiAgLy8gTm90aW5nIHRvIHJlc2l6ZSBoZXJlIHNvIHJldHVybiBhcyBlYXJseSBhcyBwb3NzaWJsZVxuICBpZiAoIWltYWdlU2l6ZXMpIHJldHVybiB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH1cblxuICBjb25zdCBzaGFycEJhc2UgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuXG4gIGNvbnN0IHJlc3VsdHM6IEltYWdlU2l6ZXNSZXN1bHRbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGltYWdlU2l6ZXMubWFwKGFzeW5jIChpbWFnZVJlc2l6ZUNvbmZpZyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4gPT4ge1xuICAgICAgaW1hZ2VSZXNpemVDb25maWcgPSBzYW5pdGl6ZVJlc2l6ZUNvbmZpZyhpbWFnZVJlc2l6ZUNvbmZpZylcblxuICAgICAgLy8gVGhpcyBjaGVja3MgaWYgYSByZXNpemUgc2hvdWxkIGhhcHBlbi4gSWYgbm90LCB0aGUgcmVzaXplZCBpbWFnZSB3aWxsIGJlXG4gICAgICAvLyBza2lwcGVkIENPTVBMRVRFTFkgYW5kIHRodXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyBpbWFnZXMuXG4gICAgICAvLyBBbGwgZnVydGhlciBmb3JtYXQvdHJpbSBvcHRpb25zIHdpbGwgdGh1cyBiZSBza2lwcGVkIGFzIHdlbGwuXG4gICAgICBpZiAocHJldmVudFJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZywgZGltZW5zaW9ucykpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdChpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBpbWFnZVRvUmVzaXplID0gc2hhcnBCYXNlLmNsb25lKClcbiAgICAgIGxldCByZXNpemVkID0gaW1hZ2VUb1Jlc2l6ZVxuXG4gICAgICBpZiAoXG4gICAgICAgIHJlcS5xdWVyeT8udXBsb2FkRWRpdHM/LmZvY2FsUG9pbnQgJiZcbiAgICAgICAgYXBwbHlQYXlsb2FkQWRqdXN0bWVudHMoaW1hZ2VSZXNpemVDb25maWcsIGRpbWVuc2lvbnMpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQ6IHJlc2l6ZUhlaWdodCwgd2lkdGg6IHJlc2l6ZVdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuICAgICAgICBjb25zdCByZXNpemVBc3BlY3RSYXRpbyA9IHJlc2l6ZVdpZHRoIC8gcmVzaXplSGVpZ2h0XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsQXNwZWN0UmF0aW8gPSBkaW1lbnNpb25zLndpZHRoIC8gZGltZW5zaW9ucy5oZWlnaHRcbiAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IHJlc2l6ZUFzcGVjdFJhdGlvIDwgb3JpZ2luYWxBc3BlY3RSYXRpb1xuXG4gICAgICAgIC8vIFNjYWxlIHRoZSBpbWFnZSB1cCBvciBkb3duIHRvIGZpdCB0aGUgcmVzaXplIGRpbWVuc2lvbnNcbiAgICAgICAgY29uc3Qgc2NhbGVkSW1hZ2UgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZSh7XG4gICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gcmVzaXplSGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICB3aWR0aDogcHJpb3JpdGl6ZUhlaWdodCA/IG51bGwgOiByZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgeyBpbmZvOiBzY2FsZWRJbWFnZUluZm8gfSA9IGF3YWl0IHNjYWxlZEltYWdlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICAvLyBGb2NhbCBwb2ludCBhZGp1c3RtZW50c1xuICAgICAgICBjb25zdCBmb2NhbFBvaW50ID0ge1xuICAgICAgICAgIHg6IGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py54KVxuICAgICAgICAgICAgPyByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC54XG4gICAgICAgICAgICA6IDUwLFxuICAgICAgICAgIHk6IGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py55KVxuICAgICAgICAgICAgPyByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC55XG4gICAgICAgICAgICA6IDUwLFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZVdpZHRoID0gcmVzaXplV2lkdGggPz8gc2NhbGVkSW1hZ2VJbmZvLndpZHRoXG4gICAgICAgIGNvbnN0IG1heE9mZnNldFggPSBzY2FsZWRJbWFnZUluZm8ud2lkdGggLSBzYWZlUmVzaXplV2lkdGhcbiAgICAgICAgY29uc3QgbGVmdEZvY2FsRWRnZSA9IE1hdGgucm91bmQoXG4gICAgICAgICAgc2NhbGVkSW1hZ2VJbmZvLndpZHRoICogKGZvY2FsUG9pbnQueCAvIDEwMCkgLSBzYWZlUmVzaXplV2lkdGggLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRYID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgbGVmdEZvY2FsRWRnZSksIG1heE9mZnNldFgpXG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZUhlaWdodCA9IHJlc2l6ZUhlaWdodCA/PyBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0XG4gICAgICAgIGNvbnN0IG1heE9mZnNldFkgPSBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0IC0gc2FmZVJlc2l6ZUhlaWdodFxuICAgICAgICBjb25zdCB0b3BGb2NhbEVkZ2UgPSBNYXRoLnJvdW5kKFxuICAgICAgICAgIHNjYWxlZEltYWdlSW5mby5oZWlnaHQgKiAoZm9jYWxQb2ludC55IC8gMTAwKSAtIHNhZmVSZXNpemVIZWlnaHQgLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRZID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgdG9wRm9jYWxFZGdlKSwgbWF4T2Zmc2V0WSlcblxuICAgICAgICAvLyBleHRyYWN0IHRoZSBmb2NhbCBhcmVhIGZyb20gdGhlIHNjYWxlZCBpbWFnZVxuICAgICAgICByZXNpemVkID0gc2NhbGVkSW1hZ2UuZXh0cmFjdCh7XG4gICAgICAgICAgaGVpZ2h0OiBzYWZlUmVzaXplSGVpZ2h0LFxuICAgICAgICAgIGxlZnQ6IHNhZmVPZmZzZXRYLFxuICAgICAgICAgIHRvcDogc2FmZU9mZnNldFksXG4gICAgICAgICAgd2lkdGg6IHNhZmVSZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2l6ZWQgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudG9Gb3JtYXQoXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5mb3JtYXQsXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5vcHRpb25zLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50cmltKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGRhdGE6IGJ1ZmZlckRhdGEsIGluZm86IGJ1ZmZlckluZm8gfSA9IGF3YWl0IHJlc2l6ZWQudG9CdWZmZXIoe1xuICAgICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHNhbml0aXplZEltYWdlID0gZ2V0U2FuaXRpemVkSW1hZ2VEYXRhKHNhdmVkRmlsZW5hbWUpXG5cbiAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXNbaW1hZ2VSZXNpemVDb25maWcubmFtZV0gPSBidWZmZXJEYXRhXG5cbiAgICAgIGNvbnN0IG1pbWVJbmZvID0gYXdhaXQgZnJvbUJ1ZmZlcihidWZmZXJEYXRhKVxuXG4gICAgICBjb25zdCBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyA9IGNyZWF0ZUltYWdlTmFtZShcbiAgICAgICAgc2FuaXRpemVkSW1hZ2UubmFtZSxcbiAgICAgICAgYnVmZmVySW5mbyxcbiAgICAgICAgbWltZUluZm8/LmV4dCB8fCBzYW5pdGl6ZWRJbWFnZS5leHQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGltYWdlUGF0aCA9IGAke3N0YXRpY1BhdGh9LyR7aW1hZ2VOYW1lV2l0aERpbWVuc2lvbnN9YFxuXG4gICAgICBpZiAoYXdhaXQgZmlsZUV4aXN0cyhpbWFnZVBhdGgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZnMudW5saW5rU3luYyhpbWFnZVBhdGgpXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElnbm9yZSB1bmxpbmsgZXJyb3JzXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBoZWlnaHQsIHNpemUsIHdpZHRoIH0gPSBidWZmZXJJbmZvXG4gICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KFxuICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lLFxuICAgICAgICBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbWltZUluZm8/Lm1pbWUgfHwgbWltZVR5cGUsXG4gICAgICAgIFt7IGJ1ZmZlcjogYnVmZmVyRGF0YSwgcGF0aDogaW1hZ2VQYXRoIH1dLFxuICAgICAgKVxuICAgIH0pLFxuICApXG5cbiAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxuICAgIChhY2MsIHJlc3VsdCkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihhY2Muc2l6ZURhdGEsIHJlc3VsdC5zaXplRGF0YSlcbiAgICAgIGFjYy5zaXplc1RvU2F2ZS5wdXNoKC4uLnJlc3VsdC5zaXplc1RvU2F2ZSlcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LFxuICAgIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJnZXRTYW5pdGl6ZWRJbWFnZURhdGEiLCJzb3VyY2VJbWFnZSIsImV4dGVuc2lvbiIsInNwbGl0IiwicG9wIiwibmFtZSIsInNhbml0aXplIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJleHQiLCJjcmVhdGVJbWFnZU5hbWUiLCJvdXRwdXRJbWFnZU5hbWUiLCJoZWlnaHQiLCJ3aWR0aCIsImNyZWF0ZVJlc3VsdCIsImZpbGVuYW1lIiwiZmlsZXNpemUiLCJtaW1lVHlwZSIsInNpemVzVG9TYXZlIiwic2l6ZURhdGEiLCJwcmV2ZW50UmVzaXplIiwiZGVzaXJlZEhlaWdodCIsImRlc2lyZWRXaWR0aCIsIndpdGhvdXRFbmxhcmdlbWVudCIsIndpdGhvdXRSZWR1Y3Rpb24iLCJvcmlnaW5hbCIsInVuZGVmaW5lZCIsImlzV2lkdGhPckhlaWdodE5vdERlZmluZWQiLCJoYXNJbnN1ZmZpY2llbnRXaWR0aCIsImhhc0luc3VmZmljaWVudEhlaWdodCIsImFwcGx5UGF5bG9hZEFkanVzdG1lbnRzIiwiZml0IiwiaXNOdW1iZXIiLCJ0YXJnZXRBc3BlY3RSYXRpbyIsIm9yaWdpbmFsQXNwZWN0UmF0aW8iLCJza2lwRW5sYXJnZW1lbnQiLCJza2lwUmVkdWN0aW9uIiwic2FuaXRpemVSZXNpemVDb25maWciLCJyZXNpemVDb25maWciLCJwb3NpdGlvbiIsImNvbmZpZyIsImRpbWVuc2lvbnMiLCJmaWxlIiwicmVxIiwic2F2ZWRGaWxlbmFtZSIsInN0YXRpY1BhdGgiLCJpbWFnZVNpemVzIiwidXBsb2FkIiwic2hhcnBCYXNlIiwic2hhcnAiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwicm90YXRlIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJpbWFnZVJlc2l6ZUNvbmZpZyIsImltYWdlVG9SZXNpemUiLCJjbG9uZSIsInJlc2l6ZWQiLCJxdWVyeSIsInVwbG9hZEVkaXRzIiwiZm9jYWxQb2ludCIsInJlc2l6ZUhlaWdodCIsInJlc2l6ZVdpZHRoIiwicmVzaXplQXNwZWN0UmF0aW8iLCJwcmlvcml0aXplSGVpZ2h0Iiwic2NhbGVkSW1hZ2UiLCJyZXNpemUiLCJpbmZvIiwic2NhbGVkSW1hZ2VJbmZvIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsIngiLCJ5Iiwic2FmZVJlc2l6ZVdpZHRoIiwibWF4T2Zmc2V0WCIsImxlZnRGb2NhbEVkZ2UiLCJNYXRoIiwicm91bmQiLCJzYWZlT2Zmc2V0WCIsIm1pbiIsIm1heCIsInNhZmVSZXNpemVIZWlnaHQiLCJtYXhPZmZzZXRZIiwidG9wRm9jYWxFZGdlIiwic2FmZU9mZnNldFkiLCJleHRyYWN0IiwibGVmdCIsInRvcCIsImZvcm1hdE9wdGlvbnMiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltT3B0aW9ucyIsInRyaW0iLCJidWZmZXJEYXRhIiwiYnVmZmVySW5mbyIsInNhbml0aXplZEltYWdlIiwicGF5bG9hZFVwbG9hZFNpemVzIiwibWltZUluZm8iLCJmcm9tQnVmZmVyIiwiaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMiLCJpbWFnZVBhdGgiLCJmaWxlRXhpc3RzIiwiZnMiLCJ1bmxpbmtTeW5jIiwic2l6ZSIsIm1pbWUiLCJidWZmZXIiLCJwYXRoIiwicmVkdWNlIiwiYWNjIiwicmVzdWx0IiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFrTUE7Ozs7Ozs7Ozs7Ozs7Q0FhQyxHQUNEOzs7ZUFBOEJBOzs7MEJBOU1IOzJEQUNaO3lFQUNNOzhEQUNIOzBCQU9PO21FQUNGOzs7Ozs7QUEyQnZCOzs7OztDQUtDLEdBQ0QsTUFBTUMsd0JBQXdCLENBQUNDO0lBQzdCLE1BQU1DLFlBQVlELFlBQVlFLEtBQUssQ0FBQyxLQUFLQyxHQUFHO0lBQzVDLE1BQU1DLE9BQU9DLElBQUFBLHlCQUFRLEVBQUNMLFlBQVlNLFNBQVMsQ0FBQyxHQUFHTixZQUFZTyxXQUFXLENBQUMsU0FBU1A7SUFDaEYsT0FBTztRQUFFSTtRQUFNSSxLQUFLUDtJQUFVO0FBQ2hDO0FBRUE7Ozs7Ozs7Ozs7OztDQVlDLEdBQ0QsTUFBTVEsa0JBQWtCLENBQ3RCQyxpQkFDQSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBYyxFQUM3QlgsWUFDRyxDQUFDLEVBQUVTLGdCQUFnQixDQUFDLEVBQUVFLE1BQU0sQ0FBQyxFQUFFRCxPQUFPLENBQUMsRUFBRVYsVUFBVSxDQUFDO0FBRXpEOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDRCxNQUFNWSxlQUFlLENBQ25CVCxNQUNBVSxXQUFpQyxJQUFJLEVBQ3JDRixRQUEyQixJQUFJLEVBQy9CRCxTQUE2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
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE91dHB1dEluZm8gfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IGZpbGVUeXBlIGZyb20gJ2ZpbGUtdHlwZSdcbmNvbnN0IHsgZnJvbUJ1ZmZlciB9ID0gZmlsZVR5cGVcblxuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IFNoYXJwRGVwZW5kZW5jeSB9IGZyb20gJy4uL2NvbmZpZy90eXBlcy5qcydcbmltcG9ydCB0eXBlIHsgQ3VzdG9tUGF5bG9hZFJlcXVlc3QsIFBheWxvYWRSZXF1ZXN0LCBVcGxvYWRFZGl0cyB9IGZyb20gJy4uL3R5cGVzL2luZGV4LmpzJ1xuaW1wb3J0IHR5cGUgeyBGaWxlU2l6ZSwgRmlsZVNpemVzLCBGaWxlVG9TYXZlLCBJbWFnZVNpemUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMuanMnXG5cbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2lzTnVtYmVyLmpzJ1xuaW1wb3J0IGZpbGVFeGlzdHMgZnJvbSAnLi9maWxlRXhpc3RzLmpzJ1xuXG50eXBlIFJlc2l6ZUFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemVcbiAgZmlsZTogQ3VzdG9tUGF5bG9hZFJlcXVlc3RbJ2ZpbGUnXVxuICBtaW1lVHlwZTogc3RyaW5nXG4gIHJlcTogUGF5bG9hZFJlcXVlc3QgJiB7XG4gICAgcXVlcnk/OiB7XG4gICAgICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG4gICAgfVxuICB9XG4gIHNhdmVkRmlsZW5hbWU6IHN0cmluZ1xuICBzaGFycDogU2hhcnBEZXBlbmRlbmN5XG4gIHN0YXRpY1BhdGg6IHN0cmluZ1xufVxuXG4vKiogUmVzdWx0IGZyb20gcmVzaXppbmcgYW5kIHRyYW5zZm9ybWluZyB0aGUgcmVxdWVzdGVkIGltYWdlIHNpemVzICovXG50eXBlIEltYWdlU2l6ZXNSZXN1bHQgPSB7XG4gIHNpemVEYXRhOiBGaWxlU2l6ZXNcbiAgc2l6ZXNUb1NhdmU6IEZpbGVUb1NhdmVbXVxufVxuXG50eXBlIFNhbml0aXplZEltYWdlRGF0YSA9IHtcbiAgZXh0OiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG59XG5cbi8qKlxuICogU2FuaXRpemUgdGhlIGltYWdlIG5hbWUgYW5kIGV4dHJhY3QgdGhlIGV4dGVuc2lvbiBmcm9tIHRoZSBzb3VyY2UgaW1hZ2VcbiAqXG4gKiBAcGFyYW0gc291cmNlSW1hZ2UgLSB0aGUgc291cmNlIGltYWdlXG4gKiBAcmV0dXJucyB0aGUgc2FuaXRpemVkIG5hbWUgYW5kIGV4dGVuc2lvblxuICovXG5jb25zdCBnZXRTYW5pdGl6ZWRJbWFnZURhdGEgPSAoc291cmNlSW1hZ2U6IHN0cmluZyk6IFNhbml0aXplZEltYWdlRGF0YSA9PiB7XG4gIGNvbnN0IGV4dGVuc2lvbiA9IHNvdXJjZUltYWdlLnNwbGl0KCcuJykucG9wKClcbiAgY29uc3QgbmFtZSA9IHNhbml0aXplKHNvdXJjZUltYWdlLnN1YnN0cmluZygwLCBzb3VyY2VJbWFnZS5sYXN0SW5kZXhPZignLicpKSB8fCBzb3VyY2VJbWFnZSlcbiAgcmV0dXJuIHsgbmFtZSwgZXh0OiBleHRlbnNpb24gfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBpbWFnZSBuYW1lIGJhc2VkIG9uIHRoZSBvdXRwdXQgaW1hZ2UgbmFtZSwgdGhlIGRpbWVuc2lvbnMgYW5kXG4gKiB0aGUgZXh0ZW5zaW9uLlxuICpcbiAqIElnbm9yZSB0aGUgZmFjdCB0aGF0IGR1cGxpY2F0ZSBuYW1lcyBjb3VsZCBoYXBwZW4gaWYgdGhlIHRoZXJlIGlzIG9uZVxuICogc2l6ZSB3aXRoIGB3aWR0aCBBTkQgaGVpZ2h0YCBhbmQgb25lIHdpdGggb25seSBgaGVpZ2h0IE9SIHdpZHRoYC4gQmVjYXVzZVxuICogc3BhY2UgaXMgZXhwZW5zaXZlLCB3ZSB3aWxsIHJldXNlIHRoZSBzYW1lIGltYWdlIGZvciBib3RoIHNpemVzLlxuICpcbiAqIEBwYXJhbSBvdXRwdXRJbWFnZU5hbWUgLSB0aGUgc2FuaXRpemVkIGltYWdlIG5hbWVcbiAqIEBwYXJhbSBidWZmZXJJbmZvIC0gdGhlIGJ1ZmZlciBpbmZvXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIC0gdGhlIGV4dGVuc2lvbiB0byB1c2VcbiAqIEByZXR1cm5zIHRoZSBuZXcgaW1hZ2UgbmFtZSB0aGF0IGlzIG5vdCB0YWtlblxuICovXG5jb25zdCBjcmVhdGVJbWFnZU5hbWUgPSAoXG4gIG91dHB1dEltYWdlTmFtZTogc3RyaW5nLFxuICB7IGhlaWdodCwgd2lkdGggfTogT3V0cHV0SW5mbyxcbiAgZXh0ZW5zaW9uOiBzdHJpbmcsXG4pID0+IGAke291dHB1dEltYWdlTmFtZX0tJHt3aWR0aH14JHtoZWlnaHR9LiR7ZXh0ZW5zaW9ufWBcblxuLyoqXG4gKiBDcmVhdGUgdGhlIHJlc3VsdCBvYmplY3QgZm9yIHRoZSBpbWFnZSByZXNpemUgb3BlcmF0aW9uIGJhc2VkIG9uIHRoZVxuICogcHJvdmlkZWQgcGFyYW1ldGVycy4gSWYgdGhlIG5hbWUgaXMgbm90IHByb3ZpZGVkLCBhbiBlbXB0eSByZXN1bHQgb2JqZWN0XG4gKiBpcyByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGZpbGVuYW1lIC0gdGhlIGZpbGVuYW1lIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIHdpZHRoIC0gdGhlIHdpZHRoIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGhlaWdodCAtIHRoZSBoZWlnaHQgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZXNpemUgLSB0aGUgZmlsZXNpemUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gbWltZVR5cGUgLSB0aGUgbWltZSB0eXBlIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIHNpemVzVG9TYXZlIC0gdGhlIHNpemVzIHRvIHNhdmVcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0XG4gKi9cbmNvbnN0IGNyZWF0ZVJlc3VsdCA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBmaWxlbmFtZTogRmlsZVNpemVbJ2ZpbGVuYW1lJ10gPSBudWxsLFxuICB3aWR0aDogRmlsZVNpemVbJ3dpZHRoJ10gPSBudWxsLFxuICBoZWlnaHQ6IEZpbGVTaXplWydoZWlnaHQnXSA9IG51bGwsXG4gIGZpbGVzaXplOiBGaWxlU2l6ZVsnZmlsZXNpemUnXSA9IG51bGwsXG4gIG1pbWVUeXBlOiBGaWxlU2l6ZVsnbWltZVR5cGUnXSA9IG51bGwsXG4gIHNpemVzVG9TYXZlOiBGaWxlVG9TYXZlW10gPSBbXSxcbik6IEltYWdlU2l6ZXNSZXN1bHQgPT4gKHtcbiAgc2l6ZURhdGE6IHtcbiAgICBbbmFtZV06IHtcbiAgICAgIGZpbGVuYW1lLFxuICAgICAgZmlsZXNpemUsXG4gICAgICBoZWlnaHQsXG4gICAgICBtaW1lVHlwZSxcbiAgICAgIHdpZHRoLFxuICAgIH0sXG4gIH0sXG4gIHNpemVzVG9TYXZlLFxufSlcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgaW1hZ2UgbmVlZHMgdG8gYmUgcmVzaXplZCBhY2NvcmRpbmcgdG8gdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zXG4gKiBhbmQgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuIElmIHRoZSByZXNpemUgb3B0aW9ucyB3aXRob3V0RW5sYXJnZW1lbnQgb3Igd2l0aG91dFJlZHVjdGlvbiBhcmUgcHJvdmlkZWQsXG4gKiB0aGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIHJlZ2FyZGxlc3Mgb2YgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zLCBnaXZlbiB0aGF0IHRoZVxuICogd2lkdGggb3IgaGVpZ2h0IHRvIGJlIHJlc2l6ZWQgaXMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucyBhbmQgcmVzaXplIG9wdGlvbnNcbiAqIEBwYXJhbSBvcmlnaW5hbCAtIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplXG4gKiBAcmV0dXJucyB0cnVlIGlmIHJlc2l6aW5nIGlzIG5vdCBuZWVkZWQsIGZhbHNlIG90aGVyd2lzZVxuICovXG5jb25zdCBwcmV2ZW50UmVzaXplID0gKFxuICB7IGhlaWdodDogZGVzaXJlZEhlaWdodCwgd2lkdGg6IGRlc2lyZWRXaWR0aCwgd2l0aG91dEVubGFyZ2VtZW50LCB3aXRob3V0UmVkdWN0aW9uIH06IEltYWdlU2l6ZSxcbiAgb3JpZ2luYWw6IFByb2JlZEltYWdlU2l6ZSxcbik6IGJvb2xlYW4gPT4ge1xuICAvLyBkZWZhdWx0IGlzIHRvIGFsbG93IHJlZHVjdGlvblxuICBpZiAod2l0aG91dFJlZHVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgLy8gZGVmYXVsdCBpcyB0byBwcmV2ZW50IGVubGFyZ2VtZW50XG4gIGlmICh3aXRob3V0RW5sYXJnZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIGNvbnN0IGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQgPSAhZGVzaXJlZEhlaWdodCB8fCAhZGVzaXJlZFdpZHRoXG4gIGlmIChpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkKSB7XG4gICAgLy8gSWYgd2lkdGggYW5kIGhlaWdodCBhcmUgbm90IGRlZmluZWQsIGl0IG1lYW5zIHRoZXJlIGlzIGEgZm9ybWF0IGNvbnZlcnNpb25cbiAgICAvLyBhbmQgdGhlIGltYWdlIG5lZWRzIHRvIGJlIFwicmVzaXplZFwiICh0cmFuc2Zvcm1lZCkuXG4gICAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaGFzSW5zdWZmaWNpZW50V2lkdGggPSBkZXNpcmVkV2lkdGggPiBvcmlnaW5hbC53aWR0aFxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRIZWlnaHQgPSBkZXNpcmVkSGVpZ2h0ID4gb3JpZ2luYWwuaGVpZ2h0XG4gIGlmIChoYXNJbnN1ZmZpY2llbnRXaWR0aCAmJiBoYXNJbnN1ZmZpY2llbnRIZWlnaHQpIHtcbiAgICAvLyBkb2Vzbid0IG5lZWQgcmVzaXplIC0gcHJldmVudCBlbmxhcmdlbWVudC4gVGhpcyBzaG91bGQgb25seSBoYXBwZW4gaWYgYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBpbnN1ZmZpY2llbnQuXG4gICAgLy8gaWYgb25seSBvbmUgZGltZW5zaW9uIGlzIGluc3VmZmljaWVudCBhbmQgdGhlIG90aGVyIGlzIHN1ZmZpY2llbnQsIHJlc2l6aW5nIG5lZWRzIHRvIGhhcHBlbiwgYXMgdGhlIGltYWdlXG4gICAgLy8gc2hvdWxkIGJlIHJlc2l6ZWQgdG8gdGhlIHN1ZmZpY2llbnQgZGltZW5zaW9uLlxuICAgIHJldHVybiB0cnVlIC8vIGRvIG5vdCBjcmVhdGUgYSBuZXcgc2l6ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBzaG91bGQgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIHNoYXJwIHdpdGhvdXQgcGF5bG9hZCBhZGp1c3RpbmcgcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGltYWdlIHNob3VsZCBwYXNzZWQgZGlyZWN0bHkgdG8gc2hhcnBcbiAqL1xuY29uc3QgYXBwbHlQYXlsb2FkQWRqdXN0bWVudHMgPSAoXG4gIHsgZml0LCBoZWlnaHQsIHdpZHRoLCB3aXRob3V0RW5sYXJnZW1lbnQsIHdpdGhvdXRSZWR1Y3Rpb24gfTogSW1hZ2VTaXplLFxuICBvcmlnaW5hbDogUHJvYmVkSW1hZ2VTaXplLFxuKSA9PiB7XG4gIGlmIChmaXQgPT09ICdjb250YWluJyB8fCBmaXQgPT09ICdpbnNpZGUnKSByZXR1cm4gZmFsc2VcbiAgaWYgKCFpc051bWJlcihoZWlnaHQpICYmICFpc051bWJlcih3aWR0aCkpIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IHRhcmdldEFzcGVjdFJhdGlvID0gd2lkdGggLyBoZWlnaHRcbiAgY29uc3Qgb3JpZ2luYWxBc3BlY3RSYXRpbyA9IG9yaWdpbmFsLndpZHRoIC8gb3JpZ2luYWwuaGVpZ2h0XG4gIGlmIChvcmlnaW5hbEFzcGVjdFJhdGlvID09PSB0YXJnZXRBc3BlY3RSYXRpbykgcmV0dXJuIGZhbHNlXG5cbiAgY29uc3Qgc2tpcEVubGFyZ2VtZW50ID0gd2l0aG91dEVubGFyZ2VtZW50ICYmIChvcmlnaW5hbC5oZWlnaHQgPCBoZWlnaHQgfHwgb3JpZ2luYWwud2lkdGggPCB3aWR0aClcbiAgY29uc3Qgc2tpcFJlZHVjdGlvbiA9IHdpdGhvdXRSZWR1Y3Rpb24gJiYgKG9yaWdpbmFsLmhlaWdodCA+IGhlaWdodCB8fCBvcmlnaW5hbC53aWR0aCA+IHdpZHRoKVxuICBpZiAoc2tpcEVubGFyZ2VtZW50IHx8IHNraXBSZWR1Y3Rpb24pIHJldHVybiBmYWxzZVxuXG4gIHJldHVybiB0cnVlXG59XG5cbi8qKlxuICogU2FuaXRpemUgdGhlIHJlc2l6ZSBjb25maWcuIElmIHRoZSByZXNpemUgY29uZmlnIGhhcyB0aGUgYHdpdGhvdXRSZWR1Y3Rpb25gXG4gKiBwcm9wZXJ0eSBzZXQgdG8gdHJ1ZSwgdGhlIGBmaXRgIGFuZCBgcG9zaXRpb25gIHByb3BlcnRpZXMgd2lsbCBiZSBzZXQgdG8gYGNvbnRhaW5gXG4gKiBhbmQgYHRvcCBsZWZ0YCByZXNwZWN0aXZlbHkuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIHRoZSByZXNpemUgY29uZmlnXG4gKiBAcmV0dXJucyBhIHNhbml0aXplZCByZXNpemUgY29uZmlnXG4gKi9cbmNvbnN0IHNhbml0aXplUmVzaXplQ29uZmlnID0gKHJlc2l6ZUNvbmZpZzogSW1hZ2VTaXplKTogSW1hZ2VTaXplID0+IHtcbiAgaWYgKHJlc2l6ZUNvbmZpZy53aXRob3V0UmVkdWN0aW9uKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlc2l6ZUNvbmZpZyxcbiAgICAgIC8vIFdoeSBmaXQgYGNvbnRhaW5gIHNob3VsZCBhbHNvIGJlIHNldCB0byBodHRwczovL2dpdGh1Yi5jb20vbG92ZWxsL3NoYXJwL2lzc3Vlcy8zNTk1XG4gICAgICBmaXQ6IHJlc2l6ZUNvbmZpZz8uZml0IHx8ICdjb250YWluJyxcbiAgICAgIHBvc2l0aW9uOiByZXNpemVDb25maWc/LnBvc2l0aW9uIHx8ICdsZWZ0IHRvcCcsXG4gICAgfVxuICB9XG4gIHJldHVybiByZXNpemVDb25maWdcbn1cblxuLyoqXG4gKiBGb3IgdGhlIHByb3ZpZGVkIGltYWdlIHNpemVzLCBoYW5kbGUgdGhlIHJlc2l6aW5nIGFuZCB0aGUgdHJhbnNmb3Jtc1xuICogKGZvcm1hdCwgdHJpbSwgZXRjLikgb2YgZWFjaCByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZSBhbmQgcmV0dXJuIHRoZSByZXN1bHQgb2JqZWN0LlxuICogVGhpcyBvbmx5IGhhbmRsZXMgdGhlIGltYWdlIHNpemVzLiBUaGUgdHJhbnNmb3JtcyBvZiB0aGUgb3JpZ2luYWwgaW1hZ2VcbiAqIGFyZSBoYW5kbGVkIGluIHtAbGluayAuL2dlbmVyYXRlRmlsZURhdGEudHN9LlxuICpcbiAqIFRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZFxuICogcmVzaXplIGNvbmZpZy4gSWYgbm8gaW1hZ2Ugc2l6ZXMgYXJlIHJlcXVlc3RlZCwgdGhlIHJlc29sdmVkIGRhdGEgd2lsbCBiZSBlbXB0eS5cbiAqIEZvciBldmVyeSBpbWFnZSB0aGF0IGRvcyBub3QgbmVlZCB0byBiZSByZXNpemVkLCBhbiByZXN1bHQgb2JqZWN0IHdpdGggYG51bGxgXG4gKiBwYXJhbWV0ZXJzIHdpbGwgYmUgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIHRoZSByZXNpemUgY29uZmlnXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSByZXNpemUgb3BlcmF0aW9uKHMpXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMoe1xuICBjb25maWcsXG4gIGRpbWVuc2lvbnMsXG4gIGZpbGUsXG4gIG1pbWVUeXBlLFxuICByZXEsXG4gIHNhdmVkRmlsZW5hbWUsXG4gIHNoYXJwLFxuICBzdGF0aWNQYXRoLFxufTogUmVzaXplQXJncyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4ge1xuICBjb25zdCB7IGltYWdlU2l6ZXMgfSA9IGNvbmZpZy51cGxvYWRcbiAgLy8gTm90aW5nIHRvIHJlc2l6ZSBoZXJlIHNvIHJldHVybiBhcyBlYXJseSBhcyBwb3NzaWJsZVxuICBpZiAoIWltYWdlU2l6ZXMpIHJldHVybiB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH1cblxuICBjb25zdCBzaGFycEJhc2UgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuXG4gIGNvbnN0IHJlc3VsdHM6IEltYWdlU2l6ZXNSZXN1bHRbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGltYWdlU2l6ZXMubWFwKGFzeW5jIChpbWFnZVJlc2l6ZUNvbmZpZyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4gPT4ge1xuICAgICAgaW1hZ2VSZXNpemVDb25maWcgPSBzYW5pdGl6ZVJlc2l6ZUNvbmZpZyhpbWFnZVJlc2l6ZUNvbmZpZylcblxuICAgICAgLy8gVGhpcyBjaGVja3MgaWYgYSByZXNpemUgc2hvdWxkIGhhcHBlbi4gSWYgbm90LCB0aGUgcmVzaXplZCBpbWFnZSB3aWxsIGJlXG4gICAgICAvLyBza2lwcGVkIENPTVBMRVRFTFkgYW5kIHRodXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyBpbWFnZXMuXG4gICAgICAvLyBBbGwgZnVydGhlciBmb3JtYXQvdHJpbSBvcHRpb25zIHdpbGwgdGh1cyBiZSBza2lwcGVkIGFzIHdlbGwuXG4gICAgICBpZiAocHJldmVudFJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZywgZGltZW5zaW9ucykpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdChpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBpbWFnZVRvUmVzaXplID0gc2hhcnBCYXNlLmNsb25lKClcbiAgICAgIGxldCByZXNpemVkID0gaW1hZ2VUb1Jlc2l6ZVxuXG4gICAgICBpZiAoXG4gICAgICAgIHJlcS5xdWVyeT8udXBsb2FkRWRpdHM/LmZvY2FsUG9pbnQgJiZcbiAgICAgICAgYXBwbHlQYXlsb2FkQWRqdXN0bWVudHMoaW1hZ2VSZXNpemVDb25maWcsIGRpbWVuc2lvbnMpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQ6IHJlc2l6ZUhlaWdodCwgd2lkdGg6IHJlc2l6ZVdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuICAgICAgICBjb25zdCByZXNpemVBc3BlY3RSYXRpbyA9IHJlc2l6ZVdpZHRoIC8gcmVzaXplSGVpZ2h0XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsQXNwZWN0UmF0aW8gPSBkaW1lbnNpb25zLndpZHRoIC8gZGltZW5zaW9ucy5oZWlnaHRcbiAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IHJlc2l6ZUFzcGVjdFJhdGlvIDwgb3JpZ2luYWxBc3BlY3RSYXRpb1xuXG4gICAgICAgIC8vIFNjYWxlIHRoZSBpbWFnZSB1cCBvciBkb3duIHRvIGZpdCB0aGUgcmVzaXplIGRpbWVuc2lvbnNcbiAgICAgICAgY29uc3Qgc2NhbGVkSW1hZ2UgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZSh7XG4gICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gcmVzaXplSGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICB3aWR0aDogcHJpb3JpdGl6ZUhlaWdodCA/IG51bGwgOiByZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgeyBpbmZvOiBzY2FsZWRJbWFnZUluZm8gfSA9IGF3YWl0IHNjYWxlZEltYWdlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICAvLyBGb2NhbCBwb2ludCBhZGp1c3RtZW50c1xuICAgICAgICBjb25zdCBmb2NhbFBvaW50ID0ge1xuICAgICAgICAgIHg6IGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py54KVxuICAgICAgICAgICAgPyByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC54XG4gICAgICAgICAgICA6IDUwLFxuICAgICAgICAgIHk6IGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py55KVxuICAgICAgICAgICAgPyByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC55XG4gICAgICAgICAgICA6IDUwLFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZVdpZHRoID0gcmVzaXplV2lkdGggPz8gc2NhbGVkSW1hZ2VJbmZvLndpZHRoXG4gICAgICAgIGNvbnN0IG1heE9mZnNldFggPSBzY2FsZWRJbWFnZUluZm8ud2lkdGggLSBzYWZlUmVzaXplV2lkdGhcbiAgICAgICAgY29uc3QgbGVmdEZvY2FsRWRnZSA9IE1hdGgucm91bmQoXG4gICAgICAgICAgc2NhbGVkSW1hZ2VJbmZvLndpZHRoICogKGZvY2FsUG9pbnQueCAvIDEwMCkgLSBzYWZlUmVzaXplV2lkdGggLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRYID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgbGVmdEZvY2FsRWRnZSksIG1heE9mZnNldFgpXG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZUhlaWdodCA9IHJlc2l6ZUhlaWdodCA/PyBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0XG4gICAgICAgIGNvbnN0IG1heE9mZnNldFkgPSBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0IC0gc2FmZVJlc2l6ZUhlaWdodFxuICAgICAgICBjb25zdCB0b3BGb2NhbEVkZ2UgPSBNYXRoLnJvdW5kKFxuICAgICAgICAgIHNjYWxlZEltYWdlSW5mby5oZWlnaHQgKiAoZm9jYWxQb2ludC55IC8gMTAwKSAtIHNhZmVSZXNpemVIZWlnaHQgLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRZID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgdG9wRm9jYWxFZGdlKSwgbWF4T2Zmc2V0WSlcblxuICAgICAgICAvLyBleHRyYWN0IHRoZSBmb2NhbCBhcmVhIGZyb20gdGhlIHNjYWxlZCBpbWFnZVxuICAgICAgICByZXNpemVkID0gc2NhbGVkSW1hZ2UuZXh0cmFjdCh7XG4gICAgICAgICAgaGVpZ2h0OiBzYWZlUmVzaXplSGVpZ2h0LFxuICAgICAgICAgIGxlZnQ6IHNhZmVPZmZzZXRYLFxuICAgICAgICAgIHRvcDogc2FmZU9mZnNldFksXG4gICAgICAgICAgd2lkdGg6IHNhZmVSZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2l6ZWQgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudG9Gb3JtYXQoXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5mb3JtYXQsXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5vcHRpb25zLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50cmltKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGRhdGE6IGJ1ZmZlckRhdGEsIGluZm86IGJ1ZmZlckluZm8gfSA9IGF3YWl0IHJlc2l6ZWQudG9CdWZmZXIoe1xuICAgICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHNhbml0aXplZEltYWdlID0gZ2V0U2FuaXRpemVkSW1hZ2VEYXRhKHNhdmVkRmlsZW5hbWUpXG5cbiAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXNbaW1hZ2VSZXNpemVDb25maWcubmFtZV0gPSBidWZmZXJEYXRhXG5cbiAgICAgIGNvbnN0IG1pbWVJbmZvID0gYXdhaXQgZnJvbUJ1ZmZlcihidWZmZXJEYXRhKVxuXG4gICAgICBjb25zdCBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyA9IGNyZWF0ZUltYWdlTmFtZShcbiAgICAgICAgc2FuaXRpemVkSW1hZ2UubmFtZSxcbiAgICAgICAgYnVmZmVySW5mbyxcbiAgICAgICAgbWltZUluZm8/LmV4dCB8fCBzYW5pdGl6ZWRJbWFnZS5leHQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGltYWdlUGF0aCA9IGAke3N0YXRpY1BhdGh9LyR7aW1hZ2VOYW1lV2l0aERpbWVuc2lvbnN9YFxuXG4gICAgICBpZiAoYXdhaXQgZmlsZUV4aXN0cyhpbWFnZVBhdGgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZnMudW5saW5rU3luYyhpbWFnZVBhdGgpXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElnbm9yZSB1bmxpbmsgZXJyb3JzXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBoZWlnaHQsIHNpemUsIHdpZHRoIH0gPSBidWZmZXJJbmZvXG4gICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KFxuICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lLFxuICAgICAgICBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbWltZUluZm8/Lm1pbWUgfHwgbWltZVR5cGUsXG4gICAgICAgIFt7IGJ1ZmZlcjogYnVmZmVyRGF0YSwgcGF0aDogaW1hZ2VQYXRoIH1dLFxuICAgICAgKVxuICAgIH0pLFxuICApXG5cbiAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxuICAgIChhY2MsIHJlc3VsdCkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihhY2Muc2l6ZURhdGEsIHJlc3VsdC5zaXplRGF0YSlcbiAgICAgIGFjYy5zaXplc1RvU2F2ZS5wdXNoKC4uLnJlc3VsdC5zaXplc1RvU2F2ZSlcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LFxuICAgIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbImZpbGVUeXBlIiwiZnJvbUJ1ZmZlciIsImZzIiwic2FuaXRpemUiLCJpc051bWJlciIsImZpbGVFeGlzdHMiLCJnZXRTYW5pdGl6ZWRJbWFnZURhdGEiLCJzb3VyY2VJbWFnZSIsImV4dGVuc2lvbiIsInNwbGl0IiwicG9wIiwibmFtZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZXh0IiwiY3JlYXRlSW1hZ2VOYW1lIiwib3V0cHV0SW1hZ2VOYW1lIiwiaGVpZ2h0Iiwid2lkdGgiLCJjcmVhdGVSZXN1bHQiLCJmaWxlbmFtZSIsImZpbGVzaXplIiwibWltZVR5cGUiLCJzaXplc1RvU2F2ZSIsInNpemVEYXRhIiwicHJldmVudFJlc2l6ZSIsImRlc2lyZWRIZWlnaHQiLCJkZXNpcmVkV2lkdGgiLCJ3aXRob3V0RW5sYXJnZW1lbnQiLCJ3aXRob3V0UmVkdWN0aW9uIiwib3JpZ2luYWwiLCJ1bmRlZmluZWQiLCJpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkIiwiaGFzSW5zdWZmaWNpZW50V2lkdGgiLCJoYXNJbnN1ZmZpY2llbnRIZWlnaHQiLCJhcHBseVBheWxvYWRBZGp1c3RtZW50cyIsImZpdCIsInRhcmdldEFzcGVjdFJhdGlvIiwib3JpZ2luYWxBc3BlY3RSYXRpbyIsInNraXBFbmxhcmdlbWVudCIsInNraXBSZWR1Y3Rpb24iLCJzYW5pdGl6ZVJlc2l6ZUNvbmZpZyIsInJlc2l6ZUNvbmZpZyIsInBvc2l0aW9uIiwicmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyIsImNvbmZpZyIsImRpbWVuc2lvbnMiLCJmaWxlIiwicmVxIiwic2F2ZWRGaWxlbmFtZSIsInNoYXJwIiwic3RhdGljUGF0aCIsImltYWdlU2l6ZXMiLCJ1cGxvYWQiLCJzaGFycEJhc2UiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwicm90YXRlIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJpbWFnZVJlc2l6ZUNvbmZpZyIsImltYWdlVG9SZXNpemUiLCJjbG9uZSIsInJlc2l6ZWQiLCJxdWVyeSIsInVwbG9hZEVkaXRzIiwiZm9jYWxQb2ludCIsInJlc2l6ZUhlaWdodCIsInJlc2l6ZVdpZHRoIiwicmVzaXplQXNwZWN0UmF0aW8iLCJwcmlvcml0aXplSGVpZ2h0Iiwic2NhbGVkSW1hZ2UiLCJyZXNpemUiLCJpbmZvIiwic2NhbGVkSW1hZ2VJbmZvIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsIngiLCJ5Iiwic2FmZVJlc2l6ZVdpZHRoIiwibWF4T2Zmc2V0WCIsImxlZnRGb2NhbEVkZ2UiLCJNYXRoIiwicm91bmQiLCJzYWZlT2Zmc2V0WCIsIm1pbiIsIm1heCIsInNhZmVSZXNpemVIZWlnaHQiLCJtYXhPZmZzZXRZIiwidG9wRm9jYWxFZGdlIiwic2FmZU9mZnNldFkiLCJleHRyYWN0IiwibGVmdCIsInRvcCIsImZvcm1hdE9wdGlvbnMiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltT3B0aW9ucyIsInRyaW0iLCJidWZmZXJEYXRhIiwiYnVmZmVySW5mbyIsInNhbml0aXplZEltYWdlIiwicGF5bG9hZFVwbG9hZFNpemVzIiwibWltZUluZm8iLCJpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyIsImltYWdlUGF0aCIsInVubGlua1N5bmMiLCJzaXplIiwibWltZSIsImJ1ZmZlciIsInBhdGgiLCJyZWR1Y2UiLCJhY2MiLCJyZXN1bHQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPQSxjQUFjLFlBQVc7QUFDaEMsTUFBTSxFQUFFQyxVQUFVLEVBQUUsR0FBR0Q7QUFFdkIsT0FBT0UsUUFBUSxLQUFJO0FBQ25CLE9BQU9DLGNBQWMsb0JBQW1CO0FBT3hDLFNBQVNDLFFBQVEsUUFBUSwyQkFBMEI7QUFDbkQsT0FBT0MsZ0JBQWdCLGtCQUFpQjtBQTRCeEM7Ozs7O0NBS0MsR0FDRCxNQUFNQyx3QkFBd0IsQ0FBQ0M7SUFDN0IsTUFBTUMsWUFBWUQsWUFBWUUsS0FBSyxDQUFDLEtBQUtDLEdBQUc7SUFDNUMsTUFBTUMsT0FBT1IsU0FBU0ksWUFBWUssU0FBUyxDQUFDLEdBQUdMLFlBQVlNLFdBQVcsQ0FBQyxTQUFTTjtJQUNoRixPQUFPO1FBQUVJO1FBQU1HLEtBQUtOO0lBQVU7QUFDaEM7QUFFQTs7Ozs7Ozs7Ozs7O0NBWUMsR0FDRCxNQUFNTyxrQkFBa0IsQ0FDdEJDLGlCQUNBLEVBQUVDLE1BQU0sRUFBRUMsS0FBSyxFQUFjLEVBQzdCVixZQUNHLENBQUMsRUFBRVEsZ0JBQWdC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
|
package/dist/uploads/isImage.js
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return isImage;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
function isImage(mimeType) {
|
|
1
|
+
export default function isImage(mimeType) {
|
|
12
2
|
return [
|
|
13
3
|
'image/jpeg',
|
|
14
4
|
'image/png',
|
|
@@ -18,4 +8,4 @@ function isImage(mimeType) {
|
|
|
18
8
|
].indexOf(mimeType) > -1;
|
|
19
9
|
}
|
|
20
10
|
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2lzSW1hZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gaXNJbWFnZShtaW1lVHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgWydpbWFnZS9qcGVnJywgJ2ltYWdlL3BuZycsICdpbWFnZS9naWYnLCAnaW1hZ2Uvc3ZnK3htbCcsICdpbWFnZS93ZWJwJ10uaW5kZXhPZihtaW1lVHlwZSkgPiAtMVxuICApXG59XG4iXSwibmFtZXMiOlsiaXNJbWFnZSIsIm1pbWVUeXBlIiwiaW5kZXhPZiJdLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSxTQUFTQSxRQUFRQyxRQUFnQjtJQUM5QyxPQUNFO1FBQUM7UUFBYztRQUFhO1FBQWE7UUFBaUI7S0FBYSxDQUFDQyxPQUFPLENBQUNELFlBQVksQ0FBQztBQUVqRyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mimeTypeValidator.d.ts","sourceRoot":"","sources":["../../src/uploads/mimeTypeValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mimeTypeValidator.d.ts","sourceRoot":"","sources":["../../src/uploads/mimeTypeValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAA;AAEzD,eAAO,MAAM,iBAAiB,cAChB,MAAM,EAAE,KAAG,QAYtB,CAAA"}
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "mimeTypeValidator", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return mimeTypeValidator;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const mimeTypeValidator = (mimeTypes)=>(val, { siblingData })=>{
|
|
1
|
+
export const mimeTypeValidator = (mimeTypes)=>(val, { siblingData })=>{
|
|
12
2
|
if (!siblingData.filename) {
|
|
13
3
|
return true;
|
|
14
4
|
}
|
|
@@ -19,4 +9,4 @@ const mimeTypeValidator = (mimeTypes)=>(val, { siblingData })=>{
|
|
|
19
9
|
return !cleanedMimeTypes.some((v)=>val.startsWith(v)) ? `Invalid file type: '${val}'` : true;
|
|
20
10
|
};
|
|
21
11
|
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL21pbWVUeXBlVmFsaWRhdG9yLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVmFsaWRhdGUgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzLmpzJ1xuXG5leHBvcnQgY29uc3QgbWltZVR5cGVWYWxpZGF0b3IgPVxuICAobWltZVR5cGVzOiBzdHJpbmdbXSk6IFZhbGlkYXRlID0+XG4gICh2YWw6IHN0cmluZywgeyBzaWJsaW5nRGF0YSB9KSA9PiB7XG4gICAgaWYgKCFzaWJsaW5nRGF0YS5maWxlbmFtZSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBpZiAoIXZhbCkge1xuICAgICAgcmV0dXJuICdJbnZhbGlkIGZpbGUgdHlwZSdcbiAgICB9XG5cbiAgICBjb25zdCBjbGVhbmVkTWltZVR5cGVzID0gbWltZVR5cGVzLm1hcCgodikgPT4gdi5yZXBsYWNlKCcqJywgJycpKVxuICAgIHJldHVybiAhY2xlYW5lZE1pbWVUeXBlcy5zb21lKCh2KSA9PiB2YWwuc3RhcnRzV2l0aCh2KSkgPyBgSW52YWxpZCBmaWxlIHR5cGU6ICcke3ZhbH0nYCA6IHRydWVcbiAgfVxuIl0sIm5hbWVzIjpbIm1pbWVUeXBlVmFsaWRhdG9yIiwibWltZVR5cGVzIiwidmFsIiwic2libGluZ0RhdGEiLCJmaWxlbmFtZSIsImNsZWFuZWRNaW1lVHlwZXMiLCJtYXAiLCJ2IiwicmVwbGFjZSIsInNvbWUiLCJzdGFydHNXaXRoIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLE1BQU1BLG9CQUNYLENBQUNDLFlBQ0QsQ0FBQ0MsS0FBYSxFQUFFQyxXQUFXLEVBQUU7UUFDM0IsSUFBSSxDQUFDQSxZQUFZQyxRQUFRLEVBQUU7WUFDekIsT0FBTztRQUNUO1FBRUEsSUFBSSxDQUFDRixLQUFLO1lBQ1IsT0FBTztRQUNUO1FBRUEsTUFBTUcsbUJBQW1CSixVQUFVSyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsT0FBTyxDQUFDLEtBQUs7UUFDN0QsT0FBTyxDQUFDSCxpQkFBaUJJLElBQUksQ0FBQyxDQUFDRixJQUFNTCxJQUFJUSxVQUFVLENBQUNILE1BQU0sQ0FBQyxvQkFBb0IsRUFBRUwsSUFBSSxDQUFDLENBQUMsR0FBRztJQUM1RixFQUFDIn0=
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
const _mimeTypeValidator = require("./mimeTypeValidator");
|
|
1
|
+
import { mimeTypeValidator } from './mimeTypeValidator';
|
|
6
2
|
const options = {
|
|
7
3
|
siblingData: {
|
|
8
4
|
filename: 'file.xyz'
|
|
@@ -13,7 +9,7 @@ describe('mimeTypeValidator', ()=>{
|
|
|
13
9
|
const mimeTypes = [
|
|
14
10
|
'image/png'
|
|
15
11
|
];
|
|
16
|
-
const validate =
|
|
12
|
+
const validate = mimeTypeValidator(mimeTypes);
|
|
17
13
|
expect(validate('image/png', options)).toBe(true);
|
|
18
14
|
});
|
|
19
15
|
it('should validate multiple mimeTypes', ()=>{
|
|
@@ -21,7 +17,7 @@ describe('mimeTypeValidator', ()=>{
|
|
|
21
17
|
'image/png',
|
|
22
18
|
'application/pdf'
|
|
23
19
|
];
|
|
24
|
-
const validate =
|
|
20
|
+
const validate = mimeTypeValidator(mimeTypes);
|
|
25
21
|
expect(validate('image/png', options)).toBe(true);
|
|
26
22
|
expect(validate('application/pdf', options)).toBe(true);
|
|
27
23
|
});
|
|
@@ -29,7 +25,7 @@ describe('mimeTypeValidator', ()=>{
|
|
|
29
25
|
const mimeTypes = [
|
|
30
26
|
'image/*'
|
|
31
27
|
];
|
|
32
|
-
const validate =
|
|
28
|
+
const validate = mimeTypeValidator(mimeTypes);
|
|
33
29
|
expect(validate('image/png', options)).toBe(true);
|
|
34
30
|
expect(validate('image/gif', options)).toBe(true);
|
|
35
31
|
});
|
|
@@ -38,7 +34,7 @@ describe('mimeTypeValidator', ()=>{
|
|
|
38
34
|
'image/*',
|
|
39
35
|
'audio/*'
|
|
40
36
|
];
|
|
41
|
-
const validate =
|
|
37
|
+
const validate = mimeTypeValidator(mimeTypes);
|
|
42
38
|
expect(validate('image/png', options)).toBe(true);
|
|
43
39
|
expect(validate('audio/mpeg', options)).toBe(true);
|
|
44
40
|
});
|
|
@@ -46,7 +42,7 @@ describe('mimeTypeValidator', ()=>{
|
|
|
46
42
|
const mimeTypes = [
|
|
47
43
|
'image/png'
|
|
48
44
|
];
|
|
49
|
-
const validate =
|
|
45
|
+
const validate = mimeTypeValidator(mimeTypes);
|
|
50
46
|
expect(validate('audio/mpeg', options)).toBe("Invalid file type: 'audio/mpeg'");
|
|
51
47
|
});
|
|
52
48
|
it('should not validate when unmatched - multiple mimeTypes', ()=>{
|
|
@@ -54,14 +50,14 @@ describe('mimeTypeValidator', ()=>{
|
|
|
54
50
|
'image/png',
|
|
55
51
|
'application/pdf'
|
|
56
52
|
];
|
|
57
|
-
const validate =
|
|
53
|
+
const validate = mimeTypeValidator(mimeTypes);
|
|
58
54
|
expect(validate('audio/mpeg', options)).toBe("Invalid file type: 'audio/mpeg'");
|
|
59
55
|
});
|
|
60
56
|
it('should not validate using wildcard - unmatched', ()=>{
|
|
61
57
|
const mimeTypes = [
|
|
62
58
|
'image/*'
|
|
63
59
|
];
|
|
64
|
-
const validate =
|
|
60
|
+
const validate = mimeTypeValidator(mimeTypes);
|
|
65
61
|
expect(validate('audio/mpeg', options)).toBe("Invalid file type: 'audio/mpeg'");
|
|
66
62
|
});
|
|
67
63
|
it('should not validate multiple wildcards - unmatched', ()=>{
|
|
@@ -69,7 +65,7 @@ describe('mimeTypeValidator', ()=>{
|
|
|
69
65
|
'image/*',
|
|
70
66
|
'audio/*'
|
|
71
67
|
];
|
|
72
|
-
const validate =
|
|
68
|
+
const validate = mimeTypeValidator(mimeTypes);
|
|
73
69
|
expect(validate('video/mp4', options)).toBe("Invalid file type: 'video/mp4'");
|
|
74
70
|
expect(validate('application/pdf', options)).toBe("Invalid file type: 'application/pdf'");
|
|
75
71
|
});
|
|
@@ -78,10 +74,10 @@ describe('mimeTypeValidator', ()=>{
|
|
|
78
74
|
'image/*',
|
|
79
75
|
'application/pdf'
|
|
80
76
|
];
|
|
81
|
-
const validate =
|
|
77
|
+
const validate = mimeTypeValidator(mimeTypes);
|
|
82
78
|
let value;
|
|
83
79
|
expect(validate(value, options)).toBe('Invalid file type');
|
|
84
80
|
});
|
|
85
81
|
});
|
|
86
82
|
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL21pbWVUeXBlVmFsaWRhdG9yLnNwZWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBWYWxpZGF0ZU9wdGlvbnMgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBtaW1lVHlwZVZhbGlkYXRvciB9IGZyb20gJy4vbWltZVR5cGVWYWxpZGF0b3InXG5cbmNvbnN0IG9wdGlvbnMgPSB7IHNpYmxpbmdEYXRhOiB7IGZpbGVuYW1lOiAnZmlsZS54eXonIH0gfSBhcyBWYWxpZGF0ZU9wdGlvbnM8XG4gIHVuZGVmaW5lZCxcbiAgdW5kZWZpbmVkLFxuICB1bmRlZmluZWRcbj5cblxuZGVzY3JpYmUoJ21pbWVUeXBlVmFsaWRhdG9yJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHNpbmdsZSBtaW1lVHlwZScsICgpID0+IHtcbiAgICBjb25zdCBtaW1lVHlwZXMgPSBbJ2ltYWdlL3BuZyddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdpbWFnZS9wbmcnLCBvcHRpb25zKSkudG9CZSh0cnVlKVxuICB9KVxuXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgbXVsdGlwbGUgbWltZVR5cGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1pbWVUeXBlcyA9IFsnaW1hZ2UvcG5nJywgJ2FwcGxpY2F0aW9uL3BkZiddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdpbWFnZS9wbmcnLCBvcHRpb25zKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgnYXBwbGljYXRpb24vcGRmJywgb3B0aW9ucykpLnRvQmUodHJ1ZSlcbiAgfSlcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHVzaW5nIHdpbGRjYXJkJywgKCkgPT4ge1xuICAgIGNvbnN0IG1pbWVUeXBlcyA9IFsnaW1hZ2UvKiddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdpbWFnZS9wbmcnLCBvcHRpb25zKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgnaW1hZ2UvZ2lmJywgb3B0aW9ucykpLnRvQmUodHJ1ZSlcbiAgfSlcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIG11bHRpcGxlIHdpbGRjYXJkcycsICgpID0+
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL21pbWVUeXBlVmFsaWRhdG9yLnNwZWMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBWYWxpZGF0ZU9wdGlvbnMgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBtaW1lVHlwZVZhbGlkYXRvciB9IGZyb20gJy4vbWltZVR5cGVWYWxpZGF0b3InXG5cbmNvbnN0IG9wdGlvbnMgPSB7IHNpYmxpbmdEYXRhOiB7IGZpbGVuYW1lOiAnZmlsZS54eXonIH0gfSBhcyBWYWxpZGF0ZU9wdGlvbnM8XG4gIHVuZGVmaW5lZCxcbiAgdW5kZWZpbmVkLFxuICB1bmRlZmluZWRcbj5cblxuZGVzY3JpYmUoJ21pbWVUeXBlVmFsaWRhdG9yJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHNpbmdsZSBtaW1lVHlwZScsICgpID0+IHtcbiAgICBjb25zdCBtaW1lVHlwZXMgPSBbJ2ltYWdlL3BuZyddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdpbWFnZS9wbmcnLCBvcHRpb25zKSkudG9CZSh0cnVlKVxuICB9KVxuXG4gIGl0KCdzaG91bGQgdmFsaWRhdGUgbXVsdGlwbGUgbWltZVR5cGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1pbWVUeXBlcyA9IFsnaW1hZ2UvcG5nJywgJ2FwcGxpY2F0aW9uL3BkZiddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdpbWFnZS9wbmcnLCBvcHRpb25zKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgnYXBwbGljYXRpb24vcGRmJywgb3B0aW9ucykpLnRvQmUodHJ1ZSlcbiAgfSlcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIHVzaW5nIHdpbGRjYXJkJywgKCkgPT4ge1xuICAgIGNvbnN0IG1pbWVUeXBlcyA9IFsnaW1hZ2UvKiddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdpbWFnZS9wbmcnLCBvcHRpb25zKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgnaW1hZ2UvZ2lmJywgb3B0aW9ucykpLnRvQmUodHJ1ZSlcbiAgfSlcblxuICBpdCgnc2hvdWxkIHZhbGlkYXRlIG11bHRpcGxlIHdpbGRjYXJkcycsICgpID0+IHtcbiAgICBjb25zdCBtaW1lVHlwZXMgPSBbJ2ltYWdlLyonLCAnYXVkaW8vKiddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdpbWFnZS9wbmcnLCBvcHRpb25zKSkudG9CZSh0cnVlKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgnYXVkaW8vbXBlZycsIG9wdGlvbnMpKS50b0JlKHRydWUpXG4gIH0pXG5cbiAgaXQoJ3Nob3VsZCBub3QgdmFsaWRhdGUgd2hlbiB1bm1hdGNoZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgbWltZVR5cGVzID0gWydpbWFnZS9wbmcnXVxuICAgIGNvbnN0IHZhbGlkYXRlID0gbWltZVR5cGVWYWxpZGF0b3IobWltZVR5cGVzKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgnYXVkaW8vbXBlZycsIG9wdGlvbnMpKS50b0JlKFwiSW52YWxpZCBmaWxlIHR5cGU6ICdhdWRpby9tcGVnJ1wiKVxuICB9KVxuXG4gIGl0KCdzaG91bGQgbm90IHZhbGlkYXRlIHdoZW4gdW5tYXRjaGVkIC0gbXVsdGlwbGUgbWltZVR5cGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1pbWVUeXBlcyA9IFsnaW1hZ2UvcG5nJywgJ2FwcGxpY2F0aW9uL3BkZiddXG4gICAgY29uc3QgdmFsaWRhdGUgPSBtaW1lVHlwZVZhbGlkYXRvcihtaW1lVHlwZXMpXG4gICAgZXhwZWN0KHZhbGlkYXRlKCdhdWRpby9tcGVnJywgb3B0aW9ucykpLnRvQmUoXCJJbnZhbGlkIGZpbGUgdHlwZTogJ2F1ZGlvL21wZWcnXCIpXG4gIH0pXG5cbiAgaXQoJ3Nob3VsZCBub3QgdmFsaWRhdGUgdXNpbmcgd2lsZGNhcmQgLSB1bm1hdGNoZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgbWltZVR5cGVzID0gWydpbWFnZS8qJ11cbiAgICBjb25zdCB2YWxpZGF0ZSA9IG1pbWVUeXBlVmFsaWRhdG9yKG1pbWVUeXBlcylcbiAgICBleHBlY3QodmFsaWRhdGUoJ2F1ZGlvL21wZWcnLCBvcHRpb25zKSkudG9CZShcIkludmFsaWQgZmlsZSB0eXBlOiAnYXVkaW8vbXBlZydcIilcbiAgfSlcblxuICBpdCgnc2hvdWxkIG5vdCB2YWxpZGF0ZSBtdWx0aXBsZSB3aWxkY2FyZHMgLSB1bm1hdGNoZWQnLCAoKSA9PiB7XG4gICAgY29uc3QgbWltZVR5cGVzID0gWydpbWFnZS8qJywgJ2F1ZGlvLyonXVxuICAgIGNvbnN0IHZhbGlkYXRlID0gbWltZVR5cGVWYWxpZGF0b3IobWltZVR5cGVzKVxuICAgIGV4cGVjdCh2YWxpZGF0ZSgndmlkZW8vbXA0Jywgb3B0aW9ucykpLnRvQmUoXCJJbnZhbGlkIGZpbGUgdHlwZTogJ3ZpZGVvL21wNCdcIilcbiAgICBleHBlY3QodmFsaWRhdGUoJ2FwcGxpY2F0aW9uL3BkZicsIG9wdGlvbnMpKS50b0JlKFwiSW52YWxpZCBmaWxlIHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnXCIpXG4gIH0pXG5cbiAgaXQoJ3Nob3VsZCBub3QgZXJyb3Igd2hlbiBtaW1lVHlwZSBpcyBtaXNzaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IG1pbWVUeXBlcyA9IFsnaW1hZ2UvKicsICdhcHBsaWNhdGlvbi9wZGYnXVxuICAgIGNvbnN0IHZhbGlkYXRlID0gbWltZVR5cGVWYWxpZGF0b3IobWltZVR5cGVzKVxuICAgIGxldCB2YWx1ZVxuICAgIGV4cGVjdCh2YWxpZGF0ZSh2YWx1ZSwgb3B0aW9ucykpLnRvQmUoJ0ludmFsaWQgZmlsZSB0eXBlJylcbiAgfSlcbn0pXG4iXSwibmFtZXMiOlsibWltZVR5cGVWYWxpZGF0b3IiLCJvcHRpb25zIiwic2libGluZ0RhdGEiLCJmaWxlbmFtZSIsImRlc2NyaWJlIiwiaXQiLCJtaW1lVHlwZXMiLCJ2YWxpZGF0ZSIsImV4cGVjdCIsInRvQmUiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsaUJBQWlCLFFBQVEsc0JBQXFCO0FBRXZELE1BQU1DLFVBQVU7SUFBRUMsYUFBYTtRQUFFQyxVQUFVO0lBQVc7QUFBRTtBQU14REMsU0FBUyxxQkFBcUI7SUFDNUJDLEdBQUcsbUNBQW1DO1FBQ3BDLE1BQU1DLFlBQVk7WUFBQztTQUFZO1FBQy9CLE1BQU1DLFdBQVdQLGtCQUFrQk07UUFDbkNFLE9BQU9ELFNBQVMsYUFBYU4sVUFBVVEsSUFBSSxDQUFDO0lBQzlDO0lBRUFKLEdBQUcsc0NBQXNDO1FBQ3ZDLE1BQU1DLFlBQVk7WUFBQztZQUFhO1NBQWtCO1FBQ2xELE1BQU1DLFdBQVdQLGtCQUFrQk07UUFDbkNFLE9BQU9ELFNBQVMsYUFBYU4sVUFBVVEsSUFBSSxDQUFDO1FBQzVDRCxPQUFPRCxTQUFTLG1CQUFtQk4sVUFBVVEsSUFBSSxDQUFDO0lBQ3BEO0lBRUFKLEdBQUcsa0NBQWtDO1FBQ25DLE1BQU1DLFlBQVk7WUFBQztTQUFVO1FBQzdCLE1BQU1DLFdBQVdQLGtCQUFrQk07UUFDbkNFLE9BQU9ELFNBQVMsYUFBYU4sVUFBVVEsSUFBSSxDQUFDO1FBQzVDRCxPQUFPRCxTQUFTLGFBQWFOLFVBQVVRLElBQUksQ0FBQztJQUM5QztJQUVBSixHQUFHLHNDQUFzQztRQUN2QyxNQUFNQyxZQUFZO1lBQUM7WUFBVztTQUFVO1FBQ3hDLE1BQU1DLFdBQVdQLGtCQUFrQk07UUFDbkNFLE9BQU9ELFNBQVMsYUFBYU4sVUFBVVEsSUFBSSxDQUFDO1FBQzVDRCxPQUFPRCxTQUFTLGNBQWNOLFVBQVVRLElBQUksQ0FBQztJQUMvQztJQUVBSixHQUFHLHNDQUFzQztRQUN2QyxNQUFNQyxZQUFZO1lBQUM7U0FBWTtRQUMvQixNQUFNQyxXQUFXUCxrQkFBa0JNO1FBQ25DRSxPQUFPRCxTQUFTLGNBQWNOLFVBQVVRLElBQUksQ0FBQztJQUMvQztJQUVBSixHQUFHLDJEQUEyRDtRQUM1RCxNQUFNQyxZQUFZO1lBQUM7WUFBYTtTQUFrQjtRQUNsRCxNQUFNQyxXQUFXUCxrQkFBa0JNO1FBQ25DRSxPQUFPRCxTQUFTLGNBQWNOLFVBQVVRLElBQUksQ0FBQztJQUMvQztJQUVBSixHQUFHLGtEQUFrRDtRQUNuRCxNQUFNQyxZQUFZO1lBQUM7U0FBVTtRQUM3QixNQUFNQyxXQUFXUCxrQkFBa0JNO1FBQ25DRSxPQUFPRCxTQUFTLGNBQWNOLFVBQVVRLElBQUksQ0FBQztJQUMvQztJQUVBSixHQUFHLHNEQUFzRDtRQUN2RCxNQUFNQyxZQUFZO1lBQUM7WUFBVztTQUFVO1FBQ3hDLE1BQU1DLFdBQVdQLGtCQUFrQk07UUFDbkNFLE9BQU9ELFNBQVMsYUFBYU4sVUFBVVEsSUFBSSxDQUFDO1FBQzVDRCxPQUFPRCxTQUFTLG1CQUFtQk4sVUFBVVEsSUFBSSxDQUFDO0lBQ3BEO0lBRUFKLEdBQUcsNkNBQTZDO1FBQzlDLE1BQU1DLFlBQVk7WUFBQztZQUFXO1NBQWtCO1FBQ2hELE1BQU1DLFdBQVdQLGtCQUFrQk07UUFDbkMsSUFBSUk7UUFDSkYsT0FBT0QsU0FBU0csT0FBT1QsVUFBVVEsSUFBSSxDQUFDO0lBQ3hDO0FBQ0YifQ==
|
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
12
|
-
const _stream = require("stream");
|
|
13
|
-
function _interop_require_default(obj) {
|
|
14
|
-
return obj && obj.__esModule ? obj : {
|
|
15
|
-
default: obj
|
|
16
|
-
};
|
|
17
|
-
}
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { Readable } from 'stream';
|
|
18
3
|
/**
|
|
19
4
|
* Save buffer data to a file.
|
|
20
5
|
* @param {Buffer} buffer - buffer to save to a file.
|
|
@@ -22,14 +7,14 @@ function _interop_require_default(obj) {
|
|
|
22
7
|
*/ const saveBufferToFile = async (buffer, filePath)=>{
|
|
23
8
|
// Setup readable stream from buffer.
|
|
24
9
|
let streamData = buffer;
|
|
25
|
-
const readStream = new
|
|
10
|
+
const readStream = new Readable();
|
|
26
11
|
readStream._read = ()=>{
|
|
27
12
|
readStream.push(streamData);
|
|
28
13
|
streamData = null;
|
|
29
14
|
};
|
|
30
15
|
// Setup file system writable stream.
|
|
31
|
-
return
|
|
16
|
+
return fs.writeFileSync(filePath, buffer);
|
|
32
17
|
};
|
|
33
|
-
|
|
18
|
+
export default saveBufferToFile;
|
|
34
19
|
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL3NhdmVCdWZmZXJUb0ZpbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHsgUmVhZGFibGUgfSBmcm9tICdzdHJlYW0nXG5cbi8qKlxuICogU2F2ZSBidWZmZXIgZGF0YSB0byBhIGZpbGUuXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIC0gYnVmZmVyIHRvIHNhdmUgdG8gYSBmaWxlLlxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVQYXRoIC0gcGF0aCB0byBhIGZpbGUuXG4gKi9cbmNvbnN0IHNhdmVCdWZmZXJUb0ZpbGUgPSBhc3luYyAoYnVmZmVyOiBCdWZmZXIsIGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgLy8gU2V0dXAgcmVhZGFibGUgc3RyZWFtIGZyb20gYnVmZmVyLlxuICBsZXQgc3RyZWFtRGF0YSA9IGJ1ZmZlclxuICBjb25zdCByZWFkU3RyZWFtID0gbmV3IFJlYWRhYmxlKClcbiAgcmVhZFN0cmVhbS5fcmVhZCA9ICgpID0+
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL3NhdmVCdWZmZXJUb0ZpbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHsgUmVhZGFibGUgfSBmcm9tICdzdHJlYW0nXG5cbi8qKlxuICogU2F2ZSBidWZmZXIgZGF0YSB0byBhIGZpbGUuXG4gKiBAcGFyYW0ge0J1ZmZlcn0gYnVmZmVyIC0gYnVmZmVyIHRvIHNhdmUgdG8gYSBmaWxlLlxuICogQHBhcmFtIHtzdHJpbmd9IGZpbGVQYXRoIC0gcGF0aCB0byBhIGZpbGUuXG4gKi9cbmNvbnN0IHNhdmVCdWZmZXJUb0ZpbGUgPSBhc3luYyAoYnVmZmVyOiBCdWZmZXIsIGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgLy8gU2V0dXAgcmVhZGFibGUgc3RyZWFtIGZyb20gYnVmZmVyLlxuICBsZXQgc3RyZWFtRGF0YSA9IGJ1ZmZlclxuICBjb25zdCByZWFkU3RyZWFtID0gbmV3IFJlYWRhYmxlKClcbiAgcmVhZFN0cmVhbS5fcmVhZCA9ICgpID0+IHtcbiAgICByZWFkU3RyZWFtLnB1c2goc3RyZWFtRGF0YSlcbiAgICBzdHJlYW1EYXRhID0gbnVsbFxuICB9XG4gIC8vIFNldHVwIGZpbGUgc3lzdGVtIHdyaXRhYmxlIHN0cmVhbS5cbiAgcmV0dXJuIGZzLndyaXRlRmlsZVN5bmMoZmlsZVBhdGgsIGJ1ZmZlcilcbn1cblxuZXhwb3J0IGRlZmF1bHQgc2F2ZUJ1ZmZlclRvRmlsZVxuIl0sIm5hbWVzIjpbImZzIiwiUmVhZGFibGUiLCJzYXZlQnVmZmVyVG9GaWxlIiwiYnVmZmVyIiwiZmlsZVBhdGgiLCJzdHJlYW1EYXRhIiwicmVhZFN0cmVhbSIsIl9yZWFkIiwicHVzaCIsIndyaXRlRmlsZVN5bmMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFFBQVEsS0FBSTtBQUNuQixTQUFTQyxRQUFRLFFBQVEsU0FBUTtBQUVqQzs7OztDQUlDLEdBQ0QsTUFBTUMsbUJBQW1CLE9BQU9DLFFBQWdCQztJQUM5QyxxQ0FBcUM7SUFDckMsSUFBSUMsYUFBYUY7SUFDakIsTUFBTUcsYUFBYSxJQUFJTDtJQUN2QkssV0FBV0MsS0FBSyxHQUFHO1FBQ2pCRCxXQUFXRSxJQUFJLENBQUNIO1FBQ2hCQSxhQUFhO0lBQ2Y7SUFDQSxxQ0FBcUM7SUFDckMsT0FBT0wsR0FBR1MsYUFBYSxDQUFDTCxVQUFVRDtBQUNwQztBQUVBLGVBQWVELGlCQUFnQiJ9
|
package/dist/uploads/types.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
2
|
import type express from 'express';
|
|
3
3
|
import type serveStatic from 'serve-static';
|
|
4
4
|
import type { ResizeOptions, Sharp } from 'sharp';
|
|
5
|
+
import type { PayloadRequest } from '../types/index.js';
|
|
5
6
|
export type FileSize = {
|
|
6
7
|
filename: null | string;
|
|
7
8
|
filesize: null | number;
|
|
@@ -24,8 +25,6 @@ export type FileData = {
|
|
|
24
25
|
};
|
|
25
26
|
export type ProbedImageSize = {
|
|
26
27
|
height: number;
|
|
27
|
-
mime: string;
|
|
28
|
-
type: string;
|
|
29
28
|
width: number;
|
|
30
29
|
};
|
|
31
30
|
/**
|
|
@@ -76,7 +75,12 @@ export type UploadConfig = {
|
|
|
76
75
|
focalPoint?: boolean;
|
|
77
76
|
/** Options for original upload file only. For sizes, set each formatOptions individually. */
|
|
78
77
|
formatOptions?: ImageUploadFormatOptions;
|
|
79
|
-
handlers?:
|
|
78
|
+
handlers?: ((req: PayloadRequest, args: {
|
|
79
|
+
params: {
|
|
80
|
+
collection: string;
|
|
81
|
+
filename: string;
|
|
82
|
+
};
|
|
83
|
+
}) => Promise<Response> | Response)[];
|
|
80
84
|
imageSizes?: ImageSize[];
|
|
81
85
|
mimeTypes?: string[];
|
|
82
86
|
resizeOptions?: ResizeOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/uploads/types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAClC,OAAO,KAAK,WAAW,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAEjD,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,MAAM,EAAE,IAAI,GAAG,MAAM,CAAA;IACrB,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,KAAK,EAAE,IAAI,GAAG,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/uploads/types.ts"],"names":[],"mappings":"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"}
|
package/dist/uploads/types.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
1
|
+
export { };
|
|
5
2
|
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL3R5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIGV4cHJlc3MgZnJvbSAnZXhwcmVzcydcbmltcG9ydCB0eXBlIHNlcnZlU3RhdGljIGZyb20gJ3NlcnZlLXN0YXRpYydcbmltcG9ydCB0eXBlIHsgUmVzaXplT3B0aW9ucywgU2hhcnAgfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzL2luZGV4LmpzJ1xuXG5leHBvcnQgdHlwZSBGaWxlU2l6ZSA9IHtcbiAgZmlsZW5hbWU6IG51bGwgfCBzdHJpbmdcbiAgZmlsZXNpemU6IG51bGwgfCBudW1iZXJcbiAgaGVpZ2h0OiBudWxsIHwgbnVtYmVyXG4gIG1pbWVUeXBlOiBudWxsIHwgc3RyaW5nXG4gIHdpZHRoOiBudWxsIHwgbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVTaXplcyA9IHtcbiAgW3NpemU6IHN0cmluZ106IEZpbGVTaXplXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVEYXRhID0ge1xuICBmaWxlbmFtZTogc3RyaW5nXG4gIGZpbGVzaXplOiBudW1iZXJcbiAgaGVpZ2h0OiBudW1iZXJcbiAgbWltZVR5cGU6IHN0cmluZ1xuICBzaXplczogRmlsZVNpemVzXG4gIHRlbXBGaWxlUGF0aD86IHN0cmluZ1xuICB1cmw/OiBzdHJpbmdcbiAgd2lkdGg6IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBQcm9iZWRJbWFnZVNpemUgPSB7XG4gIGhlaWdodDogbnVtYmVyXG4gIHdpZHRoOiBudW1iZXJcbn1cblxuLyoqXG4gKiBQYXJhbXMgc2VudCB0byB0aGUgc2hhcnAgdG9Gb3JtYXQoKSBmdW5jdGlvblxuICogQGxpbmsgaHR0cHM6Ly9zaGFycC5waXhlbHBsdW1iaW5nLmNvbS9hcGktb3V0cHV0I3RvZm9ybWF0XG4gKi9cbmV4cG9ydCB0eXBlIEltYWdlVXBsb2FkRm9ybWF0T3B0aW9ucyA9IHtcbiAgZm9ybWF0OiBQYXJhbWV0ZXJzPFNoYXJwWyd0b0Zvcm1hdCddPlswXVxuICBvcHRpb25zPzogUGFyYW1ldGVyczxTaGFycFsndG9Gb3JtYXQnXT5bMV1cbn1cblxuLyoqXG4gKiBQYXJhbXMgc2VudCB0byB0aGUgc2hhcnAgdHJpbSgpIGZ1bmN0aW9uXG4gKiBAbGluayBodHRwczovL3NoYXJwLnBpeGVscGx1bWJpbmcuY29tL2FwaS1yZXNpemUjdHJpbVxuICovXG5leHBvcnQgdHlwZSBJbWFnZVVwbG9hZFRyaW1PcHRpb25zID0gUGFyYW1ldGVyczxTaGFycFsndHJpbSddPlswXVxuXG5leHBvcnQgdHlwZSBJbWFnZVNpemUgPSBPbWl0PFJlc2l6ZU9wdGlvbnMsICd3aXRob3V0RW5sYXJnZW1lbnQnPiAmIHtcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHByZWZlciBwb3NpdGlvblxuICAgKi9cbiAgY3JvcD86IHN0cmluZyAvLyBjb21lcyBmcm9tIHNoYXJwIHBhY2thZ2VcbiAgZm9ybWF0T3B0aW9ucz86IEltYWdlVXBsb2FkRm9ybWF0T3B0aW9uc1xuICBuYW1lOiBzdHJpbmdcbiAgdHJpbU9wdGlvbnM/OiBJbWFnZVVwbG9hZFRyaW1PcHRpb25zXG4gIC8qKlxuICAgKiBXaGVuIGFuIHVwbG9hZGVkIGltYWdlIGlzIHNtYWxsZXIgdGhhbiB0aGUgZGVmaW5lZCBpbWFnZSBzaXplLCB3ZSBoYXZlIDMgb3B0aW9uczpcbiAgICpcbiAgICogYHVuZGVmaW5lZCB8IGZhbHNlIHwgdHJ1ZWBcbiAgICpcbiAgICogMS4gYHVuZGVmaW5lZGAgW2RlZmF1bHRdOiB1cGxvYWRpbmcgaW1hZ2VzIHdpdGggc21hbGxlciB3aWR0aCBBTkQgaGVpZ2h0IHRoYW4gdGhlIGltYWdlIHNpemUgd2lsbCByZXR1cm4gbnVsbFxuICAgKiAyLiBgZmFsc2VgOiBhbHdheXMgZW5sYXJnZSBpbWFnZXMgdG8gdGhlIGltYWdlIHNpemVcbiAgICogMy4gYHRydWVgOiBpZiB0aGUgaW1hZ2UgaXMgc21hbGxlciB0aGFuIHRoZSBpbWFnZSBzaXplLCByZXR1cm4gdGhlIG9yaWdpbmFsIGltYWdlXG4gICAqL1xuICB3aXRob3V0RW5sYXJnZW1lbnQ/OiBSZXNpemVPcHRpb25zWyd3aXRob3V0RW5sYXJnZW1lbnQnXVxufVxuXG5leHBvcnQgdHlwZSBHZXRBZG1pblRodW1ibmFpbCA9IChhcmdzOiB7IGRvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfSkgPT4gZmFsc2UgfCBudWxsIHwgc3RyaW5nXG5cbmV4cG9ydCB0eXBlIFVwbG9hZENvbmZpZyA9IHtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYW4gYWRtaW4gdGh1bWJuYWlsLCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgUmVhY3QgY29tcG9uZW50IG9yIGEgc3RyaW5nLlxuICAgKiAtIElmIGEgc3RyaW5nLCBpdCBzaG91bGQgYmUgb25lIG9mIHRoZSBpbWFnZSBzaXplIG5hbWVzLlxuICAgKiAtIElmIGEgUmVhY3QgY29tcG9uZW50LCByZWdpc3RlciBhIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSB0aHVtYm5haWwgVVJMIHVzaW5nIHRoZSBgdXNlQWRtaW5UaHVtYm5haWxgIGhvb2suXG4gICAqKi9cbiAgYWRtaW5UaHVtYm5haWw/OiBSZWFjdC5Db21wb25lbnRUeXBlIHwgc3RyaW5nXG4gIGNyb3A/OiBib29sZWFuXG4gIGRpc2FibGVMb2NhbFN0b3JhZ2U/OiBib29sZWFuXG4gIGZpbGVzUmVxdWlyZWRPbkNyZWF0ZT86IGJvb2xlYW5cbiAgZm9jYWxQb2ludD86IGJvb2xlYW5cbiAgLyoqIE9wdGlvbnMgZm9yIG9yaWdpbmFsIHVwbG9hZCBmaWxlIG9ubHkuIEZvciBzaXplcywgc2V0IGVhY2ggZm9ybWF0T3B0aW9ucyBpbmRpdmlkdWFsbHkuICovXG4gIGZvcm1hdE9wdGlvbnM/OiBJbWFnZVVwbG9hZEZvcm1hdE9wdGlvbnNcbiAgaGFuZGxlcnM/OiAoKFxuICAgIHJlcTogUGF5bG9hZFJlcXVlc3QsXG4gICAgYXJnczogeyBwYXJhbXM6IHsgY29sbGVjdGlvbjogc3RyaW5nOyBmaWxlbmFtZTogc3RyaW5nIH0gfSxcbiAgKSA9PiBQcm9taXNlPFJlc3BvbnNlPiB8IFJlc3BvbnNlKVtdXG4gIGltYWdlU2l6ZXM/OiBJbWFnZVNpemVbXVxuICBtaW1lVHlwZXM/OiBzdHJpbmdbXVxuICByZXNpemVPcHRpb25zPzogUmVzaXplT3B0aW9uc1xuICBzdGF0aWNEaXI/OiBzdHJpbmdcbiAgc3RhdGljT3B0aW9ucz86IHNlcnZlU3RhdGljLlNlcnZlU3RhdGljT3B0aW9uczxleHByZXNzLlJlc3BvbnNlPGFueSwgUmVjb3JkPHN0cmluZywgYW55Pj4+XG4gIHRyaW1PcHRpb25zPzogSW1hZ2VVcGxvYWRUcmltT3B0aW9uc1xufVxuXG5leHBvcnQgdHlwZSBTYW5pdGl6ZWRVcGxvYWRDb25maWcgPSBVcGxvYWRDb25maWcgJiB7XG4gIHN0YXRpY0RpcjogVXBsb2FkQ29uZmlnWydzdGF0aWNEaXInXVxufVxuXG5leHBvcnQgdHlwZSBGaWxlID0ge1xuICBkYXRhOiBCdWZmZXJcbiAgbWltZXR5cGU6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIEZpbGVUb1NhdmUgPSB7XG4gIGJ1ZmZlcjogQnVmZmVyXG4gIHBhdGg6IHN0cmluZ1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJHQSxXQUdDIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { SanitizedCollectionConfig } from '../collections/config/types';
|
|
2
|
-
import type { SanitizedConfig } from '../config/types';
|
|
3
|
-
import type { PayloadRequest } from '../types';
|
|
1
|
+
import type { SanitizedCollectionConfig } from '../collections/config/types.js';
|
|
2
|
+
import type { SanitizedConfig } from '../config/types.js';
|
|
3
|
+
import type { PayloadRequest } from '../types/index.js';
|
|
4
4
|
type Args = {
|
|
5
5
|
collectionConfig: SanitizedCollectionConfig;
|
|
6
6
|
config: SanitizedConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unlinkTempFiles.d.ts","sourceRoot":"","sources":["../../src/uploads/unlinkTempFiles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"unlinkTempFiles.d.ts","sourceRoot":"","sources":["../../src/uploads/unlinkTempFiles.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMvD,KAAK,IAAI,GAAG;IACV,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,MAAM,EAAE,eAAe,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AACD;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAezD,CAAA"}
|
|
@@ -1,23 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return unlinkTempFiles;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
12
|
-
const _util = require("util");
|
|
13
|
-
const _mapAsync = require("../utilities/mapAsync");
|
|
14
|
-
function _interop_require_default(obj) {
|
|
15
|
-
return obj && obj.__esModule ? obj : {
|
|
16
|
-
default: obj
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
const unlinkFile = (0, _util.promisify)(_fs.default.unlink);
|
|
20
|
-
const unlinkTempFiles = async ({ collectionConfig, config, req })=>{
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
import { mapAsync } from '../utilities/mapAsync.js';
|
|
4
|
+
const unlinkFile = promisify(fs.unlink);
|
|
5
|
+
/**
|
|
6
|
+
* Cleanup temp files after operation lifecycle
|
|
7
|
+
*/ export const unlinkTempFiles = async ({ collectionConfig, config, req })=>{
|
|
21
8
|
if (config.upload?.useTempFiles && collectionConfig.upload) {
|
|
22
9
|
const { file } = req;
|
|
23
10
|
const fileArray = [
|
|
@@ -25,7 +12,7 @@ const unlinkTempFiles = async ({ collectionConfig, config, req })=>{
|
|
|
25
12
|
file
|
|
26
13
|
}
|
|
27
14
|
];
|
|
28
|
-
await
|
|
15
|
+
await mapAsync(fileArray, async ({ file })=>{
|
|
29
16
|
// Still need this check because this will not be populated if using local API
|
|
30
17
|
if (file?.tempFilePath) {
|
|
31
18
|
await unlinkFile(file.tempFilePath);
|
|
@@ -34,4 +21,4 @@ const unlinkTempFiles = async ({ collectionConfig, config, req })=>{
|
|
|
34
21
|
}
|
|
35
22
|
};
|
|
36
23
|
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL3VubGlua1RlbXBGaWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMuanMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcy5qcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi90eXBlcy9pbmRleC5qcydcblxuaW1wb3J0IHsgbWFwQXN5bmMgfSBmcm9tICcuLi91dGlsaXRpZXMvbWFwQXN5bmMuanMnXG5cbmNvbnN0IHVubGlua0ZpbGUgPSBwcm9taXNpZnkoZnMudW5saW5rKVxuXG50eXBlIEFyZ3MgPSB7XG4gIGNvbGxlY3Rpb25Db25maWc6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxufVxuLyoqXG4gKiBDbGVhbnVwIHRlbXAgZmlsZXMgYWZ0ZXIgb3BlcmF0aW9uIGxpZmVjeWNsZVxuICovXG5leHBvcnQgY29uc3QgdW5saW5rVGVtcEZpbGVzOiAoYXJnczogQXJncykgPT4gUHJvbWlzZTx2b2lkPiA9IGFzeW5jICh7XG4gIGNvbGxlY3Rpb25Db25maWcsXG4gIGNvbmZpZyxcbiAgcmVxLFxufSkgPT4ge1xuICBpZiAoY29uZmlnLnVwbG9hZD8udXNlVGVtcEZpbGVzICYmIGNvbGxlY3Rpb25Db25maWcudXBsb2FkKSB7XG4gICAgY29uc3QgeyBmaWxlIH0gPSByZXFcbiAgICBjb25zdCBmaWxlQXJyYXkgPSBbeyBmaWxlIH1dXG4gICAgYXdhaXQgbWFwQXN5bmMoZmlsZUFycmF5LCBhc3luYyAoeyBmaWxlIH0pID0+IHtcbiAgICAgIC8vIFN0aWxsIG5lZWQgdGhpcyBjaGVjayBiZWNhdXNlIHRoaXMgd2lsbCBub3QgYmUgcG9wdWxhdGVkIGlmIHVzaW5nIGxvY2FsIEFQSVxuICAgICAgaWYgKGZpbGU/LnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBhd2FpdCB1bmxpbmtGaWxlKGZpbGUudGVtcEZpbGVQYXRoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJmcyIsInByb21pc2lmeSIsIm1hcEFzeW5jIiwidW5saW5rRmlsZSIsInVubGluayIsInVubGlua1RlbXBGaWxlcyIsImNvbGxlY3Rpb25Db25maWciLCJjb25maWciLCJyZXEiLCJ1cGxvYWQiLCJ1c2VUZW1wRmlsZXMiLCJmaWxlIiwiZmlsZUFycmF5IiwidGVtcEZpbGVQYXRoIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxRQUFRLEtBQUk7QUFDbkIsU0FBU0MsU0FBUyxRQUFRLE9BQU07QUFNaEMsU0FBU0MsUUFBUSxRQUFRLDJCQUEwQjtBQUVuRCxNQUFNQyxhQUFhRixVQUFVRCxHQUFHSSxNQUFNO0FBT3RDOztDQUVDLEdBQ0QsT0FBTyxNQUFNQyxrQkFBaUQsT0FBTyxFQUNuRUMsZ0JBQWdCLEVBQ2hCQyxNQUFNLEVBQ05DLEdBQUcsRUFDSjtJQUNDLElBQUlELE9BQU9FLE1BQU0sRUFBRUMsZ0JBQWdCSixpQkFBaUJHLE1BQU0sRUFBRTtRQUMxRCxNQUFNLEVBQUVFLElBQUksRUFBRSxHQUFHSDtRQUNqQixNQUFNSSxZQUFZO1lBQUM7Z0JBQUVEO1lBQUs7U0FBRTtRQUM1QixNQUFNVCxTQUFTVSxXQUFXLE9BQU8sRUFBRUQsSUFBSSxFQUFFO1lBQ3ZDLDhFQUE4RTtZQUM5RSxJQUFJQSxNQUFNRSxjQUFjO2dCQUN0QixNQUFNVixXQUFXUSxLQUFLRSxZQUFZO1lBQ3BDO1FBQ0Y7SUFDRjtBQUNGLEVBQUMifQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Payload } from '
|
|
2
|
-
import type { PayloadRequest } from '../
|
|
3
|
-
import type { FileToSave } from './types';
|
|
1
|
+
import type { Payload } from '../index.js';
|
|
2
|
+
import type { PayloadRequest } from '../types/index.js';
|
|
3
|
+
import type { FileToSave } from './types.js';
|
|
4
4
|
export declare const uploadFiles: (payload: Payload, files: FileToSave[], req: PayloadRequest) => Promise<void>;
|
|
5
5
|
//# sourceMappingURL=uploadFiles.d.ts.map
|