sonamu 0.9.4 → 0.9.6
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/dist/ai/providers/rtzr/utils.js +2 -2
- package/dist/api/config.d.ts +13 -2
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +1 -1
- package/dist/api/context.d.ts +17 -7
- package/dist/api/context.d.ts.map +1 -1
- package/dist/api/context.js +1 -1
- package/dist/api/decorators.d.ts +18 -0
- package/dist/api/decorators.d.ts.map +1 -1
- package/dist/api/decorators.js +54 -3
- package/dist/api/index.js +8 -3
- package/dist/api/sonamu.d.ts +24 -9
- package/dist/api/sonamu.d.ts.map +1 -1
- package/dist/api/sonamu.js +365 -79
- package/dist/api/websocket-helpers.d.ts +24 -0
- package/dist/api/websocket-helpers.d.ts.map +1 -0
- package/dist/api/websocket-helpers.js +77 -0
- package/dist/bin/cli.js +12 -4
- package/dist/database/upsert-builder.js +4 -4
- package/dist/dict/sonamu-dictionary.js +6 -6
- package/dist/entity/entity-manager.js +1 -1
- package/dist/entity/entity.js +3 -3
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -4
- package/dist/migration/code-generation.d.ts.map +1 -1
- package/dist/migration/code-generation.js +8 -9
- package/dist/stream/index.d.ts +6 -0
- package/dist/stream/index.d.ts.map +1 -1
- package/dist/stream/index.js +13 -2
- package/dist/stream/ws-audience-resolver.d.ts +15 -0
- package/dist/stream/ws-audience-resolver.d.ts.map +1 -0
- package/dist/stream/ws-audience-resolver.js +31 -0
- package/dist/stream/ws-audience.d.ts +28 -0
- package/dist/stream/ws-audience.d.ts.map +1 -0
- package/dist/stream/ws-audience.js +46 -0
- package/dist/stream/ws-cluster-bus.d.ts +23 -0
- package/dist/stream/ws-cluster-bus.d.ts.map +1 -0
- package/dist/stream/ws-cluster-bus.js +18 -0
- package/dist/stream/ws-core.d.ts +15 -0
- package/dist/stream/ws-core.d.ts.map +1 -0
- package/dist/stream/ws-core.js +1 -0
- package/dist/stream/ws-delivery.d.ts +24 -0
- package/dist/stream/ws-delivery.d.ts.map +1 -0
- package/dist/stream/ws-delivery.js +103 -0
- package/dist/stream/ws-local-connection-store.d.ts +10 -0
- package/dist/stream/ws-local-connection-store.d.ts.map +1 -0
- package/dist/stream/ws-local-connection-store.js +44 -0
- package/dist/stream/ws-presence-store.d.ts +61 -0
- package/dist/stream/ws-presence-store.d.ts.map +1 -0
- package/dist/stream/ws-presence-store.js +236 -0
- package/dist/stream/ws-registry.d.ts +42 -0
- package/dist/stream/ws-registry.d.ts.map +1 -0
- package/dist/stream/ws-registry.js +108 -0
- package/dist/stream/ws.d.ts +52 -0
- package/dist/stream/ws.d.ts.map +1 -0
- package/dist/stream/ws.js +397 -0
- package/dist/syncer/api-parser.d.ts.map +1 -1
- package/dist/syncer/api-parser.js +72 -2
- package/dist/syncer/checksum.d.ts.map +1 -1
- package/dist/syncer/checksum.js +13 -12
- package/dist/syncer/code-generator.d.ts.map +1 -1
- package/dist/syncer/code-generator.js +7 -4
- package/dist/syncer/event-batcher.d.ts +27 -0
- package/dist/syncer/event-batcher.d.ts.map +1 -0
- package/dist/syncer/event-batcher.js +69 -0
- package/dist/syncer/file-patterns.d.ts +48 -26
- package/dist/syncer/file-patterns.d.ts.map +1 -1
- package/dist/syncer/file-patterns.js +71 -23
- package/dist/syncer/file-tracking.d.ts +13 -0
- package/dist/syncer/file-tracking.d.ts.map +1 -0
- package/dist/syncer/file-tracking.js +33 -0
- package/dist/syncer/index.js +2 -2
- package/dist/syncer/module-loader.d.ts +2 -11
- package/dist/syncer/module-loader.d.ts.map +1 -1
- package/dist/syncer/module-loader.js +3 -3
- package/dist/syncer/syncer-actions.d.ts +39 -6
- package/dist/syncer/syncer-actions.d.ts.map +1 -1
- package/dist/syncer/syncer-actions.js +125 -10
- package/dist/syncer/syncer.d.ts +33 -19
- package/dist/syncer/syncer.d.ts.map +1 -1
- package/dist/syncer/syncer.js +168 -168
- package/dist/syncer/watcher.d.ts +8 -0
- package/dist/syncer/watcher.d.ts.map +1 -0
- package/dist/syncer/watcher.js +105 -0
- package/dist/tasks/workflow-manager.d.ts.map +1 -1
- package/dist/tasks/workflow-manager.js +2 -1
- package/dist/template/implementations/services.template.d.ts.map +1 -1
- package/dist/template/implementations/services.template.js +36 -1
- package/dist/testing/bootstrap.d.ts.map +1 -1
- package/dist/testing/bootstrap.js +8 -1
- package/dist/testing/data-explorer.d.ts.map +1 -1
- package/dist/testing/data-explorer.js +5 -3
- package/dist/testing/fixture-manager.js +1 -1
- package/dist/types/types.d.ts +2 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/types.js +2 -2
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +4 -3
- package/dist/ui/cdd-service.js +1 -1
- package/dist/ui-web/assets/{index-C5KUjXm0.js → index-BmThfg-s.js} +39 -39
- package/dist/ui-web/assets/index-D4rYm-Xz.css +1 -0
- package/dist/ui-web/index.html +2 -2
- package/dist/utils/async-utils.d.ts +27 -3
- package/dist/utils/async-utils.d.ts.map +1 -1
- package/dist/utils/async-utils.js +56 -6
- package/dist/utils/formatter.d.ts +7 -1
- package/dist/utils/formatter.d.ts.map +1 -1
- package/dist/utils/formatter.js +95 -60
- package/dist/utils/fs-utils.d.ts +2 -0
- package/dist/utils/fs-utils.d.ts.map +1 -1
- package/dist/utils/fs-utils.js +10 -2
- package/dist/utils/process-utils.d.ts +6 -0
- package/dist/utils/process-utils.d.ts.map +1 -1
- package/dist/utils/process-utils.js +16 -3
- package/dist/utils/utils.d.ts +1 -0
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +2 -2
- package/package.json +7 -5
- package/src/ai/providers/rtzr/utils.ts +1 -1
- package/src/api/__tests__/sonamu.websocket.test.ts +64 -0
- package/src/api/__tests__/websocket-context.types.test.ts +58 -0
- package/src/api/config.ts +28 -2
- package/src/api/context.ts +21 -7
- package/src/api/decorators.ts +101 -1
- package/src/api/sonamu.ts +529 -127
- package/src/api/websocket-helpers.ts +122 -0
- package/src/bin/cli.ts +10 -2
- package/src/database/upsert-builder.ts +3 -3
- package/src/dict/sonamu-dictionary.ts +3 -3
- package/src/entity/entity.ts +1 -1
- package/src/index.ts +6 -0
- package/src/migration/code-generation.ts +6 -11
- package/src/shared/app.shared.ts.txt +312 -4
- package/src/shared/web.shared.ts.txt +340 -4
- package/src/stream/__tests__/ws-contracts.test.ts +381 -0
- package/src/stream/__tests__/ws.test.ts +449 -0
- package/src/stream/index.ts +6 -0
- package/src/stream/ws-audience-resolver.ts +35 -0
- package/src/stream/ws-audience.ts +62 -0
- package/src/stream/ws-cluster-bus.ts +32 -0
- package/src/stream/ws-core.ts +16 -0
- package/src/stream/ws-delivery.ts +138 -0
- package/src/stream/ws-local-connection-store.ts +44 -0
- package/src/stream/ws-presence-store.ts +326 -0
- package/src/stream/ws-registry.ts +138 -0
- package/src/stream/ws.ts +591 -0
- package/src/syncer/__tests__/api-parser.websocket-type-ref.test.ts +78 -0
- package/src/syncer/api-parser.ts +112 -1
- package/src/syncer/checksum.ts +23 -29
- package/src/syncer/code-generator.ts +4 -1
- package/src/syncer/event-batcher.ts +72 -0
- package/src/syncer/file-patterns.ts +98 -30
- package/src/syncer/file-tracking.ts +27 -0
- package/src/syncer/module-loader.ts +5 -12
- package/src/syncer/syncer-actions.ts +179 -17
- package/src/syncer/syncer.ts +250 -287
- package/src/syncer/watcher.ts +128 -0
- package/src/tasks/workflow-manager.ts +1 -0
- package/src/template/__tests__/services.template.websocket.test.ts +79 -0
- package/src/template/implementations/services.template.ts +69 -0
- package/src/testing/bootstrap.ts +8 -1
- package/src/testing/data-explorer.ts +3 -2
- package/src/types/types.ts +20 -2
- package/src/ui/api.ts +10 -1
- package/src/utils/async-utils.ts +71 -4
- package/src/utils/formatter.ts +114 -75
- package/src/utils/fs-utils.ts +9 -0
- package/src/utils/process-utils.ts +17 -0
- package/src/utils/utils.ts +1 -1
- package/dist/ui-web/assets/index-Dr8pRJC_.css +0 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { __esmMin } from "../_virtual/rolldown_runtime.js";
|
|
2
|
+
import { init_utils, nonNullable } from "../utils/utils.js";
|
|
2
3
|
import { init_types, isBelongsToOneRelationProp, isOneToOneRelationProp, isRelationProp } from "../types/types.js";
|
|
3
4
|
|
|
4
5
|
//#region src/testing/data-explorer.ts
|
|
5
6
|
var DataExplorer;
|
|
6
7
|
var init_data_explorer = __esmMin((() => {
|
|
7
8
|
init_types();
|
|
9
|
+
init_utils();
|
|
8
10
|
DataExplorer = class {
|
|
9
11
|
cache;
|
|
10
12
|
constructor(db, entityManager, cacheManager) {
|
|
@@ -194,7 +196,7 @@ var init_data_explorer = __esmMin((() => {
|
|
|
194
196
|
return;
|
|
195
197
|
}
|
|
196
198
|
const entity = this.entityManager.get(entityName);
|
|
197
|
-
const recordIds = records.map((r) => r.id).filter(
|
|
199
|
+
const recordIds = records.map((r) => r.id).filter(nonNullable);
|
|
198
200
|
const forwardRelationProps = entity.props.filter((prop) => isRelationProp(prop) && (isBelongsToOneRelationProp(prop) || isOneToOneRelationProp(prop) && prop.hasJoinColumn));
|
|
199
201
|
for (const prop of forwardRelationProps) {
|
|
200
202
|
if (!isRelationProp(prop)) continue;
|
|
@@ -203,7 +205,7 @@ var init_data_explorer = __esmMin((() => {
|
|
|
203
205
|
continue;
|
|
204
206
|
}
|
|
205
207
|
const foreignKeyName = `${prop.name}_id`;
|
|
206
|
-
const referencedIds = records.map((record) => record[foreignKeyName]).filter(
|
|
208
|
+
const referencedIds = records.map((record) => record[foreignKeyName]).filter(Boolean);
|
|
207
209
|
if (referencedIds.length === 0) {
|
|
208
210
|
continue;
|
|
209
211
|
}
|
|
@@ -243,4 +245,4 @@ var init_data_explorer = __esmMin((() => {
|
|
|
243
245
|
//#endregion
|
|
244
246
|
init_data_explorer();
|
|
245
247
|
export { DataExplorer, init_data_explorer };
|
|
246
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1leHBsb3Jlci5qcyIsIm5hbWVzIjpbImRiOiBLbmV4IiwiZW50aXR5TWFuYWdlcjogdHlwZW9mIEVudGl0eU1hbmFnZXIiLCJyZXN1bHQ6IEV4cGxvcmVXaXRoUmVsYXRpb25zUmVzdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvZGF0YS1leHBsb3Jlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEtuZXggfSBmcm9tIFwia25leFwiO1xuXG5pbXBvcnQgeyB0eXBlIENhY2hlTWFuYWdlciB9IGZyb20gXCIuLi9jYWNoZS90eXBlc1wiO1xuaW1wb3J0IHsgdHlwZSBFbnRpdHkgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eVwiO1xuaW1wb3J0IHsgdHlwZSBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgaXNCZWxvbmdzVG9PbmVSZWxhdGlvblByb3AsIGlzT25lVG9PbmVSZWxhdGlvblByb3AsIGlzUmVsYXRpb25Qcm9wIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFFeHBsb3JlclN0cmF0ZWd5ID0gXCJzYW1wbGVcIiB8IFwiaWRzXCIgfCBcInF1ZXJ5XCIgfCBcImZpbGVcIiB8IFwicmVjZW50XCIgfCBcInJhbmRvbVwiO1xuXG4vKiogV0hFUkUg7KGw6rG0IO2DgOyehSAo6rCd7LK0IOuYkOuKlCBLbmV4IFF1ZXJ5QnVpbGRlciDtlajsiJgpICovXG5leHBvcnQgdHlwZSBXaGVyZUNvbmRpdGlvbiA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgKChxdWVyeUJ1aWxkZXI6IEtuZXguUXVlcnlCdWlsZGVyKSA9PiB2b2lkKTtcblxuZXhwb3J0IHR5cGUgRGF0YUV4cGxvcmVyT3B0aW9ucyA9IHtcbiAgc3RyYXRlZ3k6IERhdGFFeHBsb3JlclN0cmF0ZWd5O1xuICBsaW1pdD86IG51bWJlcjtcbiAgd2hlcmU/OiBXaGVyZUNvbmRpdGlvbjtcbiAgb3JkZXJCeT86IHN0cmluZztcbiAgaWRzPzogbnVtYmVyW107XG4gIGZpbGVQYXRoPzogc3RyaW5nO1xuICAvKiog7LqQ7IuxIOyCrOyaqSDsl6zrtoAgKOq4sOuzuOqwkjogZmFsc2UpICovXG4gIHVzZUNhY2hlPzogYm9vbGVhbjtcbiAgLyoqIOy6kOyLnCBUVEwgKOy0iCDri6jsnIQsIOq4sOuzuOqwkjogMzAwKSAqL1xuICBjYWNoZVR0bD86IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIEV4cGxvcmVXaXRoUmVsYXRpb25zT3B0aW9ucyA9IERhdGFFeHBsb3Jlck9wdGlvbnMgJiB7XG4gIC8qKiDqtIDroKgg642w7J207YSwIO2PrO2VqCDsl6zrtoAgKOq4sOuzuOqwkjogdHJ1ZSkgKi9cbiAgaW5jbHVkZVJlbGF0aW9ucz86IGJvb2xlYW47XG4gIC8qKiDsnqzqt4Ag7YOQ7IOJIOy1nOuMgCDquYrsnbQgKOq4sOuzuOqwkjogMikgKi9cbiAgbWF4RGVwdGg/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBFeHBsb3JlV2l0aFJlbGF0aW9uc1Jlc3VsdCA9IHtcbiAgLyoqIOuplOyduCBlbnRpdHkg642w7J207YSwICovXG4gIG1haW46IHtcbiAgICBlbnRpdHlJZDogc3RyaW5nO1xuICAgIHJlY29yZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W107XG4gIH07XG4gIC8qKiDqtIDroKggZW50aXR5IOuNsOydtO2EsCAoZW50aXR5SWQgLT4gcmVjb3JkcykgKi9cbiAgcmVsYXRlZDogTWFwPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXT47XG59O1xuXG4vLyDquLDsobQgREIg642w7J207YSw66W8IO2DkOyDie2VmOyXrCBmaXh0dXJlIOyDneyEsSDsi5wg7LC47KGw7ZWgIOyImCDsnojripQg7Iuc7Iqk7YWcXG5leHBvcnQgY2xhc3MgRGF0YUV4cGxvcmVyIHtcbiAgcHJpdmF0ZSBjYWNoZT86IENhY2hlTWFuYWdlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGRiOiBLbmV4LFxuICAgIHByaXZhdGUgZW50aXR5TWFuYWdlcjogdHlwZW9mIEVudGl0eU1hbmFnZXIsXG4gICAgY2FjaGVNYW5hZ2VyPzogQ2FjaGVNYW5hZ2VyLFxuICApIHtcbiAgICB0aGlzLmNhY2hlID0gY2FjaGVNYW5hZ2VyO1xuICB9XG5cbiAgYXN5bmMgZXhwbG9yZShcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAgb3B0aW9uczogRGF0YUV4cGxvcmVyT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPiB7XG4gICAgY29uc3QgZW50aXR5ID0gdGhpcy5lbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlOYW1lKTtcbiAgICBpZiAoIWVudGl0eSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFbnRpdHkgbm90IGZvdW5kOiAke2VudGl0eU5hbWV9YCk7XG4gICAgfVxuXG4gICAgLy8g7LqQ7IuxIOyngOybkFxuICAgIGlmIChvcHRpb25zLnVzZUNhY2hlICYmIHRoaXMuY2FjaGUpIHtcbiAgICAgIGNvbnN0IGNhY2hlS2V5ID0gdGhpcy5nZW5lcmF0ZUNhY2hlS2V5KGVudGl0eU5hbWUsIG9wdGlvbnMpO1xuICAgICAgcmV0dXJuIHRoaXMuY2FjaGUuZ2V0T3JTZXQoe1xuICAgICAgICBrZXk6IGNhY2hlS2V5LFxuICAgICAgICB0dGw6IG9wdGlvbnMuY2FjaGVUdGwgfHwgMzAwLFxuICAgICAgICBmYWN0b3J5OiAoKSA9PiB0aGlzLmV4cGxvcmVJbnRlcm5hbChlbnRpdHksIG9wdGlvbnMpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZXhwbG9yZUludGVybmFsKGVudGl0eSwgb3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGV4cGxvcmVJbnRlcm5hbChcbiAgICBlbnRpdHk6IEVudGl0eSxcbiAgICBvcHRpb25zOiBEYXRhRXhwbG9yZXJPcHRpb25zLFxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+IHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGIoZW50aXR5LnRhYmxlKTtcblxuICAgIHN3aXRjaCAob3B0aW9ucy5zdHJhdGVneSkge1xuICAgICAgY2FzZSBcInNhbXBsZVwiOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5zYW1wbGVEYXRhKHF1ZXJ5LCBvcHRpb25zLmxpbWl0IHx8IDEwKTtcblxuICAgICAgY2FzZSBcInJlY2VudFwiOiB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWRBdENvbCA9IHRoaXMuZmluZFRpbWVzdGFtcENvbHVtbihlbnRpdHksIFwiY3JlYXRlZF9hdFwiKTtcbiAgICAgICAgaWYgKGNyZWF0ZWRBdENvbCkge1xuICAgICAgICAgIHF1ZXJ5Lm9yZGVyQnkoY3JlYXRlZEF0Q29sLCBcImRlc2NcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHF1ZXJ5LmxpbWl0KG9wdGlvbnMubGltaXQgfHwgMTApO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFwicmFuZG9tXCI6XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJhbmRvbVNhbXBsZShxdWVyeSwgb3B0aW9ucy5saW1pdCB8fCAxMCk7XG5cbiAgICAgIGNhc2UgXCJpZHNcIjpcbiAgICAgICAgaWYgKG9wdGlvbnMuaWRzICYmIG9wdGlvbnMuaWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBxdWVyeS53aGVyZUluKFwiaWRcIiwgb3B0aW9ucy5pZHMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCBxdWVyeTtcblxuICAgICAgY2FzZSBcInF1ZXJ5XCI6XG4gICAgICAgIGlmIChvcHRpb25zLndoZXJlKSB7XG4gICAgICAgICAgcXVlcnkud2hlcmUob3B0aW9ucy53aGVyZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdGlvbnMub3JkZXJCeSkge1xuICAgICAgICAgIGNvbnN0IFtjb2wsIGRpciA9IFwiYXNjXCJdID0gb3B0aW9ucy5vcmRlckJ5LnNwbGl0KFwiOlwiKTtcbiAgICAgICAgICAvLyBpZCDsu6zrn7zsnYAg7Iir7J6Q66GcIOy6kOyKpO2Mhe2VmOyXrCDsoJXroKztlanri4jri6QgKOusuOyekOyXtCDsoJXroKwg67Cp7KeAKVxuICAgICAgICAgIGlmIChjb2wgPT09IFwiaWRcIikge1xuICAgICAgICAgICAgcXVlcnkub3JkZXJCeVJhdyhgQ0FTVCg/PyBBUyBJTlRFR0VSKSAke2Rpcn1gLCBbY29sXSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHF1ZXJ5Lm9yZGVyQnkoY29sLCBkaXIgYXMgXCJhc2NcIiB8IFwiZGVzY1wiKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGF3YWl0IHF1ZXJ5LmxpbWl0KG9wdGlvbnMubGltaXQgfHwgMTApO1xuXG4gICAgICBjYXNlIFwiZmlsZVwiOlxuICAgICAgICBpZiAoIW9wdGlvbnMuZmlsZVBhdGgpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJmaWxlUGF0aCBpcyByZXF1aXJlZCBmb3IgZmlsZSBzdHJhdGVneVwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkRnJvbUZpbGUob3B0aW9ucy5maWxlUGF0aCk7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBzdHJhdGVneTogJHtvcHRpb25zLnN0cmF0ZWd5fWApO1xuICAgIH1cbiAgfVxuXG4gIC8vIOq3oOuTsSDsg5jtlIzrp4EgKFBvc3RncmVTUUwgUk9XX05VTUJFUiDsgqzsmqkpXG4gIHByaXZhdGUgYXN5bmMgc2FtcGxlRGF0YShcbiAgICBxdWVyeTogS25leC5RdWVyeUJ1aWxkZXIsXG4gICAgbGltaXQ6IG51bWJlcixcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPiB7XG4gICAgY29uc3QgW3sgY291bnQgfV0gPSBhd2FpdCBxdWVyeS5jbG9uZSgpLmNvdW50KFwiKiBhcyBjb3VudFwiKTtcbiAgICBjb25zdCB0b3RhbCA9IE51bWJlcihjb3VudCk7XG5cbiAgICBpZiAodG90YWwgPD0gbGltaXQpIHtcbiAgICAgIHJldHVybiBhd2FpdCBxdWVyeS5saW1pdChsaW1pdCk7XG4gICAgfVxuXG4gICAgLy8g6reg65OxIOqwhOqyqSDqs4TsgrBcbiAgICBjb25zdCBpbnRlcnZhbCA9IE1hdGguZmxvb3IodG90YWwgLyBsaW1pdCk7XG5cbiAgICAvLyDthYzsnbTruJTrqoUg7LaU7LacXG4gICAgY29uc3QgdGFibGVOYW1lID0gcXVlcnkudG9TdHJpbmcoKS5tYXRjaCgvZnJvbVxccytcIj8oXFx3KylcIj8vaSk/LlsxXTtcbiAgICBpZiAoIXRhYmxlTmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGQgbm90IGV4dHJhY3QgdGFibGUgbmFtZSBmcm9tIHF1ZXJ5XCIpO1xuICAgIH1cblxuICAgIC8vIFJPV19OVU1CRVIoKeuhnCDtlZwg67KI7JeQIOq3oOuTsSDsg5jtlIzrp4EgKOuLqOydvCDsv7zrpqwpXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5kYi5yYXcoXG4gICAgICBgXG4gICAgICBXSVRIIG51bWJlcmVkX3Jvd3MgQVMgKFxuICAgICAgICBTRUxFQ1QgKiwgUk9XX05VTUJFUigpIE9WRVIgKE9SREVSIEJZIGlkKSBhcyByblxuICAgICAgICBGUk9NID8/XG4gICAgICApXG4gICAgICBTRUxFQ1QgKiBGUk9NIG51bWJlcmVkX3Jvd3NcbiAgICAgIFdIRVJFIE1PRChybiAtIDEsID8pID0gMFxuICAgICAgTElNSVQgP1xuICAgIGAsXG4gICAgICBbdGFibGVOYW1lLCBpbnRlcnZhbCwgbGltaXRdLFxuICAgICk7XG5cbiAgICByZXR1cm4gcmVzdWx0LnJvd3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJhbmRvbVNhbXBsZShcbiAgICBxdWVyeTogS25leC5RdWVyeUJ1aWxkZXIsXG4gICAgbGltaXQ6IG51bWJlcixcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHF1ZXJ5Lm9yZGVyQnlSYXcoXCJSQU5ET00oKVwiKS5saW1pdChsaW1pdCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRUaW1lc3RhbXBDb2x1bW4oZW50aXR5OiBFbnRpdHksIGNvbHVtbk5hbWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IHByb3AgPSBlbnRpdHkucHJvcHMuZmluZCgocCkgPT4gcC5uYW1lID09PSBjb2x1bW5OYW1lKTtcbiAgICByZXR1cm4gcHJvcD8ubmFtZSB8fCBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkRnJvbUZpbGUoZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj5bXT4ge1xuICAgIGNvbnN0IGZzID0gYXdhaXQgaW1wb3J0KFwiZnMvcHJvbWlzZXNcIik7XG4gICAgY29uc3QgY29udGVudCA9IGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVQYXRoLCBcInV0Zi04XCIpO1xuXG4gICAgaWYgKGZpbGVQYXRoLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoY29udGVudCk7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkocGFyc2VkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJKU09OIGZpbGUgbXVzdCBjb250YWluIGFuIGFycmF5XCIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhcnNlZCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdO1xuICAgIH0gZWxzZSBpZiAoZmlsZVBhdGguZW5kc1dpdGgoXCIuY3N2XCIpKSB7XG4gICAgICBjb25zdCBsaW5lcyA9IGNvbnRlbnQuc3BsaXQoXCJcXG5cIikuZmlsdGVyKChsaW5lKSA9PiBsaW5lLnRyaW0oKSk7XG4gICAgICBpZiAobGluZXMubGVuZ3RoID09PSAwKSByZXR1cm4gW107XG5cbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBsaW5lc1swXS5zcGxpdChcIixcIikubWFwKChoKSA9PiBoLnRyaW0oKSk7XG4gICAgICByZXR1cm4gbGluZXMuc2xpY2UoMSkubWFwKChsaW5lKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IGxpbmUuc3BsaXQoXCIsXCIpO1xuICAgICAgICByZXR1cm4gaGVhZGVycy5yZWR1Y2UoXG4gICAgICAgICAgKG9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sIGhlYWRlcjogc3RyaW5nLCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIG9ialtoZWFkZXJdID0gdmFsdWVzW2ldPy50cmltKCk7XG4gICAgICAgICAgICByZXR1cm4gb2JqO1xuICAgICAgICAgIH0sXG4gICAgICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGZpbGUgZm9ybWF0OiAke2ZpbGVQYXRofWApO1xuICB9XG5cbiAgYXN5bmMgZXhwbG9yZVJlbGF0aW9uKFxuICAgIGVudGl0eU5hbWU6IHN0cmluZyxcbiAgICByZWxhdGlvblByb3A6IHN0cmluZyxcbiAgICBvcHRpb25zPzogUGFydGlhbDxEYXRhRXhwbG9yZXJPcHRpb25zPixcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPiB7XG4gICAgY29uc3QgZW50aXR5ID0gdGhpcy5lbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlOYW1lKTtcbiAgICBjb25zdCBwcm9wID0gZW50aXR5LnByb3BzLmZpbmQoKHApID0+IHAubmFtZSA9PT0gcmVsYXRpb25Qcm9wKTtcblxuICAgIGlmICghcHJvcCB8fCAhaXNSZWxhdGlvblByb3AocHJvcCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUmVsYXRpb24gcHJvcGVydHkgbm90IGZvdW5kOiAke2VudGl0eU5hbWV9LiR7cmVsYXRpb25Qcm9wfWApO1xuICAgIH1cblxuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSBwcm9wLmNvbmU/LmRhdGFTb3VyY2U7XG4gICAgY29uc3Qgc3RyYXRlZ3kgPSBkYXRhU291cmNlPy5zdHJhdGVneSB8fCBvcHRpb25zPy5zdHJhdGVneSB8fCBcInNhbXBsZVwiO1xuICAgIGNvbnN0IGNvbmZpZyA9XG4gICAgICBkYXRhU291cmNlPy5jb25maWcgJiYgdHlwZW9mIGRhdGFTb3VyY2UuY29uZmlnID09PSBcIm9iamVjdFwiXG4gICAgICAgID8gKGRhdGFTb3VyY2UuY29uZmlnIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVxuICAgICAgICA6IHt9O1xuXG4gICAgcmV0dXJuIHRoaXMuZXhwbG9yZShwcm9wLndpdGgsIHtcbiAgICAgIHN0cmF0ZWd5LFxuICAgICAgbGltaXQ6IG9wdGlvbnM/LmxpbWl0IHx8ICh0eXBlb2YgY29uZmlnLmxpbWl0ID09PSBcIm51bWJlclwiID8gY29uZmlnLmxpbWl0IDogMTApLFxuICAgICAgLi4uKHR5cGVvZiBjb25maWcgPT09IFwib2JqZWN0XCIgPyBjb25maWcgOiB7fSksXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOyXrOufrCByZWxhdGlvbuydhCDrs5HroKzroZwg7KGw7ZqM7ZWp64uI64ukIChOKzEg66y47KCcIO2VtOqysClcbiAgICovXG4gIGFzeW5jIGV4cGxvcmVSZWxhdGlvbnMoXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIHJlbGF0aW9uUHJvcHM6IHN0cmluZ1tdLFxuICAgIG9wdGlvbnM/OiBQYXJ0aWFsPERhdGFFeHBsb3Jlck9wdGlvbnM+LFxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+PiB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcmVsYXRpb25Qcm9wcy5tYXAoYXN5bmMgKHByb3ApID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZXhwbG9yZVJlbGF0aW9uKGVudGl0eU5hbWUsIHByb3AsIG9wdGlvbnMpO1xuICAgICAgICByZXR1cm4gW3Byb3AsIGRhdGFdIGFzIGNvbnN0O1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMocmVzdWx0cyk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQ2FjaGVLZXkoZW50aXR5TmFtZTogc3RyaW5nLCBvcHRpb25zOiBEYXRhRXhwbG9yZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0cyA9IFtcbiAgICAgIGBEYXRhRXhwbG9yZXI6JHtlbnRpdHlOYW1lfWAsXG4gICAgICBvcHRpb25zLnN0cmF0ZWd5LFxuICAgICAgb3B0aW9ucy5saW1pdD8udG9TdHJpbmcoKSB8fCBcImRlZmF1bHRcIixcbiAgICBdO1xuXG4gICAgaWYgKG9wdGlvbnMud2hlcmUpIHtcbiAgICAgIHBhcnRzLnB1c2goSlNPTi5zdHJpbmdpZnkob3B0aW9ucy53aGVyZSkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5vcmRlckJ5KSB7XG4gICAgICBwYXJ0cy5wdXNoKG9wdGlvbnMub3JkZXJCeSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmlkcykge1xuICAgICAgcGFydHMucHVzaChvcHRpb25zLmlkcy5qb2luKFwiLFwiKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oXCI6XCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVudGl0eeyZgCDqtIDroKjrkJwg642w7J207YSw66W8IOyerOq3gOyggeycvOuhnCDtg5Dsg4ntlanri4jri6QuXG4gICAqIEJlbG9uZ3NUb09uZSwgT25lVG9PbmUoaGFzSm9pbkNvbHVtbikgcmVsYXRpb27snYQg65Sw65286rCA66mwIOywuOyhsCDrjbDsnbTthLDrpbwg7IiY7KeR7ZWp64uI64ukLlxuICAgKi9cbiAgYXN5bmMgZXhwbG9yZVdpdGhSZWxhdGlvbnMoXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IEV4cGxvcmVXaXRoUmVsYXRpb25zT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxFeHBsb3JlV2l0aFJlbGF0aW9uc1Jlc3VsdD4ge1xuICAgIGNvbnN0IGluY2x1ZGVSZWxhdGlvbnMgPSBvcHRpb25zLmluY2x1ZGVSZWxhdGlvbnMgPz8gdHJ1ZTtcbiAgICBjb25zdCBtYXhEZXB0aCA9IG9wdGlvbnMubWF4RGVwdGggPz8gMjtcblxuICAgIC8vIOuplOyduCBlbnRpdHkg7KGw7ZqMXG4gICAgY29uc3QgbWFpblJlY29yZHMgPSBhd2FpdCB0aGlzLmV4cGxvcmUoZW50aXR5TmFtZSwgb3B0aW9ucyk7XG5cbiAgICBjb25zdCByZXN1bHQ6IEV4cGxvcmVXaXRoUmVsYXRpb25zUmVzdWx0ID0ge1xuICAgICAgbWFpbjoge1xuICAgICAgICBlbnRpdHlJZDogZW50aXR5TmFtZSxcbiAgICAgICAgcmVjb3JkczogbWFpblJlY29yZHMsXG4gICAgICB9LFxuICAgICAgcmVsYXRlZDogbmV3IE1hcCgpLFxuICAgIH07XG5cbiAgICAvLyDqtIDroKgg642w7J207YSwIOyImOynke2VmOyngCDslYrsnLzrqbQg67CU66GcIOumrO2EtFxuICAgIGlmICghaW5jbHVkZVJlbGF0aW9ucyB8fCBtYXhEZXB0aCA8PSAwKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIOydtOuvuCDsobDtmoztlZwgZW50aXR5IOy2lOyggSAo7KSR67O1IOuwqeyngClcbiAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KFtlbnRpdHlOYW1lXSk7XG5cbiAgICAvLyDsnqzqt4DsoIHsnLzroZwg6rSA66CoIOuNsOydtO2EsCDsiJjsp5FcbiAgICBhd2FpdCB0aGlzLmNvbGxlY3RSZWxhdGVkRGF0YShlbnRpdHlOYW1lLCBtYWluUmVjb3JkcywgcmVzdWx0LnJlbGF0ZWQsIHZpc2l0ZWQsIG1heERlcHRoKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICog6rSA66CoIOuNsOydtO2EsOulvCDsnqzqt4DsoIHsnLzroZwg7IiY7KeR7ZWp64uI64ukIChwcml2YXRlIGhlbHBlcilcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY29sbGVjdFJlbGF0ZWREYXRhKFxuICAgIGVudGl0eU5hbWU6IHN0cmluZyxcbiAgICByZWNvcmRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdLFxuICAgIHJlbGF0ZWRNYXA6IE1hcDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+LFxuICAgIHZpc2l0ZWQ6IFNldDxzdHJpbmc+LFxuICAgIHJlbWFpbmluZ0RlcHRoOiBudW1iZXIsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChyZW1haW5pbmdEZXB0aCA8PSAwIHx8IHJlY29yZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZW50aXR5ID0gdGhpcy5lbnRpdHlNYW5hZ2VyLmdldChlbnRpdHlOYW1lKTtcbiAgICBjb25zdCByZWNvcmRJZHMgPSByZWNvcmRzLm1hcCgocikgPT4gci5pZCkuZmlsdGVyKChpZCkgPT4gaWQgIT0gbnVsbCk7XG5cbiAgICAvLyAxLiBGb3J3YXJkIHJlZmVyZW5jZXM6IOydtCBlbnRpdHnqsIAg7LC47KGw7ZWY64qUIOuLpOuluCBlbnRpdHlcbiAgICBjb25zdCBmb3J3YXJkUmVsYXRpb25Qcm9wcyA9IGVudGl0eS5wcm9wcy5maWx0ZXIoXG4gICAgICAocHJvcCkgPT5cbiAgICAgICAgaXNSZWxhdGlvblByb3AocHJvcCkgJiZcbiAgICAgICAgKGlzQmVsb25nc1RvT25lUmVsYXRpb25Qcm9wKHByb3ApIHx8IChpc09uZVRvT25lUmVsYXRpb25Qcm9wKHByb3ApICYmIHByb3AuaGFzSm9pbkNvbHVtbikpLFxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgZm9yd2FyZFJlbGF0aW9uUHJvcHMpIHtcbiAgICAgIGlmICghaXNSZWxhdGlvblByb3AocHJvcCkpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCB0YXJnZXRFbnRpdHlOYW1lID0gcHJvcC53aXRoO1xuXG4gICAgICAvLyDsnbTrr7gg7KGw7ZqM7ZWcIGVudGl0eeuKlCDsiqTtgrUgKOyInO2ZmCDssLjsobAg67Cp7KeAKVxuICAgICAgaWYgKHZpc2l0ZWQuaGFzKHRhcmdldEVudGl0eU5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyDssLjsobDtlZjripQgSUTrk6Qg7IiY7KeRXG4gICAgICBjb25zdCBmb3JlaWduS2V5TmFtZSA9IGAke3Byb3AubmFtZX1faWRgO1xuICAgICAgY29uc3QgcmVmZXJlbmNlZElkcyA9IHJlY29yZHNcbiAgICAgICAgLm1hcCgocmVjb3JkKSA9PiByZWNvcmRbZm9yZWlnbktleU5hbWVdKVxuICAgICAgICAuZmlsdGVyKChpZCkgPT4gaWQgIT0gbnVsbCkgYXMgbnVtYmVyW107XG5cbiAgICAgIGlmIChyZWZlcmVuY2VkSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8g7KSR67O1IOygnOqxsFxuICAgICAgY29uc3QgdW5pcXVlSWRzID0gWy4uLm5ldyBTZXQocmVmZXJlbmNlZElkcyldO1xuXG4gICAgICAvLyDssLjsobAg642w7J207YSwIOyhsO2ajFxuICAgICAgY29uc3QgcmVmZXJlbmNlZFJlY29yZHMgPSBhd2FpdCB0aGlzLmV4cGxvcmUodGFyZ2V0RW50aXR5TmFtZSwge1xuICAgICAgICBzdHJhdGVneTogXCJpZHNcIixcbiAgICAgICAgaWRzOiB1bmlxdWVJZHMsXG4gICAgICB9KTtcblxuICAgICAgLy8g6rKw6rO87JeQIOy2lOqwgFxuICAgICAgcmVsYXRlZE1hcC5zZXQodGFyZ2V0RW50aXR5TmFtZSwgcmVmZXJlbmNlZFJlY29yZHMpO1xuICAgICAgdmlzaXRlZC5hZGQodGFyZ2V0RW50aXR5TmFtZSk7XG5cbiAgICAgIC8vIOyerOq3gDog7LC47KGw65CcIOuNsOydtO2EsOydmCDqtIDroKgg642w7J207YSw64+EIOyImOynkVxuICAgICAgYXdhaXQgdGhpcy5jb2xsZWN0UmVsYXRlZERhdGEoXG4gICAgICAgIHRhcmdldEVudGl0eU5hbWUsXG4gICAgICAgIHJlZmVyZW5jZWRSZWNvcmRzLFxuICAgICAgICByZWxhdGVkTWFwLFxuICAgICAgICB2aXNpdGVkLFxuICAgICAgICByZW1haW5pbmdEZXB0aCAtIDEsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIDIuIEJhY2t3YXJkIHJlZmVyZW5jZXM6IOydtCBlbnRpdHnrpbwg7LC47KGw7ZWY64qUIOuLpOuluCBlbnRpdHlcbiAgICAvLyDrqqjrk6AgZW50aXR566W8IOyInO2ajO2VmOupsCDtmITsnqwgZW50aXR566W8IOywuOyhsO2VmOuKlCByZWxhdGlvbiDssL7quLBcbiAgICBjb25zdCBhbGxFbnRpdGllcyA9IHRoaXMuZW50aXR5TWFuYWdlci5nZXRBbGxFbnRpdGllcygpO1xuXG4gICAgZm9yIChjb25zdCBvdGhlckVudGl0eSBvZiBhbGxFbnRpdGllcykge1xuICAgICAgY29uc3Qgb3RoZXJFbnRpdHlOYW1lID0gb3RoZXJFbnRpdHkuaWQ7XG5cbiAgICAgIC8vIOydtOuvuCDsobDtmoztlojqsbDrgpgg7J6Q6riwIOyekOyLoOydtOuptCDsiqTtgrVcbiAgICAgIGlmICh2aXNpdGVkLmhhcyhvdGhlckVudGl0eU5hbWUpIHx8IG90aGVyRW50aXR5TmFtZSA9PT0gZW50aXR5TmFtZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8g7ZiE7J6sIGVudGl0eeulvCDssLjsobDtlZjripQgcmVsYXRpb24gcHJvcCDssL7quLBcbiAgICAgIGNvbnN0IGJhY2t3YXJkUmVsYXRpb25zID0gb3RoZXJFbnRpdHkucHJvcHMuZmlsdGVyKFxuICAgICAgICAocHJvcCkgPT5cbiAgICAgICAgICBpc1JlbGF0aW9uUHJvcChwcm9wKSAmJlxuICAgICAgICAgIHByb3Aud2l0aCA9PT0gZW50aXR5TmFtZSAmJlxuICAgICAgICAgIChpc0JlbG9uZ3NUb09uZVJlbGF0aW9uUHJvcChwcm9wKSB8fFxuICAgICAgICAgICAgKGlzT25lVG9PbmVSZWxhdGlvblByb3AocHJvcCkgJiYgcHJvcC5oYXNKb2luQ29sdW1uKSksXG4gICAgICApO1xuXG4gICAgICBmb3IgKGNvbnN0IHByb3Agb2YgYmFja3dhcmRSZWxhdGlvbnMpIHtcbiAgICAgICAgaWYgKCFpc1JlbGF0aW9uUHJvcChwcm9wKSkgY29udGludWU7XG5cbiAgICAgICAgLy8gb3RoZXJFbnRpdHnqsIAg7ZiE7J6sIGVudGl0eeulvCDssLjsobDtlZjripQgRksg7Lus65+8XG4gICAgICAgIGNvbnN0IGZvcmVpZ25LZXlOYW1lID0gYCR7cHJvcC5uYW1lfV9pZGA7XG5cbiAgICAgICAgLy8g7ZiE7J6sIOugiOy9lOuTnOuTpOydhCDssLjsobDtlZjripQgb3RoZXJFbnRpdHkg66CI7L2U65OcIOyhsO2ajFxuICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGIob3RoZXJFbnRpdHkudGFibGUpLndoZXJlSW4oZm9yZWlnbktleU5hbWUsIHJlY29yZElkcyk7XG4gICAgICAgIGNvbnN0IGJhY2t3YXJkUmVjb3JkcyA9IGF3YWl0IHF1ZXJ5O1xuXG4gICAgICAgIGlmIChiYWNrd2FyZFJlY29yZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyDqsrDqs7zsl5Ag7LaU6rCAXG4gICAgICAgIHJlbGF0ZWRNYXAuc2V0KG90aGVyRW50aXR5TmFtZSwgYmFja3dhcmRSZWNvcmRzKTtcbiAgICAgICAgdmlzaXRlZC5hZGQob3RoZXJFbnRpdHlOYW1lKTtcblxuICAgICAgICAvLyDsnqzqt4A6IOyXreywuOyhsCDrjbDsnbTthLDsnZgg6rSA66CoIOuNsOydtO2EsOuPhCDsiJjsp5FcbiAgICAgICAgYXdhaXQgdGhpcy5jb2xsZWN0UmVsYXRlZERhdGEoXG4gICAgICAgICAgb3RoZXJFbnRpdHlOYW1lLFxuICAgICAgICAgIGJhY2t3YXJkUmVjb3JkcyxcbiAgICAgICAgICByZWxhdGVkTWFwLFxuICAgICAgICAgIHZpc2l0ZWQsXG4gICAgICAgICAgcmVtYWluaW5nRGVwdGggLSAxLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7YUFLb0c7Q0FzQ3ZGLGVBQWIsTUFBMEI7RUFDeEIsQUFBUTtFQUVSLFlBQ0UsQUFBUUEsSUFDUixBQUFRQyxlQUNSLGNBQ0E7R0FIUTtHQUNBO0FBR1IsUUFBSyxRQUFROztFQUdmLE1BQU0sUUFDSixZQUNBLFNBQ29DO0dBQ3BDLE1BQU0sU0FBUyxLQUFLLGNBQWMsSUFBSSxXQUFXO0FBQ2pELE9BQUksQ0FBQyxRQUFRO0FBQ1gsVUFBTSxJQUFJLE1BQU0scUJBQXFCLGFBQWE7O0FBSXBELE9BQUksUUFBUSxZQUFZLEtBQUssT0FBTztJQUNsQyxNQUFNLFdBQVcsS0FBSyxpQkFBaUIsWUFBWSxRQUFRO0FBQzNELFdBQU8sS0FBSyxNQUFNLFNBQVM7S0FDekIsS0FBSztLQUNMLEtBQUssUUFBUSxZQUFZO0tBQ3pCLGVBQWUsS0FBSyxnQkFBZ0IsUUFBUSxRQUFRO0tBQ3JELENBQUM7O0FBR0osVUFBTyxLQUFLLGdCQUFnQixRQUFRLFFBQVE7O0VBRzlDLE1BQWMsZ0JBQ1osUUFDQSxTQUNvQztHQUNwQyxNQUFNLFFBQVEsS0FBSyxHQUFHLE9BQU8sTUFBTTtBQUVuQyxXQUFRLFFBQVEsVUFBaEI7SUFDRSxLQUFLLFNBQ0gsUUFBTyxNQUFNLEtBQUssV0FBVyxPQUFPLFFBQVEsU0FBUyxHQUFHO0lBRTFELEtBQUssVUFBVTtLQUNiLE1BQU0sZUFBZSxLQUFLLG9CQUFvQixRQUFRLGFBQWE7QUFDbkUsU0FBSSxjQUFjO0FBQ2hCLFlBQU0sUUFBUSxjQUFjLE9BQU87O0FBRXJDLFlBQU8sTUFBTSxNQUFN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
|
|
248
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1leHBsb3Jlci5qcyIsIm5hbWVzIjpbImRiOiBLbmV4IiwiZW50aXR5TWFuYWdlcjogdHlwZW9mIEVudGl0eU1hbmFnZXIiLCJyZXN1bHQ6IEV4cGxvcmVXaXRoUmVsYXRpb25zUmVzdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RpbmcvZGF0YS1leHBsb3Jlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEtuZXggfSBmcm9tIFwia25leFwiO1xuXG5pbXBvcnQgeyB0eXBlIENhY2hlTWFuYWdlciB9IGZyb20gXCIuLi9jYWNoZS90eXBlc1wiO1xuaW1wb3J0IHsgdHlwZSBFbnRpdHkgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eVwiO1xuaW1wb3J0IHsgdHlwZSBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgaXNCZWxvbmdzVG9PbmVSZWxhdGlvblByb3AsIGlzT25lVG9PbmVSZWxhdGlvblByb3AsIGlzUmVsYXRpb25Qcm9wIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBub25OdWxsYWJsZSB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBEYXRhRXhwbG9yZXJTdHJhdGVneSA9IFwic2FtcGxlXCIgfCBcImlkc1wiIHwgXCJxdWVyeVwiIHwgXCJmaWxlXCIgfCBcInJlY2VudFwiIHwgXCJyYW5kb21cIjtcblxuLyoqIFdIRVJFIOyhsOqxtCDtg4DsnoUgKOqwneyytCDrmJDripQgS25leCBRdWVyeUJ1aWxkZXIg7ZWo7IiYKSAqL1xuZXhwb3J0IHR5cGUgV2hlcmVDb25kaXRpb24gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8ICgocXVlcnlCdWlsZGVyOiBLbmV4LlF1ZXJ5QnVpbGRlcikgPT4gdm9pZCk7XG5cbmV4cG9ydCB0eXBlIERhdGFFeHBsb3Jlck9wdGlvbnMgPSB7XG4gIHN0cmF0ZWd5OiBEYXRhRXhwbG9yZXJTdHJhdGVneTtcbiAgbGltaXQ/OiBudW1iZXI7XG4gIHdoZXJlPzogV2hlcmVDb25kaXRpb247XG4gIG9yZGVyQnk/OiBzdHJpbmc7XG4gIGlkcz86IG51bWJlcltdO1xuICBmaWxlUGF0aD86IHN0cmluZztcbiAgLyoqIOy6kOyLsSDsgqzsmqkg7Jes67aAICjquLDrs7jqsJI6IGZhbHNlKSAqL1xuICB1c2VDYWNoZT86IGJvb2xlYW47XG4gIC8qKiDsupDsi5wgVFRMICjstIgg64uo7JyELCDquLDrs7jqsJI6IDMwMCkgKi9cbiAgY2FjaGVUdGw/OiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBFeHBsb3JlV2l0aFJlbGF0aW9uc09wdGlvbnMgPSBEYXRhRXhwbG9yZXJPcHRpb25zICYge1xuICAvKiog6rSA66CoIOuNsOydtO2EsCDtj6ztlagg7Jes67aAICjquLDrs7jqsJI6IHRydWUpICovXG4gIGluY2x1ZGVSZWxhdGlvbnM/OiBib29sZWFuO1xuICAvKiog7J6s6reAIO2DkOyDiSDstZzrjIAg6rmK7J20ICjquLDrs7jqsJI6IDIpICovXG4gIG1heERlcHRoPzogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgRXhwbG9yZVdpdGhSZWxhdGlvbnNSZXN1bHQgPSB7XG4gIC8qKiDrqZTsnbggZW50aXR5IOuNsOydtO2EsCAqL1xuICBtYWluOiB7XG4gICAgZW50aXR5SWQ6IHN0cmluZztcbiAgICByZWNvcmRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdO1xuICB9O1xuICAvKiog6rSA66CoIGVudGl0eSDrjbDsnbTthLAgKGVudGl0eUlkIC0+IHJlY29yZHMpICovXG4gIHJlbGF0ZWQ6IE1hcDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+O1xufTtcblxuLy8g6riw7KG0IERCIOuNsOydtO2EsOulvCDtg5Dsg4ntlZjsl6wgZml4dHVyZSDsg53shLEg7IucIOywuOyhsO2VoCDsiJgg7J6I64qUIOyLnOyKpO2FnFxuZXhwb3J0IGNsYXNzIERhdGFFeHBsb3JlciB7XG4gIHByaXZhdGUgY2FjaGU/OiBDYWNoZU1hbmFnZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYjogS25leCxcbiAgICBwcml2YXRlIGVudGl0eU1hbmFnZXI6IHR5cGVvZiBFbnRpdHlNYW5hZ2VyLFxuICAgIGNhY2hlTWFuYWdlcj86IENhY2hlTWFuYWdlcixcbiAgKSB7XG4gICAgdGhpcy5jYWNoZSA9IGNhY2hlTWFuYWdlcjtcbiAgfVxuXG4gIGFzeW5jIGV4cGxvcmUoXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIG9wdGlvbnM6IERhdGFFeHBsb3Jlck9wdGlvbnMsXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj5bXT4ge1xuICAgIGNvbnN0IGVudGl0eSA9IHRoaXMuZW50aXR5TWFuYWdlci5nZXQoZW50aXR5TmFtZSk7XG4gICAgaWYgKCFlbnRpdHkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRW50aXR5IG5vdCBmb3VuZDogJHtlbnRpdHlOYW1lfWApO1xuICAgIH1cblxuICAgIC8vIOy6kOyLsSDsp4Dsm5BcbiAgICBpZiAob3B0aW9ucy51c2VDYWNoZSAmJiB0aGlzLmNhY2hlKSB7XG4gICAgICBjb25zdCBjYWNoZUtleSA9IHRoaXMuZ2VuZXJhdGVDYWNoZUtleShlbnRpdHlOYW1lLCBvcHRpb25zKTtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlLmdldE9yU2V0KHtcbiAgICAgICAga2V5OiBjYWNoZUtleSxcbiAgICAgICAgdHRsOiBvcHRpb25zLmNhY2hlVHRsIHx8IDMwMCxcbiAgICAgICAgZmFjdG9yeTogKCkgPT4gdGhpcy5leHBsb3JlSW50ZXJuYWwoZW50aXR5LCBvcHRpb25zKSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV4cGxvcmVJbnRlcm5hbChlbnRpdHksIG9wdGlvbnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBleHBsb3JlSW50ZXJuYWwoXG4gICAgZW50aXR5OiBFbnRpdHksXG4gICAgb3B0aW9uczogRGF0YUV4cGxvcmVyT3B0aW9ucyxcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPiB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRiKGVudGl0eS50YWJsZSk7XG5cbiAgICBzd2l0Y2ggKG9wdGlvbnMuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgXCJzYW1wbGVcIjpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2FtcGxlRGF0YShxdWVyeSwgb3B0aW9ucy5saW1pdCB8fCAxMCk7XG5cbiAgICAgIGNhc2UgXCJyZWNlbnRcIjoge1xuICAgICAgICBjb25zdCBjcmVhdGVkQXRDb2wgPSB0aGlzLmZpbmRUaW1lc3RhbXBDb2x1bW4oZW50aXR5LCBcImNyZWF0ZWRfYXRcIik7XG4gICAgICAgIGlmIChjcmVhdGVkQXRDb2wpIHtcbiAgICAgICAgICBxdWVyeS5vcmRlckJ5KGNyZWF0ZWRBdENvbCwgXCJkZXNjXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCBxdWVyeS5saW1pdChvcHRpb25zLmxpbWl0IHx8IDEwKTtcbiAgICAgIH1cblxuICAgICAgY2FzZSBcInJhbmRvbVwiOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5yYW5kb21TYW1wbGUocXVlcnksIG9wdGlvbnMubGltaXQgfHwgMTApO1xuXG4gICAgICBjYXNlIFwiaWRzXCI6XG4gICAgICAgIGlmIChvcHRpb25zLmlkcyAmJiBvcHRpb25zLmlkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcXVlcnkud2hlcmVJbihcImlkXCIsIG9wdGlvbnMuaWRzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXdhaXQgcXVlcnk7XG5cbiAgICAgIGNhc2UgXCJxdWVyeVwiOlxuICAgICAgICBpZiAob3B0aW9ucy53aGVyZSkge1xuICAgICAgICAgIHF1ZXJ5LndoZXJlKG9wdGlvbnMud2hlcmUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHRpb25zLm9yZGVyQnkpIHtcbiAgICAgICAgICBjb25zdCBbY29sLCBkaXIgPSBcImFzY1wiXSA9IG9wdGlvbnMub3JkZXJCeS5zcGxpdChcIjpcIik7XG4gICAgICAgICAgLy8gaWQg7Lus65+87J2AIOyIq+yekOuhnCDsupDsiqTtjIXtlZjsl6wg7KCV66Cs7ZWp64uI64ukICjrrLjsnpDsl7Qg7KCV66CsIOuwqeyngClcbiAgICAgICAgICBpZiAoY29sID09PSBcImlkXCIpIHtcbiAgICAgICAgICAgIHF1ZXJ5Lm9yZGVyQnlSYXcoYENBU1QoPz8gQVMgSU5URUdFUikgJHtkaXJ9YCwgW2NvbF0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeS5vcmRlckJ5KGNvbCwgZGlyIGFzIFwiYXNjXCIgfCBcImRlc2NcIik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhd2FpdCBxdWVyeS5saW1pdChvcHRpb25zLmxpbWl0IHx8IDEwKTtcblxuICAgICAgY2FzZSBcImZpbGVcIjpcbiAgICAgICAgaWYgKCFvcHRpb25zLmZpbGVQYXRoKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZmlsZVBhdGggaXMgcmVxdWlyZWQgZm9yIGZpbGUgc3RyYXRlZ3lcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZEZyb21GaWxlKG9wdGlvbnMuZmlsZVBhdGgpO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gc3RyYXRlZ3k6ICR7b3B0aW9ucy5zdHJhdGVneX1gKTtcbiAgICB9XG4gIH1cblxuICAvLyDqt6Drk7Eg7IOY7ZSM66eBIChQb3N0Z3JlU1FMIFJPV19OVU1CRVIg7IKs7JqpKVxuICBwcml2YXRlIGFzeW5jIHNhbXBsZURhdGEoXG4gICAgcXVlcnk6IEtuZXguUXVlcnlCdWlsZGVyLFxuICAgIGxpbWl0OiBudW1iZXIsXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj5bXT4ge1xuICAgIGNvbnN0IFt7IGNvdW50IH1dID0gYXdhaXQgcXVlcnkuY2xvbmUoKS5jb3VudChcIiogYXMgY291bnRcIik7XG4gICAgY29uc3QgdG90YWwgPSBOdW1iZXIoY291bnQpO1xuXG4gICAgaWYgKHRvdGFsIDw9IGxpbWl0KSB7XG4gICAgICByZXR1cm4gYXdhaXQgcXVlcnkubGltaXQobGltaXQpO1xuICAgIH1cblxuICAgIC8vIOq3oOuTsSDqsITqsqkg6rOE7IKwXG4gICAgY29uc3QgaW50ZXJ2YWwgPSBNYXRoLmZsb29yKHRvdGFsIC8gbGltaXQpO1xuXG4gICAgLy8g7YWM7J2067iU66qFIOy2lOy2nFxuICAgIGNvbnN0IHRhYmxlTmFtZSA9IHF1ZXJ5LnRvU3RyaW5nKCkubWF0Y2goL2Zyb21cXHMrXCI/KFxcdyspXCI/L2kpPy5bMV07XG4gICAgaWYgKCF0YWJsZU5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkIG5vdCBleHRyYWN0IHRhYmxlIG5hbWUgZnJvbSBxdWVyeVwiKTtcbiAgICB9XG5cbiAgICAvLyBST1dfTlVNQkVSKCnroZwg7ZWcIOuyiOyXkCDqt6Drk7Eg7IOY7ZSM66eBICjri6jsnbwg7L+866asKVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZGIucmF3KFxuICAgICAgYFxuICAgICAgV0lUSCBudW1iZXJlZF9yb3dzIEFTIChcbiAgICAgICAgU0VMRUNUICosIFJPV19OVU1CRVIoKSBPVkVSIChPUkRFUiBCWSBpZCkgYXMgcm5cbiAgICAgICAgRlJPTSA/P1xuICAgICAgKVxuICAgICAgU0VMRUNUICogRlJPTSBudW1iZXJlZF9yb3dzXG4gICAgICBXSEVSRSBNT0Qocm4gLSAxLCA/KSA9IDBcbiAgICAgIExJTUlUID9cbiAgICBgLFxuICAgICAgW3RhYmxlTmFtZSwgaW50ZXJ2YWwsIGxpbWl0XSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHJlc3VsdC5yb3dzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByYW5kb21TYW1wbGUoXG4gICAgcXVlcnk6IEtuZXguUXVlcnlCdWlsZGVyLFxuICAgIGxpbWl0OiBudW1iZXIsXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj5bXT4ge1xuICAgIHJldHVybiBhd2FpdCBxdWVyeS5vcmRlckJ5UmF3KFwiUkFORE9NKClcIikubGltaXQobGltaXQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kVGltZXN0YW1wQ29sdW1uKGVudGl0eTogRW50aXR5LCBjb2x1bW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBwcm9wID0gZW50aXR5LnByb3BzLmZpbmQoKHApID0+IHAubmFtZSA9PT0gY29sdW1uTmFtZSk7XG4gICAgcmV0dXJuIHByb3A/Lm5hbWUgfHwgbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZEZyb21GaWxlKGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+W10+IHtcbiAgICBjb25zdCBmcyA9IGF3YWl0IGltcG9ydChcImZzL3Byb21pc2VzXCIpO1xuICAgIGNvbnN0IGNvbnRlbnQgPSBhd2FpdCBmcy5yZWFkRmlsZShmaWxlUGF0aCwgXCJ1dGYtOFwiKTtcblxuICAgIGlmIChmaWxlUGF0aC5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKGNvbnRlbnQpO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHBhcnNlZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSlNPTiBmaWxlIG11c3QgY29udGFpbiBhbiBhcnJheVwiKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJzZWQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXTtcbiAgICB9IGVsc2UgaWYgKGZpbGVQYXRoLmVuZHNXaXRoKFwiLmNzdlwiKSkge1xuICAgICAgY29uc3QgbGluZXMgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpLmZpbHRlcigobGluZSkgPT4gbGluZS50cmltKCkpO1xuICAgICAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdO1xuXG4gICAgICBjb25zdCBoZWFkZXJzID0gbGluZXNbMF0uc3BsaXQoXCIsXCIpLm1hcCgoaCkgPT4gaC50cmltKCkpO1xuICAgICAgcmV0dXJuIGxpbmVzLnNsaWNlKDEpLm1hcCgobGluZSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSBsaW5lLnNwbGl0KFwiLFwiKTtcbiAgICAgICAgcmV0dXJuIGhlYWRlcnMucmVkdWNlKFxuICAgICAgICAgIChvYmo6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBoZWFkZXI6IHN0cmluZywgaTogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBvYmpbaGVhZGVyXSA9IHZhbHVlc1tpXT8udHJpbSgpO1xuICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBmaWxlIGZvcm1hdDogJHtmaWxlUGF0aH1gKTtcbiAgfVxuXG4gIGFzeW5jIGV4cGxvcmVSZWxhdGlvbihcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAgcmVsYXRpb25Qcm9wOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFBhcnRpYWw8RGF0YUV4cGxvcmVyT3B0aW9ucz4sXG4gICk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj5bXT4ge1xuICAgIGNvbnN0IGVudGl0eSA9IHRoaXMuZW50aXR5TWFuYWdlci5nZXQoZW50aXR5TmFtZSk7XG4gICAgY29uc3QgcHJvcCA9IGVudGl0eS5wcm9wcy5maW5kKChwKSA9PiBwLm5hbWUgPT09IHJlbGF0aW9uUHJvcCk7XG5cbiAgICBpZiAoIXByb3AgfHwgIWlzUmVsYXRpb25Qcm9wKHByb3ApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlbGF0aW9uIHByb3BlcnR5IG5vdCBmb3VuZDogJHtlbnRpdHlOYW1lfS4ke3JlbGF0aW9uUHJvcH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRhU291cmNlID0gcHJvcC5jb25lPy5kYXRhU291cmNlO1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gZGF0YVNvdXJjZT8uc3RyYXRlZ3kgfHwgb3B0aW9ucz8uc3RyYXRlZ3kgfHwgXCJzYW1wbGVcIjtcbiAgICBjb25zdCBjb25maWcgPVxuICAgICAgZGF0YVNvdXJjZT8uY29uZmlnICYmIHR5cGVvZiBkYXRhU291cmNlLmNvbmZpZyA9PT0gXCJvYmplY3RcIlxuICAgICAgICA/IChkYXRhU291cmNlLmNvbmZpZyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilcbiAgICAgICAgOiB7fTtcblxuICAgIHJldHVybiB0aGlzLmV4cGxvcmUocHJvcC53aXRoLCB7XG4gICAgICBzdHJhdGVneSxcbiAgICAgIGxpbWl0OiBvcHRpb25zPy5saW1pdCB8fCAodHlwZW9mIGNvbmZpZy5saW1pdCA9PT0gXCJudW1iZXJcIiA/IGNvbmZpZy5saW1pdCA6IDEwKSxcbiAgICAgIC4uLih0eXBlb2YgY29uZmlnID09PSBcIm9iamVjdFwiID8gY29uZmlnIDoge30pLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDsl6zrn6wgcmVsYXRpb27snYQg67OR66Cs66GcIOyhsO2ajO2VqeuLiOuLpCAoTisxIOusuOygnCDtlbTqsrApXG4gICAqL1xuICBhc3luYyBleHBsb3JlUmVsYXRpb25zKFxuICAgIGVudGl0eU5hbWU6IHN0cmluZyxcbiAgICByZWxhdGlvblByb3BzOiBzdHJpbmdbXSxcbiAgICBvcHRpb25zPzogUGFydGlhbDxEYXRhRXhwbG9yZXJPcHRpb25zPixcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPj4ge1xuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHJlbGF0aW9uUHJvcHMubWFwKGFzeW5jIChwcm9wKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmV4cGxvcmVSZWxhdGlvbihlbnRpdHlOYW1lLCBwcm9wLCBvcHRpb25zKTtcbiAgICAgICAgcmV0dXJuIFtwcm9wLCBkYXRhXSBhcyBjb25zdDtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHJlc3VsdHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhY2hlS2V5KGVudGl0eU5hbWU6IHN0cmluZywgb3B0aW9uczogRGF0YUV4cGxvcmVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBbXG4gICAgICBgRGF0YUV4cGxvcmVyOiR7ZW50aXR5TmFtZX1gLFxuICAgICAgb3B0aW9ucy5zdHJhdGVneSxcbiAgICAgIG9wdGlvbnMubGltaXQ/LnRvU3RyaW5nKCkgfHwgXCJkZWZhdWx0XCIsXG4gICAgXTtcblxuICAgIGlmIChvcHRpb25zLndoZXJlKSB7XG4gICAgICBwYXJ0cy5wdXNoKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMud2hlcmUpKTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMub3JkZXJCeSkge1xuICAgICAgcGFydHMucHVzaChvcHRpb25zLm9yZGVyQnkpO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5pZHMpIHtcbiAgICAgIHBhcnRzLnB1c2gob3B0aW9ucy5pZHMuam9pbihcIixcIikpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJ0cy5qb2luKFwiOlwiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnRpdHnsmYAg6rSA66Co65CcIOuNsOydtO2EsOulvCDsnqzqt4DsoIHsnLzroZwg7YOQ7IOJ7ZWp64uI64ukLlxuICAgKiBCZWxvbmdzVG9PbmUsIE9uZVRvT25lKGhhc0pvaW5Db2x1bW4pIHJlbGF0aW9u7J2EIOuUsOudvOqwgOupsCDssLjsobAg642w7J207YSw66W8IOyImOynke2VqeuLiOuLpC5cbiAgICovXG4gIGFzeW5jIGV4cGxvcmVXaXRoUmVsYXRpb25zKFxuICAgIGVudGl0eU5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zOiBFeHBsb3JlV2l0aFJlbGF0aW9uc09wdGlvbnMsXG4gICk6IFByb21pc2U8RXhwbG9yZVdpdGhSZWxhdGlvbnNSZXN1bHQ+IHtcbiAgICBjb25zdCBpbmNsdWRlUmVsYXRpb25zID0gb3B0aW9ucy5pbmNsdWRlUmVsYXRpb25zID8/IHRydWU7XG4gICAgY29uc3QgbWF4RGVwdGggPSBvcHRpb25zLm1heERlcHRoID8/IDI7XG5cbiAgICAvLyDrqZTsnbggZW50aXR5IOyhsO2ajFxuICAgIGNvbnN0IG1haW5SZWNvcmRzID0gYXdhaXQgdGhpcy5leHBsb3JlKGVudGl0eU5hbWUsIG9wdGlvbnMpO1xuXG4gICAgY29uc3QgcmVzdWx0OiBFeHBsb3JlV2l0aFJlbGF0aW9uc1Jlc3VsdCA9IHtcbiAgICAgIG1haW46IHtcbiAgICAgICAgZW50aXR5SWQ6IGVudGl0eU5hbWUsXG4gICAgICAgIHJlY29yZHM6IG1haW5SZWNvcmRzLFxuICAgICAgfSxcbiAgICAgIHJlbGF0ZWQ6IG5ldyBNYXAoKSxcbiAgICB9O1xuXG4gICAgLy8g6rSA66CoIOuNsOydtO2EsCDsiJjsp5HtlZjsp4Ag7JWK7Jy866m0IOuwlOuhnCDrpqzthLRcbiAgICBpZiAoIWluY2x1ZGVSZWxhdGlvbnMgfHwgbWF4RGVwdGggPD0gMCkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICAvLyDsnbTrr7gg7KGw7ZqM7ZWcIGVudGl0eSDstpTsoIEgKOykkeuztSDrsKnsp4ApXG4gICAgY29uc3QgdmlzaXRlZCA9IG5ldyBTZXQ8c3RyaW5nPihbZW50aXR5TmFtZV0pO1xuXG4gICAgLy8g7J6s6reA7KCB7Jy866GcIOq0gOugqCDrjbDsnbTthLAg7IiY7KeRXG4gICAgYXdhaXQgdGhpcy5jb2xsZWN0UmVsYXRlZERhdGEoZW50aXR5TmFtZSwgbWFpblJlY29yZHMsIHJlc3VsdC5yZWxhdGVkLCB2aXNpdGVkLCBtYXhEZXB0aCk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIOq0gOugqCDrjbDsnbTthLDrpbwg7J6s6reA7KCB7Jy866GcIOyImOynke2VqeuLiOuLpCAocHJpdmF0ZSBoZWxwZXIpXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNvbGxlY3RSZWxhdGVkRGF0YShcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAgcmVjb3JkczogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXSxcbiAgICByZWxhdGVkTWFwOiBNYXA8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdPixcbiAgICB2aXNpdGVkOiBTZXQ8c3RyaW5nPixcbiAgICByZW1haW5pbmdEZXB0aDogbnVtYmVyLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAocmVtYWluaW5nRGVwdGggPD0gMCB8fCByZWNvcmRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGVudGl0eSA9IHRoaXMuZW50aXR5TWFuYWdlci5nZXQoZW50aXR5TmFtZSk7XG4gICAgY29uc3QgcmVjb3JkSWRzID0gcmVjb3Jkcy5tYXAoKHIpID0+IHIuaWQpLmZpbHRlcihub25OdWxsYWJsZSk7XG5cbiAgICAvLyAxLiBGb3J3YXJkIHJlZmVyZW5jZXM6IOydtCBlbnRpdHnqsIAg7LC47KGw7ZWY64qUIOuLpOuluCBlbnRpdHlcbiAgICBjb25zdCBmb3J3YXJkUmVsYXRpb25Qcm9wcyA9IGVudGl0eS5wcm9wcy5maWx0ZXIoXG4gICAgICAocHJvcCkgPT5cbiAgICAgICAgaXNSZWxhdGlvblByb3AocHJvcCkgJiZcbiAgICAgICAgKGlzQmVsb25nc1RvT25lUmVsYXRpb25Qcm9wKHByb3ApIHx8IChpc09uZVRvT25lUmVsYXRpb25Qcm9wKHByb3ApICYmIHByb3AuaGFzSm9pbkNvbHVtbikpLFxuICAgICk7XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgZm9yd2FyZFJlbGF0aW9uUHJvcHMpIHtcbiAgICAgIGlmICghaXNSZWxhdGlvblByb3AocHJvcCkpIGNvbnRpbnVlO1xuXG4gICAgICBjb25zdCB0YXJnZXRFbnRpdHlOYW1lID0gcHJvcC53aXRoO1xuXG4gICAgICAvLyDsnbTrr7gg7KGw7ZqM7ZWcIGVudGl0eeuKlCDsiqTtgrUgKOyInO2ZmCDssLjsobAg67Cp7KeAKVxuICAgICAgaWYgKHZpc2l0ZWQuaGFzKHRhcmdldEVudGl0eU5hbWUpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyDssLjsobDtlZjripQgSUTrk6Qg7IiY7KeRXG4gICAgICBjb25zdCBmb3JlaWduS2V5TmFtZSA9IGAke3Byb3AubmFtZX1faWRgO1xuICAgICAgY29uc3QgcmVmZXJlbmNlZElkcyA9IHJlY29yZHNcbiAgICAgICAgLm1hcCgocmVjb3JkKSA9PiByZWNvcmRbZm9yZWlnbktleU5hbWVdKVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIG51bWJlcltdO1xuXG4gICAgICBpZiAocmVmZXJlbmNlZElkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIOykkeuztSDsoJzqsbBcbiAgICAgIGNvbnN0IHVuaXF1ZUlkcyA9IFsuLi5uZXcgU2V0KHJlZmVyZW5jZWRJZHMpXTtcblxuICAgICAgLy8g7LC47KGwIOuNsOydtO2EsCDsobDtmoxcbiAgICAgIGNvbnN0IHJlZmVyZW5jZWRSZWNvcmRzID0gYXdhaXQgdGhpcy5leHBsb3JlKHRhcmdldEVudGl0eU5hbWUsIHtcbiAgICAgICAgc3RyYXRlZ3k6IFwiaWRzXCIsXG4gICAgICAgIGlkczogdW5pcXVlSWRzLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIOqysOqzvOyXkCDstpTqsIBcbiAgICAgIHJlbGF0ZWRNYXAuc2V0KHRhcmdldEVudGl0eU5hbWUsIHJlZmVyZW5jZWRSZWNvcmRzKTtcbiAgICAgIHZpc2l0ZWQuYWRkKHRhcmdldEVudGl0eU5hbWUpO1xuXG4gICAgICAvLyDsnqzqt4A6IOywuOyhsOuQnCDrjbDsnbTthLDsnZgg6rSA66CoIOuNsOydtO2EsOuPhCDsiJjsp5FcbiAgICAgIGF3YWl0IHRoaXMuY29sbGVjdFJlbGF0ZWREYXRhKFxuICAgICAgICB0YXJnZXRFbnRpdHlOYW1lLFxuICAgICAgICByZWZlcmVuY2VkUmVjb3JkcyxcbiAgICAgICAgcmVsYXRlZE1hcCxcbiAgICAgICAgdmlzaXRlZCxcbiAgICAgICAgcmVtYWluaW5nRGVwdGggLSAxLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyAyLiBCYWNrd2FyZCByZWZlcmVuY2VzOiDsnbQgZW50aXR566W8IOywuOyhsO2VmOuKlCDri6TrpbggZW50aXR5XG4gICAgLy8g66qo65OgIGVudGl0eeulvCDsiJztmoztlZjrqbAg7ZiE7J6sIGVudGl0eeulvCDssLjsobDtlZjripQgcmVsYXRpb24g7LC+6riwXG4gICAgY29uc3QgYWxsRW50aXRpZXMgPSB0aGlzLmVudGl0eU1hbmFnZXIuZ2V0QWxsRW50aXRpZXMoKTtcblxuICAgIGZvciAoY29uc3Qgb3RoZXJFbnRpdHkgb2YgYWxsRW50aXRpZXMpIHtcbiAgICAgIGNvbnN0IG90aGVyRW50aXR5TmFtZSA9IG90aGVyRW50aXR5LmlkO1xuXG4gICAgICAvLyDsnbTrr7gg7KGw7ZqM7ZaI6rGw64KYIOyekOq4sCDsnpDsi6DsnbTrqbQg7Iqk7YK1XG4gICAgICBpZiAodmlzaXRlZC5oYXMob3RoZXJFbnRpdHlOYW1lKSB8fCBvdGhlckVudGl0eU5hbWUgPT09IGVudGl0eU5hbWUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIO2YhOyerCBlbnRpdHnrpbwg7LC47KGw7ZWY64qUIHJlbGF0aW9uIHByb3Ag7LC+6riwXG4gICAgICBjb25zdCBiYWNrd2FyZFJlbGF0aW9ucyA9IG90aGVyRW50aXR5LnByb3BzLmZpbHRlcihcbiAgICAgICAgKHByb3ApID0+XG4gICAgICAgICAgaXNSZWxhdGlvblByb3AocHJvcCkgJiZcbiAgICAgICAgICBwcm9wLndpdGggPT09IGVudGl0eU5hbWUgJiZcbiAgICAgICAgICAoaXNCZWxvbmdzVG9PbmVSZWxhdGlvblByb3AocHJvcCkgfHxcbiAgICAgICAgICAgIChpc09uZVRvT25lUmVsYXRpb25Qcm9wKHByb3ApICYmIHByb3AuaGFzSm9pbkNvbHVtbikpLFxuICAgICAgKTtcblxuICAgICAgZm9yIChjb25zdCBwcm9wIG9mIGJhY2t3YXJkUmVsYXRpb25zKSB7XG4gICAgICAgIGlmICghaXNSZWxhdGlvblByb3AocHJvcCkpIGNvbnRpbnVlO1xuXG4gICAgICAgIC8vIG90aGVyRW50aXR56rCAIO2YhOyerCBlbnRpdHnrpbwg7LC47KGw7ZWY64qUIEZLIOy7rOufvFxuICAgICAgICBjb25zdCBmb3JlaWduS2V5TmFtZSA9IGAke3Byb3AubmFtZX1faWRgO1xuXG4gICAgICAgIC8vIO2YhOyerCDroIjsvZTrk5zrk6TsnYQg7LC47KGw7ZWY64qUIG90aGVyRW50aXR5IOugiOy9lOuTnCDsobDtmoxcbiAgICAgICAgY29uc3QgcXVlcnkgPSB0aGlzLmRiKG90aGVyRW50aXR5LnRhYmxlKS53aGVyZUluKGZvcmVpZ25LZXlOYW1lLCByZWNvcmRJZHMpO1xuICAgICAgICBjb25zdCBiYWNrd2FyZFJlY29yZHMgPSBhd2FpdCBxdWVyeTtcblxuICAgICAgICBpZiAoYmFja3dhcmRSZWNvcmRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g6rKw6rO87JeQIOy2lOqwgFxuICAgICAgICByZWxhdGVkTWFwLnNldChvdGhlckVudGl0eU5hbWUsIGJhY2t3YXJkUmVjb3Jkcyk7XG4gICAgICAgIHZpc2l0ZWQuYWRkKG90aGVyRW50aXR5TmFtZSk7XG5cbiAgICAgICAgLy8g7J6s6reAOiDsl63ssLjsobAg642w7J207YSw7J2YIOq0gOugqCDrjbDsnbTthLDrj4Qg7IiY7KeRXG4gICAgICAgIGF3YWl0IHRoaXMuY29sbGVjdFJlbGF0ZWREYXRhKFxuICAgICAgICAgIG90aGVyRW50aXR5TmFtZSxcbiAgICAgICAgICBiYWNrd2FyZFJlY29yZHMsXG4gICAgICAgICAgcmVsYXRlZE1hcCxcbiAgICAgICAgICB2aXNpdGVkLFxuICAgICAgICAgIHJlbWFpbmluZ0RlcHRoIC0gMSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OzthQUtvRzthQUN2RDtDQXNDaEMsZUFBYixNQUEwQjtFQUN4QixBQUFRO0VBRVIsWUFDRSxBQUFRQSxJQUNSLEFBQVFDLGVBQ1IsY0FDQTtHQUhRO0dBQ0E7QUFHUixRQUFLLFFBQVE7O0VBR2YsTUFBTSxRQUNKLFlBQ0EsU0FDb0M7R0FDcEMsTUFBTSxTQUFTLEtBQUssY0FBYyxJQUFJLFdBQVc7QUFDakQsT0FBSSxDQUFDLFFBQVE7QUFDWCxVQUFNLElBQUksTUFBTSxxQkFBcUIsYUFBYTs7QUFJcEQsT0FBSSxRQUFRLFlBQVksS0FBSyxPQUFPO0lBQ2xDLE1BQU0sV0FBVyxLQUFLLGlCQUFpQixZQUFZLFFBQVE7QUFDM0QsV0FBTyxLQUFLLE1BQU0sU0FBUztLQUN6QixLQUFLO0tBQ0wsS0FBSyxRQUFRLFlBQVk7S0FDekIsZUFBZSxLQUFLLGdCQUFnQixRQUFRLFFBQVE7S0FDckQsQ0FBQzs7QUFHSixVQUFPLEtBQUssZ0JBQWdCLFFBQVEsUUFBUTs7RUFHOUMsTUFBYyxnQkFDWixRQUNBLFNBQ29DO0dBQ3BDLE1BQU0sUUFBUSxLQUFLLEdBQUcsT0FBTyxNQUFNO0FBRW5DLFdBQVEsUUFBUSxVQUFoQjtJQUNFLEtBQUssU0FDSCxRQUFPLE1BQU0sS0FBSyxXQUFXLE9BQU8sUUFBUSxTQUFTLEdBQUc7SUFFMUQsS0FBSyxVQUFVO0tBQ2IsTUFBTSxlQUFlLEtBQUssb0JBQW9CLFFBQVEsYUFBYTtBQUNuRSxTQUFJLGNBQWM7QUFDaEIsWUFB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
|
|
@@ -11,8 +11,8 @@ import inflection from "inflection";
|
|
|
11
11
|
import { unique } from "radashi";
|
|
12
12
|
import assert from "assert";
|
|
13
13
|
import chalk from "chalk";
|
|
14
|
-
import { readFileSync, writeFileSync } from "fs";
|
|
15
14
|
import { execSync } from "child_process";
|
|
15
|
+
import { readFileSync, writeFileSync } from "fs";
|
|
16
16
|
import { inspect } from "util";
|
|
17
17
|
|
|
18
18
|
//#region src/testing/fixture-manager.ts
|
package/dist/types/types.d.ts
CHANGED
|
@@ -3893,7 +3893,8 @@ export type ManyToManyBaseSchema<FromIdKey extends string, ToIdKey extends strin
|
|
|
3893
3893
|
};
|
|
3894
3894
|
export type Executable<T> = T | Promise<T> | (() => T) | (() => Promise<T>);
|
|
3895
3895
|
export type SonamuFastifyConfig = {
|
|
3896
|
-
contextProvider: (defaultContext: Pick<Context, "request" | "reply" | "headers" | "createSSE" | "naiteStore" | "locale" | "user" | "session">, request: FastifyRequest, reply: FastifyReply) => Context | Promise<Context>;
|
|
3896
|
+
contextProvider: (defaultContext: Pick<Context, "transport" | "request" | "reply" | "headers" | "createSSE" | "naiteStore" | "locale" | "user" | "session">, request: FastifyRequest, reply: FastifyReply) => Context | Promise<Context>;
|
|
3897
|
+
websocketContextProvider?: (defaultContext: Pick<import("../api/context").WebSocketContext, "transport" | "request" | "headers" | "ws" | "naiteStore" | "locale" | "user" | "session">, request: FastifyRequest) => import("../api/context").WebSocketContext | Promise<import("../api/context").WebSocketContext>;
|
|
3897
3898
|
guardHandler: (guard: GuardKey, request: FastifyRequest, api: {
|
|
3898
3899
|
typeParameters: ApiParamType.TypeParam[];
|
|
3899
3900
|
parameters: ApiParam[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE3B,CAAC;AAqBH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types/types.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE3B,CAAC;AAqBH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|