@nlabs/reaktor 1.6.3 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +74 -201
- package/README.md +48 -16
- package/lib/actions/analytics.d.ts +10 -0
- package/lib/actions/analytics.js +539 -0
- package/lib/actions/apps.js +2 -2
- package/lib/actions/connections.js +1 -1
- package/lib/actions/content.js +2 -2
- package/lib/actions/conversations.js +2 -2
- package/lib/actions/crm.d.ts +11 -1
- package/lib/actions/crm.js +443 -13
- package/lib/actions/crud.js +2 -2
- package/lib/actions/dynamodb.d.ts +1 -1
- package/lib/actions/dynamodb.js +2 -2
- package/lib/actions/email.d.ts +1 -1
- package/lib/actions/email.js +2 -2
- package/lib/actions/files.js +2 -2
- package/lib/actions/flags.d.ts +6 -0
- package/lib/actions/flags.js +147 -0
- package/lib/actions/groups.js +2 -2
- package/lib/actions/images.d.ts +1 -1
- package/lib/actions/images.js +2 -2
- package/lib/actions/index.d.ts +3 -2
- package/lib/actions/index.js +4 -3
- package/lib/actions/ios.js +1 -1
- package/lib/actions/locations.js +2 -2
- package/lib/actions/messages.js +2 -2
- package/lib/actions/notifications.d.ts +1 -1
- package/lib/actions/notifications.js +2 -2
- package/lib/actions/payments.d.ts +3 -3
- package/lib/actions/payments.js +144 -189
- package/lib/actions/personas.js +1 -1
- package/lib/actions/posts.d.ts +0 -4
- package/lib/actions/posts.js +2 -4
- package/lib/actions/query.js +2 -2
- package/lib/actions/reactions.js +2 -2
- package/lib/actions/rum.js +148 -45
- package/lib/actions/s3.d.ts +1 -1
- package/lib/actions/s3.js +2 -2
- package/lib/actions/search.js +2 -2
- package/lib/actions/sms.js +2 -2
- package/lib/actions/statistics.js +2 -2
- package/lib/actions/subscriptions.js +2 -2
- package/lib/actions/tags.js +2 -2
- package/lib/actions/users.d.ts +4 -1
- package/lib/actions/users.js +85 -11
- package/lib/actions/videos.js +2 -2
- package/lib/adapters/arangoAdapter.js +1 -1
- package/lib/adapters/contentAdapter.js +2 -2
- package/lib/adapters/fileAdapter.js +1 -1
- package/lib/adapters/imageAdapter.js +1 -1
- package/lib/adapters/index.js +1 -1
- package/lib/adapters/messageAdapter.js +1 -1
- package/lib/adapters/postAdapter.js +1 -1
- package/lib/adapters/reaktorAdapter.js +1 -1
- package/lib/adapters/tagAdapter.d.ts +0 -1
- package/lib/adapters/tagAdapter.js +1 -2
- package/lib/adapters/userAdapter.d.ts +0 -1
- package/lib/adapters/userAdapter.js +1 -2
- package/lib/config.js +8 -2
- package/lib/constants/collections.d.ts +17 -1
- package/lib/constants/collections.js +18 -2
- package/lib/handlers/graphqlHandler.d.ts +2 -2
- package/lib/handlers/graphqlHandler.js +2 -19
- package/lib/index.d.ts +4 -2
- package/lib/index.js +4 -3
- package/lib/lambdas/actions/websockets.js +2 -2
- package/lib/lambdas/authorizer.js +2 -2
- package/lib/lambdas/connection.js +2 -2
- package/lib/lambdas/utils/message.js +2 -2
- package/lib/lambdas/utils/websocket.d.ts +1 -1
- package/lib/lambdas/utils/websocket.js +2 -2
- package/lib/mocks/conversation.js +1 -1
- package/lib/mocks/file.js +1 -1
- package/lib/mocks/group.js +1 -1
- package/lib/mocks/image.js +1 -1
- package/lib/mocks/post.js +1 -1
- package/lib/mocks/tag.js +1 -1
- package/lib/mocks/user.js +1 -1
- package/lib/mocks/video.js +1 -1
- package/lib/mutations/analytics/analytics.d.ts +1 -0
- package/lib/mutations/analytics/analytics.js +35 -0
- package/lib/mutations/content/content.js +2 -2
- package/lib/mutations/crm/crm.js +57 -11
- package/lib/mutations/events/events.js +2 -2
- package/lib/mutations/flags/flags.d.ts +1 -0
- package/lib/mutations/flags/flags.js +33 -0
- package/lib/mutations/groups/groups.js +2 -2
- package/lib/mutations/images/images.js +2 -2
- package/lib/mutations/index.d.ts +3 -1
- package/lib/mutations/index.js +13 -3
- package/lib/mutations/locations/locations.js +2 -2
- package/lib/mutations/messages/messages.js +2 -2
- package/lib/mutations/personas/personas.js +2 -2
- package/lib/mutations/posts/posts.js +2 -2
- package/lib/mutations/reactions/reactions.js +2 -2
- package/lib/mutations/rum/rum.js +2 -2
- package/lib/mutations/statistics/statistics.js +2 -2
- package/lib/mutations/subscriptions/subscriptions.js +2 -2
- package/lib/mutations/tags/tags.js +2 -2
- package/lib/mutations/users/users.js +30 -17
- package/lib/mutations/videos/videos.js +2 -2
- package/lib/objectTypes/analytics.d.ts +8 -0
- package/lib/objectTypes/analytics.js +147 -0
- package/lib/objectTypes/app.js +2 -2
- package/lib/objectTypes/bankAccount.js +2 -2
- package/lib/objectTypes/connection.js +2 -2
- package/lib/objectTypes/content.js +2 -2
- package/lib/objectTypes/conversation.js +2 -2
- package/lib/objectTypes/creditCard.js +2 -2
- package/lib/objectTypes/crm.d.ts +5 -0
- package/lib/objectTypes/crm.js +68 -2
- package/lib/objectTypes/document.js +1 -1
- package/lib/objectTypes/error.js +2 -2
- package/lib/objectTypes/event.js +2 -2
- package/lib/objectTypes/external.js +2 -2
- package/lib/objectTypes/file.js +2 -2
- package/lib/objectTypes/filter.js +2 -2
- package/lib/objectTypes/flag.d.ts +1 -0
- package/lib/objectTypes/flag.js +35 -0
- package/lib/objectTypes/group.js +2 -2
- package/lib/objectTypes/iapSubscription.js +2 -2
- package/lib/objectTypes/image.d.ts +1 -1
- package/lib/objectTypes/image.js +2 -2
- package/lib/objectTypes/index.d.ts +2 -0
- package/lib/objectTypes/index.js +3 -1
- package/lib/objectTypes/location.js +2 -2
- package/lib/objectTypes/message.js +2 -2
- package/lib/objectTypes/passcode.js +2 -2
- package/lib/objectTypes/persona.js +2 -2
- package/lib/objectTypes/plan.js +2 -2
- package/lib/objectTypes/post.js +2 -2
- package/lib/objectTypes/query.js +2 -2
- package/lib/objectTypes/reaction.js +2 -2
- package/lib/objectTypes/relation.js +2 -2
- package/lib/objectTypes/rum.js +4 -4
- package/lib/objectTypes/search.js +2 -2
- package/lib/objectTypes/statistics.js +2 -2
- package/lib/objectTypes/subscription.js +2 -2
- package/lib/objectTypes/tag.js +2 -2
- package/lib/objectTypes/user.js +10 -2
- package/lib/objectTypes/video.d.ts +1 -1
- package/lib/objectTypes/video.js +2 -2
- package/lib/queries/analytics/analytics.d.ts +1 -0
- package/lib/queries/analytics/analytics.js +41 -0
- package/lib/queries/content/content.js +2 -2
- package/lib/queries/crm/crm.js +52 -13
- package/lib/queries/events/events.js +2 -2
- package/lib/queries/flags/flags.d.ts +1 -0
- package/lib/queries/flags/flags.js +16 -0
- package/lib/queries/groups/groups.js +2 -2
- package/lib/queries/images/images.js +2 -2
- package/lib/queries/index.d.ts +3 -1
- package/lib/queries/index.js +13 -3
- package/lib/queries/locations/locations.js +2 -2
- package/lib/queries/messages/messages.js +1 -1
- package/lib/queries/personas/personas.js +2 -2
- package/lib/queries/posts/posts.js +2 -2
- package/lib/queries/query/query.js +2 -2
- package/lib/queries/reactions/reactions.js +2 -2
- package/lib/queries/statistics/statistics.js +2 -2
- package/lib/queries/subscriptions/subscriptions.js +1 -1
- package/lib/queries/tags/tags.js +2 -2
- package/lib/queries/users/users.js +2 -2
- package/lib/queries/videos/videos.js +2 -2
- package/lib/templates/email/layout.js +1 -1
- package/lib/templates/email/passwordForgot.js +1 -1
- package/lib/templates/email/passwordRecovery.js +1 -1
- package/lib/templates/email/verifyEmail.js +1 -1
- package/lib/templates/email/welcome.js +1 -1
- package/lib/templates/sms/passwordForgot.js +1 -1
- package/lib/templates/sms/passwordRecovery.js +1 -1
- package/lib/templates/sms/verifyEmail.js +1 -1
- package/lib/templates/sms/verifyPhone.js +1 -1
- package/lib/templates/sms/welcome.js +1 -1
- package/lib/types/analytics.types.d.ts +92 -0
- package/lib/types/analytics.types.js +6 -0
- package/lib/types/apps.types.d.ts +1 -1
- package/lib/types/apps.types.js +2 -2
- package/lib/types/arangodb.types.d.ts +2 -2
- package/lib/types/arangodb.types.js +2 -2
- package/lib/types/auth.types.d.ts +4 -1
- package/lib/types/auth.types.js +2 -2
- package/lib/types/connections.types.d.ts +1 -1
- package/lib/types/connections.types.js +2 -2
- package/lib/types/content.types.d.ts +1 -1
- package/lib/types/content.types.js +2 -2
- package/lib/types/conversations.types.d.ts +1 -1
- package/lib/types/conversations.types.js +2 -2
- package/lib/types/crm.types.d.ts +58 -2
- package/lib/types/crm.types.js +2 -2
- package/lib/types/email.types.d.ts +1 -1
- package/lib/types/email.types.js +2 -2
- package/lib/types/error.types.js +1 -1
- package/lib/types/files.types.d.ts +1 -1
- package/lib/types/files.types.js +2 -2
- package/lib/types/flags.types.d.ts +28 -0
- package/lib/types/flags.types.js +3 -0
- package/lib/types/google.types.d.ts +1 -1
- package/lib/types/google.types.js +2 -2
- package/lib/types/groups.types.d.ts +1 -1
- package/lib/types/groups.types.js +2 -2
- package/lib/types/images.types.d.ts +1 -1
- package/lib/types/images.types.js +2 -2
- package/lib/types/index.d.ts +3 -1
- package/lib/types/index.js +4 -2
- package/lib/types/locations.types.d.ts +1 -1
- package/lib/types/locations.types.js +2 -2
- package/lib/types/messages.types.d.ts +1 -1
- package/lib/types/messages.types.js +2 -2
- package/lib/types/notifications.types.d.ts +1 -1
- package/lib/types/notifications.types.js +2 -2
- package/lib/types/payments.types.d.ts +4 -1
- package/lib/types/payments.types.js +2 -2
- package/lib/types/personas.types.js +1 -1
- package/lib/types/posts.types.d.ts +1 -1
- package/lib/types/posts.types.js +2 -2
- package/lib/types/rum.types.d.ts +3 -3
- package/lib/types/rum.types.js +2 -2
- package/lib/types/statistics.types.js +1 -1
- package/lib/types/tags.types.d.ts +1 -1
- package/lib/types/tags.types.js +2 -2
- package/lib/types/users.types.d.ts +2 -1
- package/lib/types/users.types.js +2 -2
- package/lib/types/videos.types.d.ts +1 -1
- package/lib/types/videos.types.js +2 -2
- package/lib/types/websockets.types.d.ts +1 -1
- package/lib/types/websockets.types.js +2 -2
- package/lib/upload.js +4 -9
- package/lib/utils/adapterUtils.d.ts +1 -1
- package/lib/utils/adapterUtils.js +2 -2
- package/lib/utils/analyticsUtils.d.ts +1 -1
- package/lib/utils/analyticsUtils.js +2 -2
- package/lib/utils/appContext.d.ts +2 -0
- package/lib/utils/appContext.js +10 -0
- package/lib/utils/aqlHelpers.d.ts +1 -1
- package/lib/utils/aqlHelpers.js +2 -2
- package/lib/utils/arangodbUtils.d.ts +9 -1
- package/lib/utils/arangodbUtils.js +10 -2
- package/lib/utils/authUtils.js +2 -2
- package/lib/utils/awsUtils.js +2 -2
- package/lib/utils/collectionRegistry.d.ts +1 -1
- package/lib/utils/collectionRegistry.js +17 -2
- package/lib/utils/contextUtils.d.ts +2 -2
- package/lib/utils/contextUtils.js +2 -2
- package/lib/utils/dbI18n.example.d.ts +1 -1
- package/lib/utils/dbI18n.example.js +2 -2
- package/lib/utils/dbI18n.js +2 -2
- package/lib/utils/googleTranslate.d.ts +1 -1
- package/lib/utils/googleTranslate.js +2 -2
- package/lib/utils/graphqlUtils.d.ts +2 -0
- package/lib/utils/graphqlUtils.js +1 -1
- package/lib/utils/imageUtils.js +1 -1
- package/lib/utils/index.d.ts +1 -1
- package/lib/utils/index.js +2 -2
- package/lib/utils/languageDetection.js +1 -1
- package/lib/utils/localeUtils.d.ts +1 -1
- package/lib/utils/localeUtils.example.d.ts +1 -1
- package/lib/utils/localeUtils.example.js +2 -2
- package/lib/utils/localeUtils.js +2 -2
- package/lib/utils/middlewareUtils.js +1 -1
- package/lib/utils/queryBuilder.d.ts +1 -1
- package/lib/utils/queryBuilder.js +2 -2
- package/lib/utils/schemaUtils.js +1 -1
- package/lib/utils/sessionUtils.d.ts +4 -0
- package/lib/utils/sessionUtils.js +2 -2
- package/lib/utils/stripeUtils.d.ts +1 -1
- package/lib/utils/stripeUtils.js +2 -2
- package/lib/utils/templateUtils.js +1 -1
- package/lib/utils/testUtils.js +2 -2
- package/lib/utils/translationQueue.d.ts +1 -1
- package/lib/utils/translationQueue.example.d.ts +1 -1
- package/lib/utils/translationQueue.example.js +2 -2
- package/lib/utils/translationQueue.js +2 -2
- package/lib/videoProcessing.js +1 -1
- package/package.json +49 -86
- package/lib/actions/websockets.d.ts +0 -20
- package/lib/actions/websockets.js +0 -164
- package/lib/mocks/nlabs.png +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/ export { };
|
|
5
5
|
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy90eXBlcy93ZWJzb2NrZXRzLnR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQgdHlwZSB7RG9jdW1lbnRUeXBlfSBmcm9tICcuL2FyYW5nb2RiLnR5cGVzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBXZWJzb2NrZXRDb25uZWN0aW9uIHtcbiAgX2tleTogc3RyaW5nO1xuICBjbGllbnRJZD86IHN0cmluZztcbiAgY29ubmVjdGlvbklkPzogc3RyaW5nO1xuICBtb2RpZmllZD86IG51bWJlcjtcbiAgcGVyc29uYUlkPzogc3RyaW5nO1xuICBzb2NrZXRJZDogc3RyaW5nO1xuICB1c2VySWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXZWJzb2NrZXRNZXNzYWdlVHlwZSBleHRlbmRzIERvY3VtZW50VHlwZSB7XG4gIHJlYWRvbmx5IGFkZGVkPzogbnVtYmVyO1xuICByZWFkb25seSBjb250ZW50Pzogc3RyaW5nO1xuICByZWFkb25seSBjb252ZXJzYXRpb25JZD86IHN0cmluZztcbiAgcmVhZG9ubHkgZmlsZXM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgaW1hZ2VzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IG1lc3NhZ2VJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgbW9kaWZpZWQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHJlYWQ/OiBib29sZWFuO1xuICByZWFkb25seSBzYXZlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHVzZXJJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXZWJzb2NrZXRUeXBpbmdUeXBlIHtcbiAgcmVhZG9ubHkgY29udmVyc2F0aW9uSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGlzVHlwaW5nPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgcGVyc29uYUlkPzogc3RyaW5nO1xuICByZWFkb25seSB1cGRhdGVkQXQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHVzZXJJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlcnM/OiBBcnJheTx7XG4gICAgcmVhZG9ubHkgaW1hZ2VVcmw/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgICByZWFkb25seSBwZXJzb25hSWQ/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgdGh1bWJVcmw/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgdXNlcklkPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHVzZXJuYW1lPzogc3RyaW5nO1xuICB9PjtcbiAgcmVhZG9ubHkgdXNlcm5hbWU/OiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBMEJELFdBZ0JDIn0=
|
package/lib/upload.js
CHANGED
|
@@ -36,14 +36,9 @@ const parseMultipartUpload = (event)=>new Promise((resolve, reject)=>{
|
|
|
36
36
|
busboy.on('field', (fieldName, value)=>{
|
|
37
37
|
fields[fieldName] = value;
|
|
38
38
|
});
|
|
39
|
-
busboy.on('file', (_fieldName, file, info
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
contentTypeFromFile = mimeType || '';
|
|
43
|
-
} else {
|
|
44
|
-
filename = info?.filename || '';
|
|
45
|
-
contentTypeFromFile = info?.mimeType || '';
|
|
46
|
-
}
|
|
39
|
+
busboy.on('file', (_fieldName, file, info)=>{
|
|
40
|
+
filename = info?.filename || '';
|
|
41
|
+
contentTypeFromFile = info?.mimeType || '';
|
|
47
42
|
file.on('data', (chunk)=>fileChunks.push(chunk));
|
|
48
43
|
file.on('error', reject);
|
|
49
44
|
});
|
|
@@ -174,4 +169,4 @@ export const createUploadHandler = ({ allowedCorsOrigins = [], configureReaktor,
|
|
|
174
169
|
}
|
|
175
170
|
};
|
|
176
171
|
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3VwbG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUhhc2gsIHBhcnNlU3RyaW5nfSBmcm9tICdAbmxhYnMvdXRpbHMnO1xuaW1wb3J0IEJ1c2JveSBmcm9tICdidXNib3knO1xuaW1wb3J0IHtmaWxlVHlwZUZyb21CdWZmZXJ9IGZyb20gJ2ZpbGUtdHlwZSc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuL2NvbmZpZy5qcyc7XG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB7Z2V0TGFtYmRhRGF0YX0gZnJvbSAnLi91dGlscy9hdXRoVXRpbHMuanMnO1xuaW1wb3J0IHthZGRJbWFnZX0gZnJvbSAnLi9hY3Rpb25zL2ltYWdlcy5qcyc7XG5cbmltcG9ydCB0eXBlIHtBUElHYXRld2F5UHJveHlFdmVudCwgQVBJR2F0ZXdheVByb3h5UmVzdWx0LCBDb250ZXh0fSBmcm9tICdhd3MtbGFtYmRhJztcblxudHlwZSBNdWx0aXBhcnRVcGxvYWQgPSB7XG4gIHJlYWRvbmx5IGJ1ZmZlcjogQnVmZmVyO1xuICByZWFkb25seSBjb250ZW50VHlwZT86IHN0cmluZztcbiAgcmVhZG9ubHkgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICByZWFkb25seSBmaWxlbmFtZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIFVwbG9hZENvbnRleHRQYXJzZXIgPSAoXG4gIGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudCxcbiAgcmVxdWlyZUF1dGg6IGJvb2xlYW5cbikgPT4gUHJvbWlzZTxBcGlDb250ZXh0PjtcblxuZXhwb3J0IHR5cGUgUmVha3RvclVwbG9hZENvbmZpZ3VyZUhhbmRsZXIgPSAoKSA9PiB2b2lkO1xuXG5leHBvcnQgdHlwZSBVcGxvYWRIYW5kbGVyT3B0aW9ucyA9IHtcbiAgcmVhZG9ubHkgYWxsb3dlZENvcnNPcmlnaW5zPzogcmVhZG9ubHkgc3RyaW5nW107XG4gIHJlYWRvbmx5IGNvbmZpZ3VyZVJlYWt0b3I6IFJlYWt0b3JVcGxvYWRDb25maWd1cmVIYW5kbGVyO1xuICByZWFkb25seSBkZWZhdWx0Q29yc09yaWdpbj86IHN0cmluZztcbiAgcmVhZG9ubHkgcGFyc2VDb250ZXh0OiBVcGxvYWRDb250ZXh0UGFyc2VyO1xufTtcblxuY29uc3QgZ2V0SGVhZGVyVmFsdWUgPSAoaGVhZGVyczogQVBJR2F0ZXdheVByb3h5RXZlbnRbJ2hlYWRlcnMnXSwgbmFtZTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbG93ZXJOYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuICBjb25zdCBoZWFkZXJLZXkgPSBPYmplY3Qua2V5cyhoZWFkZXJzIHx8IHt9KS5maW5kKChrZXkpID0+IGtleS50b0xvd2VyQ2FzZSgpID09PSBsb3dlck5hbWUpO1xuICByZXR1cm4gU3RyaW5nKGhlYWRlcktleSA/IGhlYWRlcnM/LltoZWFkZXJLZXldIHx8ICcnIDogJycpO1xufTtcblxuY29uc3QgZ2V0UmVzcG9uc2VIZWFkZXJzID0gKFxuICBldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQsXG4gIGFsbG93ZWRDb3JzT3JpZ2luczogcmVhZG9ubHkgc3RyaW5nW10gPSBbXSxcbiAgZGVmYXVsdENvcnNPcmlnaW4gPSAnJ1xuKSA9PiB7XG4gIGNvbnN0IG9yaWdpbiA9IGdldEhlYWRlclZhbHVlKGV2ZW50LmhlYWRlcnMsICdvcmlnaW4nKTtcbiAgY29uc3Qgb3JpZ2luU2V0ID0gbmV3IFNldChhbGxvd2VkQ29yc09yaWdpbnMpO1xuICBjb25zdCBhbGxvd2VkT3JpZ2luID0gb3JpZ2luU2V0LmhhcyhvcmlnaW4pXG4gICAgPyBvcmlnaW5cbiAgICA6IChkZWZhdWx0Q29yc09yaWdpbiB8fCBhbGxvd2VkQ29yc09yaWdpbnNbMF0gfHwgb3JpZ2luIHx8ICcqJyk7XG5cbiAgcmV0dXJuIHtcbiAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMnOiAndHJ1ZScsXG4gICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnOiAnQXV0aG9yaXphdGlvbixDb250ZW50LVR5cGUsWC1BbXotRGF0ZSxYLUFtei1TZWN1cml0eS1Ub2tlbixYLUFwaS1LZXknLFxuICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzJzogJ09QVElPTlMsUE9TVCcsXG4gICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbic6IGFsbG93ZWRPcmlnaW4sXG4gICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICB9O1xufTtcblxuY29uc3QgaXNNdWx0aXBhcnRVcGxvYWQgPSAoZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50KTogYm9vbGVhbiA9PiAoXG4gIGdldEhlYWRlclZhbHVlKGV2ZW50LmhlYWRlcnMsICdjb250ZW50LXR5cGUnKS5pbmNsdWRlcygnbXVsdGlwYXJ0L2Zvcm0tZGF0YScpXG4pO1xuXG5jb25zdCBwYXJzZU11bHRpcGFydFVwbG9hZCA9IChldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQpOiBQcm9taXNlPE11bHRpcGFydFVwbG9hZD4gPT4gKFxuICBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgY29udGVudFR5cGUgPSBnZXRIZWFkZXJWYWx1ZShldmVudC5oZWFkZXJzLCAnY29udGVudC10eXBlJyk7XG4gICAgY29uc3QgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgY29uc3QgZmlsZUNodW5rczogQnVmZmVyW10gPSBbXTtcbiAgICBsZXQgY29udGVudFR5cGVGcm9tRmlsZSA9ICcnO1xuICAgIGxldCBmaWxlbmFtZSA9ICcnO1xuXG4gICAgY29uc3QgYnVzYm95ID0gQnVzYm95KHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ2NvbnRlbnQtdHlwZSc6IGNvbnRlbnRUeXBlXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBidXNib3kub24oJ2ZpZWxkJywgKGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICBmaWVsZHNbZmllbGROYW1lXSA9IHZhbHVlO1xuICAgIH0pO1xuXG4gICAgYnVzYm95Lm9uKCdmaWxlJywgKFxuICAgICAgX2ZpZWxkTmFtZTogc3RyaW5nLFxuICAgICAgZmlsZSxcbiAgICAgIGluZm86IHtmaWxlbmFtZT86IHN0cmluZzsgbWltZVR5cGU/OiBzdHJpbmd9IHwgc3RyaW5nLFxuICAgICAgX2VuY29kaW5nPzogc3RyaW5nLFxuICAgICAgbWltZVR5cGU/OiBzdHJpbmdcbiAgICApID0+IHtcbiAgICAgIGlmKHR5cGVvZiBpbmZvID09PSAnc3RyaW5nJykge1xuICAgICAgICBmaWxlbmFtZSA9IGluZm87XG4gICAgICAgIGNvbnRlbnRUeXBlRnJvbUZpbGUgPSBtaW1lVHlwZSB8fCAnJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZpbGVuYW1lID0gaW5mbz8uZmlsZW5hbWUgfHwgJyc7XG4gICAgICAgIGNvbnRlbnRUeXBlRnJvbUZpbGUgPSBpbmZvPy5taW1lVHlwZSB8fCAnJztcbiAgICAgIH1cblxuICAgICAgZmlsZS5vbignZGF0YScsIChjaHVuazogQnVmZmVyKSA9PiBmaWxlQ2h1bmtzLnB1c2goY2h1bmspKTtcbiAgICAgIGZpbGUub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICB9KTtcblxuICAgIGJ1c2JveS5vbignZXJyb3InLCByZWplY3QpO1xuICAgIGJ1c2JveS5vbignZmluaXNoJywgKCkgPT4ge1xuICAgICAgcmVzb2x2ZSh7XG4gICAgICAgIGJ1ZmZlcjogQnVmZmVyLmNvbmNhdChmaWxlQ2h1bmtzKSxcbiAgICAgICAgY29udGVudFR5cGU6IGNvbnRlbnRUeXBlRnJvbUZpbGUsXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgZmlsZW5hbWVcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZXZlbnRCb2R5ID0gZXZlbnQuYm9keSB8fCAnJztcbiAgICBjb25zdCBib2R5QnVmZmVyID0gZXZlbnQuaXNCYXNlNjRFbmNvZGVkXG4gICAgICA/IEJ1ZmZlci5mcm9tKGV2ZW50Qm9keSwgJ2Jhc2U2NCcpXG4gICAgICA6IEJ1ZmZlci5mcm9tKGV2ZW50Qm9keSwgJ2JpbmFyeScpO1xuXG4gICAgYnVzYm95LmVuZChib2R5QnVmZmVyKTtcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVVcGxvYWRIYW5kbGVyID0gKHtcbiAgYWxsb3dlZENvcnNPcmlnaW5zID0gW10sXG4gIGNvbmZpZ3VyZVJlYWt0b3IsXG4gIGRlZmF1bHRDb3JzT3JpZ2luID0gJycsXG4gIHBhcnNlQ29udGV4dFxufTogVXBsb2FkSGFuZGxlck9wdGlvbnMpID0+IGFzeW5jIChcbiAgZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50LFxuICBfbGFtYmRhQ29udGV4dDogQ29udGV4dFxuKTogUHJvbWlzZTxBUElHYXRld2F5UHJveHlSZXN1bHQ+ID0+IHtcbiAgY29uZmlndXJlUmVha3RvcigpO1xuICBjb25zdCByZXNwb25zZUhlYWRlcnMgPSBnZXRSZXNwb25zZUhlYWRlcnMoZXZlbnQsIGFsbG93ZWRDb3JzT3JpZ2lucywgZGVmYXVsdENvcnNPcmlnaW4pO1xuXG4gIGlmKGV2ZW50Lmh0dHBNZXRob2QgPT09ICdPUFRJT05TJykge1xuICAgIHJldHVybiB7XG4gICAgICBib2R5OiAnJyxcbiAgICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICAgIHN0YXR1c0NvZGU6IDIwNFxuICAgIH07XG4gIH1cblxuICBjb25zdCB1cGRhdGVkQ29udGV4dDogQXBpQ29udGV4dCA9IGF3YWl0IHBhcnNlQ29udGV4dChldmVudCwgdHJ1ZSk7XG4gIGNvbnN0IHVzZXJJZCA9IHVwZGF0ZWRDb250ZXh0LnNlc3Npb24/LnVzZXJJZDtcblxuICBpZighdXNlcklkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtlcnJvcjogJ1VuYXV0aG9yaXplZC4nfSksXG4gICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgICBzdGF0dXNDb2RlOiA0MDFcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgaXNNdWx0aXBhcnQgPSBpc011bHRpcGFydFVwbG9hZChldmVudCk7XG4gIGxldCBib2R5OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGxldCBidWZmZXI6IEJ1ZmZlcjtcbiAgbGV0IHVwbG9hZGVkQ29udGVudFR5cGUgPSAnJztcblxuICBpZihpc011bHRpcGFydCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtdWx0aXBhcnRVcGxvYWQgPSBhd2FpdCBwYXJzZU11bHRpcGFydFVwbG9hZChldmVudCk7XG4gICAgICBib2R5ID0ge1xuICAgICAgICAuLi5tdWx0aXBhcnRVcGxvYWQuZmllbGRzLFxuICAgICAgICBmaWxlTmFtZTogbXVsdGlwYXJ0VXBsb2FkLmZpbGVuYW1lXG4gICAgICB9O1xuICAgICAgYnVmZmVyID0gbXVsdGlwYXJ0VXBsb2FkLmJ1ZmZlcjtcbiAgICAgIHVwbG9hZGVkQ29udGVudFR5cGUgPSBtdWx0aXBhcnRVcGxvYWQuY29udGVudFR5cGUgfHwgJyc7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0ludmFsaWQgbXVsdGlwYXJ0IGltYWdlIHBheWxvYWQuJztcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtlcnJvcjogbWVzc2FnZX0pLFxuICAgICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgICAgIHN0YXR1c0NvZGU6IDQwMFxuICAgICAgfTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcGFyc2VEYXRhID0gZ2V0TGFtYmRhRGF0YSh7XG4gICAgICBib2R5OiBldmVudC5ib2R5IHx8IHVuZGVmaW5lZCxcbiAgICAgIHJlcXVlc3RDb250ZXh0OiBldmVudC5yZXF1ZXN0Q29udGV4dFxuICAgIH0pO1xuICAgIGJvZHkgPSBwYXJzZURhdGEuYm9keSB8fCB7fTtcbiAgICBjb25zdCB7YmFzZTY0fSA9IGJvZHk7XG5cbiAgICBpZih0eXBlb2YgYmFzZTY0ICE9PSAnc3RyaW5nJyB8fCAhYmFzZTY0LmluY2x1ZGVzKCcsJykpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtlcnJvcjogJ0ludmFsaWQgaW1hZ2UgcGF5bG9hZC4nfSksXG4gICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICAgICAgc3RhdHVzQ29kZTogNDAwXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdEJhc2U2NDogc3RyaW5nID0gYmFzZTY0LnN1YnN0cmluZyhiYXNlNjQuaW5kZXhPZignLCcpICsgMSk7XG4gICAgYnVmZmVyID0gQnVmZmVyLmZyb20oZm9ybWF0QmFzZTY0LCAnYmFzZTY0Jyk7XG4gIH1cblxuICBjb25zdCBmaWxlTWltZSA9IGF3YWl0IGZpbGVUeXBlRnJvbUJ1ZmZlcihidWZmZXIpO1xuXG4gIGlmKCFidWZmZXIubGVuZ3RoIHx8ICghZmlsZU1pbWUgJiYgIXVwbG9hZGVkQ29udGVudFR5cGUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtlcnJvcjogJ1RoZSBzdHJpbmcgc3VwcGxpZWQgaXMgbm90IGEgZmlsZSB0eXBlJ30pLFxuICAgICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgc3RhdHVzQ29kZTogNDAwXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IG1pbWUgPSBmaWxlTWltZT8ubWltZSB8fCB1cGxvYWRlZENvbnRlbnRUeXBlO1xuICBjb25zdCB7XG4gICAgZGVzY3JpcHRpb24sXG4gICAgaXRlbUlkID0gdXNlcklkLFxuICAgIGl0ZW1UeXBlID0gJ3VzZXJzJyxcbiAgICBwcml2YWN5ID0gJ3ByaXZhdGUnXG4gIH0gPSBib2R5IHx8IHt9O1xuXG4gIGNvbnN0IGZvcm1hdE5hbWU6IHN0cmluZyA9IHBhcnNlU3RyaW5nKFxuICAgIChib2R5Py5maWxlTmFtZSB8fCBib2R5Py5maWxlbmFtZSB8fCBib2R5Py5uYW1lIHx8ICcnKS5zcGxpdCgnLicpLnNsaWNlKDAsIC0xKS5qb2luKCcuJykgfHxcbiAgICAoYm9keT8uZmlsZU5hbWUgfHwgYm9keT8uZmlsZW5hbWUgfHwgYm9keT8ubmFtZSB8fCAnJyksXG4gICAgMzJcbiAgKVxuICAgIC50cmltKClcbiAgICAucmVwbGFjZSgvXFxzKy9nLCAnLScpXG4gICAgLnRvTG93ZXJDYXNlKCk7XG5cbiAgY29uc3QgaW1hZ2UgPSB7XG4gICAgYnVmZmVyLFxuICAgIGRlc2NyaXB0aW9uOiBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbiwgNTAwKSxcbiAgICBmaWxlVHlwZTogbWltZSBhcyBzdHJpbmcsXG4gICAgaW1hZ2VJZDogZm9ybWF0TmFtZSB8fCBjcmVhdGVIYXNoKGBpbWFnZS0ke3VzZXJJZH0tJHtEYXRlLm5vdygpfWApLFxuICAgIGl0ZW1JZCxcbiAgICBpdGVtVHlwZSxcbiAgICBwcml2YWN5XG4gIH07XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgYWRkSW1hZ2UodXBkYXRlZENvbnRleHQsIGltYWdlKTtcbiAgICByZXR1cm4ge1xuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe2ltYWdlOiByZXN1bHRzIHx8IHt9fSksXG4gICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgICBzdGF0dXNDb2RlOiAyMDBcbiAgICB9O1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcigndXBsb2FkOjphZGRJbWFnZTo6ZXJyb3InLCB7XG4gICAgICBidWNrZXQ6IENvbmZpZy5nZXQoJ2F3cy5zMy5CdWNrZXQnKSxcbiAgICAgIGZpbGVUeXBlOiBtaW1lLFxuICAgICAgaW1hZ2VJZDogaW1hZ2UuaW1hZ2VJZCxcbiAgICAgIGl0ZW1JZCxcbiAgICAgIGl0ZW1UeXBlLFxuICAgICAgdXNlcklkXG4gICAgfSwgZXJyb3IpO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmFibGUgdG8gdXBsb2FkIGltYWdlLic7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtlcnJvcjogbWVzc2FnZX0pLFxuICAgICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgc3RhdHVzQ29kZTogNTAwXG4gICAgfTtcbiAgfVxufTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVIYXNoIiwicGFyc2VTdHJpbmciLCJCdXNib3kiLCJmaWxlVHlwZUZyb21CdWZmZXIiLCJDb25maWciLCJnZXRMYW1iZGFEYXRhIiwiYWRkSW1hZ2UiLCJnZXRIZWFkZXJWYWx1ZSIsImhlYWRlcnMiLCJuYW1lIiwibG93ZXJOYW1lIiwidG9Mb3dlckNhc2UiLCJoZWFkZXJLZXkiLCJPYmplY3QiLCJrZXlzIiwiZmluZCIsImtleSIsIlN0cmluZyIsImdldFJlc3BvbnNlSGVhZGVycyIsImV2ZW50IiwiYWxsb3dlZENvcnNPcmlnaW5zIiwiZGVmYXVsdENvcnNPcmlnaW4iLCJvcmlnaW4iLCJvcmlnaW5TZXQiLCJTZXQiLCJhbGxvd2VkT3JpZ2luIiwiaGFzIiwiaXNNdWx0aXBhcnRVcGxvYWQiLCJpbmNsdWRlcyIsInBhcnNlTXVsdGlwYXJ0VXBsb2FkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb250ZW50VHlwZSIsImZpZWxkcyIsImZpbGVDaHVua3MiLCJjb250ZW50VHlwZUZyb21GaWxlIiwiZmlsZW5hbWUiLCJidXNib3kiLCJvbiIsImZpZWxkTmFtZSIsInZhbHVlIiwiX2ZpZWxkTmFtZSIsImZpbGUiLCJpbmZvIiwiX2VuY29kaW5nIiwibWltZVR5cGUiLCJjaHVuayIsInB1c2giLCJidWZmZXIiLCJCdWZmZXIiLCJjb25jYXQiLCJldmVudEJvZHkiLCJib2R5IiwiYm9keUJ1ZmZlciIsImlzQmFzZTY0RW5jb2RlZCIsImZyb20iLCJlbmQiLCJjcmVhdGVVcGxvYWRIYW5kbGVyIiwiY29uZmlndXJlUmVha3RvciIsInBhcnNlQ29udGV4dCIsIl9sYW1iZGFDb250ZXh0IiwicmVzcG9uc2VIZWFkZXJzIiwiaHR0cE1ldGhvZCIsInN0YXR1c0NvZGUiLCJ1cGRhdGVkQ29udGV4dCIsInVzZXJJZCIsInNlc3Npb24iLCJKU09OIiwic3RyaW5naWZ5IiwiZXJyb3IiLCJpc011bHRpcGFydCIsInVwbG9hZGVkQ29udGVudFR5cGUiLCJtdWx0aXBhcnRVcGxvYWQiLCJmaWxlTmFtZSIsIm1lc3NhZ2UiLCJFcnJvciIsInBhcnNlRGF0YSIsInVuZGVmaW5lZCIsInJlcXVlc3RDb250ZXh0IiwiYmFzZTY0IiwiZm9ybWF0QmFzZTY0Iiwic3Vic3RyaW5nIiwiaW5kZXhPZiIsImZpbGVNaW1lIiwibGVuZ3RoIiwibWltZSIsImRlc2NyaXB0aW9uIiwiaXRlbUlkIiwiaXRlbVR5cGUiLCJwcml2YWN5IiwiZm9ybWF0TmFtZSIsInNwbGl0Iiwic2xpY2UiLCJqb2luIiwidHJpbSIsInJlcGxhY2UiLCJpbWFnZSIsImZpbGVUeXBlIiwiaW1hZ2VJZCIsIkRhdGUiLCJub3ciLCJyZXN1bHRzIiwiY29uc29sZSIsImJ1Y2tldCIsImdldCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsVUFBVSxFQUFFQyxXQUFXLFFBQU8sZUFBZTtBQUNyRCxPQUFPQyxZQUFZLFNBQVM7QUFDNUIsU0FBUUMsa0JBQWtCLFFBQU8sWUFBWTtBQUU3QyxTQUFRQyxNQUFNLFFBQU8sY0FBYztBQUVuQyxTQUFRQyxhQUFhLFFBQU8sdUJBQXVCO0FBQ25ELFNBQVFDLFFBQVEsUUFBTyxzQkFBc0I7QUF5QjdDLE1BQU1DLGlCQUFpQixDQUFDQyxTQUEwQ0M7SUFDaEUsTUFBTUMsWUFBWUQsS0FBS0UsV0FB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
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy91cGxvYWQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtjcmVhdGVIYXNoLCBwYXJzZVN0cmluZ30gZnJvbSAnQG5sYWJzL3V0aWxzJztcbmltcG9ydCBCdXNib3kgZnJvbSAnYnVzYm95JztcbmltcG9ydCB7ZmlsZVR5cGVGcm9tQnVmZmVyfSBmcm9tICdmaWxlLXR5cGUnO1xuXG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi9jb25maWcuanMnO1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQge2dldExhbWJkYURhdGF9IGZyb20gJy4vdXRpbHMvYXV0aFV0aWxzLmpzJztcbmltcG9ydCB7YWRkSW1hZ2V9IGZyb20gJy4vYWN0aW9ucy9pbWFnZXMuanMnO1xuXG5pbXBvcnQgdHlwZSB7QVBJR2F0ZXdheVByb3h5RXZlbnQsIEFQSUdhdGV3YXlQcm94eVJlc3VsdCwgQ29udGV4dH0gZnJvbSAnYXdzLWxhbWJkYSc7XG5cbnR5cGUgTXVsdGlwYXJ0VXBsb2FkID0ge1xuICByZWFkb25seSBidWZmZXI6IEJ1ZmZlcjtcbiAgcmVhZG9ubHkgY29udGVudFR5cGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGZpZWxkczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgcmVhZG9ubHkgZmlsZW5hbWU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBVcGxvYWRDb250ZXh0UGFyc2VyID0gKFxuICBldmVudDogQVBJR2F0ZXdheVByb3h5RXZlbnQsXG4gIHJlcXVpcmVBdXRoOiBib29sZWFuXG4pID0+IFByb21pc2U8QXBpQ29udGV4dD47XG5cbmV4cG9ydCB0eXBlIFJlYWt0b3JVcGxvYWRDb25maWd1cmVIYW5kbGVyID0gKCkgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgVXBsb2FkSGFuZGxlck9wdGlvbnMgPSB7XG4gIHJlYWRvbmx5IGFsbG93ZWRDb3JzT3JpZ2lucz86IHJlYWRvbmx5IHN0cmluZ1tdO1xuICByZWFkb25seSBjb25maWd1cmVSZWFrdG9yOiBSZWFrdG9yVXBsb2FkQ29uZmlndXJlSGFuZGxlcjtcbiAgcmVhZG9ubHkgZGVmYXVsdENvcnNPcmlnaW4/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhcnNlQ29udGV4dDogVXBsb2FkQ29udGV4dFBhcnNlcjtcbn07XG5cbmNvbnN0IGdldEhlYWRlclZhbHVlID0gKGhlYWRlcnM6IEFQSUdhdGV3YXlQcm94eUV2ZW50WydoZWFkZXJzJ10sIG5hbWU6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGxvd2VyTmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbiAgY29uc3QgaGVhZGVyS2V5ID0gT2JqZWN0LmtleXMoaGVhZGVycyB8fCB7fSkuZmluZCgoa2V5KSA9PiBrZXkudG9Mb3dlckNhc2UoKSA9PT0gbG93ZXJOYW1lKTtcbiAgcmV0dXJuIFN0cmluZyhoZWFkZXJLZXkgPyBoZWFkZXJzPy5baGVhZGVyS2V5XSB8fCAnJyA6ICcnKTtcbn07XG5cbmNvbnN0IGdldFJlc3BvbnNlSGVhZGVycyA9IChcbiAgZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50LFxuICBhbGxvd2VkQ29yc09yaWdpbnM6IHJlYWRvbmx5IHN0cmluZ1tdID0gW10sXG4gIGRlZmF1bHRDb3JzT3JpZ2luID0gJydcbikgPT4ge1xuICBjb25zdCBvcmlnaW4gPSBnZXRIZWFkZXJWYWx1ZShldmVudC5oZWFkZXJzLCAnb3JpZ2luJyk7XG4gIGNvbnN0IG9yaWdpblNldCA9IG5ldyBTZXQoYWxsb3dlZENvcnNPcmlnaW5zKTtcbiAgY29uc3QgYWxsb3dlZE9yaWdpbiA9IG9yaWdpblNldC5oYXMob3JpZ2luKVxuICAgID8gb3JpZ2luXG4gICAgOiAoZGVmYXVsdENvcnNPcmlnaW4gfHwgYWxsb3dlZENvcnNPcmlnaW5zWzBdIHx8IG9yaWdpbiB8fCAnKicpO1xuXG4gIHJldHVybiB7XG4gICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRlbnRpYWxzJzogJ3RydWUnLFxuICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJzogJ0F1dGhvcml6YXRpb24sQ29udGVudC1UeXBlLFgtQW16LURhdGUsWC1BbXotU2VjdXJpdHktVG9rZW4sWC1BcGktS2V5JyxcbiAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcyc6ICdPUFRJT05TLFBPU1QnLFxuICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nOiBhbGxvd2VkT3JpZ2luLFxuICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgfTtcbn07XG5cbmNvbnN0IGlzTXVsdGlwYXJ0VXBsb2FkID0gKGV2ZW50OiBBUElHYXRld2F5UHJveHlFdmVudCk6IGJvb2xlYW4gPT4gKFxuICBnZXRIZWFkZXJWYWx1ZShldmVudC5oZWFkZXJzLCAnY29udGVudC10eXBlJykuaW5jbHVkZXMoJ211bHRpcGFydC9mb3JtLWRhdGEnKVxuKTtcblxuY29uc3QgcGFyc2VNdWx0aXBhcnRVcGxvYWQgPSAoZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50KTogUHJvbWlzZTxNdWx0aXBhcnRVcGxvYWQ+ID0+IChcbiAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gZ2V0SGVhZGVyVmFsdWUoZXZlbnQuaGVhZGVycywgJ2NvbnRlbnQtdHlwZScpO1xuICAgIGNvbnN0IGZpZWxkczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGNvbnN0IGZpbGVDaHVua3M6IEJ1ZmZlcltdID0gW107XG4gICAgbGV0IGNvbnRlbnRUeXBlRnJvbUZpbGUgPSAnJztcbiAgICBsZXQgZmlsZW5hbWUgPSAnJztcblxuICAgIGNvbnN0IGJ1c2JveSA9IEJ1c2JveSh7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgICdjb250ZW50LXR5cGUnOiBjb250ZW50VHlwZVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgYnVzYm95Lm9uKCdmaWVsZCcsIChmaWVsZE5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgZmllbGRzW2ZpZWxkTmFtZV0gPSB2YWx1ZTtcbiAgICB9KTtcblxuICAgIGJ1c2JveS5vbignZmlsZScsIChcbiAgICAgIF9maWVsZE5hbWU6IHN0cmluZyxcbiAgICAgIGZpbGUsXG4gICAgICBpbmZvOiB7ZmlsZW5hbWU/OiBzdHJpbmc7IG1pbWVUeXBlPzogc3RyaW5nfVxuICAgICkgPT4ge1xuICAgICAgZmlsZW5hbWUgPSBpbmZvPy5maWxlbmFtZSB8fCAnJztcbiAgICAgIGNvbnRlbnRUeXBlRnJvbUZpbGUgPSBpbmZvPy5taW1lVHlwZSB8fCAnJztcblxuICAgICAgZmlsZS5vbignZGF0YScsIChjaHVuazogQnVmZmVyKSA9PiBmaWxlQ2h1bmtzLnB1c2goY2h1bmspKTtcbiAgICAgIGZpbGUub24oJ2Vycm9yJywgcmVqZWN0KTtcbiAgICB9KTtcblxuICAgIGJ1c2JveS5vbignZXJyb3InLCByZWplY3QpO1xuICAgIGJ1c2JveS5vbignZmluaXNoJywgKCkgPT4ge1xuICAgICAgcmVzb2x2ZSh7XG4gICAgICAgIGJ1ZmZlcjogQnVmZmVyLmNvbmNhdChmaWxlQ2h1bmtzKSxcbiAgICAgICAgY29udGVudFR5cGU6IGNvbnRlbnRUeXBlRnJvbUZpbGUsXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgZmlsZW5hbWVcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgZXZlbnRCb2R5ID0gZXZlbnQuYm9keSB8fCAnJztcbiAgICBjb25zdCBib2R5QnVmZmVyID0gZXZlbnQuaXNCYXNlNjRFbmNvZGVkXG4gICAgICA/IEJ1ZmZlci5mcm9tKGV2ZW50Qm9keSwgJ2Jhc2U2NCcpXG4gICAgICA6IEJ1ZmZlci5mcm9tKGV2ZW50Qm9keSwgJ2JpbmFyeScpO1xuXG4gICAgYnVzYm95LmVuZChib2R5QnVmZmVyKTtcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVVcGxvYWRIYW5kbGVyID0gKHtcbiAgYWxsb3dlZENvcnNPcmlnaW5zID0gW10sXG4gIGNvbmZpZ3VyZVJlYWt0b3IsXG4gIGRlZmF1bHRDb3JzT3JpZ2luID0gJycsXG4gIHBhcnNlQ29udGV4dFxufTogVXBsb2FkSGFuZGxlck9wdGlvbnMpID0+IGFzeW5jIChcbiAgZXZlbnQ6IEFQSUdhdGV3YXlQcm94eUV2ZW50LFxuICBfbGFtYmRhQ29udGV4dDogQ29udGV4dFxuKTogUHJvbWlzZTxBUElHYXRld2F5UHJveHlSZXN1bHQ+ID0+IHtcbiAgY29uZmlndXJlUmVha3RvcigpO1xuICBjb25zdCByZXNwb25zZUhlYWRlcnMgPSBnZXRSZXNwb25zZUhlYWRlcnMoZXZlbnQsIGFsbG93ZWRDb3JzT3JpZ2lucywgZGVmYXVsdENvcnNPcmlnaW4pO1xuXG4gIGlmKGV2ZW50Lmh0dHBNZXRob2QgPT09ICdPUFRJT05TJykge1xuICAgIHJldHVybiB7XG4gICAgICBib2R5OiAnJyxcbiAgICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICAgIHN0YXR1c0NvZGU6IDIwNFxuICAgIH07XG4gIH1cblxuICBjb25zdCB1cGRhdGVkQ29udGV4dDogQXBpQ29udGV4dCA9IGF3YWl0IHBhcnNlQ29udGV4dChldmVudCwgdHJ1ZSk7XG4gIGNvbnN0IHVzZXJJZCA9IHVwZGF0ZWRDb250ZXh0LnNlc3Npb24/LnVzZXJJZDtcblxuICBpZighdXNlcklkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtlcnJvcjogJ1VuYXV0aG9yaXplZC4nfSksXG4gICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgICBzdGF0dXNDb2RlOiA0MDFcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgaXNNdWx0aXBhcnQgPSBpc011bHRpcGFydFVwbG9hZChldmVudCk7XG4gIGxldCBib2R5OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGxldCBidWZmZXI6IEJ1ZmZlcjtcbiAgbGV0IHVwbG9hZGVkQ29udGVudFR5cGUgPSAnJztcblxuICBpZihpc011bHRpcGFydCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtdWx0aXBhcnRVcGxvYWQgPSBhd2FpdCBwYXJzZU11bHRpcGFydFVwbG9hZChldmVudCk7XG4gICAgICBib2R5ID0ge1xuICAgICAgICAuLi5tdWx0aXBhcnRVcGxvYWQuZmllbGRzLFxuICAgICAgICBmaWxlTmFtZTogbXVsdGlwYXJ0VXBsb2FkLmZpbGVuYW1lXG4gICAgICB9O1xuICAgICAgYnVmZmVyID0gbXVsdGlwYXJ0VXBsb2FkLmJ1ZmZlcjtcbiAgICAgIHVwbG9hZGVkQ29udGVudFR5cGUgPSBtdWx0aXBhcnRVcGxvYWQuY29udGVudFR5cGUgfHwgJyc7XG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0ludmFsaWQgbXVsdGlwYXJ0IGltYWdlIHBheWxvYWQuJztcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtlcnJvcjogbWVzc2FnZX0pLFxuICAgICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgICAgIHN0YXR1c0NvZGU6IDQwMFxuICAgICAgfTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgcGFyc2VEYXRhID0gZ2V0TGFtYmRhRGF0YSh7XG4gICAgICBib2R5OiBldmVudC5ib2R5IHx8IHVuZGVmaW5lZCxcbiAgICAgIHJlcXVlc3RDb250ZXh0OiBldmVudC5yZXF1ZXN0Q29udGV4dFxuICAgIH0pO1xuICAgIGJvZHkgPSBwYXJzZURhdGEuYm9keSB8fCB7fTtcbiAgICBjb25zdCB7YmFzZTY0fSA9IGJvZHk7XG5cbiAgICBpZih0eXBlb2YgYmFzZTY0ICE9PSAnc3RyaW5nJyB8fCAhYmFzZTY0LmluY2x1ZGVzKCcsJykpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtlcnJvcjogJ0ludmFsaWQgaW1hZ2UgcGF5bG9hZC4nfSksXG4gICAgICAgIGhlYWRlcnM6IHJlc3BvbnNlSGVhZGVycyxcbiAgICAgICAgc3RhdHVzQ29kZTogNDAwXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdEJhc2U2NDogc3RyaW5nID0gYmFzZTY0LnN1YnN0cmluZyhiYXNlNjQuaW5kZXhPZignLCcpICsgMSk7XG4gICAgYnVmZmVyID0gQnVmZmVyLmZyb20oZm9ybWF0QmFzZTY0LCAnYmFzZTY0Jyk7XG4gIH1cblxuICBjb25zdCBmaWxlTWltZSA9IGF3YWl0IGZpbGVUeXBlRnJvbUJ1ZmZlcihidWZmZXIpO1xuXG4gIGlmKCFidWZmZXIubGVuZ3RoIHx8ICghZmlsZU1pbWUgJiYgIXVwbG9hZGVkQ29udGVudFR5cGUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtlcnJvcjogJ1RoZSBzdHJpbmcgc3VwcGxpZWQgaXMgbm90IGEgZmlsZSB0eXBlJ30pLFxuICAgICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgc3RhdHVzQ29kZTogNDAwXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IG1pbWUgPSBmaWxlTWltZT8ubWltZSB8fCB1cGxvYWRlZENvbnRlbnRUeXBlO1xuICBjb25zdCB7XG4gICAgZGVzY3JpcHRpb24sXG4gICAgaXRlbUlkID0gdXNlcklkLFxuICAgIGl0ZW1UeXBlID0gJ3VzZXJzJyxcbiAgICBwcml2YWN5ID0gJ3ByaXZhdGUnXG4gIH0gPSBib2R5IHx8IHt9O1xuXG4gIGNvbnN0IGZvcm1hdE5hbWU6IHN0cmluZyA9IHBhcnNlU3RyaW5nKFxuICAgIChib2R5Py5maWxlTmFtZSB8fCBib2R5Py5maWxlbmFtZSB8fCBib2R5Py5uYW1lIHx8ICcnKS5zcGxpdCgnLicpLnNsaWNlKDAsIC0xKS5qb2luKCcuJykgfHxcbiAgICAoYm9keT8uZmlsZU5hbWUgfHwgYm9keT8uZmlsZW5hbWUgfHwgYm9keT8ubmFtZSB8fCAnJyksXG4gICAgMzJcbiAgKVxuICAgIC50cmltKClcbiAgICAucmVwbGFjZSgvXFxzKy9nLCAnLScpXG4gICAgLnRvTG93ZXJDYXNlKCk7XG5cbiAgY29uc3QgaW1hZ2UgPSB7XG4gICAgYnVmZmVyLFxuICAgIGRlc2NyaXB0aW9uOiBwYXJzZVN0cmluZyhkZXNjcmlwdGlvbiwgNTAwKSxcbiAgICBmaWxlVHlwZTogbWltZSBhcyBzdHJpbmcsXG4gICAgaW1hZ2VJZDogZm9ybWF0TmFtZSB8fCBjcmVhdGVIYXNoKGBpbWFnZS0ke3VzZXJJZH0tJHtEYXRlLm5vdygpfWApLFxuICAgIGl0ZW1JZCxcbiAgICBpdGVtVHlwZSxcbiAgICBwcml2YWN5XG4gIH07XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgYWRkSW1hZ2UodXBkYXRlZENvbnRleHQsIGltYWdlKTtcbiAgICByZXR1cm4ge1xuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe2ltYWdlOiByZXN1bHRzIHx8IHt9fSksXG4gICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgICBzdGF0dXNDb2RlOiAyMDBcbiAgICB9O1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcigndXBsb2FkOjphZGRJbWFnZTo6ZXJyb3InLCB7XG4gICAgICBidWNrZXQ6IENvbmZpZy5nZXQoJ2F3cy5zMy5CdWNrZXQnKSxcbiAgICAgIGZpbGVUeXBlOiBtaW1lLFxuICAgICAgaW1hZ2VJZDogaW1hZ2UuaW1hZ2VJZCxcbiAgICAgIGl0ZW1JZCxcbiAgICAgIGl0ZW1UeXBlLFxuICAgICAgdXNlcklkXG4gICAgfSwgZXJyb3IpO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmFibGUgdG8gdXBsb2FkIGltYWdlLic7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtlcnJvcjogbWVzc2FnZX0pLFxuICAgICAgaGVhZGVyczogcmVzcG9uc2VIZWFkZXJzLFxuICAgICAgc3RhdHVzQ29kZTogNTAwXG4gICAgfTtcbiAgfVxufTtcbiJdLCJuYW1lcyI6WyJjcmVhdGVIYXNoIiwicGFyc2VTdHJpbmciLCJCdXNib3kiLCJmaWxlVHlwZUZyb21CdWZmZXIiLCJDb25maWciLCJnZXRMYW1iZGFEYXRhIiwiYWRkSW1hZ2UiLCJnZXRIZWFkZXJWYWx1ZSIsImhlYWRlcnMiLCJuYW1lIiwibG93ZXJOYW1lIiwidG9Mb3dlckNhc2UiLCJoZWFkZXJLZXkiLCJPYmplY3QiLCJrZXlzIiwiZmluZCIsImtleSIsIlN0cmluZyIsImdldFJlc3BvbnNlSGVhZGVycyIsImV2ZW50IiwiYWxsb3dlZENvcnNPcmlnaW5zIiwiZGVmYXVsdENvcnNPcmlnaW4iLCJvcmlnaW4iLCJvcmlnaW5TZXQiLCJTZXQiLCJhbGxvd2VkT3JpZ2luIiwiaGFzIiwiaXNNdWx0aXBhcnRVcGxvYWQiLCJpbmNsdWRlcyIsInBhcnNlTXVsdGlwYXJ0VXBsb2FkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb250ZW50VHlwZSIsImZpZWxkcyIsImZpbGVDaHVua3MiLCJjb250ZW50VHlwZUZyb21GaWxlIiwiZmlsZW5hbWUiLCJidXNib3kiLCJvbiIsImZpZWxkTmFtZSIsInZhbHVlIiwiX2ZpZWxkTmFtZSIsImZpbGUiLCJpbmZvIiwibWltZVR5cGUiLCJjaHVuayIsInB1c2giLCJidWZmZXIiLCJCdWZmZXIiLCJjb25jYXQiLCJldmVudEJvZHkiLCJib2R5IiwiYm9keUJ1ZmZlciIsImlzQmFzZTY0RW5jb2RlZCIsImZyb20iLCJlbmQiLCJjcmVhdGVVcGxvYWRIYW5kbGVyIiwiY29uZmlndXJlUmVha3RvciIsInBhcnNlQ29udGV4dCIsIl9sYW1iZGFDb250ZXh0IiwicmVzcG9uc2VIZWFkZXJzIiwiaHR0cE1ldGhvZCIsInN0YXR1c0NvZGUiLCJ1cGRhdGVkQ29udGV4dCIsInVzZXJJZCIsInNlc3Npb24iLCJKU09OIiwic3RyaW5naWZ5IiwiZXJyb3IiLCJpc011bHRpcGFydCIsInVwbG9hZGVkQ29udGVudFR5cGUiLCJtdWx0aXBhcnRVcGxvYWQiLCJmaWxlTmFtZSIsIm1lc3NhZ2UiLCJFcnJvciIsInBhcnNlRGF0YSIsInVuZGVmaW5lZCIsInJlcXVlc3RDb250ZXh0IiwiYmFzZTY0IiwiZm9ybWF0QmFzZTY0Iiwic3Vic3RyaW5nIiwiaW5kZXhPZiIsImZpbGVNaW1lIiwibGVuZ3RoIiwibWltZSIsImRlc2NyaXB0aW9uIiwiaXRlbUlkIiwiaXRlbVR5cGUiLCJwcml2YWN5IiwiZm9ybWF0TmFtZSIsInNwbGl0Iiwic2xpY2UiLCJqb2luIiwidHJpbSIsInJlcGxhY2UiLCJpbWFnZSIsImZpbGVUeXBlIiwiaW1hZ2VJZCIsIkRhdGUiLCJub3ciLCJyZXN1bHRzIiwiY29uc29sZSIsImJ1Y2tldCIsImdldCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsVUFBVSxFQUFFQyxXQUFXLFFBQU8sZUFBZTtBQUNyRCxPQUFPQyxZQUFZLFNBQVM7QUFDNUIsU0FBUUMsa0JBQWtCLFFBQU8sWUFBWTtBQUU3QyxTQUFRQyxNQUFNLFFBQU8sY0FBYztBQUVuQyxTQUFRQyxhQUFhLFFBQU8sdUJBQXVCO0FBQ25ELFNBQVFDLFFBQVEsUUFBTyxzQkFBc0I7QUF5QjdDLE1BQU1DLGlCQUFpQixDQUFDQyxTQUEwQ0M7SUFDaEUsTUFBTUMsWUFBWUQsS0FBS0UsV0FBVztJQUNsQyxNQUFNQyxZQUFZQyxPQUFPQyxJQUFJLENBQUNOLFdBQVcsQ0FBQyxHQUFHTyxJQUFJLENBQUMsQ0FBQ0MsTUFBUUEsSUFBSUwsV0FBVyxPQUFPRDtJQUNqRixPQUFPTyxPQUFPTCxZQUFZSixTQUFTLENBQUNJLFVBQVUsSUFBSSxLQUFLO0FBQ3pEO0FBRUEsTUFBTU0scUJBQXFCLENBQ3pCQyxPQUNBQyxxQkFBd0MsRUFBRSxFQUMxQ0Ms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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/
|
|
5
5
|
export declare const removeEmptyKeys: (obj: any) => any;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2025-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/ export const removeEmptyKeys = (obj)=>{
|
|
5
5
|
if (Array.isArray(obj)) {
|
|
6
6
|
return obj.filter((item)=>item !== undefined);
|
|
@@ -20,4 +20,4 @@
|
|
|
20
20
|
return newObj;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy91dGlscy9hZGFwdGVyVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIGlzIHN1YmplY3QgdG8gdGhlIGFjY29tcGFueWluZyBjb21tZXJjaWFsIExJQ0VOU0UuXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVFbXB0eUtleXMgPSAob2JqKSA9PiB7XG4gIGlmKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgIHJldHVybiBvYmouZmlsdGVyKChpdGVtKSA9PiBpdGVtICE9PSB1bmRlZmluZWQpO1xuICB9IGVsc2UgaWYob2JqICE9PSBPYmplY3Qob2JqKSkge1xuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICBjb25zdCBuZXdPYmogPSB7fTtcblxuICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGlmKEFycmF5LmlzQXJyYXkob2JqW2tleV0pKSB7XG4gICAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IHJlbW92ZUVtcHR5S2V5cyhpdGVtKSlcbiAgICAgICAgLmZpbHRlcigoaXRlbSkgPT4gaXRlbSAhPT0gdW5kZWZpbmVkKTtcbiAgICB9IGVsc2UgaWYob2JqW2tleV0gPT09IE9iamVjdChvYmpba2V5XSkpIHtcbiAgICAgIG5ld09ialtrZXldID0gcmVtb3ZlRW1wdHlLZXlzKG9ialtrZXldKTtcbiAgICB9IGVsc2UgaWYob2JqW2tleV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgbmV3T2JqW2tleV0gPSBvYmpba2V5XTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBuZXdPYmo7XG59O1xuIl0sIm5hbWVzIjpbInJlbW92ZUVtcHR5S2V5cyIsIm9iaiIsIkFycmF5IiwiaXNBcnJheSIsImZpbHRlciIsIml0ZW0iLCJ1bmRlZmluZWQiLCJPYmplY3QiLCJuZXdPYmoiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsIm1hcCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsT0FBTyxNQUFNQSxrQkFBa0IsQ0FBQ0M7SUFDOUIsSUFBR0MsTUFBTUMsT0FBTyxDQUFDRixNQUFNO1FBQ3JCLE9BQU9BLElBQUlHLE1BQU0sQ0FBQyxDQUFDQyxPQUFTQSxTQUFTQztJQUN2QyxPQUFPLElBQUdMLFFBQVFNLE9BQU9OLE1BQU07UUFDN0IsT0FBT0E7SUFDVDtJQUVBLE1BQU1PLFNBQVMsQ0FBQztJQUVoQkQsT0FBT0UsSUFBSSxDQUFDUixLQUFLUyxPQUFPLENBQUMsQ0FBQ0M7UUFDeEIsSUFBR1QsTUFBTUMsT0FBTyxDQUFDRixHQUFHLENBQUNVLElBQUksR0FBRztZQUMxQkgsTUFBTSxDQUFDRyxJQUFJLEdBQUdWLEdBQUcsQ0FBQ1UsSUFBSSxDQUNuQkMsR0FBRyxDQUFDLENBQUNQLE9BQVNMLGdCQUFnQkssT0FDOUJELE1BQU0sQ0FBQyxDQUFDQyxPQUFTQSxTQUFTQztRQUMvQixPQUFPLElBQUdMLEdBQUcsQ0FBQ1UsSUFBSSxLQUFLSixPQUFPTixHQUFHLENBQUNVLElBQUksR0FBRztZQUN2Q0gsTUFBTSxDQUFDRyxJQUFJLEdBQUdYLGdCQUFnQkMsR0FBRyxDQUFDVSxJQUFJO1FBQ3hDLE9BQU8sSUFBR1YsR0FBRyxDQUFDVSxJQUFJLEtBQUtMLFdBQVc7WUFDaENFLE1BQU0sQ0FBQ0csSUFBSSxHQUFHVixHQUFHLENBQUNVLElBQUk7UUFDeEI7SUFDRjtJQUVBLE9BQU9IO0FBQ1QsRUFBRSJ9
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/
|
|
5
5
|
import type { ApiContext } from '../types/auth.types.js';
|
|
6
6
|
export type ReaktorError = Error & {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/ export const IsUserError = Symbol();
|
|
5
5
|
export class UserError extends Error {
|
|
6
6
|
constructor(...args){
|
|
@@ -42,4 +42,4 @@ export const logInfo = (params)=>{
|
|
|
42
42
|
});
|
|
43
43
|
};
|
|
44
44
|
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy91dGlscy9hbmFseXRpY3NVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuXG5leHBvcnQgdHlwZSBSZWFrdG9yRXJyb3IgPSBFcnJvciAmIHtcbiAgcmVhZG9ubHkgY29sdW1uPzogbnVtYmVyO1xuICByZWFkb25seSBsaW5lPzogbnVtYmVyO1xuICByZWFkb25seSBtZXNzYWdlPzogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2U/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBSZWFrdG9yTG9nUGFyYW1zID0ge1xuICByZWFkb25seSBhY3Rpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNhdGVnb3J5Pzogc3RyaW5nO1xuICByZWFkb25seSBsYWJlbD86IHN0cmluZztcbiAgcmVhZG9ubHkgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHJlYWRvbmx5IHZhbHVlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IElzVXNlckVycm9yID0gU3ltYm9sKCk7XG5leHBvcnQgY2xhc3MgVXNlckVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvciguLi5hcmdzKSB7XG4gICAgc3VwZXIoLi4uYXJncyk7XG4gICAgdGhpcy5uYW1lID0gJ0Vycm9yJztcbiAgICB0aGlzLm1lc3NhZ2UgPSBhcmdzWzBdO1xuICAgIHRoaXNbSXNVc2VyRXJyb3JdID0gdHJ1ZTtcblxuICAgIC8vIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBsb2dFcnJvciA9IChwYXJhbXM6IFJlYWt0b3JMb2dQYXJhbXMsIGVycm9yPzogUmVha3RvckVycm9yLCBjb250ZXh0PzogQXBpQ29udGV4dCk6IFByb21pc2U8dW5rbm93bj4gPT4ge1xuICBjb25zdCB7XG4gICAgY29sdW1uLFxuICAgIGxpbmUsXG4gICAgbWVzc2FnZSxcbiAgICBzb3VyY2VcbiAgfSA9IGVycm9yIHx8IHt9O1xuXG4gIGNvbnN0IHtkYXRhYmFzZU5hbWUsIC4uLnVwZGF0ZWRDb250ZXh0fSA9IGNvbnRleHQgfHwge307XG5cbiAgY29uc29sZS5lcnJvcignUmVha3RvciBFcnJvcjonLCB7XG4gICAgY29sdW1uLFxuICAgIGxpbmUsXG4gICAgbWVzc2FnZSxcbiAgICBzb3VyY2UsXG4gICAgdHlwZTogJ2Vycm9yJyxcbiAgICAuLi5wYXJhbXMsXG4gICAgLi4udXBkYXRlZENvbnRleHQsXG4gICAgZXJyb3JcbiAgfSk7XG5cbiAgdGhyb3cgKGVycm9yIHx8IG5ldyBVc2VyRXJyb3IocGFyYW1zPy52YWx1ZSkpO1xufTtcblxuZXhwb3J0IGNvbnN0IGxvZ0V4Y2VwdGlvbiA9IChwYXJhbXM6IFJlYWt0b3JMb2dQYXJhbXMsIGNvbnRleHQ6IEFwaUNvbnRleHQpOiBQcm9taXNlPHVua25vd24+ID0+IHtcbiAgY29uc3Qge2RhdGFiYXNlTmFtZSwgLi4udXBkYXRlZENvbnRleHR9ID0gY29udGV4dDtcblxuICBjb25zb2xlLmVycm9yKCdSZWFrdG9yIEV4Y2VwdGlvbjonLCB7dHlwZTogJ2V4Y2VwdGlvbicsIC4uLnBhcmFtcywgLi4udXBkYXRlZENvbnRleHR9KTtcbiAgdGhyb3cgbmV3IFVzZXJFcnJvcihwYXJhbXM/LnZhbHVlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBsb2dJbmZvID0gKHBhcmFtcyk6IHZvaWQgPT4ge1xuICBjb25zb2xlLmluZm8oJ1JlYWt0b3IgTG9nOicsIHt0eXBlOiAnbG9nJywgLi4ucGFyYW1zfSk7XG59O1xuIl0sIm5hbWVzIjpbIklzVXNlckVycm9yIiwiU3ltYm9sIiwiVXNlckVycm9yIiwiRXJyb3IiLCJhcmdzIiwibmFtZSIsIm1lc3NhZ2UiLCJsb2dFcnJvciIsInBhcmFtcyIsImVycm9yIiwiY29udGV4dCIsImNvbHVtbiIsImxpbmUiLCJzb3VyY2UiLCJkYXRhYmFzZU5hbWUiLCJ1cGRhdGVkQ29udGV4dCIsImNvbnNvbGUiLCJ0eXBlIiwidmFsdWUiLCJsb2dFeGNlcHRpb24iLCJsb2dJbmZvIiwiaW5mbyJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBa0JELE9BQU8sTUFBTUEsY0FBY0MsU0FBUztBQUNwQyxPQUFPLE1BQU1DLGtCQUFrQkM7SUFDN0IsWUFBWSxHQUFHQyxJQUFJLENBQUU7UUFDbkIsS0FBSyxJQUFJQTtRQUNULElBQUksQ0FBQ0MsSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDQyxPQUFPLEdBQUdGLElBQUksQ0FBQyxFQUFFO1FBQ3RCLElBQUksQ0FBQ0osWUFBWSxHQUFHO0lBRXBCLGlDQUFpQztJQUNuQztBQUNGO0FBRUEsT0FBTyxNQUFNTyxXQUFXLENBQUNDLFFBQTBCQyxPQUFzQkM7SUFDdkUsTUFBTSxFQUNKQyxNQUFNLEVBQ05DLElBQUksRUFDSk4sT0FBTyxFQUNQTyxNQUFNLEVBQ1AsR0FBR0osU0FBUyxDQUFDO0lBRWQsTUFBTSxFQUFDSyxZQUFZLEVBQUUsR0FBR0MsZ0JBQWUsR0FBR0wsV0FBVyxDQUFDO0lBRXRETSxRQUFRUCxLQUFLLENBQUMsa0JBQWtCO1FBQzlCRTtRQUNBQztRQUNBTjtRQUNBTztRQUNBSSxNQUFNO1FBQ04sR0FBR1QsTUFBTTtRQUNULEdBQUdPLGNBQWM7UUFDakJOO0lBQ0Y7SUFFQSxNQUFPQSxTQUFTLElBQUlQLFVBQVVNLFFBQVFVO0FBQ3hDLEVBQUU7QUFFRixPQUFPLE1BQU1DLGVBQWUsQ0FBQ1gsUUFBMEJFO0lBQ3JELE1BQU0sRUFBQ0ksWUFBWSxFQUFFLEdBQUdDLGdCQUFlLEdBQUdMO0lBRTFDTSxRQUFRUCxLQUFLLENBQUMsc0JBQXNCO1FBQUNRLE1BQU07UUFBYSxHQUFHVCxNQUFNO1FBQUUsR0FBR08sY0FBYztJQUFBO0lBQ3BGLE1BQU0sSUFBSWIsVUFBVU0sUUFBUVU7QUFDOUIsRUFBRTtBQUVGLE9BQU8sTUFBTUUsVUFBVSxDQUFDWjtJQUN0QlEsUUFBUUssSUFBSSxDQUFDLGdCQUFnQjtRQUFDSixNQUFNO1FBQU8sR0FBR1QsTUFBTTtJQUFBO0FBQ3RELEVBQUUifQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const scopeContextToApp = async (context, appId)=>{
|
|
2
|
+
if (!appId) return context;
|
|
3
|
+
if (!context.resolveAppDatabaseName) throw new Error('app_database_resolver_unavailable');
|
|
4
|
+
return {
|
|
5
|
+
...context,
|
|
6
|
+
databaseName: await context.resolveAppDatabaseName(context, appId)
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy91dGlscy9hcHBDb250ZXh0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcblxuZXhwb3J0IGNvbnN0IHNjb3BlQ29udGV4dFRvQXBwID0gYXN5bmMgKGNvbnRleHQ6IEFwaUNvbnRleHQsIGFwcElkPzogc3RyaW5nKTogUHJvbWlzZTxBcGlDb250ZXh0PiA9PiB7XG4gIGlmKCFhcHBJZCkgcmV0dXJuIGNvbnRleHQ7XG4gIGlmKCFjb250ZXh0LnJlc29sdmVBcHBEYXRhYmFzZU5hbWUpIHRocm93IG5ldyBFcnJvcignYXBwX2RhdGFiYXNlX3Jlc29sdmVyX3VuYXZhaWxhYmxlJyk7XG5cbiAgcmV0dXJuIHsuLi5jb250ZXh0LCBkYXRhYmFzZU5hbWU6IGF3YWl0IGNvbnRleHQucmVzb2x2ZUFwcERhdGFiYXNlTmFtZShjb250ZXh0LCBhcHBJZCl9O1xufTtcbiJdLCJuYW1lcyI6WyJzY29wZUNvbnRleHRUb0FwcCIsImNvbnRleHQiLCJhcHBJZCIsInJlc29sdmVBcHBEYXRhYmFzZU5hbWUiLCJFcnJvciIsImRhdGFiYXNlTmFtZSJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxNQUFNQSxvQkFBb0IsT0FBT0MsU0FBcUJDO0lBQzNELElBQUcsQ0FBQ0EsT0FBTyxPQUFPRDtJQUNsQixJQUFHLENBQUNBLFFBQVFFLHNCQUFzQixFQUFFLE1BQU0sSUFBSUMsTUFBTTtJQUVwRCxPQUFPO1FBQUMsR0FBR0gsT0FBTztRQUFFSSxjQUFjLE1BQU1KLFFBQVFFLHNCQUFzQixDQUFDRixTQUFTQztJQUFNO0FBQ3hGLEVBQUUifQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/
|
|
5
5
|
import type { FilterCondition, FilterGroup, LimitOption, SortOption } from '../types/arangodb.types.js';
|
|
6
6
|
export type { FilterCondition, FilterGroup, LimitOption, SortOption };
|
package/lib/utils/aqlHelpers.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/ import { COLLECTIONS, EDGES, ReactionType } from '../constants/collections.js';
|
|
5
5
|
/**
|
|
6
6
|
* AQL Helper Functions
|
|
@@ -213,4 +213,4 @@ export const buildFullTextSearch = (searchOptions, docVar = 'doc')=>{
|
|
|
213
213
|
return `FILTER CONTAINS(LOWER(${docVar}.${sanitizedField}), LOWER("${escapedQuery}"))`;
|
|
214
214
|
};
|
|
215
215
|
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL2FxbEhlbHBlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cblxuaW1wb3J0IHtDT0xMRUNUSU9OUywgRURHRVMsIFJlYWN0aW9uVHlwZX0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbGxlY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHtGaWx0ZXJDb25kaXRpb24sIEZpbHRlckdyb3VwLCBMaW1pdE9wdGlvbiwgU29ydE9wdGlvbn0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGIudHlwZXMuanMnO1xuXG4vLyBFeHBvcnQgdHlwZXMgZm9yIHVzZSBpbiBvdGhlciBtb2R1bGVzXG5leHBvcnQgdHlwZSB7RmlsdGVyQ29uZGl0aW9uLCBGaWx0ZXJHcm91cCwgTGltaXRPcHRpb24sIFNvcnRPcHRpb259O1xuXG4vKipcbiAqIEFRTCBIZWxwZXIgRnVuY3Rpb25zXG4gKiBDb21tb24gcXVlcnkgYnVpbGRpbmcgdXRpbGl0aWVzIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uIGFjcm9zcyBhY3Rpb24gZmlsZXNcbiAqL1xuXG4vKipcbiAqIEJ1aWxkIGRpc3RhbmNlIGNhbGN1bGF0aW9uIEFRTCBxdWVyeVxuICogQ2FsY3VsYXRlcyBkaXN0YW5jZSBiZXR3ZWVuIHR3byBnZW9ncmFwaGljYWwgY29vcmRpbmF0ZXNcbiAqIEBwYXJhbSBsYXQgLSBMYXRpdHVkZSBjb29yZGluYXRlXG4gKiBAcGFyYW0gbG5nIC0gTG9uZ2l0dWRlIGNvb3JkaW5hdGVcbiAqIEByZXR1cm5zIEFRTCBkaXN0YW5jZSBjYWxjdWxhdGlvbiBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkRGlzdGFuY2VRdWVyeSA9IChsYXQ6IG51bWJlciwgbG5nOiBudW1iZXIpOiBzdHJpbmcgPT5cbiAgYExFVCBkaXN0YW5jZSA9IERJU1RBTkNFKFxuICAgICR7bGF0fSxcbiAgICAke2xuZ30sXG4gICAgTk9UX05VTEwocC5sYXRpdHVkZSwgMCksXG4gICAgTk9UX05VTEwocC5sb25naXR1ZGUsIDApKVxuICBgO1xuXG4vKipcbiAqIEJ1aWxkIHJlYWN0aW9uIGNvdW50IHF1ZXJ5IGZvciBhIHNwZWNpZmljIHJlYWN0aW9uIHR5cGVcbiAqIEBwYXJhbSByZWFjdGlvbk5hbWUgLSBOYW1lIG9mIHRoZSByZWFjdGlvbiAobGlrZSwgcnN2cCwgcGluLCB2aWV3KVxuICogQHBhcmFtIGl0ZW1WYXIgLSBWYXJpYWJsZSBuYW1lIGZvciB0aGUgaXRlbSAoZGVmYXVsdDogJ3AnKVxuICogQHBhcmFtIGl0ZW1UeXBlIC0gVHlwZSBvZiBpdGVtIChkZWZhdWx0OiAncG9zdHMnKVxuICogQHJldHVybnMgQVFMIHJlYWN0aW9uIGNvdW50IHF1ZXJ5IHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgYnVpbGRSZWFjdGlvbkNvdW50UXVlcnkgPSAoXG4gIHJlYWN0aW9uTmFtZTogc3RyaW5nLFxuICBpdGVtVmFyOiBzdHJpbmcgPSAncCcsXG4gIGl0ZW1UeXBlOiBzdHJpbmcgPSAncG9zdHMnXG4pOiBzdHJpbmcgPT5cbiAgYExFVCAke3JlYWN0aW9uTmFtZX1Db3VudCA9IEZJUlNUKFxuICAgIEZPUiBpdGVtLCByIElOIElOQk9VTkQgJHtpdGVtVmFyfS5faWQgJHtFREdFUy5IQVNfUkVBQ1RJT059XG4gICAgRklMVEVSIHIubmFtZSA9PSBcIiR7cmVhY3Rpb25OYW1lfVwiICYmIHIudHlwZSA9PSBcIiR7aXRlbVR5cGV9XCJcbiAgICBDT0xMRUNUIFdJVEggQ09VTlQgSU5UTyBjb3VudFxuICAgIFJFVFVSTiBjb3VudFxuICApYDtcblxuLyoqXG4gKiBCdWlsZCB1c2VyLXNwZWNpZmljIHJlYWN0aW9uIGNoZWNrIHF1ZXJ5XG4gKiBDaGVja3MgaWYgYSBzcGVjaWZpYyB1c2VyIGhhcyByZWFjdGVkIHRvIGFuIGl0ZW1cbiAqIEBwYXJhbSByZWFjdGlvbk5hbWUgLSBOYW1lIG9mIHRoZSByZWFjdGlvblxuICogQHBhcmFtIHNlc3Npb25JZCAtIFVzZXIgc2Vzc2lvbiBJRFxuICogQHBhcmFtIGl0ZW1WYXIgLSBWYXJpYWJsZSBuYW1lIGZvciB0aGUgaXRlbSAoZGVmYXVsdDogJ3AnKVxuICogQHBhcmFtIGl0ZW1UeXBlIC0gVHlwZSBvZiBpdGVtIChkZWZhdWx0OiAncG9zdHMnKVxuICogQHJldHVybnMgQVFMIHVzZXIgcmVhY3Rpb24gY2hlY2sgcXVlcnkgc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZFVzZXJSZWFjdGlvblF1ZXJ5ID0gKFxuICByZWFjdGlvbk5hbWU6IHN0cmluZyxcbiAgc2Vzc2lvbklkOiBzdHJpbmcsXG4gIGl0ZW1WYXI6IHN0cmluZyA9ICdwJyxcbiAgaXRlbVR5cGU6IHN0cmluZyA9ICdwb3N0cydcbik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHZhck5hbWUgPSByZWFjdGlvbk5hbWUgPT09IFJlYWN0aW9uVHlwZS5QSU5cbiAgICA/ICdpc1NhdmVkJ1xuICAgIDogYGhhcyR7cmVhY3Rpb25OYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcmVhY3Rpb25OYW1lLnNsaWNlKDEpfWA7XG4gIGNvbnN0IGFjdG9yRG9jSWQgPSBzZXNzaW9uSWQuaW5jbHVkZXMoJy8nKSA/IHNlc3Npb25JZCA6IGAke0NPTExFQ1RJT05TLlVTRVJTfS8ke3Nlc3Npb25JZH1gO1xuXG4gIHJldHVybiBgTEVUICR7dmFyTmFtZX0gPSBUT19CT09MKEZJUlNUKFxuICAgIEZPUiBpdGVtLCByIElOIElOQk9VTkQgJHtpdGVtVmFyfS5faWQgJHtFREdFUy5IQVNfUkVBQ1RJT059XG4gICAgRklMVEVSIHIubmFtZSA9PSBcIiR7cmVhY3Rpb25OYW1lfVwiICYmIHIudHlwZSA9PSBcIiR7aXRlbVR5cGV9XCIgJiYgci5fZnJvbSA9PSBcIiR7YWN0b3JEb2NJZH1cIlxuICAgIENPTExFQ1QgV0lUSCBDT1VOVCBJTlRPIGNvdW50XG4gICAgUkVUVVJOIGNvdW50XG4gICkpYDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFJlYWN0aW9uc1F1ZXJ5ID0gKGl0ZW1WYXI6IHN0cmluZyA9ICdwJyk6IHN0cmluZyA9PlxuICBgTEVUIHJlYWN0aW9ucyA9IChcbiAgICBGT1IgaXRlbSwgciBJTiBJTkJPVU5EICR7aXRlbVZhcn0uX2lkICR7RURHRVMuSEFTX1JFQUNUSU9OfVxuICAgIENPTExFQ1QgcmVhY3Rpb25OYW1lID0gci52YWx1ZSBJTlRPIHJlYWN0aW9uSXRlbXNcbiAgICBSRVRVUk4ge25hbWU6IHJlYWN0aW9uTmFtZSwgY291bnQ6IExFTkdUSChyZWFjdGlvbkl0ZW1zWypdLnIudmFsdWUpfVxuICApYDtcblxuXG5leHBvcnQgY29uc3QgYnVpbGRUYWdzUXVlcnkgPSAoaXRlbVZhcjogc3RyaW5nID0gJ3AnLCB0YWdOYW1lcz86IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcbiAgY29uc3QgbWF0Y2hDbGF1c2UgPSB0YWdOYW1lcyAmJiB0YWdOYW1lcy5sZW5ndGhcbiAgICA/IGBMRVQgbWF0Y2hlZCA9IExFTkdUSCgke0pTT04uc3RyaW5naWZ5KHRhZ05hbWVzKX0pID4gMCAmJiBQT1NJVElPTigke0pTT04uc3RyaW5naWZ5KHRhZ05hbWVzKX0sIHRhZy5uYW1lKWBcbiAgICA6ICcnO1xuXG4gIHJldHVybiBgTEVUIHRhZ3MgPSAoXG4gICAgRk9SIHRhZywgaXQgSU4gMS4uMSBJTkJPVU5EICR7aXRlbVZhcn0gJHtFREdFUy5JU19UQUdHRUR9XG4gICAgJHttYXRjaENsYXVzZX1cbiAgICBTT1JUIHRhZy5uYW1lXG4gICAgUkVUVVJOICR7bWF0Y2hDbGF1c2UgPyAnTUVSR0UodGFnLCB7bWF0Y2hlZDptYXRjaGVkfSknIDogJ3RhZyd9XG4gIClgO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkR3JvdXBQcml2YWN5RmlsdGVyID0gKFxuICBncm91cElkOiBzdHJpbmcsXG4gIHNlc3Npb25JZDogc3RyaW5nLFxuICBncm91cFZhcjogc3RyaW5nID0gJ2dyb3VwJ1xuKTogc3RyaW5nID0+XG4gIGBGT1IgJHtncm91cFZhcn0gSU4gJHtDT0xMRUNUSU9OUy5HUk9VUFN9XG4gICAgRklMVEVSICR7Z3JvdXBWYXJ9Ll9rZXkgPT0gXCIke2dyb3VwSWR9XCJcbiAgICBGT1IgdSwgZSBJTiBPVVRCT1VORCAke2dyb3VwVmFyfS5faWQgJHtFREdFUy5IQVNfQ09OTkVDVElPTn1cbiAgICBGSUxURVIgdS5fa2V5ID09IFwiJHtzZXNzaW9uSWR9XCJcbiAgICBMSU1JVCAxYDtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkVXNlckluZm9RdWVyeSA9ICh1c2VySWRGaWVsZDogc3RyaW5nID0gJ3AudXNlcklkJyk6IHN0cmluZyA9PlxuICBgTEVUIHVzZXIgPSBGSVJTVChcbiAgICBGT1IgdSBJTiAke0NPTExFQ1RJT05TLlVTRVJTfVxuICAgIEZJTFRFUiB1Ll9rZXkgPT0gJHt1c2VySWRGaWVsZH1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIHVcbiAgKWA7XG5cbmV4cG9ydCBjb25zdCBidWlsZE1hdGNoZWRUYWdzQ291bnRRdWVyeSA9ICh0YWdOYW1lczogc3RyaW5nW10pOiBzdHJpbmcgPT5cbiAgYExFVCBtYXRjaGVkVGFncyA9IExFTkdUSChcbiAgICBGT1IgdCBJTiB0YWdzXG4gICAgRklMVEVSIHQubWF0Y2hlZCA9PSB0cnVlXG4gICAgUkVUVVJOIHRcbiAgKWA7XG5cbmV4cG9ydCBjb25zdCBidWlsZE1hdGNoZWRSZWFjdGlvbnNDb3VudFF1ZXJ5ID0gKHJlYWN0aW9uTmFtZXM6IHN0cmluZ1tdKTogc3RyaW5nID0+XG4gIGBMRVQgbWF0Y2hlZFJlYWN0aW9ucyA9IExFTkdUSChcbiAgICBGT1IgbXIgSU4gcmVhY3Rpb25zXG4gICAgRklMVEVSIG1yLm1hdGNoZWQgPT0gdHJ1ZVxuICAgIFJFVFVSTiBtclxuICApYDtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkRmlsZXNRdWVyeSA9IChpdGVtVmFyOiBzdHJpbmcgPSAncCcsIGVkZ2VUeXBlOiBzdHJpbmcgPSBFREdFUy5IQVNfRklMRSk6IHN0cmluZyA9PlxuICBgTEVUIGZpbGVzID0gKFxuICAgIEZPUiBmLCBlIElOIDEuLjEgSU5CT1VORCAke2l0ZW1WYXJ9Ll9pZCAke2VkZ2VUeXBlfVxuICAgIFJFVFVSTiBmXG4gIClgO1xuXG5leHBvcnQgY29uc3QgYnVpbGRVc2VyQ29ubmVjdGlvblF1ZXJ5ID0gKFxuICBmcm9tVXNlcklkOiBzdHJpbmcsXG4gIHRvVXNlcklkOiBzdHJpbmcsXG4gIGNvbm5lY3Rpb25UeXBlPzogc3RyaW5nXG4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCB0eXBlRmlsdGVyID0gY29ubmVjdGlvblR5cGUgPyBgJiYgZS50eXBlID09IFwiJHtjb25uZWN0aW9uVHlwZX1cImAgOiAnJztcbiAgcmV0dXJuIGBGT1IgdSwgZSBJTiAxLi4xIE9VVEJPVU5EIFwiJHtDT0xMRUNUSU9OUy5VU0VSU30vJHtmcm9tVXNlcklkfVwiICR7RURHRVMuSEFTX0NPTk5FQ1RJT059XG4gICAgRklMVEVSIHUuX2tleSA9PSBcIiR7dG9Vc2VySWR9XCIgJHt0eXBlRmlsdGVyfVxuICAgIExJTUlUIDFcbiAgICBSRVRVUk4gZWA7XG59O1xuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVDb2xsZWN0aW9uTmFtZSA9IChjb2xsZWN0aW9uOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICAvLyBPbmx5IGFsbG93IGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCB1bmRlcnNjb3Jlc1xuICBpZighL15bYS16QS1aX11bYS16QS1aMC05X10qJC8udGVzdChjb2xsZWN0aW9uKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBjb2xsZWN0aW9uIG5hbWU6ICR7Y29sbGVjdGlvbn1gKTtcbiAgfVxuICByZXR1cm4gY29sbGVjdGlvbjtcbn07XG5cbmV4cG9ydCBjb25zdCBzYW5pdGl6ZUZpZWxkTmFtZSA9IChmaWVsZDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgLy8gQWxsb3cgYWxwaGFudW1lcmljLCB1bmRlcnNjb3JlcywgZG90cyAoZm9yIG5lc3RlZCBmaWVsZHMpXG4gIGlmKCEvXlthLXpBLVpfXVthLXpBLVowLTlfLl0qJC8udGVzdChmaWVsZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZmllbGQgbmFtZTogJHtmaWVsZH1gKTtcbiAgfVxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRGaWx0ZXJDbGF1c2UgPSAoZmlsdGVyczogRmlsdGVyR3JvdXAsIGRvY1Zhcjogc3RyaW5nID0gJ2RvYycpOiBzdHJpbmcgPT4ge1xuICBpZighZmlsdGVycyB8fCAhZmlsdGVycy5jb25kaXRpb25zIHx8IGZpbHRlcnMuY29uZGl0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBjb25zdCBidWlsZENvbmRpdGlvbiA9IChjb25kaXRpb246IEZpbHRlckNvbmRpdGlvbiB8IEZpbHRlckdyb3VwKTogc3RyaW5nID0+IHtcbiAgICBpZignY29uZGl0aW9ucycgaW4gY29uZGl0aW9uICYmIEFycmF5LmlzQXJyYXkoY29uZGl0aW9uLmNvbmRpdGlvbnMpKSB7XG4gICAgICBjb25zdCBuZXN0ZWRHcm91cCA9IGNvbmRpdGlvbiBhcyBGaWx0ZXJHcm91cDtcbiAgICAgIGNvbnN0IG5lc3RlZENvbmRpdGlvbnMgPSBuZXN0ZWRHcm91cC5jb25kaXRpb25zLm1hcChidWlsZENvbmRpdGlvbik7XG4gICAgICBjb25zdCBuZXN0ZWRMb2dpYyA9IG5lc3RlZEdyb3VwLmxvZ2ljIHx8ICdBTkQnO1xuICAgICAgcmV0dXJuIGAoJHtuZXN0ZWRDb25kaXRpb25zLmpvaW4oYCAke25lc3RlZExvZ2ljfSBgKX0pYDtcbiAgICB9XG5cbiAgICBjb25zdCBmaWx0ZXJDb25kaXRpb24gPSBjb25kaXRpb24gYXMgRmlsdGVyQ29uZGl0aW9uO1xuICAgIGNvbnN0IGZpZWxkID0gc2FuaXRpemVGaWVsZE5hbWUoZmlsdGVyQ29uZGl0aW9uLmZpZWxkKTtcbiAgICBjb25zdCB2YWx1ZSA9IHR5cGVvZiBmaWx0ZXJDb25kaXRpb24udmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICA/IGBcIiR7ZmlsdGVyQ29uZGl0aW9uLnZhbHVlLnJlcGxhY2UoL1wiL2csICdcXFxcXCInKX1cImBcbiAgICAgIDogSlNPTi5zdHJpbmdpZnkoZmlsdGVyQ29uZGl0aW9uLnZhbHVlKTtcblxuICAgIHN3aXRjaChmaWx0ZXJDb25kaXRpb24ub3BlcmF0b3IpIHtcbiAgICAgIGNhc2UgJz09JzpcbiAgICAgICAgcmV0dXJuIGAke2RvY1Zhcn0uJHtmaWVsZH0gPT0gJHt2YWx1ZX1gO1xuICAgICAgY2FzZSAnIT0nOlxuICAgICAgICByZXR1cm4gYCR7ZG9jVmFyfS4ke2ZpZWxkfSAhPSAke3ZhbHVlfWA7XG4gICAgICBjYXNlICc+JzpcbiAgICAgICAgcmV0dXJuIGAke2RvY1Zhcn0uJHtmaWVsZH0gPiAke3ZhbHVlfWA7XG4gICAgICBjYXNlICc+PSc6XG4gICAgICAgIHJldHVybiBgJHtkb2NWYXJ9LiR7ZmllbGR9ID49ICR7dmFsdWV9YDtcbiAgICAgIGNhc2UgJzwnOlxuICAgICAgICByZXR1cm4gYCR7ZG9jVmFyfS4ke2ZpZWxkfSA8ICR7dmFsdWV9YDtcbiAgICAgIGNhc2UgJzw9JzpcbiAgICAgICAgcmV0dXJuIGAke2RvY1Zhcn0uJHtmaWVsZH0gPD0gJHt2YWx1ZX1gO1xuICAgICAgY2FzZSAnSU4nOlxuICAgICAgICByZXR1cm4gYCR7ZG9jVmFyfS4ke2ZpZWxkfSBJTiAke3ZhbHVlfWA7XG4gICAgICBjYXNlICdOT1QgSU4nOlxuICAgICAgICByZXR1cm4gYCR7ZG9jVmFyfS4ke2ZpZWxkfSBOT1QgSU4gJHt2YWx1ZX1gO1xuICAgICAgY2FzZSAnTElLRSc6XG4gICAgICAgIHJldHVybiBgTElLRSgke2RvY1Zhcn0uJHtmaWVsZH0sICR7dmFsdWV9LCB0cnVlKWA7XG4gICAgICBjYXNlICdOT1QgTElLRSc6XG4gICAgICAgIHJldHVybiBgIUxJS0UoJHtkb2NWYXJ9LiR7ZmllbGR9LCAke3ZhbHVlfSwgdHJ1ZSlgO1xuICAgICAgY2FzZSAnQ09OVEFJTlMnOlxuICAgICAgICBpZihmaWx0ZXJDb25kaXRpb24uY2FzZVNlbnNpdGl2ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICByZXR1cm4gYENPTlRBSU5TKExPV0VSKCR7ZG9jVmFyfS4ke2ZpZWxkfSksIExPV0VSKCR7dmFsdWV9KSlgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgQ09OVEFJTlMoJHtkb2NWYXJ9LiR7ZmllbGR9LCAke3ZhbHVlfSlgO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBvcGVyYXRvcjogJHtmaWx0ZXJDb25kaXRpb24ub3BlcmF0b3J9YCk7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGNvbmRpdGlvbnMgPSBmaWx0ZXJzLmNvbmRpdGlvbnMubWFwKGJ1aWxkQ29uZGl0aW9uKTtcbiAgY29uc3QgbG9naWMgPSBmaWx0ZXJzLmxvZ2ljIHx8ICdBTkQnO1xuXG4gIHJldHVybiBjb25kaXRpb25zLmpvaW4oYCAke2xvZ2ljfSBgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFByZXNlbnRGaWx0ZXJHcm91cCA9IChcbiAgdmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgb3B0aW9uczoge1xuICAgIHJlYWRvbmx5IGxvZ2ljPzogJ0FORCcgfCAnT1InO1xuICAgIHJlYWRvbmx5IG9wZXJhdG9yPzogRmlsdGVyQ29uZGl0aW9uWydvcGVyYXRvciddO1xuICB9ID0ge31cbik6IEZpbHRlckdyb3VwID0+IHtcbiAgY29uc3Qge2xvZ2ljID0gJ0FORCcsIG9wZXJhdG9yID0gJz09J30gPSBvcHRpb25zO1xuXG4gIHJldHVybiB7XG4gICAgY29uZGl0aW9uczogT2JqZWN0LmVudHJpZXModmFsdWVzKVxuICAgICAgLmZpbHRlcigoWywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJylcbiAgICAgIC5tYXAoKFtmaWVsZCwgdmFsdWVdKSA9PiAoe2ZpZWxkLCBvcGVyYXRvciwgdmFsdWV9KSksXG4gICAgbG9naWNcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZFNvcnRDbGF1c2UgPSAoc29ydDogU29ydE9wdGlvbltdLCBkb2NWYXI6IHN0cmluZyA9ICdkb2MnKTogc3RyaW5nID0+IHtcbiAgaWYoIXNvcnQgfHwgc29ydC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBjb25zdCBzb3J0RmllbGRzID0gc29ydC5tYXAoKHMpID0+IHtcbiAgICBjb25zdCBmaWVsZCA9IHNhbml0aXplRmllbGROYW1lKHMuZmllbGQpO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IHMuZGlyZWN0aW9uPy50b1VwcGVyQ2FzZSgpID09PSAnREVTQycgPyAnREVTQycgOiAnQVNDJztcbiAgICByZXR1cm4gYCR7ZG9jVmFyfS4ke2ZpZWxkfSAke2RpcmVjdGlvbn1gO1xuICB9KTtcblxuICByZXR1cm4gYFNPUlQgJHtzb3J0RmllbGRzLmpvaW4oJywgJyl9YDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZExpbWl0Q2xhdXNlID0gKGxpbWl0PzogTGltaXRPcHRpb24pOiBzdHJpbmcgPT4ge1xuICBpZighbGltaXQpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBjb25zdCB7ZnJvbSA9IDAsIHRvID0gMzB9ID0gbGltaXQ7XG4gIGNvbnN0IGNvdW50ID0gdG8gLSBmcm9tO1xuXG4gIGlmKGNvdW50IDw9IDApIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBjb25zdCBtYXhDb3VudCA9IE1hdGgubWluKGNvdW50LCA1MCk7XG5cbiAgcmV0dXJuIGBMSU1JVCAke2Zyb219LCAke21heENvdW50fWA7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRGaWVsZFNlbGVjdGlvbiA9IChcbiAgZmllbGRzPzogc3RyaW5nW10sXG4gIGluY2x1ZGVDdXN0b21GaWVsZHM6IGJvb2xlYW4gPSBmYWxzZSxcbiAgZG9jVmFyOiBzdHJpbmcgPSAnZG9jJ1xuKTogc3RyaW5nID0+IHtcbiAgaWYoIWZpZWxkcyB8fCBmaWVsZHMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIGRvY1ZhcjtcbiAgfVxuXG4gIGNvbnN0IHNhbml0aXplZEZpZWxkcyA9IGZpZWxkcy5tYXAoKGYpID0+IHtcbiAgICBjb25zdCBmaWVsZCA9IHNhbml0aXplRmllbGROYW1lKGYpO1xuICAgIHJldHVybiBgJHtmaWVsZH06ICR7ZG9jVmFyfS4ke2ZpZWxkfWA7XG4gIH0pO1xuXG4gIGlmKGluY2x1ZGVDdXN0b21GaWVsZHMpIHtcbiAgICBzYW5pdGl6ZWRGaWVsZHMucHVzaChgY3VzdG9tRmllbGRzOiAke2RvY1Zhcn0uY3VzdG9tRmllbGRzYCk7XG4gIH1cblxuICByZXR1cm4gYHske3Nhbml0aXplZEZpZWxkcy5qb2luKCcsICcpfX1gO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkRnVsbFRleHRTZWFyY2ggPSAoXG4gIHNlYXJjaE9wdGlvbnM6IHtmaWVsZDogc3RyaW5nOyBxdWVyeTogc3RyaW5nOyB2aWV3Pzogc3RyaW5nfSxcbiAgZG9jVmFyOiBzdHJpbmcgPSAnZG9jJ1xuKTogc3RyaW5nID0+IHtcbiAgY29uc3Qge2ZpZWxkLCBxdWVyeSwgdmlld30gPSBzZWFyY2hPcHRpb25zO1xuICBjb25zdCBzYW5pdGl6ZWRGaWVsZCA9IHNhbml0aXplRmllbGROYW1lKGZpZWxkKTtcbiAgY29uc3QgZXNjYXBlZFF1ZXJ5ID0gcXVlcnkucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpO1xuXG4gIGlmKHZpZXcpIHtcbiAgICBzYW5pdGl6ZUNvbGxlY3Rpb25OYW1lKHZpZXcpO1xuICAgIHJldHVybiBgU0VBUkNIIEFOQUxZWkVSKCR7ZG9jVmFyfS4ke3Nhbml0aXplZEZpZWxkfSBJTiBUT0tFTlMoXCIke2VzY2FwZWRRdWVyeX1cIiwgXCJ0ZXh0X2VuXCIpLCBcInRleHRfZW5cIilgO1xuICB9XG5cbiAgcmV0dXJuIGBGSUxURVIgQ09OVEFJTlMoTE9XRVIoJHtkb2NWYXJ9LiR7c2FuaXRpemVkRmllbGR9KSwgTE9XRVIoXCIke2VzY2FwZWRRdWVyeX1cIikpYDtcbn07XG4iXSwibmFtZXMiOlsiQ09MTEVDVElPTlMiLCJFREdFUyIsIlJlYWN0aW9uVHlwZSIsImJ1aWxkRGlzdGFuY2VRdWVyeSIsImxhdCIsImxuZyIsImJ1aWxkUmVhY3Rpb25Db3VudFF1ZXJ5IiwicmVhY3Rpb25OYW1lIiwiaXRlbVZhciIsIml0ZW1UeXBlIiwiSEFTX1JFQUNUSU9OIiwiYnVpbGRVc2VyUmVhY3Rpb25RdWVyeSIsInNlc3Npb25JZCIsInZhck5hbWUiLCJQSU4iLCJjaGFyQXQiLCJ0b1VwcGVyQ2FzZSIsInNsaWNlIiwiYWN0b3JEb2NJZCIsImluY2x1ZGVzIiwiVVNFUlMiLCJidWlsZFJlYWN0aW9uc1F1ZXJ5IiwiYnVpbGRUYWdzUXVlcnkiLCJ0YWdOYW1lcyIsIm1hdGNoQ2xhdXNlIiwibGVuZ3RoIiwiSlNPTiIsInN0cmluZ2lmeSIsIklTX1RBR0dFRCIsImJ1aWxkR3JvdXBQcml2YWN5RmlsdGVyIiwiZ3JvdXBJZCIsImdyb3VwVmFyIiwiR1JPVVBTIiwiSEFTX0NPTk5FQ1RJT04iLCJidWlsZFVzZXJJbmZvUXVlcnkiLCJ1c2VySWRGaWVsZCIsImJ1aWxkTWF0Y2hlZFRhZ3NDb3VudFF1ZXJ5IiwiYnVpbGRNYXRjaGVkUmVhY3Rpb25zQ291bnRRdWVyeSIsInJlYWN0aW9uTmFtZXMiLCJidWlsZEZpbGVzUXVlcnkiLCJlZGdlVHlwZSIsIkhBU19GSUxFIiwiYnVpbGRVc2VyQ29ubmVjdGlvblF1ZXJ5IiwiZnJvbVVzZXJJZCIsInRvVXNlcklkIiwiY29ubmVjdGlvblR5cGUiLCJ0eXBlRmlsdGVyIiwic2FuaXRpemVDb2xsZWN0aW9uTmFtZSIsImNvbGxlY3Rpb24iLCJ0ZXN0IiwiRXJyb3IiLCJzYW5pdGl6ZUZpZWxkTmFtZSIsImZpZWxkIiwiYnVpbGRGaWx0ZXJDbGF1c2UiLCJmaWx0ZXJzIiwiZG9jVmFyIiwiY29uZGl0aW9ucyIsImJ1aWxkQ29uZGl0aW9uIiwiY29uZGl0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwibmVzdGVkR3JvdXAiLCJuZXN0ZWRDb25kaXRpb25zIiwibWFwIiwibmVzdGVkTG9naWMiLCJsb2dpYyIsImpvaW4iLCJmaWx0ZXJDb25kaXRpb24iLCJ2YWx1ZSIsInJlcGxhY2UiLCJvcGVyYXRvciIsImNhc2VTZW5zaXRpdmUiLCJidWlsZFByZXNlbnRGaWx0ZXJHcm91cCIsInZhbHVlcyIsIm9wdGlvbnMiLCJPYmplY3QiLCJlbnRyaWVzIiwiZmlsdGVyIiwidW5kZWZpbmVkIiwiYnVpbGRTb3J0Q2xhdXNlIiwic29ydCIsInNvcnRGaWVsZHMiLCJzIiwiZGlyZWN0aW9uIiwiYnVpbGRMaW1pdENsYXVzZSIsImxpbWl0IiwiZnJvbSIsInRvIiwiY291bnQiLCJtYXhDb3VudCIsIk1hdGgiLCJtaW4iLCJidWlsZEZpZWxkU2VsZWN0aW9uIiwiZmllbGRzIiwiaW5jbHVkZUN1c3RvbUZpZWxkcyIsInNhbml0aXplZEZpZWxkcyIsImYiLCJwdXNoIiwiYnVpbGRGdWxsVGV4dFNlYXJjaCIsInNlYXJjaE9wdGlvbnMiLCJxdWVyeSIsInZpZXciLCJzYW5pdGl6ZWRGaWVsZCIsImVzY2FwZWRRdWVyeSJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBRUQsU0FBUUEsV0FBVyxFQUFFQyxLQUFLLEVBQUVDLFlBQVksUUFBTyw4QkFBOEI7QUFNN0U7OztDQUdDLEdBRUQ7Ozs7OztDQU1DLEdBQ0QsT0FBTyxNQUFNQyxxQkFBcUIsQ0FBQ0MsS0FBYUMsTUFDOUMsQ0FBQztJQUNDLEVBQUVELElBQUk7SUFDTixFQUFFQyxJQUFJOzs7RUFHUixDQUFDLENBQUM7QUFFSjs7Ozs7O0NBTUMsR0FDRCxP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
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy91dGlscy9hcWxIZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5cbmltcG9ydCB7Q09MTEVDVElPTlMsIEVER0VTLCBSZWFjdGlvblR5cGV9IGZyb20gJy4uL2NvbnN0YW50cy9jb2xsZWN0aW9ucy5qcyc7XG5pbXBvcnQgdHlwZSB7RmlsdGVyQ29uZGl0aW9uLCBGaWx0ZXJHcm91cCwgTGltaXRPcHRpb24sIFNvcnRPcHRpb259IGZyb20gJy4uL3R5cGVzL2FyYW5nb2RiLnR5cGVzLmpzJztcblxuLy8gRXhwb3J0IHR5cGVzIGZvciB1c2UgaW4gb3RoZXIgbW9kdWxlc1xuZXhwb3J0IHR5cGUge0ZpbHRlckNvbmRpdGlvbiwgRmlsdGVyR3JvdXAsIExpbWl0T3B0aW9uLCBTb3J0T3B0aW9ufTtcblxuLyoqXG4gKiBBUUwgSGVscGVyIEZ1bmN0aW9uc1xuICogQ29tbW9uIHF1ZXJ5IGJ1aWxkaW5nIHV0aWxpdGllcyB0byByZWR1Y2UgY29kZSBkdXBsaWNhdGlvbiBhY3Jvc3MgYWN0aW9uIGZpbGVzXG4gKi9cblxuLyoqXG4gKiBCdWlsZCBkaXN0YW5jZSBjYWxjdWxhdGlvbiBBUUwgcXVlcnlcbiAqIENhbGN1bGF0ZXMgZGlzdGFuY2UgYmV0d2VlbiB0d28gZ2VvZ3JhcGhpY2FsIGNvb3JkaW5hdGVzXG4gKiBAcGFyYW0gbGF0IC0gTGF0aXR1ZGUgY29vcmRpbmF0ZVxuICogQHBhcmFtIGxuZyAtIExvbmdpdHVkZSBjb29yZGluYXRlXG4gKiBAcmV0dXJucyBBUUwgZGlzdGFuY2UgY2FsY3VsYXRpb24gc3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZERpc3RhbmNlUXVlcnkgPSAobGF0OiBudW1iZXIsIGxuZzogbnVtYmVyKTogc3RyaW5nID0+XG4gIGBMRVQgZGlzdGFuY2UgPSBESVNUQU5DRShcbiAgICAke2xhdH0sXG4gICAgJHtsbmd9LFxuICAgIE5PVF9OVUxMKHAubGF0aXR1ZGUsIDApLFxuICAgIE5PVF9OVUxMKHAubG9uZ2l0dWRlLCAwKSlcbiAgYDtcblxuLyoqXG4gKiBCdWlsZCByZWFjdGlvbiBjb3VudCBxdWVyeSBmb3IgYSBzcGVjaWZpYyByZWFjdGlvbiB0eXBlXG4gKiBAcGFyYW0gcmVhY3Rpb25OYW1lIC0gTmFtZSBvZiB0aGUgcmVhY3Rpb24gKGxpa2UsIHJzdnAsIHBpbiwgdmlldylcbiAqIEBwYXJhbSBpdGVtVmFyIC0gVmFyaWFibGUgbmFtZSBmb3IgdGhlIGl0ZW0gKGRlZmF1bHQ6ICdwJylcbiAqIEBwYXJhbSBpdGVtVHlwZSAtIFR5cGUgb2YgaXRlbSAoZGVmYXVsdDogJ3Bvc3RzJylcbiAqIEByZXR1cm5zIEFRTCByZWFjdGlvbiBjb3VudCBxdWVyeSBzdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkUmVhY3Rpb25Db3VudFF1ZXJ5ID0gKFxuICByZWFjdGlvbk5hbWU6IHN0cmluZyxcbiAgaXRlbVZhcjogc3RyaW5nID0gJ3AnLFxuICBpdGVtVHlwZTogc3RyaW5nID0gJ3Bvc3RzJ1xuKTogc3RyaW5nID0+XG4gIGBMRVQgJHtyZWFjdGlvbk5hbWV9Q291bnQgPSBGSVJTVChcbiAgICBGT1IgaXRlbSwgciBJTiBJTkJPVU5EICR7aXRlbVZhcn0uX2lkICR7RURHRVMuSEFTX1JFQUNUSU9OfVxuICAgIEZJTFRFUiByLm5hbWUgPT0gXCIke3JlYWN0aW9uTmFtZX1cIiAmJiByLnR5cGUgPT0gXCIke2l0ZW1UeXBlfVwiXG4gICAgQ09MTEVDVCBXSVRIIENPVU5UIElOVE8gY291bnRcbiAgICBSRVRVUk4gY291bnRcbiAgKWA7XG5cbi8qKlxuICogQnVpbGQgdXNlci1zcGVjaWZpYyByZWFjdGlvbiBjaGVjayBxdWVyeVxuICogQ2hlY2tzIGlmIGEgc3BlY2lmaWMgdXNlciBoYXMgcmVhY3RlZCB0byBhbiBpdGVtXG4gKiBAcGFyYW0gcmVhY3Rpb25OYW1lIC0gTmFtZSBvZiB0aGUgcmVhY3Rpb25cbiAqIEBwYXJhbSBzZXNzaW9uSWQgLSBVc2VyIHNlc3Npb24gSURcbiAqIEBwYXJhbSBpdGVtVmFyIC0gVmFyaWFibGUgbmFtZSBmb3IgdGhlIGl0ZW0gKGRlZmF1bHQ6ICdwJylcbiAqIEBwYXJhbSBpdGVtVHlwZSAtIFR5cGUgb2YgaXRlbSAoZGVmYXVsdDogJ3Bvc3RzJylcbiAqIEByZXR1cm5zIEFRTCB1c2VyIHJlYWN0aW9uIGNoZWNrIHF1ZXJ5IHN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgYnVpbGRVc2VyUmVhY3Rpb25RdWVyeSA9IChcbiAgcmVhY3Rpb25OYW1lOiBzdHJpbmcsXG4gIHNlc3Npb25JZDogc3RyaW5nLFxuICBpdGVtVmFyOiBzdHJpbmcgPSAncCcsXG4gIGl0ZW1UeXBlOiBzdHJpbmcgPSAncG9zdHMnXG4pOiBzdHJpbmcgPT4ge1xuICBjb25zdCB2YXJOYW1lID0gcmVhY3Rpb25OYW1lID09PSBSZWFjdGlvblR5cGUuUElOXG4gICAgPyAnaXNTYXZlZCdcbiAgICA6IGBoYXMke3JlYWN0aW9uTmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHJlYWN0aW9uTmFtZS5zbGljZSgxKX1gO1xuICBjb25zdCBhY3RvckRvY0lkID0gc2Vzc2lvbklkLmluY2x1ZGVzKCcvJykgPyBzZXNzaW9uSWQgOiBgJHtDT0xMRUNUSU9OUy5VU0VSU30vJHtzZXNzaW9uSWR9YDtcblxuICByZXR1cm4gYExFVCAke3Zhck5hbWV9ID0gVE9fQk9PTChGSVJTVChcbiAgICBGT1IgaXRlbSwgciBJTiBJTkJPVU5EICR7aXRlbVZhcn0uX2lkICR7RURHRVMuSEFTX1JFQUNUSU9OfVxuICAgIEZJTFRFUiByLm5hbWUgPT0gXCIke3JlYWN0aW9uTmFtZX1cIiAmJiByLnR5cGUgPT0gXCIke2l0ZW1UeXBlfVwiICYmIHIuX2Zyb20gPT0gXCIke2FjdG9yRG9jSWR9XCJcbiAgICBDT0xMRUNUIFdJVEggQ09VTlQgSU5UTyBjb3VudFxuICAgIFJFVFVSTiBjb3VudFxuICApKWA7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRSZWFjdGlvbnNRdWVyeSA9IChpdGVtVmFyOiBzdHJpbmcgPSAncCcpOiBzdHJpbmcgPT5cbiAgYExFVCByZWFjdGlvbnMgPSAoXG4gICAgRk9SIGl0ZW0sIHIgSU4gSU5CT1VORCAke2l0ZW1WYXJ9Ll9pZCAke0VER0VTLkhBU19SRUFDVElPTn1cbiAgICBDT0xMRUNUIHJlYWN0aW9uTmFtZSA9IHIudmFsdWUgSU5UTyByZWFjdGlvbkl0ZW1zXG4gICAgUkVUVVJOIHtuYW1lOiByZWFjdGlvbk5hbWUsIGNvdW50OiBMRU5HVEgocmVhY3Rpb25JdGVtc1sqXS5yLnZhbHVlKX1cbiAgKWA7XG5cblxuZXhwb3J0IGNvbnN0IGJ1aWxkVGFnc1F1ZXJ5ID0gKGl0ZW1WYXI6IHN0cmluZyA9ICdwJywgdGFnTmFtZXM/OiBzdHJpbmdbXSk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IG1hdGNoQ2xhdXNlID0gdGFnTmFtZXMgJiYgdGFnTmFtZXMubGVuZ3RoXG4gICAgPyBgTEVUIG1hdGNoZWQgPSBMRU5HVEgoJHtKU09OLnN0cmluZ2lmeSh0YWdOYW1lcyl9KSA+IDAgJiYgUE9TSVRJT04oJHtKU09OLnN0cmluZ2lmeSh0YWdOYW1lcyl9LCB0YWcubmFtZSlgXG4gICAgOiAnJztcblxuICByZXR1cm4gYExFVCB0YWdzID0gKFxuICAgIEZPUiB0YWcsIGl0IElOIDEuLjEgSU5CT1VORCAke2l0ZW1WYXJ9ICR7RURHRVMuSVNfVEFHR0VEfVxuICAgICR7bWF0Y2hDbGF1c2V9XG4gICAgU09SVCB0YWcubmFtZVxuICAgIFJFVFVSTiAke21hdGNoQ2xhdXNlID8gJ01FUkdFKHRhZywge21hdGNoZWQ6bWF0Y2hlZH0pJyA6ICd0YWcnfVxuICApYDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEdyb3VwUHJpdmFjeUZpbHRlciA9IChcbiAgZ3JvdXBJZDogc3RyaW5nLFxuICBzZXNzaW9uSWQ6IHN0cmluZyxcbiAgZ3JvdXBWYXI6IHN0cmluZyA9ICdncm91cCdcbik6IHN0cmluZyA9PlxuICBgRk9SICR7Z3JvdXBWYXJ9IElOICR7Q09MTEVDVElPTlMuR1JPVVBTfVxuICAgIEZJTFRFUiAke2dyb3VwVmFyfS5fa2V5ID09IFwiJHtncm91cElkfVwiXG4gICAgRk9SIHUsIGUgSU4gT1VUQk9VTkQgJHtncm91cFZhcn0uX2lkICR7RURHRVMuSEFTX0NPTk5FQ1RJT059XG4gICAgRklMVEVSIHUuX2tleSA9PSBcIiR7c2Vzc2lvbklkfVwiXG4gICAgTElNSVQgMWA7XG5cbmV4cG9ydCBjb25zdCBidWlsZFVzZXJJbmZvUXVlcnkgPSAodXNlcklkRmllbGQ6IHN0cmluZyA9ICdwLnVzZXJJZCcpOiBzdHJpbmcgPT5cbiAgYExFVCB1c2VyID0gRklSU1QoXG4gICAgRk9SIHUgSU4gJHtDT0xMRUNUSU9OUy5VU0VSU31cbiAgICBGSUxURVIgdS5fa2V5ID09ICR7dXNlcklkRmllbGR9XG4gICAgTElNSVQgMVxuICAgIFJFVFVSTiB1XG4gIClgO1xuXG5leHBvcnQgY29uc3QgYnVpbGRNYXRjaGVkVGFnc0NvdW50UXVlcnkgPSAodGFnTmFtZXM6IHN0cmluZ1tdKTogc3RyaW5nID0+XG4gIGBMRVQgbWF0Y2hlZFRhZ3MgPSBMRU5HVEgoXG4gICAgRk9SIHQgSU4gdGFnc1xuICAgIEZJTFRFUiB0Lm1hdGNoZWQgPT0gdHJ1ZVxuICAgIFJFVFVSTiB0XG4gIClgO1xuXG5leHBvcnQgY29uc3QgYnVpbGRNYXRjaGVkUmVhY3Rpb25zQ291bnRRdWVyeSA9IChyZWFjdGlvbk5hbWVzOiBzdHJpbmdbXSk6IHN0cmluZyA9PlxuICBgTEVUIG1hdGNoZWRSZWFjdGlvbnMgPSBMRU5HVEgoXG4gICAgRk9SIG1yIElOIHJlYWN0aW9uc1xuICAgIEZJTFRFUiBtci5tYXRjaGVkID09IHRydWVcbiAgICBSRVRVUk4gbXJcbiAgKWA7XG5cbmV4cG9ydCBjb25zdCBidWlsZEZpbGVzUXVlcnkgPSAoaXRlbVZhcjogc3RyaW5nID0gJ3AnLCBlZGdlVHlwZTogc3RyaW5nID0gRURHRVMuSEFTX0ZJTEUpOiBzdHJpbmcgPT5cbiAgYExFVCBmaWxlcyA9IChcbiAgICBGT1IgZiwgZSBJTiAxLi4xIElOQk9VTkQgJHtpdGVtVmFyfS5faWQgJHtlZGdlVHlwZX1cbiAgICBSRVRVUk4gZlxuICApYDtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkVXNlckNvbm5lY3Rpb25RdWVyeSA9IChcbiAgZnJvbVVzZXJJZDogc3RyaW5nLFxuICB0b1VzZXJJZDogc3RyaW5nLFxuICBjb25uZWN0aW9uVHlwZT86IHN0cmluZ1xuKTogc3RyaW5nID0+IHtcbiAgY29uc3QgdHlwZUZpbHRlciA9IGNvbm5lY3Rpb25UeXBlID8gYCYmIGUudHlwZSA9PSBcIiR7Y29ubmVjdGlvblR5cGV9XCJgIDogJyc7XG4gIHJldHVybiBgRk9SIHUsIGUgSU4gMS4uMSBPVVRCT1VORCBcIiR7Q09MTEVDVElPTlMuVVNFUlN9LyR7ZnJvbVVzZXJJZH1cIiAke0VER0VTLkhBU19DT05ORUNUSU9OfVxuICAgIEZJTFRFUiB1Ll9rZXkgPT0gXCIke3RvVXNlcklkfVwiICR7dHlwZUZpbHRlcn1cbiAgICBMSU1JVCAxXG4gICAgUkVUVVJOIGVgO1xufTtcblxuZXhwb3J0IGNvbnN0IHNhbml0aXplQ29sbGVjdGlvbk5hbWUgPSAoY29sbGVjdGlvbjogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgLy8gT25seSBhbGxvdyBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgdW5kZXJzY29yZXNcbiAgaWYoIS9eW2EtekEtWl9dW2EtekEtWjAtOV9dKiQvLnRlc3QoY29sbGVjdGlvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgY29sbGVjdGlvbiBuYW1lOiAke2NvbGxlY3Rpb259YCk7XG4gIH1cbiAgcmV0dXJuIGNvbGxlY3Rpb247XG59O1xuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVGaWVsZE5hbWUgPSAoZmllbGQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIC8vIEFsbG93IGFscGhhbnVtZXJpYywgdW5kZXJzY29yZXMsIGRvdHMgKGZvciBuZXN0ZWQgZmllbGRzKVxuICBpZighL15bYS16QS1aX11bYS16QS1aMC05Xy5dKiQvLnRlc3QoZmllbGQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGZpZWxkIG5hbWU6ICR7ZmllbGR9YCk7XG4gIH1cbiAgcmV0dXJuIGZpZWxkO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkRmlsdGVyQ2xhdXNlID0gKGZpbHRlcnM6IEZpbHRlckdyb3VwLCBkb2NWYXI6IHN0cmluZyA9ICdkb2MnKTogc3RyaW5nID0+IHtcbiAgaWYoIWZpbHRlcnMgfHwgIWZpbHRlcnMuY29uZGl0aW9ucyB8fCBmaWx0ZXJzLmNvbmRpdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3QgYnVpbGRDb25kaXRpb24gPSAoY29uZGl0aW9uOiBGaWx0ZXJDb25kaXRpb24gfCBGaWx0ZXJHcm91cCk6IHN0cmluZyA9PiB7XG4gICAgaWYoJ2NvbmRpdGlvbnMnIGluIGNvbmRpdGlvbiAmJiBBcnJheS5pc0FycmF5KGNvbmRpdGlvbi5jb25kaXRpb25zKSkge1xuICAgICAgY29uc3QgbmVzdGVkR3JvdXAgPSBjb25kaXRpb24gYXMgRmlsdGVyR3JvdXA7XG4gICAgICBjb25zdCBuZXN0ZWRDb25kaXRpb25zID0gbmVzdGVkR3JvdXAuY29uZGl0aW9ucy5tYXAoYnVpbGRDb25kaXRpb24pO1xuICAgICAgY29uc3QgbmVzdGVkTG9naWMgPSBuZXN0ZWRHcm91cC5sb2dpYyB8fCAnQU5EJztcbiAgICAgIHJldHVybiBgKCR7bmVzdGVkQ29uZGl0aW9ucy5qb2luKGAgJHtuZXN0ZWRMb2dpY30gYCl9KWA7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyQ29uZGl0aW9uID0gY29uZGl0aW9uIGFzIEZpbHRlckNvbmRpdGlvbjtcbiAgICBjb25zdCBmaWVsZCA9IHNhbml0aXplRmllbGROYW1lKGZpbHRlckNvbmRpdGlvbi5maWVsZCk7XG4gICAgY29uc3QgdmFsdWUgPSB0eXBlb2YgZmlsdGVyQ29uZGl0aW9uLnZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgPyBgXCIke2ZpbHRlckNvbmRpdGlvbi52YWx1ZS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJyl9XCJgXG4gICAgICA6IEpTT04uc3RyaW5naWZ5KGZpbHRlckNvbmRpdGlvbi52YWx1ZSk7XG5cbiAgICBzd2l0Y2goZmlsdGVyQ29uZGl0aW9uLm9wZXJhdG9yKSB7XG4gICAgICBjYXNlICc9PSc6XG4gICAgICAgIHJldHVybiBgJHtkb2NWYXJ9LiR7ZmllbGR9ID09ICR7dmFsdWV9YDtcbiAgICAgIGNhc2UgJyE9JzpcbiAgICAgICAgcmV0dXJuIGAke2RvY1Zhcn0uJHtmaWVsZH0gIT0gJHt2YWx1ZX1gO1xuICAgICAgY2FzZSAnPic6XG4gICAgICAgIHJldHVybiBgJHtkb2NWYXJ9LiR7ZmllbGR9ID4gJHt2YWx1ZX1gO1xuICAgICAgY2FzZSAnPj0nOlxuICAgICAgICByZXR1cm4gYCR7ZG9jVmFyfS4ke2ZpZWxkfSA+PSAke3ZhbHVlfWA7XG4gICAgICBjYXNlICc8JzpcbiAgICAgICAgcmV0dXJuIGAke2RvY1Zhcn0uJHtmaWVsZH0gPCAke3ZhbHVlfWA7XG4gICAgICBjYXNlICc8PSc6XG4gICAgICAgIHJldHVybiBgJHtkb2NWYXJ9LiR7ZmllbGR9IDw9ICR7dmFsdWV9YDtcbiAgICAgIGNhc2UgJ0lOJzpcbiAgICAgICAgcmV0dXJuIGAke2RvY1Zhcn0uJHtmaWVsZH0gSU4gJHt2YWx1ZX1gO1xuICAgICAgY2FzZSAnTk9UIElOJzpcbiAgICAgICAgcmV0dXJuIGAke2RvY1Zhcn0uJHtmaWVsZH0gTk9UIElOICR7dmFsdWV9YDtcbiAgICAgIGNhc2UgJ0xJS0UnOlxuICAgICAgICByZXR1cm4gYExJS0UoJHtkb2NWYXJ9LiR7ZmllbGR9LCAke3ZhbHVlfSwgdHJ1ZSlgO1xuICAgICAgY2FzZSAnTk9UIExJS0UnOlxuICAgICAgICByZXR1cm4gYCFMSUtFKCR7ZG9jVmFyfS4ke2ZpZWxkfSwgJHt2YWx1ZX0sIHRydWUpYDtcbiAgICAgIGNhc2UgJ0NPTlRBSU5TJzpcbiAgICAgICAgaWYoZmlsdGVyQ29uZGl0aW9uLmNhc2VTZW5zaXRpdmUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgcmV0dXJuIGBDT05UQUlOUyhMT1dFUigke2RvY1Zhcn0uJHtmaWVsZH0pLCBMT1dFUigke3ZhbHVlfSkpYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYENPTlRBSU5TKCR7ZG9jVmFyfS4ke2ZpZWxkfSwgJHt2YWx1ZX0pYDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgb3BlcmF0b3I6ICR7ZmlsdGVyQ29uZGl0aW9uLm9wZXJhdG9yfWApO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBjb25kaXRpb25zID0gZmlsdGVycy5jb25kaXRpb25zLm1hcChidWlsZENvbmRpdGlvbik7XG4gIGNvbnN0IGxvZ2ljID0gZmlsdGVycy5sb2dpYyB8fCAnQU5EJztcblxuICByZXR1cm4gY29uZGl0aW9ucy5qb2luKGAgJHtsb2dpY30gYCk7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRQcmVzZW50RmlsdGVyR3JvdXAgPSAoXG4gIHZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIG9wdGlvbnM6IHtcbiAgICByZWFkb25seSBsb2dpYz86ICdBTkQnIHwgJ09SJztcbiAgICByZWFkb25seSBvcGVyYXRvcj86IEZpbHRlckNvbmRpdGlvblsnb3BlcmF0b3InXTtcbiAgfSA9IHt9XG4pOiBGaWx0ZXJHcm91cCA9PiB7XG4gIGNvbnN0IHtsb2dpYyA9ICdBTkQnLCBvcGVyYXRvciA9ICc9PSd9ID0gb3B0aW9ucztcblxuICByZXR1cm4ge1xuICAgIGNvbmRpdGlvbnM6IE9iamVjdC5lbnRyaWVzKHZhbHVlcylcbiAgICAgIC5maWx0ZXIoKFssIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpXG4gICAgICAubWFwKChbZmllbGQsIHZhbHVlXSkgPT4gKHtmaWVsZCwgb3BlcmF0b3IsIHZhbHVlfSkpLFxuICAgIGxvZ2ljXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRTb3J0Q2xhdXNlID0gKHNvcnQ6IFNvcnRPcHRpb25bXSwgZG9jVmFyOiBzdHJpbmcgPSAnZG9jJyk6IHN0cmluZyA9PiB7XG4gIGlmKCFzb3J0IHx8IHNvcnQubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3Qgc29ydEZpZWxkcyA9IHNvcnQubWFwKChzKSA9PiB7XG4gICAgY29uc3QgZmllbGQgPSBzYW5pdGl6ZUZpZWxkTmFtZShzLmZpZWxkKTtcbiAgICBjb25zdCBkaXJlY3Rpb24gPSBzLmRpcmVjdGlvbj8udG9VcHBlckNhc2UoKSA9PT0gJ0RFU0MnID8gJ0RFU0MnIDogJ0FTQyc7XG4gICAgcmV0dXJuIGAke2RvY1Zhcn0uJHtmaWVsZH0gJHtkaXJlY3Rpb259YDtcbiAgfSk7XG5cbiAgcmV0dXJuIGBTT1JUICR7c29ydEZpZWxkcy5qb2luKCcsICcpfWA7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRMaW1pdENsYXVzZSA9IChsaW1pdD86IExpbWl0T3B0aW9uKTogc3RyaW5nID0+IHtcbiAgaWYoIWxpbWl0KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3Qge2Zyb20gPSAwLCB0byA9IDMwfSA9IGxpbWl0O1xuICBjb25zdCBjb3VudCA9IHRvIC0gZnJvbTtcblxuICBpZihjb3VudCA8PSAwKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgY29uc3QgbWF4Q291bnQgPSBNYXRoLm1pbihjb3VudCwgNTApO1xuXG4gIHJldHVybiBgTElNSVQgJHtmcm9tfSwgJHttYXhDb3VudH1gO1xufTtcblxuZXhwb3J0IGNvbnN0IGJ1aWxkRmllbGRTZWxlY3Rpb24gPSAoXG4gIGZpZWxkcz86IHN0cmluZ1tdLFxuICBpbmNsdWRlQ3VzdG9tRmllbGRzOiBib29sZWFuID0gZmFsc2UsXG4gIGRvY1Zhcjogc3RyaW5nID0gJ2RvYydcbik6IHN0cmluZyA9PiB7XG4gIGlmKCFmaWVsZHMgfHwgZmllbGRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBkb2NWYXI7XG4gIH1cblxuICBjb25zdCBzYW5pdGl6ZWRGaWVsZHMgPSBmaWVsZHMubWFwKChmKSA9PiB7XG4gICAgY29uc3QgZmllbGQgPSBzYW5pdGl6ZUZpZWxkTmFtZShmKTtcbiAgICByZXR1cm4gYCR7ZmllbGR9OiAke2RvY1Zhcn0uJHtmaWVsZH1gO1xuICB9KTtcblxuICBpZihpbmNsdWRlQ3VzdG9tRmllbGRzKSB7XG4gICAgc2FuaXRpemVkRmllbGRzLnB1c2goYGN1c3RvbUZpZWxkczogJHtkb2NWYXJ9LmN1c3RvbUZpZWxkc2ApO1xuICB9XG5cbiAgcmV0dXJuIGB7JHtzYW5pdGl6ZWRGaWVsZHMuam9pbignLCAnKX19YDtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEZ1bGxUZXh0U2VhcmNoID0gKFxuICBzZWFyY2hPcHRpb25zOiB7ZmllbGQ6IHN0cmluZzsgcXVlcnk6IHN0cmluZzsgdmlldz86IHN0cmluZ30sXG4gIGRvY1Zhcjogc3RyaW5nID0gJ2RvYydcbik6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHtmaWVsZCwgcXVlcnksIHZpZXd9ID0gc2VhcmNoT3B0aW9ucztcbiAgY29uc3Qgc2FuaXRpemVkRmllbGQgPSBzYW5pdGl6ZUZpZWxkTmFtZShmaWVsZCk7XG4gIGNvbnN0IGVzY2FwZWRRdWVyeSA9IHF1ZXJ5LnJlcGxhY2UoL1wiL2csICdcXFxcXCInKTtcblxuICBpZih2aWV3KSB7XG4gICAgc2FuaXRpemVDb2xsZWN0aW9uTmFtZSh2aWV3KTtcbiAgICByZXR1cm4gYFNFQVJDSCBBTkFMWVpFUigke2RvY1Zhcn0uJHtzYW5pdGl6ZWRGaWVsZH0gSU4gVE9LRU5TKFwiJHtlc2NhcGVkUXVlcnl9XCIsIFwidGV4dF9lblwiKSwgXCJ0ZXh0X2VuXCIpYDtcbiAgfVxuXG4gIHJldHVybiBgRklMVEVSIENPTlRBSU5TKExPV0VSKCR7ZG9jVmFyfS4ke3Nhbml0aXplZEZpZWxkfSksIExPV0VSKFwiJHtlc2NhcGVkUXVlcnl9XCIpKWA7XG59O1xuIl0sIm5hbWVzIjpbIkNPTExFQ1RJT05TIiwiRURHRVMiLCJSZWFjdGlvblR5cGUiLCJidWlsZERpc3RhbmNlUXVlcnkiLCJsYXQiLCJsbmciLCJidWlsZFJlYWN0aW9uQ291bnRRdWVyeSIsInJlYWN0aW9uTmFtZSIsIml0ZW1WYXIiLCJpdGVtVHlwZSIsIkhBU19SRUFDVElPTiIsImJ1aWxkVXNlclJlYWN0aW9uUXVlcnkiLCJzZXNzaW9uSWQiLCJ2YXJOYW1lIiwiUElOIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImFjdG9yRG9jSWQiLCJpbmNsdWRlcyIsIlVTRVJTIiwiYnVpbGRSZWFjdGlvbnNRdWVyeSIsImJ1aWxkVGFnc1F1ZXJ5IiwidGFnTmFtZXMiLCJtYXRjaENsYXVzZSIsImxlbmd0aCIsIkpTT04iLCJzdHJpbmdpZnkiLCJJU19UQUdHRUQiLCJidWlsZEdyb3VwUHJpdmFjeUZpbHRlciIsImdyb3VwSWQiLCJncm91cFZhciIsIkdST1VQUyIsIkhBU19DT05ORUNUSU9OIiwiYnVpbGRVc2VySW5mb1F1ZXJ5IiwidXNlcklkRmllbGQiLCJidWlsZE1hdGNoZWRUYWdzQ291bnRRdWVyeSIsImJ1aWxkTWF0Y2hlZFJlYWN0aW9uc0NvdW50UXVlcnkiLCJyZWFjdGlvbk5hbWVzIiwiYnVpbGRGaWxlc1F1ZXJ5IiwiZWRnZVR5cGUiLCJIQVNfRklMRSIsImJ1aWxkVXNlckNvbm5lY3Rpb25RdWVyeSIsImZyb21Vc2VySWQiLCJ0b1VzZXJJZCIsImNvbm5lY3Rpb25UeXBlIiwidHlwZUZpbHRlciIsInNhbml0aXplQ29sbGVjdGlvbk5hbWUiLCJjb2xsZWN0aW9uIiwidGVzdCIsIkVycm9yIiwic2FuaXRpemVGaWVsZE5hbWUiLCJmaWVsZCIsImJ1aWxkRmlsdGVyQ2xhdXNlIiwiZmlsdGVycyIsImRvY1ZhciIsImNvbmRpdGlvbnMiLCJidWlsZENvbmRpdGlvbiIsImNvbmRpdGlvbiIsIkFycmF5IiwiaXNBcnJheSIsIm5lc3RlZEdyb3VwIiwibmVzdGVkQ29uZGl0aW9ucyIsIm1hcCIsIm5lc3RlZExvZ2ljIiwibG9naWMiLCJqb2luIiwiZmlsdGVyQ29uZGl0aW9uIiwidmFsdWUiLCJyZXBsYWNlIiwib3BlcmF0b3IiLCJjYXNlU2Vuc2l0aXZlIiwiYnVpbGRQcmVzZW50RmlsdGVyR3JvdXAiLCJ2YWx1ZXMiLCJvcHRpb25zIiwiT2JqZWN0IiwiZW50cmllcyIsImZpbHRlciIsInVuZGVmaW5lZCIsImJ1aWxkU29ydENsYXVzZSIsInNvcnQiLCJzb3J0RmllbGRzIiwicyIsImRpcmVjdGlvbiIsImJ1aWxkTGltaXRDbGF1c2UiLCJsaW1pdCIsImZyb20iLCJ0byIsImNvdW50IiwibWF4Q291bnQiLCJNYXRoIiwibWluIiwiYnVpbGRGaWVsZFNlbGVjdGlvbiIsImZpZWxkcyIsImluY2x1ZGVDdXN0b21GaWVsZHMiLCJzYW5pdGl6ZWRGaWVsZHMiLCJmIiwicHVzaCIsImJ1aWxkRnVsbFRleHRTZWFyY2giLCJzZWFyY2hPcHRpb25zIiwicXVlcnkiLCJ2aWV3Iiwic2FuaXRpemVkRmllbGQiLCJlc2NhcGVkUXVlcnkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUVELFNBQVFBLFdBQVcsRUFBRUMsS0FBSyxFQUFFQyxZQUFZLFFBQU8sOEJBQThCO0FBTTdFOzs7Q0FHQyxHQUVEOzs7Ozs7Q0FNQyxHQUNELE9BQU8sTUFBTUMscUJBQXFCLENBQUNDLEtBQWFDLE1BQzlDLENBQUM7SUFDQyxFQUFFRCxJQUFJO0lBQ04sRUFBRUMsSUFBSTs7O0VBR1IsQ0FBQyxDQUFDO0FBRUo7Ozs7OztDQU1DLEdB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
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/
|
|
5
5
|
import { Database } from 'arangojs';
|
|
6
6
|
import type { ArangoDbCollection, ArangoDbLimit } from '../types/arangodb.types.js';
|
|
7
7
|
export declare const useDb: (databaseName?: string) => Database;
|
|
8
8
|
export declare const collectionDetails: {
|
|
9
|
+
analytics: {
|
|
10
|
+
collection: string;
|
|
11
|
+
key: string;
|
|
12
|
+
};
|
|
9
13
|
apps: {
|
|
10
14
|
collection: string;
|
|
11
15
|
key: string;
|
|
@@ -18,6 +22,10 @@ export declare const collectionDetails: {
|
|
|
18
22
|
collection: string;
|
|
19
23
|
key: string;
|
|
20
24
|
};
|
|
25
|
+
flags: {
|
|
26
|
+
collection: string;
|
|
27
|
+
key: string;
|
|
28
|
+
};
|
|
21
29
|
groups: {
|
|
22
30
|
collection: string;
|
|
23
31
|
key: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/ import { Database } from 'arangojs';
|
|
5
5
|
import graphqlFields from 'graphql-fields';
|
|
6
6
|
import { Config } from '../config.js';
|
|
@@ -18,6 +18,10 @@ export const useDb = (databaseName)=>{
|
|
|
18
18
|
});
|
|
19
19
|
};
|
|
20
20
|
export const collectionDetails = {
|
|
21
|
+
analytics: {
|
|
22
|
+
collection: 'analytics',
|
|
23
|
+
key: 'analyticsId'
|
|
24
|
+
},
|
|
21
25
|
apps: {
|
|
22
26
|
collection: 'apps',
|
|
23
27
|
key: 'appId'
|
|
@@ -30,6 +34,10 @@ export const collectionDetails = {
|
|
|
30
34
|
collection: 'files',
|
|
31
35
|
key: 'fileId'
|
|
32
36
|
},
|
|
37
|
+
flags: {
|
|
38
|
+
collection: 'flags',
|
|
39
|
+
key: 'key'
|
|
40
|
+
},
|
|
33
41
|
groups: {
|
|
34
42
|
collection: 'groups',
|
|
35
43
|
key: 'groupId'
|
|
@@ -127,4 +135,4 @@ export const getGqlFields = (info)=>{
|
|
|
127
135
|
return [];
|
|
128
136
|
};
|
|
129
137
|
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy91dGlscy9hcmFuZ29kYlV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQge0RhdGFiYXNlfSBmcm9tICdhcmFuZ29qcyc7XG5pbXBvcnQgZ3JhcGhxbEZpZWxkcyBmcm9tICdncmFwaHFsLWZpZWxkcyc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuXG5pbXBvcnQge3BhcnNlTnVtfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9udW1iZXJzJztcbmltcG9ydCB7cGFyc2VBcmFuZ29JZCwgcGFyc2VJZH0gZnJvbSAnQG5sYWJzL3V0aWxzL3BhcnNlcnMvc3RyaW5ncyc7XG5pbXBvcnQgdHlwZSB7QXJhbmdvRGJDb2xsZWN0aW9uLCBBcmFuZ29EYkxpbWl0fSBmcm9tICcuLi90eXBlcy9hcmFuZ29kYi50eXBlcy5qcyc7XG5cbmV4cG9ydCBjb25zdCB1c2VEYiA9IChkYXRhYmFzZU5hbWU/OiBzdHJpbmcpOiBEYXRhYmFzZSA9PiB7XG4gIGNvbnN0IGFyYW5nb0NvbmZpZyA9IENvbmZpZy5nZXQoJ2FyYW5nb2RiJyk7XG5cbiAgcmV0dXJuIG5ldyBEYXRhYmFzZSh7XG4gICAgYXV0aDoge1xuICAgICAgcGFzc3dvcmQ6IGFyYW5nb0NvbmZpZy5wYXNzd29yZCxcbiAgICAgIHVzZXJuYW1lOiBhcmFuZ29Db25maWcudXNlcm5hbWVcbiAgICB9LFxuICAgIGRhdGFiYXNlTmFtZTogZGF0YWJhc2VOYW1lIHx8IGFyYW5nb0NvbmZpZy5kYXRhYmFzZSB8fCAncmVha3RvcicsXG4gICAgdXJsOiBgJHthcmFuZ29Db25maWcudXJsfToke2FyYW5nb0NvbmZpZy5wb3J0fWBcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgY29sbGVjdGlvbkRldGFpbHMgPSB7XG4gIGFuYWx5dGljczoge1xuICAgIGNvbGxlY3Rpb246ICdhbmFseXRpY3MnLFxuICAgIGtleTogJ2FuYWx5dGljc0lkJ1xuICB9LFxuICBhcHBzOiB7XG4gICAgY29sbGVjdGlvbjogJ2FwcHMnLFxuICAgIGtleTogJ2FwcElkJ1xuICB9LFxuICBjb252ZXJzYXRpb25zOiB7XG4gICAgY29sbGVjdGlvbjogJ2NvbnZlcnNhdGlvbnMnLFxuICAgIGtleTogJ2NvbnZlcnNhdGlvbklkJ1xuICB9LFxuICBmaWxlczoge1xuICAgIGNvbGxlY3Rpb246ICdmaWxlcycsXG4gICAga2V5OiAnZmlsZUlkJ1xuICB9LFxuICBmbGFnczoge1xuICAgIGNvbGxlY3Rpb246ICdmbGFncycsXG4gICAga2V5OiAna2V5J1xuICB9LFxuICBncm91cHM6IHtcbiAgICBjb2xsZWN0aW9uOiAnZ3JvdXBzJyxcbiAgICBrZXk6ICdncm91cElkJ1xuICB9LFxuICBpbWFnZXM6IHtcbiAgICBjb2xsZWN0aW9uOiAnaW1hZ2VzJyxcbiAgICBrZXk6ICdpbWFnZUlkJ1xuICB9LFxuICBsb2NhdGlvbnM6IHtcbiAgICBjb2xsZWN0aW9uOiAnbG9jYXRpb25zJyxcbiAgICBrZXk6ICdsb2NhdGlvbklkJ1xuICB9LFxuICBtZXNzYWdlczoge1xuICAgIGNvbGxlY3Rpb246ICdtZXNzYWdlcycsXG4gICAga2V5OiAnbWVzc2FnZUlkJ1xuICB9LFxuICBub3RpZmljYXRpb25zOiB7XG4gICAgY29sbGVjdGlvbjogJ25vdGlmaWNhdGlvbnMnLFxuICAgIGtleTogJ25vdGlmaWNhdGlvbklkJ1xuICB9LFxuICBwYXltZW50czoge1xuICAgIGNvbGxlY3Rpb246ICdwYXltZW50cycsXG4gICAga2V5OiAncGF5bWVudElkJ1xuICB9LFxuICBwb3N0czoge1xuICAgIGNvbGxlY3Rpb246ICdwb3N0cycsXG4gICAga2V5OiAncG9zdElkJ1xuICB9LFxuICByZWFjdGlvbnM6IHtcbiAgICBjb2xsZWN0aW9uOiAncmVhY3Rpb25zJyxcbiAgICBrZXk6ICdyZWFjdGlvbklkJ1xuICB9LFxuICBzdWJzY3JpcHRpb25zOiB7XG4gICAgY29sbGVjdGlvbjogJ3N1YnNjcmlwdGlvbnMnLFxuICAgIGtleTogJ3N1YnNjcmlwdGlvbklkJ1xuICB9LFxuICB0YWdzOiB7XG4gICAgY29sbGVjdGlvbjogJ3RhZ3MnLFxuICAgIGtleTogJ3RhZ0lkJ1xuICB9LFxuICB1c2Vyczoge1xuICAgIGNvbGxlY3Rpb246ICd1c2VycycsXG4gICAga2V5OiAndXNlcklkJ1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RG9jSWQgPSAoY29sbGVjdGlvbjogQXJhbmdvRGJDb2xsZWN0aW9uLCBpdGVtKTogc3RyaW5nID0+IHtcbiAgY29uc3Qge19pZCwgX2tleSwgaWR9ID0gaXRlbTtcbiAgY29uc3QgaXRlbUlkID0gcGFyc2VBcmFuZ29JZChfaWQgfHwgaWQpO1xuXG4gIGlmKGl0ZW1JZCkge1xuICAgIGNvbnN0IGlkUGFydHMgPSBpdGVtSWQuc3BsaXQoJy8nKTtcblxuICAgIGlmKGNvbGxlY3Rpb25EZXRhaWxzW2lkUGFydHNbMF1dKSB7XG4gICAgICByZXR1cm4gaXRlbUlkO1xuICAgIH1cbiAgfVxuXG4gIGxldCBpdGVtS2V5ID0gcGFyc2VJZChfa2V5KTtcblxuICBpZighaXRlbUtleSkge1xuICAgIGl0ZW1LZXkgPSBpdGVtW2NvbGxlY3Rpb25EZXRhaWxzW2NvbGxlY3Rpb25dLmtleV07XG4gIH1cblxuICByZXR1cm4gaXRlbUtleSA/IGAke2NvbGxlY3Rpb259LyR7aXRlbUtleX1gIDogJyc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TGltaXQgPSAoc3RhcnQ6IG51bWJlciA9IDAsIHRvOiBudW1iZXIgPSAzMCk6IEFyYW5nb0RiTGltaXQgPT4ge1xuICBsZXQgbnVtID0gcGFyc2VOdW0odG8pIC0gcGFyc2VOdW0oc3RhcnQpO1xuXG4gIGlmKG51bSA+IDUwKSB7XG4gICAgbnVtID0gNTA7XG4gIH1cblxuICByZXR1cm4ge2FxbDogdG8gPj0gMCA/IGBMSU1JVCAke3N0YXJ0fSwgJHtudW19YCA6ICcnLCBudW0sIHN0YXJ0fTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RSZWFjdGlvbkNvdW50QnlUeXBlID0gKG9iamVjdFR5cGU6IHN0cmluZywgb2JqZWN0S2V5OiBzdHJpbmcsIGZpZWxkOiBzdHJpbmcsIHNlbGVjdHMpID0+IHtcbiAgY29uc3QgcmVhY3Rpb25UeXBlID0gZmllbGQuc3Vic3RyaW5nKDAsIGZpZWxkLmluZGV4T2YoJ0NvdW50JykpO1xuICBzZWxlY3RzLnF1ZXJpZXMucHVzaChgTEVUICR7ZmllbGR9ID0gRklSU1QoXG4gICAgICBGT1Igb2JqLCByIElOIElOQk9VTkQgJHtvYmplY3RLZXl9Ll9pZCBoYXNSZWFjdGlvblxuICAgICAgRklMVEVSIHIubmFtZSA9PSBcIiR7cmVhY3Rpb25UeXBlfVwiICYmIHIudHlwZSA9PSBcIiR7b2JqZWN0VHlwZX1cIlxuICAgICAgQ09MTEVDVCBXSVRIIENPVU5UIElOVE8gY291bnRcbiAgICAgIFJFVFVSTiBjb3VudFxuICAgIClgKTtcbiAgc2VsZWN0cy5vYmplY3RzLnB1c2goYCR7ZmllbGR9OiR7ZmllbGR9YCk7XG4gIHJldHVybiBzZWxlY3RzO1xufTtcblxuZXhwb3J0IGNvbnN0IHNvcnRJZHMgPSAoaWRzOiBzdHJpbmdbXSwgc29ydDogc3RyaW5nID0gJ0FTQycpOiBzdHJpbmdbXSA9PiBpZHMuc29ydCgoYSwgYikgPT4ge1xuICBpZihzb3J0LnRvVXBwZXJDYXNlKCkgPT09ICdBU0MnKSB7XG4gICAgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiKTtcbiAgfVxuXG4gIHJldHVybiBiLmxvY2FsZUNvbXBhcmUoYSk7XG59KTtcblxuZXhwb3J0IGNvbnN0IGdldEdxbEZpZWxkcyA9IChpbmZvKSA9PiB7XG4gIGNvbnN0IGZpZWxkcyA9IGdyYXBocWxGaWVsZHMoaW5mbykgfHwge307XG4gIGNvbnN0IG1ldGhvZE5hbWUgPSBPYmplY3Qua2V5cyhmaWVsZHMpWzBdO1xuXG4gIGlmKG1ldGhvZE5hbWUpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZmllbGRzW21ldGhvZE5hbWVdKTtcbiAgfVxuXG4gIHJldHVybiBbXTtcbn07XG4iXSwibmFtZXMiOlsiRGF0YWJhc2UiLCJncmFwaHFsRmllbGRzIiwiQ29uZmlnIiwicGFyc2VOdW0iLCJwYXJzZUFyYW5nb0lkIiwicGFyc2VJZCIsInVzZURiIiwiZGF0YWJhc2VOYW1lIiwiYXJhbmdvQ29uZmlnIiwiZ2V0IiwiYXV0aCIsInBhc3N3b3JkIiwidXNlcm5hbWUiLCJkYXRhYmFzZSIsInVybCIsInBvcnQiLCJjb2xsZWN0aW9uRGV0YWlscyIsImFuYWx5dGljcyIsImNvbGxlY3Rpb24iLCJrZXkiLCJhcHBzIiwiY29udmVyc2F0aW9ucyIsImZpbGVzIiwiZmxhZ3MiLCJncm91cHMiLCJpbWFnZXMiLCJsb2NhdGlvbnMiLCJtZXNzYWdlcyIsIm5vdGlmaWNhdGlvbnMiLCJwYXltZW50cyIsInBvc3RzIiwicmVhY3Rpb25zIiwic3Vic2NyaXB0aW9ucyIsInRhZ3MiLCJ1c2VycyIsImdldERvY0lkIiwiaXRlbSIsIl9pZCIsIl9rZXkiLCJpZCIsIml0ZW1JZCIsImlkUGFydHMiLCJzcGxpdCIsIml0ZW1LZXkiLCJnZXRMaW1pdCIsInN0YXJ0IiwidG8iLCJudW0iLCJhcWwiLCJzZWxlY3RSZWFjdGlvbkNvdW50QnlUeXBlIiwib2JqZWN0VHlwZSIsIm9iamVjdEtleSIsImZpZWxkIiwic2VsZWN0cyIsInJlYWN0aW9uVHlwZSIsInN1YnN0cmluZyIsImluZGV4T2YiLCJxdWVyaWVzIiwicHVzaCIsIm9iamVjdHMiLCJzb3J0SWRzIiwiaWRzIiwic29ydCIsImEiLCJiIiwidG9VcHBlckNhc2UiLCJsb2NhbGVDb21wYXJlIiwiZ2V0R3FsRmllbGRzIiwi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
|
package/lib/utils/authUtils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/ import { getSession, isAdminUser } from './sessionUtils.js';
|
|
5
5
|
export const getLambdaData = (data)=>{
|
|
6
6
|
if (typeof data === 'string') {
|
|
@@ -55,4 +55,4 @@ export const createContext = async (context, event)=>{
|
|
|
55
55
|
}
|
|
56
56
|
};
|
|
57
57
|
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy91dGlscy9hdXRoVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIGlzIHN1YmplY3QgdG8gdGhlIGFjY29tcGFueWluZyBjb21tZXJjaWFsIExJQ0VOU0UuXG4gKi9cbmltcG9ydCB7Z2V0U2Vzc2lvbiwgaXNBZG1pblVzZXJ9IGZyb20gJy4vc2Vzc2lvblV0aWxzLmpzJztcblxuaW1wb3J0IHR5cGUge0FwcFN0YWdlfSBmcm9tICcuLi90eXBlcy9hcHBzLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtTZXNzaW9ufSBmcm9tICcuL3Nlc3Npb25VdGlscy5qcyc7XG5cbmV4cG9ydCB0eXBlIExhbWJkYURhdGFDb250ZXh0ID0ge2FjY291bnRJZDogJ2FjY291bnRJZCcsXG4gIHJlYWRvbmx5IHJlcXVlc3RJZDogc3RyaW5nLFxuICByZWFkb25seSByZXF1ZXN0VGltZUVwb2NoOiBudW1iZXIsXG4gIHJlYWRvbmx5IHJlc291cmNlSWQ6IHN0cmluZyxcbiAgcmVhZG9ubHkgcmVzb3VyY2VQYXRoOiBzdHJpbmcsXG4gIHJlYWRvbmx5IHN0YWdlOiBBcHBTdGFnZVxufTtcblxuZXhwb3J0IHR5cGUgTGFtYmRhRGF0YSA9IHtcbiAgcmVhZG9ubHkgYm9keT86IHN0cmluZyB8IG9iamVjdDtcbiAgcmVhZG9ubHkgJ2JvZHktanNvbic/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbnRleHQ/OiBMYW1iZGFEYXRhQ29udGV4dDtcbiAgcmVhZG9ubHkgcmVxdWVzdENvbnRleHQ/OiBvYmplY3Q7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TGFtYmRhRGF0YSA9IChkYXRhOiBMYW1iZGFEYXRhIHwgc3RyaW5nKSA9PiB7XG4gIGlmKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB7XG4gICAgICBib2R5OiBwYXJzZUpzb25EYXRhKGRhdGEpLFxuICAgICAgY29udGV4dDoge31cbiAgICB9O1xuICB9XG5cbiAgY29uc3Qge2JvZHksICdib2R5LWpzb24nOiBib2R5SnNvbiwgcmVxdWVzdENvbnRleHR9ID0gZGF0YSBhcyBMYW1iZGFEYXRhO1xuICBjb25zdCBxdWVyeURhdGEgPSBib2R5IHx8IGJvZHlKc29uO1xuXG4gIHJldHVybiB7XG4gICAgYm9keTogcGFyc2VKc29uRGF0YShxdWVyeURhdGEpLFxuICAgIGNvbnRleHQ6IHJlcXVlc3RDb250ZXh0ID8gey4uLnJlcXVlc3RDb250ZXh0fSA6IHt9XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VKc29uRGF0YSA9IChkYXRhKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGlzQXV0aGVudGljYXRlZCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQ/OiBzdHJpbmcpID0+IHtcbiAgY29uc3Qge3Nlc3Npb259ID0gY29udGV4dDtcbiAgY29uc3Qge3VzZXJJZDogc2Vzc2lvblVzZXJJZH0gPSBzZXNzaW9uIHx8IHt9O1xuICBjb25zdCBpc0FkbWluID0gaXNBZG1pblVzZXIoc2Vzc2lvbik7XG5cbiAgaWYoIWlzQWRtaW4gJiYgIXVzZXJJZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBpc0FkbWluIHx8IHNlc3Npb25Vc2VySWQgPT09IHVzZXJJZDtcbn07XG5cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNvbnRleHQgPSBhc3luYyAoY29udGV4dDogQXBpQ29udGV4dCwgZXZlbnQpOiBQcm9taXNlPEFwaUNvbnRleHQ+ID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBhdXRoSGVhZGVyID0gZXZlbnQuaGVhZGVycz8uQXV0aG9yaXphdGlvbiB8fCBldmVudC5oZWFkZXJzPy5hdXRob3JpemF0aW9uO1xuICAgIGNvbnN0IHRva2VuID0gYXV0aEhlYWRlcj8ucmVwbGFjZSgnQmVhcmVyICcsICcnKTtcblxuICAgIGlmKCF0b2tlbikge1xuICAgICAgcmV0dXJuIGNvbnRleHQ7XG4gICAgfVxuXG4gICAgY29uc3Qgc2Vzc2lvbjogU2Vzc2lvbiA9IGdldFNlc3Npb24odG9rZW4pO1xuXG4gICAgaWYoc2Vzc2lvbj8udXNlcklkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICBzZXNzaW9uXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9IGNhdGNoKGVycm9yKSB7XG4gICAgY29uc29sZS5lcnJvcignQXV0aCBlcnJvcjonLCBlcnJvcik7XG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH1cbn07XG4iXSwibmFtZXMiOlsiZ2V0U2Vzc2lvbiIsImlzQWRtaW5Vc2VyIiwiZ2V0TGFtYmRhRGF0YSIsImRhdGEiLCJib2R5IiwicGFyc2VKc29uRGF0YSIsImNvbnRleHQiLCJib2R5SnNvbiIsInJlcXVlc3RDb250ZXh0IiwicXVlcnlEYXRhIiwiSlNPTiIsInBhcnNlIiwiZXJyb3IiLCJpc0F1dGhlbnRpY2F0ZWQiLCJ1c2VySWQiLCJzZXNzaW9uIiwic2Vzc2lvblVzZXJJZCIsImlzQWRtaW4iLCJjcmVhdGVDb250ZXh0IiwiZXZlbnQiLCJhdXRoSGVhZGVyIiwiaGVhZGVycyIsIkF1dGhvcml6YXRpb24iLCJhdXRob3JpemF0aW9uIiwidG9rZW4iLCJyZXBsYWNlIiwiY29uc29sZSJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsU0FBUUEsVUFBVSxFQUFFQyxXQUFXLFFBQU8sb0JBQW9CO0FBcUIxRCxPQUFPLE1BQU1DLGdCQUFnQixDQUFDQztJQUM1QixJQUFHLE9BQU9BLFNBQVMsVUFBVTtRQUMzQixPQUFPO1lBQ0xDLE1BQU1DLGNBQWNGO1lBQ3BCRyxTQUFTLENBQUM7UUFDWjtJQUNGO0lBRUEsTUFBTSxFQUFDRixJQUFJLEVBQUUsYUFBYUcsUUFBUSxFQUFFQyxjQUFjLEVBQUMsR0FBR0w7SUFDdEQsTUFBTU0sWUFBWUwsUUFBUUc7SUFFMUIsT0FBTztRQUNMSCxNQUFNQyxjQUFjSTtRQUNwQkgsU0FBU0UsaUJBQWlCO1lBQUMsR0FBR0EsY0FBYztRQUFBLElBQUksQ0FBQztJQUNuRDtBQUNGLEVBQUU7QUFFRixPQUFPLE1BQU1ILGdCQUFnQixDQUFDRjtJQUM1QixJQUFJO1FBQ0YsT0FBT08sS0FBS0MsS0FBSyxDQUFDUjtJQUNwQixFQUFFLE9BQU1TLE9BQU87UUFDYixPQUFPVDtJQUNUO0FBQ0YsRUFBRTtBQUVGLE9BQU8sTUFBTVUsa0JBQWtCLENBQUNQLFNBQXFCUTtJQUNuRCxNQUFNLEVBQUNDLE9BQU8sRUFBQyxHQUFHVDtJQUNsQixNQUFNLEVBQUNRLFFBQVFFLGFBQWEsRUFBQyxHQUFHRCxXQUFXLENBQUM7SUFDNUMsTUFBTUUsVUFBVWhCLFlBQVljO0lBRTVCLElBQUcsQ0FBQ0UsV0FBVyxDQUFDSCxRQUFRO1FBQ3RCLE9BQU87SUFDVDtJQUVBLE9BQU9HLFdBQVdELGtCQUFrQkY7QUFDdEMsRUFBRTtBQUdGLE9BQU8sTUFBTUksZ0JBQWdCLE9BQU9aLFNBQXFCYTtJQUN2RCxJQUFJO1FBQ0YsTUFBTUMsYUFBYUQsTUFBTUUsT0FBTyxFQUFFQyxpQkFBaUJILE1BQU1FLE9BQU8sRUFBRUU7UUFDbEUsTUFBTUMsUUFBUUosWUFBWUssUUFBUSxXQUFXO1FBRTdDLElBQUcsQ0FBQ0QsT0FBTztZQUNULE9BQU9sQjtRQUNUO1FBRUEsTUFBTVMsVUFBbUJmLFdBQVd3QjtRQUVwQyxJQUFHVCxTQUFTRCxRQUFRO1lBQ2xCLE9BQU87Z0JBQ0wsR0FBR1IsT0FBTztnQkFDVlM7WUFDRjtRQUNGO1FBRUEsT0FBT1Q7SUFDVCxFQUFFLE9BQU1NLE9BQU87UUFDYmMsUUFBUWQsS0FBSyxDQUFDLGVBQWVBO1FBQzdCLE9BQU9OO0lBQ1Q7QUFDRixFQUFFIn0=
|
package/lib/utils/awsUtils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/ import { Config } from '../config.js';
|
|
5
5
|
export const getAwsCredentials = ()=>{
|
|
6
6
|
const credentials = Config.get('aws.credentials');
|
|
@@ -20,4 +20,4 @@ export const getAwsCredentials = ()=>{
|
|
|
20
20
|
};
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy91dGlscy9hd3NVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHtDb25maWd9IGZyb20gJy4uL2NvbmZpZy5qcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRBd3NDcmVkZW50aWFscyA9ICgpOlxuICB8IHtcbiAgICByZWFkb25seSBhY2Nlc3NLZXlJZDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHNlY3JldEFjY2Vzc0tleTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHNlc3Npb25Ub2tlbj86IHN0cmluZztcbiAgfVxuICB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IGNyZWRlbnRpYWxzID0gQ29uZmlnLmdldCgnYXdzLmNyZWRlbnRpYWxzJyk7XG4gIGNvbnN0IGFjY2Vzc0tleUlkID0gU3RyaW5nKGNyZWRlbnRpYWxzPy5hY2Nlc3NLZXlJZCB8fCAnJykudHJpbSgpO1xuICBjb25zdCBzZWNyZXRBY2Nlc3NLZXkgPSBTdHJpbmcoY3JlZGVudGlhbHM/LnNlY3JldEFjY2Vzc0tleSB8fCAnJykudHJpbSgpO1xuICBjb25zdCBzZXNzaW9uVG9rZW4gPSBTdHJpbmcoY3JlZGVudGlhbHM/LnNlc3Npb25Ub2tlbiB8fCAnJykudHJpbSgpO1xuXG4gIGlmKCFhY2Nlc3NLZXlJZCB8fCAhc2VjcmV0QWNjZXNzS2V5KSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiBzZXNzaW9uVG9rZW4gPyB7XG4gICAgYWNjZXNzS2V5SWQsXG4gICAgc2VjcmV0QWNjZXNzS2V5LFxuICAgIHNlc3Npb25Ub2tlblxuICB9IDoge1xuICAgIGFjY2Vzc0tleUlkLFxuICAgIHNlY3JldEFjY2Vzc0tleVxuICB9O1xufTtcbiJdLCJuYW1lcyI6WyJDb25maWciLCJnZXRBd3NDcmVkZW50aWFscyIsImNyZWRlbnRpYWxzIiwiZ2V0IiwiYWNjZXNzS2V5SWQiLCJTdHJpbmciLCJ0cmltIiwic2VjcmV0QWNjZXNzS2V5Iiwic2Vzc2lvblRva2VuIiwidW5kZWZpbmVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxNQUFNLFFBQU8sZUFBZTtBQUVwQyxPQUFPLE1BQU1DLG9CQUFvQjtJQU8vQixNQUFNQyxjQUFjRixPQUFPRyxHQUFHLENBQUM7SUFDL0IsTUFBTUMsY0FBY0MsT0FBT0gsYUFBYUUsZUFBZSxJQUFJRSxJQUFJO0lBQy9ELE1BQU1DLGtCQUFrQkYsT0FBT0gsYUFBYUssbUJBQW1CLElBQUlELElBQUk7SUFDdkUsTUFBTUUsZUFBZUgsT0FBT0gsYUFBYU0sZ0JBQWdCLElBQUlGLElBQUk7SUFFakUsSUFBRyxDQUFDRixlQUFlLENBQUNHLGlCQUFpQjtRQUNuQyxPQUFPRTtJQUNUO0lBRUEsT0FBT0QsZUFBZTtRQUNwQko7UUFDQUc7UUFDQUM7SUFDRixJQUFJO1FBQ0ZKO1FBQ0FHO0lBQ0Y7QUFDRixFQUFFIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/
|
|
5
5
|
import type { ApiContext } from '../types/auth.types.js';
|
|
6
6
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright (c) 2019-Present, Nitrogen Labs, Inc.
|
|
3
|
-
*
|
|
3
|
+
* All rights reserved. Use is subject to the accompanying commercial LICENSE.
|
|
4
4
|
*/ import { parsePost } from '../adapters/postAdapter.js';
|
|
5
5
|
import { parseUser } from '../adapters/userAdapter.js';
|
|
6
6
|
import { COLLECTIONS, EDGES } from '../constants/collections.js';
|
|
@@ -154,6 +154,21 @@ registry.register({
|
|
|
154
154
|
EDGES.HAS_MEDIA
|
|
155
155
|
]
|
|
156
156
|
});
|
|
157
|
+
registry.register({
|
|
158
|
+
name: COLLECTIONS.ANALYTICS,
|
|
159
|
+
hasOwnership: false,
|
|
160
|
+
timestamps: {
|
|
161
|
+
created: 'added',
|
|
162
|
+
updated: 'modified'
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
registry.register({
|
|
166
|
+
name: COLLECTIONS.LOGS,
|
|
167
|
+
hasOwnership: false,
|
|
168
|
+
timestamps: {
|
|
169
|
+
created: 'added'
|
|
170
|
+
}
|
|
171
|
+
});
|
|
157
172
|
registry.register({
|
|
158
173
|
name: COLLECTIONS.APPS,
|
|
159
174
|
hasOwnership: false,
|
|
@@ -174,4 +189,4 @@ registry.register({
|
|
|
174
189
|
]
|
|
175
190
|
});
|
|
176
191
|
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL2NvbGxlY3Rpb25SZWdpc3RyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuXG5pbXBvcnQge3BhcnNlUG9zdH0gZnJvbSAnLi4vYWRhcHRlcnMvcG9zdEFkYXB0ZXIuanMnO1xuaW1wb3J0IHtwYXJzZVVzZXJ9IGZyb20gJy4uL2FkYXB0ZXJzL3VzZXJBZGFwdGVyLmpzJztcbmltcG9ydCB7Q09MTEVDVElPTlMsIEVER0VTfSBmcm9tICcuLi9jb25zdGFudHMvY29sbGVjdGlvbnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgYSBjb2xsZWN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sbGVjdGlvbkNvbmZpZyB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgXG4gIC8vIFByaXZhY3kgc2V0dGluZ3NcbiAgcmVhZG9ubHkgaGFzUHJpdmFjeT86IGJvb2xlYW47IC8vIENvbGxlY3Rpb24gaGFzIHByaXZhY3kgZmllbGRcbiAgcmVhZG9ubHkgaGFzT3duZXJzaGlwPzogYm9vbGVhbjsgLy8gQ29sbGVjdGlvbiBoYXMgdXNlcklkIGZpZWxkXG4gIFxuICAvLyBUaW1lc3RhbXBzXG4gIHJlYWRvbmx5IHRpbWVzdGFtcHM/OiB7XG4gICAgcmVhZG9ubHkgY3JlYXRlZD86IHN0cmluZzsgLy8gRmllbGQgbmFtZSAoZS5nLiwgJ2FkZGVkJylcbiAgICByZWFkb25seSB1cGRhdGVkPzogc3RyaW5nOyAvLyBGaWVsZCBuYW1lIChlLmcuLCAnbW9kaWZpZWQnKVxuICB9O1xuICBcbiAgLy8gQWRhcHRlcnNcbiAgcmVhZG9ubHkgYWRhcHRlcnM/OiB7XG4gICAgcmVhZG9ubHkgcGFyc2U/OiAoZGF0YTogYW55KSA9PiBhbnk7IC8vIFBhcnNlIGlucHV0IGRhdGFcbiAgICByZWFkb25seSBmb3JtYXQ/OiAoZGF0YTogYW55KSA9PiBhbnk7IC8vIEZvcm1hdCBvdXRwdXQgZGF0YVxuICB9O1xuICBcbiAgLy8gTGlmZWN5Y2xlIGhvb2tzXG4gIHJlYWRvbmx5IGhvb2tzPzoge1xuICAgIHJlYWRvbmx5IGJlZm9yZUluc2VydD86IChjb250ZXh0OiBBcGlDb250ZXh0LCBkYXRhOiBhbnkpID0+IFByb21pc2U8YW55PjtcbiAgICByZWFkb25seSBhZnRlckluc2VydD86IChjb250ZXh0OiBBcGlDb250ZXh0LCBpdGVtOiBhbnkpID0+IFByb21pc2U8YW55PjtcbiAgICByZWFkb25seSBiZWZvcmVVcGRhdGU/OiAoY29udGV4dDogQXBpQ29udGV4dCwgaWQ6IHN0cmluZywgdXBkYXRlczogYW55KSA9PiBQcm9taXNlPGFueT47XG4gICAgcmVhZG9ubHkgYWZ0ZXJVcGRhdGU/OiAoY29udGV4dDogQXBpQ29udGV4dCwgaXRlbTogYW55KSA9PiBQcm9taXNlPGFueT47XG4gICAgcmVhZG9ubHkgYmVmb3JlRGVsZXRlPzogKGNvbnRleHQ6IEFwaUNvbnRleHQsIGlkOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gICAgcmVhZG9ubHkgYWZ0ZXJEZWxldGU/OiAoY29udGV4dDogQXBpQ29udGV4dCwgaWQ6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPjtcbiAgfTtcbiAgXG4gIC8vIEVkZ2VzIHRvIGNhc2NhZGUgZGVsZXRlXG4gIHJlYWRvbmx5IGNhc2NhZGVFZGdlcz86IFJlYWRvbmx5QXJyYXk8c3RyaW5nPjtcbiAgXG4gIC8vIERlZmF1bHQgZmlsdGVycyAoZS5nLiwgZXhjbHVkZSBzb2Z0LWRlbGV0ZWQgaXRlbXMpXG4gIHJlYWRvbmx5IGRlZmF1bHRGaWx0ZXJzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgXG4gIC8vIFNvZnQgZGVsZXRlIHN1cHBvcnRcbiAgcmVhZG9ubHkgc29mdERlbGV0ZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29sbGVjdGlvbiBSZWdpc3RyeVxuICogQ2VudHJhbGl6ZWQgcmVnaXN0cnkgZm9yIGFsbCBjb2xsZWN0aW9uIGNvbmZpZ3VyYXRpb25zXG4gKi9cbmNsYXNzIENvbGxlY3Rpb25SZWdpc3RyeSB7XG4gIHByaXZhdGUgY29sbGVjdGlvbnM6IE1hcDxzdHJpbmcsIENvbGxlY3Rpb25Db25maWc+ID0gbmV3IE1hcCgpO1xuICBcbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgY29sbGVjdGlvbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWdpc3Rlcihjb25maWc6IENvbGxlY3Rpb25Db25maWcpOiB2b2lkIHtcbiAgICBpZiAoIWNvbmZpZy5uYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvbGxlY3Rpb24gbmFtZSBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLmNvbGxlY3Rpb25zLnNldChjb25maWcubmFtZSwgY29uZmlnKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCBhIGNvbGxlY3Rpb24gY29uZmlndXJhdGlvblxuICAgKi9cbiAgZ2V0KGNvbGxlY3Rpb246IHN0cmluZyk6IENvbGxlY3Rpb25Db25maWcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb25zLmdldChjb2xsZWN0aW9uKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIENoZWNrIGlmIGEgY29sbGVjdGlvbiBpcyByZWdpc3RlcmVkXG4gICAqL1xuICBoYXMoY29sbGVjdGlvbjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbnMuaGFzKGNvbGxlY3Rpb24pO1xuICB9XG4gIFxuICAvKipcbiAgICogR2V0IGFsbCByZWdpc3RlcmVkIGNvbGxlY3Rpb25zXG4gICAqL1xuICBnZXRBbGwoKTogUmVhZG9ubHlBcnJheTxDb2xsZWN0aW9uQ29uZmlnPiB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5jb2xsZWN0aW9ucy52YWx1ZXMoKSk7XG4gIH1cbn1cblxuLy8gQ3JlYXRlIHNpbmdsZXRvbiByZWdpc3RyeVxuZXhwb3J0IGNvbnN0IHJlZ2lzdHJ5ID0gbmV3IENvbGxlY3Rpb25SZWdpc3RyeSgpO1xuXG4vLyBSZWdpc3RlciBhbGwgY29sbGVjdGlvbnNcbnJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgbmFtZTogQ09MTEVDVElPTlMuUE9TVFMsXG4gIGhhc1ByaXZhY3k6IHRydWUsXG4gIGhhc093bmVyc2hpcDogdHJ1ZSxcbiAgdGltZXN0YW1wczoge1xuICAgIGNyZWF0ZWQ6ICdhZGRlZCcsXG4gICAgdXBkYXRlZDogJ21vZGlmaWVkJ1xuICB9LFxuICBhZGFwdGVyczoge1xuICAgIHBhcnNlOiBwYXJzZVBvc3RcbiAgfSxcbiAgY2FzY2FkZUVkZ2VzOiBbJ2hhc0ZpbGUnLCAnaXNUYWdnZWQnXVxufSk7XG5cbnJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgbmFtZTogQ09MTEVDVElPTlMuVVNFUlMsXG4gIGhhc093bmVyc2hpcDogdHJ1ZSxcbiAgdGltZXN0YW1wczoge1xuICAgIGNyZWF0ZWQ6ICdhZGRlZCcsXG4gICAgdXBkYXRlZDogJ21vZGlmaWVkJ1xuICB9LFxuICBhZGFwdGVyczoge1xuICAgIHBhcnNlOiBwYXJzZVVzZXJcbiAgfSxcbiAgY2FzY2FkZUVkZ2VzOiBbRURHRVMuSEFTX1BFUlNPTkFdXG59KTtcblxuW1xuICBDT0xMRUNUSU9OUy5NQUlMSU5HX0xJU1RTLFxuICBDT0xMRUNUSU9OUy5DVVNUT01FUl9PUkRFUlMsXG4gIENPTExFQ1RJT05TLlNIT1BJRllfUFJPRFVDVFMsXG4gIENPTExFQ1RJT05TLlNIT1BJRllfV0VCSE9PS19FVkVOVFMsXG4gIENPTExFQ1RJT05TLlNVUFBPUlRfVElDS0VUUyxcbiAgQ09MTEVDVElPTlMuU1VQUE9SVF9USUNLRVRfTUVTU0FHRVMsXG4gIENPTExFQ1RJT05TLlNVUFBPUlRfVElDS0VUX0VWRU5UUyxcbiAgQ09MTEVDVElPTlMuQ1VTVE9NRVJfTk9USUZJQ0FUSU9OU1xuXS5mb3JFYWNoKChuYW1lKSA9PiByZWdpc3RyeS5yZWdpc3Rlcih7XG4gIG5hbWUsXG4gIGhhc093bmVyc2hpcDogZmFsc2UsXG4gIHRpbWVzdGFtcHM6IHtcbiAgICBjcmVhdGVkOiAnYWRkZWQnLFxuICAgIHVwZGF0ZWQ6ICdtb2RpZmllZCdcbiAgfVxufSkpO1xuXG5yZWdpc3RyeS5yZWdpc3Rlcih7XG4gIG5hbWU6IENPTExFQ1RJT05TLkdST1VQUyxcbiAgaGFzUHJpdmFjeTogdHJ1ZSxcbiAgaGFzT3duZXJzaGlwOiBmYWxzZSxcbiAgdGltZXN0YW1wczoge1xuICAgIGNyZWF0ZWQ6ICdhZGRlZCcsXG4gICAgdXBkYXRlZDogJ21vZGlmaWVkJ1xuICB9LFxuICBjYXNjYWRlRWRnZXM6IFsnaGFzQ29ubmVjdGlvbicsICdpc1RhZ2dlZCddXG59KTtcblxucmVnaXN0cnkucmVnaXN0ZXIoe1xuICBuYW1lOiBDT0xMRUNUSU9OUy5NRVNTQUdFUyxcbiAgaGFzT3duZXJzaGlwOiB0cnVlLFxuICB0aW1lc3RhbXBzOiB7XG4gICAgY3JlYXRlZDogJ2FkZGVkJyxcbiAgICB1cGRhdGVkOiAnbW9kaWZpZWQnXG4gIH1cbn0pO1xuXG5yZWdpc3RyeS5yZWdpc3Rlcih7XG4gIG5hbWU6IENPTExFQ1RJT05TLkNPTlZFUlNBVElPTlMsXG4gIGhhc093bmVyc2hpcDogZmFsc2UsXG4gIHRpbWVzdGFtcHM6IHtcbiAgICBjcmVhdGVkOiAnYWRkZWQnLFxuICAgIHVwZGF0ZWQ6ICdtb2RpZmllZCdcbiAgfSxcbiAgY2FzY2FkZUVkZ2VzOiBbRURHRVMuSVNfVEFHR0VEXVxufSk7XG5cbnJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgbmFtZTogQ09MTEVDVElPTlMuVEFHUyxcbiAgaGFzT3duZXJzaGlwOiBmYWxzZSxcbiAgdGltZXN0YW1wczoge1xuICAgIGNyZWF0ZWQ6ICdhZGRlZCcsXG4gICAgdXBkYXRlZDogJ21vZGlmaWVkJ1xuICB9XG59KTtcblxucmVnaXN0cnkucmVnaXN0ZXIoe1xuICBuYW1lOiBDT0xMRUNUSU9OUy5GSUxFUyxcbiAgaGFzT3duZXJzaGlwOiB0cnVlLFxuICB0aW1lc3RhbXBzOiB7XG4gICAgY3JlYXRlZDogJ2FkZGVkJyxcbiAgICB1cGRhdGVkOiAnbW9kaWZpZWQnXG4gIH1cbn0pO1xuXG5yZWdpc3RyeS5yZWdpc3Rlcih7XG4gIG5hbWU6IENPTExFQ1RJT05TLklNQUdFUyxcbiAgaGFzUHJpdmFjeTogdHJ1ZSxcbiAgaGFzT3duZXJzaGlwOiB0cnVlLFxuICB0aW1lc3RhbXBzOiB7XG4gICAgY3JlYXRlZDogJ2FkZGVkJyxcbiAgICB1cGRhdGVkOiAnbW9kaWZpZWQnXG4gIH0sXG4gIGNhc2NhZGVFZGdlczogW0VER0VTLkhBU19NRURJQV1cbn0pO1xuXG5yZWdpc3RyeS5yZWdpc3Rlcih7XG4gIG5hbWU6IENPTExFQ1RJT05TLlZJREVPUyxcbiAgaGFzT3duZXJzaGlwOiB0cnVlLFxuICB0aW1lc3RhbXBzOiB7XG4gICAgY3JlYXRlZDogJ2FkZGVkJyxcbiAgICB1cGRhdGVkOiAnbW9kaWZpZWQnXG4gIH0sXG4gIGNhc2NhZGVFZGdlczogW0VER0VTLkhBU19NRURJQV1cbn0pO1xuXG5yZWdpc3RyeS5yZWdpc3Rlcih7XG4gIG5hbWU6IENPTExFQ1RJT05TLkFQUFMsXG4gIGhhc093bmVyc2hpcDogZmFsc2UsXG4gIHRpbWVzdGFtcHM6IHtcbiAgICBjcmVhdGVkOiAnYWRkZWQnLFxuICAgIHVwZGF0ZWQ6ICdtb2RpZmllZCdcbiAgfVxufSk7XG5cbnJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgbmFtZTogQ09MTEVDVElPTlMuUEVSU09OQVMsXG4gIGhhc093bmVyc2hpcDogdHJ1ZSxcbiAgdGltZXN0YW1wczoge1xuICAgIGNyZWF0ZWQ6ICdhZGRlZCcsXG4gICAgdXBkYXRlZDogJ21vZGlmaWVkJ1xuICB9LFxuICBjYXNjYWRlRWRnZXM6IFtFREdFUy5IQVNfUEVSU09OQV1cbn0pO1xuIl0sIm5hbWVzIjpbInBhcnNlUG9zdCIsInBhcnNlVXNlciIsIkNPTExFQ1RJT05TIiwiRURHRVMiLCJDb2xsZWN0aW9uUmVnaXN0cnkiLCJjb2xsZWN0aW9ucyIsIk1hcCIsInJlZ2lzdGVyIiwiY29uZmlnIiwibmFtZSIsIkVycm9yIiwic2V0IiwiZ2V0IiwiY29sbGVjdGlvbiIsImhhcyIsImdldEFsbCIsIkFycmF5IiwiZnJvbSIsInZhbHVlcyIsInJlZ2lzdHJ5IiwiUE9TVFMiLCJoYXNQcml2YWN5IiwiaGFzT3duZXJzaGlwIiwidGltZXN0YW1wcyIsImNyZWF0ZWQiLCJ1cGRhdGVkIiwiYWRhcHRlcnMiLCJwYXJzZSIsImNhc2NhZGVFZGdlcyIsIlVTRVJTIiwiSEFTX1BFUlNPTkEiLCJNQUlMSU5HX0xJU1RTIiwiQ1VTVE9NRVJfT1JERVJTIiwiU0hPUElGWV9QUk9EVUNUUyIsIlNIT1BJRllfV0VCSE9PS19FVkVOVFMiLCJTVVBQT1JUX1RJQ0tFVFMiLCJTVVBQT1JUX1RJQ0tFVF9NRVNTQUdFUyIsIlNVUFBPUlRfVElDS0VUX0VWRU5UUyIsIkNVU1RPTUVSX05PVElGSUNBVElPTlMiLCJmb3JFYWNoIiwiR1JPVVBTIiwiTUVTU0FHRVMiLCJDT05WRVJTQVRJT05TIiwiSVNfVEFHR0VEIiwiVEFHUyIsIkZJTEVTIiwiSU1BR0VTIiwiSEFTX01FRElBIiwiVklERU9TIiwiQVBQUyIsIlBFUlNPTkFTIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FFRCxTQUFRQSxTQUFTLFFBQU8sNkJBQTZCO0FBQ3JELFNBQVFDLFNBQVMsUUFBTyw2QkFBNkI7QUFDckQsU0FBUUMsV0FBVyxFQUFFQyxLQUFLLFFBQU8sOEJBQThCO0FBOEMvRDs7O0NBR0MsR0FDRCxNQUFNQztJQUNJQyxjQUE2QyxJQUFJQyxNQUFNO0lBRS9EOztHQUVDLEdBQ0RDLFNB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
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3JlYWt0b3IvcmVha3Rvci9wYWNrYWdlcy9yZWFrdG9yL3NyYy91dGlscy9jb2xsZWN0aW9uUmVnaXN0cnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTktUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIGlzIHN1YmplY3QgdG8gdGhlIGFjY29tcGFueWluZyBjb21tZXJjaWFsIExJQ0VOU0UuXG4gKi9cblxuaW1wb3J0IHtwYXJzZVBvc3R9IGZyb20gJy4uL2FkYXB0ZXJzL3Bvc3RBZGFwdGVyLmpzJztcbmltcG9ydCB7cGFyc2VVc2VyfSBmcm9tICcuLi9hZGFwdGVycy91c2VyQWRhcHRlci5qcyc7XG5pbXBvcnQge0NPTExFQ1RJT05TLCBFREdFU30gZnJvbSAnLi4vY29uc3RhbnRzL2NvbGxlY3Rpb25zLmpzJztcblxuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGEgY29sbGVjdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25Db25maWcge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIFxuICAvLyBQcml2YWN5IHNldHRpbmdzXG4gIHJlYWRvbmx5IGhhc1ByaXZhY3k/OiBib29sZWFuOyAvLyBDb2xsZWN0aW9uIGhhcyBwcml2YWN5IGZpZWxkXG4gIHJlYWRvbmx5IGhhc093bmVyc2hpcD86IGJvb2xlYW47IC8vIENvbGxlY3Rpb24gaGFzIHVzZXJJZCBmaWVsZFxuICBcbiAgLy8gVGltZXN0YW1wc1xuICByZWFkb25seSB0aW1lc3RhbXBzPzoge1xuICAgIHJlYWRvbmx5IGNyZWF0ZWQ/OiBzdHJpbmc7IC8vIEZpZWxkIG5hbWUgKGUuZy4sICdhZGRlZCcpXG4gICAgcmVhZG9ubHkgdXBkYXRlZD86IHN0cmluZzsgLy8gRmllbGQgbmFtZSAoZS5nLiwgJ21vZGlmaWVkJylcbiAgfTtcbiAgXG4gIC8vIEFkYXB0ZXJzXG4gIHJlYWRvbmx5IGFkYXB0ZXJzPzoge1xuICAgIHJlYWRvbmx5IHBhcnNlPzogKGRhdGE6IGFueSkgPT4gYW55OyAvLyBQYXJzZSBpbnB1dCBkYXRhXG4gICAgcmVhZG9ubHkgZm9ybWF0PzogKGRhdGE6IGFueSkgPT4gYW55OyAvLyBGb3JtYXQgb3V0cHV0IGRhdGFcbiAgfTtcbiAgXG4gIC8vIExpZmVjeWNsZSBob29rc1xuICByZWFkb25seSBob29rcz86IHtcbiAgICByZWFkb25seSBiZWZvcmVJbnNlcnQ/OiAoY29udGV4dDogQXBpQ29udGV4dCwgZGF0YTogYW55KSA9PiBQcm9taXNlPGFueT47XG4gICAgcmVhZG9ubHkgYWZ0ZXJJbnNlcnQ/OiAoY29udGV4dDogQXBpQ29udGV4dCwgaXRlbTogYW55KSA9PiBQcm9taXNlPGFueT47XG4gICAgcmVhZG9ubHkgYmVmb3JlVXBkYXRlPzogKGNvbnRleHQ6IEFwaUNvbnRleHQsIGlkOiBzdHJpbmcsIHVwZGF0ZXM6IGFueSkgPT4gUHJvbWlzZTxhbnk+O1xuICAgIHJlYWRvbmx5IGFmdGVyVXBkYXRlPzogKGNvbnRleHQ6IEFwaUNvbnRleHQsIGl0ZW06IGFueSkgPT4gUHJvbWlzZTxhbnk+O1xuICAgIHJlYWRvbmx5IGJlZm9yZURlbGV0ZT86IChjb250ZXh0OiBBcGlDb250ZXh0LCBpZDogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgIHJlYWRvbmx5IGFmdGVyRGVsZXRlPzogKGNvbnRleHQ6IEFwaUNvbnRleHQsIGlkOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD47XG4gIH07XG4gIFxuICAvLyBFZGdlcyB0byBjYXNjYWRlIGRlbGV0ZVxuICByZWFkb25seSBjYXNjYWRlRWRnZXM/OiBSZWFkb25seUFycmF5PHN0cmluZz47XG4gIFxuICAvLyBEZWZhdWx0IGZpbHRlcnMgKGUuZy4sIGV4Y2x1ZGUgc29mdC1kZWxldGVkIGl0ZW1zKVxuICByZWFkb25seSBkZWZhdWx0RmlsdGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIFxuICAvLyBTb2Z0IGRlbGV0ZSBzdXBwb3J0XG4gIHJlYWRvbmx5IHNvZnREZWxldGU/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbGxlY3Rpb24gUmVnaXN0cnlcbiAqIENlbnRyYWxpemVkIHJlZ2lzdHJ5IGZvciBhbGwgY29sbGVjdGlvbiBjb25maWd1cmF0aW9uc1xuICovXG5jbGFzcyBDb2xsZWN0aW9uUmVnaXN0cnkge1xuICBwcml2YXRlIGNvbGxlY3Rpb25zOiBNYXA8c3RyaW5nLCBDb2xsZWN0aW9uQ29uZmlnPiA9IG5ldyBNYXAoKTtcbiAgXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGNvbGxlY3Rpb24gY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVnaXN0ZXIoY29uZmlnOiBDb2xsZWN0aW9uQ29uZmlnKTogdm9pZCB7XG4gICAgaWYgKCFjb25maWcubmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb2xsZWN0aW9uIG5hbWUgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgXG4gICAgdGhpcy5jb2xsZWN0aW9ucy5zZXQoY29uZmlnLm5hbWUsIGNvbmZpZyk7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBHZXQgYSBjb2xsZWN0aW9uIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIGdldChjb2xsZWN0aW9uOiBzdHJpbmcpOiBDb2xsZWN0aW9uQ29uZmlnIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9ucy5nZXQoY29sbGVjdGlvbik7XG4gIH1cbiAgXG4gIC8qKlxuICAgKiBDaGVjayBpZiBhIGNvbGxlY3Rpb24gaXMgcmVnaXN0ZXJlZFxuICAgKi9cbiAgaGFzKGNvbGxlY3Rpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb25zLmhhcyhjb2xsZWN0aW9uKTtcbiAgfVxuICBcbiAgLyoqXG4gICAqIEdldCBhbGwgcmVnaXN0ZXJlZCBjb2xsZWN0aW9uc1xuICAgKi9cbiAgZ2V0QWxsKCk6IFJlYWRvbmx5QXJyYXk8Q29sbGVjdGlvbkNvbmZpZz4ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuY29sbGVjdGlvbnMudmFsdWVzKCkpO1xuICB9XG59XG5cbi8vIENyZWF0ZSBzaW5nbGV0b24gcmVnaXN0cnlcbmV4cG9ydCBjb25zdCByZWdpc3RyeSA9IG5ldyBDb2xsZWN0aW9uUmVnaXN0cnkoKTtcblxuLy8gUmVnaXN0ZXIgYWxsIGNvbGxlY3Rpb25zXG5yZWdpc3RyeS5yZWdpc3Rlcih7XG4gIG5hbWU6IENPTExFQ1RJT05TLlBPU1RTLFxuICBoYXNQcml2YWN5OiB0cnVlLFxuICBoYXNPd25lcnNoaXA6IHRydWUsXG4gIHRpbWVzdGFtcHM6IHtcbiAgICBjcmVhdGVkOiAnYWRkZWQnLFxuICAgIHVwZGF0ZWQ6ICdtb2RpZmllZCdcbiAgfSxcbiAgYWRhcHRlcnM6IHtcbiAgICBwYXJzZTogcGFyc2VQb3N0XG4gIH0sXG4gIGNhc2NhZGVFZGdlczogWydoYXNGaWxlJywgJ2lzVGFnZ2VkJ11cbn0pO1xuXG5yZWdpc3RyeS5yZWdpc3Rlcih7XG4gIG5hbWU6IENPTExFQ1RJT05TLlVTRVJTLFxuICBoYXNPd25lcnNoaXA6IHRydWUsXG4gIHRpbWVzdGFtcHM6IHtcbiAgICBjcmVhdGVkOiAnYWRkZWQnLFxuICAgIHVwZGF0ZWQ6ICdtb2RpZmllZCdcbiAgfSxcbiAgYWRhcHRlcnM6IHtcbiAgICBwYXJzZTogcGFyc2VVc2VyXG4gIH0sXG4gIGNhc2NhZGVFZGdlczogW0VER0VTLkhBU19QRVJTT05BXVxufSk7XG5cbltcbiAgQ09MTEVDVElPTlMuTUFJTElOR19MSVNUUyxcbiAgQ09MTEVDVElPTlMuQ1VTVE9NRVJfT1JERVJTLFxuICBDT0xMRUNUSU9OUy5TSE9QSUZZX1BST0RVQ1RTLFxuICBDT0xMRUNUSU9OUy5TSE9QSUZZX1dFQkhPT0tfRVZFTlRTLFxuICBDT0xMRUNUSU9OUy5TVVBQT1JUX1RJQ0tFVFMsXG4gIENPTExFQ1RJT05TLlNVUFBPUlRfVElDS0VUX01FU1NBR0VTLFxuICBDT0xMRUNUSU9OUy5TVVBQT1JUX1RJQ0tFVF9FVkVOVFMsXG4gIENPTExFQ1RJT05TLkNVU1RPTUVSX05PVElGSUNBVElPTlNcbl0uZm9yRWFjaCgobmFtZSkgPT4gcmVnaXN0cnkucmVnaXN0ZXIoe1xuICBuYW1lLFxuICBoYXNPd25lcnNoaXA6IGZhbHNlLFxuICB0aW1lc3RhbXBzOiB7XG4gICAgY3JlYXRlZDogJ2FkZGVkJyxcbiAgICB1cGRhdGVkOiAnbW9kaWZpZWQnXG4gIH1cbn0pKTtcblxucmVnaXN0cnkucmVnaXN0ZXIoe1xuICBuYW1lOiBDT0xMRUNUSU9OUy5HUk9VUFMsXG4gIGhhc1ByaXZhY3k6IHRydWUsXG4gIGhhc093bmVyc2hpcDogZmFsc2UsXG4gIHRpbWVzdGFtcHM6IHtcbiAgICBjcmVhdGVkOiAnYWRkZWQnLFxuICAgIHVwZGF0ZWQ6ICdtb2RpZmllZCdcbiAgfSxcbiAgY2FzY2FkZUVkZ2VzOiBbJ2hhc0Nvbm5lY3Rpb24nLCAnaXNUYWdnZWQnXVxufSk7XG5cbnJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgbmFtZTogQ09MTEVDVElPTlMuTUVTU0FHRVMsXG4gIGhhc093bmVyc2hpcDogdHJ1ZSxcbiAgdGltZXN0YW1wczoge1xuICAgIGNyZWF0ZWQ6ICdhZGRlZCcsXG4gICAgdXBkYXRlZDogJ21vZGlmaWVkJ1xuICB9XG59KTtcblxucmVnaXN0cnkucmVnaXN0ZXIoe1xuICBuYW1lOiBDT0xMRUNUSU9OUy5DT05WRVJTQVRJT05TLFxuICBoYXNPd25lcnNoaXA6IGZhbHNlLFxuICB0aW1lc3RhbXBzOiB7XG4gICAgY3JlYXRlZDogJ2FkZGVkJyxcbiAgICB1cGRhdGVkOiAnbW9kaWZpZWQnXG4gIH0sXG4gIGNhc2NhZGVFZGdlczogW0VER0VTLklTX1RBR0dFRF1cbn0pO1xuXG5yZWdpc3RyeS5yZWdpc3Rlcih7XG4gIG5hbWU6IENPTExFQ1RJT05TLlRBR1MsXG4gIGhhc093bmVyc2hpcDogZmFsc2UsXG4gIHRpbWVzdGFtcHM6IHtcbiAgICBjcmVhdGVkOiAnYWRkZWQnLFxuICAgIHVwZGF0ZWQ6ICdtb2RpZmllZCdcbiAgfVxufSk7XG5cbnJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgbmFtZTogQ09MTEVDVElPTlMuRklMRVMsXG4gIGhhc093bmVyc2hpcDogdHJ1ZSxcbiAgdGltZXN0YW1wczoge1xuICAgIGNyZWF0ZWQ6ICdhZGRlZCcsXG4gICAgdXBkYXRlZDogJ21vZGlmaWVkJ1xuICB9XG59KTtcblxucmVnaXN0cnkucmVnaXN0ZXIoe1xuICBuYW1lOiBDT0xMRUNUSU9OUy5JTUFHRVMsXG4gIGhhc1ByaXZhY3k6IHRydWUsXG4gIGhhc093bmVyc2hpcDogdHJ1ZSxcbiAgdGltZXN0YW1wczoge1xuICAgIGNyZWF0ZWQ6ICdhZGRlZCcsXG4gICAgdXBkYXRlZDogJ21vZGlmaWVkJ1xuICB9LFxuICBjYXNjYWRlRWRnZXM6IFtFREdFUy5IQVNfTUVESUFdXG59KTtcblxucmVnaXN0cnkucmVnaXN0ZXIoe1xuICBuYW1lOiBDT0xMRUNUSU9OUy5WSURFT1MsXG4gIGhhc093bmVyc2hpcDogdHJ1ZSxcbiAgdGltZXN0YW1wczoge1xuICAgIGNyZWF0ZWQ6ICdhZGRlZCcsXG4gICAgdXBkYXRlZDogJ21vZGlmaWVkJ1xuICB9LFxuICBjYXNjYWRlRWRnZXM6IFtFREdFUy5IQVNfTUVESUFdXG59KTtcblxucmVnaXN0cnkucmVnaXN0ZXIoe1xuICBuYW1lOiBDT0xMRUNUSU9OUy5BTkFMWVRJQ1MsXG4gIGhhc093bmVyc2hpcDogZmFsc2UsXG4gIHRpbWVzdGFtcHM6IHtcbiAgICBjcmVhdGVkOiAnYWRkZWQnLFxuICAgIHVwZGF0ZWQ6ICdtb2RpZmllZCdcbiAgfVxufSk7XG5cbnJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgbmFtZTogQ09MTEVDVElPTlMuTE9HUyxcbiAgaGFzT3duZXJzaGlwOiBmYWxzZSxcbiAgdGltZXN0YW1wczoge1xuICAgIGNyZWF0ZWQ6ICdhZGRlZCdcbiAgfVxufSk7XG5cbnJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgbmFtZTogQ09MTEVDVElPTlMuQVBQUyxcbiAgaGFzT3duZXJzaGlwOiBmYWxzZSxcbiAgdGltZXN0YW1wczoge1xuICAgIGNyZWF0ZWQ6ICdhZGRlZCcsXG4gICAgdXBkYXRlZDogJ21vZGlmaWVkJ1xuICB9XG59KTtcblxucmVnaXN0cnkucmVnaXN0ZXIoe1xuICBuYW1lOiBDT0xMRUNUSU9OUy5QRVJTT05BUyxcbiAgaGFzT3duZXJzaGlwOiB0cnVlLFxuICB0aW1lc3RhbXBzOiB7XG4gICAgY3JlYXRlZDogJ2FkZGVkJyxcbiAgICB1cGRhdGVkOiAnbW9kaWZpZWQnXG4gIH0sXG4gIGNhc2NhZGVFZGdlczogW0VER0VTLkhBU19QRVJTT05BXVxufSk7XG4iXSwibmFtZXMiOlsicGFyc2VQb3N0IiwicGFyc2VVc2VyIiwiQ09MTEVDVElPTlMiLCJFREdFUyIsIkNvbGxlY3Rpb25SZWdpc3RyeSIsImNvbGxlY3Rpb25zIiwiTWFwIiwicmVnaXN0ZXIiLCJjb25maWciLCJuYW1lIiwiRXJyb3IiLCJzZXQiLCJnZXQiLCJjb2xsZWN0aW9uIiwiaGFzIiwiZ2V0QWxsIiwiQXJyYXkiLCJmcm9tIiwidmFsdWVzIiwicmVnaXN0cnkiLCJQT1NUUyIsImhhc1ByaXZhY3kiLCJoYXNPd25lcnNoaXAiLCJ0aW1lc3RhbXBzIiwiY3JlYXRlZCIsInVwZGF0ZWQiLCJhZGFwdGVycyIsInBhcnNlIiwiY2FzY2FkZUVkZ2VzIiwiVVNFUlMiLCJIQVNfUEVSU09OQSIsIk1BSUxJTkdfTElTVFMiLCJDVVNUT01FUl9PUkRFUlMiLCJTSE9QSUZZX1BST0RVQ1RTIiwiU0hPUElGWV9XRUJIT09LX0VWRU5UUyIsIlNVUFBPUlRfVElDS0VUUyIsIlNVUFBPUlRfVElDS0VUX01FU1NBR0VTIiwiU1VQUE9SVF9USUNLRVRfRVZFTlRTIiwiQ1VTVE9NRVJfTk9USUZJQ0FUSU9OUyIsImZvckVhY2giLCJHUk9VUFMiLCJNRVNTQUdFUyIsIkNPTlZFUlNBVElPTlMiLCJJU19UQUdHRUQiLCJUQUdTIiwiRklMRVMiLCJJTUFHRVMiLCJIQVNfTUVESUEiLCJWSURFT1MiLCJBTkFMWVRJQ1MiLCJMT0dTIiwiQVBQUyIsIlBFUlNPTkFTIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FFRCxTQUFRQSxTQUFTLFFBQU8sNkJBQTZCO0FBQ3JELFNBQVFDLFNBQVMsUUFBTyw2QkFBNkI7QUFDckQsU0FBUUMsV0FBVyxFQUFFQyxLQUFLLFFBQU8sOEJBQThCO0FBOEMvRDs7O0NBR0MsR0FDRCxNQUFNQztJQUNJQyxjQUE2QyxJQUFJQyxNQUFNO0lBRS9EOztHQUVDLEdBQ0RDLFNBQVNDLE1BQXdCLEVBQVE7UUFDdkMsSUFBSSxDQUFDQSxPQUFPQyxJQUFJLEVBQUU7WUFDaEIsTUFBTSxJQUFJQyxNQUFNO1FBQ2xCO1FBRUEsSUFBSSxDQUFDTCxXQUFXLENBQUNNLEdBQUcsQ0FBQ0gsT0FBT0MsSUFBSSxFQUFFRDtJQUNwQztJQUVBOztHQUVDLEdBQ0RJLElBQUlDLFVBQWtCLEVBQWdDO1FBQ3BELE9BQU8sSUFBSSxDQUFDUixXQUFXLENBQUNPLEdBQUcsQ0FBQ0M7SUFDOUI7SUFFQTs7R0FFQyxHQUNEQyxJQUFJRCxVQUFrQixFQUFXO1FBQy9CLE9BQU8sSUFBSSxDQUFDUixXQUFXLENBQUNTLEdBQUcsQ0FBQ0Q7SUFDOUI7SUFFQTs7R0FFQyxHQUNERSxTQUEwQztRQUN4QyxPQUFPQyxNQUFNQyxJQUFJLENBQUMsSUFBSSxDQUFDWixXQUFXLENBQUNhLE1BQU07SUFDM0M7QUFDRjtBQUVBLDRCQUE0QjtBQUM1QixPQUFPLE1BQU1DLFdBQVcsSUFBSWYscUJBQXFCO0FBRWpELDJCQUEyQjtBQUMzQmUsU0FBU1osUUFBUSxDQUFDO0lBQ2hCRSxNQUFNUCxZQUFZa0IsS0FBSztJQUN2QkMsWUFBWTtJQUNaQyxjQUFjO0lBQ2RDLFlBQVk7UUFDVkMsU0FBUztRQUNUQyxTQUFTO0lBQ1g7SUFDQUMsVUFBVTtRQUNSQyxPQUFPM0I7SUFDVDtJQUNBNEIs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
|