payload 3.0.0-alpha.20 → 3.0.0-alpha.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth.js +5 -44
- package/config.js +10 -59
- package/database.js +21 -108
- package/dist/admin/RichText.js +2 -5
- 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.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.js +2 -5
- package/dist/admin/forms/Label.js +2 -5
- package/dist/admin/forms/RowLabel.js +2 -5
- package/dist/admin/types.js +2 -5
- package/dist/admin/views/types.js +2 -5
- package/dist/assets/assets.d.js +0 -1
- package/dist/auth/baseFields/accountLock.js +2 -12
- package/dist/auth/baseFields/apiKey.js +6 -21
- package/dist/auth/baseFields/auth.js +6 -16
- package/dist/auth/baseFields/verification.js +4 -14
- package/dist/auth/cookies.js +6 -33
- package/dist/auth/crypto.js +7 -30
- package/dist/auth/defaultAccess.js +2 -12
- package/dist/auth/defaultUser.js +4 -14
- package/dist/auth/executeAccess.js +5 -15
- package/dist/auth/extractJWT.js +4 -14
- package/dist/auth/getAccessResults.js +5 -15
- package/dist/auth/getAuthenticatedUser.js +2 -12
- package/dist/auth/getFieldsToSign.js +5 -15
- package/dist/auth/index.js +4 -27
- package/dist/auth/isLocked.js +2 -12
- package/dist/auth/operations/access.js +12 -22
- package/dist/auth/operations/forgotPassword.js +17 -32
- package/dist/auth/operations/init.js +2 -12
- package/dist/auth/operations/local/forgotPassword.js +8 -18
- package/dist/auth/operations/local/index.js +12 -27
- package/dist/auth/operations/local/login.js +8 -18
- package/dist/auth/operations/local/resetPassword.js +8 -18
- package/dist/auth/operations/local/unlock.js +8 -18
- package/dist/auth/operations/local/verifyEmail.js +8 -18
- package/dist/auth/operations/login.js +32 -47
- package/dist/auth/operations/logout.js +6 -21
- package/dist/auth/operations/me.js +4 -19
- package/dist/auth/operations/refresh.js +19 -34
- package/dist/auth/operations/registerFirstUser.js +10 -20
- package/dist/auth/operations/resetPassword.js +20 -43
- package/dist/auth/operations/unlock.js +16 -39
- package/dist/auth/operations/verifyEmail.js +14 -37
- package/dist/auth/sendVerificationEmail.js +4 -14
- package/dist/auth/strategies/apiKey.js +4 -19
- package/dist/auth/strategies/jwt.js +6 -21
- package/dist/auth/strategies/local/authenticate.js +6 -21
- package/dist/auth/strategies/local/generatePasswordSaltHash.js +7 -22
- package/dist/auth/strategies/local/incrementLoginAttempts.js +2 -12
- package/dist/auth/strategies/local/register.js +6 -16
- package/dist/auth/strategies/local/resetLoginAttempts.js +2 -12
- package/dist/auth/types.js +2 -12
- package/dist/bin/generateTypes.js +12 -27
- package/dist/bin/index.js +11 -20
- package/dist/bin/loadEnv.js +13 -26
- package/dist/bin/migrate.js +15 -30
- package/dist/bundlers/mocks/db-mongodb.js +0 -1
- package/dist/bundlers/mocks/db-postgres.js +2 -12
- package/dist/bundlers/mocks/dotENV.js +2 -12
- package/dist/bundlers/mocks/emptyModule.js +2 -12
- package/dist/bundlers/mocks/fileMock.js +2 -12
- package/dist/bundlers/types.js +2 -5
- package/dist/collections/config/build.js +2 -12
- package/dist/collections/config/defaults.js +9 -32
- package/dist/collections/config/sanitize.js +34 -49
- package/dist/collections/config/schema.js +157 -172
- package/dist/collections/config/types.js +2 -5
- package/dist/collections/dataloader.js +8 -23
- package/dist/collections/operations/create.js +38 -53
- package/dist/collections/operations/delete.js +27 -42
- package/dist/collections/operations/deleteByID.js +27 -42
- package/dist/collections/operations/docAccess.js +10 -20
- package/dist/collections/operations/find.js +25 -40
- package/dist/collections/operations/findByID.js +21 -36
- package/dist/collections/operations/findVersionByID.js +19 -34
- package/dist/collections/operations/findVersions.js +20 -35
- package/dist/collections/operations/local/create.js +10 -25
- package/dist/collections/operations/local/delete.js +10 -20
- package/dist/collections/operations/local/find.js +8 -18
- package/dist/collections/operations/local/findByID.js +8 -18
- package/dist/collections/operations/local/findVersionByID.js +8 -18
- package/dist/collections/operations/local/findVersions.js +8 -18
- package/dist/collections/operations/local/index.js +20 -35
- package/dist/collections/operations/local/restoreVersion.js +8 -18
- package/dist/collections/operations/local/update.js +12 -27
- package/dist/collections/operations/restoreVersion.js +26 -41
- package/dist/collections/operations/update.js +43 -58
- package/dist/collections/operations/updateByID.js +44 -59
- package/dist/collections/operations/utils.js +3 -12
- package/dist/config/build.js +9 -15
- package/dist/config/clientFiles.js +2 -12
- package/dist/config/createClientConfig.js +4 -25
- package/dist/config/defaults.js +4 -19
- package/dist/config/find.js +18 -33
- package/dist/config/load.js +6 -21
- package/dist/config/sanitize.js +25 -40
- package/dist/config/schema.js +115 -138
- package/dist/config/shared/adminViewSchema.js +9 -24
- package/dist/config/shared/componentSchema.js +21 -50
- package/dist/config/types.js +9 -21
- package/dist/config/validate.js +15 -71
- package/dist/database/combineQueries.js +4 -14
- package/dist/database/createDatabaseAdapter.js +14 -24
- package/dist/database/flattenWhereToOperators.js +2 -12
- package/dist/database/getLocalizedPaths.js +7 -22
- package/dist/database/migrations/createMigration.js +7 -22
- package/dist/database/migrations/getMigrations.js +4 -12
- package/dist/database/migrations/migrate.js +12 -22
- package/dist/database/migrations/migrateDown.js +12 -22
- package/dist/database/migrations/migrateRefresh.js +16 -24
- package/dist/database/migrations/migrateReset.js +12 -22
- package/dist/database/migrations/migrateStatus.js +8 -18
- package/dist/database/migrations/migrationTemplate.js +2 -12
- package/dist/database/migrations/migrationsCollection.js +2 -12
- package/dist/database/migrations/readMigrationFiles.js +10 -23
- package/dist/database/queryValidation/types.js +2 -5
- package/dist/database/queryValidation/validateQueryPaths.js +13 -28
- package/dist/database/queryValidation/validateSearchParams.js +13 -21
- package/dist/database/types.js +2 -5
- package/dist/email/build.js +11 -26
- package/dist/email/defaults.js +2 -12
- 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.js +7 -22
- package/dist/errors/DuplicateCollection.js +4 -19
- package/dist/errors/DuplicateFieldName.js +4 -19
- package/dist/errors/DuplicateGlobal.js +4 -19
- package/dist/errors/ErrorDeletingFile.js +7 -22
- package/dist/errors/FileUploadError.js +7 -22
- package/dist/errors/Forbidden.js +7 -22
- package/dist/errors/InvalidConfiguration.js +6 -21
- package/dist/errors/InvalidFieldName.js +4 -19
- package/dist/errors/InvalidFieldRelationship.js +4 -19
- package/dist/errors/InvalidSchema.js +6 -21
- package/dist/errors/LockedAuth.js +7 -22
- package/dist/errors/MissingCollectionLabel.js +4 -19
- package/dist/errors/MissingFieldInputOptions.js +4 -19
- package/dist/errors/MissingFieldType.js +6 -21
- package/dist/errors/MissingFile.js +7 -22
- package/dist/errors/NotFound.js +7 -22
- package/dist/errors/QueryError.js +6 -21
- package/dist/errors/TimestampsRequired.js +4 -19
- package/dist/errors/UnathorizedError.js +7 -22
- package/dist/errors/ValidationError.js +8 -23
- package/dist/errors/index.js +20 -94
- package/dist/errors/types.js +2 -19
- package/dist/exports/auth.js +5 -44
- package/dist/exports/components/utilities.js +0 -1
- package/dist/exports/config.js +10 -59
- package/dist/exports/database.js +21 -108
- package/dist/exports/errors.js +2 -68
- package/dist/exports/fields/index.js +3 -26
- package/dist/exports/fields/validations.js +2 -19
- package/dist/exports/operations.js +29 -125
- package/dist/exports/types.js +4 -74
- package/dist/exports/utilities.js +28 -141
- package/dist/exports/versions.js +9 -45
- package/dist/express/middleware/errorHandler.js +0 -1
- package/dist/express/middleware/index.js +0 -1
- package/dist/fields/baseFields/baseBlockFields.js +4 -14
- package/dist/fields/baseFields/baseIDField.js +4 -19
- package/dist/fields/config/sanitize.js +24 -39
- package/dist/fields/config/sanitize.spec.js +25 -29
- package/dist/fields/config/schema.js +329 -424
- package/dist/fields/config/types.js +15 -69
- package/dist/fields/getDefaultValue.js +2 -12
- package/dist/fields/hooks/afterChange/index.js +6 -16
- package/dist/fields/hooks/afterChange/promise.js +14 -22
- package/dist/fields/hooks/afterChange/traverseFields.js +4 -14
- package/dist/fields/hooks/afterRead/index.js +6 -16
- package/dist/fields/hooks/afterRead/promise.js +28 -36
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +5 -15
- 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.js +8 -18
- package/dist/fields/hooks/beforeChange/promise.js +26 -35
- package/dist/fields/hooks/beforeChange/traverseFields.js +4 -14
- package/dist/fields/hooks/beforeValidate/index.js +6 -16
- package/dist/fields/hooks/beforeValidate/promise.js +30 -39
- package/dist/fields/hooks/beforeValidate/traverseFields.js +4 -14
- package/dist/fields/mergeBaseFields.js +8 -23
- package/dist/fields/sortableFieldTypes.js +2 -12
- package/dist/fields/validations.js +31 -97
- package/dist/fields/validations.spec.js +73 -77
- package/dist/globals/config/build.js +0 -1
- package/dist/globals/config/sanitize.js +17 -32
- package/dist/globals/config/schema.js +55 -70
- package/dist/globals/config/types.js +2 -5
- package/dist/globals/graphql/resolvers/docAccess.js +0 -1
- package/dist/globals/operations/docAccess.js +10 -20
- package/dist/globals/operations/findOne.js +14 -29
- package/dist/globals/operations/findVersionByID.js +18 -33
- package/dist/globals/operations/findVersions.js +20 -35
- package/dist/globals/operations/local/findOne.js +8 -18
- package/dist/globals/operations/local/findVersionByID.js +8 -18
- package/dist/globals/operations/local/findVersions.js +8 -18
- package/dist/globals/operations/local/index.js +12 -27
- package/dist/globals/operations/local/restoreVersion.js +8 -18
- package/dist/globals/operations/local/update.js +8 -18
- package/dist/globals/operations/restoreVersion.js +16 -31
- package/dist/globals/operations/update.js +23 -38
- package/dist/index.js +47 -71
- package/dist/localization/middleware.js +2 -12
- package/dist/localization/sanitizeFallbackLocale.js +2 -12
- package/dist/preferences/deleteUserPreferences.js +2 -12
- package/dist/preferences/operations/delete.js +10 -25
- package/dist/preferences/operations/findOne.js +2 -12
- package/dist/preferences/operations/update.js +8 -23
- package/dist/preferences/preferencesCollection.js +8 -18
- package/dist/preferences/requestHandlers/delete.js +6 -21
- package/dist/preferences/requestHandlers/findOne.js +6 -21
- package/dist/preferences/requestHandlers/update.js +6 -21
- package/dist/preferences/types.js +2 -5
- package/dist/translations/extractTranslations.js +4 -14
- package/dist/translations/getLocalI18n.js +5 -15
- package/dist/types/constants.js +2 -12
- package/dist/types/index.js +2 -12
- package/dist/uploads/canResizeImage.js +2 -12
- package/dist/uploads/cropImage.js +3 -21
- package/dist/uploads/deleteAssociatedFiles.js +11 -26
- 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.js +31 -46
- package/dist/uploads/getBaseFields.js +6 -16
- package/dist/uploads/getExternalFile.js +5 -15
- package/dist/uploads/getFileByPath.js +10 -25
- package/dist/uploads/getImageSize.js +7 -22
- package/dist/uploads/getSafeFilename.js +8 -23
- package/dist/uploads/imageResizer.js +27 -42
- package/dist/uploads/isImage.js +2 -12
- package/dist/uploads/mimeTypeValidator.js +2 -12
- package/dist/uploads/mimeTypeValidator.spec.js +11 -15
- package/dist/uploads/saveBufferToFile.js +6 -21
- package/dist/uploads/types.js +2 -5
- package/dist/uploads/unlinkTempFiles.js +9 -22
- package/dist/uploads/uploadFiles.js +6 -21
- package/dist/utilities/checkDuplicateCollections.js +4 -14
- package/dist/utilities/combineMerge.js +4 -19
- package/dist/utilities/commitTransaction.js +4 -12
- package/dist/utilities/configToJSONSchema.js +22 -41
- 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.js +6 -16
- package/dist/utilities/deepCopyObject.js +2 -12
- package/dist/utilities/deepMerge.js +2 -12
- package/dist/utilities/fieldSchemaToJSON.js +2 -12
- package/dist/utilities/flattenTopLevelFields.js +6 -16
- package/dist/utilities/formatLabels.js +9 -70
- package/dist/utilities/formatLabels.spec.js +8 -12
- package/dist/utilities/getCSSVariable.js +2 -12
- package/dist/utilities/getEntityPolicies.js +4 -14
- 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.js +5 -12
- package/dist/utilities/isEntityHidden.js +2 -12
- package/dist/utilities/isNumber.js +2 -12
- package/dist/utilities/isValidID.js +5 -20
- package/dist/utilities/isolateObjectProperty.js +2 -12
- package/dist/utilities/killTransaction.js +4 -12
- package/dist/utilities/logger.js +8 -34
- package/dist/utilities/mapAsync.js +2 -12
- package/dist/utilities/overwriteMerge.js +2 -12
- package/dist/utilities/parseCookies.js +4 -14
- package/dist/utilities/pinoPretty.js +0 -1
- package/dist/utilities/sanitizeInternalFields.js +2 -12
- package/dist/utilities/setsAreEqual.js +2 -12
- package/dist/utilities/telemetry/events/adminInit.js +7 -17
- package/dist/utilities/telemetry/events/serverInit.js +4 -14
- package/dist/utilities/telemetry/index.js +17 -40
- 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.js +5 -23
- package/dist/versions/buildCollectionFields.js +2 -12
- package/dist/versions/buildGlobalFields.js +2 -12
- package/dist/versions/deleteCollectionVersions.js +2 -12
- package/dist/versions/drafts/appendVersionToQueryKey.js +2 -12
- package/dist/versions/drafts/getQueryDraftsSort.js +2 -12
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js +12 -27
- package/dist/versions/enforceMaxVersions.js +2 -12
- package/dist/versions/getLatestCollectionVersion.js +4 -14
- package/dist/versions/getLatestGlobalVersion.js +4 -14
- package/dist/versions/getVersionsModelName.js +2 -12
- package/dist/versions/saveVersion.js +8 -23
- package/dist/versions/types.js +2 -5
- package/errors.js +2 -68
- package/operations.js +29 -125
- package/package.json +2 -2
- package/types.js +4 -74
- package/utilities.js +28 -141
- package/versions.js +9 -45
package/dist/index.js
CHANGED
|
@@ -1,42 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return _default;
|
|
17
|
-
},
|
|
18
|
-
getPayload: function() {
|
|
19
|
-
return getPayload;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
const _crypto = /*#__PURE__*/ _interop_require_default(require("crypto"));
|
|
23
|
-
const _crypto1 = require("./auth/crypto");
|
|
24
|
-
const _apiKey = require("./auth/strategies/apiKey");
|
|
25
|
-
const _jwt = require("./auth/strategies/jwt");
|
|
26
|
-
const _local = /*#__PURE__*/ _interop_require_default(require("./collections/operations/local"));
|
|
27
|
-
const _validate = /*#__PURE__*/ _interop_require_default(require("./config/validate"));
|
|
28
|
-
const _build = /*#__PURE__*/ _interop_require_default(require("./email/build"));
|
|
29
|
-
const _defaults = require("./email/defaults");
|
|
30
|
-
const _sendEmail = /*#__PURE__*/ _interop_require_default(require("./email/sendEmail"));
|
|
31
|
-
const _local1 = /*#__PURE__*/ _interop_require_default(require("./globals/operations/local"));
|
|
32
|
-
const _logger = /*#__PURE__*/ _interop_require_default(require("./utilities/logger"));
|
|
33
|
-
const _serverInit = require("./utilities/telemetry/events/serverInit");
|
|
34
|
-
function _interop_require_default(obj) {
|
|
35
|
-
return obj && obj.__esModule ? obj : {
|
|
36
|
-
default: obj
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
class BasePayload {
|
|
1
|
+
import crypto from 'crypto';
|
|
2
|
+
import { decrypt, encrypt } from './auth/crypto';
|
|
3
|
+
import { APIKeyAuthentication } from './auth/strategies/apiKey';
|
|
4
|
+
import { JWTAuthentication } from './auth/strategies/jwt';
|
|
5
|
+
import localOperations from './collections/operations/local';
|
|
6
|
+
import validate from './config/validate';
|
|
7
|
+
import buildEmail from './email/build';
|
|
8
|
+
import { defaults as emailDefaults } from './email/defaults';
|
|
9
|
+
import sendEmail from './email/sendEmail';
|
|
10
|
+
import localGlobalOperations from './globals/operations/local';
|
|
11
|
+
import Logger from './utilities/logger';
|
|
12
|
+
import { serverInit as serverInitTelemetry } from './utilities/telemetry/events/serverInit';
|
|
13
|
+
/**
|
|
14
|
+
* @description Payload
|
|
15
|
+
*/ export class BasePayload {
|
|
40
16
|
authStrategies;
|
|
41
17
|
collections = {};
|
|
42
18
|
config;
|
|
@@ -45,14 +21,14 @@ class BasePayload {
|
|
|
45
21
|
* @param options
|
|
46
22
|
* @returns created document
|
|
47
23
|
*/ create = async (options)=>{
|
|
48
|
-
const { create } =
|
|
24
|
+
const { create } = localOperations;
|
|
49
25
|
return create(this, options);
|
|
50
26
|
};
|
|
51
27
|
db;
|
|
52
|
-
decrypt =
|
|
28
|
+
decrypt = decrypt;
|
|
53
29
|
email;
|
|
54
30
|
emailOptions;
|
|
55
|
-
encrypt =
|
|
31
|
+
encrypt = encrypt;
|
|
56
32
|
// TODO: re-implement or remove?
|
|
57
33
|
// errorHandler: ErrorHandler
|
|
58
34
|
extensions;
|
|
@@ -61,15 +37,15 @@ class BasePayload {
|
|
|
61
37
|
* @param options
|
|
62
38
|
* @returns documents satisfying query
|
|
63
39
|
*/ find = async (options)=>{
|
|
64
|
-
const { find } =
|
|
40
|
+
const { find } = localOperations;
|
|
65
41
|
return find(this, options);
|
|
66
42
|
};
|
|
67
43
|
findByID = async (options)=>{
|
|
68
|
-
const { findByID } =
|
|
44
|
+
const { findByID } = localOperations;
|
|
69
45
|
return findByID(this, options);
|
|
70
46
|
};
|
|
71
47
|
findGlobal = async (options)=>{
|
|
72
|
-
const { findOne } =
|
|
48
|
+
const { findOne } = localGlobalOperations;
|
|
73
49
|
return findOne(this, options);
|
|
74
50
|
};
|
|
75
51
|
/**
|
|
@@ -77,7 +53,7 @@ class BasePayload {
|
|
|
77
53
|
* @param options
|
|
78
54
|
* @returns global version with specified ID
|
|
79
55
|
*/ findGlobalVersionByID = async (options)=>{
|
|
80
|
-
const { findVersionByID } =
|
|
56
|
+
const { findVersionByID } = localGlobalOperations;
|
|
81
57
|
return findVersionByID(this, options);
|
|
82
58
|
};
|
|
83
59
|
/**
|
|
@@ -85,7 +61,7 @@ class BasePayload {
|
|
|
85
61
|
* @param options
|
|
86
62
|
* @returns versions satisfying query
|
|
87
63
|
*/ findGlobalVersions = async (options)=>{
|
|
88
|
-
const { findVersions } =
|
|
64
|
+
const { findVersions } = localGlobalOperations;
|
|
89
65
|
return findVersions(this, options);
|
|
90
66
|
};
|
|
91
67
|
/**
|
|
@@ -93,7 +69,7 @@ class BasePayload {
|
|
|
93
69
|
* @param options
|
|
94
70
|
* @returns version with specified ID
|
|
95
71
|
*/ findVersionByID = async (options)=>{
|
|
96
|
-
const { findVersionByID } =
|
|
72
|
+
const { findVersionByID } = localOperations;
|
|
97
73
|
return findVersionByID(this, options);
|
|
98
74
|
};
|
|
99
75
|
/**
|
|
@@ -101,11 +77,11 @@ class BasePayload {
|
|
|
101
77
|
* @param options
|
|
102
78
|
* @returns versions satisfying query
|
|
103
79
|
*/ findVersions = async (options)=>{
|
|
104
|
-
const { findVersions } =
|
|
80
|
+
const { findVersions } = localOperations;
|
|
105
81
|
return findVersions(this, options);
|
|
106
82
|
};
|
|
107
83
|
forgotPassword = async (options)=>{
|
|
108
|
-
const { forgotPassword } =
|
|
84
|
+
const { forgotPassword } = localOperations.auth;
|
|
109
85
|
return forgotPassword(this, options);
|
|
110
86
|
};
|
|
111
87
|
getAPIURL = ()=>`${this.config.serverURL}${this.config.routes.api}`;
|
|
@@ -113,7 +89,7 @@ class BasePayload {
|
|
|
113
89
|
globals;
|
|
114
90
|
logger;
|
|
115
91
|
login = async (options)=>{
|
|
116
|
-
const { login } =
|
|
92
|
+
const { login } = localOperations.auth;
|
|
117
93
|
return login(this, options);
|
|
118
94
|
};
|
|
119
95
|
/**
|
|
@@ -121,7 +97,7 @@ class BasePayload {
|
|
|
121
97
|
* @param options
|
|
122
98
|
* @returns document with specified ID
|
|
123
99
|
*/ resetPassword = async (options)=>{
|
|
124
|
-
const { resetPassword } =
|
|
100
|
+
const { resetPassword } = localOperations.auth;
|
|
125
101
|
return resetPassword(this, options);
|
|
126
102
|
};
|
|
127
103
|
/**
|
|
@@ -129,7 +105,7 @@ class BasePayload {
|
|
|
129
105
|
* @param options
|
|
130
106
|
* @returns version with specified ID
|
|
131
107
|
*/ restoreGlobalVersion = async (options)=>{
|
|
132
|
-
const { restoreVersion } =
|
|
108
|
+
const { restoreVersion } = localGlobalOperations;
|
|
133
109
|
return restoreVersion(this, options);
|
|
134
110
|
};
|
|
135
111
|
/**
|
|
@@ -137,7 +113,7 @@ class BasePayload {
|
|
|
137
113
|
* @param options
|
|
138
114
|
* @returns version with specified ID
|
|
139
115
|
*/ restoreVersion = async (options)=>{
|
|
140
|
-
const { restoreVersion } =
|
|
116
|
+
const { restoreVersion } = localOperations;
|
|
141
117
|
return restoreVersion(this, options);
|
|
142
118
|
};
|
|
143
119
|
schema;
|
|
@@ -145,21 +121,21 @@ class BasePayload {
|
|
|
145
121
|
sendEmail;
|
|
146
122
|
types;
|
|
147
123
|
unlock = async (options)=>{
|
|
148
|
-
const { unlock } =
|
|
124
|
+
const { unlock } = localOperations.auth;
|
|
149
125
|
return unlock(this, options);
|
|
150
126
|
};
|
|
151
127
|
updateGlobal = async (options)=>{
|
|
152
|
-
const { update } =
|
|
128
|
+
const { update } = localGlobalOperations;
|
|
153
129
|
return update(this, options);
|
|
154
130
|
};
|
|
155
131
|
validationRules;
|
|
156
132
|
verifyEmail = async (options)=>{
|
|
157
|
-
const { verifyEmail } =
|
|
133
|
+
const { verifyEmail } = localOperations.auth;
|
|
158
134
|
return verifyEmail(this, options);
|
|
159
135
|
};
|
|
160
136
|
versions = {};
|
|
161
137
|
delete(options) {
|
|
162
|
-
const { deleteLocal } =
|
|
138
|
+
const { deleteLocal } = localOperations;
|
|
163
139
|
return deleteLocal(this, options);
|
|
164
140
|
}
|
|
165
141
|
/**
|
|
@@ -167,15 +143,15 @@ class BasePayload {
|
|
|
167
143
|
* @param options
|
|
168
144
|
*/ // @ts-expect-error // TODO: TypeScript hallucinating again. fix later
|
|
169
145
|
async init(options) {
|
|
170
|
-
this.logger = (
|
|
146
|
+
this.logger = Logger('payload', options.loggerOptions, options.loggerDestination);
|
|
171
147
|
this.config = await options.config;
|
|
172
148
|
if (process.env.NODE_ENV !== 'production') {
|
|
173
|
-
await (
|
|
149
|
+
await validate(this.config, this.logger);
|
|
174
150
|
}
|
|
175
151
|
if (!this.config.secret) {
|
|
176
152
|
throw new Error('Error: missing secret key. A secret key is needed to secure Payload.');
|
|
177
153
|
}
|
|
178
|
-
this.secret =
|
|
154
|
+
this.secret = crypto.createHash('sha256').update(this.config.secret).digest('hex').slice(0, 32);
|
|
179
155
|
this.globals = {
|
|
180
156
|
config: this.config.globals
|
|
181
157
|
};
|
|
@@ -202,10 +178,10 @@ class BasePayload {
|
|
|
202
178
|
if (options.email && this.config.email) {
|
|
203
179
|
this.logger.warn('Email options provided in both init options and config. Using init options.');
|
|
204
180
|
}
|
|
205
|
-
this.emailOptions = emailOptions ??
|
|
206
|
-
this.email = (
|
|
207
|
-
this.sendEmail =
|
|
208
|
-
(
|
|
181
|
+
this.emailOptions = emailOptions ?? emailDefaults;
|
|
182
|
+
this.email = buildEmail(this.emailOptions, this.logger);
|
|
183
|
+
this.sendEmail = sendEmail.bind(this);
|
|
184
|
+
serverInitTelemetry(this);
|
|
209
185
|
// 1. loop over collections, if collection has auth strategy, initialize and push to array
|
|
210
186
|
let jwtStrategyEnabled = false;
|
|
211
187
|
this.authStrategies = this.config.collections.reduce((authStrategies, collection)=>{
|
|
@@ -217,7 +193,7 @@ class BasePayload {
|
|
|
217
193
|
if (collection.auth?.useAPIKey) {
|
|
218
194
|
authStrategies.push({
|
|
219
195
|
name: `${collection.slug}-api-key`,
|
|
220
|
-
authenticate:
|
|
196
|
+
authenticate: APIKeyAuthentication(collection)
|
|
221
197
|
});
|
|
222
198
|
}
|
|
223
199
|
// 3. if localStrategy flag is true
|
|
@@ -231,7 +207,7 @@ class BasePayload {
|
|
|
231
207
|
if (jwtStrategyEnabled) {
|
|
232
208
|
this.authStrategies.push({
|
|
233
209
|
name: 'local-jwt',
|
|
234
|
-
authenticate:
|
|
210
|
+
authenticate: JWTAuthentication
|
|
235
211
|
});
|
|
236
212
|
}
|
|
237
213
|
if (!options.disableOnInit) {
|
|
@@ -241,12 +217,12 @@ class BasePayload {
|
|
|
241
217
|
return this;
|
|
242
218
|
}
|
|
243
219
|
update(options) {
|
|
244
|
-
const { update } =
|
|
220
|
+
const { update } = localOperations;
|
|
245
221
|
return update(this, options);
|
|
246
222
|
}
|
|
247
223
|
}
|
|
248
224
|
const initialized = new BasePayload();
|
|
249
|
-
|
|
225
|
+
export default initialized;
|
|
250
226
|
let cached = global._payload;
|
|
251
227
|
if (!cached) {
|
|
252
228
|
// eslint-disable-next-line no-multi-assign
|
|
@@ -255,7 +231,7 @@ if (!cached) {
|
|
|
255
231
|
promise: null
|
|
256
232
|
};
|
|
257
233
|
}
|
|
258
|
-
const getPayload = async (options)=>{
|
|
234
|
+
export const getPayload = async (options)=>{
|
|
259
235
|
if (cached.payload) {
|
|
260
236
|
return cached.payload;
|
|
261
237
|
}
|
|
@@ -271,4 +247,4 @@ const getPayload = async (options)=>{
|
|
|
271
247
|
return cached.payload;
|
|
272
248
|
};
|
|
273
249
|
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEV4ZWN1dGlvblJlc3VsdCwgR3JhcGhRTFNjaGVtYSwgVmFsaWRhdGlvblJ1bGUgfSBmcm9tICdncmFwaHFsJ1xuaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25BcmdzLCBSZXF1ZXN0IGFzIGdyYXBoUUxSZXF1ZXN0IH0gZnJvbSAnZ3JhcGhxbC1odHRwJ1xuaW1wb3J0IHR5cGUgeyBTZW5kTWFpbE9wdGlvbnMgfSBmcm9tICdub2RlbWFpbGVyJ1xuaW1wb3J0IHR5cGUgcGlubyBmcm9tICdwaW5vJ1xuXG5pbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0bydcblxuaW1wb3J0IHR5cGUgeyBBdXRoU3RyYXRlZ3kgfSBmcm9tICcuL2F1dGgnXG5pbXBvcnQgdHlwZSB7IFJlc3VsdCBhcyBGb3Jnb3RQYXNzd29yZFJlc3VsdCB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2ZvcmdvdFBhc3N3b3JkJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZvcmdvdFBhc3N3b3JkT3B0aW9ucyB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2xvY2FsL2ZvcmdvdFBhc3N3b3JkJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIExvZ2luT3B0aW9ucyB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2xvY2FsL2xvZ2luJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFJlc2V0UGFzc3dvcmRPcHRpb25zIH0gZnJvbSAnLi9hdXRoL29wZXJhdGlvbnMvbG9jYWwvcmVzZXRQYXNzd29yZCdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBVbmxvY2tPcHRpb25zIH0gZnJvbSAnLi9hdXRoL29wZXJhdGlvbnMvbG9jYWwvdW5sb2NrJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFZlcmlmeUVtYWlsT3B0aW9ucyB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2xvY2FsL3ZlcmlmeUVtYWlsJ1xuaW1wb3J0IHR5cGUgeyBSZXN1bHQgYXMgTG9naW5SZXN1bHQgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9sb2dpbidcbmltcG9ydCB0eXBlIHsgUmVzdWx0IGFzIFJlc2V0UGFzc3dvcmRSZXN1bHQgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9yZXNldFBhc3N3b3JkJ1xuaW1wb3J0IHR5cGUgeyBCdWxrT3BlcmF0aW9uUmVzdWx0LCBDb2xsZWN0aW9uLCBUeXBlV2l0aElEIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgQ3JlYXRlT3B0aW9ucyB9IGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbC9jcmVhdGUnXG5pbXBvcnQgdHlwZSB7XG4gIEJ5SURPcHRpb25zIGFzIERlbGV0ZUJ5SURPcHRpb25zLFxuICBNYW55T3B0aW9ucyBhcyBEZWxldGVNYW55T3B0aW9ucyxcbiAgT3B0aW9ucyBhcyBEZWxldGVPcHRpb25zLFxufSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvZGVsZXRlJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRPcHRpb25zIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2xvY2FsL2ZpbmQnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgRmluZEJ5SURPcHRpb25zIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2xvY2FsL2ZpbmRCeUlEJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRWZXJzaW9uQnlJRE9wdGlvbnMgfSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvZmluZFZlcnNpb25CeUlEJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRWZXJzaW9uc09wdGlvbnMgfSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvZmluZFZlcnNpb25zJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFJlc3RvcmVWZXJzaW9uT3B0aW9ucyB9IGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbC9yZXN0b3JlVmVyc2lvbidcbmltcG9ydCB0eXBlIHtcbiAgQnlJRE9wdGlvbnMgYXMgVXBkYXRlQnlJRE9wdGlvbnMsXG4gIE1hbnlPcHRpb25zIGFzIFVwZGF0ZU1hbnlPcHRpb25zLFxuICBPcHRpb25zIGFzIFVwZGF0ZU9wdGlvbnMsXG59IGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbC91cGRhdGUnXG5pbXBvcnQgdHlwZSB7IEVtYWlsT3B0aW9ucywgSW5pdE9wdGlvbnMsIFNhbml0aXplZENvbmZpZyB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRGF0YWJhc2VBZGFwdGVyLCBQYWdpbmF0ZWREb2NzIH0gZnJvbSAnLi9kYXRhYmFzZS90eXBlcydcbmltcG9ydCB0eXBlIHsgQnVpbGRFbWFpbFJlc3VsdCB9IGZyb20gJy4vZW1haWwvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFR5cGVXaXRoSUQgYXMgR2xvYmFsVHlwZVdpdGhJRCwgR2xvYmFscyB9IGZyb20gJy4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgRmluZEdsb2JhbE9wdGlvbnMgfSBmcm9tICcuL2dsb2JhbHMvb3BlcmF0aW9ucy9sb2NhbC9maW5kT25lJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRHbG9iYWxWZXJzaW9uQnlJRE9wdGlvbnMgfSBmcm9tICcuL2dsb2JhbHMvb3BlcmF0aW9ucy9sb2NhbC9maW5kVmVyc2lvbkJ5SUQnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgRmluZEdsb2JhbFZlcnNpb25zT3B0aW9ucyB9IGZyb20gJy4vZ2xvYmFscy9vcGVyYXRpb25zL2xvY2FsL2ZpbmRWZXJzaW9ucydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBSZXN0b3JlR2xvYmFsVmVyc2lvbk9wdGlvbnMgfSBmcm9tICcuL2dsb2JhbHMvb3BlcmF0aW9ucy9sb2NhbC9yZXN0b3JlVmVyc2lvbidcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBVcGRhdGVHbG9iYWxPcHRpb25zIH0gZnJvbSAnLi9nbG9iYWxzL29wZXJhdGlvbnMvbG9jYWwvdXBkYXRlJ1xuaW1wb3J0IHR5cGUgeyBUeXBlV2l0aFZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb25zL3R5cGVzJ1xuXG5pbXBvcnQgeyBkZWNyeXB0LCBlbmNyeXB0IH0gZnJvbSAnLi9hdXRoL2NyeXB0bydcbmltcG9ydCB7IEFQSUtleUF1dGhlbnRpY2F0aW9uIH0gZnJvbSAnLi9hdXRoL3N0cmF0ZWdpZXMvYXBpS2V5J1xuaW1wb3J0IHsgSldUQXV0aGVudGljYXRpb24gfSBmcm9tICcuL2F1dGgvc3RyYXRlZ2llcy9qd3QnXG5pbXBvcnQgbG9jYWxPcGVyYXRpb25zIGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbCdcbmltcG9ydCB2YWxpZGF0ZSBmcm9tICcuL2NvbmZpZy92YWxpZGF0ZSdcbmltcG9ydCBidWlsZEVtYWlsIGZyb20gJy4vZW1haWwvYnVpbGQnXG5pbXBvcnQgeyBkZWZhdWx0cyBhcyBlbWFpbERlZmF1bHRzIH0gZnJvbSAnLi9lbWFpbC9kZWZhdWx0cydcbmltcG9ydCBzZW5kRW1haWwgZnJvbSAnLi9lbWFpbC9zZW5kRW1haWwnXG5pbXBvcnQgbG9jYWxHbG9iYWxPcGVyYXRpb25zIGZyb20gJy4vZ2xvYmFscy9vcGVyYXRpb25zL2xvY2FsJ1xuaW1wb3J0IExvZ2dlciBmcm9tICcuL3V0aWxpdGllcy9sb2dnZXInXG5pbXBvcnQgeyBzZXJ2ZXJJbml0IGFzIHNlcnZlckluaXRUZWxlbWV0cnkgfSBmcm9tICcuL3V0aWxpdGllcy90ZWxlbWV0cnkvZXZlbnRzL3NlcnZlckluaXQnXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFBheWxvYWRcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VQYXlsb2FkPFRHZW5lcmF0ZWRUeXBlcyBleHRlbmRzIEdlbmVyYXRlZFR5cGVzPiB7XG4gIGF1dGhTdHJhdGVnaWVzOiBBdXRoU3RyYXRlZ3lbXVxuXG4gIGNvbGxlY3Rpb25zOiB7XG4gICAgW3NsdWc6IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbF06IENvbGxlY3Rpb25cbiAgfSA9IHt9XG5cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBlcmZvcm1zIGNyZWF0ZSBvcGVyYXRpb25cbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgY3JlYXRlZCBkb2N1bWVudFxuICAgKi9cbiAgY3JlYXRlID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IENyZWF0ZU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPiA9PiB7XG4gICAgY29uc3QgeyBjcmVhdGUgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBjcmVhdGU8VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIGRiOiBCYXNlRGF0YWJhc2VBZGFwdGVyXG5cbiAgZGVjcnlwdCA9IGRlY3J5cHRcblxuICBlbWFpbDogQnVpbGRFbWFpbFJlc3VsdFxuXG4gIGVtYWlsT3B0aW9uczogRW1haWxPcHRpb25zXG5cbiAgZW5jcnlwdCA9IGVuY3J5cHRcblxuICAvLyBUT0RPOiByZS1pbXBsZW1lbnQgb3IgcmVtb3ZlP1xuICAvLyBlcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlclxuXG4gIGV4dGVuc2lvbnM6IChhcmdzOiB7XG4gICAgYXJnczogT3BlcmF0aW9uQXJnczxhbnk+XG4gICAgcmVxOiBncmFwaFFMUmVxdWVzdDx1bmtub3duLCB1bmtub3duPlxuICAgIHJlc3VsdDogRXhlY3V0aW9uUmVzdWx0XG4gIH0pID0+IFByb21pc2U8YW55PlxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRmluZCBkb2N1bWVudHMgd2l0aCBjcml0ZXJpYVxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKiBAcmV0dXJucyBkb2N1bWVudHMgc2F0aXNmeWluZyBxdWVyeVxuICAgKi9cbiAgZmluZCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBGaW5kT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxQYWdpbmF0ZWREb2NzPFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT4+ID0+IHtcbiAgICBjb25zdCB7IGZpbmQgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICBmaW5kQnlJRCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBGaW5kQnlJRE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPiA9PiB7XG4gICAgY29uc3QgeyBmaW5kQnlJRCB9ID0gbG9jYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIGZpbmRCeUlEPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICBmaW5kR2xvYmFsID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXT4oXG4gICAgb3B0aW9uczogRmluZEdsb2JhbE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IGZpbmRPbmUgfSA9IGxvY2FsR2xvYmFsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kT25lPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgZ2xvYmFsIHZlcnNpb24gYnkgSURcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgZ2xvYmFsIHZlcnNpb24gd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG4gIGZpbmRHbG9iYWxWZXJzaW9uQnlJRCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICAgIG9wdGlvbnM6IEZpbmRHbG9iYWxWZXJzaW9uQnlJRE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VHlwZVdpdGhWZXJzaW9uPFRHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddW1RdPj4gPT4ge1xuICAgIGNvbnN0IHsgZmluZFZlcnNpb25CeUlEIH0gPSBsb2NhbEdsb2JhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZFZlcnNpb25CeUlEPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgZ2xvYmFsIHZlcnNpb25zIHdpdGggY3JpdGVyaWFcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgdmVyc2lvbnMgc2F0aXNmeWluZyBxdWVyeVxuICAgKi9cbiAgZmluZEdsb2JhbFZlcnNpb25zID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXT4oXG4gICAgb3B0aW9uczogRmluZEdsb2JhbFZlcnNpb25zT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxQYWdpbmF0ZWREb2NzPFR5cGVXaXRoVmVyc2lvbjxUR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXVtUXT4+PiA9PiB7XG4gICAgY29uc3QgeyBmaW5kVmVyc2lvbnMgfSA9IGxvY2FsR2xvYmFsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kVmVyc2lvbnM8VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRmluZCB2ZXJzaW9uIGJ5IElEXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHZlcnNpb24gd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG4gIGZpbmRWZXJzaW9uQnlJRCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBGaW5kVmVyc2lvbkJ5SURPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFR5cGVXaXRoVmVyc2lvbjxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+PiA9PiB7XG4gICAgY29uc3QgeyBmaW5kVmVyc2lvbkJ5SUQgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kVmVyc2lvbkJ5SUQ8VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRmluZCB2ZXJzaW9ucyB3aXRoIGNyaXRlcmlhXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHZlcnNpb25zIHNhdGlzZnlpbmcgcXVlcnlcbiAgICovXG4gIGZpbmRWZXJzaW9ucyA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBGaW5kVmVyc2lvbnNPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFBhZ2luYXRlZERvY3M8VHlwZVdpdGhWZXJzaW9uPFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT4+PiA9PiB7XG4gICAgY29uc3QgeyBmaW5kVmVyc2lvbnMgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kVmVyc2lvbnM8VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIGZvcmdvdFBhc3N3b3JkID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IEZvcmdvdFBhc3N3b3JkT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxGb3Jnb3RQYXNzd29yZFJlc3VsdD4gPT4ge1xuICAgIGNvbnN0IHsgZm9yZ290UGFzc3dvcmQgfSA9IGxvY2FsT3BlcmF0aW9ucy5hdXRoXG4gICAgcmV0dXJuIGZvcmdvdFBhc3N3b3JkPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICBnZXRBUElVUkwgPSAoKTogc3RyaW5nID0+IGAke3RoaXMuY29uZmlnLnNlcnZlclVSTH0ke3RoaXMuY29uZmlnLnJvdXRlcy5hcGl9YFxuXG4gIGdldEFkbWluVVJMID0gKCk6IHN0cmluZyA9PiBgJHt0aGlzLmNvbmZpZy5zZXJ2ZXJVUkx9JHt0aGlzLmNvbmZpZy5yb3V0ZXMuYWRtaW59YFxuXG4gIGdsb2JhbHM6IEdsb2JhbHNcblxuICBsb2dnZXI6IHBpbm8uTG9nZ2VyXG5cbiAgbG9naW4gPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogTG9naW5PcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPExvZ2luUmVzdWx0ICYgeyB1c2VyOiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0gfT4gPT4ge1xuICAgIGNvbnN0IHsgbG9naW4gfSA9IGxvY2FsT3BlcmF0aW9ucy5hdXRoXG4gICAgcmV0dXJuIGxvZ2luPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgZG9jdW1lbnQgYnkgSURcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgZG9jdW1lbnQgd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG5cbiAgcmVzZXRQYXNzd29yZCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBSZXNldFBhc3N3b3JkT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxSZXNldFBhc3N3b3JkUmVzdWx0PiA9PiB7XG4gICAgY29uc3QgeyByZXNldFBhc3N3b3JkIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiByZXNldFBhc3N3b3JkPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlc3RvcmUgZ2xvYmFsIHZlcnNpb24gYnkgSURcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgdmVyc2lvbiB3aXRoIHNwZWNpZmllZCBJRFxuICAgKi9cbiAgcmVzdG9yZUdsb2JhbFZlcnNpb24gPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddPihcbiAgICBvcHRpb25zOiBSZXN0b3JlR2xvYmFsVmVyc2lvbk9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHJlc3RvcmVWZXJzaW9uIH0gPSBsb2NhbEdsb2JhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gcmVzdG9yZVZlcnNpb248VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVzdG9yZSB2ZXJzaW9uIGJ5IElEXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHZlcnNpb24gd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG4gIHJlc3RvcmVWZXJzaW9uID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFJlc3RvcmVWZXJzaW9uT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHJlc3RvcmVWZXJzaW9uIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gcmVzdG9yZVZlcnNpb248VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIHNjaGVtYTogR3JhcGhRTFNjaGVtYVxuXG4gIHNlY3JldDogc3RyaW5nXG5cbiAgc2VuZEVtYWlsOiAobWVzc2FnZTogU2VuZE1haWxPcHRpb25zKSA9PiBQcm9taXNlPHVua25vd24+XG5cbiAgdHlwZXM6IHtcbiAgICBhcnJheVR5cGVzOiBhbnlcbiAgICBibG9ja0lucHV0VHlwZXM6IGFueVxuICAgIGJsb2NrVHlwZXM6IGFueVxuICAgIGZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlPzogYW55XG4gICAgZ3JvdXBUeXBlczogYW55XG4gICAgbG9jYWxlSW5wdXRUeXBlPzogYW55XG4gICAgdGFiVHlwZXM6IGFueVxuICB9XG5cbiAgdW5sb2NrID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFVubG9ja09wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHsgdW5sb2NrIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiB1bmxvY2sodGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIHVwZGF0ZUdsb2JhbCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICAgIG9wdGlvbnM6IFVwZGF0ZUdsb2JhbE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHVwZGF0ZSB9ID0gbG9jYWxHbG9iYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIHVwZGF0ZTxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgdmFsaWRhdGlvblJ1bGVzOiAoYXJnczogT3BlcmF0aW9uQXJnczxhbnk+KSA9PiBWYWxpZGF0aW9uUnVsZVtdXG5cbiAgdmVyaWZ5RW1haWwgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogVmVyaWZ5RW1haWxPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCB7IHZlcmlmeUVtYWlsIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiB2ZXJpZnlFbWFpbCh0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgdmVyc2lvbnM6IHtcbiAgICBbc2x1Zzogc3RyaW5nXTogYW55IC8vIFRPRE86IFR5cGUgdGhpc1xuICB9ID0ge31cblxuICBkZWxldGU8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRGVsZXRlT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxCdWxrT3BlcmF0aW9uUmVzdWx0PFQ+IHwgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPiB7XG4gICAgY29uc3QgeyBkZWxldGVMb2NhbCB9ID0gbG9jYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIGRlbGV0ZUxvY2FsPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIGRlbGV0ZSBvbmUgb3IgbW9yZSBkb2N1bWVudHNcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgVXBkYXRlZCBkb2N1bWVudChzKVxuICAgKi9cbiAgZGVsZXRlPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IERlbGV0ZUJ5SURPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT5cblxuICBkZWxldGU8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRGVsZXRlTWFueU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUPj5cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIFBheWxvYWRcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgLy8gVE9ETzogVHlwZVNjcmlwdCBoYWxsdWNpbmF0aW5nIGFnYWluLiBmaXggbGF0ZXJcbiAgYXN5bmMgaW5pdChvcHRpb25zOiBJbml0T3B0aW9ucyk6IFByb21pc2U8UGF5bG9hZD4ge1xuICAgIHRoaXMubG9nZ2VyID0gTG9nZ2VyKCdwYXlsb2FkJywgb3B0aW9ucy5sb2dnZXJPcHRpb25zLCBvcHRpb25zLmxvZ2dlckRlc3RpbmF0aW9uKVxuXG4gICAgdGhpcy5jb25maWcgPSBhd2FpdCBvcHRpb25zLmNvbmZpZ1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGF3YWl0IHZhbGlkYXRlKHRoaXMuY29uZmlnLCB0aGlzLmxvZ2dlcilcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29uZmlnLnNlY3JldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvcjogbWlzc2luZyBzZWNyZXQga2V5LiBBIHNlY3JldCBrZXkgaXMgbmVlZGVkIHRvIHNlY3VyZSBQYXlsb2FkLicpXG4gICAgfVxuXG4gICAgdGhpcy5zZWNyZXQgPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKHRoaXMuY29uZmlnLnNlY3JldCkuZGlnZXN0KCdoZXgnKS5zbGljZSgwLCAzMilcblxuICAgIHRoaXMuZ2xvYmFscyA9IHtcbiAgICAgIGNvbmZpZzogdGhpcy5jb25maWcuZ2xvYmFscyxcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZy5jb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgICB0aGlzLmNvbGxlY3Rpb25zW2NvbGxlY3Rpb24uc2x1Z10gPSB7XG4gICAgICAgIGNvbmZpZzogY29sbGVjdGlvbixcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdGhpcy5kYiA9IHRoaXMuY29uZmlnLmRiLmluaXQoeyBwYXlsb2FkOiB0aGlzIH0pXG4gICAgdGhpcy5kYi5wYXlsb2FkID0gdGhpc1xuXG4gICAgaWYgKHRoaXMuZGI/LmluaXQpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGIuaW5pdCh0aGlzKVxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5kaXNhYmxlREJDb25uZWN0ICYmIHRoaXMuZGIuY29ubmVjdCkge1xuICAgICAgYXdhaXQgdGhpcy5kYi5jb25uZWN0KClcbiAgICB9XG5cbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdTdGFydGluZyBQYXlsb2FkLi4uJylcblxuICAgIC8vIENvbmZpZ3VyZSBlbWFpbCBzZXJ2aWNlXG4gICAgY29uc3QgZW1haWxPcHRpb25zID0gb3B0aW9ucy5lbWFpbCA/IHsgLi4ub3B0aW9ucy5lbWFpbCB9IDogdGhpcy5jb25maWcuZW1haWxcbiAgICBpZiAob3B0aW9ucy5lbWFpbCAmJiB0aGlzLmNvbmZpZy5lbWFpbCkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgJ0VtYWlsIG9wdGlvbnMgcHJvdmlkZWQgaW4gYm90aCBpbml0IG9wdGlvbnMgYW5kIGNvbmZpZy4gVXNpbmcgaW5pdCBvcHRpb25zLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgdGhpcy5lbWFpbE9wdGlvbnMgPSBlbWFpbE9wdGlvbnMgPz8gZW1haWxEZWZhdWx0c1xuICAgIHRoaXMuZW1haWwgPSBidWlsZEVtYWlsKHRoaXMuZW1haWxPcHRpb25zLCB0aGlzLmxvZ2dlcilcbiAgICB0aGlzLnNlbmRFbWFpbCA9IHNlbmRFbWFpbC5iaW5kKHRoaXMpXG5cbiAgICBzZXJ2ZXJJbml0VGVsZW1ldHJ5KHRoaXMpXG5cbiAgICAvLyAxLiBsb29wIG92ZXIgY29sbGVjdGlvbnMsIGlmIGNvbGxlY3Rpb24gaGFzIGF1dGggc3RyYXRlZ3ksIGluaXRpYWxpemUgYW5kIHB1c2ggdG8gYXJyYXlcbiAgICBsZXQgand0U3RyYXRlZ3lFbmFibGVkID0gZmFsc2VcbiAgICB0aGlzLmF1dGhTdHJhdGVnaWVzID0gdGhpcy5jb25maWcuY29sbGVjdGlvbnMucmVkdWNlKChhdXRoU3RyYXRlZ2llcywgY29sbGVjdGlvbikgPT4ge1xuICAgICAgaWYgKGNvbGxlY3Rpb24/LmF1dGgpIHtcbiAgICAgICAgaWYgKGNvbGxlY3Rpb24uYXV0aC5zdHJhdGVnaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBhdXRoU3RyYXRlZ2llcy5wdXNoKC4uLmNvbGxlY3Rpb24uYXV0aC5zdHJhdGVnaWVzKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gaWYgYXBpIGtleSBlbmFibGVkLCBwdXNoIGFwaSBrZXkgc3RyYXRlZ3kgaW50byB0aGUgYXJyYXlcbiAgICAgICAgaWYgKGNvbGxlY3Rpb24uYXV0aD8udXNlQVBJS2V5KSB7XG4gICAgICAgICAgYXV0aFN0cmF0ZWdpZXMucHVzaCh7XG4gICAgICAgICAgICBuYW1lOiBgJHtjb2xsZWN0aW9uLnNsdWd9LWFwaS1rZXlgLFxuICAgICAgICAgICAgYXV0aGVudGljYXRlOiBBUElLZXlBdXRoZW50aWNhdGlvbihjb2xsZWN0aW9uKSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMy4gaWYgbG9jYWxTdHJhdGVneSBmbGFnIGlzIHRydWVcbiAgICAgICAgaWYgKCFjb2xsZWN0aW9uLmF1dGguZGlzYWJsZUxvY2FsU3RyYXRlZ3kgJiYgIWp3dFN0cmF0ZWd5RW5hYmxlZCkge1xuICAgICAgICAgIGp3dFN0cmF0ZWd5RW5hYmxlZCA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXV0aFN0cmF0ZWdpZXNcbiAgICB9LCBbXSBhcyBBdXRoU3RyYXRlZ3lbXSlcblxuICAgIC8vIDQuIGlmIGVuYWJsZWQsIHB1c2ggand0IHN0cmF0ZWd5IGludG8gYXV0aFN0cmF0ZWdpZXMgbGFzdFxuICAgIGlmIChqd3RTdHJhdGVneUVuYWJsZWQpIHtcbiAgICAgIHRoaXMuYXV0aFN0cmF0ZWdpZXMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdsb2NhbC1qd3QnLFxuICAgICAgICBhdXRoZW50aWNhdGU6IEpXVEF1dGhlbnRpY2F0aW9uLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMuZGlzYWJsZU9uSW5pdCkge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm9uSW5pdCA9PT0gJ2Z1bmN0aW9uJykgYXdhaXQgb3B0aW9ucy5vbkluaXQodGhpcylcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcub25Jbml0ID09PSAnZnVuY3Rpb24nKSBhd2FpdCB0aGlzLmNvbmZpZy5vbkluaXQodGhpcylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgdXBkYXRlPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFVwZGF0ZU1hbnlPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPEJ1bGtPcGVyYXRpb25SZXN1bHQ8VD4+XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgb25lIG9yIG1vcmUgZG9jdW1lbnRzXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIFVwZGF0ZWQgZG9jdW1lbnQocylcbiAgICovXG4gIHVwZGF0ZTxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBVcGRhdGVCeUlET3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+XG5cbiAgdXBkYXRlPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFVwZGF0ZU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUPiB8IFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT4ge1xuICAgIGNvbnN0IHsgdXBkYXRlIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gdXBkYXRlPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cbn1cblxuY29uc3QgaW5pdGlhbGl6ZWQgPSBuZXcgQmFzZVBheWxvYWQoKVxuXG5leHBvcnQgZGVmYXVsdCBpbml0aWFsaXplZFxuXG5sZXQgY2FjaGVkID0gZ2xvYmFsLl9wYXlsb2FkXG5cbmlmICghY2FjaGVkKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tdWx0aS1hc3NpZ25cbiAgY2FjaGVkID0gZ2xvYmFsLl9wYXlsb2FkID0geyBwYXlsb2FkOiBudWxsLCBwcm9taXNlOiBudWxsIH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldFBheWxvYWQgPSBhc3luYyAob3B0aW9ucz86IEluaXRPcHRpb25zKTogUHJvbWlzZTxCYXNlUGF5bG9hZDxHZW5lcmF0ZWRUeXBlcz4+ID0+IHtcbiAgaWYgKGNhY2hlZC5wYXlsb2FkKSB7XG4gICAgcmV0dXJuIGNhY2hlZC5wYXlsb2FkXG4gIH1cblxuICBpZiAoIWNhY2hlZC5wcm9taXNlKSB7XG4gICAgY2FjaGVkLnByb21pc2UgPSBuZXcgQmFzZVBheWxvYWQ8R2VuZXJhdGVkVHlwZXM+KCkuaW5pdChvcHRpb25zKVxuICB9XG5cbiAgdHJ5IHtcbiAgICBjYWNoZWQucGF5bG9hZCA9IGF3YWl0IGNhY2hlZC5wcm9taXNlXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjYWNoZWQucHJvbWlzZSA9IG51bGxcbiAgICB0aHJvdyBlXG4gIH1cblxuICByZXR1cm4gY2FjaGVkLnBheWxvYWRcbn1cblxudHlwZSBHZW5lcmF0ZWRUeXBlcyA9IHtcbiAgY29sbGVjdGlvbnM6IHtcbiAgICBbc2x1ZzogbnVtYmVyIHwgc3RyaW5nIHwgc3ltYm9sXTogVHlwZVdpdGhJRCAmIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIH1cbiAgZ2xvYmFsczoge1xuICAgIFtzbHVnOiBudW1iZXIgfCBzdHJpbmcgfCBzeW1ib2xdOiBHbG9iYWxUeXBlV2l0aElEICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgfVxufVxuXG50eXBlIFBheWxvYWQgPSBCYXNlUGF5bG9hZDxHZW5lcmF0ZWRUeXBlcz5cblxuaW50ZXJmYWNlIFJlcXVlc3RDb250ZXh0IHtcbiAgW2tleTogc3RyaW5nXTogdW5rbm93blxufVxuXG4vLyB0eXBlIERhdGFiYXNlQWRhcHRlciA9IEJhc2VEYXRhYmFzZUFkYXB0ZXJcblxuZXhwb3J0IHR5cGUgeyBHZW5lcmF0ZWRUeXBlcywgUGF5bG9hZCwgUmVxdWVzdENvbnRleHQgfVxuIl0sIm5hbWVzIjpbIkJhc2VQYXlsb2FkIiwiZ2V0UGF5bG9hZCIsImF1dGhTdHJhdGVnaWVzIiwiY29sbGVjdGlvbnMiLCJjb25maWciLCJjcmVhdGUiLCJvcHRpb25zIiwibG9jYWxPcGVyYXRpb25zIiwiZGIiLCJkZWNyeXB0IiwiZW1haWwiLCJlbWFpbE9wdGlvbnMiLCJlbmNyeXB0IiwiZXh0ZW5zaW9ucyIsImZpbmQiLCJmaW5kQnlJRCIsImZpbmRHbG9iYWwiLCJmaW5kT25lIiwibG9jYWxHbG9iYWxPcGVyYXRpb25zIiwiZmluZEdsb2JhbFZlcnNpb25CeUlEIiwiZmluZFZlcnNpb25CeUlEIiwiZmluZEdsb2JhbFZlcnNpb25zIiwiZmluZFZlcnNpb25zIiwiZm9yZ290UGFzc3dvcmQiLCJhdXRoIiwiZ2V0QVBJVVJMIiwic2VydmVyVVJMIiwicm91dGVzIiwiYXBpIiwiZ2V0QWRtaW5VUkwiLCJhZG1pbiIsImdsb2JhbHMiLCJsb2dnZXIiLCJsb2dpbiIsInJlc2V0UGFzc3dvcmQiLCJyZXN0b3JlR2xvYmFsVmVyc2lvbiIsInJlc3RvcmVWZXJzaW9uIiwic2NoZW1hIiwic2VjcmV0Iiwic2VuZEVtYWlsIiwidHlwZXMiLCJ1bmxvY2siLCJ1cGRhdGVHbG9iYWwiLCJ1cGRhdGUiLCJ2YWxpZGF0aW9uUnVsZXMiLCJ2ZXJpZnlFbWFpbCIsInZlcnNpb25zIiwiZGVsZXRlIiwiZGVsZXRlTG9jYWwiLCJpbml0IiwiTG9nZ2VyIiwibG9nZ2VyT3B0aW9ucyIsImxvZ2dlckRlc3RpbmF0aW9uIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwidmFsaWRhdGUiLCJFcnJvciIsImNyeXB0byIsImNyZWF0ZUhhc2giLCJkaWdlc3QiLCJzbGljZSIsImZvckVhY2giLCJjb2xsZWN0aW9uIiwic2x1ZyIsInBheWxvYWQiLCJkaXNhYmxlREJDb25uZWN0IiwiY29ubmVjdCIsImluZm8iLCJ3YXJuIiwiZW1haWxEZWZhdWx0cyIsImJ1aWxkRW1haWwiLCJiaW5kIiwic2VydmVySW5pdFRlbGVtZXRyeSIsImp3dFN0cmF0ZWd5RW5hYmxlZCIsInJlZHVjZSIsInN0cmF0ZWdpZXMiLCJsZW5ndGgiLCJwdXNoIiwidXNlQVBJS2V5IiwibmFtZSIsImF1dGhlbnRpY2F0ZSIsIkFQSUtleUF1dGhlbnRpY2F0aW9uIiwiZGlzYWJsZUxvY2FsU3RyYXRlZ3kiLCJKV1RBdXRoZW50aWNhdGlvbiIsImRpc2FibGVPbkluaXQiLCJvbkluaXQiLCJpbml0aWFsaXplZCIsImNhY2hlZCIsImdsb2JhbCIsIl9wYXlsb2FkIiwicHJvbWlzZSIsImUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBMkRhQSxXQUFXO2VBQVhBOztJQXFXYixPQUEwQjtlQUExQjs7SUFTYUMsVUFBVTtlQUFWQTs7OytEQXBhTTt5QkF1Q2M7d0JBQ0k7cUJBQ0g7OERBQ047aUVBQ1A7OERBQ0U7MEJBQ21CO2tFQUNwQjsrREFDWTsrREFDZjs0QkFDK0I7Ozs7OztBQUszQyxNQUFNRDtJQUNYRSxlQUE4QjtJQUU5QkMsY0FFSSxDQUFDLEVBQUM7SUFFTkMsT0FBdUI7SUFFdkI7Ozs7R0FJQyxHQUNEQyxTQUFTLE9BQ1BDO1FBRUEsTUFBTSxFQUFFRCxNQUFNLEVBQUUsR0FBR0UsY0FBZTtRQUNsQyxPQUFPRixPQUFVLElBQUksRUFBRUM7SUFDekIsRUFBQztJQUVERSxHQUF1QjtJQUV2QkMsVUFBVUEsZ0JBQU8sQ0FBQTtJQUVqQkMsTUFBdUI7SUFFdkJDLGFBQTBCO0lBRTFCQyxVQUFVQSxnQkFBTyxDQUFBO0lBRWpCLGdDQUFnQztJQUNoQyw2QkFBNkI7SUFFN0JDLFdBSWtC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
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEV4ZWN1dGlvblJlc3VsdCwgR3JhcGhRTFNjaGVtYSwgVmFsaWRhdGlvblJ1bGUgfSBmcm9tICdncmFwaHFsJ1xuaW1wb3J0IHR5cGUgeyBPcGVyYXRpb25BcmdzLCBSZXF1ZXN0IGFzIGdyYXBoUUxSZXF1ZXN0IH0gZnJvbSAnZ3JhcGhxbC1odHRwJ1xuaW1wb3J0IHR5cGUgeyBTZW5kTWFpbE9wdGlvbnMgfSBmcm9tICdub2RlbWFpbGVyJ1xuaW1wb3J0IHR5cGUgcGlubyBmcm9tICdwaW5vJ1xuXG5pbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0bydcblxuaW1wb3J0IHR5cGUgeyBBdXRoU3RyYXRlZ3kgfSBmcm9tICcuL2F1dGgnXG5pbXBvcnQgdHlwZSB7IFJlc3VsdCBhcyBGb3Jnb3RQYXNzd29yZFJlc3VsdCB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2ZvcmdvdFBhc3N3b3JkJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZvcmdvdFBhc3N3b3JkT3B0aW9ucyB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2xvY2FsL2ZvcmdvdFBhc3N3b3JkJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIExvZ2luT3B0aW9ucyB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2xvY2FsL2xvZ2luJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFJlc2V0UGFzc3dvcmRPcHRpb25zIH0gZnJvbSAnLi9hdXRoL29wZXJhdGlvbnMvbG9jYWwvcmVzZXRQYXNzd29yZCdcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBVbmxvY2tPcHRpb25zIH0gZnJvbSAnLi9hdXRoL29wZXJhdGlvbnMvbG9jYWwvdW5sb2NrJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFZlcmlmeUVtYWlsT3B0aW9ucyB9IGZyb20gJy4vYXV0aC9vcGVyYXRpb25zL2xvY2FsL3ZlcmlmeUVtYWlsJ1xuaW1wb3J0IHR5cGUgeyBSZXN1bHQgYXMgTG9naW5SZXN1bHQgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9sb2dpbidcbmltcG9ydCB0eXBlIHsgUmVzdWx0IGFzIFJlc2V0UGFzc3dvcmRSZXN1bHQgfSBmcm9tICcuL2F1dGgvb3BlcmF0aW9ucy9yZXNldFBhc3N3b3JkJ1xuaW1wb3J0IHR5cGUgeyBCdWxrT3BlcmF0aW9uUmVzdWx0LCBDb2xsZWN0aW9uLCBUeXBlV2l0aElEIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgQ3JlYXRlT3B0aW9ucyB9IGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbC9jcmVhdGUnXG5pbXBvcnQgdHlwZSB7XG4gIEJ5SURPcHRpb25zIGFzIERlbGV0ZUJ5SURPcHRpb25zLFxuICBNYW55T3B0aW9ucyBhcyBEZWxldGVNYW55T3B0aW9ucyxcbiAgT3B0aW9ucyBhcyBEZWxldGVPcHRpb25zLFxufSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvZGVsZXRlJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRPcHRpb25zIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2xvY2FsL2ZpbmQnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgRmluZEJ5SURPcHRpb25zIH0gZnJvbSAnLi9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL2xvY2FsL2ZpbmRCeUlEJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRWZXJzaW9uQnlJRE9wdGlvbnMgfSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvZmluZFZlcnNpb25CeUlEJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRWZXJzaW9uc09wdGlvbnMgfSBmcm9tICcuL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvbG9jYWwvZmluZFZlcnNpb25zJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIFJlc3RvcmVWZXJzaW9uT3B0aW9ucyB9IGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbC9yZXN0b3JlVmVyc2lvbidcbmltcG9ydCB0eXBlIHtcbiAgQnlJRE9wdGlvbnMgYXMgVXBkYXRlQnlJRE9wdGlvbnMsXG4gIE1hbnlPcHRpb25zIGFzIFVwZGF0ZU1hbnlPcHRpb25zLFxuICBPcHRpb25zIGFzIFVwZGF0ZU9wdGlvbnMsXG59IGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbC91cGRhdGUnXG5pbXBvcnQgdHlwZSB7IEVtYWlsT3B0aW9ucywgSW5pdE9wdGlvbnMsIFNhbml0aXplZENvbmZpZyB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRGF0YWJhc2VBZGFwdGVyLCBQYWdpbmF0ZWREb2NzIH0gZnJvbSAnLi9kYXRhYmFzZS90eXBlcydcbmltcG9ydCB0eXBlIHsgQnVpbGRFbWFpbFJlc3VsdCB9IGZyb20gJy4vZW1haWwvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFR5cGVXaXRoSUQgYXMgR2xvYmFsVHlwZVdpdGhJRCwgR2xvYmFscyB9IGZyb20gJy4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgRmluZEdsb2JhbE9wdGlvbnMgfSBmcm9tICcuL2dsb2JhbHMvb3BlcmF0aW9ucy9sb2NhbC9maW5kT25lJ1xuaW1wb3J0IHR5cGUgeyBPcHRpb25zIGFzIEZpbmRHbG9iYWxWZXJzaW9uQnlJRE9wdGlvbnMgfSBmcm9tICcuL2dsb2JhbHMvb3BlcmF0aW9ucy9sb2NhbC9maW5kVmVyc2lvbkJ5SUQnXG5pbXBvcnQgdHlwZSB7IE9wdGlvbnMgYXMgRmluZEdsb2JhbFZlcnNpb25zT3B0aW9ucyB9IGZyb20gJy4vZ2xvYmFscy9vcGVyYXRpb25zL2xvY2FsL2ZpbmRWZXJzaW9ucydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBSZXN0b3JlR2xvYmFsVmVyc2lvbk9wdGlvbnMgfSBmcm9tICcuL2dsb2JhbHMvb3BlcmF0aW9ucy9sb2NhbC9yZXN0b3JlVmVyc2lvbidcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBVcGRhdGVHbG9iYWxPcHRpb25zIH0gZnJvbSAnLi9nbG9iYWxzL29wZXJhdGlvbnMvbG9jYWwvdXBkYXRlJ1xuaW1wb3J0IHR5cGUgeyBUeXBlV2l0aFZlcnNpb24gfSBmcm9tICcuL3ZlcnNpb25zL3R5cGVzJ1xuXG5pbXBvcnQgeyBkZWNyeXB0LCBlbmNyeXB0IH0gZnJvbSAnLi9hdXRoL2NyeXB0bydcbmltcG9ydCB7IEFQSUtleUF1dGhlbnRpY2F0aW9uIH0gZnJvbSAnLi9hdXRoL3N0cmF0ZWdpZXMvYXBpS2V5J1xuaW1wb3J0IHsgSldUQXV0aGVudGljYXRpb24gfSBmcm9tICcuL2F1dGgvc3RyYXRlZ2llcy9qd3QnXG5pbXBvcnQgbG9jYWxPcGVyYXRpb25zIGZyb20gJy4vY29sbGVjdGlvbnMvb3BlcmF0aW9ucy9sb2NhbCdcbmltcG9ydCB2YWxpZGF0ZSBmcm9tICcuL2NvbmZpZy92YWxpZGF0ZSdcbmltcG9ydCBidWlsZEVtYWlsIGZyb20gJy4vZW1haWwvYnVpbGQnXG5pbXBvcnQgeyBkZWZhdWx0cyBhcyBlbWFpbERlZmF1bHRzIH0gZnJvbSAnLi9lbWFpbC9kZWZhdWx0cydcbmltcG9ydCBzZW5kRW1haWwgZnJvbSAnLi9lbWFpbC9zZW5kRW1haWwnXG5pbXBvcnQgbG9jYWxHbG9iYWxPcGVyYXRpb25zIGZyb20gJy4vZ2xvYmFscy9vcGVyYXRpb25zL2xvY2FsJ1xuaW1wb3J0IExvZ2dlciBmcm9tICcuL3V0aWxpdGllcy9sb2dnZXInXG5pbXBvcnQgeyBzZXJ2ZXJJbml0IGFzIHNlcnZlckluaXRUZWxlbWV0cnkgfSBmcm9tICcuL3V0aWxpdGllcy90ZWxlbWV0cnkvZXZlbnRzL3NlcnZlckluaXQnXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFBheWxvYWRcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VQYXlsb2FkPFRHZW5lcmF0ZWRUeXBlcyBleHRlbmRzIEdlbmVyYXRlZFR5cGVzPiB7XG4gIGF1dGhTdHJhdGVnaWVzOiBBdXRoU3RyYXRlZ3lbXVxuXG4gIGNvbGxlY3Rpb25zOiB7XG4gICAgW3NsdWc6IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbF06IENvbGxlY3Rpb25cbiAgfSA9IHt9XG5cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBlcmZvcm1zIGNyZWF0ZSBvcGVyYXRpb25cbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgY3JlYXRlZCBkb2N1bWVudFxuICAgKi9cbiAgY3JlYXRlID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IENyZWF0ZU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPiA9PiB7XG4gICAgY29uc3QgeyBjcmVhdGUgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBjcmVhdGU8VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIGRiOiBCYXNlRGF0YWJhc2VBZGFwdGVyXG5cbiAgZGVjcnlwdCA9IGRlY3J5cHRcblxuICBlbWFpbDogQnVpbGRFbWFpbFJlc3VsdFxuXG4gIGVtYWlsT3B0aW9uczogRW1haWxPcHRpb25zXG5cbiAgZW5jcnlwdCA9IGVuY3J5cHRcblxuICAvLyBUT0RPOiByZS1pbXBsZW1lbnQgb3IgcmVtb3ZlP1xuICAvLyBlcnJvckhhbmRsZXI6IEVycm9ySGFuZGxlclxuXG4gIGV4dGVuc2lvbnM6IChhcmdzOiB7XG4gICAgYXJnczogT3BlcmF0aW9uQXJnczxhbnk+XG4gICAgcmVxOiBncmFwaFFMUmVxdWVzdDx1bmtub3duLCB1bmtub3duPlxuICAgIHJlc3VsdDogRXhlY3V0aW9uUmVzdWx0XG4gIH0pID0+IFByb21pc2U8YW55PlxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRmluZCBkb2N1bWVudHMgd2l0aCBjcml0ZXJpYVxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKiBAcmV0dXJucyBkb2N1bWVudHMgc2F0aXNmeWluZyBxdWVyeVxuICAgKi9cbiAgZmluZCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBGaW5kT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxQYWdpbmF0ZWREb2NzPFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT4+ID0+IHtcbiAgICBjb25zdCB7IGZpbmQgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICBmaW5kQnlJRCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBGaW5kQnlJRE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPiA9PiB7XG4gICAgY29uc3QgeyBmaW5kQnlJRCB9ID0gbG9jYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIGZpbmRCeUlEPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICBmaW5kR2xvYmFsID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXT4oXG4gICAgb3B0aW9uczogRmluZEdsb2JhbE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IGZpbmRPbmUgfSA9IGxvY2FsR2xvYmFsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kT25lPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgZ2xvYmFsIHZlcnNpb24gYnkgSURcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgZ2xvYmFsIHZlcnNpb24gd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG4gIGZpbmRHbG9iYWxWZXJzaW9uQnlJRCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICAgIG9wdGlvbnM6IEZpbmRHbG9iYWxWZXJzaW9uQnlJRE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VHlwZVdpdGhWZXJzaW9uPFRHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddW1RdPj4gPT4ge1xuICAgIGNvbnN0IHsgZmluZFZlcnNpb25CeUlEIH0gPSBsb2NhbEdsb2JhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gZmluZFZlcnNpb25CeUlEPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgZ2xvYmFsIHZlcnNpb25zIHdpdGggY3JpdGVyaWFcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgdmVyc2lvbnMgc2F0aXNmeWluZyBxdWVyeVxuICAgKi9cbiAgZmluZEdsb2JhbFZlcnNpb25zID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXT4oXG4gICAgb3B0aW9uczogRmluZEdsb2JhbFZlcnNpb25zT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxQYWdpbmF0ZWREb2NzPFR5cGVXaXRoVmVyc2lvbjxUR2VuZXJhdGVkVHlwZXNbJ2dsb2JhbHMnXVtUXT4+PiA9PiB7XG4gICAgY29uc3QgeyBmaW5kVmVyc2lvbnMgfSA9IGxvY2FsR2xvYmFsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kVmVyc2lvbnM8VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRmluZCB2ZXJzaW9uIGJ5IElEXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHZlcnNpb24gd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG4gIGZpbmRWZXJzaW9uQnlJRCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBGaW5kVmVyc2lvbkJ5SURPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFR5cGVXaXRoVmVyc2lvbjxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+PiA9PiB7XG4gICAgY29uc3QgeyBmaW5kVmVyc2lvbkJ5SUQgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kVmVyc2lvbkJ5SUQ8VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRmluZCB2ZXJzaW9ucyB3aXRoIGNyaXRlcmlhXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHZlcnNpb25zIHNhdGlzZnlpbmcgcXVlcnlcbiAgICovXG4gIGZpbmRWZXJzaW9ucyA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBGaW5kVmVyc2lvbnNPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFBhZ2luYXRlZERvY3M8VHlwZVdpdGhWZXJzaW9uPFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT4+PiA9PiB7XG4gICAgY29uc3QgeyBmaW5kVmVyc2lvbnMgfSA9IGxvY2FsT3BlcmF0aW9uc1xuICAgIHJldHVybiBmaW5kVmVyc2lvbnM8VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIGZvcmdvdFBhc3N3b3JkID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IEZvcmdvdFBhc3N3b3JkT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxGb3Jnb3RQYXNzd29yZFJlc3VsdD4gPT4ge1xuICAgIGNvbnN0IHsgZm9yZ290UGFzc3dvcmQgfSA9IGxvY2FsT3BlcmF0aW9ucy5hdXRoXG4gICAgcmV0dXJuIGZvcmdvdFBhc3N3b3JkPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICBnZXRBUElVUkwgPSAoKTogc3RyaW5nID0+IGAke3RoaXMuY29uZmlnLnNlcnZlclVSTH0ke3RoaXMuY29uZmlnLnJvdXRlcy5hcGl9YFxuXG4gIGdldEFkbWluVVJMID0gKCk6IHN0cmluZyA9PiBgJHt0aGlzLmNvbmZpZy5zZXJ2ZXJVUkx9JHt0aGlzLmNvbmZpZy5yb3V0ZXMuYWRtaW59YFxuXG4gIGdsb2JhbHM6IEdsb2JhbHNcblxuICBsb2dnZXI6IHBpbm8uTG9nZ2VyXG5cbiAgbG9naW4gPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogTG9naW5PcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPExvZ2luUmVzdWx0ICYgeyB1c2VyOiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0gfT4gPT4ge1xuICAgIGNvbnN0IHsgbG9naW4gfSA9IGxvY2FsT3BlcmF0aW9ucy5hdXRoXG4gICAgcmV0dXJuIGxvZ2luPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEZpbmQgZG9jdW1lbnQgYnkgSURcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgZG9jdW1lbnQgd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG5cbiAgcmVzZXRQYXNzd29yZCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBSZXNldFBhc3N3b3JkT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxSZXNldFBhc3N3b3JkUmVzdWx0PiA9PiB7XG4gICAgY29uc3QgeyByZXNldFBhc3N3b3JkIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiByZXNldFBhc3N3b3JkPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJlc3RvcmUgZ2xvYmFsIHZlcnNpb24gYnkgSURcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgdmVyc2lvbiB3aXRoIHNwZWNpZmllZCBJRFxuICAgKi9cbiAgcmVzdG9yZUdsb2JhbFZlcnNpb24gPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snZ2xvYmFscyddPihcbiAgICBvcHRpb25zOiBSZXN0b3JlR2xvYmFsVmVyc2lvbk9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHJlc3RvcmVWZXJzaW9uIH0gPSBsb2NhbEdsb2JhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gcmVzdG9yZVZlcnNpb248VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUmVzdG9yZSB2ZXJzaW9uIGJ5IElEXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIHZlcnNpb24gd2l0aCBzcGVjaWZpZWQgSURcbiAgICovXG4gIHJlc3RvcmVWZXJzaW9uID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFJlc3RvcmVWZXJzaW9uT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHJlc3RvcmVWZXJzaW9uIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gcmVzdG9yZVZlcnNpb248VD4odGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIHNjaGVtYTogR3JhcGhRTFNjaGVtYVxuXG4gIHNlY3JldDogc3RyaW5nXG5cbiAgc2VuZEVtYWlsOiAobWVzc2FnZTogU2VuZE1haWxPcHRpb25zKSA9PiBQcm9taXNlPHVua25vd24+XG5cbiAgdHlwZXM6IHtcbiAgICBhcnJheVR5cGVzOiBhbnlcbiAgICBibG9ja0lucHV0VHlwZXM6IGFueVxuICAgIGJsb2NrVHlwZXM6IGFueVxuICAgIGZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlPzogYW55XG4gICAgZ3JvdXBUeXBlczogYW55XG4gICAgbG9jYWxlSW5wdXRUeXBlPzogYW55XG4gICAgdGFiVHlwZXM6IGFueVxuICB9XG5cbiAgdW5sb2NrID0gYXN5bmMgPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFVubG9ja09wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHsgdW5sb2NrIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiB1bmxvY2sodGhpcywgb3B0aW9ucylcbiAgfVxuXG4gIHVwZGF0ZUdsb2JhbCA9IGFzeW5jIDxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ10+KFxuICAgIG9wdGlvbnM6IFVwZGF0ZUdsb2JhbE9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8VEdlbmVyYXRlZFR5cGVzWydnbG9iYWxzJ11bVF0+ID0+IHtcbiAgICBjb25zdCB7IHVwZGF0ZSB9ID0gbG9jYWxHbG9iYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIHVwZGF0ZTxUPih0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgdmFsaWRhdGlvblJ1bGVzOiAoYXJnczogT3BlcmF0aW9uQXJnczxhbnk+KSA9PiBWYWxpZGF0aW9uUnVsZVtdXG5cbiAgdmVyaWZ5RW1haWwgPSBhc3luYyA8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogVmVyaWZ5RW1haWxPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCB7IHZlcmlmeUVtYWlsIH0gPSBsb2NhbE9wZXJhdGlvbnMuYXV0aFxuICAgIHJldHVybiB2ZXJpZnlFbWFpbCh0aGlzLCBvcHRpb25zKVxuICB9XG5cbiAgdmVyc2lvbnM6IHtcbiAgICBbc2x1Zzogc3RyaW5nXTogYW55IC8vIFRPRE86IFR5cGUgdGhpc1xuICB9ID0ge31cblxuICBkZWxldGU8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRGVsZXRlT3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxCdWxrT3BlcmF0aW9uUmVzdWx0PFQ+IHwgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RdPiB7XG4gICAgY29uc3QgeyBkZWxldGVMb2NhbCB9ID0gbG9jYWxPcGVyYXRpb25zXG4gICAgcmV0dXJuIGRlbGV0ZUxvY2FsPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIGRlbGV0ZSBvbmUgb3IgbW9yZSBkb2N1bWVudHNcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnMgVXBkYXRlZCBkb2N1bWVudChzKVxuICAgKi9cbiAgZGVsZXRlPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IERlbGV0ZUJ5SURPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT5cblxuICBkZWxldGU8VCBleHRlbmRzIGtleW9mIFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXT4oXG4gICAgb3B0aW9uczogRGVsZXRlTWFueU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUPj5cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIFBheWxvYWRcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICovXG4gIC8vIEB0cy1leHBlY3QtZXJyb3IgLy8gVE9ETzogVHlwZVNjcmlwdCBoYWxsdWNpbmF0aW5nIGFnYWluLiBmaXggbGF0ZXJcbiAgYXN5bmMgaW5pdChvcHRpb25zOiBJbml0T3B0aW9ucyk6IFByb21pc2U8UGF5bG9hZD4ge1xuICAgIHRoaXMubG9nZ2VyID0gTG9nZ2VyKCdwYXlsb2FkJywgb3B0aW9ucy5sb2dnZXJPcHRpb25zLCBvcHRpb25zLmxvZ2dlckRlc3RpbmF0aW9uKVxuXG4gICAgdGhpcy5jb25maWcgPSBhd2FpdCBvcHRpb25zLmNvbmZpZ1xuXG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGF3YWl0IHZhbGlkYXRlKHRoaXMuY29uZmlnLCB0aGlzLmxvZ2dlcilcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29uZmlnLnNlY3JldCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvcjogbWlzc2luZyBzZWNyZXQga2V5LiBBIHNlY3JldCBrZXkgaXMgbmVlZGVkIHRvIHNlY3VyZSBQYXlsb2FkLicpXG4gICAgfVxuXG4gICAgdGhpcy5zZWNyZXQgPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKHRoaXMuY29uZmlnLnNlY3JldCkuZGlnZXN0KCdoZXgnKS5zbGljZSgwLCAzMilcblxuICAgIHRoaXMuZ2xvYmFscyA9IHtcbiAgICAgIGNvbmZpZzogdGhpcy5jb25maWcuZ2xvYmFscyxcbiAgICB9XG5cbiAgICB0aGlzLmNvbmZpZy5jb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgICB0aGlzLmNvbGxlY3Rpb25zW2NvbGxlY3Rpb24uc2x1Z10gPSB7XG4gICAgICAgIGNvbmZpZzogY29sbGVjdGlvbixcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgdGhpcy5kYiA9IHRoaXMuY29uZmlnLmRiLmluaXQoeyBwYXlsb2FkOiB0aGlzIH0pXG4gICAgdGhpcy5kYi5wYXlsb2FkID0gdGhpc1xuXG4gICAgaWYgKHRoaXMuZGI/LmluaXQpIHtcbiAgICAgIGF3YWl0IHRoaXMuZGIuaW5pdCh0aGlzKVxuICAgIH1cblxuICAgIGlmICghb3B0aW9ucy5kaXNhYmxlREJDb25uZWN0ICYmIHRoaXMuZGIuY29ubmVjdCkge1xuICAgICAgYXdhaXQgdGhpcy5kYi5jb25uZWN0KClcbiAgICB9XG5cbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdTdGFydGluZyBQYXlsb2FkLi4uJylcblxuICAgIC8vIENvbmZpZ3VyZSBlbWFpbCBzZXJ2aWNlXG4gICAgY29uc3QgZW1haWxPcHRpb25zID0gb3B0aW9ucy5lbWFpbCA/IHsgLi4ub3B0aW9ucy5lbWFpbCB9IDogdGhpcy5jb25maWcuZW1haWxcbiAgICBpZiAob3B0aW9ucy5lbWFpbCAmJiB0aGlzLmNvbmZpZy5lbWFpbCkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgJ0VtYWlsIG9wdGlvbnMgcHJvdmlkZWQgaW4gYm90aCBpbml0IG9wdGlvbnMgYW5kIGNvbmZpZy4gVXNpbmcgaW5pdCBvcHRpb25zLicsXG4gICAgICApXG4gICAgfVxuXG4gICAgdGhpcy5lbWFpbE9wdGlvbnMgPSBlbWFpbE9wdGlvbnMgPz8gZW1haWxEZWZhdWx0c1xuICAgIHRoaXMuZW1haWwgPSBidWlsZEVtYWlsKHRoaXMuZW1haWxPcHRpb25zLCB0aGlzLmxvZ2dlcilcbiAgICB0aGlzLnNlbmRFbWFpbCA9IHNlbmRFbWFpbC5iaW5kKHRoaXMpXG5cbiAgICBzZXJ2ZXJJbml0VGVsZW1ldHJ5KHRoaXMpXG5cbiAgICAvLyAxLiBsb29wIG92ZXIgY29sbGVjdGlvbnMsIGlmIGNvbGxlY3Rpb24gaGFzIGF1dGggc3RyYXRlZ3ksIGluaXRpYWxpemUgYW5kIHB1c2ggdG8gYXJyYXlcbiAgICBsZXQgand0U3RyYXRlZ3lFbmFibGVkID0gZmFsc2VcbiAgICB0aGlzLmF1dGhTdHJhdGVnaWVzID0gdGhpcy5jb25maWcuY29sbGVjdGlvbnMucmVkdWNlKChhdXRoU3RyYXRlZ2llcywgY29sbGVjdGlvbikgPT4ge1xuICAgICAgaWYgKGNvbGxlY3Rpb24/LmF1dGgpIHtcbiAgICAgICAgaWYgKGNvbGxlY3Rpb24uYXV0aC5zdHJhdGVnaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBhdXRoU3RyYXRlZ2llcy5wdXNoKC4uLmNvbGxlY3Rpb24uYXV0aC5zdHJhdGVnaWVzKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMi4gaWYgYXBpIGtleSBlbmFibGVkLCBwdXNoIGFwaSBrZXkgc3RyYXRlZ3kgaW50byB0aGUgYXJyYXlcbiAgICAgICAgaWYgKGNvbGxlY3Rpb24uYXV0aD8udXNlQVBJS2V5KSB7XG4gICAgICAgICAgYXV0aFN0cmF0ZWdpZXMucHVzaCh7XG4gICAgICAgICAgICBuYW1lOiBgJHtjb2xsZWN0aW9uLnNsdWd9LWFwaS1rZXlgLFxuICAgICAgICAgICAgYXV0aGVudGljYXRlOiBBUElLZXlBdXRoZW50aWNhdGlvbihjb2xsZWN0aW9uKSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gMy4gaWYgbG9jYWxTdHJhdGVneSBmbGFnIGlzIHRydWVcbiAgICAgICAgaWYgKCFjb2xsZWN0aW9uLmF1dGguZGlzYWJsZUxvY2FsU3RyYXRlZ3kgJiYgIWp3dFN0cmF0ZWd5RW5hYmxlZCkge1xuICAgICAgICAgIGp3dFN0cmF0ZWd5RW5hYmxlZCA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gYXV0aFN0cmF0ZWdpZXNcbiAgICB9LCBbXSBhcyBBdXRoU3RyYXRlZ3lbXSlcblxuICAgIC8vIDQuIGlmIGVuYWJsZWQsIHB1c2ggand0IHN0cmF0ZWd5IGludG8gYXV0aFN0cmF0ZWdpZXMgbGFzdFxuICAgIGlmIChqd3RTdHJhdGVneUVuYWJsZWQpIHtcbiAgICAgIHRoaXMuYXV0aFN0cmF0ZWdpZXMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdsb2NhbC1qd3QnLFxuICAgICAgICBhdXRoZW50aWNhdGU6IEpXVEF1dGhlbnRpY2F0aW9uLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMuZGlzYWJsZU9uSW5pdCkge1xuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLm9uSW5pdCA9PT0gJ2Z1bmN0aW9uJykgYXdhaXQgb3B0aW9ucy5vbkluaXQodGhpcylcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25maWcub25Jbml0ID09PSAnZnVuY3Rpb24nKSBhd2FpdCB0aGlzLmNvbmZpZy5vbkluaXQodGhpcylcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgdXBkYXRlPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFVwZGF0ZU1hbnlPcHRpb25zPFQ+LFxuICApOiBQcm9taXNlPEJ1bGtPcGVyYXRpb25SZXN1bHQ8VD4+XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGUgb25lIG9yIG1vcmUgZG9jdW1lbnRzXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqIEByZXR1cm5zIFVwZGF0ZWQgZG9jdW1lbnQocylcbiAgICovXG4gIHVwZGF0ZTxUIGV4dGVuZHMga2V5b2YgVEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgICBvcHRpb25zOiBVcGRhdGVCeUlET3B0aW9uczxUPixcbiAgKTogUHJvbWlzZTxUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVF0+XG5cbiAgdXBkYXRlPFQgZXh0ZW5kcyBrZXlvZiBUR2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ10+KFxuICAgIG9wdGlvbnM6IFVwZGF0ZU9wdGlvbnM8VD4sXG4gICk6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUPiB8IFRHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUXT4ge1xuICAgIGNvbnN0IHsgdXBkYXRlIH0gPSBsb2NhbE9wZXJhdGlvbnNcbiAgICByZXR1cm4gdXBkYXRlPFQ+KHRoaXMsIG9wdGlvbnMpXG4gIH1cbn1cblxuY29uc3QgaW5pdGlhbGl6ZWQgPSBuZXcgQmFzZVBheWxvYWQoKVxuXG5leHBvcnQgZGVmYXVsdCBpbml0aWFsaXplZFxuXG5sZXQgY2FjaGVkID0gZ2xvYmFsLl9wYXlsb2FkXG5cbmlmICghY2FjaGVkKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1tdWx0aS1hc3NpZ25cbiAgY2FjaGVkID0gZ2xvYmFsLl9wYXlsb2FkID0geyBwYXlsb2FkOiBudWxsLCBwcm9taXNlOiBudWxsIH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldFBheWxvYWQgPSBhc3luYyAob3B0aW9ucz86IEluaXRPcHRpb25zKTogUHJvbWlzZTxCYXNlUGF5bG9hZDxHZW5lcmF0ZWRUeXBlcz4+ID0+IHtcbiAgaWYgKGNhY2hlZC5wYXlsb2FkKSB7XG4gICAgcmV0dXJuIGNhY2hlZC5wYXlsb2FkXG4gIH1cblxuICBpZiAoIWNhY2hlZC5wcm9taXNlKSB7XG4gICAgY2FjaGVkLnByb21pc2UgPSBuZXcgQmFzZVBheWxvYWQ8R2VuZXJhdGVkVHlwZXM+KCkuaW5pdChvcHRpb25zKVxuICB9XG5cbiAgdHJ5IHtcbiAgICBjYWNoZWQucGF5bG9hZCA9IGF3YWl0IGNhY2hlZC5wcm9taXNlXG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjYWNoZWQucHJvbWlzZSA9IG51bGxcbiAgICB0aHJvdyBlXG4gIH1cblxuICByZXR1cm4gY2FjaGVkLnBheWxvYWRcbn1cblxudHlwZSBHZW5lcmF0ZWRUeXBlcyA9IHtcbiAgY29sbGVjdGlvbnM6IHtcbiAgICBbc2x1ZzogbnVtYmVyIHwgc3RyaW5nIHwgc3ltYm9sXTogVHlwZVdpdGhJRCAmIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gIH1cbiAgZ2xvYmFsczoge1xuICAgIFtzbHVnOiBudW1iZXIgfCBzdHJpbmcgfCBzeW1ib2xdOiBHbG9iYWxUeXBlV2l0aElEICYgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgfVxufVxuXG50eXBlIFBheWxvYWQgPSBCYXNlUGF5bG9hZDxHZW5lcmF0ZWRUeXBlcz5cblxuaW50ZXJmYWNlIFJlcXVlc3RDb250ZXh0IHtcbiAgW2tleTogc3RyaW5nXTogdW5rbm93blxufVxuXG4vLyB0eXBlIERhdGFiYXNlQWRhcHRlciA9IEJhc2VEYXRhYmFzZUFkYXB0ZXJcblxuZXhwb3J0IHR5cGUgeyBHZW5lcmF0ZWRUeXBlcywgUGF5bG9hZCwgUmVxdWVzdENvbnRleHQgfVxuIl0sIm5hbWVzIjpbImNyeXB0byIsImRlY3J5cHQiLCJlbmNyeXB0IiwiQVBJS2V5QXV0aGVudGljYXRpb24iLCJKV1RBdXRoZW50aWNhdGlvbiIsImxvY2FsT3BlcmF0aW9ucyIsInZhbGlkYXRlIiwiYnVpbGRFbWFpbCIsImRlZmF1bHRzIiwiZW1haWxEZWZhdWx0cyIsInNlbmRFbWFpbCIsImxvY2FsR2xvYmFsT3BlcmF0aW9ucyIsIkxvZ2dlciIsInNlcnZlckluaXQiLCJzZXJ2ZXJJbml0VGVsZW1ldHJ5IiwiQmFzZVBheWxvYWQiLCJhdXRoU3RyYXRlZ2llcyIsImNvbGxlY3Rpb25zIiwiY29uZmlnIiwiY3JlYXRlIiwib3B0aW9ucyIsImRiIiwiZW1haWwiLCJlbWFpbE9wdGlvbnMiLCJleHRlbnNpb25zIiwiZmluZCIsImZpbmRCeUlEIiwiZmluZEdsb2JhbCIsImZpbmRPbmUiLCJmaW5kR2xvYmFsVmVyc2lvbkJ5SUQiLCJmaW5kVmVyc2lvbkJ5SUQiLCJmaW5kR2xvYmFsVmVyc2lvbnMiLCJmaW5kVmVyc2lvbnMiLCJmb3Jnb3RQYXNzd29yZCIsImF1dGgiLCJnZXRBUElVUkwiLCJzZXJ2ZXJVUkwiLCJyb3V0ZXMiLCJhcGkiLCJnZXRBZG1pblVSTCIsImFkbWluIiwiZ2xvYmFscyIsImxvZ2dlciIsImxvZ2luIiwicmVzZXRQYXNzd29yZCIsInJlc3RvcmVHbG9iYWxWZXJzaW9uIiwicmVzdG9yZVZlcnNpb24iLCJzY2hlbWEiLCJzZWNyZXQiLCJ0eXBlcyIsInVubG9jayIsInVwZGF0ZUdsb2JhbCIsInVwZGF0ZSIsInZhbGlkYXRpb25SdWxlcyIsInZlcmlmeUVtYWlsIiwidmVyc2lvbnMiLCJkZWxldGUiLCJkZWxldGVMb2NhbCIsImluaXQiLCJsb2dnZXJPcHRpb25zIiwibG9nZ2VyRGVzdGluYXRpb24iLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJFcnJvciIsImNyZWF0ZUhhc2giLCJkaWdlc3QiLCJzbGljZSIsImZvckVhY2giLCJjb2xsZWN0aW9uIiwic2x1ZyIsInBheWxvYWQiLCJkaXNhYmxlREJDb25uZWN0IiwiY29ubmVjdCIsImluZm8iLCJ3YXJuIiwiYmluZCIsImp3dFN0cmF0ZWd5RW5hYmxlZCIsInJlZHVjZSIsInN0cmF0ZWdpZXMiLCJsZW5ndGgiLCJwdXNoIiwidXNlQVBJS2V5IiwibmFtZSIsImF1dGhlbnRpY2F0ZSIsImRpc2FibGVMb2NhbFN0cmF0ZWd5IiwiZGlzYWJsZU9uSW5pdCIsIm9uSW5pdCIsImluaXRpYWxpemVkIiwiY2FjaGVkIiwiZ2xvYmFsIiwiX3BheWxvYWQiLCJwcm9taXNlIiwiZ2V0UGF5bG9hZCIsImUiXSwibWFwcGluZ3MiOiJBQUtBLE9BQU9BLFlBQVksU0FBUTtBQXVDM0IsU0FBU0MsT0FBTyxFQUFFQyxPQUFPLFFBQVEsZ0JBQWU7QUFDaEQsU0FBU0Msb0JBQW9CLFFBQVEsMkJBQTBCO0FBQy9ELFNBQVNDLGlCQUFpQixRQUFRLHdCQUF1QjtBQUN6RCxPQUFPQyxxQkFBcUIsaUNBQWdDO0FBQzVELE9BQU9DLGNBQWMsb0JBQW1CO0FBQ3hDLE9BQU9DLGdCQUFnQixnQkFBZTtBQUN0QyxTQUFTQyxZQUFZQyxhQUFhLFFBQVEsbUJBQWtCO0FBQzVELE9BQU9DLGVBQWUsb0JBQW1CO0FBQ3pDLE9BQU9DLDJCQUEyQiw2QkFBNEI7QUFDOUQsT0FBT0MsWUFBWSxxQkFBb0I7QUFDdkMsU0FBU0MsY0FBY0MsbUJBQW1CLFFBQVEsMENBQXlDO0FBRTNGOztDQUVDLEdBQ0QsT0FBTyxNQUFNQztJQUNYQyxlQUE4QjtJQUU5QkMsY0FFSSxDQUFDLEVBQUM7SUFFTkMsT0FB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
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* sets request locale
|
|
3
|
-
*/
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
Object.defineProperty(exports, "default", {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
get: function() {
|
|
10
|
-
return localizationMiddleware;
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
function localizationMiddleware(req, res, next) {
|
|
3
|
+
*/ export default function localizationMiddleware(req, res, next) {
|
|
14
4
|
const localization = req.payload.config.localization;
|
|
15
5
|
if (!localization) {
|
|
16
6
|
next();
|
|
@@ -44,4 +34,4 @@ function localizationMiddleware(req, res, next) {
|
|
|
44
34
|
next();
|
|
45
35
|
}
|
|
46
36
|
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2NhbGl6YXRpb24vbWlkZGxld2FyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHNldHMgcmVxdWVzdCBsb2NhbGVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbG9jYWxpemF0aW9uTWlkZGxld2FyZShyZXEsIHJlcywgbmV4dCkge1xuICBjb25zdCBsb2NhbGl6YXRpb24gPSByZXEucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG4gIGlmICghbG9jYWxpemF0aW9uKSB7XG4gICAgbmV4dCgpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCB2YWxpZExvY2FsZXMgPSBbLi4ubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLCAnYWxsJ11cbiAgY29uc3QgdmFsaWRGYWxsYmFja0xvY2FsZXMgPSBbLi4ubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLCAnbnVsbCddXG5cbiAgbGV0IHJlcXVlc3RlZExvY2FsZSA9IHJlcS5xdWVyeS5sb2NhbGUgfHwgbG9jYWxpemF0aW9uLmRlZmF1bHRMb2NhbGVcbiAgbGV0IHJlcXVlc3RlZEZhbGxiYWNrTG9jYWxlID0gcmVxLnF1ZXJ5WydmYWxsYmFjay1sb2NhbGUnXVxuXG4gIGlmIChyZXEuYm9keSkge1xuICAgIGlmIChyZXEuYm9keS5sb2NhbGUpIHJlcXVlc3RlZExvY2FsZSA9IHJlcS5ib2R5LmxvY2FsZVxuICAgIGlmIChyZXEuYm9keVsnZmFsbGJhY2stbG9jYWxlJ10pIHtcbiAgICAgIHJlcXVlc3RlZEZhbGxiYWNrTG9jYWxlID0gcmVxLmJvZHlbJ2ZhbGxiYWNrLWxvY2FsZSddXG4gICAgfVxuICB9XG5cbiAgaWYgKHJlcXVlc3RlZEZhbGxiYWNrTG9jYWxlID09PSAnbm9uZScpIHJlcXVlc3RlZEZhbGxiYWNrTG9jYWxlID0gJ251bGwnXG4gIGlmIChyZXF1ZXN0ZWRMb2NhbGUgPT09ICcqJyB8fCByZXF1ZXN0ZWRMb2NhbGUgPT09ICdhbGwnKSB7XG4gICAgcmVxdWVzdGVkTG9jYWxlID0gJ2FsbCdcbiAgfVxuICByZXEuZmFsbGJhY2tMb2NhbGUgPSB2YWxpZEZhbGxiYWNrTG9jYWxlcy5maW5kKChsb2NhbGUpID0+IGxvY2FsZSA9PT0gcmVxdWVzdGVkRmFsbGJhY2tMb2NhbGUpXG5cbiAgcmVxLmxvY2FsZSA9IHZhbGlkTG9jYWxlcy5maW5kKChsb2NhbGUpID0+
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2NhbGl6YXRpb24vbWlkZGxld2FyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIHNldHMgcmVxdWVzdCBsb2NhbGVcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbG9jYWxpemF0aW9uTWlkZGxld2FyZShyZXEsIHJlcywgbmV4dCkge1xuICBjb25zdCBsb2NhbGl6YXRpb24gPSByZXEucGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG4gIGlmICghbG9jYWxpemF0aW9uKSB7XG4gICAgbmV4dCgpXG4gICAgcmV0dXJuXG4gIH1cblxuICBjb25zdCB2YWxpZExvY2FsZXMgPSBbLi4ubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLCAnYWxsJ11cbiAgY29uc3QgdmFsaWRGYWxsYmFja0xvY2FsZXMgPSBbLi4ubG9jYWxpemF0aW9uLmxvY2FsZUNvZGVzLCAnbnVsbCddXG5cbiAgbGV0IHJlcXVlc3RlZExvY2FsZSA9IHJlcS5xdWVyeS5sb2NhbGUgfHwgbG9jYWxpemF0aW9uLmRlZmF1bHRMb2NhbGVcbiAgbGV0IHJlcXVlc3RlZEZhbGxiYWNrTG9jYWxlID0gcmVxLnF1ZXJ5WydmYWxsYmFjay1sb2NhbGUnXVxuXG4gIGlmIChyZXEuYm9keSkge1xuICAgIGlmIChyZXEuYm9keS5sb2NhbGUpIHJlcXVlc3RlZExvY2FsZSA9IHJlcS5ib2R5LmxvY2FsZVxuICAgIGlmIChyZXEuYm9keVsnZmFsbGJhY2stbG9jYWxlJ10pIHtcbiAgICAgIHJlcXVlc3RlZEZhbGxiYWNrTG9jYWxlID0gcmVxLmJvZHlbJ2ZhbGxiYWNrLWxvY2FsZSddXG4gICAgfVxuICB9XG5cbiAgaWYgKHJlcXVlc3RlZEZhbGxiYWNrTG9jYWxlID09PSAnbm9uZScpIHJlcXVlc3RlZEZhbGxiYWNrTG9jYWxlID0gJ251bGwnXG4gIGlmIChyZXF1ZXN0ZWRMb2NhbGUgPT09ICcqJyB8fCByZXF1ZXN0ZWRMb2NhbGUgPT09ICdhbGwnKSB7XG4gICAgcmVxdWVzdGVkTG9jYWxlID0gJ2FsbCdcbiAgfVxuICByZXEuZmFsbGJhY2tMb2NhbGUgPSB2YWxpZEZhbGxiYWNrTG9jYWxlcy5maW5kKChsb2NhbGUpID0+IGxvY2FsZSA9PT0gcmVxdWVzdGVkRmFsbGJhY2tMb2NhbGUpXG5cbiAgcmVxLmxvY2FsZSA9IHZhbGlkTG9jYWxlcy5maW5kKChsb2NhbGUpID0+IGxvY2FsZSA9PT0gcmVxdWVzdGVkTG9jYWxlKVxuXG4gIGlmICghcmVxLmZhbGxiYWNrTG9jYWxlKSB7XG4gICAgcmVxLmZhbGxiYWNrTG9jYWxlID1cbiAgICAgIGxvY2FsaXphdGlvbi5sb2NhbGVzLmZpbmQoKHsgY29kZSB9KSA9PiByZXEubG9jYWxlID09PSBjb2RlKT8uZmFsbGJhY2tMb2NhbGUgfHxcbiAgICAgIGxvY2FsaXphdGlvbi5kZWZhdWx0TG9jYWxlXG4gIH1cbiAgbmV4dCgpXG59XG4iXSwibmFtZXMiOlsibG9jYWxpemF0aW9uTWlkZGxld2FyZSIsInJlcSIsInJlcyIsIm5leHQiLCJsb2NhbGl6YXRpb24iLCJwYXlsb2FkIiwiY29uZmlnIiwidmFsaWRMb2NhbGVzIiwibG9jYWxlQ29kZXMiLCJ2YWxpZEZhbGxiYWNrTG9jYWxlcyIsInJlcXVlc3RlZExvY2FsZSIsInF1ZXJ5IiwibG9jYWxlIiwiZGVmYXVsdExvY2FsZSIsInJlcXVlc3RlZEZhbGxiYWNrTG9jYWxlIiwiYm9keSIsImZhbGxiYWNrTG9jYWxlIiwiZmluZCIsImxvY2FsZXMiLCJjb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Q0FFQyxHQUNELGVBQWUsU0FBU0EsdUJBQXVCQyxHQUFHLEVBQUVDLEdBQUcsRUFBRUMsSUFBSTtJQUMzRCxNQUFNQyxlQUFlSCxJQUFJSSxPQUFPLENBQUNDLE1BQU0sQ0FBQ0YsWUFBWTtJQUNwRCxJQUFJLENBQUNBLGNBQWM7UUFDakJEO1FBQ0E7SUFDRjtJQUVBLE1BQU1JLGVBQWU7V0FBSUgsYUFBYUksV0FBVztRQUFFO0tBQU07SUFDekQsTUFBTUMsdUJBQXVCO1dBQUlMLGFBQWFJLFdBQVc7UUFBRTtLQUFPO0lBRWxFLElBQUlFLGtCQUFrQlQsSUFBSVUsS0FBSyxDQUFDQyxNQUFNLElBQUlSLGFBQWFTLGFBQWE7SUFDcEUsSUFBSUMsMEJBQTBCYixJQUFJVSxLQUFLLENBQUMsa0JBQWtCO0lBRTFELElBQUlWLElBQUljLElBQUksRUFBRTtRQUNaLElBQUlkLElBQUljLElBQUksQ0FBQ0gsTUFBTSxFQUFFRixrQkFBa0JULElBQUljLElBQUksQ0FBQ0gsTUFBTTtRQUN0RCxJQUFJWCxJQUFJYyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDL0JELDBCQUEwQmIsSUFBSWMsSUFBSSxDQUFDLGtCQUFrQjtRQUN2RDtJQUNGO0lBRUEsSUFBSUQsNEJBQTRCLFFBQVFBLDBCQUEwQjtJQUNsRSxJQUFJSixvQkFBb0IsT0FBT0Esb0JBQW9CLE9BQU87UUFDeERBLGtCQUFrQjtJQUNwQjtJQUNBVCxJQUFJZSxjQUFjLEdBQUdQLHFCQUFxQlEsSUFBSSxDQUFDLENBQUNMLFNBQVdBLFdBQVdFO0lBRXRFYixJQUFJVyxNQUFNLEdBQUdMLGFBQWFVLElBQUksQ0FBQyxDQUFDTCxTQUFXQSxXQUFXRjtJQUV0RCxJQUFJLENBQUNULElBQUllLGNBQWMsRUFBRTtRQUN2QmYsSUFBSWUsY0FBYyxHQUNoQlosYUFBYWMsT0FBTyxDQUFDRCxJQUFJLENBQUMsQ0FBQyxFQUFFRSxJQUFJLEVBQUUsR0FBS2xCLElBQUlXLE1BQU0sS0FBS08sT0FBT0gsa0JBQzlEWixhQUFhUyxhQUFhO0lBQzlCO0lBQ0FWO0FBQ0YifQ==
|
|
@@ -1,19 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
1
|
const sanitizeFallbackLocale = (fallbackLocale)=>{
|
|
12
2
|
if (fallbackLocale === 'null' || fallbackLocale === 'none' || fallbackLocale === 'false' || fallbackLocale === false || fallbackLocale === null) {
|
|
13
3
|
return null;
|
|
14
4
|
}
|
|
15
5
|
return fallbackLocale;
|
|
16
6
|
};
|
|
17
|
-
|
|
7
|
+
export default sanitizeFallbackLocale;
|
|
18
8
|
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2NhbGl6YXRpb24vc2FuaXRpemVGYWxsYmFja0xvY2FsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzYW5pdGl6ZUZhbGxiYWNrTG9jYWxlID0gKGZhbGxiYWNrTG9jYWxlKSA9PiB7XG4gIGlmIChcbiAgICBmYWxsYmFja0xvY2FsZSA9PT0gJ251bGwnIHx8XG4gICAgZmFsbGJhY2tMb2NhbGUgPT09ICdub25lJyB8fFxuICAgIGZhbGxiYWNrTG9jYWxlID09PSAnZmFsc2UnIHx8XG4gICAgZmFsbGJhY2tMb2NhbGUgPT09IGZhbHNlIHx8XG4gICAgZmFsbGJhY2tMb2NhbGUgPT09IG51bGxcbiAgKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiBmYWxsYmFja0xvY2FsZVxufVxuXG5leHBvcnQgZGVmYXVsdCBzYW5pdGl6ZUZhbGxiYWNrTG9jYWxlXG4iXSwibmFtZXMiOlsic2FuaXRpemVGYWxsYmFja0xvY2FsZSIsImZhbGxiYWNrTG9jYWxlIl0sIm1hcHBpbmdzIjoiQUFBQSxNQUFNQSx5QkFBeUIsQ0FBQ0M7SUFDOUIsSUFDRUEsbUJBQW1CLFVBQ25CQSxtQkFBbUIsVUFDbkJBLG1CQUFtQixXQUNuQkEsbUJBQW1CLFNBQ25CQSxtQkFBbUIsTUFDbkI7UUFDQSxPQUFPO0lBQ1Q7SUFFQSxPQUFPQTtBQUNUO0FBRUEsZUFBZUQsdUJBQXNCIn0=
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "deleteUserPreferences", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return deleteUserPreferences;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const deleteUserPreferences = async ({ collectionConfig, ids, payload, req })=>{
|
|
1
|
+
export const deleteUserPreferences = async ({ collectionConfig, ids, payload, req })=>{
|
|
12
2
|
if (collectionConfig.auth) {
|
|
13
3
|
await payload.db.deleteMany({
|
|
14
4
|
collection: 'payload-preferences',
|
|
@@ -40,4 +30,4 @@ const deleteUserPreferences = async ({ collectionConfig, ids, payload, req })=>{
|
|
|
40
30
|
});
|
|
41
31
|
};
|
|
42
32
|
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcmVmZXJlbmNlcy9kZWxldGVVc2VyUHJlZmVyZW5jZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4nXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMnXG5cbnR5cGUgQXJncyA9IHtcbiAgY29sbGVjdGlvbkNvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICAvKipcbiAgICogVXNlciBJRHMgdG8gZGVsZXRlXG4gICAqL1xuICBpZHM6IChudW1iZXIgfCBzdHJpbmcpW11cbiAgcGF5bG9hZDogUGF5bG9hZFxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG59XG5leHBvcnQgY29uc3QgZGVsZXRlVXNlclByZWZlcmVuY2VzID0gYXN5bmMgKHsgY29sbGVjdGlvbkNvbmZpZywgaWRzLCBwYXlsb2FkLCByZXEgfTogQXJncykgPT4ge1xuICBpZiAoY29sbGVjdGlvbkNvbmZpZy5hdXRoKSB7XG4gICAgYXdhaXQgcGF5bG9hZC5kYi5kZWxldGVNYW55KHtcbiAgICAgIGNvbGxlY3Rpb246ICdwYXlsb2FkLXByZWZlcmVuY2VzJyxcbiAgICAgIHJlcSxcbiAgICAgIHdoZXJlOiB7XG4gICAgICAgIGFuZDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgICd1c2VyLnZhbHVlJzogeyBpbjogaWRzIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICAndXNlci5yZWxhdGlvblRvJzogeyBlcXVhbHM6IGNvbGxlY3Rpb25Db25maWcuc2x1ZyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pXG4gIH1cbiAgYXdhaXQgcGF5bG9hZC5kYi5kZWxldGVNYW55KHtcbiAgICBjb2xsZWN0aW9uOiAncGF5bG9hZC1wcmVmZXJlbmNlcycsXG4gICAgcmVxLFxuICAgIHdoZXJlOiB7XG4gICAgICBrZXk6IHsgaW46IGlkcy5tYXAoKGlkKSA9PiBgY29sbGVjdGlvbi0ke2NvbGxlY3Rpb25Db25maWcuc2x1Z30tJHtpZH1gKSB9LFxuICAgIH0sXG4gIH0pXG59XG4iXSwibmFtZXMiOlsiZGVsZXRlVXNlclByZWZlcmVuY2VzIiwiY29sbGVjdGlvbkNvbmZpZyIsImlkcyIsInBheWxvYWQiLCJyZXEiLCJhdXRoIiwiZGIiLCJkZWxldGVNYW55IiwiY29sbGVjdGlvbiIsIndoZXJlIiwiYW5kIiwiaW4iLCJlcXVhbHMiLCJzbHVnIiwia2V5IiwibWFwIiwiaWQiXSwibWFwcGluZ3MiOiJBQWFBLE9BQU8sTUFBTUEsd0JBQXdCLE9BQU8sRUFBRUMsZ0JBQWdCLEVBQUVDLEdBQUcsRUFBRUMsT0FBTyxFQUFFQyxHQUFHLEVBQVE7SUFDdkYsSUFBSUgsaUJBQWlCSSxJQUFJLEVBQUU7UUFDekIsTUFBTUYsUUFBUUcsRUFBRSxDQUFDQyxVQUFVLENBQUM7WUFDMUJDLFlBQVk7WUFDWko7WUFDQUssT0FBTztnQkFDTEMsS0FBSztvQkFDSDt3QkFDRSxjQUFjOzRCQUFFQyxJQUFJVDt3QkFBSTtvQkFDMUI7b0JBQ0E7d0JBQ0UsbUJBQW1COzRCQUFFVSxRQUFRWCxpQkFBaUJZLElBQUk7d0JBQUM7b0JBQ3JEO2lCQUNEO1lBQ0g7UUFDRjtJQUNGO0lBQ0EsTUFBTVYsUUFBUUcsRUFBRSxDQUFDQyxVQUFVLENBQUM7UUFDMUJDLFlBQVk7UUFDWko7UUFDQUssT0FBTztZQUNMSyxLQUFLO2dCQUFFSCxJQUFJVCxJQUFJYSxHQUFHLENBQUMsQ0FBQ0MsS0FBTyxDQUFDLFdBQVcsRUFBRWYsaUJBQWlCWSxJQUFJLENBQUMsQ0FBQyxFQUFFRyxHQUFHLENBQUM7WUFBRTtRQUMxRTtJQUNGO0FBQ0YsRUFBQyJ9
|
|
@@ -1,31 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _defaultAccess = /*#__PURE__*/ _interop_require_default(require("../../auth/defaultAccess"));
|
|
12
|
-
const _executeAccess = /*#__PURE__*/ _interop_require_default(require("../../auth/executeAccess"));
|
|
13
|
-
const _NotFound = /*#__PURE__*/ _interop_require_default(require("../../errors/NotFound"));
|
|
14
|
-
const _UnathorizedError = /*#__PURE__*/ _interop_require_default(require("../../errors/UnathorizedError"));
|
|
15
|
-
function _interop_require_default(obj) {
|
|
16
|
-
return obj && obj.__esModule ? obj : {
|
|
17
|
-
default: obj
|
|
18
|
-
};
|
|
19
|
-
}
|
|
1
|
+
import defaultAccess from '../../auth/defaultAccess';
|
|
2
|
+
import executeAccess from '../../auth/executeAccess';
|
|
3
|
+
import NotFound from '../../errors/NotFound';
|
|
4
|
+
import UnauthorizedError from '../../errors/UnathorizedError';
|
|
20
5
|
async function deleteOperation(args) {
|
|
21
6
|
const { key, overrideAccess, req: { payload }, req, user } = args;
|
|
22
7
|
if (!user) {
|
|
23
|
-
throw new
|
|
8
|
+
throw new UnauthorizedError(req.t);
|
|
24
9
|
}
|
|
25
10
|
if (!overrideAccess) {
|
|
26
|
-
await (
|
|
11
|
+
await executeAccess({
|
|
27
12
|
req
|
|
28
|
-
},
|
|
13
|
+
}, defaultAccess);
|
|
29
14
|
}
|
|
30
15
|
const where = {
|
|
31
16
|
and: [
|
|
@@ -56,8 +41,8 @@ async function deleteOperation(args) {
|
|
|
56
41
|
if (result.docs.length === 1) {
|
|
57
42
|
return result.docs[0];
|
|
58
43
|
}
|
|
59
|
-
throw new
|
|
44
|
+
throw new NotFound(req.t);
|
|
60
45
|
}
|
|
61
|
-
|
|
46
|
+
export default deleteOperation;
|
|
62
47
|
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcmVmZXJlbmNlcy9vcGVyYXRpb25zL2RlbGV0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERvY3VtZW50LCBXaGVyZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQcmVmZXJlbmNlUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgZGVmYXVsdEFjY2VzcyBmcm9tICcuLi8uLi9hdXRoL2RlZmF1bHRBY2Nlc3MnXG5pbXBvcnQgZXhlY3V0ZUFjY2VzcyBmcm9tICcuLi8uLi9hdXRoL2V4ZWN1dGVBY2Nlc3MnXG5pbXBvcnQgTm90Rm91bmQgZnJvbSAnLi4vLi4vZXJyb3JzL05vdEZvdW5kJ1xuaW1wb3J0IFVuYXV0aG9yaXplZEVycm9yIGZyb20gJy4uLy4uL2Vycm9ycy9VbmF0aG9yaXplZEVycm9yJ1xuXG5hc3luYyBmdW5jdGlvbiBkZWxldGVPcGVyYXRpb24oYXJnczogUHJlZmVyZW5jZVJlcXVlc3QpOiBQcm9taXNlPERvY3VtZW50PiB7XG4gIGNvbnN0IHtcbiAgICBrZXksXG4gICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgcmVxOiB7IHBheWxvYWQgfSxcbiAgICByZXEsXG4gICAgdXNlcixcbiAgfSA9IGFyZ3NcblxuICBpZiAoIXVzZXIpIHtcbiAgICB0aHJvdyBuZXcgVW5hdXRob3JpemVkRXJyb3IocmVxLnQpXG4gIH1cblxuICBpZiAoIW92ZXJyaWRlQWNjZXNzKSB7XG4gICAgYXdhaXQgZXhlY3V0ZUFjY2Vzcyh7IHJlcSB9LCBkZWZhdWx0QWNjZXNzKVxuICB9XG5cbiAgY29uc3Qgd2hlcmU6IFdoZXJlID0ge1xuICAgIGFuZDogW1xuICAgICAgeyBrZXk6IHsgZXF1YWxzOiBrZXkgfSB9LFxuICAgICAgeyAndXNlci52YWx1ZSc6IHsgZXF1YWxzOiB1c2VyLmlkIH0gfSxcbiAgICAgIHsgJ3VzZXIucmVsYXRpb25Ubyc6IHsgZXF1YWxzOiB1c2VyLmNvbGxlY3Rpb24gfSB9LFxuICAgIF0sXG4gIH1cblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmRlbGV0ZSh7XG4gICAgY29sbGVjdGlvbjogJ3BheWxvYWQtcHJlZmVyZW5jZXMnLFxuICAgIGRlcHRoOiAwLFxuICAgIHVzZXIsXG4gICAgd2hlcmUsXG4gIH0pXG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciAvLyBUT0RPOiBmaXggbGF0ZXJcbiAgaWYgKHJlc3VsdC5kb2NzLmxlbmd0aCA9PT0gMSkge1xuICAgIHJldHVybiByZXN1bHQuZG9jc1swXVxuICB9XG4gIHRocm93IG5ldyBOb3RGb3VuZChyZXEudClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZGVsZXRlT3BlcmF0aW9uXG4iXSwibmFtZXMiOlsiZGVmYXVsdEFjY2VzcyIsImV4ZWN1dGVBY2Nlc3MiLCJOb3RGb3VuZCIsIlVuYXV0aG9yaXplZEVycm9yIiwiZGVsZXRlT3BlcmF0aW9uIiwiYXJncyIsImtleSIsIm92ZXJyaWRlQWNjZXNzIiwicmVxIiwicGF5bG9hZCIsInVzZXIiLCJ0Iiwid2hlcmUiLCJhbmQiLCJlcXVhbHMiLCJpZCIsImNvbGxlY3Rpb24iLCJyZXN1bHQiLCJkZWxldGUiLCJkZXB0aCIsImRvY3MiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiJBQUdBLE9BQU9BLG1CQUFtQiwyQkFBMEI7QUFDcEQsT0FBT0MsbUJBQW1CLDJCQUEwQjtBQUNwRCxPQUFPQyxjQUFjLHdCQUF1QjtBQUM1QyxPQUFPQyx1QkFBdUIsZ0NBQStCO0FBRTdELGVBQWVDLGdCQUFnQkMsSUFBdUI7SUFDcEQsTUFBTSxFQUNKQyxHQUFHLEVBQ0hDLGNBQWMsRUFDZEMsS0FBSyxFQUFFQyxPQUFPLEVBQUUsRUFDaEJELEdBQUcsRUFDSEUsSUFBSSxFQUNMLEdBQUdMO0lBRUosSUFBSSxDQUFDSyxNQUFNO1FBQ1QsTUFBTSxJQUFJUCxrQkFBa0JLLElBQUlHLENBQUM7SUFDbkM7SUFFQSxJQUFJLENBQUNKLGdCQUFnQjtRQUNuQixNQUFNTixjQUFjO1lBQUVPO1FBQUksR0FBR1I7SUFDL0I7SUFFQSxNQUFNWSxRQUFlO1FBQ25CQyxLQUFLO1lBQ0g7Z0JBQUVQLEtBQUs7b0JBQUVRLFFBQVFSO2dCQUFJO1lBQUU7WUFDdkI7Z0JBQUUsY0FBYztvQkFBRVEsUUFBUUosS0FBS0ssRUFBRTtnQkFBQztZQUFFO1lBQ3BDO2dCQUFFLG1CQUFtQjtvQkFBRUQsUUFBUUosS0FBS00sVUFBVTtnQkFBQztZQUFFO1NBQ2xEO0lBQ0g7SUFFQSxNQUFNQyxTQUFTLE1BQU1SLFFBQVFTLE1BQU0sQ0FBQztRQUNsQ0YsWUFBWTtRQUNaRyxPQUFPO1FBQ1BUO1FBQ0FFO0lBQ0Y7SUFFQSxzQ0FBc0M7SUFDdEMsSUFBSUssT0FBT0csSUFBSSxDQUFDQyxNQUFNLEtBQUssR0FBRztRQUM1QixPQUFPSixPQUFPRyxJQUFJLENBQUMsRUFBRTtJQUN2QjtJQUNBLE1BQU0sSUFBSWxCLFNBQVNNLElBQUlHLENBQUM7QUFDMUI7QUFFQSxlQUFlUCxnQkFBZSJ9
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
1
|
async function findOne(args) {
|
|
12
2
|
const { key, req: { payload }, user } = args;
|
|
13
3
|
if (!user) return null;
|
|
@@ -40,6 +30,6 @@ async function findOne(args) {
|
|
|
40
30
|
if (docs.length === 0) return null;
|
|
41
31
|
return docs[0];
|
|
42
32
|
}
|
|
43
|
-
|
|
33
|
+
export default findOne;
|
|
44
34
|
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcmVmZXJlbmNlcy9vcGVyYXRpb25zL2ZpbmRPbmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHZW5lcmF0ZWRUeXBlcyB9IGZyb20gJy4uLy4uLydcbmltcG9ydCB0eXBlIHsgV2hlcmUgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgUHJlZmVyZW5jZVJlcXVlc3QgfSBmcm9tICcuLi90eXBlcydcblxuYXN5bmMgZnVuY3Rpb24gZmluZE9uZShcbiAgYXJnczogUHJlZmVyZW5jZVJlcXVlc3QsXG4pOiBQcm9taXNlPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddWydfcHJlZmVyZW5jZSddPiB7XG4gIGNvbnN0IHtcbiAgICBrZXksXG4gICAgcmVxOiB7IHBheWxvYWQgfSxcbiAgICB1c2VyLFxuICB9ID0gYXJnc1xuXG4gIGlmICghdXNlcikgcmV0dXJuIG51bGxcblxuICBjb25zdCB3aGVyZTogV2hlcmUgPSB7XG4gICAgYW5kOiBbXG4gICAgICB7IGtleTogeyBlcXVhbHM6IGtleSB9IH0sXG4gICAgICB7ICd1c2VyLnZhbHVlJzogeyBlcXVhbHM6IHVzZXIuaWQgfSB9LFxuICAgICAgeyAndXNlci5yZWxhdGlvblRvJzogeyBlcXVhbHM6IHVzZXIuY29sbGVjdGlvbiB9IH0sXG4gICAgXSxcbiAgfVxuXG4gIGNvbnN0IHsgZG9jcyB9ID0gYXdhaXQgcGF5bG9hZC5maW5kKHtcbiAgICBjb2xsZWN0aW9uOiAncGF5bG9hZC1wcmVmZXJlbmNlcycsXG4gICAgZGVwdGg6IDAsXG4gICAgcGFnaW5hdGlvbjogZmFsc2UsXG4gICAgdXNlcixcbiAgICB3aGVyZSxcbiAgfSlcblxuICBpZiAoZG9jcy5sZW5ndGggPT09IDApIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIGRvY3NbMF1cbn1cblxuZXhwb3J0IGRlZmF1bHQgZmluZE9uZVxuIl0sIm5hbWVzIjpbImZpbmRPbmUiLCJhcmdzIiwia2V5IiwicmVxIiwicGF5bG9hZCIsInVzZXIiLCJ3aGVyZSIsImFuZCIsImVxdWFscyIsImlkIiwiY29sbGVjdGlvbiIsImRvY3MiLCJmaW5kIiwiZGVwdGgiLCJwYWdpbmF0aW9uIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiQUFJQSxlQUFlQSxRQUNiQyxJQUF1QjtJQUV2QixNQUFNLEVBQ0pDLEdBQUcsRUFDSEMsS0FBSyxFQUFFQyxPQUFPLEVBQUUsRUFDaEJDLElBQUksRUFDTCxHQUFHSjtJQUVKLElBQUksQ0FBQ0ksTUFBTSxPQUFPO0lBRWxCLE1BQU1DLFFBQWU7UUFDbkJDLEtBQUs7WUFDSDtnQkFBRUwsS0FBSztvQkFBRU0sUUFBUU47Z0JBQUk7WUFBRTtZQUN2QjtnQkFBRSxjQUFjO29CQUFFTSxRQUFRSCxLQUFLSSxFQUFFO2dCQUFDO1lBQUU7WUFDcEM7Z0JBQUUsbUJBQW1CO29CQUFFRCxRQUFRSCxLQUFLSyxVQUFVO2dCQUFDO1lBQUU7U0FDbEQ7SUFDSDtJQUVBLE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUcsTUFBTVAsUUFBUVEsSUFBSSxDQUFDO1FBQ2xDRixZQUFZO1FBQ1pHLE9BQU87UUFDUEMsWUFBWTtRQUNaVDtRQUNBQztJQUNGO0lBRUEsSUFBSUssS0FBS0ksTUFBTSxLQUFLLEdBQUcsT0FBTztJQUU5QixPQUFPSixJQUFJLENBQUMsRUFBRTtBQUNoQjtBQUVBLGVBQWVYLFFBQU8ifQ==
|