@nlabs/reaktor 1.6.3 → 1.7.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 +5 -1
- package/lib/actions/crm.js +226 -3
- 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 +143 -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.js +59 -6
- 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 +5 -1
- package/lib/constants/collections.js +6 -2
- package/lib/handlers/graphqlHandler.d.ts +2 -2
- package/lib/handlers/graphqlHandler.js +2 -19
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- 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 +18 -4
- 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 +64 -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 +32 -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 +2 -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 +15 -4
- 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 +3 -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 +38 -1
- 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 +1 -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/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 +1 -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.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 +43 -80
- package/lib/actions/websockets.d.ts +0 -20
- package/lib/actions/websockets.js +0 -164
- package/lib/mocks/nlabs.png +0 -0
package/lib/utils/index.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
|
*/ export * from './adapterUtils.js';
|
|
5
5
|
export * from './analyticsUtils.js';
|
|
6
6
|
export * from './arangodbUtils.js';
|
|
@@ -17,4 +17,4 @@ export * from './sessionUtils.js';
|
|
|
17
17
|
export * from './templateUtils.js';
|
|
18
18
|
export * from './translationQueue.js';
|
|
19
19
|
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC9ubGFicy1yZWFrdG9yLXJlbGVhc2UuZU1RNVNoL2NoZWNrb3V0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5leHBvcnQgKiBmcm9tICcuL2FkYXB0ZXJVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2FuYWx5dGljc1V0aWxzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXJhbmdvZGJVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGhVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHRVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2RiSTE4bi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2dvb2dsZVRyYW5zbGF0ZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2dyYXBocWxVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2xhbmd1YWdlRGV0ZWN0aW9uLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxlVXRpbHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9taWRkbGV3YXJlVXRpbHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlbWFVdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Nlc3Npb25VdGlscy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3RlbXBsYXRlVXRpbHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2xhdGlvblF1ZXVlLmpzJztcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxjQUFjLG9CQUFvQjtBQUNsQyxjQUFjLHNCQUFzQjtBQUNwQyxjQUFjLHFCQUFxQjtBQUNuQyxjQUFjLGlCQUFpQjtBQUMvQixjQUFjLG9CQUFvQjtBQUNsQyxjQUFjLGNBQWM7QUFDNUIsY0FBYyx1QkFBdUI7QUFDckMsY0FBYyxvQkFBb0I7QUFDbEMsY0FBYyx5QkFBeUI7QUFDdkMsY0FBYyxtQkFBbUI7QUFDakMsY0FBYyx1QkFBdUI7QUFDckMsY0FBYyxtQkFBbUI7QUFDakMsY0FBYyxvQkFBb0I7QUFDbEMsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyx3QkFBd0IifQ==
|
|
@@ -117,4 +117,4 @@ const parseAcceptLanguage = (acceptLanguage)=>{
|
|
|
117
117
|
return null;
|
|
118
118
|
};
|
|
119
119
|
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC9ubGFicy1yZWFrdG9yLXJlbGVhc2UuZU1RNVNoL2NoZWNrb3V0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL2xhbmd1YWdlRGV0ZWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtMb2NhbGV9IGZyb20gJy4uL3R5cGVzL2NvbnRlbnQudHlwZXMuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExhbmd1YWdlRGV0ZWN0aW9uQ29udGV4dCB7XG4gIGFjY2VwdExhbmd1YWdlPzogc3RyaW5nO1xuICBpcENvdW50cnk/OiBzdHJpbmc7XG4gIHBob25lQ291bnRyeUNvZGU/OiBzdHJpbmc7XG4gIHVzZXJQcmVmZXJlbmNlPzogTG9jYWxlO1xufVxuXG5jb25zdCBjb3VudHJ5VG9Mb2NhbGVNYXA6IFJlY29yZDxzdHJpbmcsIExvY2FsZT4gPSB7XG4gIEFSOiAnZXMnLFxuICBBVTogJ2VuJyxcbiAgQkU6ICdmcicsXG4gIEJPOiAnZXMnLFxuICBCUjogJ3B0JyxcbiAgQ0E6ICdlbicsXG4gIENMOiAnZXMnLFxuICBDTzogJ2VzJyxcbiAgQ1I6ICdlcycsXG4gIENVOiAnZXMnLFxuICBDVjogJ3B0JyxcbiAgRE86ICdlcycsXG4gIEVDOiAnZXMnLFxuICBFUzogJ2VzJyxcbiAgRlI6ICdmcicsXG4gIEdCOiAnZW4nLFxuICBHUTogJ2VzJyxcbiAgR1Q6ICdlcycsXG4gIEdXOiAncHQnLFxuICBITjogJ2VzJyxcbiAgSVQ6ICdpdCcsXG4gIExJOiAnZGUnLFxuICBMVTogJ2ZyJyxcbiAgTUM6ICdmcicsXG4gIE1YOiAnZXMnLFxuICBNWjogJ3B0JyxcbiAgTkk6ICdlcycsXG4gIFBBOiAnZXMnLFxuICBQRTogJ2VzJyxcbiAgUFk6ICdlcycsXG4gIFNNOiAnaXQnLFxuICBTVjogJ2VzJyxcbiAgVEw6ICdwdCcsXG4gIFVTOiAnZW4nLFxuICBWQTogJ2l0JyxcbiAgVkU6ICdlcydcbn07XG5cbmNvbnN0IHBob25lQ29kZVRvTG9jYWxlTWFwOiBSZWNvcmQ8c3RyaW5nLCBMb2NhbGU+ID0ge1xuICAxOiAnZW4nLFxuICAzMjogJ2ZyJyxcbiAgMzM6ICdmcicsXG4gIDM0OiAnZXMnLFxuICAzOTogJ2l0JyxcbiAgNDE6ICdmcicsXG4gIDQzOiAnZGUnLFxuICA0OTogJ2RlJyxcbiAgNTE6ICdlcycsXG4gIDUyOiAnZXMnLFxuICA1MzogJ2VzJyxcbiAgNTQ6ICdlcycsXG4gIDU1OiAncHQnLFxuICA1NjogJ2VzJyxcbiAgNTc6ICdlcycsXG4gIDU4OiAnZXMnLFxuICAyNDA6ICdlcycsXG4gIDI0NDogJ3B0JyxcbiAgMjQ1OiAncHQnLFxuICAyNTg6ICdwdCcsXG4gIDM1MTogJ3B0JyxcbiAgMzUyOiAnZnInLFxuICAzNzc6ICdmcicsXG4gIDM3ODogJ2l0JyxcbiAgMzc5OiAnaXQnLFxuICA0MjM6ICdkZScsXG4gIDUwMjogJ2VzJyxcbiAgNTAzOiAnZXMnLFxuICA1MDQ6ICdlcycsXG4gIDUwNTogJ2VzJyxcbiAgNTA2OiAnZXMnLFxuICA1MDc6ICdlcycsXG4gIDU5MTogJ2VzJyxcbiAgNTkzOiAnZXMnLFxuICA1OTU6ICdlcycsXG4gIDY3MDogJ3B0JyxcbiAgMTgwOTogJ2VzJ1xufTtcblxuZXhwb3J0IGNvbnN0IGRldGVjdExhbmd1YWdlID0gKGNvbnRleHQ6IExhbmd1YWdlRGV0ZWN0aW9uQ29udGV4dCk6IExvY2FsZSA9PiB7XG4gIGlmKGNvbnRleHQudXNlclByZWZlcmVuY2UpIHtcbiAgICByZXR1cm4gY29udGV4dC51c2VyUHJlZmVyZW5jZTtcbiAgfVxuXG4gIGlmKGNvbnRleHQucGhvbmVDb3VudHJ5Q29kZSkge1xuICAgIGNvbnN0IGxvY2FsZSA9IHBob25lQ29kZVRvTG9jYWxlTWFwW2NvbnRleHQucGhvbmVDb3VudHJ5Q29kZV07XG4gICAgaWYobG9jYWxlKSB7XG4gICAgICByZXR1cm4gbG9jYWxlO1xuICAgIH1cbiAgfVxuXG4gIGlmKGNvbnRleHQuYWNjZXB0TGFuZ3VhZ2UpIHtcbiAgICBjb25zdCBsb2NhbGUgPSBwYXJzZUFjY2VwdExhbmd1YWdlKGNvbnRleHQuYWNjZXB0TGFuZ3VhZ2UpO1xuICAgIGlmKGxvY2FsZSkge1xuICAgICAgcmV0dXJuIGxvY2FsZTtcbiAgICB9XG4gIH1cblxuICBpZihjb250ZXh0LmlwQ291bnRyeSkge1xuICAgIGNvbnN0IGxvY2FsZSA9IGNvdW50cnlUb0xvY2FsZU1hcFtjb250ZXh0LmlwQ291bnRyeV07XG4gICAgaWYobG9jYWxlKSB7XG4gICAgICByZXR1cm4gbG9jYWxlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAnZW4nO1xufTtcblxuY29uc3QgcGFyc2VBY2NlcHRMYW5ndWFnZSA9IChhY2NlcHRMYW5ndWFnZTogc3RyaW5nKTogTG9jYWxlIHwgbnVsbCA9PiB7XG4gIGNvbnN0IGxhbmd1YWdlcyA9IGFjY2VwdExhbmd1YWdlXG4gICAgLnNwbGl0KCcsJylcbiAgICAubWFwKChsYW5nKSA9PiBsYW5nLnRyaW0oKS5zcGxpdCgnOycpWzBdKVxuICAgIC5maWx0ZXIoKGxhbmcpID0+IGxhbmcubGVuZ3RoID49IDIpO1xuXG4gIGZvcihjb25zdCBsYW5nIG9mIGxhbmd1YWdlcykge1xuICAgIGNvbnN0IGxvY2FsZSA9IGxhbmcuc3Vic3RyaW5nKDAsIDIpIGFzIExvY2FsZTtcbiAgICBpZihbJ2VuJywgJ2VzJywgJ2ZyJywgJ2RlJywgJ3B0JywgJ2l0J10uaW5jbHVkZXMobG9jYWxlKSkge1xuICAgICAgcmV0dXJuIGxvY2FsZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn07XG4iXSwibmFtZXMiOlsiY291bnRyeVRvTG9jYWxlTWFwIiwiQVIiLCJBVSIsIkJFIiwiQk8iLCJCUiIsIkNBIiwiQ0wiLCJDTyIsIkNSIiwiQ1UiLCJDViIsIkRPIiwiRUMiLCJFUyIsIkZSIiwiR0IiLCJHUSIsIkdUIiwiR1ciLCJITiIsIklUIiwiTEkiLCJMVSIsIk1DIiwiTVgiLCJNWiIsIk5JIiwiUEEiLCJQRSIsIlBZIiwiU00iLCJTViIsIlRMIiwiVVMiLCJWQSIsIlZFIiwicGhvbmVDb2RlVG9Mb2NhbGVNYXAiLCJkZXRlY3RMYW5ndWFnZSIsImNvbnRleHQiLCJ1c2VyUHJlZmVyZW5jZSIsInBob25lQ291bnRyeUNvZGUiLCJsb2NhbGUiLCJhY2NlcHRMYW5ndWFnZSIsInBhcnNlQWNjZXB0TGFuZ3VhZ2UiLCJpcENvdW50cnkiLCJsYW5ndWFnZXMiLCJzcGxpdCIsIm1hcCIsImxhbmciLCJ0cmltIiwiZmlsdGVyIiwibGVuZ3RoIiwic3Vic3RyaW5nIiwiaW5jbHVkZXMiXSwibWFwcGluZ3MiOiJBQVNBLE1BQU1BLHFCQUE2QztJQUNqREMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7SUFDSkMsSUFBSTtJQUNKQyxJQUFJO0lBQ0pDLElBQUk7QUFDTjtBQUVBLE1BQU1DLHVCQUErQztJQUNuRCxHQUFHO0lBQ0gsSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixJQUFJO0lBQ0osS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxNQUFNO0FBQ1I7QUFFQSxPQUFPLE1BQU1DLGlCQUFpQixDQUFDQztJQUM3QixJQUFHQSxRQUFRQyxjQUFjLEVBQUU7UUFDekIsT0FBT0QsUUFBUUMsY0FBYztJQUMvQjtJQUVBLElBQUdELFFBQVFFLGdCQUFnQixFQUFFO1FBQzNCLE1BQU1DLFNBQVNMLG9CQUFvQixDQUFDRSxRQUFRRSxnQkFBZ0IsQ0FBQztRQUM3RCxJQUFHQyxRQUFRO1lBQ1QsT0FBT0E7UUFDVDtJQUNGO0lBRUEsSUFBR0gsUUFBUUksY0FBYyxFQUFFO1FBQ3pCLE1BQU1ELFNBQVNFLG9CQUFvQkwsUUFBUUksY0FBYztRQUN6RCxJQUFHRCxRQUFRO1lBQ1QsT0FBT0E7UUFDVDtJQUNGO0lBRUEsSUFBR0gsUUFBUU0sU0FBUyxFQUFFO1FBQ3BCLE1BQU1ILFNBQVMxQyxrQkFBa0IsQ0FBQ3VDLFFBQVFNLFNBQVMsQ0FBQztRQUNwRCxJQUFHSCxRQUFRO1lBQ1QsT0FBT0E7UUFDVDtJQUNGO0lBRUEsT0FBTztBQUNULEVBQUU7QUFFRixNQUFNRSxzQkFBc0IsQ0FBQ0Q7SUFDM0IsTUFBTUcsWUFBWUgsZUFDZkksS0FBSyxDQUFDLEtBQ05DLEdBQUcsQ0FBQyxDQUFDQyxPQUFTQSxLQUFLQyxJQUFJLEdBQUdILEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUN2Q0ksTUFBTSxDQUFDLENBQUNGLE9BQVNBLEtBQUtHLE1BQU0sSUFBSTtJQUVuQyxLQUFJLE1BQU1ILFFBQVFILFVBQVc7UUFDM0IsTUFBTUosU0FBU08sS0FBS0ksU0FBUyxDQUFDLEdBQUc7UUFDakMsSUFBRztZQUFDO1lBQU07WUFBTTtZQUFNO1lBQU07WUFBTTtTQUFLLENBQUNDLFFBQVEsQ0FBQ1osU0FBUztZQUN4RCxPQUFPQTtRQUNUO0lBQ0Y7SUFFQSxPQUFPO0FBQ1QifQ==
|
|
@@ -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
|
*/
|
|
5
5
|
import type { Locale } from '../types/content.types.js';
|
|
6
6
|
export declare const extractLanguage: (locale: string) => string;
|
|
@@ -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
|
*/
|
|
5
5
|
export declare const completeTranslationWorkflow: (userLocale?: string, appLocale?: string) => Promise<void>;
|
|
6
6
|
export declare const runLocaleExamples: () => Promise<void>;
|
|
@@ -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
|
*/ import { extractLanguage, getFallbackChain, getPrimaryLanguages, getSupportedLocales, isRegionalLocale, isValidLocale } from './localeUtils.js';
|
|
5
5
|
/**
|
|
6
6
|
* Example: Locale Utilities with Regional Support
|
|
@@ -120,4 +120,4 @@ export const runLocaleExamples = async ()=>{
|
|
|
120
120
|
}; // Uncomment to run examples
|
|
121
121
|
// runLocaleExamples();
|
|
122
122
|
|
|
123
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL2xvY2FsZVV0aWxzLmV4YW1wbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQ29weXJpZ2h0cyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuIFNlZSB0aGUgYWNjb21wYW55aW5nIExJQ0VOU0UgZmlsZSBmb3IgdGVybXMuXG4gKi9cblxuaW1wb3J0IHtcbiAgZXh0cmFjdExhbmd1YWdlLFxuICBnZXRGYWxsYmFja0NoYWluLFxuICBnZXRQcmltYXJ5TGFuZ3VhZ2VzLFxuICBnZXRTdXBwb3J0ZWRMb2NhbGVzLFxuICBpc1JlZ2lvbmFsTG9jYWxlLFxuICBpc1ZhbGlkTG9jYWxlXG59IGZyb20gJy4vbG9jYWxlVXRpbHMuanMnO1xuXG4vKipcbiAqIEV4YW1wbGU6IExvY2FsZSBVdGlsaXRpZXMgd2l0aCBSZWdpb25hbCBTdXBwb3J0XG4gKlxuICogVGhpcyBleGFtcGxlIGRlbW9uc3RyYXRlcyBob3cgdG8gdXNlIHRoZSBsb2NhbGUgdXRpbGl0aWVzIGZvciBoYW5kbGluZ1xuICogcmVnaW9uYWwgbG9jYWxlcyAoZS5nLiwgXCJlbi11c1wiLCBcImVzLW14XCIpIHdpdGggbGFuZ3VhZ2UgZXh0cmFjdGlvblxuICogZm9yIHRyYW5zbGF0aW9uIEFQSXMgd2hpbGUgbWFpbnRhaW5pbmcgZnVsbCBsb2NhbGUgc3VwcG9ydCBmb3JcbiAqIHRpbWUsIGN1cnJlbmN5LCBhbmQgb3RoZXIgcmVnaW9uYWwgZm9ybWF0dGluZy5cbiAqL1xuXG4vLyBFeGFtcGxlIDE6IExhbmd1YWdlIEV4dHJhY3Rpb24gZm9yIFRyYW5zbGF0aW9uIEFQSXNcbmNvbnNvbGUubG9nKCc9PT0gTGFuZ3VhZ2UgRXh0cmFjdGlvbiBFeGFtcGxlcyA9PT0nKTtcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZW4tdXMnKSk7IC8vICdlbidcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZXMtbXgnKSk7IC8vICdlcydcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZnItY2EnKSk7IC8vICdmcidcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZW4nKSk7IC8vICdlbidcblxuLy8gRXhhbXBsZSAyOiBSZWdpb25hbCBMb2NhbGUgRGV0ZWN0aW9uXG5jb25zb2xlLmxvZygnXFxuPT09IFJlZ2lvbmFsIExvY2FsZSBEZXRlY3Rpb24gPT09Jyk7XG5jb25zb2xlLmxvZyhpc1JlZ2lvbmFsTG9jYWxlKCdlbi11cycpKTsgLy8gdHJ1ZVxuY29uc29sZS5sb2coaXNSZWdpb25hbExvY2FsZSgnZXMtbXgnKSk7IC8vIHRydWVcbmNvbnNvbGUubG9nKGlzUmVnaW9uYWxMb2NhbGUoJ2VuJykpOyAvLyBmYWxzZVxuY29uc29sZS5sb2coaXNSZWdpb25hbExvY2FsZSgnZnInKSk7IC8vIGZhbHNlXG5cbi8vIEV4YW1wbGUgMzogRmFsbGJhY2sgQ2hhaW4gR2VuZXJhdGlvblxuY29uc29sZS5sb2coJ1xcbj09PSBGYWxsYmFjayBDaGFpbiBFeGFtcGxlcyA9PT0nKTtcbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2VuLXVzJykpOyAvLyBbJ2VuLXVzJywgJ2VuJ11cbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2VzLW14JykpOyAvLyBbJ2VzLW14JywgJ2VzJ11cbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2ZyLWNhJykpOyAvLyBbJ2ZyLWNhJywgJ2ZyJ11cbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2VuJykpOyAvLyBbJ2VuJ11cblxuLy8gRXhhbXBsZSA0OiBUcmFuc2xhdGlvbiBBUEkgSW50ZWdyYXRpb25cbmNvbnN0IHRyYW5zbGF0ZVRleHQgPSBhc3luYyAodGV4dDogc3RyaW5nLCB0YXJnZXRMb2NhbGU6IHN0cmluZywgc291cmNlTG9jYWxlOiBzdHJpbmcgPSAnZW4nKSA9PiB7XG4gIC8vIEV4dHJhY3QgbGFuZ3VhZ2UgY29kZXMgZm9yIHRyYW5zbGF0aW9uIEFQSVxuICBjb25zdCB0YXJnZXRMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZSh0YXJnZXRMb2NhbGUpO1xuICBjb25zdCBzb3VyY2VMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZShzb3VyY2VMb2NhbGUpO1xuXG4gIGNvbnNvbGUubG9nKGBUcmFuc2xhdGluZyBmcm9tICR7c291cmNlTGFuZ3VhZ2V9IHRvICR7dGFyZ2V0TGFuZ3VhZ2V9YCk7XG4gIGNvbnNvbGUubG9nKGBGdWxsIGxvY2FsZXM6ICR7c291cmNlTG9jYWxlfSDihpIgJHt0YXJnZXRMb2NhbGV9YCk7XG5cbiAgLy8gQ2FsbCB0cmFuc2xhdGlvbiBBUEkgd2l0aCBsYW5ndWFnZSBjb2Rlc1xuICAvLyBjb25zdCByZXN1bHQgPSBhd2FpdCBnb29nbGVUcmFuc2xhdGVBUEkudHJhbnNsYXRlKHRleHQsIHRhcmdldExhbmd1YWdlLCBzb3VyY2VMYW5ndWFnZSk7XG5cbiAgcmV0dXJuIGBbVHJhbnNsYXRlZDogJHt0ZXh0fV1gO1xufTtcblxuLy8gRXhhbXBsZSA1OiBEYXRhYmFzZSBTdG9yYWdlIFN0cmF0ZWd5XG5jb25zdCBzdG9yZVRyYW5zbGF0aW9uID0gYXN5bmMgKGtleTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIGxvY2FsZTogc3RyaW5nKSA9PiB7XG4gIC8vIFN0b3JlIHdpdGggZnVsbCBsb2NhbGUgZm9yIHJlZ2lvbmFsIHN1cHBvcnRcbiAgY29uc29sZS5sb2coYFN0b3JpbmcgdHJhbnNsYXRpb24gZm9yIGtleSBcIiR7a2V5fVwiIHdpdGggbG9jYWxlIFwiJHtsb2NhbGV9XCJgKTtcblxuICAvLyBEYXRhYmFzZSByZWNvcmQgd291bGQgaW5jbHVkZTpcbiAgLy8gLSBrZXk6IFwid2VsY29tZV9tZXNzYWdlXCJcbiAgLy8gLSBsb2NhbGU6IFwiZW4tdXNcIiAoZnVsbCBsb2NhbGUgd2l0aCByZWdpb24pXG4gIC8vIC0gY29udGVudDogXCJXZWxjb21lIHRvIG91ciBVUyBzaXRlIVwiXG5cbiAgcmV0dXJuIHtrZXksIGxvY2FsZSwgY29udGVudH07XG59O1xuXG4vLyBFeGFtcGxlIDY6IENvbnRlbnQgUmV0cmlldmFsIHdpdGggRmFsbGJhY2tcbmNvbnN0IGdldENvbnRlbnRXaXRoRmFsbGJhY2sgPSBhc3luYyAoa2V5OiBzdHJpbmcsIHJlcXVlc3RlZExvY2FsZTogc3RyaW5nKSA9PiB7XG4gIGNvbnNvbGUubG9nKGBcXG49PT0gQ29udGVudCBSZXRyaWV2YWwgZm9yIFwiJHtrZXl9XCIgd2l0aCBsb2NhbGUgXCIke3JlcXVlc3RlZExvY2FsZX1cIiA9PT1gKTtcblxuICAvLyAxLiBUcnkgZXhhY3QgbG9jYWxlIG1hdGNoIGZpcnN0XG4gIGNvbnNvbGUubG9nKGAxLiBUcnlpbmcgZXhhY3QgbWF0Y2g6ICR7cmVxdWVzdGVkTG9jYWxlfWApO1xuXG4gIC8vIDIuIElmIHJlZ2lvbmFsIGxvY2FsZSBhbmQgbm8gZXhhY3QgbWF0Y2gsIHRyeSBsYW5ndWFnZSBmYWxsYmFja1xuICBpZihpc1JlZ2lvbmFsTG9jYWxlKHJlcXVlc3RlZExvY2FsZSkpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZShyZXF1ZXN0ZWRMb2NhbGUpO1xuICAgIGNvbnNvbGUubG9nKGAyLiBUcnlpbmcgbGFuZ3VhZ2UgZmFsbGJhY2s6ICR7bGFuZ3VhZ2V9YCk7XG5cbiAgICAvLyBJZiBmb3VuZCwgc3RvcmUgdGhlIHJlZ2lvbmFsIHZlcnNpb24gZm9yIGZ1dHVyZSB1c2VcbiAgICBjb25zb2xlLmxvZyhgMy4gU3RvcmluZyBleHRyYWN0ZWQgY29udGVudCBmb3IgJHtyZXF1ZXN0ZWRMb2NhbGV9YCk7XG4gIH1cblxuICAvLyAzLiBJZiBzdGlsbCBubyBtYXRjaCwgdXNlIGFwcCBkZWZhdWx0IGxvY2FsZVxuICBjb25zb2xlLmxvZygnNC4gRmFsbGluZyBiYWNrIHRvIGFwcCBkZWZhdWx0IGxvY2FsZScpO1xuXG4gIHJldHVybiBgW0NvbnRlbnQgZm9yICR7a2V5fSBpbiAke3JlcXVlc3RlZExvY2FsZX1dYDtcbn07XG5cbi8vIEV4YW1wbGUgNzogVmFsaWRhdGlvblxuY29uc29sZS5sb2coJ1xcbj09PSBMb2NhbGUgVmFsaWRhdGlvbiA9PT0nKTtcbmNvbnNvbGUubG9nKGlzVmFsaWRMb2NhbGUoJ2VuLXVzJykpOyAvLyB0cnVlXG5jb25zb2xlLmxvZyhpc1ZhbGlkTG9jYWxlKCdlcy1teCcpKTsgLy8gdHJ1ZVxuY29uc29sZS5sb2coaXNWYWxpZExvY2FsZSgnaW52YWxpZCcpKTsgLy8gZmFsc2VcbmNvbnNvbGUubG9nKGlzVmFsaWRMb2NhbGUoJ2VuLXh4JykpOyAvLyBmYWxzZVxuXG4vLyBFeGFtcGxlIDg6IFN1cHBvcnRlZCBMb2NhbGVzXG5jb25zb2xlLmxvZygnXFxuPT09IFN1cHBvcnRlZCBMb2NhbGVzID09PScpO1xuY29uc3Qgc3VwcG9ydGVkTG9jYWxlcyA9IGdldFN1cHBvcnRlZExvY2FsZXMoKTtcbmNvbnNvbGUubG9nKGBUb3RhbCBzdXBwb3J0ZWQgbG9jYWxlczogJHtzdXBwb3J0ZWRMb2NhbGVzLmxlbmd0aH1gKTtcbmNvbnNvbGUubG9nKCdFbmdsaXNoIHZhcmlhbnRzOicsIHN1cHBvcnRlZExvY2FsZXMuZmlsdGVyKChsKSA9PiBsLnN0YXJ0c1dpdGgoJ2VuJykpKTtcbmNvbnNvbGUubG9nKCdTcGFuaXNoIHZhcmlhbnRzOicsIHN1cHBvcnRlZExvY2FsZXMuZmlsdGVyKChsKSA9PiBsLnN0YXJ0c1dpdGgoJ2VzJykpKTtcblxuLy8gRXhhbXBsZSA5OiBQcmltYXJ5IExhbmd1YWdlc1xuY29uc29sZS5sb2coJ1xcbj09PSBQcmltYXJ5IExhbmd1YWdlcyA9PT0nKTtcbmNvbnN0IHByaW1hcnlMYW5ndWFnZXMgPSBnZXRQcmltYXJ5TGFuZ3VhZ2VzKCk7XG5jb25zb2xlLmxvZygnUHJpbWFyeSBsYW5ndWFnZXM6JywgcHJpbWFyeUxhbmd1YWdlcyk7XG5cbi8vIEV4YW1wbGUgMTA6IENvbXBsZXRlIFdvcmtmbG93XG5leHBvcnQgY29uc3QgY29tcGxldGVUcmFuc2xhdGlvbldvcmtmbG93ID0gYXN5bmMgKHVzZXJMb2NhbGUgPSAnZXMtbXgnLCBhcHBMb2NhbGUgPSAnZW4tdXMnKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdcXG49PT0gQ29tcGxldGUgVHJhbnNsYXRpb24gV29ya2Zsb3cgPT09Jyk7XG5cbiAgY29uc3Qga2V5ID0gJ3dlbGNvbWVfbWVzc2FnZSc7XG5cbiAgLy8gMS4gRXh0cmFjdCBsYW5ndWFnZSBmb3IgdHJhbnNsYXRpb24gQVBJXG4gIGNvbnN0IHVzZXJMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZSh1c2VyTG9jYWxlKTtcbiAgY29uc3QgYXBwTGFuZ3VhZ2UgPSBleHRyYWN0TGFuZ3VhZ2UoYXBwTG9jYWxlKTtcblxuICBjb25zb2xlLmxvZyhgVXNlciBsb2NhbGU6ICR7dXNlckxvY2FsZX0gKGxhbmd1YWdlOiAke3VzZXJMYW5ndWFnZX0pYCk7XG4gIGNvbnNvbGUubG9nKGBBcHAgbG9jYWxlOiAke2FwcExvY2FsZX0gKGxhbmd1YWdlOiAke2FwcExhbmd1YWdlfSlgKTtcblxuICAvLyAyLiBDaGVjayBpZiB3ZSBuZWVkIHRyYW5zbGF0aW9uXG4gIGlmKHVzZXJMYW5ndWFnZSAhPT0gYXBwTGFuZ3VhZ2UpIHtcbiAgICBjb25zb2xlLmxvZygnVHJhbnNsYXRpb24gbmVlZGVkIScpO1xuXG4gICAgLy8gMy4gR2V0IHNvdXJjZSBjb250ZW50IChmcm9tIGFwcCBsb2NhbGUpXG4gICAgY29uc3Qgc291cmNlQ29udGVudCA9IGF3YWl0IGdldENvbnRlbnRXaXRoRmFsbGJhY2soa2V5LCBhcHBMb2NhbGUpO1xuXG4gICAgLy8gNC4gVHJhbnNsYXRlIHVzaW5nIGxhbmd1YWdlIGNvZGVzXG4gICAgY29uc3QgdHJhbnNsYXRlZENvbnRlbnQgPSBhd2FpdCB0cmFuc2xhdGVUZXh0KHNvdXJjZUNvbnRlbnQsIHVzZXJMYW5ndWFnZSwgYXBwTGFuZ3VhZ2UpO1xuXG4gICAgLy8gNS4gU3RvcmUgd2l0aCBmdWxsIGxvY2FsZVxuICAgIGF3YWl0IHN0b3JlVHJhbnNsYXRpb24oa2V5LCB0cmFuc2xhdGVkQ29udGVudCwgdXNlckxvY2FsZSk7XG5cbiAgICBjb25zb2xlLmxvZyhgVHJhbnNsYXRpb24gY29tcGxldGU6ICR7dHJhbnNsYXRlZENvbnRlbnR9YCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coJ05vIHRyYW5zbGF0aW9uIG5lZWRlZCAtIHNhbWUgbGFuZ3VhZ2UnKTtcbiAgfVxufTtcblxuLy8gUnVuIGV4YW1wbGVzXG5leHBvcnQgY29uc3QgcnVuTG9jYWxlRXhhbXBsZXMgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdMb2NhbGUgVXRpbGl0aWVzIEV4YW1wbGVzXFxuJyk7XG5cbiAgLy8gUnVuIHN5bmNocm9ub3VzIGV4YW1wbGVzXG4gIGNvbnNvbGUubG9nKCdTeW5jaHJvbm91cyBleGFtcGxlcyBjb21wbGV0ZWQgYWJvdmUnKTtcblxuICAvLyBSdW4gYXN5bmMgZXhhbXBsZXNcbiAgYXdhaXQgZ2V0Q29udGVudFdpdGhGYWxsYmFjaygnd2VsY29tZV9tZXNzYWdlJywgJ2VzLW14Jyk7XG4gIGF3YWl0IGdldENvbnRlbnRXaXRoRmFsbGJhY2soJ3dlbGNvbWVfbWVzc2FnZScsICdlbicpO1xuICBhd2FpdCBjb21wbGV0ZVRyYW5zbGF0aW9uV29ya2Zsb3coKTtcblxuICBjb25zb2xlLmxvZygnXFxuPT09IEV4YW1wbGUgQ29tcGxldGUgPT09Jyk7XG59O1xuXG4vLyBVbmNvbW1lbnQgdG8gcnVuIGV4YW1wbGVzXG4vLyBydW5Mb2NhbGVFeGFtcGxlcygpO1xuIl0sIm5hbWVzIjpbImV4dHJhY3RMYW5ndWFnZSIsImdldEZhbGxiYWNrQ2hhaW4iLCJnZXRQcmltYXJ5TGFuZ3VhZ2VzIiwiZ2V0U3VwcG9ydGVkTG9jYWxlcyIsImlzUmVnaW9uYWxMb2NhbGUiLCJpc1ZhbGlkTG9jYWxlIiwiY29uc29sZSIsImxvZyIsInRyYW5zbGF0ZVRleHQiLCJ0ZXh0IiwidGFyZ2V0TG9jYWxlIiwic291cmNlTG9jYWxlIiwidGFyZ2V0TGFuZ3VhZ2UiLCJzb3VyY2VMYW5ndWFnZSIsInN0b3JlVHJhbnNsYXRpb24iLCJrZXkiLCJjb250ZW50IiwibG9jYWxlIiwiZ2V0Q29udGVudFdpdGhGYWxsYmFjayIsInJlcXVlc3RlZExvY2FsZSIsImxhbmd1YWdlIiwic3VwcG9ydGVkTG9jYWxlcyIsImxlbmd0aCIsImZpbHRlciIsImwiLCJzdGFydHNXaXRoIiwicHJpbWFyeUxhbmd1YWdlcyIsImNvbXBsZXRlVHJhbnNsYXRpb25Xb3JrZmxvdyIsInVzZXJMb2NhbGUiLCJhcHBMb2NhbGUiLCJ1c2VyTGFuZ3VhZ2UiLCJhcHBMYW5ndWFnZSIsInNvdXJjZUNvbnRlbnQiLCJ0cmFuc2xhdGVkQ29udGVudCIsInJ1bkxvY2FsZUV4YW1wbGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FFRCxTQUNFQSxlQUFlLEVBQ2ZDLGdCQUFnQixFQUNoQkMsbUJBQW1CLEVBQ25CQyxtQkFBbUIsRUFDbkJDLGdCQUFnQixFQUNoQkMsYUFBYSxRQUNSLG1CQUFtQjtBQUUxQjs7Ozs7OztDQU9DLEdBRUQsc0RBQXNEO0FBQ3REQyxRQUFRQyxHQUFHLENBQUM7QUFDWkQsUUFBUUMsR0FBRyxDQUFDUCxnQkFBZ0IsV0FBVyxPQUFPO0FBQzlDTSxRQUFRQyxHQUFHLENBQUNQLGdCQUFnQixXQUFXLE9BQU87QUFDOUNNLFFBQVFDLEdBQUcsQ0FBQ1AsZ0JBQWdCLFdBQVcsT0FBTztBQUM5Q00sUUFBUUMsR0FBRyxDQUFDUCxnQkFBZ0IsUUFBUSxPQUFPO0FBRTNDLHVDQUF1QztBQUN2Q00sUUFBUUMsR0FBRyxDQUFDO0FBQ1pELFFBQVFDLEdBQUcsQ0FBQ0gsaUJBQWlCLFdBQVcsT0FBTztBQUMvQ0UsUUFBUUMsR0FBRyxDQUFDSCxpQkFBaUIsV0FBVyxPQUFPO0FBQy9DRSxRQUFRQyxHQUFHLENBQUNILGlCQUFpQixRQUFRLFFBQVE7QUFDN0NFLFFBQVFDLEdBQUcsQ0FB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
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC9ubGFicy1yZWFrdG9yLXJlbGVhc2UuZU1RNVNoL2NoZWNrb3V0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL2xvY2FsZVV0aWxzLmV4YW1wbGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIGlzIHN1YmplY3QgdG8gdGhlIGFjY29tcGFueWluZyBjb21tZXJjaWFsIExJQ0VOU0UuXG4gKi9cblxuaW1wb3J0IHtcbiAgZXh0cmFjdExhbmd1YWdlLFxuICBnZXRGYWxsYmFja0NoYWluLFxuICBnZXRQcmltYXJ5TGFuZ3VhZ2VzLFxuICBnZXRTdXBwb3J0ZWRMb2NhbGVzLFxuICBpc1JlZ2lvbmFsTG9jYWxlLFxuICBpc1ZhbGlkTG9jYWxlXG59IGZyb20gJy4vbG9jYWxlVXRpbHMuanMnO1xuXG4vKipcbiAqIEV4YW1wbGU6IExvY2FsZSBVdGlsaXRpZXMgd2l0aCBSZWdpb25hbCBTdXBwb3J0XG4gKlxuICogVGhpcyBleGFtcGxlIGRlbW9uc3RyYXRlcyBob3cgdG8gdXNlIHRoZSBsb2NhbGUgdXRpbGl0aWVzIGZvciBoYW5kbGluZ1xuICogcmVnaW9uYWwgbG9jYWxlcyAoZS5nLiwgXCJlbi11c1wiLCBcImVzLW14XCIpIHdpdGggbGFuZ3VhZ2UgZXh0cmFjdGlvblxuICogZm9yIHRyYW5zbGF0aW9uIEFQSXMgd2hpbGUgbWFpbnRhaW5pbmcgZnVsbCBsb2NhbGUgc3VwcG9ydCBmb3JcbiAqIHRpbWUsIGN1cnJlbmN5LCBhbmQgb3RoZXIgcmVnaW9uYWwgZm9ybWF0dGluZy5cbiAqL1xuXG4vLyBFeGFtcGxlIDE6IExhbmd1YWdlIEV4dHJhY3Rpb24gZm9yIFRyYW5zbGF0aW9uIEFQSXNcbmNvbnNvbGUubG9nKCc9PT0gTGFuZ3VhZ2UgRXh0cmFjdGlvbiBFeGFtcGxlcyA9PT0nKTtcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZW4tdXMnKSk7IC8vICdlbidcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZXMtbXgnKSk7IC8vICdlcydcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZnItY2EnKSk7IC8vICdmcidcbmNvbnNvbGUubG9nKGV4dHJhY3RMYW5ndWFnZSgnZW4nKSk7IC8vICdlbidcblxuLy8gRXhhbXBsZSAyOiBSZWdpb25hbCBMb2NhbGUgRGV0ZWN0aW9uXG5jb25zb2xlLmxvZygnXFxuPT09IFJlZ2lvbmFsIExvY2FsZSBEZXRlY3Rpb24gPT09Jyk7XG5jb25zb2xlLmxvZyhpc1JlZ2lvbmFsTG9jYWxlKCdlbi11cycpKTsgLy8gdHJ1ZVxuY29uc29sZS5sb2coaXNSZWdpb25hbExvY2FsZSgnZXMtbXgnKSk7IC8vIHRydWVcbmNvbnNvbGUubG9nKGlzUmVnaW9uYWxMb2NhbGUoJ2VuJykpOyAvLyBmYWxzZVxuY29uc29sZS5sb2coaXNSZWdpb25hbExvY2FsZSgnZnInKSk7IC8vIGZhbHNlXG5cbi8vIEV4YW1wbGUgMzogRmFsbGJhY2sgQ2hhaW4gR2VuZXJhdGlvblxuY29uc29sZS5sb2coJ1xcbj09PSBGYWxsYmFjayBDaGFpbiBFeGFtcGxlcyA9PT0nKTtcbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2VuLXVzJykpOyAvLyBbJ2VuLXVzJywgJ2VuJ11cbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2VzLW14JykpOyAvLyBbJ2VzLW14JywgJ2VzJ11cbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2ZyLWNhJykpOyAvLyBbJ2ZyLWNhJywgJ2ZyJ11cbmNvbnNvbGUubG9nKGdldEZhbGxiYWNrQ2hhaW4oJ2VuJykpOyAvLyBbJ2VuJ11cblxuLy8gRXhhbXBsZSA0OiBUcmFuc2xhdGlvbiBBUEkgSW50ZWdyYXRpb25cbmNvbnN0IHRyYW5zbGF0ZVRleHQgPSBhc3luYyAodGV4dDogc3RyaW5nLCB0YXJnZXRMb2NhbGU6IHN0cmluZywgc291cmNlTG9jYWxlOiBzdHJpbmcgPSAnZW4nKSA9PiB7XG4gIC8vIEV4dHJhY3QgbGFuZ3VhZ2UgY29kZXMgZm9yIHRyYW5zbGF0aW9uIEFQSVxuICBjb25zdCB0YXJnZXRMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZSh0YXJnZXRMb2NhbGUpO1xuICBjb25zdCBzb3VyY2VMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZShzb3VyY2VMb2NhbGUpO1xuXG4gIGNvbnNvbGUubG9nKGBUcmFuc2xhdGluZyBmcm9tICR7c291cmNlTGFuZ3VhZ2V9IHRvICR7dGFyZ2V0TGFuZ3VhZ2V9YCk7XG4gIGNvbnNvbGUubG9nKGBGdWxsIGxvY2FsZXM6ICR7c291cmNlTG9jYWxlfSDihpIgJHt0YXJnZXRMb2NhbGV9YCk7XG5cbiAgLy8gQ2FsbCB0cmFuc2xhdGlvbiBBUEkgd2l0aCBsYW5ndWFnZSBjb2Rlc1xuICAvLyBjb25zdCByZXN1bHQgPSBhd2FpdCBnb29nbGVUcmFuc2xhdGVBUEkudHJhbnNsYXRlKHRleHQsIHRhcmdldExhbmd1YWdlLCBzb3VyY2VMYW5ndWFnZSk7XG5cbiAgcmV0dXJuIGBbVHJhbnNsYXRlZDogJHt0ZXh0fV1gO1xufTtcblxuLy8gRXhhbXBsZSA1OiBEYXRhYmFzZSBTdG9yYWdlIFN0cmF0ZWd5XG5jb25zdCBzdG9yZVRyYW5zbGF0aW9uID0gYXN5bmMgKGtleTogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIGxvY2FsZTogc3RyaW5nKSA9PiB7XG4gIC8vIFN0b3JlIHdpdGggZnVsbCBsb2NhbGUgZm9yIHJlZ2lvbmFsIHN1cHBvcnRcbiAgY29uc29sZS5sb2coYFN0b3JpbmcgdHJhbnNsYXRpb24gZm9yIGtleSBcIiR7a2V5fVwiIHdpdGggbG9jYWxlIFwiJHtsb2NhbGV9XCJgKTtcblxuICAvLyBEYXRhYmFzZSByZWNvcmQgd291bGQgaW5jbHVkZTpcbiAgLy8gLSBrZXk6IFwid2VsY29tZV9tZXNzYWdlXCJcbiAgLy8gLSBsb2NhbGU6IFwiZW4tdXNcIiAoZnVsbCBsb2NhbGUgd2l0aCByZWdpb24pXG4gIC8vIC0gY29udGVudDogXCJXZWxjb21lIHRvIG91ciBVUyBzaXRlIVwiXG5cbiAgcmV0dXJuIHtrZXksIGxvY2FsZSwgY29udGVudH07XG59O1xuXG4vLyBFeGFtcGxlIDY6IENvbnRlbnQgUmV0cmlldmFsIHdpdGggRmFsbGJhY2tcbmNvbnN0IGdldENvbnRlbnRXaXRoRmFsbGJhY2sgPSBhc3luYyAoa2V5OiBzdHJpbmcsIHJlcXVlc3RlZExvY2FsZTogc3RyaW5nKSA9PiB7XG4gIGNvbnNvbGUubG9nKGBcXG49PT0gQ29udGVudCBSZXRyaWV2YWwgZm9yIFwiJHtrZXl9XCIgd2l0aCBsb2NhbGUgXCIke3JlcXVlc3RlZExvY2FsZX1cIiA9PT1gKTtcblxuICAvLyAxLiBUcnkgZXhhY3QgbG9jYWxlIG1hdGNoIGZpcnN0XG4gIGNvbnNvbGUubG9nKGAxLiBUcnlpbmcgZXhhY3QgbWF0Y2g6ICR7cmVxdWVzdGVkTG9jYWxlfWApO1xuXG4gIC8vIDIuIElmIHJlZ2lvbmFsIGxvY2FsZSBhbmQgbm8gZXhhY3QgbWF0Y2gsIHRyeSBsYW5ndWFnZSBmYWxsYmFja1xuICBpZihpc1JlZ2lvbmFsTG9jYWxlKHJlcXVlc3RlZExvY2FsZSkpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZShyZXF1ZXN0ZWRMb2NhbGUpO1xuICAgIGNvbnNvbGUubG9nKGAyLiBUcnlpbmcgbGFuZ3VhZ2UgZmFsbGJhY2s6ICR7bGFuZ3VhZ2V9YCk7XG5cbiAgICAvLyBJZiBmb3VuZCwgc3RvcmUgdGhlIHJlZ2lvbmFsIHZlcnNpb24gZm9yIGZ1dHVyZSB1c2VcbiAgICBjb25zb2xlLmxvZyhgMy4gU3RvcmluZyBleHRyYWN0ZWQgY29udGVudCBmb3IgJHtyZXF1ZXN0ZWRMb2NhbGV9YCk7XG4gIH1cblxuICAvLyAzLiBJZiBzdGlsbCBubyBtYXRjaCwgdXNlIGFwcCBkZWZhdWx0IGxvY2FsZVxuICBjb25zb2xlLmxvZygnNC4gRmFsbGluZyBiYWNrIHRvIGFwcCBkZWZhdWx0IGxvY2FsZScpO1xuXG4gIHJldHVybiBgW0NvbnRlbnQgZm9yICR7a2V5fSBpbiAke3JlcXVlc3RlZExvY2FsZX1dYDtcbn07XG5cbi8vIEV4YW1wbGUgNzogVmFsaWRhdGlvblxuY29uc29sZS5sb2coJ1xcbj09PSBMb2NhbGUgVmFsaWRhdGlvbiA9PT0nKTtcbmNvbnNvbGUubG9nKGlzVmFsaWRMb2NhbGUoJ2VuLXVzJykpOyAvLyB0cnVlXG5jb25zb2xlLmxvZyhpc1ZhbGlkTG9jYWxlKCdlcy1teCcpKTsgLy8gdHJ1ZVxuY29uc29sZS5sb2coaXNWYWxpZExvY2FsZSgnaW52YWxpZCcpKTsgLy8gZmFsc2VcbmNvbnNvbGUubG9nKGlzVmFsaWRMb2NhbGUoJ2VuLXh4JykpOyAvLyBmYWxzZVxuXG4vLyBFeGFtcGxlIDg6IFN1cHBvcnRlZCBMb2NhbGVzXG5jb25zb2xlLmxvZygnXFxuPT09IFN1cHBvcnRlZCBMb2NhbGVzID09PScpO1xuY29uc3Qgc3VwcG9ydGVkTG9jYWxlcyA9IGdldFN1cHBvcnRlZExvY2FsZXMoKTtcbmNvbnNvbGUubG9nKGBUb3RhbCBzdXBwb3J0ZWQgbG9jYWxlczogJHtzdXBwb3J0ZWRMb2NhbGVzLmxlbmd0aH1gKTtcbmNvbnNvbGUubG9nKCdFbmdsaXNoIHZhcmlhbnRzOicsIHN1cHBvcnRlZExvY2FsZXMuZmlsdGVyKChsKSA9PiBsLnN0YXJ0c1dpdGgoJ2VuJykpKTtcbmNvbnNvbGUubG9nKCdTcGFuaXNoIHZhcmlhbnRzOicsIHN1cHBvcnRlZExvY2FsZXMuZmlsdGVyKChsKSA9PiBsLnN0YXJ0c1dpdGgoJ2VzJykpKTtcblxuLy8gRXhhbXBsZSA5OiBQcmltYXJ5IExhbmd1YWdlc1xuY29uc29sZS5sb2coJ1xcbj09PSBQcmltYXJ5IExhbmd1YWdlcyA9PT0nKTtcbmNvbnN0IHByaW1hcnlMYW5ndWFnZXMgPSBnZXRQcmltYXJ5TGFuZ3VhZ2VzKCk7XG5jb25zb2xlLmxvZygnUHJpbWFyeSBsYW5ndWFnZXM6JywgcHJpbWFyeUxhbmd1YWdlcyk7XG5cbi8vIEV4YW1wbGUgMTA6IENvbXBsZXRlIFdvcmtmbG93XG5leHBvcnQgY29uc3QgY29tcGxldGVUcmFuc2xhdGlvbldvcmtmbG93ID0gYXN5bmMgKHVzZXJMb2NhbGUgPSAnZXMtbXgnLCBhcHBMb2NhbGUgPSAnZW4tdXMnKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdcXG49PT0gQ29tcGxldGUgVHJhbnNsYXRpb24gV29ya2Zsb3cgPT09Jyk7XG5cbiAgY29uc3Qga2V5ID0gJ3dlbGNvbWVfbWVzc2FnZSc7XG5cbiAgLy8gMS4gRXh0cmFjdCBsYW5ndWFnZSBmb3IgdHJhbnNsYXRpb24gQVBJXG4gIGNvbnN0IHVzZXJMYW5ndWFnZSA9IGV4dHJhY3RMYW5ndWFnZSh1c2VyTG9jYWxlKTtcbiAgY29uc3QgYXBwTGFuZ3VhZ2UgPSBleHRyYWN0TGFuZ3VhZ2UoYXBwTG9jYWxlKTtcblxuICBjb25zb2xlLmxvZyhgVXNlciBsb2NhbGU6ICR7dXNlckxvY2FsZX0gKGxhbmd1YWdlOiAke3VzZXJMYW5ndWFnZX0pYCk7XG4gIGNvbnNvbGUubG9nKGBBcHAgbG9jYWxlOiAke2FwcExvY2FsZX0gKGxhbmd1YWdlOiAke2FwcExhbmd1YWdlfSlgKTtcblxuICAvLyAyLiBDaGVjayBpZiB3ZSBuZWVkIHRyYW5zbGF0aW9uXG4gIGlmKHVzZXJMYW5ndWFnZSAhPT0gYXBwTGFuZ3VhZ2UpIHtcbiAgICBjb25zb2xlLmxvZygnVHJhbnNsYXRpb24gbmVlZGVkIScpO1xuXG4gICAgLy8gMy4gR2V0IHNvdXJjZSBjb250ZW50IChmcm9tIGFwcCBsb2NhbGUpXG4gICAgY29uc3Qgc291cmNlQ29udGVudCA9IGF3YWl0IGdldENvbnRlbnRXaXRoRmFsbGJhY2soa2V5LCBhcHBMb2NhbGUpO1xuXG4gICAgLy8gNC4gVHJhbnNsYXRlIHVzaW5nIGxhbmd1YWdlIGNvZGVzXG4gICAgY29uc3QgdHJhbnNsYXRlZENvbnRlbnQgPSBhd2FpdCB0cmFuc2xhdGVUZXh0KHNvdXJjZUNvbnRlbnQsIHVzZXJMYW5ndWFnZSwgYXBwTGFuZ3VhZ2UpO1xuXG4gICAgLy8gNS4gU3RvcmUgd2l0aCBmdWxsIGxvY2FsZVxuICAgIGF3YWl0IHN0b3JlVHJhbnNsYXRpb24oa2V5LCB0cmFuc2xhdGVkQ29udGVudCwgdXNlckxvY2FsZSk7XG5cbiAgICBjb25zb2xlLmxvZyhgVHJhbnNsYXRpb24gY29tcGxldGU6ICR7dHJhbnNsYXRlZENvbnRlbnR9YCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc29sZS5sb2coJ05vIHRyYW5zbGF0aW9uIG5lZWRlZCAtIHNhbWUgbGFuZ3VhZ2UnKTtcbiAgfVxufTtcblxuLy8gUnVuIGV4YW1wbGVzXG5leHBvcnQgY29uc3QgcnVuTG9jYWxlRXhhbXBsZXMgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnNvbGUubG9nKCdMb2NhbGUgVXRpbGl0aWVzIEV4YW1wbGVzXFxuJyk7XG5cbiAgLy8gUnVuIHN5bmNocm9ub3VzIGV4YW1wbGVzXG4gIGNvbnNvbGUubG9nKCdTeW5jaHJvbm91cyBleGFtcGxlcyBjb21wbGV0ZWQgYWJvdmUnKTtcblxuICAvLyBSdW4gYXN5bmMgZXhhbXBsZXNcbiAgYXdhaXQgZ2V0Q29udGVudFdpdGhGYWxsYmFjaygnd2VsY29tZV9tZXNzYWdlJywgJ2VzLW14Jyk7XG4gIGF3YWl0IGdldENvbnRlbnRXaXRoRmFsbGJhY2soJ3dlbGNvbWVfbWVzc2FnZScsICdlbicpO1xuICBhd2FpdCBjb21wbGV0ZVRyYW5zbGF0aW9uV29ya2Zsb3coKTtcblxuICBjb25zb2xlLmxvZygnXFxuPT09IEV4YW1wbGUgQ29tcGxldGUgPT09Jyk7XG59O1xuXG4vLyBVbmNvbW1lbnQgdG8gcnVuIGV4YW1wbGVzXG4vLyBydW5Mb2NhbGVFeGFtcGxlcygpO1xuIl0sIm5hbWVzIjpbImV4dHJhY3RMYW5ndWFnZSIsImdldEZhbGxiYWNrQ2hhaW4iLCJnZXRQcmltYXJ5TGFuZ3VhZ2VzIiwiZ2V0U3VwcG9ydGVkTG9jYWxlcyIsImlzUmVnaW9uYWxMb2NhbGUiLCJpc1ZhbGlkTG9jYWxlIiwiY29uc29sZSIsImxvZyIsInRyYW5zbGF0ZVRleHQiLCJ0ZXh0IiwidGFyZ2V0TG9jYWxlIiwic291cmNlTG9jYWxlIiwidGFyZ2V0TGFuZ3VhZ2UiLCJzb3VyY2VMYW5ndWFnZSIsInN0b3JlVHJhbnNsYXRpb24iLCJrZXkiLCJjb250ZW50IiwibG9jYWxlIiwiZ2V0Q29udGVudFdpdGhGYWxsYmFjayIsInJlcXVlc3RlZExvY2FsZSIsImxhbmd1YWdlIiwic3VwcG9ydGVkTG9jYWxlcyIsImxlbmd0aCIsImZpbHRlciIsImwiLCJzdGFydHNXaXRoIiwicHJpbWFyeUxhbmd1YWdlcyIsImNvbXBsZXRlVHJhbnNsYXRpb25Xb3JrZmxvdyIsInVzZXJMb2NhbGUiLCJhcHBMb2NhbGUiLCJ1c2VyTGFuZ3VhZ2UiLCJhcHBMYW5ndWFnZSIsInNvdXJjZUNvbnRlbnQiLCJ0cmFuc2xhdGVkQ29udGVudCIsInJ1bkxvY2FsZUV4YW1wbGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FFRCxTQUNFQSxlQUFlLEVBQ2ZDLGdCQUFnQixFQUNoQkMsbUJBQW1CLEVBQ25CQyxtQkFBbUIsRUFDbkJDLGdCQUFnQixFQUNoQkMsYUFBYSxRQUNSLG1CQUFtQjtBQUUxQjs7Ozs7OztDQU9DLEdBRUQsc0RBQXNEO0FBQ3REQyxRQUFRQyxHQUFHLENBQUM7QUFDWkQsUUFBUUMsR0FBRyxDQUFDUCxnQkFBZ0IsV0FBVyxPQUFPO0FBQzlDTSxRQUFRQyxHQUFHLENBQUNQLGdCQUFnQixXQUFXLE9BQU87QUFDOUNNLFFBQVFDLEdBQUcsQ0FBQ1AsZ0JBQWdCLFdBQVcsT0FBTztBQUM5Q00sUUFBUUMsR0FBRyxDQUFDUCxnQkFBZ0IsUUFBUSxPQUFPO0FBRTNDLHVDQUF1QztBQUN2Q00sUUFBUUMsR0FBRyxDQUFDO0FBQ1pELFFBQVFDLEdBQUcsQ0FBQ0gsaUJBQWlCLFdBQVcsT0FBTztBQUMvQ0UsUUFBUUMsR0FBRyxDQUFDSCxpQkFBaUIsV0FBVyxPQUFPO0FBQy9DRSxRQUFRQyxHQUFHLENBQUNILGlCQUFpQixRQUFRLFFBQVE7QUFDN0NFLFFBQVFDLEdBQUcsQ0FBQ0gsaUJBQWlCLFFBQVEsUUFBUTtBQUU3Qyx1Q0FBdUM7QUFDdkNFLFFBQVFDLEdBQUcsQ0FBQztBQUNaRCxRQUFRQyxHQUFHLENBQUNOLGlCQUFpQixXQUFXLGtCQUFrQjtBQUMxREssUUFBUUMsR0FBRyxDQUFDTixpQkFBaUIsV0FBVyxrQkFBa0I7QUFDMURLLFFBQVFDLEdBQUcsQ0FBQ04saUJBQWlCLFdBQVcsa0JBQWtCO0FBQzFESyxRQUFRQyxHQUFHLENBQUNOLGlCQUFpQixRQUFRLFNBQVM7QUFFOUMseUNBQXlDO0FBQ3pDLE1BQU1PLGdCQUFnQixPQUFPQyxNQUFjQyxjQUFzQkMsZUFBdUIsSUFBSTtJQUMxRiw2Q0FBNkM7SUFDN0MsTUFBTUMsaUJBQWlCWixnQkFBZ0JVO0lBQ3ZDLE1BQU1HLGlCQUFpQmIsZ0JBQWdCVztJQUV2Q0wsUUFBUUMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLEVBQUVNLGVBQWUsSUFBSSxFQUFFRCxnQkFBZ0I7SUFDckVOLFFBQVFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRUksYUFBYSxHQUFHLEVBQUVELGNBQWM7SUFFN0QsMkNBQTJDO0lBQzNDLDJGQUEyRjtJQUUzRixPQUFPLENBQUMsYUFBYSxFQUFFRCxLQUFLLENBQUMsQ0FBQztBQUNoQztBQUVBLHVDQUF1QztBQUN2QyxNQUFNSyxtQkFBbUIsT0FBT0MsS0FBYUMsU0FBaUJDO0lBQzVELDhDQUE4QztJQUM5Q1gsUUFBUUMsR0FBRyxDQUFDLENBQUMsNkJBQTZCLEVBQUVRLElBQUksZUFBZSxFQUFFRSxPQUFPLENBQUMsQ0FBQztJQUUxRSxpQ0FBaUM7SUFDakMsMkJBQTJCO0lBQzNCLDhDQUE4QztJQUM5Qyx1Q0FBdUM7SUFFdkMsT0FBTztRQUFDRjtRQUFLRTtRQUFRRDtJQUFPO0FBQzlCO0FBRUEsNkNBQTZDO0FBQzdDLE1BQU1FLHlCQUF5QixPQUFPSCxLQUFhSTtJQUNqRGIsUUFBUUMsR0FBRyxDQUFDLENBQUMsNkJBQTZCLEVBQUVRLElBQUksZUFBZSxFQUFFSSxnQkFBZ0IsS0FBSyxDQUFDO0lBRXZGLGtDQUFrQztJQUNsQ2IsUUFBUUMsR0FBRyxDQUFDLENBQUMsdUJBQXVCLEVBQUVZLGlCQUFpQjtJQUV2RCxrRUFBa0U7SUFDbEUsSUFBR2YsaUJBQWlCZSxrQkFBa0I7UUFDcEMsTUFBTUMsV0FBV3BCLGdCQUFnQm1CO1FBQ2pDYixRQUFRQyxHQUFHLENBQUMsQ0FBQyw2QkFBNkIsRUFBRWEsVUFBVTtRQUV0RCxzREFBc0Q7UUFDdERkLFFBQVFDLEdBQUcsQ0FBQyxDQUFDLGlDQUFpQyxFQUFFWSxpQkFBaUI7SUFDbkU7SUFFQSwrQ0FBK0M7SUFDL0NiLFFBQVFDLEdBQUcsQ0FBQztJQUVaLE9BQU8sQ0FBQyxhQUFhLEVBQUVRLElBQUksSUFBSSxFQUFFSSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3JEO0FBRUEsd0JBQXdCO0FBQ3hCYixRQUFRQyxHQUFHLENBQUM7QUFDWkQsUUFBUUMsR0FBRyxDQUFDRixjQUFjLFdBQVcsT0FBTztBQUM1Q0MsUUFBUUMsR0FBRyxDQUFDRixjQUFjLFdBQVcsT0FBTztBQUM1Q0MsUUFBUUMsR0FBRyxDQUFDRixjQUFjLGFBQWEsUUFBUTtBQUMvQ0MsUUFBUUMsR0FBRyxDQUFDRixjQUFjLFdBQVcsUUFBUTtBQUU3QywrQkFBK0I7QUFDL0JDLFFBQVFDLEdBQUcsQ0FBQztBQUNaLE1BQU1jLG1CQUFtQmxCO0FBQ3pCRyxRQUFRQyxHQUFHLENBQUMsQ0FBQyx5QkFBeUIsRUFBRWMsaUJBQWlCQyxNQUFNLEVBQUU7QUFDakVoQixRQUFRQyxHQUFHLENBQUMscUJBQXFCYyxpQkFBaUJFLE1BQU0sQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxVQUFVLENBQUM7QUFDN0VuQixRQUFRQyxHQUFHLENBQUMscUJBQXFCYyxpQkFBaUJFLE1BQU0sQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxVQUFVLENBQUM7QUFFN0UsK0JBQStCO0FBQy9CbkIsUUFBUUMsR0FBRyxDQUFDO0FBQ1osTUFBTW1CLG1CQUFtQnhCO0FBQ3pCSSxRQUFRQyxHQUFHLENBQUMsc0JBQXNCbUI7QUFFbEMsZ0NBQWdDO0FBQ2hDLE9BQU8sTUFBTUMsOEJBQThCLE9BQU9DLGFBQWEsT0FBTyxFQUFFQyxZQUFZLE9BQU87SUFDekZ2QixRQUFRQyxHQUFHLENBQUM7SUFFWixNQUFNUSxNQUFNO0lBRVosMENBQTBDO0lBQzFDLE1BQU1lLGVBQWU5QixnQkFBZ0I0QjtJQUNyQyxNQUFNRyxjQUFjL0IsZ0JBQWdCNkI7SUFFcEN2QixRQUFRQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUVxQixXQUFXLFlBQVksRUFBRUUsYUFBYSxDQUFDLENBQUM7SUFDcEV4QixRQUFRQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUVzQixVQUFVLFlBQVksRUFBRUUsWUFBWSxDQUFDLENBQUM7SUFFakUsa0NBQWtDO0lBQ2xDLElBQUdELGlCQUFpQkMsYUFBYTtRQUMvQnpCLFFBQVFDLEdBQUcsQ0FBQztRQUVaLDBDQUEwQztRQUMxQyxNQUFNeUIsZ0JBQWdCLE1BQU1kLHVCQUF1QkgsS0FBS2M7UUFFeEQsb0NBQW9DO1FBQ3BDLE1BQU1JLG9CQUFvQixNQUFNekIsY0FBY3dCLGVBQWVGLGNBQWNDO1FBRTNFLDRCQUE0QjtRQUM1QixNQUFNakIsaUJBQWlCQyxLQUFLa0IsbUJBQW1CTDtRQUUvQ3RCLFFBQVFDLEdBQUcsQ0FBQyxDQUFDLHNCQUFzQixFQUFFMEIsbUJBQW1CO0lBQzFELE9BQU87UUFDTDNCLFFBQVFDLEdBQUcsQ0FBQztJQUNkO0FBQ0YsRUFBRTtBQUVGLGVBQWU7QUFDZixPQUFPLE1BQU0yQixvQkFBb0I7SUFDL0I1QixRQUFRQyxHQUFHLENBQUM7SUFFWiwyQkFBMkI7SUFDM0JELFFBQVFDLEdBQUcsQ0FBQztJQUVaLHFCQUFxQjtJQUNyQixNQUFNVyx1QkFBdUIsbUJBQW1CO0lBQ2hELE1BQU1BLHVCQUF1QixtQkFBbUI7SUFDaEQsTUFBTVM7SUFFTnJCLFFBQVFDLEdBQUcsQ0FBQztBQUNkLEVBQUUsQ0FFRiw0QkFBNEI7Q0FDNUIsdUJBQXVCIn0=
|
package/lib/utils/localeUtils.js
CHANGED
|
@@ -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 extractLanguage = (locale)=>locale.split('-')[0];
|
|
5
5
|
export const isRegionalLocale = (locale)=>locale.includes('-');
|
|
6
6
|
export const getFallbackChain = (locale)=>{
|
|
@@ -68,4 +68,4 @@ export const getSupportedLocales = ()=>[
|
|
|
68
68
|
'it-it'
|
|
69
69
|
];
|
|
70
70
|
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC9ubGFicy1yZWFrdG9yLXJlbGVhc2UuZU1RNVNoL2NoZWNrb3V0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL2xvY2FsZVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQgdHlwZSB7TG9jYWxlfSBmcm9tICcuLi90eXBlcy9jb250ZW50LnR5cGVzLmpzJztcblxuZXhwb3J0IGNvbnN0IGV4dHJhY3RMYW5ndWFnZSA9IChsb2NhbGU6IHN0cmluZyk6IHN0cmluZyA9PiBsb2NhbGUuc3BsaXQoJy0nKVswXTtcblxuZXhwb3J0IGNvbnN0IGlzUmVnaW9uYWxMb2NhbGUgPSAobG9jYWxlOiBzdHJpbmcpOiBib29sZWFuID0+IGxvY2FsZS5pbmNsdWRlcygnLScpO1xuXG5leHBvcnQgY29uc3QgZ2V0RmFsbGJhY2tDaGFpbiA9IChsb2NhbGU6IHN0cmluZyk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgbGFuZ3VhZ2UgPSBleHRyYWN0TGFuZ3VhZ2UobG9jYWxlKTtcbiAgcmV0dXJuIGlzUmVnaW9uYWxMb2NhbGUobG9jYWxlKSA/IFtsb2NhbGUsIGxhbmd1YWdlXSA6IFtsb2NhbGVdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFByaW1hcnlMYW5ndWFnZXMgPSAoKTogc3RyaW5nW10gPT4gWydlbicsICdlcycsICdmcicsICdkZScsICdwdCcsICdpdCddO1xuXG5leHBvcnQgY29uc3QgaXNWYWxpZExvY2FsZSA9IChsb2NhbGU6IHN0cmluZyk6IGxvY2FsZSBpcyBMb2NhbGUgPT4ge1xuICBjb25zdCB2YWxpZExvY2FsZXM6IExvY2FsZVtdID0gW1xuICAgICdlbicsICdlbi11cycsICdlbi1nYicsICdlbi1jYScsICdlbi1hdScsXG4gICAgJ2VzJywgJ2VzLW14JywgJ2VzLWVzJywgJ2VzLWFyJyxcbiAgICAnZnInLCAnZnItZnInLCAnZnItY2EnLFxuICAgICdkZScsICdkZS1kZScsICdkZS1hdCcsXG4gICAgJ3B0JywgJ3B0LWJyJywgJ3B0LXB0JyxcbiAgICAnaXQnLCAnaXQtaXQnXG4gIF07XG4gIHJldHVybiB2YWxpZExvY2FsZXMuaW5jbHVkZXMobG9jYWxlIGFzIExvY2FsZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3VwcG9ydGVkTG9jYWxlcyA9ICgpOiBMb2NhbGVbXSA9PiBbXG4gICdlbicsICdlbi11cycsICdlbi1nYicsICdlbi1jYScsICdlbi1hdScsXG4gICdlcycsICdlcy1teCcsICdlcy1lcycsICdlcy1hcicsXG4gICdmcicsICdmci1mcicsICdmci1jYScsXG4gICdkZScsICdkZS1kZScsICdkZS1hdCcsXG4gICdwdCcsICdwdC1icicsICdwdC1wdCcsXG4gICdpdCcsICdpdC1pdCdcbl07XG4iXSwibmFtZXMiOlsiZXh0cmFjdExhbmd1YWdlIiwibG9jYWxlIiwic3BsaXQiLCJpc1JlZ2lvbmFsTG9jYWxlIiwiaW5jbHVkZXMiLCJnZXRGYWxsYmFja0NoYWluIiwibGFuZ3VhZ2UiLCJnZXRQcmltYXJ5TGFuZ3VhZ2VzIiwiaXNWYWxpZExvY2FsZSIsInZhbGlkTG9jYWxlcyIsImdldFN1cHBvcnRlZExvY2FsZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUdELE9BQU8sTUFBTUEsa0JBQWtCLENBQUNDLFNBQTJCQSxPQUFPQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUVoRixPQUFPLE1BQU1DLG1CQUFtQixDQUFDRixTQUE0QkEsT0FBT0csUUFBUSxDQUFDLEtBQUs7QUFFbEYsT0FBTyxNQUFNQyxtQkFBbUIsQ0FBQ0o7SUFDL0IsTUFBTUssV0FBV04sZ0JBQWdCQztJQUNqQyxPQUFPRSxpQkFBaUJGLFVBQVU7UUFBQ0E7UUFBUUs7S0FBUyxHQUFHO1FBQUNMO0tBQU87QUFDakUsRUFBRTtBQUVGLE9BQU8sTUFBTU0sc0JBQXNCLElBQWdCO1FBQUM7UUFBTTtRQUFNO1FBQU07UUFBTTtRQUFNO0tBQUssQ0FBQztBQUV4RixPQUFPLE1BQU1DLGdCQUFnQixDQUFDUDtJQUM1QixNQUFNUSxlQUF5QjtRQUM3QjtRQUFNO1FBQVM7UUFBUztRQUFTO1FBQ2pDO1FBQU07UUFBUztRQUFTO1FBQ3hCO1FBQU07UUFBUztRQUNmO1FBQU07UUFBUztRQUNmO1FBQU07UUFBUztRQUNmO1FBQU07S0FDUDtJQUNELE9BQU9BLGFBQWFMLFFBQVEsQ0FBQ0g7QUFDL0IsRUFBRTtBQUVGLE9BQU8sTUFBTVMsc0JBQXNCLElBQWdCO1FBQ2pEO1FBQU07UUFBUztRQUFTO1FBQVM7UUFDakM7UUFBTTtRQUFTO1FBQVM7UUFDeEI7UUFBTTtRQUFTO1FBQ2Y7UUFBTTtRQUFTO1FBQ2Y7UUFBTTtRQUFTO1FBQ2Y7UUFBTTtLQUNQLENBQUMifQ==
|
|
@@ -7,4 +7,4 @@ export const addFieldsToContext = (resolve, parent, args, context, info)=>{
|
|
|
7
7
|
return resolve(parent, args, contextWithFields, info);
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC9ubGFicy1yZWFrdG9yLXJlbGVhc2UuZU1RNVNoL2NoZWNrb3V0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL21pZGRsZXdhcmVVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2dldEdxbEZpZWxkc30gZnJvbSAnLi9hcmFuZ29kYlV0aWxzLmpzJztcblxuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuXG5leHBvcnQgY29uc3QgYWRkRmllbGRzVG9Db250ZXh0ID0gKFxuICByZXNvbHZlOiBGdW5jdGlvbixcbiAgcGFyZW50OiBhbnksXG4gIGFyZ3M6IGFueSxcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgaW5mbzogYW55XG4pID0+IHtcbiAgY29uc3QgY29udGV4dFdpdGhGaWVsZHMgPSB7XG4gICAgLi4uY29udGV4dCxcbiAgICBmaWVsZHM6IGdldEdxbEZpZWxkcyhpbmZvKVxuICB9O1xuXG4gIHJldHVybiByZXNvbHZlKHBhcmVudCwgYXJncywgY29udGV4dFdpdGhGaWVsZHMsIGluZm8pO1xufTtcbiJdLCJuYW1lcyI6WyJnZXRHcWxGaWVsZHMiLCJhZGRGaWVsZHNUb0NvbnRleHQiLCJyZXNvbHZlIiwicGFyZW50IiwiYXJncyIsImNvbnRleHQiLCJpbmZvIiwiY29udGV4dFdpdGhGaWVsZHMiLCJmaWVsZHMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFlBQVksUUFBTyxxQkFBcUI7QUFJaEQsT0FBTyxNQUFNQyxxQkFBcUIsQ0FDaENDLFNBQ0FDLFFBQ0FDLE1BQ0FDLFNBQ0FDO0lBRUEsTUFBTUMsb0JBQW9CO1FBQ3hCLEdBQUdGLE9BQU87UUFDVkcsUUFBUVIsYUFBYU07SUFDdkI7SUFFQSxPQUFPSixRQUFRQyxRQUFRQyxNQUFNRyxtQkFBbUJEO0FBQ2xELEVBQUUifQ==
|
|
@@ -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 { AggregationOptions, QueryOptions, SearchOptions } from '../types/arangodb.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 { buildFieldSelection, buildFilterClause, buildLimitClause, buildSortClause, sanitizeCollectionName, sanitizeFieldName } from './aqlHelpers.js';
|
|
5
5
|
/**
|
|
6
6
|
* Build a query from QueryOptions
|
|
@@ -242,4 +242,4 @@ RETURN doc`;
|
|
|
242
242
|
}
|
|
243
243
|
};
|
|
244
244
|
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL3F1ZXJ5QnVpbGRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFnZ3JlZ2F0aW9uT3B0aW9ucyxcbiAgQWdncmVnYXRpb25UeXBlLFxuICBRdWVyeU9wdGlvbnMsXG4gIFNlYXJjaE9wdGlvbnNcbn0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGIudHlwZXMuanMnO1xuaW1wb3J0IHtcbiAgYnVpbGRGaWVsZFNlbGVjdGlvbixcbiAgYnVpbGRGaWx0ZXJDbGF1c2UsXG4gIGJ1aWxkTGltaXRDbGF1c2UsXG4gIGJ1aWxkU29ydENsYXVzZSxcbiAgc2FuaXRpemVDb2xsZWN0aW9uTmFtZSxcbiAgc2FuaXRpemVGaWVsZE5hbWVcbn0gZnJvbSAnLi9hcWxIZWxwZXJzLmpzJztcblxuLyoqXG4gKiBCdWlsZCBhIHF1ZXJ5IGZyb20gUXVlcnlPcHRpb25zXG4gKiBSZXR1cm5zIGEgcXVlcnkgc3RyaW5nIHRoYXQgY2FuIGJlIGV4ZWN1dGVkXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZFF1ZXJ5ID0gKG9wdGlvbnM6IFF1ZXJ5T3B0aW9ucyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHtcbiAgICBjb2xsZWN0aW9uLFxuICAgIGZpbHRlcnMsXG4gICAgc29ydCxcbiAgICBsaW1pdCxcbiAgICBmaWVsZHMsXG4gICAgaW5jbHVkZUN1c3RvbUZpZWxkcyA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuXG4gIC8vIFNhbml0aXplIGNvbGxlY3Rpb24gbmFtZVxuICBjb25zdCBzYW5pdGl6ZWRDb2xsZWN0aW9uID0gc2FuaXRpemVDb2xsZWN0aW9uTmFtZShjb2xsZWN0aW9uKTtcblxuICAvLyBCdWlsZCBxdWVyeSBwYXJ0c1xuICBjb25zdCBmaWx0ZXJDbGF1c2UgPSBmaWx0ZXJzID8gYnVpbGRGaWx0ZXJDbGF1c2UoZmlsdGVycywgJ2RvYycpIDogJyc7XG4gIGNvbnN0IHNvcnRDbGF1c2UgPSBzb3J0ICYmIHNvcnQubGVuZ3RoID4gMCA/IGJ1aWxkU29ydENsYXVzZShbLi4uc29ydF0sICdkb2MnKSA6ICcnO1xuICBjb25zdCBsaW1pdENsYXVzZSA9IGJ1aWxkTGltaXRDbGF1c2UobGltaXQpO1xuICBjb25zdCBmaWVsZFNlbGVjdGlvbiA9IGJ1aWxkRmllbGRTZWxlY3Rpb24oZmllbGRzID8gQXJyYXkuZnJvbShmaWVsZHMpIDogW10sIGluY2x1ZGVDdXN0b21GaWVsZHMsICdkb2MnKTtcblxuICAvLyBCdWlsZCB0aGUgZnVsbCBxdWVyeSBzdHJpbmdcbiAgbGV0IHF1ZXJ5U3RyaW5nID0gYEZPUiBkb2MgSU4gJHtzYW5pdGl6ZWRDb2xsZWN0aW9ufWA7XG5cbiAgaWYoZmlsdGVyQ2xhdXNlKSB7XG4gICAgcXVlcnlTdHJpbmcgKz0gYFxcbkZJTFRFUiAke2ZpbHRlckNsYXVzZX1gO1xuICB9XG5cbiAgaWYoc29ydENsYXVzZSkge1xuICAgIHF1ZXJ5U3RyaW5nICs9IGBcXG4ke3NvcnRDbGF1c2V9YDtcbiAgfVxuXG4gIGlmKGxpbWl0Q2xhdXNlKSB7XG4gICAgcXVlcnlTdHJpbmcgKz0gYFxcbiR7bGltaXRDbGF1c2V9YDtcbiAgfVxuXG4gIHF1ZXJ5U3RyaW5nICs9IGBcXG5SRVRVUk4gJHtmaWVsZFNlbGVjdGlvbn1gO1xuXG4gIHJldHVybiBxdWVyeVN0cmluZztcbn07XG5cbi8qKlxuICogQnVpbGQgYW4gYWdncmVnYXRpb24gcXVlcnlcbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkQWdncmVnYXRpb25RdWVyeSA9IChvcHRpb25zOiBBZ2dyZWdhdGlvbk9wdGlvbnMpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7Y29sbGVjdGlvbiwgdHlwZSwgZmllbGQsIGZpbHRlcnN9ID0gb3B0aW9ucztcblxuICBjb25zdCBzYW5pdGl6ZWRDb2xsZWN0aW9uID0gc2FuaXRpemVDb2xsZWN0aW9uTmFtZShjb2xsZWN0aW9uKTtcbiAgY29uc3QgZmlsdGVyQ2xhdXNlID0gZmlsdGVycyA/IGJ1aWxkRmlsdGVyQ2xhdXNlKGZpbHRlcnMsICdkb2MnKSA6ICcnO1xuXG4gIGxldCBhZ2dyZWdhdGlvbkV4cHJlc3Npb246IHN0cmluZztcblxuICBzd2l0Y2godHlwZSkge1xuICAgIGNhc2UgJ0NPVU5UJzpcbiAgICAgIGFnZ3JlZ2F0aW9uRXhwcmVzc2lvbiA9ICdMRU5HVEgoaXRlbXMpJztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnU1VNJzpcbiAgICAgIGlmKCFmaWVsZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NVTSBhZ2dyZWdhdGlvbiByZXF1aXJlcyBhIGZpZWxkJyk7XG4gICAgICB9XG4gICAgICB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZEZpZWxkID0gc2FuaXRpemVGaWVsZE5hbWUoZmllbGQpO1xuICAgICAgICBhZ2dyZWdhdGlvbkV4cHJlc3Npb24gPSBgU1VNKGl0ZW1zWypdLiR7c2FuaXRpemVkRmllbGR9KWA7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ0FWRyc6XG4gICAgICBpZighZmllbGQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBVkcgYWdncmVnYXRpb24gcmVxdWlyZXMgYSBmaWVsZCcpO1xuICAgICAgfVxuICAgICAge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWRGaWVsZCA9IHNhbml0aXplRmllbGROYW1lKGZpZWxkKTtcbiAgICAgICAgYWdncmVnYXRpb25FeHByZXNzaW9uID0gYEFWRVJBR0UoaXRlbXNbKl0uJHtzYW5pdGl6ZWRGaWVsZH0pYDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnTUlOJzpcbiAgICAgIGlmKCFmaWVsZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01JTiBhZ2dyZWdhdGlvbiByZXF1aXJlcyBhIGZpZWxkJyk7XG4gICAgICB9XG4gICAgICB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZEZpZWxkID0gc2FuaXRpemVGaWVsZE5hbWUoZmllbGQpO1xuICAgICAgICBhZ2dyZWdhdGlvbkV4cHJlc3Npb24gPSBgTUlOKGl0ZW1zWypdLiR7c2FuaXRpemVkRmllbGR9KWA7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ01BWCc6XG4gICAgICBpZighZmllbGQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNQVggYWdncmVnYXRpb24gcmVxdWlyZXMgYSBmaWVsZCcpO1xuICAgICAgfVxuICAgICAge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWRGaWVsZCA9IHNhbml0aXplRmllbGROYW1lKGZpZWxkKTtcbiAgICAgICAgYWdncmVnYXRpb25FeHByZXNzaW9uID0gYE1BWChpdGVtc1sqXS4ke3Nhbml0aXplZEZpZWxkfSlgO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBhZ2dyZWdhdGlvbiB0eXBlOiAke3R5cGV9YCk7XG4gIH1cblxuICBsZXQgcXVlcnlTdHJpbmcgPSBgTEVUIGl0ZW1zID0gKFxuICAgIEZPUiBkb2MgSU4gJHtzYW5pdGl6ZWRDb2xsZWN0aW9ufWA7XG5cbiAgaWYoZmlsdGVyQ2xhdXNlKSB7XG4gICAgcXVlcnlTdHJpbmcgKz0gYFxcbiAgICBGSUxURVIgJHtmaWx0ZXJDbGF1c2V9YDtcbiAgfVxuXG4gIHF1ZXJ5U3RyaW5nICs9IGBcXG4gICAgUkVUVVJOIGRvY1xuICApXG4gIFJFVFVSTiB7XG4gICAgdHlwZTogXCIke3R5cGV9XCIsXG4gICAgJHtmaWVsZCA/IGBmaWVsZDogXCIke2ZpZWxkfVwiLGAgOiAnJ31cbiAgICB2YWx1ZTogJHthZ2dyZWdhdGlvbkV4cHJlc3Npb259XG4gIH1gO1xuXG4gIHJldHVybiBxdWVyeVN0cmluZztcbn07XG5cbi8qKlxuICogQnVpbGQgYSBtdWx0aS1jb2xsZWN0aW9uIHNlYXJjaCBxdWVyeVxuICovXG5leHBvcnQgY29uc3QgYnVpbGRTZWFyY2hRdWVyeSA9IChvcHRpb25zOiBTZWFyY2hPcHRpb25zKTogc3RyaW5nID0+IHtcbiAgY29uc3Qge2NvbGxlY3Rpb25zLCBxdWVyeSwgc2VhcmNoRmllbGRzID0gW10sIGZpbHRlcnMsIGxpbWl0fSA9IG9wdGlvbnM7XG5cbiAgaWYoY29sbGVjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgY29sbGVjdGlvbiBtdXN0IGJlIHNwZWNpZmllZCBmb3Igc2VhcmNoJyk7XG4gIH1cblxuICBpZighcXVlcnkgfHwgcXVlcnkudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2VhcmNoIHF1ZXJ5IGNhbm5vdCBiZSBlbXB0eScpO1xuICB9XG5cbiAgLy8gU2FuaXRpemUgY29sbGVjdGlvbiBuYW1lc1xuICBjb25zdCBzYW5pdGl6ZWRDb2xsZWN0aW9ucyA9IGNvbGxlY3Rpb25zLm1hcCgoYykgPT4gc2FuaXRpemVDb2xsZWN0aW9uTmFtZShjKSk7XG5cbiAgLy8gQnVpbGQgdW5pb24gb2Ygc2VhcmNoZXMgYWNyb3NzIGFsbCBjb2xsZWN0aW9uc1xuICBjb25zdCBzZWFyY2hRdWVyaWVzID0gc2FuaXRpemVkQ29sbGVjdGlvbnMubWFwKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgY29sbGVjdGlvbkZpZWxkcyA9IHNlYXJjaEZpZWxkcy5sZW5ndGggPiAwXG4gICAgICA/IHNlYXJjaEZpZWxkc1xuICAgICAgOiBbJ25hbWUnLCAnY29udGVudCcsICdkZXNjcmlwdGlvbicsICd0aXRsZSddO1xuXG4gICAgbGV0IHN1YlF1ZXJ5ID0gYChcbiAgICAgIEZPUiBkb2MgSU4gJHtjb2xsZWN0aW9ufWA7XG5cbiAgICAvLyBBZGQgZmlsdGVyIGZvciBzZWFyY2ggYWNyb3NzIG11bHRpcGxlIGZpZWxkcyB1c2luZyBPUlxuICAgIGNvbnN0IHNlYXJjaENvbmRpdGlvbnMgPSBjb2xsZWN0aW9uRmllbGRzXG4gICAgICAubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHNhbml0aXplRmllbGROYW1lKGZpZWxkKTtcbiAgICAgICAgICByZXR1cm4gYENPTlRBSU5TKExPV0VSKGRvYy4ke2ZpZWxkfSksICR7SlNPTi5zdHJpbmdpZnkocXVlcnkudG9Mb3dlckNhc2UoKSl9KWA7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoYykgPT4gYyAhPT0gbnVsbCk7XG5cbiAgICBpZihzZWFyY2hDb25kaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHN1YlF1ZXJ5ICs9IGBcXG4gICAgICBGSUxURVIgJHtzZWFyY2hDb25kaXRpb25zLmpvaW4oJyBPUiAnKX1gO1xuICAgIH1cblxuICAgIC8vIEFkZCBhZGRpdGlvbmFsIGZpbHRlcnMgaWYgcHJvdmlkZWRcbiAgICBpZihmaWx0ZXJzKSB7XG4gICAgICBjb25zdCBmaWx0ZXJDbGF1c2UgPSBidWlsZEZpbHRlckNsYXVzZShmaWx0ZXJzLCAnZG9jJyk7XG4gICAgICBpZihmaWx0ZXJDbGF1c2UpIHtcbiAgICAgICAgc3ViUXVlcnkgKz0gYFxcbiAgICAgIEZJTFRFUiAke2ZpbHRlckNsYXVzZX1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN1YlF1ZXJ5ICs9IGBcXG4gICAgICBSRVRVUk4gTUVSR0UoZG9jLCB7X2NvbGxlY3Rpb246IFwiJHtjb2xsZWN0aW9ufVwifSlcbiAgICApYDtcblxuICAgIHJldHVybiBzdWJRdWVyeTtcbiAgfSk7XG5cbiAgLy8gQ29tYmluZSBhbGwgc2VhcmNoZXMgd2l0aCBVTklPTiBhbmQgYXBwbHkgbGltaXQgdG8gZmluYWwgcmVzdWx0c1xuICBjb25zdCBsaW1pdENsYXVzZSA9IGJ1aWxkTGltaXRDbGF1c2UobGltaXQpO1xuICBsZXQgcXVlcnlTdHJpbmcgPSBgRk9SIGRvYyBJTiBVTklPTihcXG4gICR7c2VhcmNoUXVlcmllcy5qb2luKCcsXFxuICAnKX1cXG4pXG4ke2xpbWl0Q2xhdXNlfVxuUkVUVVJOIGRvY2A7XG5cbiAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBxdWVyeSBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVF1ZXJ5T3B0aW9ucyA9IChvcHRpb25zOiBRdWVyeU9wdGlvbnMpOiB2b2lkID0+IHtcbiAgaWYoIW9wdGlvbnMuY29sbGVjdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignQ29sbGVjdGlvbiBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgY29sbGVjdGlvbiBuYW1lXG4gIHNhbml0aXplQ29sbGVjdGlvbk5hbWUob3B0aW9ucy5jb2xsZWN0aW9uKTtcblxuICAvLyBWYWxpZGF0ZSBmaWVsZHMgaWYgcHJvdmlkZWRcbiAgaWYob3B0aW9ucy5maWVsZHMgJiYgb3B0aW9ucy5maWVsZHMubGVuZ3RoID4gMCkge1xuICAgIG9wdGlvbnMuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiBzYW5pdGl6ZUZpZWxkTmFtZShmaWVsZCkpO1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgc29ydCBmaWVsZHMgaWYgcHJvdmlkZWRcbiAgaWYob3B0aW9ucy5zb3J0ICYmIG9wdGlvbnMuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgb3B0aW9ucy5zb3J0LmZvckVhY2goKHNvcnRPcHQpID0+IHtcbiAgICAgIHNhbml0aXplRmllbGROYW1lKHNvcnRPcHQuZmllbGQpO1xuICAgICAgaWYoIVsnQVNDJywgJ0RFU0MnXS5pbmNsdWRlcyhzb3J0T3B0LmRpcmVjdGlvbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNvcnQgZGlyZWN0aW9uOiAke3NvcnRPcHQuZGlyZWN0aW9ufWApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgbGltaXRcbiAgaWYob3B0aW9ucy5saW1pdCkge1xuICAgIGNvbnN0IHtmcm9tLCB0b30gPSBvcHRpb25zLmxpbWl0O1xuICAgIGlmKGZyb20gPCAwIHx8IHRvIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdMaW1pdCB2YWx1ZXMgbXVzdCBiZSBub24tbmVnYXRpdmUnKTtcbiAgICB9XG4gICAgaWYoZnJvbSA+PSB0bykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdMaW1pdCBcImZyb21cIiBtdXN0IGJlIGxlc3MgdGhhbiBcInRvXCInKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogVmFsaWRhdGUgc2VhcmNoIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2VhcmNoT3B0aW9ucyA9IChvcHRpb25zOiBTZWFyY2hPcHRpb25zKTogdm9pZCA9PiB7XG4gIGlmKCFvcHRpb25zLmNvbGxlY3Rpb25zIHx8IG9wdGlvbnMuY29sbGVjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgY29sbGVjdGlvbiBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgaWYoIW9wdGlvbnMucXVlcnkgfHwgb3B0aW9ucy5xdWVyeS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTZWFyY2ggcXVlcnkgY2Fubm90IGJlIGVtcHR5Jyk7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBjb2xsZWN0aW9uIG5hbWVzXG4gIG9wdGlvbnMuY29sbGVjdGlvbnMuZm9yRWFjaCgoY29sbGVjdGlvbikgPT4gc2FuaXRpemVDb2xsZWN0aW9uTmFtZShjb2xsZWN0aW9uKSk7XG5cbiAgLy8gVmFsaWRhdGUgc2VhcmNoIGZpZWxkcyBpZiBwcm92aWRlZFxuICBpZihvcHRpb25zLnNlYXJjaEZpZWxkcyAmJiBvcHRpb25zLnNlYXJjaEZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgb3B0aW9ucy5zZWFyY2hGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHNhbml0aXplRmllbGROYW1lKGZpZWxkKSk7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBsaW1pdFxuICBpZihvcHRpb25zLmxpbWl0KSB7XG4gICAgY29uc3Qge2Zyb20sIHRvfSA9IG9wdGlvbnMubGltaXQ7XG4gICAgaWYoZnJvbSA8IDAgfHwgdG8gPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xpbWl0IHZhbHVlcyBtdXN0IGJlIG5vbi1uZWdhdGl2ZScpO1xuICAgIH1cbiAgICBpZihmcm9tID49IHRvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xpbWl0IFwiZnJvbVwiIG11c3QgYmUgbGVzcyB0aGFuIFwidG9cIicpO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhZ2dyZWdhdGlvbiBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUFnZ3JlZ2F0aW9uT3B0aW9ucyA9IChvcHRpb25zOiBBZ2dyZWdhdGlvbk9wdGlvbnMpOiB2b2lkID0+IHtcbiAgaWYoIW9wdGlvbnMuY29sbGVjdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignQ29sbGVjdGlvbiBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgaWYoIW9wdGlvbnMudHlwZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQWdncmVnYXRpb24gdHlwZSBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgY29uc3QgdmFsaWRUeXBlczogUmVhZG9ubHlBcnJheTxBZ2dyZWdhdGlvblR5cGU+ID0gWydDT1VOVCcsICdTVU0nLCAnQVZHJywgJ01JTicsICdNQVgnXTtcbiAgaWYoIXZhbGlkVHlwZXMuaW5jbHVkZXMob3B0aW9ucy50eXBlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhZ2dyZWdhdGlvbiB0eXBlOiAke29wdGlvbnMudHlwZX1gKTtcbiAgfVxuXG4gIGlmKFsnU1VNJywgJ0FWRycsICdNSU4nLCAnTUFYJ10uaW5jbHVkZXMob3B0aW9ucy50eXBlKSAmJiAhb3B0aW9ucy5maWVsZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtvcHRpb25zLnR5cGV9IGFnZ3JlZ2F0aW9uIHJlcXVpcmVzIGEgZmllbGRgKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGNvbGxlY3Rpb24gbmFtZVxuICBzYW5pdGl6ZUNvbGxlY3Rpb25OYW1lKG9wdGlvbnMuY29sbGVjdGlvbik7XG5cbiAgLy8gVmFsaWRhdGUgZmllbGQgaWYgcHJvdmlkZWRcbiAgaWYob3B0aW9ucy5maWVsZCkge1xuICAgIHNhbml0aXplRmllbGROYW1lKG9wdGlvbnMuZmllbGQpO1xuICB9XG59O1xuIl0sIm5hbWVzIjpbImJ1aWxkRmllbGRTZWxlY3Rpb24iLCJidWlsZEZpbHRlckNsYXVzZSIsImJ1aWxkTGltaXRDbGF1c2UiLCJidWlsZFNvcnRDbGF1c2UiLCJzYW5pdGl6ZUNvbGxlY3Rpb25OYW1lIiwic2FuaXRpemVGaWVsZE5hbWUiLCJidWlsZFF1ZXJ5Iiwib3B0aW9ucyIsImNvbGxlY3Rpb24iLCJmaWx0ZXJzIiwic29ydCIsImxpbWl0IiwiZmllbGRzIiwiaW5jbHVkZUN1c3RvbUZpZWxkcyIsInNhbml0aXplZENvbGxlY3Rpb24iLCJmaWx0ZXJDbGF1c2UiLCJzb3J0Q2xhdXNlIiwibGVuZ3RoIiwibGltaXRDbGF1c2UiLCJmaWVsZFNlbGVjdGlvbiIsIkFycmF5IiwiZnJvbSIsInF1ZXJ5U3RyaW5nIiwiYnVpbGRBZ2dyZWdhdGlvblF1ZXJ5IiwidHlwZSIsImZpZWxkIiwiYWdncmVnYXRpb25FeHByZXNzaW9uIiwiRXJyb3IiLCJzYW5pdGl6ZWRGaWVsZCIsImJ1aWxkU2VhcmNoUXVlcnkiLCJjb2xsZWN0aW9ucyIsInF1ZXJ5Iiwic2VhcmNoRmllbGRzIiwidHJpbSIsInNhbml0aXplZENvbGxlY3Rpb25zIiwibWFwIiwiYyIsInNlYXJjaFF1ZXJpZXMiLCJjb2xsZWN0aW9uRmllbGRzIiwic3ViUXVlcnkiLCJzZWFyY2hDb25kaXRpb25zIiwiSlNPTiIsInN0cmluZ2lmeSIsInRvTG93ZXJDYXNlIiwiZmlsdGVyIiwiam9pbiIsInZhbGlkYXRlUXVlcnlPcHRpb25zIiwiZm9yRWFjaCIsInNvcnRPcHQiLCJpbmNsdWRlcyIsImRpcmVjdGlvbiIsInRvIiwidmFsaWRhdGVTZWFyY2hPcHRpb25zIiwidmFsaWRhdGVBZ2dyZWdhdGlvbk9wdGlvbnMiLCJ2YWxpZFR5cGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FRRCxTQUNFQSxtQkFBbUIsRUFDbkJDLGlCQUFpQixFQUNqQkMsZ0JBQWdCLEVBQ2hCQyxlQUFlLEVBQ2ZDLHNCQUFzQixFQUN0QkMsaUJBQWlCLFFBQ1osa0JBQWtCO0FBRXpCOzs7Q0FHQyxHQUNELE9BQU8sTUFBTUMsYUFBYSxDQUFDQztJQUN6QixNQUFNLEVBQ0pDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxzQkFBc0IsS0FBSyxFQUM1QixHQUFHTjtJQUVKLDJCQUEyQjtJQUMzQixNQUFNTyxzQkFBc0JWLHVCQUF1Qkk7SUFFbkQsb0JBQW9CO0lBQ3BCLE1BQU1PLGVBQWVOLFVBQVVSLGtCQUFrQlEsU0FBUyxTQUFTO0lBQ25FLE1BQU1PLGFBQWFOLFFBQVFBLEtBQUtPLE1BQU0sR0FBRyxJQUFJZCxnQkFBZ0I7V0FBSU87S0FBSyxFQUFFLFNBQVM7SUFDakYsTUFBTVEsY0FBY2hCLGlCQUFpQlM7SUFDckMsTUFBTVEsaUJBQWlCbkIsb0JBQW9CWSxTQUFTUSxNQUFNQyxJQUFJLENBQUNULFVBQVUsRUFBRSxFQUFFQyxxQkFBcUI7SUFFbEcsOEJBQThCO0lBQzlCLElBQUlTLGNBQWMsQ0FBQyxXQUFXLEVBQUVSLHFCQUFxQjtJQUVyRCxJQUFHQyxjQUFjO1FBQ2ZPLGVBQWUsQ0FBQyxTQUFTLEVBQUVQLGNBQWM7SUFDM0M7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
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC9ubGFicy1yZWFrdG9yLXJlbGVhc2UuZU1RNVNoL2NoZWNrb3V0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL3F1ZXJ5QnVpbGRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFnZ3JlZ2F0aW9uT3B0aW9ucyxcbiAgQWdncmVnYXRpb25UeXBlLFxuICBRdWVyeU9wdGlvbnMsXG4gIFNlYXJjaE9wdGlvbnNcbn0gZnJvbSAnLi4vdHlwZXMvYXJhbmdvZGIudHlwZXMuanMnO1xuaW1wb3J0IHtcbiAgYnVpbGRGaWVsZFNlbGVjdGlvbixcbiAgYnVpbGRGaWx0ZXJDbGF1c2UsXG4gIGJ1aWxkTGltaXRDbGF1c2UsXG4gIGJ1aWxkU29ydENsYXVzZSxcbiAgc2FuaXRpemVDb2xsZWN0aW9uTmFtZSxcbiAgc2FuaXRpemVGaWVsZE5hbWVcbn0gZnJvbSAnLi9hcWxIZWxwZXJzLmpzJztcblxuLyoqXG4gKiBCdWlsZCBhIHF1ZXJ5IGZyb20gUXVlcnlPcHRpb25zXG4gKiBSZXR1cm5zIGEgcXVlcnkgc3RyaW5nIHRoYXQgY2FuIGJlIGV4ZWN1dGVkXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZFF1ZXJ5ID0gKG9wdGlvbnM6IFF1ZXJ5T3B0aW9ucyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IHtcbiAgICBjb2xsZWN0aW9uLFxuICAgIGZpbHRlcnMsXG4gICAgc29ydCxcbiAgICBsaW1pdCxcbiAgICBmaWVsZHMsXG4gICAgaW5jbHVkZUN1c3RvbUZpZWxkcyA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuXG4gIC8vIFNhbml0aXplIGNvbGxlY3Rpb24gbmFtZVxuICBjb25zdCBzYW5pdGl6ZWRDb2xsZWN0aW9uID0gc2FuaXRpemVDb2xsZWN0aW9uTmFtZShjb2xsZWN0aW9uKTtcblxuICAvLyBCdWlsZCBxdWVyeSBwYXJ0c1xuICBjb25zdCBmaWx0ZXJDbGF1c2UgPSBmaWx0ZXJzID8gYnVpbGRGaWx0ZXJDbGF1c2UoZmlsdGVycywgJ2RvYycpIDogJyc7XG4gIGNvbnN0IHNvcnRDbGF1c2UgPSBzb3J0ICYmIHNvcnQubGVuZ3RoID4gMCA/IGJ1aWxkU29ydENsYXVzZShbLi4uc29ydF0sICdkb2MnKSA6ICcnO1xuICBjb25zdCBsaW1pdENsYXVzZSA9IGJ1aWxkTGltaXRDbGF1c2UobGltaXQpO1xuICBjb25zdCBmaWVsZFNlbGVjdGlvbiA9IGJ1aWxkRmllbGRTZWxlY3Rpb24oZmllbGRzID8gQXJyYXkuZnJvbShmaWVsZHMpIDogW10sIGluY2x1ZGVDdXN0b21GaWVsZHMsICdkb2MnKTtcblxuICAvLyBCdWlsZCB0aGUgZnVsbCBxdWVyeSBzdHJpbmdcbiAgbGV0IHF1ZXJ5U3RyaW5nID0gYEZPUiBkb2MgSU4gJHtzYW5pdGl6ZWRDb2xsZWN0aW9ufWA7XG5cbiAgaWYoZmlsdGVyQ2xhdXNlKSB7XG4gICAgcXVlcnlTdHJpbmcgKz0gYFxcbkZJTFRFUiAke2ZpbHRlckNsYXVzZX1gO1xuICB9XG5cbiAgaWYoc29ydENsYXVzZSkge1xuICAgIHF1ZXJ5U3RyaW5nICs9IGBcXG4ke3NvcnRDbGF1c2V9YDtcbiAgfVxuXG4gIGlmKGxpbWl0Q2xhdXNlKSB7XG4gICAgcXVlcnlTdHJpbmcgKz0gYFxcbiR7bGltaXRDbGF1c2V9YDtcbiAgfVxuXG4gIHF1ZXJ5U3RyaW5nICs9IGBcXG5SRVRVUk4gJHtmaWVsZFNlbGVjdGlvbn1gO1xuXG4gIHJldHVybiBxdWVyeVN0cmluZztcbn07XG5cbi8qKlxuICogQnVpbGQgYW4gYWdncmVnYXRpb24gcXVlcnlcbiAqL1xuZXhwb3J0IGNvbnN0IGJ1aWxkQWdncmVnYXRpb25RdWVyeSA9IChvcHRpb25zOiBBZ2dyZWdhdGlvbk9wdGlvbnMpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7Y29sbGVjdGlvbiwgdHlwZSwgZmllbGQsIGZpbHRlcnN9ID0gb3B0aW9ucztcblxuICBjb25zdCBzYW5pdGl6ZWRDb2xsZWN0aW9uID0gc2FuaXRpemVDb2xsZWN0aW9uTmFtZShjb2xsZWN0aW9uKTtcbiAgY29uc3QgZmlsdGVyQ2xhdXNlID0gZmlsdGVycyA/IGJ1aWxkRmlsdGVyQ2xhdXNlKGZpbHRlcnMsICdkb2MnKSA6ICcnO1xuXG4gIGxldCBhZ2dyZWdhdGlvbkV4cHJlc3Npb246IHN0cmluZztcblxuICBzd2l0Y2godHlwZSkge1xuICAgIGNhc2UgJ0NPVU5UJzpcbiAgICAgIGFnZ3JlZ2F0aW9uRXhwcmVzc2lvbiA9ICdMRU5HVEgoaXRlbXMpJztcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnU1VNJzpcbiAgICAgIGlmKCFmaWVsZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NVTSBhZ2dyZWdhdGlvbiByZXF1aXJlcyBhIGZpZWxkJyk7XG4gICAgICB9XG4gICAgICB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZEZpZWxkID0gc2FuaXRpemVGaWVsZE5hbWUoZmllbGQpO1xuICAgICAgICBhZ2dyZWdhdGlvbkV4cHJlc3Npb24gPSBgU1VNKGl0ZW1zWypdLiR7c2FuaXRpemVkRmllbGR9KWA7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ0FWRyc6XG4gICAgICBpZighZmllbGQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBVkcgYWdncmVnYXRpb24gcmVxdWlyZXMgYSBmaWVsZCcpO1xuICAgICAgfVxuICAgICAge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWRGaWVsZCA9IHNhbml0aXplRmllbGROYW1lKGZpZWxkKTtcbiAgICAgICAgYWdncmVnYXRpb25FeHByZXNzaW9uID0gYEFWRVJBR0UoaXRlbXNbKl0uJHtzYW5pdGl6ZWRGaWVsZH0pYDtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnTUlOJzpcbiAgICAgIGlmKCFmaWVsZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01JTiBhZ2dyZWdhdGlvbiByZXF1aXJlcyBhIGZpZWxkJyk7XG4gICAgICB9XG4gICAgICB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZEZpZWxkID0gc2FuaXRpemVGaWVsZE5hbWUoZmllbGQpO1xuICAgICAgICBhZ2dyZWdhdGlvbkV4cHJlc3Npb24gPSBgTUlOKGl0ZW1zWypdLiR7c2FuaXRpemVkRmllbGR9KWA7XG4gICAgICB9XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ01BWCc6XG4gICAgICBpZighZmllbGQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNQVggYWdncmVnYXRpb24gcmVxdWlyZXMgYSBmaWVsZCcpO1xuICAgICAgfVxuICAgICAge1xuICAgICAgICBjb25zdCBzYW5pdGl6ZWRGaWVsZCA9IHNhbml0aXplRmllbGROYW1lKGZpZWxkKTtcbiAgICAgICAgYWdncmVnYXRpb25FeHByZXNzaW9uID0gYE1BWChpdGVtc1sqXS4ke3Nhbml0aXplZEZpZWxkfSlgO1xuICAgICAgfVxuICAgICAgYnJlYWs7XG5cbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBhZ2dyZWdhdGlvbiB0eXBlOiAke3R5cGV9YCk7XG4gIH1cblxuICBsZXQgcXVlcnlTdHJpbmcgPSBgTEVUIGl0ZW1zID0gKFxuICAgIEZPUiBkb2MgSU4gJHtzYW5pdGl6ZWRDb2xsZWN0aW9ufWA7XG5cbiAgaWYoZmlsdGVyQ2xhdXNlKSB7XG4gICAgcXVlcnlTdHJpbmcgKz0gYFxcbiAgICBGSUxURVIgJHtmaWx0ZXJDbGF1c2V9YDtcbiAgfVxuXG4gIHF1ZXJ5U3RyaW5nICs9IGBcXG4gICAgUkVUVVJOIGRvY1xuICApXG4gIFJFVFVSTiB7XG4gICAgdHlwZTogXCIke3R5cGV9XCIsXG4gICAgJHtmaWVsZCA/IGBmaWVsZDogXCIke2ZpZWxkfVwiLGAgOiAnJ31cbiAgICB2YWx1ZTogJHthZ2dyZWdhdGlvbkV4cHJlc3Npb259XG4gIH1gO1xuXG4gIHJldHVybiBxdWVyeVN0cmluZztcbn07XG5cbi8qKlxuICogQnVpbGQgYSBtdWx0aS1jb2xsZWN0aW9uIHNlYXJjaCBxdWVyeVxuICovXG5leHBvcnQgY29uc3QgYnVpbGRTZWFyY2hRdWVyeSA9IChvcHRpb25zOiBTZWFyY2hPcHRpb25zKTogc3RyaW5nID0+IHtcbiAgY29uc3Qge2NvbGxlY3Rpb25zLCBxdWVyeSwgc2VhcmNoRmllbGRzID0gW10sIGZpbHRlcnMsIGxpbWl0fSA9IG9wdGlvbnM7XG5cbiAgaWYoY29sbGVjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgY29sbGVjdGlvbiBtdXN0IGJlIHNwZWNpZmllZCBmb3Igc2VhcmNoJyk7XG4gIH1cblxuICBpZighcXVlcnkgfHwgcXVlcnkudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignU2VhcmNoIHF1ZXJ5IGNhbm5vdCBiZSBlbXB0eScpO1xuICB9XG5cbiAgLy8gU2FuaXRpemUgY29sbGVjdGlvbiBuYW1lc1xuICBjb25zdCBzYW5pdGl6ZWRDb2xsZWN0aW9ucyA9IGNvbGxlY3Rpb25zLm1hcCgoYykgPT4gc2FuaXRpemVDb2xsZWN0aW9uTmFtZShjKSk7XG5cbiAgLy8gQnVpbGQgdW5pb24gb2Ygc2VhcmNoZXMgYWNyb3NzIGFsbCBjb2xsZWN0aW9uc1xuICBjb25zdCBzZWFyY2hRdWVyaWVzID0gc2FuaXRpemVkQ29sbGVjdGlvbnMubWFwKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgY29sbGVjdGlvbkZpZWxkcyA9IHNlYXJjaEZpZWxkcy5sZW5ndGggPiAwXG4gICAgICA/IHNlYXJjaEZpZWxkc1xuICAgICAgOiBbJ25hbWUnLCAnY29udGVudCcsICdkZXNjcmlwdGlvbicsICd0aXRsZSddO1xuXG4gICAgbGV0IHN1YlF1ZXJ5ID0gYChcbiAgICAgIEZPUiBkb2MgSU4gJHtjb2xsZWN0aW9ufWA7XG5cbiAgICAvLyBBZGQgZmlsdGVyIGZvciBzZWFyY2ggYWNyb3NzIG11bHRpcGxlIGZpZWxkcyB1c2luZyBPUlxuICAgIGNvbnN0IHNlYXJjaENvbmRpdGlvbnMgPSBjb2xsZWN0aW9uRmllbGRzXG4gICAgICAubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHNhbml0aXplRmllbGROYW1lKGZpZWxkKTtcbiAgICAgICAgICByZXR1cm4gYENPTlRBSU5TKExPV0VSKGRvYy4ke2ZpZWxkfSksICR7SlNPTi5zdHJpbmdpZnkocXVlcnkudG9Mb3dlckNhc2UoKSl9KWA7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmZpbHRlcigoYykgPT4gYyAhPT0gbnVsbCk7XG5cbiAgICBpZihzZWFyY2hDb25kaXRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHN1YlF1ZXJ5ICs9IGBcXG4gICAgICBGSUxURVIgJHtzZWFyY2hDb25kaXRpb25zLmpvaW4oJyBPUiAnKX1gO1xuICAgIH1cblxuICAgIC8vIEFkZCBhZGRpdGlvbmFsIGZpbHRlcnMgaWYgcHJvdmlkZWRcbiAgICBpZihmaWx0ZXJzKSB7XG4gICAgICBjb25zdCBmaWx0ZXJDbGF1c2UgPSBidWlsZEZpbHRlckNsYXVzZShmaWx0ZXJzLCAnZG9jJyk7XG4gICAgICBpZihmaWx0ZXJDbGF1c2UpIHtcbiAgICAgICAgc3ViUXVlcnkgKz0gYFxcbiAgICAgIEZJTFRFUiAke2ZpbHRlckNsYXVzZX1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN1YlF1ZXJ5ICs9IGBcXG4gICAgICBSRVRVUk4gTUVSR0UoZG9jLCB7X2NvbGxlY3Rpb246IFwiJHtjb2xsZWN0aW9ufVwifSlcbiAgICApYDtcblxuICAgIHJldHVybiBzdWJRdWVyeTtcbiAgfSk7XG5cbiAgLy8gQ29tYmluZSBhbGwgc2VhcmNoZXMgd2l0aCBVTklPTiBhbmQgYXBwbHkgbGltaXQgdG8gZmluYWwgcmVzdWx0c1xuICBjb25zdCBsaW1pdENsYXVzZSA9IGJ1aWxkTGltaXRDbGF1c2UobGltaXQpO1xuICBsZXQgcXVlcnlTdHJpbmcgPSBgRk9SIGRvYyBJTiBVTklPTihcXG4gICR7c2VhcmNoUXVlcmllcy5qb2luKCcsXFxuICAnKX1cXG4pXG4ke2xpbWl0Q2xhdXNlfVxuUkVUVVJOIGRvY2A7XG5cbiAgcmV0dXJuIHF1ZXJ5U3RyaW5nO1xufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBxdWVyeSBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVF1ZXJ5T3B0aW9ucyA9IChvcHRpb25zOiBRdWVyeU9wdGlvbnMpOiB2b2lkID0+IHtcbiAgaWYoIW9wdGlvbnMuY29sbGVjdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignQ29sbGVjdGlvbiBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgY29sbGVjdGlvbiBuYW1lXG4gIHNhbml0aXplQ29sbGVjdGlvbk5hbWUob3B0aW9ucy5jb2xsZWN0aW9uKTtcblxuICAvLyBWYWxpZGF0ZSBmaWVsZHMgaWYgcHJvdmlkZWRcbiAgaWYob3B0aW9ucy5maWVsZHMgJiYgb3B0aW9ucy5maWVsZHMubGVuZ3RoID4gMCkge1xuICAgIG9wdGlvbnMuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiBzYW5pdGl6ZUZpZWxkTmFtZShmaWVsZCkpO1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgc29ydCBmaWVsZHMgaWYgcHJvdmlkZWRcbiAgaWYob3B0aW9ucy5zb3J0ICYmIG9wdGlvbnMuc29ydC5sZW5ndGggPiAwKSB7XG4gICAgb3B0aW9ucy5zb3J0LmZvckVhY2goKHNvcnRPcHQpID0+IHtcbiAgICAgIHNhbml0aXplRmllbGROYW1lKHNvcnRPcHQuZmllbGQpO1xuICAgICAgaWYoIVsnQVNDJywgJ0RFU0MnXS5pbmNsdWRlcyhzb3J0T3B0LmRpcmVjdGlvbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNvcnQgZGlyZWN0aW9uOiAke3NvcnRPcHQuZGlyZWN0aW9ufWApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gVmFsaWRhdGUgbGltaXRcbiAgaWYob3B0aW9ucy5saW1pdCkge1xuICAgIGNvbnN0IHtmcm9tLCB0b30gPSBvcHRpb25zLmxpbWl0O1xuICAgIGlmKGZyb20gPCAwIHx8IHRvIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdMaW1pdCB2YWx1ZXMgbXVzdCBiZSBub24tbmVnYXRpdmUnKTtcbiAgICB9XG4gICAgaWYoZnJvbSA+PSB0bykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdMaW1pdCBcImZyb21cIiBtdXN0IGJlIGxlc3MgdGhhbiBcInRvXCInKTtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogVmFsaWRhdGUgc2VhcmNoIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2VhcmNoT3B0aW9ucyA9IChvcHRpb25zOiBTZWFyY2hPcHRpb25zKTogdm9pZCA9PiB7XG4gIGlmKCFvcHRpb25zLmNvbGxlY3Rpb25zIHx8IG9wdGlvbnMuY29sbGVjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdBdCBsZWFzdCBvbmUgY29sbGVjdGlvbiBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgaWYoIW9wdGlvbnMucXVlcnkgfHwgb3B0aW9ucy5xdWVyeS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdTZWFyY2ggcXVlcnkgY2Fubm90IGJlIGVtcHR5Jyk7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBjb2xsZWN0aW9uIG5hbWVzXG4gIG9wdGlvbnMuY29sbGVjdGlvbnMuZm9yRWFjaCgoY29sbGVjdGlvbikgPT4gc2FuaXRpemVDb2xsZWN0aW9uTmFtZShjb2xsZWN0aW9uKSk7XG5cbiAgLy8gVmFsaWRhdGUgc2VhcmNoIGZpZWxkcyBpZiBwcm92aWRlZFxuICBpZihvcHRpb25zLnNlYXJjaEZpZWxkcyAmJiBvcHRpb25zLnNlYXJjaEZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgb3B0aW9ucy5zZWFyY2hGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHNhbml0aXplRmllbGROYW1lKGZpZWxkKSk7XG4gIH1cblxuICAvLyBWYWxpZGF0ZSBsaW1pdFxuICBpZihvcHRpb25zLmxpbWl0KSB7XG4gICAgY29uc3Qge2Zyb20sIHRvfSA9IG9wdGlvbnMubGltaXQ7XG4gICAgaWYoZnJvbSA8IDAgfHwgdG8gPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xpbWl0IHZhbHVlcyBtdXN0IGJlIG5vbi1uZWdhdGl2ZScpO1xuICAgIH1cbiAgICBpZihmcm9tID49IHRvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xpbWl0IFwiZnJvbVwiIG11c3QgYmUgbGVzcyB0aGFuIFwidG9cIicpO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBWYWxpZGF0ZSBhZ2dyZWdhdGlvbiBvcHRpb25zXG4gKi9cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZUFnZ3JlZ2F0aW9uT3B0aW9ucyA9IChvcHRpb25zOiBBZ2dyZWdhdGlvbk9wdGlvbnMpOiB2b2lkID0+IHtcbiAgaWYoIW9wdGlvbnMuY29sbGVjdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignQ29sbGVjdGlvbiBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgaWYoIW9wdGlvbnMudHlwZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQWdncmVnYXRpb24gdHlwZSBpcyByZXF1aXJlZCcpO1xuICB9XG5cbiAgY29uc3QgdmFsaWRUeXBlczogUmVhZG9ubHlBcnJheTxBZ2dyZWdhdGlvblR5cGU+ID0gWydDT1VOVCcsICdTVU0nLCAnQVZHJywgJ01JTicsICdNQVgnXTtcbiAgaWYoIXZhbGlkVHlwZXMuaW5jbHVkZXMob3B0aW9ucy50eXBlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhZ2dyZWdhdGlvbiB0eXBlOiAke29wdGlvbnMudHlwZX1gKTtcbiAgfVxuXG4gIGlmKFsnU1VNJywgJ0FWRycsICdNSU4nLCAnTUFYJ10uaW5jbHVkZXMob3B0aW9ucy50eXBlKSAmJiAhb3B0aW9ucy5maWVsZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtvcHRpb25zLnR5cGV9IGFnZ3JlZ2F0aW9uIHJlcXVpcmVzIGEgZmllbGRgKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGNvbGxlY3Rpb24gbmFtZVxuICBzYW5pdGl6ZUNvbGxlY3Rpb25OYW1lKG9wdGlvbnMuY29sbGVjdGlvbik7XG5cbiAgLy8gVmFsaWRhdGUgZmllbGQgaWYgcHJvdmlkZWRcbiAgaWYob3B0aW9ucy5maWVsZCkge1xuICAgIHNhbml0aXplRmllbGROYW1lKG9wdGlvbnMuZmllbGQpO1xuICB9XG59O1xuIl0sIm5hbWVzIjpbImJ1aWxkRmllbGRTZWxlY3Rpb24iLCJidWlsZEZpbHRlckNsYXVzZSIsImJ1aWxkTGltaXRDbGF1c2UiLCJidWlsZFNvcnRDbGF1c2UiLCJzYW5pdGl6ZUNvbGxlY3Rpb25OYW1lIiwic2FuaXRpemVGaWVsZE5hbWUiLCJidWlsZFF1ZXJ5Iiwib3B0aW9ucyIsImNvbGxlY3Rpb24iLCJmaWx0ZXJzIiwic29ydCIsImxpbWl0IiwiZmllbGRzIiwiaW5jbHVkZUN1c3RvbUZpZWxkcyIsInNhbml0aXplZENvbGxlY3Rpb24iLCJmaWx0ZXJDbGF1c2UiLCJzb3J0Q2xhdXNlIiwibGVuZ3RoIiwibGltaXRDbGF1c2UiLCJmaWVsZFNlbGVjdGlvbiIsIkFycmF5IiwiZnJvbSIsInF1ZXJ5U3RyaW5nIiwiYnVpbGRBZ2dyZWdhdGlvblF1ZXJ5IiwidHlwZSIsImZpZWxkIiwiYWdncmVnYXRpb25FeHByZXNzaW9uIiwiRXJyb3IiLCJzYW5pdGl6ZWRGaWVsZCIsImJ1aWxkU2VhcmNoUXVlcnkiLCJjb2xsZWN0aW9ucyIsInF1ZXJ5Iiwic2VhcmNoRmllbGRzIiwidHJpbSIsInNhbml0aXplZENvbGxlY3Rpb25zIiwibWFwIiwiYyIsInNlYXJjaFF1ZXJpZXMiLCJjb2xsZWN0aW9uRmllbGRzIiwic3ViUXVlcnkiLCJzZWFyY2hDb25kaXRpb25zIiwiSlNPTiIsInN0cmluZ2lmeSIsInRvTG93ZXJDYXNlIiwiZmlsdGVyIiwiam9pbiIsInZhbGlkYXRlUXVlcnlPcHRpb25zIiwiZm9yRWFjaCIsInNvcnRPcHQiLCJpbmNsdWRlcyIsImRpcmVjdGlvbiIsInRvIiwidmFsaWRhdGVTZWFyY2hPcHRpb25zIiwidmFsaWRhdGVBZ2dyZWdhdGlvbk9wdGlvbnMiLCJ2YWxpZFR5cGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FRRCxTQUNFQSxtQkFBbUIsRUFDbkJDLGlCQUFpQixFQUNqQkMsZ0JBQWdCLEVBQ2hCQyxlQUFlLEVBQ2ZDLHNCQUFzQixFQUN0QkMsaUJBQWlCLFFBQ1osa0JBQWtCO0FBRXpCOzs7Q0FHQyxHQUNELE9BQU8sTUFBTUMsYUFBYSxDQUFDQztJQUN6QixNQUFNLEVBQ0pDLFVBQVUsRUFDVkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxzQkFBc0IsS0FBSyxFQUM1QixHQUFHTjtJQUVKLDJCQUEyQjtJQUMzQixNQUFNTyxzQkFBc0JWLHVCQUF1Qkk7SUFFbkQsb0JBQW9CO0lBQ3BCLE1BQU1PLGVBQWVOLFVBQVVSLGtCQUFrQlEsU0FBUyxTQUFTO0lBQ25FLE1BQU1PLGFBQWFOLFFBQVFBLEtBQUtPLE1BQU0sR0FBRyxJQUFJZCxnQkFBZ0I7V0FBSU87S0FBSyxFQUFFLFNBQVM7SUFDakYsTUFBTVEsY0FBY2hCLGlCQUFpQlM7SUFDckMsTUFBTVEsaUJBQWlCbkIsb0JBQW9CWSxTQUFTUSxNQUFNQyxJQUFJLENBQUNULFVBQVUsRUFBRSxFQUFFQyxxQkFBcUI7SUFFbEcsOEJBQThCO0lBQzlCLElBQUlTLGNBQWMsQ0FBQyxXQUFXLEVBQUVSLHFCQUFxQjtJQUVyRCxJQUFHQyxjQUFjO1FBQ2ZPLGVBQWUsQ0FBQyxT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
|
package/lib/utils/schemaUtils.js
CHANGED
|
@@ -93,4 +93,4 @@ ${fields}
|
|
|
93
93
|
`;
|
|
94
94
|
};
|
|
95
95
|
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC9ubGFicy1yZWFrdG9yLXJlbGVhc2UuZU1RNVNoL2NoZWNrb3V0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL3NjaGVtYVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHVzZXJNdXRhdGlvbnMgfSBmcm9tICcuLi9tdXRhdGlvbnMvaW5kZXguanMnO1xuaW1wb3J0IHsgdXNlclF1ZXJpZXMgfSBmcm9tICcuLi9xdWVyaWVzL2luZGV4LmpzJztcblxuZnVuY3Rpb24gZ2V0R3JhcGhRTFR5cGVTdHJpbmcodHlwZTogYW55KTogc3RyaW5nIHtcbiAgaWYgKCF0eXBlKSByZXR1cm4gJ1N0cmluZyc7XG5cbiAgLy8gSGFuZGxlIHN0cmluZyB0eXBlcyAobGlrZSAnU3RyaW5nIScsICdCb29sZWFuJywgZXRjLilcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykgcmV0dXJuIHR5cGU7XG5cbiAgLy8gSGFuZGxlIGdyYXBocWwtY29tcG9zZSB0eXBlcyAoSW5wdXRUeXBlQ29tcG9zZXIsIE9iamVjdFR5cGVDb21wb3NlcilcbiAgaWYgKHR5cGUuZ2V0VHlwZU5hbWUpIHtcbiAgICByZXR1cm4gdHlwZS5nZXRUeXBlTmFtZSgpO1xuICB9XG5cbiAgLy8gSGFuZGxlIEdyYXBoUUwgdHlwZSBvYmplY3RzXG4gIGlmICh0eXBlLm5hbWUpIHtcbiAgICByZXR1cm4gdHlwZS5uYW1lO1xuICB9XG5cbiAgLy8gSGFuZGxlIE5vbk51bGwgdHlwZVxuICBpZiAodHlwZS5vZlR5cGUpIHtcbiAgICBjb25zdCBiYXNlVHlwZSA9IGdldEdyYXBoUUxUeXBlU3RyaW5nKHR5cGUub2ZUeXBlKTtcbiAgICBpZiAodHlwZS5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gJ0dyYXBoUUxOb25OdWxsJykge1xuICAgICAgcmV0dXJuIGAke2Jhc2VUeXBlfSFgO1xuICAgIH1cbiAgICBpZiAodHlwZS5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gJ0dyYXBoUUxMaXN0Jykge1xuICAgICAgcmV0dXJuIGBbJHtiYXNlVHlwZX1dYDtcbiAgICB9XG4gIH1cblxuICAvLyBGYWxsYmFja1xuICByZXR1cm4gJ1N0cmluZyc7XG59XG5cbmV4cG9ydCBjb25zdCBjb21wb3NlU2NoZW1hRnJvbVR5cGVzID0gKHR5cGVzOiBhbnlbXSk6IHN0cmluZyA9PiB7XG4gIHJldHVybiB0eXBlc1xuICAgIC5tYXAodHlwZSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdHlwZS50b1NETCA/IHR5cGUudG9TREwoKSA6ICcnO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICB9KVxuICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAuam9pbignXFxuJyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0UmVha3Rvck11dGF0aW9uRmllbGRzID0gKGZpZWxkTmFtZXM6IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBmaWVsZHMgPSB1c2VyTXV0YXRpb25zLmdldEZpZWxkcygpO1xuICAgIGNvbnN0IHNlbGVjdGVkRmllbGRzID0gZmllbGROYW1lc1xuICAgICAgLm1hcChmaWVsZE5hbWUgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IGZpZWxkc1tmaWVsZE5hbWVdO1xuICAgICAgICBpZiAoIWZpZWxkKSB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWVsZFR5cGUgPSBnZXRHcmFwaFFMVHlwZVN0cmluZyhmaWVsZC50eXBlKTtcbiAgICAgICAgY29uc3QgYXJncyA9IGZpZWxkLmFyZ3NcbiAgICAgICAgICA/IE9iamVjdC5lbnRyaWVzKGZpZWxkLmFyZ3MpXG4gICAgICAgICAgICAgIC5tYXAoKFthcmdOYW1lLCBhcmdWYWx1ZV06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ1R5cGUgPSBnZXRHcmFwaFFMVHlwZVN0cmluZyhhcmdWYWx1ZS50eXBlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7YXJnTmFtZX06ICR7YXJnVHlwZX1gO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuam9pbignLCAnKVxuICAgICAgICAgIDogJyc7XG5cbiAgICAgICAgY29uc3QgYXJnU3RyaW5nID0gYXJncyA/IGAoJHthcmdzfSlgIDogJyc7XG4gICAgICAgIHJldHVybiBgICAgICR7ZmllbGROYW1lfSR7YXJnU3RyaW5nfTogJHtmaWVsZFR5cGV9YDtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAuam9pbignXFxuJyk7XG5cbiAgICByZXR1cm4gc2VsZWN0ZWRGaWVsZHM7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnJztcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlYWt0b3JRdWVyeUZpZWxkcyA9IChmaWVsZE5hbWVzOiBzdHJpbmdbXSk6IHN0cmluZyA9PiB7XG4gIHRyeSB7XG4gICAgY29uc3QgZmllbGRzID0gdXNlclF1ZXJpZXMuZ2V0RmllbGRzKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWVsZHMgPSBmaWVsZE5hbWVzXG4gICAgICAubWFwKGZpZWxkTmFtZSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gZmllbGRzW2ZpZWxkTmFtZV07XG4gICAgICAgIGlmICghZmllbGQpIHtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpZWxkVHlwZSA9IGdldEdyYXBoUUxUeXBlU3RyaW5nKGZpZWxkLnR5cGUpO1xuICAgICAgICBjb25zdCBhcmdzID0gZmllbGQuYXJnc1xuICAgICAgICAgID8gT2JqZWN0LmVudHJpZXMoZmllbGQuYXJncylcbiAgICAgICAgICAgICAgLm1hcCgoW2FyZ05hbWUsIGFyZ1ZhbHVlXTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJnVHlwZSA9IGdldEdyYXBoUUxUeXBlU3RyaW5nKGFyZ1ZhbHVlLnR5cGUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBgJHthcmdOYW1lfTogJHthcmdUeXBlfWA7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5qb2luKCcsICcpXG4gICAgICAgICAgOiAnJztcblxuICAgICAgICBjb25zdCBhcmdTdHJpbmcgPSBhcmdzID8gYCgke2FyZ3N9KWAgOiAnJztcbiAgICAgICAgcmV0dXJuIGAgICAgJHtmaWVsZE5hbWV9JHthcmdTdHJpbmd9OiAke2ZpZWxkVHlwZX1gO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgIC5qb2luKCdcXG4nKTtcblxuICAgIHJldHVybiBzZWxlY3RlZEZpZWxkcztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuICcnO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRDdXN0b21NdXRhdGlvbnMgPSAoZmllbGROYW1lczogc3RyaW5nW10pOiBzdHJpbmcgPT4ge1xuICBjb25zdCBmaWVsZHMgPSBnZXRSZWFrdG9yTXV0YXRpb25GaWVsZHMoZmllbGROYW1lcyk7XG4gIHJldHVybiBgXG4gIHR5cGUgTXV0YXRpb24ge1xuJHtmaWVsZHN9XG4gIH1cbmA7XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRDdXN0b21RdWVyaWVzID0gKGZpZWxkTmFtZXM6IHN0cmluZ1tdKTogc3RyaW5nID0+IHtcbiAgY29uc3QgZmllbGRzID0gZ2V0UmVha3RvclF1ZXJ5RmllbGRzKGZpZWxkTmFtZXMpO1xuICByZXR1cm4gYFxuICB0eXBlIFF1ZXJ5IHtcbiR7ZmllbGRzfVxuICB9XG5gO1xufTtcbiJdLCJuYW1lcyI6WyJ1c2VyTXV0YXRpb25zIiwidXNlclF1ZXJpZXMiLCJnZXRHcmFwaFFMVHlwZVN0cmluZyIsInR5cGUiLCJnZXRUeXBlTmFtZSIsIm5hbWUiLCJvZlR5cGUiLCJiYXNlVHlwZSIsImNvbXBvc2VTY2hlbWFGcm9tVHlwZXMiLCJ0eXBlcyIsIm1hcCIsInRvU0RMIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJnZXRSZWFrdG9yTXV0YXRpb25GaWVsZHMiLCJmaWVsZE5hbWVzIiwiZmllbGRzIiwiZ2V0RmllbGRzIiwic2VsZWN0ZWRGaWVsZHMiLCJmaWVsZE5hbWUiLCJmaWVsZCIsImZpZWxkVHlwZSIsImFyZ3MiLCJPYmplY3QiLCJlbnRyaWVzIiwiYXJnTmFtZSIsImFyZ1ZhbHVlIiwiYXJnVHlwZSIsImFyZ1N0cmluZyIsImdldFJlYWt0b3JRdWVyeUZpZWxkcyIsImJ1aWxkQ3VzdG9tTXV0YXRpb25zIiwiYnVpbGRDdXN0b21RdWVyaWVzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxhQUFhLFFBQVEsd0JBQXdCO0FBQ3RELFNBQVNDLFdBQVcsUUFBUSxzQkFBc0I7QUFFbEQsU0FBU0MscUJBQXFCQyxJQUFTO0lBQ3JDLElBQUksQ0FBQ0EsTUFBTSxPQUFPO0lBRWxCLHdEQUF3RDtJQUN4RCxJQUFJLE9BQU9BLFNBQVMsVUFBVSxPQUFPQTtJQUVyQyx1RUFBdUU7SUFDdkUsSUFBSUEsS0FBS0MsV0FBVyxFQUFFO1FBQ3BCLE9BQU9ELEtBQUtDLFdBQVc7SUFDekI7SUFFQSw4QkFBOEI7SUFDOUIsSUFBSUQsS0FBS0UsSUFBSSxFQUFFO1FBQ2IsT0FBT0YsS0FBS0UsSUFBSTtJQUNsQjtJQUVBLHNCQUFzQjtJQUN0QixJQUFJRixLQUFLRyxNQUFNLEVBQUU7UUFDZixNQUFNQyxXQUFXTCxxQkFBcUJDLEtBQUtHLE1BQU07UUFDakQsSUFBSUgsS0FBSyxXQUFXLEVBQUVFLFNBQVMsa0JBQWtCO1lBQy9DLE9BQU8sR0FBR0UsU0FBUyxDQUFDLENBQUM7UUFDdkI7UUFDQSxJQUFJSixLQUFLLFdBQVcsRUFBRUUsU0FBUyxlQUFlO1lBQzVDLE9BQU8sQ0FBQyxDQUFDLEVBQUVFLFNBQVMsQ0FBQyxDQUFDO1FBQ3hCO0lBQ0Y7SUFFQSxXQUFXO0lBQ1gsT0FBTztBQUNUO0FBRUEsT0FBTyxNQUFNQyx5QkFBeUIsQ0FBQ0M7SUFDckMsT0FBT0EsTUFDSkMs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
|
|
@@ -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 jwt from 'jsonwebtoken';
|
|
5
5
|
export const setSession = (session)=>jwt.sign(session, process.env.SESSION_SECRET);
|
|
6
6
|
export const getSession = (token)=>{
|
|
@@ -25,4 +25,4 @@ export const ADMIN_ACCESS_LEVEL = -1;
|
|
|
25
25
|
export const isAdminUser = (subject)=>subject?.userAccess === ADMIN_ACCESS_LEVEL;
|
|
26
26
|
export const hasAccessLevel = (subject, accessLevel)=>isAdminUser(subject) || Number(subject?.userAccess || 0) >= accessLevel;
|
|
27
27
|
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC9ubGFicy1yZWFrdG9yLXJlbGVhc2UuZU1RNVNoL2NoZWNrb3V0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL3Nlc3Npb25VdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAxOS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IGp3dCBmcm9tICdqc29ud2VidG9rZW4nO1xuXG5leHBvcnQgdHlwZSBTZXNzaW9uID0ge1xuICByZWFkb25seSBlcnJvcnM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZXhwPzogbnVtYmVyO1xuICByZWFkb25seSBpYXQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHBlcnNvbmFJZD86IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlcm5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZXJBY2Nlc3M/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHVzZXJJZDogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQWNjZXNzU3ViamVjdCA9IHtcbiAgcmVhZG9ubHkgdXNlckFjY2Vzcz86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFNlc3Npb25Ub2tlbiA9IHtcbiAgcmVhZG9ubHkgZXhwaXJlczogbnVtYmVyO1xuICByZWFkb25seSBpc3N1ZWQ6IG51bWJlcjtcbiAgcmVhZG9ubHkgcGVyc29uYUlkPzogc3RyaW5nO1xuICByZWFkb25seSB0b2tlbjogc3RyaW5nO1xuICByZWFkb25seSB1c2VySWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlcm5hbWU6IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBzZXRTZXNzaW9uID0gKHNlc3Npb246IFNlc3Npb24pOiBzdHJpbmcgPT4gand0LnNpZ24oc2Vzc2lvbiwgcHJvY2Vzcy5lbnYuU0VTU0lPTl9TRUNSRVQpO1xuXG5leHBvcnQgY29uc3QgZ2V0U2Vzc2lvbiA9ICh0b2tlbjogc3RyaW5nKTogU2Vzc2lvbiA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGp3dC52ZXJpZnkodG9rZW4sIHByb2Nlc3MuZW52LlNFU1NJT05fU0VDUkVUKTtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIHN3aXRjaChlcnJvci5tZXNzYWdlKSB7XG4gICAgICBjYXNlICdqd3QgZXhwaXJlZCc6IHtcbiAgICAgICAgY29uc3QgZXJyID0gbmV3IEVycm9yKCdleHBpcmVkX3Nlc3Npb24nKTtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoJ2ludmFsaWRfc2Vzc2lvbicpO1xuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgQURNSU5fQUNDRVNTX0xFVkVMID0gLTE7XG5cbmV4cG9ydCBjb25zdCBpc0FkbWluVXNlciA9IChzdWJqZWN0PzogQWNjZXNzU3ViamVjdCk6IGJvb2xlYW4gPT4gc3ViamVjdD8udXNlckFjY2VzcyA9PT0gQURNSU5fQUNDRVNTX0xFVkVMO1xuZXhwb3J0IGNvbnN0IGhhc0FjY2Vzc0xldmVsID0gKHN1YmplY3Q6IEFjY2Vzc1N1YmplY3QgfCB1bmRlZmluZWQsIGFjY2Vzc0xldmVsOiBudW1iZXIpOiBib29sZWFuID0+IChcbiAgaXNBZG1pblVzZXIoc3ViamVjdCkgfHwgTnVtYmVyKHN1YmplY3Q/LnVzZXJBY2Nlc3MgfHwgMCkgPj0gYWNjZXNzTGV2ZWxcbik7XG4iXSwibmFtZXMiOlsiand0Iiwic2V0U2Vzc2lvbiIsInNlc3Npb24iLCJzaWduIiwicHJvY2VzcyIsImVudiIsIlNFU1NJT05fU0VDUkVUIiwiZ2V0U2Vzc2lvbiIsInRva2VuIiwidmVyaWZ5IiwiZXJyb3IiLCJtZXNzYWdlIiwiZXJyIiwiRXJyb3IiLCJBRE1JTl9BQ0NFU1NfTEVWRUwiLCJpc0FkbWluVXNlciIsInN1YmplY3QiLCJ1c2VyQWNjZXNzIiwiaGFzQWNjZXNzTGV2ZWwiLCJhY2Nlc3NMZXZlbCIsIk51bWJlciJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsT0FBT0EsU0FBUyxlQUFlO0FBeUIvQixPQUFPLE1BQU1DLGFBQWEsQ0FBQ0MsVUFBNkJGLElBQUlHLElBQUksQ0FBQ0QsU0FBU0UsUUFBUUMsR0FBRyxDQUFDQyxjQUFjLEVBQUU7QUFFdEcsT0FBTyxNQUFNQyxhQUFhLENBQUNDO0lBQ3pCLElBQUk7UUFDRixPQUFPUixJQUFJUyxNQUFNLENBQUNELE9BQU9KLFFBQVFDLEdBQUcsQ0FBQ0MsY0FBYztJQUNyRCxFQUFFLE9BQU1JLE9BQU87UUFDYixPQUFPQSxNQUFNQyxPQUFPO1lBQ2xCLEtBQUs7Z0JBQWU7b0JBQ2xCLE1BQU1DLE1BQU0sSUFBSUMsTUFBTTtvQkFDdEIsTUFBTUQ7Z0JBQ1I7WUFDQTtnQkFBUztvQkFDUCxNQUFNQSxNQUFNLElBQUlDLE1BQU07b0JBQ3RCLE1BQU1EO2dCQUNSO1FBQ0Y7SUFDRjtBQUNGLEVBQUU7QUFFRixPQUFPLE1BQU1FLHFCQUFxQixDQUFDLEVBQUU7QUFFckMsT0FBTyxNQUFNQyxjQUFjLENBQUNDLFVBQXFDQSxTQUFTQyxlQUFlSCxtQkFBbUI7QUFDNUcsT0FBTyxNQUFNSSxpQkFBaUIsQ0FBQ0YsU0FBb0NHLGNBQ2pFSixZQUFZQyxZQUFZSSxPQUFPSixTQUFTQyxjQUFjLE1BQU1FLFlBQzVEIn0=
|
|
@@ -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
|
*/
|
|
5
5
|
import stripe from 'stripe';
|
|
6
6
|
export declare const stripeApiVersion = "2026-07-29.dahlia";
|
package/lib/utils/stripeUtils.js
CHANGED
|
@@ -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
|
*/ import stripe from 'stripe';
|
|
5
5
|
import { Config } from '../config.js';
|
|
6
6
|
export const stripeApiVersion = '2026-07-29.dahlia';
|
|
@@ -9,4 +9,4 @@ export const getStripeClient = ()=>new stripe(Config.get('stripe.token'), {
|
|
|
9
9
|
typescript: true
|
|
10
10
|
});
|
|
11
11
|
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC9ubGFicy1yZWFrdG9yLXJlbGVhc2UuZU1RNVNoL2NoZWNrb3V0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL3N0cmlwZVV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQgc3RyaXBlIGZyb20gJ3N0cmlwZSc7XG5cbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcuanMnO1xuXG5leHBvcnQgY29uc3Qgc3RyaXBlQXBpVmVyc2lvbiA9ICcyMDI2LTA3LTI5LmRhaGxpYSc7XG5cbmV4cG9ydCBjb25zdCBnZXRTdHJpcGVDbGllbnQgPSAoKSA9PiBuZXcgc3RyaXBlKENvbmZpZy5nZXQoJ3N0cmlwZS50b2tlbicpLCB7YXBpVmVyc2lvbjogc3RyaXBlQXBpVmVyc2lvbiwgdHlwZXNjcmlwdDogdHJ1ZX0pO1xuIl0sIm5hbWVzIjpbInN0cmlwZSIsIkNvbmZpZyIsInN0cmlwZUFwaVZlcnNpb24iLCJnZXRTdHJpcGVDbGllbnQiLCJnZXQiLCJhcGlWZXJzaW9uIiwidHlwZXNjcmlwdCJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBQ0QsT0FBT0EsWUFBWSxTQUFTO0FBRTVCLFNBQVFDLE1BQU0sUUFBTyxlQUFlO0FBRXBDLE9BQU8sTUFBTUMsbUJBQW1CLG9CQUFvQjtBQUVwRCxPQUFPLE1BQU1DLGtCQUFrQixJQUFNLElBQUlILE9BQU9DLE9BQU9HLEdBQUcsQ0FBQyxpQkFBaUI7UUFBQ0MsWUFBWUg7UUFBa0JJLFlBQVk7SUFBSSxHQUFHIn0=
|
|
@@ -8,4 +8,4 @@ export const parseTemplate = (template, params)=>{
|
|
|
8
8
|
};
|
|
9
9
|
export const createTemplate = (templateString, params)=>parseTemplate(templateString, params);
|
|
10
10
|
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC9ubGFicy1yZWFrdG9yLXJlbGVhc2UuZU1RNVNoL2NoZWNrb3V0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL3RlbXBsYXRlVXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVGVtcGxhdGVQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5leHBvcnQgY29uc3QgcGFyc2VUZW1wbGF0ZSA9ICh0ZW1wbGF0ZTogc3RyaW5nLCBwYXJhbXM6IFRlbXBsYXRlUGFyYW1zKTogc3RyaW5nID0+IHtcbiAgbGV0IHJlc3VsdCA9IHRlbXBsYXRlO1xuXG4gIE9iamVjdC5rZXlzKHBhcmFtcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcWyR7a2V5fVxcXFxdYCwgJ2cnKTtcbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShyZWdleCwgcGFyYW1zW2tleV0pO1xuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVRlbXBsYXRlID0gPFQgZXh0ZW5kcyBUZW1wbGF0ZVBhcmFtcz4odGVtcGxhdGVTdHJpbmc6IHN0cmluZywgcGFyYW1zOiBUKTogc3RyaW5nID0+XG4gIHBhcnNlVGVtcGxhdGUodGVtcGxhdGVTdHJpbmcsIHBhcmFtcyk7XG4iXSwibmFtZXMiOlsicGFyc2VUZW1wbGF0ZSIsInRlbXBsYXRlIiwicGFyYW1zIiwicmVzdWx0IiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJyZWdleCIsIlJlZ0V4cCIsInJlcGxhY2UiLCJjcmVhdGVUZW1wbGF0ZSIsInRlbXBsYXRlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLE1BQU1BLGdCQUFnQixDQUFDQyxVQUFrQkM7SUFDOUMsSUFBSUMsU0FBU0Y7SUFFYkcsT0FBT0MsSUFBSSxDQUFDSCxRQUFRSSxPQUFPLENBQUMsQ0FBQ0M7UUFDM0IsTUFBTUMsUUFBUSxJQUFJQyxPQUFPLENBQUMsR0FBRyxFQUFFRixJQUFJLEdBQUcsQ0FBQyxFQUFFO1FBQ3pDSixTQUFTQSxPQUFPTyxPQUFPLENBQUNGLE9BQU9OLE1BQU0sQ0FBQ0ssSUFBSTtJQUM1QztJQUVBLE9BQU9KO0FBQ1QsRUFBRTtBQUVGLE9BQU8sTUFBTVEsaUJBQWlCLENBQTJCQyxnQkFBd0JWLFNBQy9FRixjQUFjWSxnQkFBZ0JWLFFBQVEifQ==
|
package/lib/utils/testUtils.js
CHANGED
|
@@ -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
|
*/ import { beforeAll, describe, expect, it, vi } from 'vitest';
|
|
5
5
|
const jest = Object.assign(vi, {
|
|
6
6
|
isolateModulesAsync: async (fn)=>{
|
|
@@ -297,4 +297,4 @@ export const createUtilsTestSuite = (name, utilsPath, testCases)=>{
|
|
|
297
297
|
});
|
|
298
298
|
};
|
|
299
299
|
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3Ivc3JjL3V0aWxzL3Rlc3RVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBDb3B5cmlnaHRzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4gU2VlIHRoZSBhY2NvbXBhbnlpbmcgTElDRU5TRSBmaWxlIGZvciB0ZXJtcy5cbiAqL1xuaW1wb3J0IHtiZWZvcmVBbGwsIGRlc2NyaWJlLCBleHBlY3QsIGl0LCB2aX0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB0eXBlIHtNb2NrfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHR5cGUge0dyYXBoUUxSZXNvbHZlSW5mb30gZnJvbSAnZ3JhcGhxbCc7XG5cbmNvbnN0IGplc3QgPSBPYmplY3QuYXNzaWduKHZpIGFzIGFueSwge1xuICBpc29sYXRlTW9kdWxlc0FzeW5jOiBhc3luYyAoZm46ICgpID0+IFByb21pc2U8dm9pZD4pID0+IHtcbiAgICB2aS5yZXNldE1vZHVsZXMoKTtcbiAgICBhd2FpdCBmbigpO1xuICB9LFxuICByZXF1aXJlQWN0dWFsOiB2aS5pbXBvcnRBY3R1YWwsXG4gIHVuc3RhYmxlX21vY2tNb2R1bGU6IHZpLmRvTW9ja1xufSkgYXMgYW55O1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5cbi8vIERlZmluZSBwcm9wZXIgdHlwZXMgZm9yIHRlc3QgdXRpbGl0aWVzXG50eXBlIE1vY2tPdmVycmlkZXMgPSBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbnR5cGUgVGVzdENvbnRleHQgPSBQYXJ0aWFsPEFwaUNvbnRleHQ+ICYge3Nlc3Npb24/OiBQYXJ0aWFsPHt1c2VySWQ6IHN0cmluZzsgdXNlcm5hbWU6IHN0cmluZzsgdXNlckFjY2VzczogbnVtYmVyfT59O1xudHlwZSBUZXN0QXJncyA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xudHlwZSBUZXN0UmV0dXJuVmFsdWUgPSB1bmtub3duO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja0NvbnRleHQgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pOiBBcGlDb250ZXh0ID0+IHtcbiAgY29uc3QgZGVmYXVsdFNlc3Npb24gPSB7XG4gICAgdXNlckFjY2VzczogMSxcbiAgICB1c2VySWQ6ICd1c2VyMScsXG4gICAgdXNlcm5hbWU6ICd0ZXN0dXNlcidcbiAgfTtcbiAgY29uc3Qgb3ZlcnJpZGVTZXNzaW9uOiBQYXJ0aWFsPHR5cGVvZiBkZWZhdWx0U2Vzc2lvbj4gPSBvdmVycmlkZXMuc2Vzc2lvbiB8fCB7fTtcbiAgY29uc3QgY29udGV4dDogVGVzdENvbnRleHQgPSB7XG4gICAgZGF0YWJhc2VOYW1lOiAob3ZlcnJpZGVzLmRhdGFiYXNlTmFtZSBhcyBzdHJpbmcpID8/ICd0ZXN0JyxcbiAgICAuLi5vdmVycmlkZXNcbiAgfTtcbiAgZGVsZXRlIGNvbnRleHQuc2Vzc2lvbjtcbiAgY29udGV4dC5zZXNzaW9uID0ge1xuICAgIHVzZXJBY2Nlc3M6IG92ZXJyaWRlU2Vzc2lvbi51c2VyQWNjZXNzICE9PSB1bmRlZmluZWQgPyBvdmVycmlkZVNlc3Npb24udXNlckFjY2VzcyA6IGRlZmF1bHRTZXNzaW9uLnVzZXJBY2Nlc3MsXG4gICAgdXNlcklkOiBvdmVycmlkZVNlc3Npb24udXNlcklkICE9PSB1bmRlZmluZWQgPyBvdmVycmlkZVNlc3Npb24udXNlcklkIDogZGVmYXVsdFNlc3Npb24udXNlcklkLFxuICAgIHVzZXJuYW1lOiBvdmVycmlkZVNlc3Npb24udXNlcm5hbWUgIT09IHVuZGVmaW5lZCA/IG92ZXJyaWRlU2Vzc2lvbi51c2VybmFtZSA6IGRlZmF1bHRTZXNzaW9uLnVzZXJuYW1lXG4gIH07XG4gIHJldHVybiBjb250ZXh0IGFzIEFwaUNvbnRleHQ7XG59O1xuXG4vLyBDb21tb24gbW9jayByZXNvbHZlIGluZm8gZm9yIEdyYXBoUUwgcmVzb2x2ZXJzXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja1Jlc29sdmVJbmZvID0gKGZpZWxkTmFtZTogc3RyaW5nID0gJ3Rlc3QnKTogR3JhcGhRTFJlc29sdmVJbmZvID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICBjb25zdCBvcGVyYXRpb24gPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ29wZXJhdGlvbiddO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1hc3NlcnRpb25zXG4gIGNvbnN0IHBhcmVudFR5cGUgPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ3BhcmVudFR5cGUnXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICBjb25zdCByZXR1cm5UeXBlID0ge30gYXMgR3JhcGhRTFJlc29sdmVJbmZvWydyZXR1cm5UeXBlJ107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcbiAgY29uc3Qgc2NoZW1hID0ge30gYXMgR3JhcGhRTFJlc29sdmVJbmZvWydzY2hlbWEnXTtcblxuICByZXR1cm4ge1xuICAgIGZpZWxkTmFtZSxcbiAgICBmaWVsZE5vZGVzOiBbXSxcbiAgICBmcmFnbWVudHM6IHt9LFxuICAgIG9wZXJhdGlvbixcbiAgICBwYXJlbnRUeXBlLFxuICAgIHBhdGg6IHtrZXk6IGZpZWxkTmFtZSwgcHJldjogdW5kZWZpbmVkLCB0eXBlbmFtZTogJ1Rlc3QnfSxcbiAgICByZXR1cm5UeXBlLFxuICAgIHJvb3RWYWx1ZToge30sXG4gICAgc2NoZW1hLFxuICAgIHZhcmlhYmxlVmFsdWVzOiB7fVxuICB9O1xufTtcblxuLy8gVXRpbGl0eSB0byBtb2NrIGFjdGlvbnMgbW9kdWxlXG5leHBvcnQgY29uc3QgbW9ja0FjdGlvbnNNb2R1bGUgPSBhc3luYyAobW9kdWxlUGF0aDogc3RyaW5nLCBtb2NrQWN0aW9uczogUmVjb3JkPHN0cmluZywgTW9jaz4pID0+IHtcbiAgY29uc3QgbW9ja3MgPSBPYmplY3QuZW50cmllcyhtb2NrQWN0aW9ucykucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGFjY1trZXldID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbih2YWx1ZSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgTW9jaz4pO1xuXG4gIGF3YWl0IGplc3QuaXNvbGF0ZU1vZHVsZXNBc3luYyhhc3luYyAoKSA9PiB7XG4gICAgamVzdC51bnN0YWJsZV9tb2NrTW9kdWxlKG1vZHVsZVBhdGgsICgpID0+ICh7XG4gICAgICBfX2VzTW9kdWxlOiB0cnVlLFxuICAgICAgLi4ubW9ja3MsXG4gICAgICBkZWZhdWx0OiBtb2Nrc1xuICAgIH0pKTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIG1vY2sgb2JqZWN0IHR5cGVzXG5leHBvcnQgY29uc3QgbW9ja09iamVjdFR5cGUgPSBhc3luYyAobW9kdWxlUGF0aDogc3RyaW5nLCB0eXBlTmFtZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG1vY2sgPSB7XG4gICAgX19lc01vZHVsZTogdHJ1ZSxcbiAgICBbdHlwZU5hbWVdOiB7XG4gICAgICBnZXRGaWVsZDogamVzdC5mbigoKSA9PiAoe3Jlc29sdmU6IGplc3QuZm4oKX0pKSxcbiAgICAgIGdldEZpZWxkczogamVzdC5mbigoKSA9PiAoe30pKVxuICAgIH0sXG4gICAgZGVmYXVsdDoge1xuICAgICAgW3R5cGVOYW1lXToge1xuICAgICAgICBnZXRGaWVsZDogamVzdC5mbigoKSA9PiAoe3Jlc29sdmU6IGplc3QuZm4oKX0pKSxcbiAgICAgICAgZ2V0RmllbGRzOiBqZXN0LmZuKCgpID0+ICh7fSkpXG4gICAgICB9XG4gICAgfVxuICB9O1xuICBhd2FpdCBqZXN0Lmlzb2xhdGVNb2R1bGVzQXN5bmMoYXN5bmMgKCkgPT4ge1xuICAgIGplc3QudW5zdGFibGVfbW9ja01vZHVsZShtb2R1bGVQYXRoLCAoKSA9PiBtb2NrKTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIGNyZWF0ZSBhIHRlc3Qgc3VpdGUgZm9yIHF1ZXJ5IHJlc29sdmVyc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVF1ZXJ5VGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFjdGlvbnNQYXRoOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgYXJnczogVGVzdEFyZ3M7XG4gICAgZXhwZWN0ZWRDYWxsOiAoY29udGV4dDogVGVzdENvbnRleHQsIGFyZ3M6IFRlc3RBcmdzKSA9PiBUZXN0QXJncztcbiAgICBtb2NrUmV0dXJuVmFsdWU6IFRlc3RSZXR1cm5WYWx1ZTtcbiAgICBlcnJvckNhc2U/OiBib29sZWFuO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKGAke25hbWV9IFF1ZXJpZXNgLCAoKSA9PiB7XG4gICAgbGV0IGFjdGlvbnM6IGFueTtcbiAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG5cbiAgICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgICAgYWN0aW9ucyA9IHt9O1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtuYW1lOiB0ZXN0TmFtZSwgYWN0aW9uTmFtZSwgYXJncywgZXhwZWN0ZWRDYWxsLCBtb2NrUmV0dXJuVmFsdWUsIGVycm9yQ2FzZSA9IGZhbHNlfSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCBjYWxsICR7YWN0aW9uTmFtZX0gYWN0aW9uIHdpdGggY29ycmVjdCBwYXJhbWV0ZXJzYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBtb2NrRm4gPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZShtb2NrUmV0dXJuVmFsdWUpKTtcbiAgICAgICAgYWN0aW9uc1thY3Rpb25OYW1lXSA9IG1vY2tGbjtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2NrRm4obW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICBleHBlY3QobW9ja0ZuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwobW9ja1JldHVyblZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZihlcnJvckNhc2UpIHtcbiAgICAgICAgaXQoYHNob3VsZCBoYW5kbGUgJHthY3Rpb25OYW1lfSB3aGVuIG5vIGRhdGEgZm91bmRgLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbW9ja0ZuID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUobnVsbCkpO1xuICAgICAgICAgIGFjdGlvbnNbYWN0aW9uTmFtZV0gPSBtb2NrRm47XG5cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2NrRm4obW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICAgIGV4cGVjdChtb2NrRm4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tDb250ZXh0LCBleHBlY3RlZENhbGwobW9ja0NvbnRleHQsIGFyZ3MpKTtcbiAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIGNyZWF0ZSBhIHRlc3Qgc3VpdGUgZm9yIG11dGF0aW9uIHJlc29sdmVyc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU11dGF0aW9uVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFjdGlvbnNQYXRoOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgYXJnczogVGVzdEFyZ3M7XG4gICAgZXhwZWN0ZWRDYWxsOiAoY29udGV4dDogVGVzdENvbnRleHQsIGFyZ3M6IFRlc3RBcmdzKSA9PiBUZXN0QXJncztcbiAgICBtb2NrUmV0dXJuVmFsdWU6IFRlc3RSZXR1cm5WYWx1ZTtcbiAgICByZXF1aXJlc0F1dGg/OiBib29sZWFuO1xuICAgIGF1dGhVc2VySWQ/OiBzdHJpbmc7XG4gIH0+XG4pID0+IHtcbiAgZGVzY3JpYmUoYCR7bmFtZX0gTXV0YXRpb25zYCwgKCkgPT4ge1xuICAgIGxldCBhY3Rpb25zOiBhbnk7XG5cbiAgICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgICAgYWN0aW9ucyA9IHt9O1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtcbiAgICAgIGFjdGlvbk5hbWUsXG4gICAgICBhcmdzLFxuICAgICAgZXhwZWN0ZWRDYWxsLFxuICAgICAgbW9ja1JldHVyblZhbHVlLFxuICAgICAgcmVxdWlyZXNBdXRoID0gZmFsc2UsXG4gICAgICBhdXRoVXNlcklkXG4gICAgfSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCBjYWxsICR7YWN0aW9uTmFtZX0gYWN0aW9uIHdpdGggY29ycmVjdCBwYXJhbWV0ZXJzYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG4gICAgICAgIGlmKHJlcXVpcmVzQXV0aCAmJiBhdXRoVXNlcklkKSB7XG4gICAgICAgICAgKG1vY2tDb250ZXh0LnNlc3Npb24gYXMge3VzZXJJZDogc3RyaW5nfSkudXNlcklkID0gYXV0aFVzZXJJZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1vY2tGbiA9IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKG1vY2tSZXR1cm5WYWx1ZSkpO1xuICAgICAgICBhY3Rpb25zW2FjdGlvbk5hbWVdID0gbW9ja0ZuO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vY2tGbihtb2NrQ29udGV4dCwgYXJncyk7XG4gICAgICAgIGV4cGVjdChtb2NrRm4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tDb250ZXh0LCBleHBlY3RlZENhbGwobW9ja0NvbnRleHQsIGFyZ3MpKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChtb2NrUmV0dXJuVmFsdWUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuLy8gVXRpbGl0eSB0byBjcmVhdGUgaW50ZWdyYXRpb24gdGVzdCBzdWl0ZVxuZXhwb3J0IGNvbnN0IGNyZWF0ZUludGVncmF0aW9uVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFjdGlvbnNQYXRoOiBzdHJpbmcsXG4gIG9iamVjdFR5cGVQYXRoOiBzdHJpbmcsXG4gIHR5cGVOYW1lOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgYXJnczogVGVzdEFyZ3M7XG4gICAgZXhwZWN0ZWRDYWxsOiAoY29udGV4dDogVGVzdENvbnRleHQsIGFyZ3M6IFRlc3RBcmdzKSA9PiBUZXN0QXJncztcbiAgICBzdWNjZXNzUmV0dXJuVmFsdWU6IFRlc3RSZXR1cm5WYWx1ZTtcbiAgICBlcnJvclJldHVyblZhbHVlOiBUZXN0UmV0dXJuVmFsdWU7XG4gICAgdGVzdEVycm9yQ2FzZTogYm9vbGVhbjtcbiAgfT5cbikgPT4ge1xuICBkZXNjcmliZShgJHtuYW1lfSBJbnRlZ3JhdGlvbmAsICgpID0+IHtcbiAgICBsZXQgYWN0aW9uczogYW55O1xuXG4gICAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICAgIGFjdGlvbnMgPSB7fTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7XG4gICAgICBuYW1lOiB0ZXN0TmFtZSxcbiAgICAgIGFjdGlvbk5hbWUsXG4gICAgICBhcmdzLFxuICAgICAgZXhwZWN0ZWRDYWxsLFxuICAgICAgc3VjY2Vzc1JldHVyblZhbHVlLFxuICAgICAgZXJyb3JSZXR1cm5WYWx1ZSxcbiAgICAgIHRlc3RFcnJvckNhc2VcbiAgICB9KSA9PiB7XG4gICAgICBkZXNjcmliZSh0ZXN0TmFtZSwgKCkgPT4ge1xuICAgICAgICBpdChgc2hvdWxkIHJldHVybiBkYXRhIHdoZW4gJHthY3Rpb25OYW1lfSBzdWNjZWVkc2AsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG4gICAgICAgICAgY29uc3QgbW9ja0ZuID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUoc3VjY2Vzc1JldHVyblZhbHVlKSk7XG4gICAgICAgICAgYWN0aW9uc1thY3Rpb25OYW1lXSA9IG1vY2tGbjtcblxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vY2tGbihtb2NrQ29udGV4dCwgYXJncyk7XG5cbiAgICAgICAgICBleHBlY3QobW9ja0ZuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChzdWNjZXNzUmV0dXJuVmFsdWUgfHwge30pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZih0ZXN0RXJyb3JDYXNlKSB7XG4gICAgICAgICAgaXQoYHNob3VsZCBoYW5kbGUgJHthY3Rpb25OYW1lfSB3aGVuIG5vIGRhdGEgZm91bmRgLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG4gICAgICAgICAgICBjb25zdCBtb2NrRm4gPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZShlcnJvclJldHVyblZhbHVlKSk7XG4gICAgICAgICAgICBhY3Rpb25zW2FjdGlvbk5hbWVdID0gbW9ja0ZuO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2NrRm4obW9ja0NvbnRleHQsIGFyZ3MpO1xuXG4gICAgICAgICAgICBleHBlY3QobW9ja0ZuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGVycm9yUmV0dXJuVmFsdWUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vLyBDb21tb24gbW9jayBkYXRhIGdlbmVyYXRvcnNcbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrVXNlciA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgZW1haWw6ICd0ZXN0QGV4YW1wbGUuY29tJyxcbiAgZmlyc3ROYW1lOiAnVGVzdCcsXG4gIGxhc3ROYW1lOiAnVXNlcicsXG4gIHVzZXJJZDogJ3VzZXIxJyxcbiAgdXNlcm5hbWU6ICd0ZXN0dXNlcicsXG4gIC4uLm92ZXJyaWRlc1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrUG9zdCA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgY29udGVudDogJ1Rlc3QgcG9zdCBjb250ZW50JyxcbiAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIHBvc3RJZDogJ3Bvc3QxJyxcbiAgdXNlcklkOiAndXNlcjEnLFxuICAuLi5vdmVycmlkZXNcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja01lc3NhZ2UgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pID0+ICh7XG4gIGNvbnRlbnQ6ICdUZXN0IG1lc3NhZ2UnLFxuICBjb252ZXJzYXRpb25JZDogJ2NvbnYxJyxcbiAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIG1lc3NhZ2VJZDogJ21zZzEnLFxuICB1c2VySWQ6ICd1c2VyMScsXG4gIC4uLm92ZXJyaWRlc1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrUmVhY3Rpb24gPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pID0+ICh7XG4gIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICBwb3N0SWQ6ICdwb3N0MScsXG4gIHJlYWN0aW9uSWQ6ICdyZWFjdDEnLFxuICB0eXBlOiAnbGlrZScsXG4gIHVzZXJJZDogJ3VzZXIxJyxcbiAgLi4ub3ZlcnJpZGVzXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1vY2tUYWcgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pID0+ICh7XG4gIGRlc2NyaXB0aW9uOiAnVGVzdCB0YWcgZGVzY3JpcHRpb24nLFxuICBuYW1lOiAndGVzdC10YWcnLFxuICB0YWdJZDogJ3RhZzEnLFxuICAuLi5vdmVycmlkZXNcbn0pO1xuXG4vLyBVdGlsaXR5IHRvIHNldCB1cCBjb21tb24gbW9ja3NcbmV4cG9ydCBjb25zdCBzZXR1cENvbW1vbk1vY2tzID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCBtb2NrID0ge1xuICAgIF9fZXNNb2R1bGU6IHRydWUsXG4gICAgdXNlRGI6IGplc3QuZm4oKSxcbiAgICBnZXRMaW1pdDogamVzdC5mbigpLFxuICAgIGdldERvY0lkOiBqZXN0LmZuKCksXG4gICAgc29ydElkczogamVzdC5mbigpLFxuICAgIGdldEdxbEZpZWxkczogamVzdC5mbigpLFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHVzZURiOiBqZXN0LmZuKCksXG4gICAgICBnZXRMaW1pdDogamVzdC5mbigpLFxuICAgICAgZ2V0RG9jSWQ6IGplc3QuZm4oKSxcbiAgICAgIHNvcnRJZHM6IGplc3QuZm4oKSxcbiAgICAgIGdldEdxbEZpZWxkczogamVzdC5mbigpXG4gICAgfVxuICB9O1xuICBhd2FpdCBqZXN0Lmlzb2xhdGVNb2R1bGVzQXN5bmMoYXN5bmMgKCkgPT4ge1xuICAgIGplc3QudW5zdGFibGVfbW9ja01vZHVsZSgnLi9hcmFuZ29kYlV0aWxzLmpzJywgKCkgPT4gbW9jayk7XG4gIH0pO1xufTtcblxuLy8gVXRpbGl0eSB0byBjbGVhciBhbGwgbW9ja3NcbmV4cG9ydCBjb25zdCBjbGVhckFsbE1vY2tzID0gKCkgPT4ge1xuICBqZXN0LmNsZWFyQWxsTW9ja3MoKTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gY3JlYXRlIGEgdGVzdCBzdWl0ZSBmb3IgYWN0aW9uIGZ1bmN0aW9uc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUFjdGlvblRlc3RTdWl0ZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBhY3Rpb25zUGF0aDogc3RyaW5nLFxuICB0ZXN0Q2FzZXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICAgIGFyZ3M6IFRlc3RBcmdzO1xuICAgIG1vY2tRdWVyeTogTW9jaztcbiAgICBleHBlY3RlZFJlc3VsdDogVGVzdFJldHVyblZhbHVlO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKGAke25hbWV9IGFjdGlvbnNgLCAoKSA9PiB7XG4gICAgbGV0IGFjdGlvbnM6IGFueTtcblxuICAgIGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG4gICAgICBhY3Rpb25zID0gYXdhaXQgaW1wb3J0KGFjdGlvbnNQYXRoKTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7bmFtZTogdGVzdE5hbWUsIGFjdGlvbk5hbWUsIGFyZ3MsIG1vY2tRdWVyeSwgZXhwZWN0ZWRSZXN1bHR9KSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGV4ZWN1dGUgJHthY3Rpb25OYW1lfWAsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbW9ja0NvbnRleHQgPSBjcmVhdGVNb2NrQ29udGV4dCgpO1xuICAgICAgICBjb25zdCBtb2NrRGIgPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHtcbiAgICAgICAgICBxdWVyeTogbW9ja1F1ZXJ5XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBhY3R1YWwgPSBqZXN0LnJlcXVpcmVBY3R1YWwoJy4vYXJhbmdvZGJVdGlscy5qcycpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICBqZXN0LmRvTW9jaygnLi9hcmFuZ29kYlV0aWxzLmpzJywgKCkgPT4gKHtcbiAgICAgICAgICB1c2VEYjogbW9ja0RiLFxuICAgICAgICAgIC4uLmFjdHVhbFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgKGFjdGlvbnNbYWN0aW9uTmFtZV0gYXMgTW9jaykobW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkUmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBZGFwdGVyVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFkYXB0ZXJQYXRoOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogYW55W11cbikgPT4ge1xuICBkZXNjcmliZShuYW1lLCAoKSA9PiB7XG4gICAgbGV0IGFkYXB0ZXI6IGFueTtcblxuICAgIGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG4gICAgICBhZGFwdGVyID0gYXdhaXQgaW1wb3J0KGFkYXB0ZXJQYXRoKTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7bmFtZTogdGVzdE5hbWUsIGlucHV0LCBleHBlY3RlZE91dHB1dH0pID0+IHtcbiAgICAgIGl0KGBzaG91bGQgJHt0ZXN0TmFtZX1gLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IChhZGFwdGVyIGFzIHtwYXJzZVRhZzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkucGFyc2VUYWcoaW5wdXQpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkT3V0cHV0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVVdGlsc1Rlc3RTdWl0ZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICB1dGlsc1BhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGlucHV0OiBUZXN0QXJncztcbiAgICBleHBlY3RlZE91dHB1dDogVGVzdFJldHVyblZhbHVlO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKG5hbWUsICgpID0+IHtcbiAgICBsZXQgdXRpbHM6IGFueTtcblxuICAgIGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG4gICAgICB1dGlscyA9IGF3YWl0IGltcG9ydCh1dGlsc1BhdGgpO1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtuYW1lOiB0ZXN0TmFtZSwgaW5wdXQsIGV4cGVjdGVkT3V0cHV0fSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCAke3Rlc3ROYW1lfWAsICgpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgaWYoKHV0aWxzIGFzIHtsb2dJbmZvPzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkubG9nSW5mbykge1xuICAgICAgICAgIHJlc3VsdCA9ICh1dGlscyBhcyB7bG9nSW5mbzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkubG9nSW5mbyhpbnB1dCk7XG4gICAgICAgIH0gZWxzZSBpZigodXRpbHMgYXMge3JlbW92ZUVtcHR5S2V5cz86IChpbnB1dDogVGVzdEFyZ3MpID0+IFRlc3RSZXR1cm5WYWx1ZX0pLnJlbW92ZUVtcHR5S2V5cykge1xuICAgICAgICAgIHJlc3VsdCA9ICh1dGlscyBhcyB7cmVtb3ZlRW1wdHlLZXlzOiAoaW5wdXQ6IFRlc3RBcmdzKSA9PiBUZXN0UmV0dXJuVmFsdWV9KS5yZW1vdmVFbXB0eUtleXMoaW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VpdGFibGUgZnVuY3Rpb24gZm91bmQgaW4gJHt1dGlsc1BhdGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3RlZE91dHB1dCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuIl0sIm5hbWVzIjpbImJlZm9yZUFsbCIsImRlc2NyaWJlIiwiZXhwZWN0IiwiaXQiLCJ2aSIsImplc3QiLCJPYmplY3QiLCJhc3NpZ24iLCJpc29sYXRlTW9kdWxlc0FzeW5jIiwiZm4iLCJyZXNldE1vZHVsZXMiLCJyZXF1aXJlQWN0dWFsIiwiaW1wb3J0QWN0dWFsIiwidW5zdGFibGVfbW9ja01vZHVsZSIsImRvTW9jayIsImNyZWF0ZU1vY2tDb250ZXh0Iiwib3ZlcnJpZGVzIiwiZGVmYXVsdFNlc3Npb24iLCJ1c2VyQWNjZXNzIiwidXNlcklkIiwidXNlcm5hbWUiLCJvdmVycmlkZVNlc3Npb24iLCJzZXNzaW9uIiwiY29udGV4dCIsImRhdGFiYXNlTmFtZSIsInVuZGVmaW5lZCIsImNyZWF0ZU1vY2tSZXNvbHZlSW5mbyIsImZpZWxkTmFtZSIsIm9wZXJhdGlvbiIsInBhcmVudFR5cGUiLCJyZXR1cm5UeXBlIiwic2NoZW1hIiwiZmllbGROb2RlcyIsImZyYWdtZW50cyIsInBhdGgiLCJrZXkiLCJwcmV2IiwidHlwZW5hbWUiLCJyb290VmFsdWUiLCJ2YXJpYWJsZVZhbHVlcyIsIm1vY2tBY3Rpb25zTW9kdWxlIiwibW9kdWxlUGF0aCIsIm1vY2tBY3Rpb25zIiwibW9ja3MiLCJlbnRyaWVzIiwicmVkdWNlIiwiYWNjIiwidmFsdWUiLCJtb2NrSW1wbGVtZW50YXRpb24iLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm1vY2tPYmplY3RUeXBlIiwidHlwZU5hbWUiLCJtb2NrIiwiZ2V0RmllbGQiLCJyZXNvbHZlIiwiZ2V0RmllbGRzIiwiY3JlYXRlUXVlcnlUZXN0U3VpdGUiLCJuYW1lIiwiYWN0aW9uc1BhdGgiLCJ0ZXN0Q2FzZXMiLCJhY3Rpb25zIiwibW9ja0NvbnRleHQiLCJmb3JFYWNoIiwidGVzdE5hbWUiLCJhY3Rpb25OYW1lIiwiYXJncyIsImV4cGVjdGVkQ2FsbCIsIm1vY2tSZXR1cm5WYWx1ZSIsImVycm9yQ2FzZSIsIm1vY2tGbiIsIlByb21pc2UiLCJyZXN1bHQiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInRvRXF1YWwiLCJ0b0JlTnVsbCIsImNyZWF0ZU11dGF0aW9uVGVzdFN1aXRlIiwicmVxdWlyZXNBdXRoIiwiYXV0aFVzZXJJZCIsImNyZWF0ZUludGVncmF0aW9uVGVzdFN1aXRlIiwib2JqZWN0VHlwZVBhdGgiLCJzdWNjZXNzUmV0dXJuVmFsdWUiLCJlcnJvclJldHVyblZhbHVlIiwidGVzdEVycm9yQ2FzZSIsImNyZWF0ZU1vY2tVc2VyIiwiZW1haWwiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImNyZWF0ZU1vY2tQb3N0IiwiY29udGVudCIsImNyZWF0ZWRBdCIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsInBvc3RJZCIsImNyZWF0ZU1vY2tNZXNzYWdlIiwiY29udmVyc2F0aW9uSWQiLCJtZXNzYWdlSWQiLCJjcmVhdGVNb2NrUmVhY3Rpb24iLCJyZWFjdGlvbklkIiwidHlwZSIsImNyZWF0ZU1vY2tUYWciLCJkZXNjcmlwdGlvbiIsInRhZ0lkIiwic2V0dXBDb21tb25Nb2NrcyIsInVzZURiIiwiZ2V0TGltaXQiLCJnZXREb2NJZCIsInNvcnRJZHMiLCJnZXRHcWxGaWVsZHMiLCJjbGVhckFsbE1vY2tzIiwiY3JlYXRlQWN0aW9uVGVzdFN1aXRlIiwibW9ja1F1ZXJ5IiwiZXhwZWN0ZWRSZXN1bHQiLCJtb2NrRGIiLCJxdWVyeSIsImFjdHVhbCIsImNyZWF0ZUFkYXB0ZXJUZXN0U3VpdGUiLCJhZGFwdGVyUGF0aCIsImFkYXB0ZXIiLCJpbnB1dCIsImV4cGVjdGVkT3V0cHV0IiwicGFyc2VUYWciLCJjcmVhdGVVdGlsc1Rlc3RTdWl0ZSIsInV0aWxzUGF0aCIsInV0aWxzIiwibG9nSW5mbyIsInJlbW92ZUVtcHR5S2V5cyIsIkVycm9yIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxTQUFTLEVBQUVDLFFBQVEsRUFBRUMsTUFBTSxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsUUFBTyxTQUFTO0FBSTNELE1BQU1DLE9BQU9DLE9BQU9DLE1BQU0sQ0FBQ0gsSUFBVztJQUNwQ0kscUJBQXFCLE9BQU9DO1FBQzFCTCxHQUFHTSxZQUFZO1FBQ2YsTUFBTUQ7SUFDUjtJQUNBRSxlQUFlUCxHQUFHUSxZQUFZO0lBQzlCQyxxQkFBcUJULEdBQUdVLE1BQU07QUFDaEM7QUFVQSxPQUFPLE1BQU1DLG9CQUFvQixDQUFDQyxZQUEyQixDQUFDLENBQUM7SUFDN0QsTUFBTUMsaUJBQWlCO1FBQ3JCQyxZQUFZO1FBQ1pDLFFBQVE7UUFDUkMsVUFBVTtJQUNaO0lBQ0EsTUFBTUMsa0JBQWtETCxVQUFVTSxPQUFPLElBQUksQ0FBQztJQUM5RSxNQUFNQyxVQUF1QjtRQUMzQkMsY0FBYyxBQUFDUixVQUFVUSxZQUFZLElBQWU7UUFDcEQsR0FBR1IsU0FBUztJQUNkO0lBQ0EsT0FBT08sUUFBUUQsT0FBTztJQUN0QkMsUUFBUUQsT0FBTyxHQUFHO1FBQ2hCSixZQUFZRyxnQkFBZ0JILFVBQVUsS0FBS08sWUFBWUosZ0JBQWdCSCxVQUFVLEdBQUdELGVBQWVDLFVBQVU7UUFDN0dDLFFBQVFFLGdCQUFnQkYsTUFBTSxLQUFLTSxZQUFZSixnQkFBZ0JGLE1BQU0sR0FBR0YsZUFBZUUsTUFBTTtRQUM3RkMsVUFBVUMsZ0JBQWdCRCxRQUFRLEtBQUtLLFlBQVlKLGdCQUFn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
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC9ubGFicy1yZWFrdG9yLXJlbGVhc2UuZU1RNVNoL2NoZWNrb3V0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL3Rlc3RVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHtiZWZvcmVBbGwsIGRlc2NyaWJlLCBleHBlY3QsIGl0LCB2aX0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB0eXBlIHtNb2NrfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHR5cGUge0dyYXBoUUxSZXNvbHZlSW5mb30gZnJvbSAnZ3JhcGhxbCc7XG5cbmNvbnN0IGplc3QgPSBPYmplY3QuYXNzaWduKHZpIGFzIGFueSwge1xuICBpc29sYXRlTW9kdWxlc0FzeW5jOiBhc3luYyAoZm46ICgpID0+IFByb21pc2U8dm9pZD4pID0+IHtcbiAgICB2aS5yZXNldE1vZHVsZXMoKTtcbiAgICBhd2FpdCBmbigpO1xuICB9LFxuICByZXF1aXJlQWN0dWFsOiB2aS5pbXBvcnRBY3R1YWwsXG4gIHVuc3RhYmxlX21vY2tNb2R1bGU6IHZpLmRvTW9ja1xufSkgYXMgYW55O1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5cbi8vIERlZmluZSBwcm9wZXIgdHlwZXMgZm9yIHRlc3QgdXRpbGl0aWVzXG50eXBlIE1vY2tPdmVycmlkZXMgPSBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbnR5cGUgVGVzdENvbnRleHQgPSBQYXJ0aWFsPEFwaUNvbnRleHQ+ICYge3Nlc3Npb24/OiBQYXJ0aWFsPHt1c2VySWQ6IHN0cmluZzsgdXNlcm5hbWU6IHN0cmluZzsgdXNlckFjY2VzczogbnVtYmVyfT59O1xudHlwZSBUZXN0QXJncyA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xudHlwZSBUZXN0UmV0dXJuVmFsdWUgPSB1bmtub3duO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja0NvbnRleHQgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pOiBBcGlDb250ZXh0ID0+IHtcbiAgY29uc3QgZGVmYXVsdFNlc3Npb24gPSB7XG4gICAgdXNlckFjY2VzczogMSxcbiAgICB1c2VySWQ6ICd1c2VyMScsXG4gICAgdXNlcm5hbWU6ICd0ZXN0dXNlcidcbiAgfTtcbiAgY29uc3Qgb3ZlcnJpZGVTZXNzaW9uOiBQYXJ0aWFsPHR5cGVvZiBkZWZhdWx0U2Vzc2lvbj4gPSBvdmVycmlkZXMuc2Vzc2lvbiB8fCB7fTtcbiAgY29uc3QgY29udGV4dDogVGVzdENvbnRleHQgPSB7XG4gICAgZGF0YWJhc2VOYW1lOiAob3ZlcnJpZGVzLmRhdGFiYXNlTmFtZSBhcyBzdHJpbmcpID8/ICd0ZXN0JyxcbiAgICAuLi5vdmVycmlkZXNcbiAgfTtcbiAgZGVsZXRlIGNvbnRleHQuc2Vzc2lvbjtcbiAgY29udGV4dC5zZXNzaW9uID0ge1xuICAgIHVzZXJBY2Nlc3M6IG92ZXJyaWRlU2Vzc2lvbi51c2VyQWNjZXNzICE9PSB1bmRlZmluZWQgPyBvdmVycmlkZVNlc3Npb24udXNlckFjY2VzcyA6IGRlZmF1bHRTZXNzaW9uLnVzZXJBY2Nlc3MsXG4gICAgdXNlcklkOiBvdmVycmlkZVNlc3Npb24udXNlcklkICE9PSB1bmRlZmluZWQgPyBvdmVycmlkZVNlc3Npb24udXNlcklkIDogZGVmYXVsdFNlc3Npb24udXNlcklkLFxuICAgIHVzZXJuYW1lOiBvdmVycmlkZVNlc3Npb24udXNlcm5hbWUgIT09IHVuZGVmaW5lZCA/IG92ZXJyaWRlU2Vzc2lvbi51c2VybmFtZSA6IGRlZmF1bHRTZXNzaW9uLnVzZXJuYW1lXG4gIH07XG4gIHJldHVybiBjb250ZXh0IGFzIEFwaUNvbnRleHQ7XG59O1xuXG4vLyBDb21tb24gbW9jayByZXNvbHZlIGluZm8gZm9yIEdyYXBoUUwgcmVzb2x2ZXJzXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja1Jlc29sdmVJbmZvID0gKGZpZWxkTmFtZTogc3RyaW5nID0gJ3Rlc3QnKTogR3JhcGhRTFJlc29sdmVJbmZvID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICBjb25zdCBvcGVyYXRpb24gPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ29wZXJhdGlvbiddO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1hc3NlcnRpb25zXG4gIGNvbnN0IHBhcmVudFR5cGUgPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ3BhcmVudFR5cGUnXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICBjb25zdCByZXR1cm5UeXBlID0ge30gYXMgR3JhcGhRTFJlc29sdmVJbmZvWydyZXR1cm5UeXBlJ107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcbiAgY29uc3Qgc2NoZW1hID0ge30gYXMgR3JhcGhRTFJlc29sdmVJbmZvWydzY2hlbWEnXTtcblxuICByZXR1cm4ge1xuICAgIGZpZWxkTmFtZSxcbiAgICBmaWVsZE5vZGVzOiBbXSxcbiAgICBmcmFnbWVudHM6IHt9LFxuICAgIG9wZXJhdGlvbixcbiAgICBwYXJlbnRUeXBlLFxuICAgIHBhdGg6IHtrZXk6IGZpZWxkTmFtZSwgcHJldjogdW5kZWZpbmVkLCB0eXBlbmFtZTogJ1Rlc3QnfSxcbiAgICByZXR1cm5UeXBlLFxuICAgIHJvb3RWYWx1ZToge30sXG4gICAgc2NoZW1hLFxuICAgIHZhcmlhYmxlVmFsdWVzOiB7fVxuICB9O1xufTtcblxuLy8gVXRpbGl0eSB0byBtb2NrIGFjdGlvbnMgbW9kdWxlXG5leHBvcnQgY29uc3QgbW9ja0FjdGlvbnNNb2R1bGUgPSBhc3luYyAobW9kdWxlUGF0aDogc3RyaW5nLCBtb2NrQWN0aW9uczogUmVjb3JkPHN0cmluZywgTW9jaz4pID0+IHtcbiAgY29uc3QgbW9ja3MgPSBPYmplY3QuZW50cmllcyhtb2NrQWN0aW9ucykucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGFjY1trZXldID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbih2YWx1ZSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgTW9jaz4pO1xuXG4gIGF3YWl0IGplc3QuaXNvbGF0ZU1vZHVsZXNBc3luYyhhc3luYyAoKSA9PiB7XG4gICAgamVzdC51bnN0YWJsZV9tb2NrTW9kdWxlKG1vZHVsZVBhdGgsICgpID0+ICh7XG4gICAgICBfX2VzTW9kdWxlOiB0cnVlLFxuICAgICAgLi4ubW9ja3MsXG4gICAgICBkZWZhdWx0OiBtb2Nrc1xuICAgIH0pKTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIG1vY2sgb2JqZWN0IHR5cGVzXG5leHBvcnQgY29uc3QgbW9ja09iamVjdFR5cGUgPSBhc3luYyAobW9kdWxlUGF0aDogc3RyaW5nLCB0eXBlTmFtZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG1vY2sgPSB7XG4gICAgX19lc01vZHVsZTogdHJ1ZSxcbiAgICBbdHlwZU5hbWVdOiB7XG4gICAgICBnZXRGaWVsZDogamVzdC5mbigoKSA9PiAoe3Jlc29sdmU6IGplc3QuZm4oKX0pKSxcbiAgICAgIGdldEZpZWxkczogamVzdC5mbigoKSA9PiAoe30pKVxuICAgIH0sXG4gICAgZGVmYXVsdDoge1xuICAgICAgW3R5cGVOYW1lXToge1xuICAgICAgICBnZXRGaWVsZDogamVzdC5mbigoKSA9PiAoe3Jlc29sdmU6IGplc3QuZm4oKX0pKSxcbiAgICAgICAgZ2V0RmllbGRzOiBqZXN0LmZuKCgpID0+ICh7fSkpXG4gICAgICB9XG4gICAgfVxuICB9O1xuICBhd2FpdCBqZXN0Lmlzb2xhdGVNb2R1bGVzQXN5bmMoYXN5bmMgKCkgPT4ge1xuICAgIGplc3QudW5zdGFibGVfbW9ja01vZHVsZShtb2R1bGVQYXRoLCAoKSA9PiBtb2NrKTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIGNyZWF0ZSBhIHRlc3Qgc3VpdGUgZm9yIHF1ZXJ5IHJlc29sdmVyc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVF1ZXJ5VGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFjdGlvbnNQYXRoOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgYXJnczogVGVzdEFyZ3M7XG4gICAgZXhwZWN0ZWRDYWxsOiAoY29udGV4dDogVGVzdENvbnRleHQsIGFyZ3M6IFRlc3RBcmdzKSA9PiBUZXN0QXJncztcbiAgICBtb2NrUmV0dXJuVmFsdWU6IFRlc3RSZXR1cm5WYWx1ZTtcbiAgICBlcnJvckNhc2U/OiBib29sZWFuO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKGAke25hbWV9IFF1ZXJpZXNgLCAoKSA9PiB7XG4gICAgbGV0IGFjdGlvbnM6IGFueTtcbiAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG5cbiAgICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgICAgYWN0aW9ucyA9IHt9O1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtuYW1lOiB0ZXN0TmFtZSwgYWN0aW9uTmFtZSwgYXJncywgZXhwZWN0ZWRDYWxsLCBtb2NrUmV0dXJuVmFsdWUsIGVycm9yQ2FzZSA9IGZhbHNlfSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCBjYWxsICR7YWN0aW9uTmFtZX0gYWN0aW9uIHdpdGggY29ycmVjdCBwYXJhbWV0ZXJzYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBtb2NrRm4gPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZShtb2NrUmV0dXJuVmFsdWUpKTtcbiAgICAgICAgYWN0aW9uc1thY3Rpb25OYW1lXSA9IG1vY2tGbjtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2NrRm4obW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICBleHBlY3QobW9ja0ZuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwobW9ja1JldHVyblZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZihlcnJvckNhc2UpIHtcbiAgICAgICAgaXQoYHNob3VsZCBoYW5kbGUgJHthY3Rpb25OYW1lfSB3aGVuIG5vIGRhdGEgZm91bmRgLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbW9ja0ZuID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUobnVsbCkpO1xuICAgICAgICAgIGFjdGlvbnNbYWN0aW9uTmFtZV0gPSBtb2NrRm47XG5cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2NrRm4obW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICAgIGV4cGVjdChtb2NrRm4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tDb250ZXh0LCBleHBlY3RlZENhbGwobW9ja0NvbnRleHQsIGFyZ3MpKTtcbiAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIGNyZWF0ZSBhIHRlc3Qgc3VpdGUgZm9yIG11dGF0aW9uIHJlc29sdmVyc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU11dGF0aW9uVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFjdGlvbnNQYXRoOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgYXJnczogVGVzdEFyZ3M7XG4gICAgZXhwZWN0ZWRDYWxsOiAoY29udGV4dDogVGVzdENvbnRleHQsIGFyZ3M6IFRlc3RBcmdzKSA9PiBUZXN0QXJncztcbiAgICBtb2NrUmV0dXJuVmFsdWU6IFRlc3RSZXR1cm5WYWx1ZTtcbiAgICByZXF1aXJlc0F1dGg/OiBib29sZWFuO1xuICAgIGF1dGhVc2VySWQ/OiBzdHJpbmc7XG4gIH0+XG4pID0+IHtcbiAgZGVzY3JpYmUoYCR7bmFtZX0gTXV0YXRpb25zYCwgKCkgPT4ge1xuICAgIGxldCBhY3Rpb25zOiBhbnk7XG5cbiAgICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgICAgYWN0aW9ucyA9IHt9O1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtcbiAgICAgIGFjdGlvbk5hbWUsXG4gICAgICBhcmdzLFxuICAgICAgZXhwZWN0ZWRDYWxsLFxuICAgICAgbW9ja1JldHVyblZhbHVlLFxuICAgICAgcmVxdWlyZXNBdXRoID0gZmFsc2UsXG4gICAgICBhdXRoVXNlcklkXG4gICAgfSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCBjYWxsICR7YWN0aW9uTmFtZX0gYWN0aW9uIHdpdGggY29ycmVjdCBwYXJhbWV0ZXJzYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG4gICAgICAgIGlmKHJlcXVpcmVzQXV0aCAmJiBhdXRoVXNlcklkKSB7XG4gICAgICAgICAgKG1vY2tDb250ZXh0LnNlc3Npb24gYXMge3VzZXJJZDogc3RyaW5nfSkudXNlcklkID0gYXV0aFVzZXJJZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1vY2tGbiA9IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKG1vY2tSZXR1cm5WYWx1ZSkpO1xuICAgICAgICBhY3Rpb25zW2FjdGlvbk5hbWVdID0gbW9ja0ZuO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vY2tGbihtb2NrQ29udGV4dCwgYXJncyk7XG4gICAgICAgIGV4cGVjdChtb2NrRm4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tDb250ZXh0LCBleHBlY3RlZENhbGwobW9ja0NvbnRleHQsIGFyZ3MpKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChtb2NrUmV0dXJuVmFsdWUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuLy8gVXRpbGl0eSB0byBjcmVhdGUgaW50ZWdyYXRpb24gdGVzdCBzdWl0ZVxuZXhwb3J0IGNvbnN0IGNyZWF0ZUludGVncmF0aW9uVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFjdGlvbnNQYXRoOiBzdHJpbmcsXG4gIG9iamVjdFR5cGVQYXRoOiBzdHJpbmcsXG4gIHR5cGVOYW1lOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgYXJnczogVGVzdEFyZ3M7XG4gICAgZXhwZWN0ZWRDYWxsOiAoY29udGV4dDogVGVzdENvbnRleHQsIGFyZ3M6IFRlc3RBcmdzKSA9PiBUZXN0QXJncztcbiAgICBzdWNjZXNzUmV0dXJuVmFsdWU6IFRlc3RSZXR1cm5WYWx1ZTtcbiAgICBlcnJvclJldHVyblZhbHVlOiBUZXN0UmV0dXJuVmFsdWU7XG4gICAgdGVzdEVycm9yQ2FzZTogYm9vbGVhbjtcbiAgfT5cbikgPT4ge1xuICBkZXNjcmliZShgJHtuYW1lfSBJbnRlZ3JhdGlvbmAsICgpID0+IHtcbiAgICBsZXQgYWN0aW9uczogYW55O1xuXG4gICAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICAgIGFjdGlvbnMgPSB7fTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7XG4gICAgICBuYW1lOiB0ZXN0TmFtZSxcbiAgICAgIGFjdGlvbk5hbWUsXG4gICAgICBhcmdzLFxuICAgICAgZXhwZWN0ZWRDYWxsLFxuICAgICAgc3VjY2Vzc1JldHVyblZhbHVlLFxuICAgICAgZXJyb3JSZXR1cm5WYWx1ZSxcbiAgICAgIHRlc3RFcnJvckNhc2VcbiAgICB9KSA9PiB7XG4gICAgICBkZXNjcmliZSh0ZXN0TmFtZSwgKCkgPT4ge1xuICAgICAgICBpdChgc2hvdWxkIHJldHVybiBkYXRhIHdoZW4gJHthY3Rpb25OYW1lfSBzdWNjZWVkc2AsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG4gICAgICAgICAgY29uc3QgbW9ja0ZuID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUoc3VjY2Vzc1JldHVyblZhbHVlKSk7XG4gICAgICAgICAgYWN0aW9uc1thY3Rpb25OYW1lXSA9IG1vY2tGbjtcblxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vY2tGbihtb2NrQ29udGV4dCwgYXJncyk7XG5cbiAgICAgICAgICBleHBlY3QobW9ja0ZuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChzdWNjZXNzUmV0dXJuVmFsdWUgfHwge30pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZih0ZXN0RXJyb3JDYXNlKSB7XG4gICAgICAgICAgaXQoYHNob3VsZCBoYW5kbGUgJHthY3Rpb25OYW1lfSB3aGVuIG5vIGRhdGEgZm91bmRgLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG4gICAgICAgICAgICBjb25zdCBtb2NrRm4gPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZShlcnJvclJldHVyblZhbHVlKSk7XG4gICAgICAgICAgICBhY3Rpb25zW2FjdGlvbk5hbWVdID0gbW9ja0ZuO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2NrRm4obW9ja0NvbnRleHQsIGFyZ3MpO1xuXG4gICAgICAgICAgICBleHBlY3QobW9ja0ZuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGVycm9yUmV0dXJuVmFsdWUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vLyBDb21tb24gbW9jayBkYXRhIGdlbmVyYXRvcnNcbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrVXNlciA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgZW1haWw6ICd0ZXN0QGV4YW1wbGUuY29tJyxcbiAgZmlyc3ROYW1lOiAnVGVzdCcsXG4gIGxhc3ROYW1lOiAnVXNlcicsXG4gIHVzZXJJZDogJ3VzZXIxJyxcbiAgdXNlcm5hbWU6ICd0ZXN0dXNlcicsXG4gIC4uLm92ZXJyaWRlc1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrUG9zdCA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgY29udGVudDogJ1Rlc3QgcG9zdCBjb250ZW50JyxcbiAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIHBvc3RJZDogJ3Bvc3QxJyxcbiAgdXNlcklkOiAndXNlcjEnLFxuICAuLi5vdmVycmlkZXNcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja01lc3NhZ2UgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pID0+ICh7XG4gIGNvbnRlbnQ6ICdUZXN0IG1lc3NhZ2UnLFxuICBjb252ZXJzYXRpb25JZDogJ2NvbnYxJyxcbiAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIG1lc3NhZ2VJZDogJ21zZzEnLFxuICB1c2VySWQ6ICd1c2VyMScsXG4gIC4uLm92ZXJyaWRlc1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrUmVhY3Rpb24gPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pID0+ICh7XG4gIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICBwb3N0SWQ6ICdwb3N0MScsXG4gIHJlYWN0aW9uSWQ6ICdyZWFjdDEnLFxuICB0eXBlOiAnbGlrZScsXG4gIHVzZXJJZDogJ3VzZXIxJyxcbiAgLi4ub3ZlcnJpZGVzXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1vY2tUYWcgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pID0+ICh7XG4gIGRlc2NyaXB0aW9uOiAnVGVzdCB0YWcgZGVzY3JpcHRpb24nLFxuICBuYW1lOiAndGVzdC10YWcnLFxuICB0YWdJZDogJ3RhZzEnLFxuICAuLi5vdmVycmlkZXNcbn0pO1xuXG4vLyBVdGlsaXR5IHRvIHNldCB1cCBjb21tb24gbW9ja3NcbmV4cG9ydCBjb25zdCBzZXR1cENvbW1vbk1vY2tzID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCBtb2NrID0ge1xuICAgIF9fZXNNb2R1bGU6IHRydWUsXG4gICAgdXNlRGI6IGplc3QuZm4oKSxcbiAgICBnZXRMaW1pdDogamVzdC5mbigpLFxuICAgIGdldERvY0lkOiBqZXN0LmZuKCksXG4gICAgc29ydElkczogamVzdC5mbigpLFxuICAgIGdldEdxbEZpZWxkczogamVzdC5mbigpLFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHVzZURiOiBqZXN0LmZuKCksXG4gICAgICBnZXRMaW1pdDogamVzdC5mbigpLFxuICAgICAgZ2V0RG9jSWQ6IGplc3QuZm4oKSxcbiAgICAgIHNvcnRJZHM6IGplc3QuZm4oKSxcbiAgICAgIGdldEdxbEZpZWxkczogamVzdC5mbigpXG4gICAgfVxuICB9O1xuICBhd2FpdCBqZXN0Lmlzb2xhdGVNb2R1bGVzQXN5bmMoYXN5bmMgKCkgPT4ge1xuICAgIGplc3QudW5zdGFibGVfbW9ja01vZHVsZSgnLi9hcmFuZ29kYlV0aWxzLmpzJywgKCkgPT4gbW9jayk7XG4gIH0pO1xufTtcblxuLy8gVXRpbGl0eSB0byBjbGVhciBhbGwgbW9ja3NcbmV4cG9ydCBjb25zdCBjbGVhckFsbE1vY2tzID0gKCkgPT4ge1xuICBqZXN0LmNsZWFyQWxsTW9ja3MoKTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gY3JlYXRlIGEgdGVzdCBzdWl0ZSBmb3IgYWN0aW9uIGZ1bmN0aW9uc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUFjdGlvblRlc3RTdWl0ZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBhY3Rpb25zUGF0aDogc3RyaW5nLFxuICB0ZXN0Q2FzZXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICAgIGFyZ3M6IFRlc3RBcmdzO1xuICAgIG1vY2tRdWVyeTogTW9jaztcbiAgICBleHBlY3RlZFJlc3VsdDogVGVzdFJldHVyblZhbHVlO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKGAke25hbWV9IGFjdGlvbnNgLCAoKSA9PiB7XG4gICAgbGV0IGFjdGlvbnM6IGFueTtcblxuICAgIGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG4gICAgICBhY3Rpb25zID0gYXdhaXQgaW1wb3J0KGFjdGlvbnNQYXRoKTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7bmFtZTogdGVzdE5hbWUsIGFjdGlvbk5hbWUsIGFyZ3MsIG1vY2tRdWVyeSwgZXhwZWN0ZWRSZXN1bHR9KSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGV4ZWN1dGUgJHthY3Rpb25OYW1lfWAsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbW9ja0NvbnRleHQgPSBjcmVhdGVNb2NrQ29udGV4dCgpO1xuICAgICAgICBjb25zdCBtb2NrRGIgPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHtcbiAgICAgICAgICBxdWVyeTogbW9ja1F1ZXJ5XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBhY3R1YWwgPSBqZXN0LnJlcXVpcmVBY3R1YWwoJy4vYXJhbmdvZGJVdGlscy5qcycpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICBqZXN0LmRvTW9jaygnLi9hcmFuZ29kYlV0aWxzLmpzJywgKCkgPT4gKHtcbiAgICAgICAgICB1c2VEYjogbW9ja0RiLFxuICAgICAgICAgIC4uLmFjdHVhbFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgKGFjdGlvbnNbYWN0aW9uTmFtZV0gYXMgTW9jaykobW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkUmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBZGFwdGVyVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFkYXB0ZXJQYXRoOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogYW55W11cbikgPT4ge1xuICBkZXNjcmliZShuYW1lLCAoKSA9PiB7XG4gICAgbGV0IGFkYXB0ZXI6IGFueTtcblxuICAgIGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG4gICAgICBhZGFwdGVyID0gYXdhaXQgaW1wb3J0KGFkYXB0ZXJQYXRoKTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7bmFtZTogdGVzdE5hbWUsIGlucHV0LCBleHBlY3RlZE91dHB1dH0pID0+IHtcbiAgICAgIGl0KGBzaG91bGQgJHt0ZXN0TmFtZX1gLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IChhZGFwdGVyIGFzIHtwYXJzZVRhZzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkucGFyc2VUYWcoaW5wdXQpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkT3V0cHV0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVVdGlsc1Rlc3RTdWl0ZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICB1dGlsc1BhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGlucHV0OiBUZXN0QXJncztcbiAgICBleHBlY3RlZE91dHB1dDogVGVzdFJldHVyblZhbHVlO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKG5hbWUsICgpID0+IHtcbiAgICBsZXQgdXRpbHM6IGFueTtcblxuICAgIGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG4gICAgICB1dGlscyA9IGF3YWl0IGltcG9ydCh1dGlsc1BhdGgpO1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtuYW1lOiB0ZXN0TmFtZSwgaW5wdXQsIGV4cGVjdGVkT3V0cHV0fSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCAke3Rlc3ROYW1lfWAsICgpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgaWYoKHV0aWxzIGFzIHtsb2dJbmZvPzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkubG9nSW5mbykge1xuICAgICAgICAgIHJlc3VsdCA9ICh1dGlscyBhcyB7bG9nSW5mbzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkubG9nSW5mbyhpbnB1dCk7XG4gICAgICAgIH0gZWxzZSBpZigodXRpbHMgYXMge3JlbW92ZUVtcHR5S2V5cz86IChpbnB1dDogVGVzdEFyZ3MpID0+IFRlc3RSZXR1cm5WYWx1ZX0pLnJlbW92ZUVtcHR5S2V5cykge1xuICAgICAgICAgIHJlc3VsdCA9ICh1dGlscyBhcyB7cmVtb3ZlRW1wdHlLZXlzOiAoaW5wdXQ6IFRlc3RBcmdzKSA9PiBUZXN0UmV0dXJuVmFsdWV9KS5yZW1vdmVFbXB0eUtleXMoaW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VpdGFibGUgZnVuY3Rpb24gZm91bmQgaW4gJHt1dGlsc1BhdGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3RlZE91dHB1dCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuIl0sIm5hbWVzIjpbImJlZm9yZUFsbCIsImRlc2NyaWJlIiwiZXhwZWN0IiwiaXQiLCJ2aSIsImplc3QiLCJPYmplY3QiLCJhc3NpZ24iLCJpc29sYXRlTW9kdWxlc0FzeW5jIiwiZm4iLCJyZXNldE1vZHVsZXMiLCJyZXF1aXJlQWN0dWFsIiwiaW1wb3J0QWN0dWFsIiwidW5zdGFibGVfbW9ja01vZHVsZSIsImRvTW9jayIsImNyZWF0ZU1vY2tDb250ZXh0Iiwib3ZlcnJpZGVzIiwiZGVmYXVsdFNlc3Npb24iLCJ1c2VyQWNjZXNzIiwidXNlcklkIiwidXNlcm5hbWUiLCJvdmVycmlkZVNlc3Npb24iLCJzZXNzaW9uIiwiY29udGV4dCIsImRhdGFiYXNlTmFtZSIsInVuZGVmaW5lZCIsImNyZWF0ZU1vY2tSZXNvbHZlSW5mbyIsImZpZWxkTmFtZSIsIm9wZXJhdGlvbiIsInBhcmVudFR5cGUiLCJyZXR1cm5UeXBlIiwic2NoZW1hIiwiZmllbGROb2RlcyIsImZyYWdtZW50cyIsInBhdGgiLCJrZXkiLCJwcmV2IiwidHlwZW5hbWUiLCJyb290VmFsdWUiLCJ2YXJpYWJsZVZhbHVlcyIsIm1vY2tBY3Rpb25zTW9kdWxlIiwibW9kdWxlUGF0aCIsIm1vY2tBY3Rpb25zIiwibW9ja3MiLCJlbnRyaWVzIiwicmVkdWNlIiwiYWNjIiwidmFsdWUiLCJtb2NrSW1wbGVtZW50YXRpb24iLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm1vY2tPYmplY3RUeXBlIiwidHlwZU5hbWUiLCJtb2NrIiwiZ2V0RmllbGQiLCJyZXNvbHZlIiwiZ2V0RmllbGRzIiwiY3JlYXRlUXVlcnlUZXN0U3VpdGUiLCJuYW1lIiwiYWN0aW9uc1BhdGgiLCJ0ZXN0Q2FzZXMiLCJhY3Rpb25zIiwibW9ja0NvbnRleHQiLCJmb3JFYWNoIiwidGVzdE5hbWUiLCJhY3Rpb25OYW1lIiwiYXJncyIsImV4cGVjdGVkQ2FsbCIsIm1vY2tSZXR1cm5WYWx1ZSIsImVycm9yQ2FzZSIsIm1vY2tGbiIsIlByb21pc2UiLCJyZXN1bHQiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInRvRXF1YWwiLCJ0b0JlTnVsbCIsImNyZWF0ZU11dGF0aW9uVGVzdFN1aXRlIiwicmVxdWlyZXNBdXRoIiwiYXV0aFVzZXJJZCIsImNyZWF0ZUludGVncmF0aW9uVGVzdFN1aXRlIiwib2JqZWN0VHlwZVBhdGgiLCJzdWNjZXNzUmV0dXJuVmFsdWUiLCJlcnJvclJldHVyblZhbHVlIiwidGVzdEVycm9yQ2FzZSIsImNyZWF0ZU1vY2tVc2VyIiwiZW1haWwiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImNyZWF0ZU1vY2tQb3N0IiwiY29udGVudCIsImNyZWF0ZWRBdCIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsInBvc3RJZCIsImNyZWF0ZU1vY2tNZXNzYWdlIiwiY29udmVyc2F0aW9uSWQiLCJtZXNzYWdlSWQiLCJjcmVhdGVNb2NrUmVhY3Rpb24iLCJyZWFjdGlvbklkIiwidHlwZSIsImNyZWF0ZU1vY2tUYWciLCJkZXNjcmlwdGlvbiIsInRhZ0lkIiwic2V0dXBDb21tb25Nb2NrcyIsInVzZURiIiwiZ2V0TGltaXQiLCJnZXREb2NJZCIsInNvcnRJZHMiLCJnZXRHcWxGaWVsZHMiLCJjbGVhckFsbE1vY2tzIiwiY3JlYXRlQWN0aW9uVGVzdFN1aXRlIiwibW9ja1F1ZXJ5IiwiZXhwZWN0ZWRSZXN1bHQiLCJtb2NrRGIiLCJxdWVyeSIsImFjdHVhbCIsImNyZWF0ZUFkYXB0ZXJUZXN0U3VpdGUiLCJhZGFwdGVyUGF0aCIsImFkYXB0ZXIiLCJpbnB1dCIsImV4cGVjdGVkT3V0cHV0IiwicGFyc2VUYWciLCJjcmVhdGVVdGlsc1Rlc3RTdWl0ZSIsInV0aWxzUGF0aCIsInV0aWxzIiwibG9nSW5mbyIsInJlbW92ZUVtcHR5S2V5cyIsIkVycm9yIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxTQUFTLEVBQUVDLFFBQVEsRUFBRUMsTUFBTSxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsUUFBTyxTQUFTO0FBSTNELE1BQU1DLE9BQU9DLE9BQU9DLE1BQU0sQ0FBQ0gsSUFBVztJQUNwQ0kscUJBQXFCLE9BQU9DO1FBQzFCTCxHQUFHTSxZQUFZO1FBQ2YsTUFBTUQ7SUFDUjtJQUNBRSxlQUFlUCxHQUFHUSxZQUFZO0lBQzlCQyxxQkFBcUJULEdBQUdVLE1BQU07QUFDaEM7QUFVQSxPQUFPLE1BQU1DLG9CQUFvQixDQUFDQyxZQUEyQixDQUFDLENBQUM7SUFDN0QsTUFBTUMsaUJBQWlCO1FBQ3JCQyxZQUFZO1FBQ1pDLFFBQVE7UUFDUkMsVUFBVTtJQUNaO0lBQ0EsTUFBTUMsa0JBQWtETCxVQUFVTSxPQUFPLElBQUksQ0FBQztJQUM5RSxNQUFNQyxVQUF1QjtRQUMzQkMsY0FBYyxBQUFDUixVQUFVUSxZQUFZLElBQWU7UUFDcEQsR0FBR1IsU0FBUztJQUNkO0lBQ0EsT0FBT08sUUFBUUQsT0FBTztJQUN0QkMsUUFBUUQsT0FBTyxHQUFHO1FBQ2hCSixZQUFZRyxnQkFBZ0JILFVBQVUsS0FBS08sWUFBWUosZ0JBQWdCSCxVQUFVLEdBQUdELGVBQWVDLFVBQVU7UUFDN0dDLFFBQVFFLGdCQUFnQkYsTUFBTSxLQUFLTSxZQUFZSixnQkFBZ0JGLE1BQU0sR0FBR0YsZUFBZUUsTUFBTTtRQUM3RkMsVUFBVUMsZ0JBQWdCRCxR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
|
|
@@ -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
|
*/
|
|
5
5
|
import type { ApiContext } from '../types/auth.types.js';
|
|
6
6
|
import type { Locale } from '../types/content.types.js';
|
|
@@ -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
|
*
|
|
5
5
|
* Example usage of the translation queue system with Google Translate integration
|
|
6
6
|
*
|