sonamu 0.8.10 → 0.8.12
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/api/config.d.ts +10 -0
- package/dist/api/config.d.ts.map +1 -1
- package/dist/api/config.js +1 -1
- package/dist/bin/test-command.d.ts.map +1 -1
- package/dist/bin/test-command.js +53 -10
- package/dist/entity/entity-manager.d.ts +4 -1
- package/dist/entity/entity-manager.d.ts.map +1 -1
- package/dist/entity/entity-manager.js +30 -8
- package/dist/migration/migrator.d.ts.map +1 -1
- package/dist/migration/migrator.js +43 -37
- package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
- package/dist/migration/postgresql-schema-reader.js +8 -2
- package/dist/stream/sse.js +2 -1
- package/dist/testing/fixture-manager.d.ts.map +1 -1
- package/dist/testing/fixture-manager.js +5 -3
- package/dist/testing/parallel-db-manager.d.ts.map +1 -1
- package/dist/testing/parallel-db-manager.js +2 -2
- package/dist/ui/api.d.ts.map +1 -1
- package/dist/ui/api.js +21 -1
- package/dist/ui/cdd-service.d.ts +26 -0
- package/dist/ui/cdd-service.d.ts.map +1 -0
- package/dist/ui/cdd-service.js +197 -0
- package/dist/ui-web/assets/{index-C3UTzGvY.js → index-CQ_S40bD.js} +90 -89
- package/dist/ui-web/assets/index-egkMxKos.css +1 -0
- package/dist/ui-web/index.html +2 -2
- package/dist/utils/model.js +1 -16
- package/package.json +3 -3
- package/src/api/config.ts +11 -0
- package/src/bin/test-command.ts +73 -9
- package/src/entity/entity-manager.ts +37 -7
- package/src/migration/migrator.ts +48 -44
- package/src/migration/postgresql-schema-reader.ts +7 -1
- package/src/shared/app.shared.ts.txt +11 -68
- package/src/skills/AGENTS.md +6 -0
- package/src/skills/sonamu/SKILL.md +16 -0
- package/src/skills/sonamu/ai-agents.md +204 -0
- package/src/skills/sonamu/api.md +51 -0
- package/src/skills/sonamu/auth-migration.md +200 -310
- package/src/skills/sonamu/auth-plugins.md +297 -0
- package/src/skills/sonamu/cone.md +36 -0
- package/src/skills/sonamu/config.md +62 -1
- package/src/skills/sonamu/create-sonamu.md +33 -0
- package/src/skills/sonamu/entity-basic.md +74 -355
- package/src/skills/sonamu/entity-relations.md +10 -0
- package/src/skills/sonamu/entity-validation-checklist.md +1 -1
- package/src/skills/sonamu/fixture-cli.md +19 -1
- package/src/skills/sonamu/frontend.md +149 -451
- package/src/skills/sonamu/migration.md +12 -1
- package/src/skills/sonamu/model.md +32 -1
- package/src/skills/sonamu/naite.md +264 -0
- package/src/skills/sonamu/skill-contribution.md +241 -0
- package/src/skills/sonamu/tasks.md +221 -0
- package/src/skills/sonamu/testing-devrunner.md +390 -0
- package/src/skills/sonamu/testing.md +396 -1146
- package/src/skills/sonamu/upsert.md +18 -0
- package/src/skills/sonamu/vector.md +221 -0
- package/src/skills/sonamu/workflow.md +4 -2
- package/src/stream/sse.ts +2 -0
- package/src/testing/fixture-manager.ts +1 -2
- package/src/testing/parallel-db-manager.ts +3 -1
- package/src/ui/api.ts +22 -0
- package/src/ui/cdd-service.ts +225 -0
- package/src/utils/model.ts +0 -18
- package/dist/ui-web/assets/index-B3NU_uZ2.css +0 -1
package/dist/api/config.d.ts
CHANGED
|
@@ -102,6 +102,16 @@ export type SonamuConfig<TSinkId extends string = string, TFilterId extends stri
|
|
|
102
102
|
* ```
|
|
103
103
|
*/
|
|
104
104
|
test?: SonamuTestConfig;
|
|
105
|
+
/**
|
|
106
|
+
* 외부 에디터 설정 (CDD 등에서 파일 편집 시 사용)
|
|
107
|
+
* 미설정 시 "vscode"를 기본값으로 사용합니다.
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* ```typescript
|
|
111
|
+
* externalEditor: "cursor"
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
externalEditor?: "Visual Studio Code" | "Zed" | "Cursor";
|
|
105
115
|
/**
|
|
106
116
|
* Slack 승인 설정 (Production 마이그레이션용)
|
|
107
117
|
*
|
package/dist/api/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/api/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG;IAC7D,UAAU,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,IAAI;IAC7F,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,GAAG,EAAE;QACH,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE;YACL,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC;QACF,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;;;;;;;;;OAUG;IACH,IAAI,EAAE,iBAAiB,CAAC;IAExB,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAEF,QAAQ,EAAE;QAER,QAAQ,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC;QAE7B,IAAI,EAAE,MAAM,CAAC;QAEb,cAAc,EAAE,cAAc,CAAC;QAE/B,YAAY,CAAC,EAAE;YACb,WAAW,CAAC,EAAE,cAAc,CAAC;YAC7B,iBAAiB,CAAC,EAAE,cAAc,CAAC;YACnC,UAAU,CAAC,EAAE,cAAc,CAAC;YAC5B,gBAAgB,CAAC,EAAE,cAAc,CAAC;YAClC,OAAO,CAAC,EAAE,cAAc,CAAC;YACzB,IAAI,CAAC,EAAE,cAAc,CAAC;SACvB,CAAC;KACH,CAAC;IAEF,OAAO,CAAC,EAAE,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAE1B;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,gBAAgB,CAAC;IAExB;;;;;;;;;;;;;;OAcG;IACH,YAAY,CAAC,EAAE;QACb,0CAA0C;QAC1C,OAAO,EAAE,CAAC,MAAM,cAAc,CAAC,EAAE,CAAC;QAClC,iCAAiC;QACjC,QAAQ,EAAE,MAAM,CAAC;QACjB,8BAA8B;QAC9B,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAEhC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,OAAO,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IAE/C,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,OAAO,CAAC,EAAE;QACR,qCAAqC;QACrC,QAAQ,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;QAC5C,IAAI,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;QACpC,QAAQ,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;QAC5C,SAAS,CAAC,EAAE,OAAO,GAAG,uBAAuB,CAAC;QAC9C,EAAE,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;QAC/B,GAAG,CAAC,EAAE,OAAO,GAAG,gBAAgB,CAAC;QACjC,MAAM,CAAC,EAAE,OAAO,GAAG,oBAAoB,CAAC;QAExC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;KAC5C,CAAC;IAEF;;;;OAIG;IACH,IAAI,CAAC,EAAE,iBAAiB,GAAG;QACzB,IAAI,CAAC,EAAE;YACL,gBAAgB,CAAC,EAAE,MAAM,CACvB,MAAM,EACN,WAAW,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG;gBAChF,UAAU,CAAC,EAAE,MAAM,CAAC;aACrB,CACF,CAAC;SACH,CAAC;KACH,CAAC;IAEF,SAAS,EAAE,mBAAmB,CAAC;IAE/B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,SAAS,CAAC,EAAE;QACV,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC5D,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAC/D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAChG,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAE9B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,eAAe,EAAE,CACf,cAAc,EAAE,IAAI,CAClB,OAAO,EACP,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAC7F,KACE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B,CAAC;AAGF,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAMpF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAWxE"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/api/config.ts"],"names":[],"mappings":"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"}
|
package/dist/api/config.js
CHANGED
|
@@ -26,4 +26,4 @@ export function defineConfig(config) {
|
|
|
26
26
|
return config;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmFzdGlmeUNvbXByZXNzT3B0aW9ucyB9IGZyb20gXCJAZmFzdGlmeS9jb21wcmVzc1wiO1xuaW1wb3J0IHR5cGUgeyBGYXN0aWZ5Q29yc09wdGlvbnMgfSBmcm9tIFwiQGZhc3RpZnkvY29yc1wiO1xuaW1wb3J0IHR5cGUgeyBGYXN0aWZ5Rm9ybWJvZHlPcHRpb25zIH0gZnJvbSBcIkBmYXN0aWZ5L2Zvcm1ib2R5XCI7XG5pbXBvcnQgdHlwZSB7IEZhc3RpZnlNdWx0aXBhcnRPcHRpb25zIH0gZnJvbSBcIkBmYXN0aWZ5L211bHRpcGFydFwiO1xuaW1wb3J0IHR5cGUgeyBGYXN0aWZ5U3RhdGljT3B0aW9ucyB9IGZyb20gXCJAZmFzdGlmeS9zdGF0aWNcIjtcbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tIFwiYmV0dGVyLWF1dGhcIjtcbmltcG9ydCB0eXBlIHsgRmFzdGlmeUluc3RhbmNlLCBGYXN0aWZ5UmVwbHksIEZhc3RpZnlSZXF1ZXN0LCBGYXN0aWZ5U2VydmVyT3B0aW9ucyB9IGZyb20gXCJmYXN0aWZ5XCI7XG5pbXBvcnQgdHlwZSB7IFFzUGx1Z2luT3B0aW9ucyB9IGZyb20gXCJmYXN0aWZ5LXFzXCI7XG5pbXBvcnQgdHlwZSB7IFNzZVBsdWdpbk9wdGlvbnMgfSBmcm9tIFwiZmFzdGlmeS1zc2UtdjIvbGliL3R5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IEtuZXggfSBmcm9tIFwia25leFwiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZUNvbmZpZyB9IGZyb20gXCIuLi9jYWNoZS90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBTb25hbXVEQkNvbmZpZyB9IGZyb20gXCIuLi9kYXRhYmFzZS9kYlwiO1xuaW1wb3J0IHR5cGUgeyBTb25hbXVMb2dnaW5nT3B0aW9ucyB9IGZyb20gXCIuLi9sb2dnZXIvY29uZmlndXJlXCI7XG5pbXBvcnQgdHlwZSB7IFN0b3JhZ2VDb25maWcgfSBmcm9tIFwiLi4vc3RvcmFnZS90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBXb3JrZmxvd09wdGlvbnMgfSBmcm9tIFwiLi4vdGFza3Mvd29ya2Zsb3ctbWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBFeGVjdXRhYmxlLCBTb25hbXVGYXN0aWZ5Q29uZmlnIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IENvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIERhdGFiYXNlQ29uZmlnID0gT21pdDxLbmV4LkNvbmZpZywgXCJjb25uZWN0aW9uXCI+ICYge1xuICBjb25uZWN0aW9uPzogS25leC5QZ0Nvbm5lY3Rpb25Db25maWc7XG59O1xuXG4vKipcbiAqIGkxOG4g7ISk7KCVXG4gKi9cbmV4cG9ydCB0eXBlIFNvbmFtdUkxOG5PcHRpb25zID0ge1xuICAvKiog6riw67O4IGxvY2FsZSAo7YKkIOygleydmCDquLDspIAgKyDrn7Dtg4DsnoQg6riw67O46rCSKSAqL1xuICBkZWZhdWx0TG9jYWxlOiBzdHJpbmc7XG4gIC8qKiDsp4Dsm5DtlZjripQgbG9jYWxlIOuqqeuhnSAqL1xuICBzdXBwb3J0ZWRMb2NhbGVzOiBzdHJpbmdbXTtcbn07XG5cbi8qKlxuICogRGV2IOyEnOuyhCDrgrQgVml0ZXN0IOyDgeyjvCDsnbjsiqTthLTsiqQg7ISk7KCVXG4gKi9cbmV4cG9ydCB0eXBlIFNvbmFtdURldlJ1bm5lckNvbmZpZyA9IHtcbiAgLyoqIERldlJ1bm5lciDtmZzshLHtmZQg7Jes67aAICjquLDrs7g6IGZhbHNlKSAqL1xuICBlbmFibGVkOiBib29sZWFuO1xuICAvKiog7YWM7Iqk7Yq4IOyXlOuTnO2PrOyduO2KuCDqsr3roZwg7KCR65GQ7IKsICjquLDrs7g6IC9fX3Rlc3RfXykgKi9cbiAgcm91dGVQcmVmaXg/OiBzdHJpbmc7XG4gIC8qKiB2aXRlc3QuY29uZmlnLnRzIOqyveuhnCAoYXBpLXJvb3Qg7IOB64yA6rK966GcKSAqL1xuICB2aXRlc3RDb25maWdQYXRoPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiDthYzsiqTtirgg7ISk7KCVXG4gKiB2aXRlc3Qg67OR66CsIO2FjOyKpO2MheydhCBzb25hbXUuY29uZmlnLnRzIO2VnCDqs7Psl5DshJwg6rSA66as7ZWY6riwIOychO2VnCDshKTsoJXsnoXri4jri6QuXG4gKi9cbmV4cG9ydCB0eXBlIFNvbmFtdVRlc3RDb25maWcgPSB7XG4gIC8qKiDrs5HroKwg7YWM7Iqk7YyFIO2ZnOyEse2ZlCAo6riw67O4OiBmYWxzZSkgKi9cbiAgcGFyYWxsZWw/OiBib29sZWFuO1xuICAvKiog67OR66CsIOyLpO2WiSDsm4zsu6Qg7IiYICjquLDrs7g6IDQpICovXG4gIG1heFdvcmtlcnM/OiBudW1iZXI7XG4gIC8qKiBEZXYg7ISc67KEIOuCtCBWaXRlc3Qg7IOB7KO8IOyduOyKpO2EtOyKpCDshKTsoJUgKi9cbiAgZGV2UnVubmVyPzogU29uYW11RGV2UnVubmVyQ29uZmlnO1xufTtcblxuZXhwb3J0IHR5cGUgU29uYW11Q29uZmlnPFRTaW5rSWQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRGaWx0ZXJJZCBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSB7XG4gIHByb2plY3ROYW1lPzogc3RyaW5nO1xuXG4gIGFwaToge1xuICAgIGRpcjogc3RyaW5nO1xuICAgIHJvdXRlOiB7XG4gICAgICBwcmVmaXg6IHN0cmluZztcbiAgICB9O1xuICAgIHRpbWV6b25lPzogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBpMThuIOyEpOyglVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGkxOG46IHtcbiAgICogICBkZWZhdWx0TG9jYWxlOiAna28nLFxuICAgKiAgIHN1cHBvcnRlZExvY2FsZXM6IFsna28nLCAnZW4nLCAnamEnXSxcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGkxOG46IFNvbmFtdUkxOG5PcHRpb25zO1xuXG4gIHN5bmM6IHtcbiAgICB0YXJnZXRzOiBzdHJpbmdbXTsgLy8gXCJ3ZWJcIiwgXCJhcHBcIiDrk7FcbiAgfTtcblxuICBkYXRhYmFzZToge1xuICAgIC8vIOuNsOydtO2EsOuyoOydtOyKpChwZ+uKlCBwZyDrqqjrk4gsIHBnbmF0aXZl64qUIHBnLW5hdGl2ZSDrqqjrk4jsnZgg7ISk7LmY6rCAIO2VhOyalO2VqeuLiOuLpC4pXG4gICAgZGF0YWJhc2U/OiBcInBnXCIgfCBcInBnbmF0aXZlXCI7XG4gICAgLy8g6riw67O4IOuNsOydtO2EsOuyoOydtOyKpCDsnbTrpoRcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLy8g66qo65OgIO2ZmOqyveyXkCDsoIHsmqnrkKAg6riw67O4IEtuZXgg7Ji17IWYXG4gICAgZGVmYXVsdE9wdGlvbnM6IERhdGFiYXNlQ29uZmlnO1xuICAgIC8vIO2ZmOqyveuzhCDshKTsoJVcbiAgICBlbnZpcm9ubWVudHM/OiB7XG4gICAgICBkZXZlbG9wbWVudD86IERhdGFiYXNlQ29uZmlnO1xuICAgICAgZGV2ZWxvcG1lbnRfc2xhdmU/OiBEYXRhYmFzZUNvbmZpZztcbiAgICAgIHByb2R1Y3Rpb24/OiBEYXRhYmFzZUNvbmZpZztcbiAgICAgIHByb2R1Y3Rpb25fc2xhdmU/OiBEYXRhYmFzZUNvbmZpZztcbiAgICAgIGZpeHR1cmU/OiBEYXRhYmFzZUNvbmZpZztcbiAgICAgIHRlc3Q/OiBEYXRhYmFzZUNvbmZpZztcbiAgICB9O1xuICB9O1xuXG4gIGxvZ2dpbmc/OiBmYWxzZSB8IFNvbmFtdUxvZ2dpbmdPcHRpb25zPFRTaW5rSWQsIFRGaWx0ZXJJZD47XG4gIHNlcnZlcjogU29uYW11U2VydmVyT3B0aW9ucztcbiAgdGFza3M/OiBTb25hbXVUYXNrT3B0aW9ucztcblxuICAvKipcbiAgICog7YWM7Iqk7Yq4IOyEpOyglSAo67OR66CsIO2FjOyKpO2MhSDrk7EpXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogdGVzdDoge1xuICAgKiAgIHBhcmFsbGVsOiB0cnVlLFxuICAgKiAgIG1heFdvcmtlcnM6IDQsXG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICB0ZXN0PzogU29uYW11VGVzdENvbmZpZztcblxuICAvKipcbiAgICogU2xhY2sg7Iq57J24IOyEpOyglSAoUHJvZHVjdGlvbiDrp4jsnbTqt7jroIjsnbTshZjsmqkpXG4gICAqXG4gICAqIFByb2R1Y3Rpb24gREIg66eI7J206re466CI7J207IWYIOyLnCBTbGFja+ydhCDthrXtlZwg7Iq57J24IO2UhOuhnOyEuOyKpOulvCDtmZzshLHtmZTtlanri4jri6QuXG4gICAqIOyEpOygleydtCDsl4bsnLzrqbQg6riw7KG0IOuPmeyekSjrsJTroZwg7Iuk7ZaJKeycvOuhnCDrj5nsnpHtlanri4jri6QuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogc2xhY2tDb25maXJtOiB7XG4gICAqICAgdGFyZ2V0czogW1wicHJvZHVjdGlvblwiXSxcbiAgICogICBib3RUb2tlbjogcHJvY2Vzcy5lbnYuU0xBQ0tfQk9UX1RPS0VOID8/IFwiXCIsXG4gICAqICAgY2hhbm5lbElkOiBwcm9jZXNzLmVudi5TTEFDS19DSEFOTkVMX0lEID8/IFwiXCIsXG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBzbGFja0NvbmZpcm0/OiB7XG4gICAgLyoqIOyKueyduOydtCDtlYTsmpTtlZwgREIg7YKkIOuqqeuhnSAo7JiIOiBbXCJwcm9kdWN0aW9uXCJdKSAqL1xuICAgIHRhcmdldHM6IChrZXlvZiBTb25hbXVEQkNvbmZpZylbXTtcbiAgICAvKiogU2xhY2sgQm90IFRva2VuICh4b3hiLS4uLikgKi9cbiAgICBib3RUb2tlbjogc3RyaW5nO1xuICAgIC8qKiBTbGFjayBDaGFubmVsIElEIChDLi4uKSAqL1xuICAgIGNoYW5uZWxJZDogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgU29uYW11U2VydmVyT3B0aW9ucyA9IHtcbiAgLy8g7ZSE66Gc7KCd7Yq4IOyZuOu2gOyXkOyEnCDsoJHqt7ztlaAg7IiYIOyeiOuKlCBVUkwuIOq4sOuzuOqwkuydgCB7c2VydmVyLmxpc3Rlbi5ob3N0fTp7c2VydmVyLmxpc3Rlbi5wb3J0fSDsnoXri4jri6QuXG4gIGJhc2VVcmw/OiBzdHJpbmc7XG5cbiAgZmFzdGlmeT86IE9taXQ8RmFzdGlmeVNlcnZlck9wdGlvbnMsIFwibG9nZ2VyXCI+O1xuXG4gIGxpc3Rlbj86IHtcbiAgICBwb3J0OiBudW1iZXI7XG4gICAgaG9zdD86IHN0cmluZztcbiAgfTtcblxuICBwbHVnaW5zPzoge1xuICAgIC8qKiDsnZHri7Ug7JWV7LaVIO2UjOufrOq3uOyduCAoQGZhc3RpZnkvY29tcHJlc3MpICovXG4gICAgY29tcHJlc3M/OiBib29sZWFuIHwgRmFzdGlmeUNvbXByZXNzT3B0aW9ucztcbiAgICBjb3JzPzogYm9vbGVhbiB8IEZhc3RpZnlDb3JzT3B0aW9ucztcbiAgICBmb3JtYm9keT86IGJvb2xlYW4gfCBGYXN0aWZ5Rm9ybWJvZHlPcHRpb25zO1xuICAgIG11bHRpcGFydD86IGJvb2xlYW4gfCBGYXN0aWZ5TXVsdGlwYXJ0T3B0aW9ucztcbiAgICBxcz86IGJvb2xlYW4gfCBRc1BsdWdpbk9wdGlvbnM7XG4gICAgc3NlPzogYm9vbGVhbiB8IFNzZVBsdWdpbk9wdGlvbnM7XG4gICAgc3RhdGljPzogYm9vbGVhbiB8IEZhc3RpZnlTdGF0aWNPcHRpb25zO1xuXG4gICAgY3VzdG9tPzogKHNlcnZlcjogRmFzdGlmeUluc3RhbmNlKSA9PiB2b2lkO1xuICB9O1xuXG4gIC8qKlxuICAgKiBiZXR0ZXItYXV0aCDsnbjspp0g7ISk7KCVXG4gICAqIFNvbmFtdSDtmZXsnqXsnLzroZwgYWRkaXRpb25hbEZpZWxkc+yXkCBzb25hbXVUeXBlIOyGjeyEsSDstpTqsIAg6rCA64qlXG4gICAqIEJldHRlckF1dGjsnZggREJGaWVsZEF0dHJpYnV0ZeulvCDtmZXsnqXtlaAg7IiYIOyXhuyWtOyEnCDsmrDshKAgdXNlcuunjCDsoIHsmqlcbiAgICovXG4gIGF1dGg/OiBCZXR0ZXJBdXRoT3B0aW9ucyAmIHtcbiAgICB1c2VyPzoge1xuICAgICAgYWRkaXRpb25hbEZpZWxkcz86IFJlY29yZDxcbiAgICAgICAgc3RyaW5nLFxuICAgICAgICBOb25OdWxsYWJsZTxOb25OdWxsYWJsZTxCZXR0ZXJBdXRoT3B0aW9uc1tcInVzZXJcIl0+W1wiYWRkaXRpb25hbEZpZWxkc1wiXT5bc3RyaW5nXSAmIHtcbiAgICAgICAgICBzb25hbXVUeXBlPzogc3RyaW5nO1xuICAgICAgICB9XG4gICAgICA+O1xuICAgIH07XG4gIH07XG5cbiAgYXBpQ29uZmlnOiBTb25hbXVGYXN0aWZ5Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBTdG9yYWdlIOuTnOudvOydtOuyhCDshKTsoJUuXG4gICAqIERSSVZFX0RJU0sg7ZmY6rK967OA7IiY66GcIOyCrOyaqe2VoCDrk5zrnbzsnbTrsoTrpbwg7ISg7YOd7ZWp64uI64ukLiAo6riw67O46rCSOiBkZWZhdWx0IO2CpClcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBpbXBvcnQgeyBkcml2ZXJzIH0gZnJvbSBcInNvbmFtdS9zdG9yYWdlXCI7XG4gICAqXG4gICAqIHN0b3JhZ2U6IHtcbiAgICogICBkZWZhdWx0OiBwcm9jZXNzLmVudi5EUklWRV9ESVNLID8/IFwiZnNcIixcbiAgICogICBkcml2ZXJzOiB7XG4gICAqICAgICBmczogZHJpdmVycy5mcyh7IGxvY2F0aW9uOiBcIi4vdXBsb2Fkc1wiLCB1cmxCdWlsZGVyOiB7IC4uLiB9IH0pLFxuICAgKiAgICAgczM6IGRyaXZlcnMuczMoeyBidWNrZXQ6IFwibXktYnVja2V0XCIsIHJlZ2lvbjogXCJhcC1ub3J0aGVhc3QtMlwiLCAuLi4gfSksXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgc3RvcmFnZT86IFN0b3JhZ2VDb25maWc7XG5cbiAgLyoqXG4gICAqIENhY2hlIOyEpOyglSAoQmVudG9DYWNoZSDquLDrsJgpXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogaW1wb3J0IHsgZHJpdmVycywgc3RvcmUgfSBmcm9tIFwic29uYW11L2NhY2hlXCI7XG4gICAqXG4gICAqIGNhY2hlOiB7XG4gICAqICAgZGVmYXVsdDogJ21haW4nLFxuICAgKiAgIHN0b3Jlczoge1xuICAgKiAgICAgbWFpbjogc3RvcmUoKVxuICAgKiAgICAgICAudXNlTDFMYXllcihkcml2ZXJzLm1lbW9yeSh7IG1heFNpemU6ICcxMDBtYicgfSkpXG4gICAqICAgICAgIC51c2VMMkxheWVyKGRyaXZlcnMucmVkaXMoeyBjb25uZWN0aW9uOiByZWRpc0Nvbm5lY3Rpb24gfSkpXG4gICAqICAgICAgIC51c2VCdXMoZHJpdmVycy5yZWRpc0J1cyh7IGNvbm5lY3Rpb246IHJlZGlzQ29ubmVjdGlvbiB9KSlcbiAgICogICB9LFxuICAgKiAgIHR0bDogJzFoJyxcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGNhY2hlPzogQ2FjaGVDb25maWc7XG5cbiAgbGlmZWN5Y2xlPzoge1xuICAgIG9uU3RhcnQ/OiAoc2VydmVyOiBGYXN0aWZ5SW5zdGFuY2UpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuICAgIG9uU2h1dGRvd24/OiAoc2VydmVyOiBGYXN0aWZ5SW5zdGFuY2UpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xuICAgIG9uRXJyb3I/OiAoZXJyb3I6IEVycm9yLCByZXF1ZXN0OiBGYXN0aWZ5UmVxdWVzdCwgcmVwbHk6IEZhc3RpZnlSZXBseSkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBTb25hbXVUYXNrT3B0aW9ucyA9IHtcbiAgLy8gd29ya2Vy66W8IOyCrOyaqe2VoOyngCDsl6zrtoAsIOq4sOuzuOyggeycvOuhnCBkYWVtb24g66qo65Oc7JeQ7ISc66eMIOyCrOyaqeuQqC5cbiAgZW5hYmxlV29ya2VyPzogYm9vbGVhbjtcbiAgd29ya2VyT3B0aW9ucz86IFdvcmtmbG93T3B0aW9ucztcbiAgY29udGV4dFByb3ZpZGVyOiAoXG4gICAgZGVmYXVsdENvbnRleHQ6IFBpY2s8XG4gICAgICBDb250ZXh0LFxuICAgICAgXCJyZXBseVwiIHwgXCJyZXF1ZXN0XCIgfCBcImhlYWRlcnNcIiB8IFwiY3JlYXRlU1NFXCIgfCBcIm5haXRlU3RvcmVcIiB8IFwibG9jYWxlXCIgfCBcInVzZXJcIiB8IFwic2Vzc2lvblwiXG4gICAgPixcbiAgKSA9PiBDb250ZXh0IHwgUHJvbWlzZTxDb250ZXh0Pjtcbn07XG5cbmV4cG9ydCB0eXBlIFNvbmFtdVNTUk9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBIeWRyYXRpb24g7KCE6561XG4gICAqIC0gJ25vbmUnOiDtla3sg4Eg7IOI66GcIOugjOuNlOungSAoaHlkcmF0aW9uIG1pc21hdGNoIOqxseyglSDsl4bsnYwsIOq2jOyepSlcbiAgICogLSAnZnVsbCc6IFJlYWN0IGh5ZHJhdGlvbiDsi5zrj4QgKOyEnOuyhCBIVE1MIOyerOyCrOyaqSwgbWlzbWF0Y2gg7KO87J2YKVxuICAgKiBAZGVmYXVsdCAnbm9uZSdcbiAgICovXG4gIGh5ZHJhdGlvbj86IFwibm9uZVwiIHwgXCJmdWxsXCI7XG59O1xuXG4vLyBOT1RFKEhhemUsIDI1MTIwOSk6IGNvbmZpZ+yXkOuKlCBULCBQcm9taXNlPFQ+LCAoKSA9PiBULCAoKSA9PiBQcm9taXNlPFQ+6rCAIOuqqOuRkCDsmKwg7IiYIOyeiOyWtOyVvCDtlaguXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQ29uZmlnKGNvbmZpZzogRXhlY3V0YWJsZTxTb25hbXVDb25maWc+KTogUHJvbWlzZTxTb25hbXVDb25maWc+IHtcbiAgaWYgKHR5cGVvZiBjb25maWcgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY29uZmlnKCkpO1xuICB9XG5cbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjb25maWcpO1xufVxuXG4vKipcbiAqIHNvbmFtdS5jb25maWcudHMg7YyM7J287J2EIOuhnOuTnO2VqeuLiOuLpC5cbiAqIOydtCDshKTsoJUg7YyM7J287J2AIO2ZmOqyveyXkCDrlLDrnbwg64uk66W4IOqyveuhnOyXkCDsnojsnYQg7IiYIOyeiOyKteuLiOuLpC5cbiAqIGRpc3Trpbwg67mM65Oc7ZWY64qUIO2ZmOqyveydtOudvOuptCBkaXN0IOuwlOuhnCDslYTrnpjsl5Ag7J6I7J2EIOqyg+ydtOqzoChjbGktd3JhcHBlci50c+yXkOyEnCDruYzrk5wpLFxuICog6re466CH7KeAIOyViuydgCDtmZjqsr3snbTrnbzrqbQg7ZSE66Gc7KCd7Yq4IOujqO2KuOyXkCDsnojsnYQg6rKD7J6F64uI64ukLlxuICpcbiAqIOydtCDtlajsiJjripQg7J2Y64+E7KCB7Jy866GcIOuLpOuluCDsnZjsobTshLHsnZgg7IKs7Jqp7J2EIOy1nOuMgO2VnCDrsLDsoJztlZjsmIDsirXri4jri6QuXG4gKiDsnbTripQg7Iuk7ZaJIOy0iOq4sOyXkCDstZzrjIDtlZwg67mg66W06rKMIOyEpOygleydhCDsnb3slrTsmKwg7IiYIOyeiOuPhOuhnSDtlZjquLAg7JyE7ZWo7J6F64uI64ukLlxuICog65Sw65287IScIOqyveuhnCBjb25jYXTqs7wgVVJMIHNjaGVtZSDstpTqsIDrj4Qg64uo7Iic7ZWcIOusuOyekOyXtCDsobDsnpHsnLzroZwg7LKY66as7ZWY7JiA7Iq164uI64ukLlxuICpcbiAqIEBwYXJhbSByb290UGF0aFxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRDb25maWcocm9vdFBhdGg6IHN0cmluZyk6IFByb21pc2U8U29uYW11Q29uZmlnPiB7XG4gIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gIGNvbnN0IGNvbmZpZ1BhdGggPVxuICAgIHByb2Nlc3MuZW52LkhPVCA9PT0gXCJ5ZXNcIiB8fCBwcm9jZXNzLmVudi5WSVRFU1QgPT09IFwidHJ1ZVwiXG4gICAgICA/IGAke3Jvb3RQYXRofS9zcmMvc29uYW11LmNvbmZpZy50c2BcbiAgICAgIDogYCR7cm9vdFBhdGh9L2Rpc3Qvc29uYW11LmNvbmZpZy5qc2A7XG4gIGNvbnN0IHsgZGVmYXVsdDogY29uZmlnIH0gPSBhd2FpdCBpbXBvcnQoYGZpbGU6Ly8ke2NvbmZpZ1BhdGh9YCk7XG4gIGNvbnN0IGltcG9ydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0O1xuICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJ0ZXN0XCIgJiZcbiAgICBjb25zb2xlLmxvZyhgW1RJTUlOR10gbG9hZENvbmZpZyB0b29rICR7aW1wb3J0VGltZS50b0ZpeGVkKDIpfW1zYCk7XG4gIHJldHVybiBjb25maWc7XG59XG4iXSwibmFtZXMiOlsiZGVmaW5lQ29uZmlnIiwiY29uZmlnIiwiUHJvbWlzZSIsInJlc29sdmUiLCJsb2FkQ29uZmlnIiwicm9vdFBhdGgiLCJzdGFydCIsInBlcmZvcm1hbmNlIiwibm93IiwiY29uZmlnUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJIT1QiLCJWSVRFU1QiLCJkZWZhdWx0IiwiaW1wb3J0VGltZSIsIk5PREVfRU5WIiwiY29uc29sZSIsImxvZyIsInRvRml4ZWQiXSwibWFwcGluZ3MiOiJBQWdRQSx1RkFBdUY7QUFDdkYsT0FBTyxTQUFTQSxhQUFhQyxNQUFnQztJQUMzRCxJQUFJLE9BQU9BLFdBQVcsWUFBWTtRQUNoQyxPQUFPQyxRQUFRQyxPQUFPLENBQUNGO0lBQ3pCO0lBRUEsT0FBT0MsUUFBUUMsT0FBTyxDQUFDRjtBQUN6QjtBQUVBOzs7Ozs7Ozs7Ozs7Q0FZQyxHQUNELE9BQU8sZUFBZUcsV0FBV0MsUUFBZ0I7SUFDL0MsTUFBTUMsUUFBUUMsWUFBWUMsR0FBRztJQUM3QixNQUFNQyxhQUNKQyxRQUFRQyxHQUFHLENBQUNDLEdBQUcsS0FBSyxTQUFTRixRQUFRQyxHQUFHLENBQUNFLE1BQU0sS0FBSyxTQUNoRCxHQUFHUixTQUFTLHFCQUFxQixDQUFDLEdBQ2xDLEdBQUdBLFNBQVMsc0JBQXNCLENBQUM7SUFDekMsTUFBTSxFQUFFUyxTQUFTYixNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRVEsWUFBWTtJQUMvRCxNQUFNTSxhQUFhUixZQUFZQyxHQUFHLEtBQUtGO0lBQ3ZDSSxRQUFRQyxHQUFHLENBQUNLLFFBQVEsS0FBSyxVQUN2QkMsUUFBUUMsR0FBRyxDQUFDLENBQUMseUJBQXlCLEVBQUVILFdBQVdJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNuRSxPQUFPbEI7QUFDVCJ9
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvY29uZmlnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmFzdGlmeUNvbXByZXNzT3B0aW9ucyB9IGZyb20gXCJAZmFzdGlmeS9jb21wcmVzc1wiO1xuaW1wb3J0IHR5cGUgeyBGYXN0aWZ5Q29yc09wdGlvbnMgfSBmcm9tIFwiQGZhc3RpZnkvY29yc1wiO1xuaW1wb3J0IHR5cGUgeyBGYXN0aWZ5Rm9ybWJvZHlPcHRpb25zIH0gZnJvbSBcIkBmYXN0aWZ5L2Zvcm1ib2R5XCI7XG5pbXBvcnQgdHlwZSB7IEZhc3RpZnlNdWx0aXBhcnRPcHRpb25zIH0gZnJvbSBcIkBmYXN0aWZ5L211bHRpcGFydFwiO1xuaW1wb3J0IHR5cGUgeyBGYXN0aWZ5U3RhdGljT3B0aW9ucyB9IGZyb20gXCJAZmFzdGlmeS9zdGF0aWNcIjtcbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tIFwiYmV0dGVyLWF1dGhcIjtcbmltcG9ydCB0eXBlIHsgRmFzdGlmeUluc3RhbmNlLCBGYXN0aWZ5UmVwbHksIEZhc3RpZnlSZXF1ZXN0LCBGYXN0aWZ5U2VydmVyT3B0aW9ucyB9IGZyb20gXCJmYXN0aWZ5XCI7XG5pbXBvcnQgdHlwZSB7IFFzUGx1Z2luT3B0aW9ucyB9IGZyb20gXCJmYXN0aWZ5LXFzXCI7XG5pbXBvcnQgdHlwZSB7IFNzZVBsdWdpbk9wdGlvbnMgfSBmcm9tIFwiZmFzdGlmeS1zc2UtdjIvbGliL3R5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IEtuZXggfSBmcm9tIFwia25leFwiO1xuaW1wb3J0IHR5cGUgeyBDYWNoZUNvbmZpZyB9IGZyb20gXCIuLi9jYWNoZS90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBTb25hbXVEQkNvbmZpZyB9IGZyb20gXCIuLi9kYXRhYmFzZS9kYlwiO1xuaW1wb3J0IHR5cGUgeyBTb25hbXVMb2dnaW5nT3B0aW9ucyB9IGZyb20gXCIuLi9sb2dnZXIvY29uZmlndXJlXCI7XG5pbXBvcnQgdHlwZSB7IFN0b3JhZ2VDb25maWcgfSBmcm9tIFwiLi4vc3RvcmFnZS90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBXb3JrZmxvd09wdGlvbnMgfSBmcm9tIFwiLi4vdGFza3Mvd29ya2Zsb3ctbWFuYWdlclwiO1xuaW1wb3J0IHR5cGUgeyBFeGVjdXRhYmxlLCBTb25hbXVGYXN0aWZ5Q29uZmlnIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IENvbnRleHQgfSBmcm9tIFwiLi9jb250ZXh0XCI7XG5cbmV4cG9ydCB0eXBlIERhdGFiYXNlQ29uZmlnID0gT21pdDxLbmV4LkNvbmZpZywgXCJjb25uZWN0aW9uXCI+ICYge1xuICBjb25uZWN0aW9uPzogS25leC5QZ0Nvbm5lY3Rpb25Db25maWc7XG59O1xuXG4vKipcbiAqIGkxOG4g7ISk7KCVXG4gKi9cbmV4cG9ydCB0eXBlIFNvbmFtdUkxOG5PcHRpb25zID0ge1xuICAvKiog6riw67O4IGxvY2FsZSAo7YKkIOygleydmCDquLDspIAgKyDrn7Dtg4DsnoQg6riw67O46rCSKSAqL1xuICBkZWZhdWx0TG9jYWxlOiBzdHJpbmc7XG4gIC8qKiDsp4Dsm5DtlZjripQgbG9jYWxlIOuqqeuhnSAqL1xuICBzdXBwb3J0ZWRMb2NhbGVzOiBzdHJpbmdbXTtcbn07XG5cbi8qKlxuICogRGV2IOyEnOuyhCDrgrQgVml0ZXN0IOyDgeyjvCDsnbjsiqTthLTsiqQg7ISk7KCVXG4gKi9cbmV4cG9ydCB0eXBlIFNvbmFtdURldlJ1bm5lckNvbmZpZyA9IHtcbiAgLyoqIERldlJ1bm5lciDtmZzshLHtmZQg7Jes67aAICjquLDrs7g6IGZhbHNlKSAqL1xuICBlbmFibGVkOiBib29sZWFuO1xuICAvKiog7YWM7Iqk7Yq4IOyXlOuTnO2PrOyduO2KuCDqsr3roZwg7KCR65GQ7IKsICjquLDrs7g6IC9fX3Rlc3RfXykgKi9cbiAgcm91dGVQcmVmaXg/OiBzdHJpbmc7XG4gIC8qKiB2aXRlc3QuY29uZmlnLnRzIOqyveuhnCAoYXBpLXJvb3Qg7IOB64yA6rK966GcKSAqL1xuICB2aXRlc3RDb25maWdQYXRoPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiDthYzsiqTtirgg7ISk7KCVXG4gKiB2aXRlc3Qg67OR66CsIO2FjOyKpO2MheydhCBzb25hbXUuY29uZmlnLnRzIO2VnCDqs7Psl5DshJwg6rSA66as7ZWY6riwIOychO2VnCDshKTsoJXsnoXri4jri6QuXG4gKi9cbmV4cG9ydCB0eXBlIFNvbmFtdVRlc3RDb25maWcgPSB7XG4gIC8qKiDrs5HroKwg7YWM7Iqk7YyFIO2ZnOyEse2ZlCAo6riw67O4OiBmYWxzZSkgKi9cbiAgcGFyYWxsZWw/OiBib29sZWFuO1xuICAvKiog67OR66CsIOyLpO2WiSDsm4zsu6Qg7IiYICjquLDrs7g6IDQpICovXG4gIG1heFdvcmtlcnM/OiBudW1iZXI7XG4gIC8qKiBEZXYg7ISc67KEIOuCtCBWaXRlc3Qg7IOB7KO8IOyduOyKpO2EtOyKpCDshKTsoJUgKi9cbiAgZGV2UnVubmVyPzogU29uYW11RGV2UnVubmVyQ29uZmlnO1xufTtcblxuZXhwb3J0IHR5cGUgU29uYW11Q29uZmlnPFRTaW5rSWQgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsIFRGaWx0ZXJJZCBleHRlbmRzIHN0cmluZyA9IHN0cmluZz4gPSB7XG4gIHByb2plY3ROYW1lPzogc3RyaW5nO1xuXG4gIGFwaToge1xuICAgIGRpcjogc3RyaW5nO1xuICAgIHJvdXRlOiB7XG4gICAgICBwcmVmaXg6IHN0cmluZztcbiAgICB9O1xuICAgIHRpbWV6b25lPzogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBpMThuIOyEpOyglVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGkxOG46IHtcbiAgICogICBkZWZhdWx0TG9jYWxlOiAna28nLFxuICAgKiAgIHN1cHBvcnRlZExvY2FsZXM6IFsna28nLCAnZW4nLCAnamEnXSxcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIGkxOG46IFNvbmFtdUkxOG5PcHRpb25zO1xuXG4gIHN5bmM6IHtcbiAgICB0YXJnZXRzOiBzdHJpbmdbXTsgLy8gXCJ3ZWJcIiwgXCJhcHBcIiDrk7FcbiAgfTtcblxuICBkYXRhYmFzZToge1xuICAgIC8vIOuNsOydtO2EsOuyoOydtOyKpChwZ+uKlCBwZyDrqqjrk4gsIHBnbmF0aXZl64qUIHBnLW5hdGl2ZSDrqqjrk4jsnZgg7ISk7LmY6rCAIO2VhOyalO2VqeuLiOuLpC4pXG4gICAgZGF0YWJhc2U/OiBcInBnXCIgfCBcInBnbmF0aXZlXCI7XG4gICAgLy8g6riw67O4IOuNsOydtO2EsOuyoOydtOyKpCDsnbTrpoRcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLy8g66qo65OgIO2ZmOqyveyXkCDsoIHsmqnrkKAg6riw67O4IEtuZXgg7Ji17IWYXG4gICAgZGVmYXVsdE9wdGlvbnM6IERhdGFiYXNlQ29uZmlnO1xuICAgIC8vIO2ZmOqyveuzhCDshKTsoJVcbiAgICBlbnZpcm9ubWVudHM/OiB7XG4gICAgICBkZXZlbG9wbWVudD86IERhdGFiYXNlQ29uZmlnO1xuICAgICAgZGV2ZWxvcG1lbnRfc2xhdmU/OiBEYXRhYmFzZUNvbmZpZztcbiAgICAgIHByb2R1Y3Rpb24/OiBEYXRhYmFzZUNvbmZpZztcbiAgICAgIHByb2R1Y3Rpb25fc2xhdmU/OiBEYXRhYmFzZUNvbmZpZztcbiAgICAgIGZpeHR1cmU/OiBEYXRhYmFzZUNvbmZpZztcbiAgICAgIHRlc3Q/OiBEYXRhYmFzZUNvbmZpZztcbiAgICB9O1xuICB9O1xuXG4gIGxvZ2dpbmc/OiBmYWxzZSB8IFNvbmFtdUxvZ2dpbmdPcHRpb25zPFRTaW5rSWQsIFRGaWx0ZXJJZD47XG4gIHNlcnZlcjogU29uYW11U2VydmVyT3B0aW9ucztcbiAgdGFza3M/OiBTb25hbXVUYXNrT3B0aW9ucztcblxuICAvKipcbiAgICog7YWM7Iqk7Yq4IOyEpOyglSAo67OR66CsIO2FjOyKpO2MhSDrk7EpXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogdGVzdDoge1xuICAgKiAgIHBhcmFsbGVsOiB0cnVlLFxuICAgKiAgIG1heFdvcmtlcnM6IDQsXG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICB0ZXN0PzogU29uYW11VGVzdENvbmZpZztcblxuICAvKipcbiAgICog7Jm467aAIOyXkOuUlO2EsCDshKTsoJUgKENERCDrk7Hsl5DshJwg7YyM7J28IO2OuOynkSDsi5wg7IKs7JqpKVxuICAgKiDrr7jshKTsoJUg7IucIFwidnNjb2RlXCLrpbwg6riw67O46rCS7Jy866GcIOyCrOyaqe2VqeuLiOuLpC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBleHRlcm5hbEVkaXRvcjogXCJjdXJzb3JcIlxuICAgKiBgYGBcbiAgICovXG4gIGV4dGVybmFsRWRpdG9yPzogXCJWaXN1YWwgU3R1ZGlvIENvZGVcIiB8IFwiWmVkXCIgfCBcIkN1cnNvclwiO1xuXG4gIC8qKlxuICAgKiBTbGFjayDsirnsnbgg7ISk7KCVIChQcm9kdWN0aW9uIOuniOydtOq3uOugiOydtOyFmOyaqSlcbiAgICpcbiAgICogUHJvZHVjdGlvbiBEQiDrp4jsnbTqt7jroIjsnbTshZgg7IucIFNsYWNr7J2EIO2Gte2VnCDsirnsnbgg7ZSE66Gc7IS47Iqk66W8IO2ZnOyEse2ZlO2VqeuLiOuLpC5cbiAgICog7ISk7KCV7J20IOyXhuycvOuptCDquLDsobQg64+Z7J6RKOuwlOuhnCDsi6Ttlokp7Jy866GcIOuPmeyeke2VqeuLiOuLpC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBzbGFja0NvbmZpcm06IHtcbiAgICogICB0YXJnZXRzOiBbXCJwcm9kdWN0aW9uXCJdLFxuICAgKiAgIGJvdFRva2VuOiBwcm9jZXNzLmVudi5TTEFDS19CT1RfVE9LRU4gPz8gXCJcIixcbiAgICogICBjaGFubmVsSWQ6IHByb2Nlc3MuZW52LlNMQUNLX0NIQU5ORUxfSUQgPz8gXCJcIixcbiAgICogfVxuICAgKiBgYGBcbiAgICovXG4gIHNsYWNrQ29uZmlybT86IHtcbiAgICAvKiog7Iq57J247J20IO2VhOyalO2VnCBEQiDtgqQg66qp66GdICjsmIg6IFtcInByb2R1Y3Rpb25cIl0pICovXG4gICAgdGFyZ2V0czogKGtleW9mIFNvbmFtdURCQ29uZmlnKVtdO1xuICAgIC8qKiBTbGFjayBCb3QgVG9rZW4gKHhveGItLi4uKSAqL1xuICAgIGJvdFRva2VuOiBzdHJpbmc7XG4gICAgLyoqIFNsYWNrIENoYW5uZWwgSUQgKEMuLi4pICovXG4gICAgY2hhbm5lbElkOiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBTb25hbXVTZXJ2ZXJPcHRpb25zID0ge1xuICAvLyDtlITroZzsoJ3tirgg7Jm467aA7JeQ7IScIOygkeq3vO2VoCDsiJgg7J6I64qUIFVSTC4g6riw67O46rCS7J2AIHtzZXJ2ZXIubGlzdGVuLmhvc3R9OntzZXJ2ZXIubGlzdGVuLnBvcnR9IOyeheuLiOuLpC5cbiAgYmFzZVVybD86IHN0cmluZztcblxuICBmYXN0aWZ5PzogT21pdDxGYXN0aWZ5U2VydmVyT3B0aW9ucywgXCJsb2dnZXJcIj47XG5cbiAgbGlzdGVuPzoge1xuICAgIHBvcnQ6IG51bWJlcjtcbiAgICBob3N0Pzogc3RyaW5nO1xuICB9O1xuXG4gIHBsdWdpbnM/OiB7XG4gICAgLyoqIOydkeuLtSDslZXstpUg7ZSM65+s6re47J24IChAZmFzdGlmeS9jb21wcmVzcykgKi9cbiAgICBjb21wcmVzcz86IGJvb2xlYW4gfCBGYXN0aWZ5Q29tcHJlc3NPcHRpb25zO1xuICAgIGNvcnM/OiBib29sZWFuIHwgRmFzdGlmeUNvcnNPcHRpb25zO1xuICAgIGZvcm1ib2R5PzogYm9vbGVhbiB8IEZhc3RpZnlGb3JtYm9keU9wdGlvbnM7XG4gICAgbXVsdGlwYXJ0PzogYm9vbGVhbiB8IEZhc3RpZnlNdWx0aXBhcnRPcHRpb25zO1xuICAgIHFzPzogYm9vbGVhbiB8IFFzUGx1Z2luT3B0aW9ucztcbiAgICBzc2U/OiBib29sZWFuIHwgU3NlUGx1Z2luT3B0aW9ucztcbiAgICBzdGF0aWM/OiBib29sZWFuIHwgRmFzdGlmeVN0YXRpY09wdGlvbnM7XG5cbiAgICBjdXN0b20/OiAoc2VydmVyOiBGYXN0aWZ5SW5zdGFuY2UpID0+IHZvaWQ7XG4gIH07XG5cbiAgLyoqXG4gICAqIGJldHRlci1hdXRoIOyduOymnSDshKTsoJVcbiAgICogU29uYW11IO2ZleyepeycvOuhnCBhZGRpdGlvbmFsRmllbGRz7JeQIHNvbmFtdVR5cGUg7IaN7ISxIOy2lOqwgCDqsIDriqVcbiAgICogQmV0dGVyQXV0aOydmCBEQkZpZWxkQXR0cmlidXRl66W8IO2Zleyepe2VoCDsiJgg7JeG7Ja07IScIOyasOyEoCB1c2Vy66eMIOyggeyaqVxuICAgKi9cbiAgYXV0aD86IEJldHRlckF1dGhPcHRpb25zICYge1xuICAgIHVzZXI/OiB7XG4gICAgICBhZGRpdGlvbmFsRmllbGRzPzogUmVjb3JkPFxuICAgICAgICBzdHJpbmcsXG4gICAgICAgIE5vbk51bGxhYmxlPE5vbk51bGxhYmxlPEJldHRlckF1dGhPcHRpb25zW1widXNlclwiXT5bXCJhZGRpdGlvbmFsRmllbGRzXCJdPltzdHJpbmddICYge1xuICAgICAgICAgIHNvbmFtdVR5cGU/OiBzdHJpbmc7XG4gICAgICAgIH1cbiAgICAgID47XG4gICAgfTtcbiAgfTtcblxuICBhcGlDb25maWc6IFNvbmFtdUZhc3RpZnlDb25maWc7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2Ug65Oc65287J2067KEIOyEpOyglS5cbiAgICogRFJJVkVfRElTSyDtmZjqsr3rs4DsiJjroZwg7IKs7Jqp7ZWgIOuTnOudvOydtOuyhOulvCDshKDtg53tlanri4jri6QuICjquLDrs7jqsJI6IGRlZmF1bHQg7YKkKVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGltcG9ydCB7IGRyaXZlcnMgfSBmcm9tIFwic29uYW11L3N0b3JhZ2VcIjtcbiAgICpcbiAgICogc3RvcmFnZToge1xuICAgKiAgIGRlZmF1bHQ6IHByb2Nlc3MuZW52LkRSSVZFX0RJU0sgPz8gXCJmc1wiLFxuICAgKiAgIGRyaXZlcnM6IHtcbiAgICogICAgIGZzOiBkcml2ZXJzLmZzKHsgbG9jYXRpb246IFwiLi91cGxvYWRzXCIsIHVybEJ1aWxkZXI6IHsgLi4uIH0gfSksXG4gICAqICAgICBzMzogZHJpdmVycy5zMyh7IGJ1Y2tldDogXCJteS1idWNrZXRcIiwgcmVnaW9uOiBcImFwLW5vcnRoZWFzdC0yXCIsIC4uLiB9KSxcbiAgICogICB9XG4gICAqIH1cbiAgICogYGBgXG4gICAqL1xuICBzdG9yYWdlPzogU3RvcmFnZUNvbmZpZztcblxuICAvKipcbiAgICogQ2FjaGUg7ISk7KCVIChCZW50b0NhY2hlIOq4sOuwmClcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBpbXBvcnQgeyBkcml2ZXJzLCBzdG9yZSB9IGZyb20gXCJzb25hbXUvY2FjaGVcIjtcbiAgICpcbiAgICogY2FjaGU6IHtcbiAgICogICBkZWZhdWx0OiAnbWFpbicsXG4gICAqICAgc3RvcmVzOiB7XG4gICAqICAgICBtYWluOiBzdG9yZSgpXG4gICAqICAgICAgIC51c2VMMUxheWVyKGRyaXZlcnMubWVtb3J5KHsgbWF4U2l6ZTogJzEwMG1iJyB9KSlcbiAgICogICAgICAgLnVzZUwyTGF5ZXIoZHJpdmVycy5yZWRpcyh7IGNvbm5lY3Rpb246IHJlZGlzQ29ubmVjdGlvbiB9KSlcbiAgICogICAgICAgLnVzZUJ1cyhkcml2ZXJzLnJlZGlzQnVzKHsgY29ubmVjdGlvbjogcmVkaXNDb25uZWN0aW9uIH0pKVxuICAgKiAgIH0sXG4gICAqICAgdHRsOiAnMWgnLFxuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgY2FjaGU/OiBDYWNoZUNvbmZpZztcblxuICBsaWZlY3ljbGU/OiB7XG4gICAgb25TdGFydD86IChzZXJ2ZXI6IEZhc3RpZnlJbnN0YW5jZSkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG4gICAgb25TaHV0ZG93bj86IChzZXJ2ZXI6IEZhc3RpZnlJbnN0YW5jZSkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG4gICAgb25FcnJvcj86IChlcnJvcjogRXJyb3IsIHJlcXVlc3Q6IEZhc3RpZnlSZXF1ZXN0LCByZXBseTogRmFzdGlmeVJlcGx5KSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZDtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFNvbmFtdVRhc2tPcHRpb25zID0ge1xuICAvLyB3b3JrZXLrpbwg7IKs7Jqp7ZWg7KeAIOyXrOu2gCwg6riw67O47KCB7Jy866GcIGRhZW1vbiDrqqjrk5zsl5DshJzrp4wg7IKs7Jqp65CoLlxuICBlbmFibGVXb3JrZXI/OiBib29sZWFuO1xuICB3b3JrZXJPcHRpb25zPzogV29ya2Zsb3dPcHRpb25zO1xuICBjb250ZXh0UHJvdmlkZXI6IChcbiAgICBkZWZhdWx0Q29udGV4dDogUGljazxcbiAgICAgIENvbnRleHQsXG4gICAgICBcInJlcGx5XCIgfCBcInJlcXVlc3RcIiB8IFwiaGVhZGVyc1wiIHwgXCJjcmVhdGVTU0VcIiB8IFwibmFpdGVTdG9yZVwiIHwgXCJsb2NhbGVcIiB8IFwidXNlclwiIHwgXCJzZXNzaW9uXCJcbiAgICA+LFxuICApID0+IENvbnRleHQgfCBQcm9taXNlPENvbnRleHQ+O1xufTtcblxuZXhwb3J0IHR5cGUgU29uYW11U1NST3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIEh5ZHJhdGlvbiDsoITrnrVcbiAgICogLSAnbm9uZSc6IO2VreyDgSDsg4jroZwg66CM642U66eBIChoeWRyYXRpb24gbWlzbWF0Y2gg6rGx7KCVIOyXhuydjCwg6raM7J6lKVxuICAgKiAtICdmdWxsJzogUmVhY3QgaHlkcmF0aW9uIOyLnOuPhCAo7ISc67KEIEhUTUwg7J6s7IKs7JqpLCBtaXNtYXRjaCDso7zsnZgpXG4gICAqIEBkZWZhdWx0ICdub25lJ1xuICAgKi9cbiAgaHlkcmF0aW9uPzogXCJub25lXCIgfCBcImZ1bGxcIjtcbn07XG5cbi8vIE5PVEUoSGF6ZSwgMjUxMjA5KTogY29uZmln7JeQ64qUIFQsIFByb21pc2U8VD4sICgpID0+IFQsICgpID0+IFByb21pc2U8VD7qsIAg66qo65GQIOyYrCDsiJgg7J6I7Ja07JW8IO2VqC5cbmV4cG9ydCBmdW5jdGlvbiBkZWZpbmVDb25maWcoY29uZmlnOiBFeGVjdXRhYmxlPFNvbmFtdUNvbmZpZz4pOiBQcm9taXNlPFNvbmFtdUNvbmZpZz4ge1xuICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjb25maWcoKSk7XG4gIH1cblxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNvbmZpZyk7XG59XG5cbi8qKlxuICogc29uYW11LmNvbmZpZy50cyDtjIzsnbzsnYQg66Gc65Oc7ZWp64uI64ukLlxuICog7J20IOyEpOyglSDtjIzsnbzsnYAg7ZmY6rK97JeQIOuUsOudvCDri6Trpbgg6rK966Gc7JeQIOyeiOydhCDsiJgg7J6I7Iq164uI64ukLlxuICogZGlzdOulvCDruYzrk5ztlZjripQg7ZmY6rK97J20652866m0IGRpc3Qg67CU66GcIOyVhOuemOyXkCDsnojsnYQg6rKD7J206rOgKGNsaS13cmFwcGVyLnRz7JeQ7IScIOu5jOuTnCksXG4gKiDqt7jroIfsp4Ag7JWK7J2AIO2ZmOqyveydtOudvOuptCDtlITroZzsoJ3tirgg66Oo7Yq47JeQIOyeiOydhCDqsoPsnoXri4jri6QuXG4gKlxuICog7J20IO2VqOyImOuKlCDsnZjrj4TsoIHsnLzroZwg64uk66W4IOydmOyhtOyEseydmCDsgqzsmqnsnYQg7LWc64yA7ZWcIOuwsOygnO2VmOyYgOyKteuLiOuLpC5cbiAqIOydtOuKlCDsi6Ttlokg7LSI6riw7JeQIOy1nOuMgO2VnCDruaDrpbTqsowg7ISk7KCV7J2EIOydveyWtOyYrCDsiJgg7J6I64+E66GdIO2VmOq4sCDsnITtlajsnoXri4jri6QuXG4gKiDrlLDrnbzshJwg6rK966GcIGNvbmNhdOqzvCBVUkwgc2NoZW1lIOy2lOqwgOuPhCDri6jsiJztlZwg66y47J6Q7Je0IOyhsOyekeycvOuhnCDsspjrpqztlZjsmIDsirXri4jri6QuXG4gKlxuICogQHBhcmFtIHJvb3RQYXRoXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZENvbmZpZyhyb290UGF0aDogc3RyaW5nKTogUHJvbWlzZTxTb25hbXVDb25maWc+IHtcbiAgY29uc3Qgc3RhcnQgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgY29uc3QgY29uZmlnUGF0aCA9XG4gICAgcHJvY2Vzcy5lbnYuSE9UID09PSBcInllc1wiIHx8IHByb2Nlc3MuZW52LlZJVEVTVCA9PT0gXCJ0cnVlXCJcbiAgICAgID8gYCR7cm9vdFBhdGh9L3NyYy9zb25hbXUuY29uZmlnLnRzYFxuICAgICAgOiBgJHtyb290UGF0aH0vZGlzdC9zb25hbXUuY29uZmlnLmpzYDtcbiAgY29uc3QgeyBkZWZhdWx0OiBjb25maWcgfSA9IGF3YWl0IGltcG9ydChgZmlsZTovLyR7Y29uZmlnUGF0aH1gKTtcbiAgY29uc3QgaW1wb3J0VGltZSA9IHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnQ7XG4gIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInRlc3RcIiAmJlxuICAgIGNvbnNvbGUubG9nKGBbVElNSU5HXSBsb2FkQ29uZmlnIHRvb2sgJHtpbXBvcnRUaW1lLnRvRml4ZWQoMil9bXNgKTtcbiAgcmV0dXJuIGNvbmZpZztcbn1cbiJdLCJuYW1lcyI6WyJkZWZpbmVDb25maWciLCJjb25maWciLCJQcm9taXNlIiwicmVzb2x2ZSIsImxvYWRDb25maWciLCJyb290UGF0aCIsInN0YXJ0IiwicGVyZm9ybWFuY2UiLCJub3ciLCJjb25maWdQYXRoIiwicHJvY2VzcyIsImVudiIsIkhPVCIsIlZJVEVTVCIsImRlZmF1bHQiLCJpbXBvcnRUaW1lIiwiTk9ERV9FTlYiLCJjb25zb2xlIiwibG9nIiwidG9GaXhlZCJdLCJtYXBwaW5ncyI6IkFBMlFBLHVGQUF1RjtBQUN2RixPQUFPLFNBQVNBLGFBQWFDLE1BQWdDO0lBQzNELElBQUksT0FBT0EsV0FBVyxZQUFZO1FBQ2hDLE9BQU9DLFFBQVFDLE9BQU8sQ0FBQ0Y7SUFDekI7SUFFQSxPQUFPQyxRQUFRQyxPQUFPLENBQUNGO0FBQ3pCO0FBRUE7Ozs7Ozs7Ozs7OztDQVlDLEdBQ0QsT0FBTyxlQUFlRyxXQUFXQyxRQUFnQjtJQUMvQyxNQUFNQyxRQUFRQyxZQUFZQyxHQUFHO0lBQzdCLE1BQU1DLGFBQ0pDLFFBQVFDLEdBQUcsQ0FBQ0MsR0FBRyxLQUFLLFNBQVNGLFFBQVFDLEdBQUcsQ0FBQ0UsTUFBTSxLQUFLLFNBQ2hELEdBQUdSLFNBQVMscUJBQXFCLENBQUMsR0FDbEMsR0FBR0EsU0FBUyxzQkFBc0IsQ0FBQztJQUN6QyxNQUFNLEVBQUVTLFNBQVNiLE1BQU0sRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFUSxZQUFZO0lBQy9ELE1BQU1NLGFBQWFSLFlBQVlDLEdBQUcsS0FBS0Y7SUFDdkNJLFFBQVFDLEdBQUcsQ0FBQ0ssUUFBUSxLQUFLLFVBQ3ZCQyxRQUFRQyxHQUFHLENBQUMsQ0FBQyx5QkFBeUIsRUFBRUgsV0FBV0ksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ25FLE9BQU9sQjtBQUNUIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-command.d.ts","sourceRoot":"","sources":["../../src/bin/test-command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test-command.d.ts","sourceRoot":"","sources":["../../src/bin/test-command.ts"],"names":[],"mappings":"AAkCA,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAmIjD"}
|
package/dist/bin/test-command.js
CHANGED
|
@@ -2,14 +2,12 @@ import path from "node:path";
|
|
|
2
2
|
import chalk from "chalk";
|
|
3
3
|
import { loadConfig } from "../api/config.js";
|
|
4
4
|
import { findApiRootPath } from "../utils/utils.js";
|
|
5
|
-
|
|
6
|
-
// VITEST=true 임시 설정으로 loadConfig가 src/sonamu.config.ts 경로를 사용하도록 함
|
|
5
|
+
async function loadTestConfig() {
|
|
7
6
|
const prevVitest = process.env.VITEST;
|
|
8
7
|
process.env.VITEST = "true";
|
|
9
|
-
let config;
|
|
10
8
|
try {
|
|
11
9
|
const apiRootPath = findApiRootPath();
|
|
12
|
-
|
|
10
|
+
return await loadConfig(apiRootPath);
|
|
13
11
|
} finally{
|
|
14
12
|
if (prevVitest === undefined) {
|
|
15
13
|
delete process.env.VITEST;
|
|
@@ -17,29 +15,47 @@ export async function testCommand() {
|
|
|
17
15
|
process.env.VITEST = prevVitest;
|
|
18
16
|
}
|
|
19
17
|
}
|
|
20
|
-
|
|
18
|
+
}
|
|
19
|
+
function resolveTestBaseUrl(config) {
|
|
20
|
+
const port = config.server.listen?.port ?? 3000;
|
|
21
|
+
const host = config.server.listen?.host ?? "localhost";
|
|
22
|
+
const routePrefix = config.test?.devRunner?.routePrefix ?? "/__test__";
|
|
23
|
+
return {
|
|
24
|
+
host,
|
|
25
|
+
port,
|
|
26
|
+
routePrefix,
|
|
27
|
+
baseUrl: `http://${host}:${port}${routePrefix}`
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export async function testCommand() {
|
|
21
31
|
const args = process.argv.slice(3);
|
|
32
|
+
const config = await loadTestConfig();
|
|
33
|
+
// process.argv 파싱: sonamu test [file...] --pattern "이름" --traces --status
|
|
22
34
|
const files = [];
|
|
23
35
|
let pattern;
|
|
24
36
|
let showTraces = false;
|
|
37
|
+
let showStatus = false;
|
|
25
38
|
for(let i = 0; i < args.length; i++){
|
|
26
39
|
const arg = args[i];
|
|
27
40
|
if (arg === "--pattern" || arg === "-p") {
|
|
28
41
|
pattern = args[++i];
|
|
29
42
|
} else if (arg === "--traces" || arg === "-t") {
|
|
30
43
|
showTraces = true;
|
|
44
|
+
} else if (arg === "--status" || arg === "-s") {
|
|
45
|
+
showStatus = true;
|
|
31
46
|
} else if (!arg.startsWith("-")) {
|
|
32
47
|
files.push(arg);
|
|
33
48
|
}
|
|
34
49
|
}
|
|
50
|
+
if (showStatus) {
|
|
51
|
+
return testStatusCommand(config);
|
|
52
|
+
}
|
|
35
53
|
if (!config.test?.devRunner?.enabled) {
|
|
36
54
|
console.error(chalk.red("devRunner가 활성화되지 않았습니다. sonamu.config.ts에서 test.devRunner.enabled: true 설정이 필요합니다"));
|
|
37
55
|
process.exit(1);
|
|
38
56
|
}
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
const routePrefix = config.test?.devRunner?.routePrefix ?? "/__test__";
|
|
42
|
-
const url = `http://${host}:${port}${routePrefix}/run`;
|
|
57
|
+
const { baseUrl } = resolveTestBaseUrl(config);
|
|
58
|
+
const url = `${baseUrl}/run`;
|
|
43
59
|
const payload = {};
|
|
44
60
|
if (files.length > 0) {
|
|
45
61
|
payload.files = files;
|
|
@@ -143,5 +159,32 @@ function collectTracesFromResults(nodes) {
|
|
|
143
159
|
}
|
|
144
160
|
return result;
|
|
145
161
|
}
|
|
162
|
+
async function testStatusCommand(config) {
|
|
163
|
+
if (!config.test?.devRunner?.enabled) {
|
|
164
|
+
console.error(chalk.red("devRunner가 활성화되지 않았습니다. sonamu.config.ts에서 test.devRunner.enabled: true 설정이 필요합니다"));
|
|
165
|
+
process.exit(1);
|
|
166
|
+
}
|
|
167
|
+
const { baseUrl } = resolveTestBaseUrl(config);
|
|
168
|
+
const url = `${baseUrl}/status`;
|
|
169
|
+
try {
|
|
170
|
+
const response = await fetch(url);
|
|
171
|
+
if (!response.ok) {
|
|
172
|
+
console.error(chalk.red(`예상하지 못한 응답: ${response.status}`));
|
|
173
|
+
process.exit(1);
|
|
174
|
+
}
|
|
175
|
+
const status = await response.json();
|
|
176
|
+
console.log(chalk.bold("DevRunner 상태:"));
|
|
177
|
+
console.log(` ready: ${status.ready ? chalk.green("true") : chalk.red("false")}`);
|
|
178
|
+
console.log(` running: ${status.running ? chalk.yellow("true") : "false"}`);
|
|
179
|
+
console.log(` lastRunAt: ${status.lastRunAt ?? chalk.dim("없음")}`);
|
|
180
|
+
console.log(` sseAvailable: ${status.sseAvailable ? chalk.green("true") : "false"}`);
|
|
181
|
+
} catch (err) {
|
|
182
|
+
if (err instanceof TypeError && err.cause) {
|
|
183
|
+
console.error(chalk.red("dev 서버에 연결할 수 없습니다. sonamu dev가 실행 중인지 확인하세요"));
|
|
184
|
+
process.exit(1);
|
|
185
|
+
}
|
|
186
|
+
throw err;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
146
189
|
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vdGVzdC1jb21tYW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCB0eXBlIHsgU29uYW11Q29uZmlnIH0gZnJvbSBcIi4uL2FwaS9jb25maWdcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgfSBmcm9tIFwiLi4vYXBpL2NvbmZpZ1wiO1xuaW1wb3J0IHR5cGUgeyBSdW5SZXN1bHQsIFRlc3RDYXNlUmVzdWx0IH0gZnJvbSBcIi4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IGZpbmRBcGlSb290UGF0aCB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdENvbW1hbmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIFZJVEVTVD10cnVlIOyehOyLnCDshKTsoJXsnLzroZwgbG9hZENvbmZpZ+qwgCBzcmMvc29uYW11LmNvbmZpZy50cyDqsr3roZzrpbwg7IKs7Jqp7ZWY64+E66GdIO2VqFxuICBjb25zdCBwcmV2Vml0ZXN0ID0gcHJvY2Vzcy5lbnYuVklURVNUO1xuICBwcm9jZXNzLmVudi5WSVRFU1QgPSBcInRydWVcIjtcbiAgbGV0IGNvbmZpZzogU29uYW11Q29uZmlnO1xuICB0cnkge1xuICAgIGNvbnN0IGFwaVJvb3RQYXRoID0gZmluZEFwaVJvb3RQYXRoKCk7XG4gICAgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZyhhcGlSb290UGF0aCk7XG4gIH0gZmluYWxseSB7XG4gICAgaWYgKHByZXZWaXRlc3QgPT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVsZXRlIHByb2Nlc3MuZW52LlZJVEVTVDtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJvY2Vzcy5lbnYuVklURVNUID0gcHJldlZpdGVzdDtcbiAgICB9XG4gIH1cblxuICAvLyBwcm9jZXNzLmFyZ3Yg7YyM7IuxOiBzb25hbXUgdGVzdCBbZmlsZS4uLl0gLS1wYXR0ZXJuIFwi7J2066aEXCIgLS10cmFjZXNcbiAgY29uc3QgYXJncyA9IHByb2Nlc3MuYXJndi5zbGljZSgzKTtcbiAgY29uc3QgZmlsZXM6IHN0cmluZ1tdID0gW107XG4gIGxldCBwYXR0ZXJuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGxldCBzaG93VHJhY2VzID0gZmFsc2U7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYXJnID0gYXJnc1tpXTtcbiAgICBpZiAoYXJnID09PSBcIi0tcGF0dGVyblwiIHx8IGFyZyA9PT0gXCItcFwiKSB7XG4gICAgICBwYXR0ZXJuID0gYXJnc1srK2ldO1xuICAgIH0gZWxzZSBpZiAoYXJnID09PSBcIi0tdHJhY2VzXCIgfHwgYXJnID09PSBcIi10XCIpIHtcbiAgICAgIHNob3dUcmFjZXMgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIWFyZy5zdGFydHNXaXRoKFwiLVwiKSkge1xuICAgICAgZmlsZXMucHVzaChhcmcpO1xuICAgIH1cbiAgfVxuXG4gIGlmICghY29uZmlnLnRlc3Q/LmRldlJ1bm5lcj8uZW5hYmxlZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBjaGFsay5yZWQoXG4gICAgICAgIFwiZGV2UnVubmVy6rCAIO2ZnOyEse2ZlOuQmOyngCDslYrslZjsirXri4jri6QuIHNvbmFtdS5jb25maWcudHPsl5DshJwgdGVzdC5kZXZSdW5uZXIuZW5hYmxlZDogdHJ1ZSDshKTsoJXsnbQg7ZWE7JqU7ZWp64uI64ukXCIsXG4gICAgICApLFxuICAgICk7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG5cbiAgY29uc3QgcG9ydCA9IGNvbmZpZy5zZXJ2ZXIubGlzdGVuPy5wb3J0ID8/IDMwMDA7XG4gIGNvbnN0IGhvc3QgPSBjb25maWcuc2VydmVyLmxpc3Rlbj8uaG9zdCA/PyBcImxvY2FsaG9zdFwiO1xuICBjb25zdCByb3V0ZVByZWZpeCA9IGNvbmZpZy50ZXN0Py5kZXZSdW5uZXI/LnJvdXRlUHJlZml4ID8/IFwiL19fdGVzdF9fXCI7XG4gIGNvbnN0IHVybCA9IGBodHRwOi8vJHtob3N0fToke3BvcnR9JHtyb3V0ZVByZWZpeH0vcnVuYDtcblxuICBjb25zdCBwYXlsb2FkOiB7IGZpbGVzPzogc3RyaW5nW107IHBhdHRlcm4/OiBzdHJpbmcgfSA9IHt9O1xuICBpZiAoZmlsZXMubGVuZ3RoID4gMCkge1xuICAgIHBheWxvYWQuZmlsZXMgPSBmaWxlcztcbiAgfVxuICBpZiAocGF0dGVybikge1xuICAgIHBheWxvYWQucGF0dGVybiA9IHBhdHRlcm47XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsLCB7XG4gICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkocGF5bG9hZCksXG4gICAgfSk7XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGNoYWxrLnJlZChcbiAgICAgICAgICBcImRldlJ1bm5lcuqwgCDtmZzshLHtmZTrkJjsp4Ag7JWK7JWY7Iq164uI64ukLiBzb25hbXUuY29uZmlnLnRz7JeQ7IScIHRlc3QuZGV2UnVubmVyLmVuYWJsZWQ6IHRydWUg7ISk7KCV7J20IO2VhOyalO2VqeuLiOuLpFwiLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA1MDApIHtcbiAgICAgIGNvbnN0IGVycm9yQm9keSA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIHsgZXJyb3I/OiBzdHJpbmcgfTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKFwiVml0ZXN0IOyduOyKpO2EtOyKpOqwgCDslYTsp4Eg7KSA67mE65CY7KeAIOyViuyVmOyKteuLiOuLpFwiKSk7XG4gICAgICBpZiAoZXJyb3JCb2R5LmVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKGVycm9yQm9keS5lcnJvcikpO1xuICAgICAgfVxuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKGDsmIjsg4HtlZjsp4Ag66q77ZWcIOydkeuLtTogJHtyZXNwb25zZS5zdGF0dXN9YCkpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIFJ1blJlc3VsdDtcblxuICAgIGNvbnN0IHsgcGFzc2VkLCBmYWlsZWQ6IGZhaWxlZENvdW50LCB0b3RhbCwgZHVyYXRpb25NcyB9ID0gcmVzdWx0LnN1bW1hcnk7XG4gICAgY29uc3QgcGFzc2VkU3RyID0gY2hhbGsuZ3JlZW4oYCR7cGFzc2VkfSBwYXNzZWRgKTtcbiAgICBjb25zdCBmYWlsZWRTdHIgPVxuICAgICAgZmFpbGVkQ291bnQgPiAwID8gY2hhbGsucmVkKGAke2ZhaWxlZENvdW50fSBmYWlsZWRgKSA6IGAke2ZhaWxlZENvdW50fSBmYWlsZWRgO1xuICAgIGNvbnNvbGUubG9nKGBcXG5UZXN0czogJHtwYXNzZWRTdHJ9LCAke2ZhaWxlZFN0cn0sICR7dG90YWx9IHRvdGFsYCk7XG4gICAgY29uc29sZS5sb2coY2hhbGsuZGltKGBEdXJhdGlvbjogJHtkdXJhdGlvbk1zfW1zYCkpO1xuXG4gICAgY29uc3QgZmFpbGVkVGVzdHMgPSBjb2xsZWN0RmFpbGVkRnJvbVJlc3VsdHMocmVzdWx0LnJlc3VsdHMpO1xuICAgIGlmIChmYWlsZWRUZXN0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5yZWQuYm9sZChcIlxcbkZhaWxlZCB0ZXN0czpcIikpO1xuICAgICAgZm9yIChjb25zdCBmIG9mIGZhaWxlZFRlc3RzKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGAgICR7Y2hhbGsucmVkKFwieFwiKX0gJHtmLmZ1bGxOYW1lfSAke2NoYWxrLmRpbShgKCR7Zi5maWxlfSlgKX1gKTtcbiAgICAgICAgaWYgKGYuZXJyb3IpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgICAgICR7Y2hhbGsucmVkKGYuZXJyb3IubWVzc2FnZSl9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2hvd1RyYWNlcykge1xuICAgICAgY29uc3QgdGVzdHNXaXRoVHJhY2VzID0gY29sbGVjdFRyYWNlc0Zyb21SZXN1bHRzKHJlc3VsdC5yZXN1bHRzKTtcbiAgICAgIGlmICh0ZXN0c1dpdGhUcmFjZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuLmJvbGQoXCJcXG5UcmFjZXM6XCIpKTtcbiAgICAgICAgZm9yIChjb25zdCB7IHRlc3ROYW1lLCBmaWxlLCB0cmFjZXMgfSBvZiB0ZXN0c1dpdGhUcmFjZXMpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgXFxuICAke2NoYWxrLmJvbGQodGVzdE5hbWUpfWApO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGAgICR7Y2hhbGsuZGltKHBhdGguYmFzZW5hbWUoZmlsZSkpfWApO1xuICAgICAgICAgIGZvciAoY29uc3QgdHJhY2Ugb2YgdHJhY2VzKSB7XG4gICAgICAgICAgICBjb25zdCBsb2MgPSBgJHtwYXRoLmJhc2VuYW1lKHRyYWNlLmZpbGVQYXRoKX06JHt0cmFjZS5saW5lTnVtYmVyfWA7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZVN0ciA9XG4gICAgICAgICAgICAgIHR5cGVvZiB0cmFjZS52YWx1ZSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICAgID8gdHJhY2UudmFsdWVcbiAgICAgICAgICAgICAgICA6IChKU09OLnN0cmluZ2lmeSh0cmFjZS52YWx1ZSwgbnVsbCwgMikgPz8gXCJ1bmRlZmluZWRcIik7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgXFxuICAgICR7Y2hhbGsueWVsbG93KGBbJHt0cmFjZS5rZXl9XWApfSAke2NoYWxrLmRpbShsb2MpfWApO1xuICAgICAgICAgICAgY29uc3QgaW5kZW50ZWQgPSB2YWx1ZVN0ci5zcGxpdChcIlxcblwiKS5qb2luKFwiXFxuICAgIFwiKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGAgICAgJHtpbmRlbnRlZH1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXJlc3VsdC5vaykge1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIFR5cGVFcnJvciAmJiBlcnIuY2F1c2UpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIGNoYWxrLnJlZChcImRldiDshJzrsoTsl5Ag7Jew6rKw7ZWgIOyImCDsl4bsirXri4jri6QuIHNvbmFtdSBkZXbqsIAg7Iuk7ZaJIOykkeyduOyngCDtmZXsnbjtlZjshLjsmpRcIiksXG4gICAgICApO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgICB0aHJvdyBlcnI7XG4gIH1cbn1cblxuZnVuY3Rpb24gY29sbGVjdEZhaWxlZEZyb21SZXN1bHRzKG5vZGVzOiBUZXN0Q2FzZVJlc3VsdFtdKTogVGVzdENhc2VSZXN1bHRbXSB7XG4gIGNvbnN0IHJlc3VsdDogVGVzdENhc2VSZXN1bHRbXSA9IFtdO1xuICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICBpZiAobm9kZS5raW5kID09PSBcInRlc3RcIiAmJiBub2RlLnN0YXRlID09PSBcImZhaWxlZFwiKSB7XG4gICAgICByZXN1bHQucHVzaChub2RlKTtcbiAgICB9XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgcmVzdWx0LnB1c2goLi4uY29sbGVjdEZhaWxlZEZyb21SZXN1bHRzKG5vZGUuY2hpbGRyZW4pKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gY29sbGVjdFRyYWNlc0Zyb21SZXN1bHRzKFxuICBub2RlczogVGVzdENhc2VSZXN1bHRbXSxcbik6IHsgdGVzdE5hbWU6IHN0cmluZzsgZmlsZTogc3RyaW5nOyB0cmFjZXM6IFRlc3RDYXNlUmVzdWx0W1widHJhY2VzXCJdIH1bXSB7XG4gIGNvbnN0IHJlc3VsdDogeyB0ZXN0TmFtZTogc3RyaW5nOyBmaWxlOiBzdHJpbmc7IHRyYWNlczogVGVzdENhc2VSZXN1bHRbXCJ0cmFjZXNcIl0gfVtdID0gW107XG4gIGZvciAoY29uc3Qgbm9kZSBvZiBub2Rlcykge1xuICAgIGlmIChub2RlLmtpbmQgPT09IFwidGVzdFwiICYmIG5vZGUudHJhY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc3VsdC5wdXNoKHsgdGVzdE5hbWU6IG5vZGUuZnVsbE5hbWUsIGZpbGU6IG5vZGUuZmlsZSwgdHJhY2VzOiBub2RlLnRyYWNlcyB9KTtcbiAgICB9XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgcmVzdWx0LnB1c2goLi4uY29sbGVjdFRyYWNlc0Zyb21SZXN1bHRzKG5vZGUuY2hpbGRyZW4pKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdLCJuYW1lcyI6WyJwYXRoIiwiY2hhbGsiLCJsb2FkQ29uZmlnIiwiZmluZEFwaVJvb3RQYXRoIiwidGVzdENvbW1hbmQiLCJwcmV2Vml0ZXN0IiwicHJvY2VzcyIsImVudiIsIlZJVEVTVCIsImNvbmZpZyIsImFwaVJvb3RQYXRoIiwidW5kZWZpbmVkIiwiYXJncyIsImFyZ3YiLCJzbGljZSIsImZpbGVzIiwicGF0dGVybiIsInNob3dUcmFjZXMiLCJpIiwibGVuZ3RoIiwiYXJnIiwic3RhcnRzV2l0aCIsInB1c2giLCJ0ZXN0IiwiZGV2UnVubmVyIiwiZW5hYmxlZCIsImNvbnNvbGUiLCJlcnJvciIsInJlZCIsImV4aXQiLCJwb3J0Iiwic2VydmVyIiwibGlzdGVuIiwiaG9zdCIsInJvdXRlUHJlZml4IiwidXJsIiwicGF5bG9hZCIsInJlc3BvbnNlIiwiZmV0Y2giLCJtZXRob2QiLCJoZWFkZXJzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGF0dXMiLCJlcnJvckJvZHkiLCJqc29uIiwib2siLCJyZXN1bHQiLCJwYXNzZWQiLCJmYWlsZWQiLCJmYWlsZWRDb3VudCIsInRvdGFsIiwiZHVyYXRpb25NcyIsInN1bW1hcnkiLCJwYXNzZWRTdHIiLCJncmVlbiIsImZhaWxlZFN0ciIsImxvZyIsImRpbSIsImZhaWxlZFRlc3RzIiwiY29sbGVjdEZhaWxlZEZyb21SZXN1bHRzIiwicmVzdWx0cyIsImJvbGQiLCJmIiwiZnVsbE5hbWUiLCJmaWxlIiwibWVzc2FnZSIsInRlc3RzV2l0aFRyYWNlcyIsImNvbGxlY3RUcmFjZXNGcm9tUmVzdWx0cyIsImN5YW4iLCJ0ZXN0TmFtZSIsInRyYWNlcyIsImJhc2VuYW1lIiwidHJhY2UiLCJsb2MiLCJmaWxlUGF0aCIsImxpbmVOdW1iZXIiLCJ2YWx1ZVN0ciIsInZhbHVlIiwieWVsbG93Iiwia2V5IiwiaW5kZW50ZWQiLCJzcGxpdCIsImpvaW4iLCJlcnIiLCJUeXBlRXJyb3IiLCJjYXVzZSIsIm5vZGVzIiwibm9kZSIsImtpbmQiLCJzdGF0ZSIsImNoaWxkcmVuIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxVQUFVLFlBQVk7QUFDN0IsT0FBT0MsV0FBVyxRQUFRO0FBRTFCLFNBQVNDLFVBQVUsUUFBUSxtQkFBZ0I7QUFFM0MsU0FBU0MsZUFBZSxRQUFRLG9CQUFpQjtBQUVqRCxPQUFPLGVBQWVDO0lBQ3BCLG1FQUFtRTtJQUNuRSxNQUFNQyxhQUFhQyxRQUFRQyxHQUFHLENBQUNDLE1BQU07SUFDckNGLFFBQVFDLEdBQUcsQ0FBQ0MsTUFBTSxHQUFHO0lB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
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vdGVzdC1jb21tYW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCB0eXBlIHsgU29uYW11Q29uZmlnIH0gZnJvbSBcIi4uL2FwaS9jb25maWdcIjtcbmltcG9ydCB7IGxvYWRDb25maWcgfSBmcm9tIFwiLi4vYXBpL2NvbmZpZ1wiO1xuaW1wb3J0IHR5cGUgeyBSdW5SZXN1bHQsIFRlc3RDYXNlUmVzdWx0IH0gZnJvbSBcIi4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IGZpbmRBcGlSb290UGF0aCB9IGZyb20gXCIuLi91dGlscy91dGlsc1wiO1xuXG5hc3luYyBmdW5jdGlvbiBsb2FkVGVzdENvbmZpZygpOiBQcm9taXNlPFNvbmFtdUNvbmZpZz4ge1xuICBjb25zdCBwcmV2Vml0ZXN0ID0gcHJvY2Vzcy5lbnYuVklURVNUO1xuICBwcm9jZXNzLmVudi5WSVRFU1QgPSBcInRydWVcIjtcbiAgdHJ5IHtcbiAgICBjb25zdCBhcGlSb290UGF0aCA9IGZpbmRBcGlSb290UGF0aCgpO1xuICAgIHJldHVybiBhd2FpdCBsb2FkQ29uZmlnKGFwaVJvb3RQYXRoKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAocHJldlZpdGVzdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZWxldGUgcHJvY2Vzcy5lbnYuVklURVNUO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9jZXNzLmVudi5WSVRFU1QgPSBwcmV2Vml0ZXN0O1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlVGVzdEJhc2VVcmwoY29uZmlnOiBTb25hbXVDb25maWcpOiB7XG4gIGhvc3Q6IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xuICByb3V0ZVByZWZpeDogc3RyaW5nO1xuICBiYXNlVXJsOiBzdHJpbmc7XG59IHtcbiAgY29uc3QgcG9ydCA9IGNvbmZpZy5zZXJ2ZXIubGlzdGVuPy5wb3J0ID8/IDMwMDA7XG4gIGNvbnN0IGhvc3QgPSBjb25maWcuc2VydmVyLmxpc3Rlbj8uaG9zdCA/PyBcImxvY2FsaG9zdFwiO1xuICBjb25zdCByb3V0ZVByZWZpeCA9IGNvbmZpZy50ZXN0Py5kZXZSdW5uZXI/LnJvdXRlUHJlZml4ID8/IFwiL19fdGVzdF9fXCI7XG4gIHJldHVybiB7IGhvc3QsIHBvcnQsIHJvdXRlUHJlZml4LCBiYXNlVXJsOiBgaHR0cDovLyR7aG9zdH06JHtwb3J0fSR7cm91dGVQcmVmaXh9YCB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdGVzdENvbW1hbmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGFyZ3MgPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoMyk7XG5cbiAgY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZFRlc3RDb25maWcoKTtcblxuICAvLyBwcm9jZXNzLmFyZ3Yg7YyM7IuxOiBzb25hbXUgdGVzdCBbZmlsZS4uLl0gLS1wYXR0ZXJuIFwi7J2066aEXCIgLS10cmFjZXMgLS1zdGF0dXNcbiAgY29uc3QgZmlsZXM6IHN0cmluZ1tdID0gW107XG4gIGxldCBwYXR0ZXJuOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGxldCBzaG93VHJhY2VzID0gZmFsc2U7XG4gIGxldCBzaG93U3RhdHVzID0gZmFsc2U7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgYXJnID0gYXJnc1tpXTtcbiAgICBpZiAoYXJnID09PSBcIi0tcGF0dGVyblwiIHx8IGFyZyA9PT0gXCItcFwiKSB7XG4gICAgICBwYXR0ZXJuID0gYXJnc1srK2ldO1xuICAgIH0gZWxzZSBpZiAoYXJnID09PSBcIi0tdHJhY2VzXCIgfHwgYXJnID09PSBcIi10XCIpIHtcbiAgICAgIHNob3dUcmFjZXMgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoYXJnID09PSBcIi0tc3RhdHVzXCIgfHwgYXJnID09PSBcIi1zXCIpIHtcbiAgICAgIHNob3dTdGF0dXMgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIWFyZy5zdGFydHNXaXRoKFwiLVwiKSkge1xuICAgICAgZmlsZXMucHVzaChhcmcpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChzaG93U3RhdHVzKSB7XG4gICAgcmV0dXJuIHRlc3RTdGF0dXNDb21tYW5kKGNvbmZpZyk7XG4gIH1cblxuICBpZiAoIWNvbmZpZy50ZXN0Py5kZXZSdW5uZXI/LmVuYWJsZWQpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgY2hhbGsucmVkKFxuICAgICAgICBcImRldlJ1bm5lcuqwgCDtmZzshLHtmZTrkJjsp4Ag7JWK7JWY7Iq164uI64ukLiBzb25hbXUuY29uZmlnLnRz7JeQ7IScIHRlc3QuZGV2UnVubmVyLmVuYWJsZWQ6IHRydWUg7ISk7KCV7J20IO2VhOyalO2VqeuLiOuLpFwiLFxuICAgICAgKSxcbiAgICApO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxuXG4gIGNvbnN0IHsgYmFzZVVybCB9ID0gcmVzb2x2ZVRlc3RCYXNlVXJsKGNvbmZpZyk7XG4gIGNvbnN0IHVybCA9IGAke2Jhc2VVcmx9L3J1bmA7XG5cbiAgY29uc3QgcGF5bG9hZDogeyBmaWxlcz86IHN0cmluZ1tdOyBwYXR0ZXJuPzogc3RyaW5nIH0gPSB7fTtcbiAgaWYgKGZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICBwYXlsb2FkLmZpbGVzID0gZmlsZXM7XG4gIH1cbiAgaWYgKHBhdHRlcm4pIHtcbiAgICBwYXlsb2FkLnBhdHRlcm4gPSBwYXR0ZXJuO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCwge1xuICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLFxuICAgIH0pO1xuXG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBjaGFsay5yZWQoXG4gICAgICAgICAgXCJkZXZSdW5uZXLqsIAg7Zmc7ISx7ZmU65CY7KeAIOyViuyVmOyKteuLiOuLpC4gc29uYW11LmNvbmZpZy50c+yXkOyEnCB0ZXN0LmRldlJ1bm5lci5lbmFibGVkOiB0cnVlIOyEpOygleydtCDtlYTsmpTtlanri4jri6RcIixcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICBjb25zdCBlcnJvckJvZHkgPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyB7IGVycm9yPzogc3RyaW5nIH07XG4gICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZChcIlZpdGVzdCDsnbjsiqTthLTsiqTqsIAg7JWE7KeBIOykgOu5hOuQmOyngCDslYrslZjsirXri4jri6RcIikpO1xuICAgICAgaWYgKGVycm9yQm9keS5lcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZChlcnJvckJvZHkuZXJyb3IpKTtcbiAgICAgIH1cbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGNoYWxrLnJlZChg7JiI7IOB7ZWY7KeAIOuqu+2VnCDsnZHri7U6ICR7cmVzcG9uc2Uuc3RhdHVzfWApKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQgPSAoYXdhaXQgcmVzcG9uc2UuanNvbigpKSBhcyBSdW5SZXN1bHQ7XG5cbiAgICBjb25zdCB7IHBhc3NlZCwgZmFpbGVkOiBmYWlsZWRDb3VudCwgdG90YWwsIGR1cmF0aW9uTXMgfSA9IHJlc3VsdC5zdW1tYXJ5O1xuICAgIGNvbnN0IHBhc3NlZFN0ciA9IGNoYWxrLmdyZWVuKGAke3Bhc3NlZH0gcGFzc2VkYCk7XG4gICAgY29uc3QgZmFpbGVkU3RyID1cbiAgICAgIGZhaWxlZENvdW50ID4gMCA/IGNoYWxrLnJlZChgJHtmYWlsZWRDb3VudH0gZmFpbGVkYCkgOiBgJHtmYWlsZWRDb3VudH0gZmFpbGVkYDtcbiAgICBjb25zb2xlLmxvZyhgXFxuVGVzdHM6ICR7cGFzc2VkU3RyfSwgJHtmYWlsZWRTdHJ9LCAke3RvdGFsfSB0b3RhbGApO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmRpbShgRHVyYXRpb246ICR7ZHVyYXRpb25Nc31tc2ApKTtcblxuICAgIGNvbnN0IGZhaWxlZFRlc3RzID0gY29sbGVjdEZhaWxlZEZyb21SZXN1bHRzKHJlc3VsdC5yZXN1bHRzKTtcbiAgICBpZiAoZmFpbGVkVGVzdHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsucmVkLmJvbGQoXCJcXG5GYWlsZWQgdGVzdHM6XCIpKTtcbiAgICAgIGZvciAoY29uc3QgZiBvZiBmYWlsZWRUZXN0cykge1xuICAgICAgICBjb25zb2xlLmxvZyhgICAke2NoYWxrLnJlZChcInhcIil9ICR7Zi5mdWxsTmFtZX0gJHtjaGFsay5kaW0oYCgke2YuZmlsZX0pYCl9YCk7XG4gICAgICAgIGlmIChmLmVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYCAgICAke2NoYWxrLnJlZChmLmVycm9yLm1lc3NhZ2UpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHNob3dUcmFjZXMpIHtcbiAgICAgIGNvbnN0IHRlc3RzV2l0aFRyYWNlcyA9IGNvbGxlY3RUcmFjZXNGcm9tUmVzdWx0cyhyZXN1bHQucmVzdWx0cyk7XG4gICAgICBpZiAodGVzdHNXaXRoVHJhY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbi5ib2xkKFwiXFxuVHJhY2VzOlwiKSk7XG4gICAgICAgIGZvciAoY29uc3QgeyB0ZXN0TmFtZSwgZmlsZSwgdHJhY2VzIH0gb2YgdGVzdHNXaXRoVHJhY2VzKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYFxcbiAgJHtjaGFsay5ib2xkKHRlc3ROYW1lKX1gKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgICAke2NoYWxrLmRpbShwYXRoLmJhc2VuYW1lKGZpbGUpKX1gKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHRyYWNlIG9mIHRyYWNlcykge1xuICAgICAgICAgICAgY29uc3QgbG9jID0gYCR7cGF0aC5iYXNlbmFtZSh0cmFjZS5maWxlUGF0aCl9OiR7dHJhY2UubGluZU51bWJlcn1gO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVTdHIgPVxuICAgICAgICAgICAgICB0eXBlb2YgdHJhY2UudmFsdWUgPT09IFwic3RyaW5nXCJcbiAgICAgICAgICAgICAgICA/IHRyYWNlLnZhbHVlXG4gICAgICAgICAgICAgICAgOiAoSlNPTi5zdHJpbmdpZnkodHJhY2UudmFsdWUsIG51bGwsIDIpID8/IFwidW5kZWZpbmVkXCIpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coYFxcbiAgICAke2NoYWxrLnllbGxvdyhgWyR7dHJhY2Uua2V5fV1gKX0gJHtjaGFsay5kaW0obG9jKX1gKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGVudGVkID0gdmFsdWVTdHIuc3BsaXQoXCJcXG5cIikuam9pbihcIlxcbiAgICBcIik7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgICAgICR7aW5kZW50ZWR9YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFyZXN1bHQub2spIHtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiYgZXJyLmNhdXNlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBjaGFsay5yZWQoXCJkZXYg7ISc67KE7JeQIOyXsOqysO2VoCDsiJgg7JeG7Iq164uI64ukLiBzb25hbXUgZGV26rCAIOyLpO2WiSDspJHsnbjsp4Ag7ZmV7J247ZWY7IS47JqUXCIpLFxuICAgICAgKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3RGYWlsZWRGcm9tUmVzdWx0cyhub2RlczogVGVzdENhc2VSZXN1bHRbXSk6IFRlc3RDYXNlUmVzdWx0W10ge1xuICBjb25zdCByZXN1bHQ6IFRlc3RDYXNlUmVzdWx0W10gPSBbXTtcbiAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgaWYgKG5vZGUua2luZCA9PT0gXCJ0ZXN0XCIgJiYgbm9kZS5zdGF0ZSA9PT0gXCJmYWlsZWRcIikge1xuICAgICAgcmVzdWx0LnB1c2gobm9kZSk7XG4gICAgfVxuICAgIGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLmNvbGxlY3RGYWlsZWRGcm9tUmVzdWx0cyhub2RlLmNoaWxkcmVuKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGNvbGxlY3RUcmFjZXNGcm9tUmVzdWx0cyhcbiAgbm9kZXM6IFRlc3RDYXNlUmVzdWx0W10sXG4pOiB7IHRlc3ROYW1lOiBzdHJpbmc7IGZpbGU6IHN0cmluZzsgdHJhY2VzOiBUZXN0Q2FzZVJlc3VsdFtcInRyYWNlc1wiXSB9W10ge1xuICBjb25zdCByZXN1bHQ6IHsgdGVzdE5hbWU6IHN0cmluZzsgZmlsZTogc3RyaW5nOyB0cmFjZXM6IFRlc3RDYXNlUmVzdWx0W1widHJhY2VzXCJdIH1bXSA9IFtdO1xuICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICBpZiAobm9kZS5raW5kID09PSBcInRlc3RcIiAmJiBub2RlLnRyYWNlcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXN1bHQucHVzaCh7IHRlc3ROYW1lOiBub2RlLmZ1bGxOYW1lLCBmaWxlOiBub2RlLmZpbGUsIHRyYWNlczogbm9kZS50cmFjZXMgfSk7XG4gICAgfVxuICAgIGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIHJlc3VsdC5wdXNoKC4uLmNvbGxlY3RUcmFjZXNGcm9tUmVzdWx0cyhub2RlLmNoaWxkcmVuKSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRlc3RTdGF0dXNDb21tYW5kKGNvbmZpZzogU29uYW11Q29uZmlnKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghY29uZmlnLnRlc3Q/LmRldlJ1bm5lcj8uZW5hYmxlZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBjaGFsay5yZWQoXG4gICAgICAgIFwiZGV2UnVubmVy6rCAIO2ZnOyEse2ZlOuQmOyngCDslYrslZjsirXri4jri6QuIHNvbmFtdS5jb25maWcudHPsl5DshJwgdGVzdC5kZXZSdW5uZXIuZW5hYmxlZDogdHJ1ZSDshKTsoJXsnbQg7ZWE7JqU7ZWp64uI64ukXCIsXG4gICAgICApLFxuICAgICk7XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG5cbiAgY29uc3QgeyBiYXNlVXJsIH0gPSByZXNvbHZlVGVzdEJhc2VVcmwoY29uZmlnKTtcbiAgY29uc3QgdXJsID0gYCR7YmFzZVVybH0vc3RhdHVzYDtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTtcblxuICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoY2hhbGsucmVkKGDsmIjsg4HtlZjsp4Ag66q77ZWcIOydkeuLtTogJHtyZXNwb25zZS5zdGF0dXN9YCkpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXR1cyA9IChhd2FpdCByZXNwb25zZS5qc29uKCkpIGFzIHtcbiAgICAgIHJlYWR5OiBib29sZWFuO1xuICAgICAgcnVubmluZzogYm9vbGVhbjtcbiAgICAgIGxhc3RSdW5BdDogc3RyaW5nIHwgbnVsbDtcbiAgICAgIHNzZUF2YWlsYWJsZTogYm9vbGVhbjtcbiAgICB9O1xuXG4gICAgY29uc29sZS5sb2coY2hhbGsuYm9sZChcIkRldlJ1bm5lciDsg4Htg5w6XCIpKTtcbiAgICBjb25zb2xlLmxvZyhgICByZWFkeTogICAgICAgICR7c3RhdHVzLnJlYWR5ID8gY2hhbGsuZ3JlZW4oXCJ0cnVlXCIpIDogY2hhbGsucmVkKFwiZmFsc2VcIil9YCk7XG4gICAgY29uc29sZS5sb2coYCAgcnVubmluZzogICAgICAke3N0YXR1cy5ydW5uaW5nID8gY2hhbGsueWVsbG93KFwidHJ1ZVwiKSA6IFwiZmFsc2VcIn1gKTtcbiAgICBjb25zb2xlLmxvZyhgICBsYXN0UnVuQXQ6ICAgICR7c3RhdHVzLmxhc3RSdW5BdCA/PyBjaGFsay5kaW0oXCLsl4bsnYxcIil9YCk7XG4gICAgY29uc29sZS5sb2coYCAgc3NlQXZhaWxhYmxlOiAke3N0YXR1cy5zc2VBdmFpbGFibGUgPyBjaGFsay5ncmVlbihcInRydWVcIikgOiBcImZhbHNlXCJ9YCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBUeXBlRXJyb3IgJiYgZXJyLmNhdXNlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICBjaGFsay5yZWQoXCJkZXYg7ISc67KE7JeQIOyXsOqysO2VoCDsiJgg7JeG7Iq164uI64ukLiBzb25hbXUgZGV26rCAIOyLpO2WiSDspJHsnbjsp4Ag7ZmV7J247ZWY7IS47JqUXCIpLFxuICAgICAgKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG59XG4iXSwibmFtZXMiOlsicGF0aCIsImNoYWxrIiwibG9hZENvbmZpZyIsImZpbmRBcGlSb290UGF0aCIsImxvYWRUZXN0Q29uZmlnIiwicHJldlZpdGVzdCIsInByb2Nlc3MiLCJlbnYiLCJWSVRFU1QiLCJhcGlSb290UGF0aCIsInVuZGVmaW5lZCIsInJlc29sdmVUZXN0QmFzZVVybCIsImNvbmZpZyIsInBvcnQiLCJzZXJ2ZXIiLCJsaXN0ZW4iLCJob3N0Iiwicm91dGVQcmVmaXgiLCJ0ZXN0IiwiZGV2UnVubmVyIiwiYmFzZVVybCIsInRlc3RDb21tYW5kIiwiYXJncyIsImFyZ3YiLCJzbGljZSIsImZpbGVzIiwicGF0dGVybiIsInNob3dUcmFjZXMiLCJzaG93U3RhdHVzIiwiaSIsImxlbmd0aCIsImFyZyIsInN0YXJ0c1dpdGgiLCJwdXNoIiwidGVzdFN0YXR1c0NvbW1hbmQiLCJlbmFibGVkIiwiY29uc29sZSIsImVycm9yIiwicmVkIiwiZXhpdCIsInVybCIsInBheWxvYWQiLCJyZXNwb25zZSIsImZldGNoIiwibWV0aG9kIiwiaGVhZGVycyIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhdHVzIiwiZXJyb3JCb2R5IiwianNvbiIsIm9rIiwicmVzdWx0IiwicGFzc2VkIiwiZmFpbGVkIiwiZmFpbGVkQ291bnQiLCJ0b3RhbCIsImR1cmF0aW9uTXMiLCJzdW1tYXJ5IiwicGFzc2VkU3RyIiwiZ3JlZW4iLCJmYWlsZWRTdHIiLCJsb2ciLCJkaW0iLCJmYWlsZWRUZXN0cyIsImNvbGxlY3RGYWlsZWRGcm9tUmVzdWx0cyIsInJlc3VsdHMiLCJib2xkIiwiZiIsImZ1bGxOYW1lIiwiZmlsZSIsIm1lc3NhZ2UiLCJ0ZXN0c1dpdGhUcmFjZXMiLCJjb2xsZWN0VHJhY2VzRnJvbVJlc3VsdHMiLCJjeWFuIiwidGVzdE5hbWUiLCJ0cmFjZXMiLCJiYXNlbmFtZSIsInRyYWNlIiwibG9jIiwiZmlsZVBhdGgiLCJsaW5lTnVtYmVyIiwidmFsdWVTdHIiLCJ2YWx1ZSIsInllbGxvdyIsImtleSIsImluZGVudGVkIiwic3BsaXQiLCJqb2luIiwiZXJyIiwiVHlwZUVycm9yIiwiY2F1c2UiLCJub2RlcyIsIm5vZGUiLCJraW5kIiwic3RhdGUiLCJjaGlsZHJlbiIsInJlYWR5IiwicnVubmluZyIsImxhc3RSdW5BdCIsInNzZUF2YWls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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
1
2
|
import { type EntityIndex, type EntityJson } from "../types/types";
|
|
2
3
|
import type { AbsolutePath } from "../utils/path-utils";
|
|
3
4
|
import { Entity } from "./entity";
|
|
@@ -13,7 +14,7 @@ declare class EntityManagerClass {
|
|
|
13
14
|
private tableSpecs;
|
|
14
15
|
isAutoloaded: boolean;
|
|
15
16
|
autoload(_?: boolean): Promise<void>;
|
|
16
|
-
schemaValidate(json: unknown):
|
|
17
|
+
schemaValidate(json: unknown): z.ZodError<{
|
|
17
18
|
id: string;
|
|
18
19
|
title: string;
|
|
19
20
|
table: string;
|
|
@@ -586,6 +587,8 @@ declare class EntityManagerClass {
|
|
|
586
587
|
* @returns
|
|
587
588
|
*/
|
|
588
589
|
getEntityIdFromPath(filePath: AbsolutePath): string;
|
|
590
|
+
private registerNonEntityTypeModulePaths;
|
|
591
|
+
private getModulePathFromTypeFilePath;
|
|
589
592
|
}
|
|
590
593
|
export declare const EntityManager: EntityManagerClass;
|
|
591
594
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-manager.d.ts","sourceRoot":"","sources":["../../src/entity/entity-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entity-manager.d.ts","sourceRoot":"","sources":["../../src/entity/entity-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiB,CAAC,EAAE,MAAM,KAAK,CAAC;AAEvC,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAoB,MAAM,gBAAgB,CAAC;AAGrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,MAAM,iBAAiB,GAAG,MAAM,CACpC,IAAI,GAAG,UAAU,GAAG,OAAO,GAAG,aAAa,GAAG,SAAS,GAAG,eAAe,GAAG,OAAO,GAAG,UAAU,EAChG,MAAM,CACP,CAAC;AACF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AACF,cAAM,kBAAkB;IACtB,OAAO,CAAC,QAAQ,CAAkC;IAC3C,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IACpD,OAAO,CAAC,UAAU,CAAqC;IAChD,YAAY,EAAE,OAAO,CAAS;IAG/B,QAAQ,CAAC,CAAC,GAAE,OAAe;IA2BjC,cAAc,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKtB,MAAM,CAAC,QAAQ,GAAE,OAAe;IAShC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/C,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAS7B,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IASjC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAKjC,SAAS,IAAI,MAAM,EAAE;IAIrB,cAAc,IAAI,MAAM,EAAE;IAI1B,eAAe,IAAI,MAAM,EAAE;IAO3B,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAO1C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAKpD,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASlC,YAAY,CAAC,SAAS,EAAE,SAAS;IAIjC,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IASpC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;IAmBnD;;;;OAIG;IACH,mBAAmB,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM;YAMrC,gCAAgC;IAoB9C,OAAO,CAAC,6BAA6B;CAUtC;AAED,eAAO,MAAM,aAAa,oBAA2B,CAAC"}
|
|
@@ -3,9 +3,12 @@ import chalk from "chalk";
|
|
|
3
3
|
import { glob, readFile } from "node:fs/promises";
|
|
4
4
|
import inflection from "inflection";
|
|
5
5
|
import path from "path";
|
|
6
|
-
import { prettifyError } from "zod";
|
|
6
|
+
import { prettifyError, z } from "zod";
|
|
7
7
|
import { Sonamu } from "../api/sonamu.js";
|
|
8
8
|
import { EntityJsonSchema } from "../types/types.js";
|
|
9
|
+
import { globAsync } from "../utils/async-utils.js";
|
|
10
|
+
import { importMembers } from "../utils/esm-utils.js";
|
|
11
|
+
import { runtimePath } from "../utils/path-utils.js";
|
|
9
12
|
import { Entity } from "./entity.js";
|
|
10
13
|
class EntityManagerClass {
|
|
11
14
|
entities = new Map();
|
|
@@ -29,12 +32,7 @@ class EntityManagerClass {
|
|
|
29
32
|
}
|
|
30
33
|
await this.register(json);
|
|
31
34
|
}
|
|
32
|
-
|
|
33
|
-
// console.log(
|
|
34
|
-
// chalk.gray(
|
|
35
|
-
// `[Loading] Loaded entity definitions from "*.entity.json" files: ${count} files.`
|
|
36
|
-
// )
|
|
37
|
-
// );
|
|
35
|
+
await this.registerNonEntityTypeModulePaths();
|
|
38
36
|
this.isAutoloaded = true;
|
|
39
37
|
}
|
|
40
38
|
schemaValidate(json) {
|
|
@@ -134,7 +132,31 @@ class EntityManagerClass {
|
|
|
134
132
|
assert(matched?.[1]);
|
|
135
133
|
return inflection.camelize(matched[1].replace(/-/g, "_"));
|
|
136
134
|
}
|
|
135
|
+
async registerNonEntityTypeModulePaths() {
|
|
136
|
+
const typePathsPatterns = [
|
|
137
|
+
path.join(Sonamu.apiRootPath, runtimePath("src/application/**/*.types.ts")),
|
|
138
|
+
path.join(Sonamu.apiRootPath, runtimePath("src/application/**/*.generated.ts"))
|
|
139
|
+
];
|
|
140
|
+
const typePaths = (await Promise.all(typePathsPatterns.map((pattern)=>globAsync(pattern)))).flat();
|
|
141
|
+
for (const filePath of typePaths){
|
|
142
|
+
const modulePath = this.getModulePathFromTypeFilePath(filePath);
|
|
143
|
+
const importedMembers = await importMembers(filePath);
|
|
144
|
+
for (const { name, value } of importedMembers){
|
|
145
|
+
if (value instanceof z.ZodType) {
|
|
146
|
+
this.setModulePath(name, modulePath);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
getModulePathFromTypeFilePath(filePath) {
|
|
152
|
+
const normalizedPath = filePath.replaceAll("\\", "/");
|
|
153
|
+
const matched = normalizedPath.match(/\/(?:src|dist)\/application\/(.+)\.(?:ts|js)$/);
|
|
154
|
+
if (!matched?.[1]) {
|
|
155
|
+
throw new Error(`타입 파일의 모듈 경로를 계산할 수 없습니다: ${filePath}`);
|
|
156
|
+
}
|
|
157
|
+
return matched[1];
|
|
158
|
+
}
|
|
137
159
|
}
|
|
138
160
|
export const EntityManager = new EntityManagerClass();
|
|
139
161
|
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbnRpdHkvZW50aXR5LW1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCI7XG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQgeyBnbG9iLCByZWFkRmlsZSB9IGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBwcmV0dGlmeUVycm9yIH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB7IHR5cGUgRW50aXR5SW5kZXgsIHR5cGUgRW50aXR5SnNvbiwgRW50aXR5SnNvblNjaGVtYSB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBBYnNvbHV0ZVBhdGggfSBmcm9tIFwiLi4vdXRpbHMvcGF0aC11dGlsc1wiO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcIi4vZW50aXR5XCI7XG5cbmV4cG9ydCB0eXBlIEVudGl0eU5hbWVzUmVjb3JkID0gUmVjb3JkPFxuICBcImZzXCIgfCBcImZzUGx1cmFsXCIgfCBcImNhbWVsXCIgfCBcImNhbWVsUGx1cmFsXCIgfCBcImNhcGl0YWxcIiB8IFwiY2FwaXRhbFBsdXJhbFwiIHwgXCJ1cHBlclwiIHwgXCJjb25zdGFudFwiLFxuICBzdHJpbmdcbj47XG5leHBvcnQgdHlwZSBUYWJsZVNwZWMgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdW5pcXVlSW5kZXhlczogRW50aXR5SW5kZXhbXTtcbiAganNvbkNvbHVtbnM6IHN0cmluZ1tdO1xufTtcbmNsYXNzIEVudGl0eU1hbmFnZXJDbGFzcyB7XG4gIHByaXZhdGUgZW50aXRpZXM6IE1hcDxzdHJpbmcsIEVudGl0eT4gPSBuZXcgTWFwKCk7XG4gIHB1YmxpYyBtb2R1bGVQYXRoczogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSB0YWJsZVNwZWNzOiBNYXA8c3RyaW5nLCBUYWJsZVNwZWM+ID0gbmV3IE1hcCgpO1xuICBwdWJsaWMgaXNBdXRvbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8g6rK966GcIOyghOuLrOuwm+yVhCDrqqjrk6AgZW50aXR5Lmpzb24g7YyM7J28IOuhnOuTnFxuICBhc3luYyBhdXRvbG9hZChfOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5pc0F1dG9sb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGF0aFBhdHRlcm4gPSBwYXRoLmpvaW4oU29uYW11LmFwaVJvb3RQYXRoLCBcIi9zcmMvYXBwbGljYXRpb24vKiovKi5lbnRpdHkuanNvblwiKTtcblxuICAgIGZvciBhd2FpdCAoY29uc3QgZmlsZSBvZiBnbG9iKHBhdGgucmVzb2x2ZShwYXRoUGF0dGVybikpKSB7XG4gICAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZSgoYXdhaXQgcmVhZEZpbGUoZmlsZSkpLnRvU3RyaW5nKCkpO1xuXG4gICAgICAvLyBlbnRpdHkuanNvbiDsiqTtgqTrp4gg6rKA7KadXG4gICAgICBjb25zdCBlcnJvciA9IHRoaXMuc2NoZW1hVmFsaWRhdGUoanNvbik7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcGF0aC5yZWxhdGl2ZShTb25hbXUuYXBpUm9vdFBhdGgsIGZpbGUpO1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBwcmV0dGlmeUVycm9yKGVycm9yKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBjaGFsay5yZWQoYEludmFsaWQgZW50aXR5Lmpzb24gc2NoZW1hOiAke3JlbGF0aXZlUGF0aH1cXG4ke2NoYWxrLnllbGxvdyhlcnJvck1lc3NhZ2UpfWApLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLnJlZ2lzdGVyKGpzb24pO1xuICAgIH1cbiAgICAvLyAhZG9TaWxlbnQgJiZcbiAgICAvLyAgIGNvbnNvbGUubG9nKFxuICAgIC8vICAgICBjaGFsay5ncmF5KFxuICAgIC8vICAgICAgIGBbTG9hZGluZ10gTG9hZGVkIGVudGl0eSBkZWZpbml0aW9ucyBmcm9tIFwiKi5lbnRpdHkuanNvblwiIGZpbGVzOiAke2NvdW50fSBmaWxlcy5gXG4gICAgLy8gICAgIClcbiAgICAvLyAgICk7XG5cbiAgICB0aGlzLmlzQXV0b2xvYWRlZCA9IHRydWU7XG4gIH1cblxuICBzY2hlbWFWYWxpZGF0ZShqc29uOiB1bmtub3duKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gRW50aXR5SnNvblNjaGVtYS5zYWZlUGFyc2UoanNvbik7XG4gICAgcmV0dXJuIHJlc3VsdC5zdWNjZXNzID8gbnVsbCA6IHJlc3VsdC5lcnJvcjtcbiAgfVxuXG4gIGFzeW5jIHJlbG9hZChkb1NpbGVudDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgdGhpcy5lbnRpdGllcy5jbGVhcigpO1xuICAgIHRoaXMubW9kdWxlUGF0aHMuY2xlYXIoKTtcbiAgICB0aGlzLnRhYmxlU3BlY3MuY2xlYXIoKTtcbiAgICB0aGlzLmlzQXV0b2xvYWRlZCA9IGZhbHNlO1xuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYXV0b2xvYWQoZG9TaWxlbnQpO1xuICB9XG5cbiAgYXN5bmMgcmVnaXN0ZXIoanNvbjogRW50aXR5SnNvbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGVudGl0eSA9IG5ldyBFbnRpdHkoanNvbik7XG4gICAgYXdhaXQgZW50aXR5LnJlZ2lzdGVyTW9kdWxlUGF0aHMoKTtcbiAgICBlbnRpdHkucmVnaXN0ZXJUYWJsZVNwZWNzKCk7XG4gICAgdGhpcy5lbnRpdGllcy5zZXQoanNvbi5pZCwgZW50aXR5KTtcbiAgfVxuXG4gIGdldChlbnRpdHlJZDogc3RyaW5nKTogRW50aXR5IHtcbiAgICBjb25zdCBlbnRpdHkgPSB0aGlzLmVudGl0aWVzLmdldChlbnRpdHlJZCk7XG4gICAgaWYgKGVudGl0eSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYOyhtOyerO2VmOyngCDslYrripQgRW50aXR5IOyalOyyrSAke2VudGl0eUlkfWApO1xuICAgIH1cblxuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICBnZXRCeVRhYmxlKHRhYmxlOiBzdHJpbmcpOiBFbnRpdHkge1xuICAgIGNvbnN0IGVudGl0eSA9IEFycmF5LmZyb20odGhpcy5lbnRpdGllcy52YWx1ZXMoKSkuZmluZCgoZW50aXR5KSA9PiBlbnRpdHkudGFibGUgPT09IHRhYmxlKTtcbiAgICBpZiAoZW50aXR5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihg7KG07J6s7ZWY7KeAIOyViuuKlCBFbnRpdHkg7JqU7LKtICR7dGFibGV9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudGl0eTtcbiAgfVxuXG4gIGV4aXN0cyhlbnRpdHlJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZW50aXR5ID0gdGhpcy5lbnRpdGllcy5nZXQoZW50aXR5SWQpO1xuICAgIHJldHVybiBlbnRpdHkgIT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldEFsbElkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oRW50aXR5TWFuYWdlci5lbnRpdGllcy5rZXlzKCkpLnNvcnQoKTtcbiAgfVxuXG4gIGdldEFsbEVudGl0aWVzKCk6IEVudGl0eVtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVudGl0aWVzLnZhbHVlcygpKTtcbiAgfVxuXG4gIGdldEFsbFBhcmVudElkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsSWRzKCkuZmlsdGVyKChlbnRpdHlJZCkgPT4ge1xuICAgICAgY29uc3QgZW50aXR5ID0gdGhpcy5nZXQoZW50aXR5SWQpO1xuICAgICAgcmV0dXJuIGVudGl0eS5wYXJlbnRJZCA9PT0gdW5kZWZpbmVkO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2hpbGRyZW5JZHMocGFyZW50SWQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBbGxJZHMoKS5maWx0ZXIoKGVudGl0eUlkKSA9PiB7XG4gICAgICBjb25zdCBlbnRpdHkgPSB0aGlzLmdldChlbnRpdHlJZCk7XG4gICAgICByZXR1cm4gZW50aXR5LnBhcmVudElkID09PSBwYXJlbnRJZDtcbiAgICB9KTtcbiAgfVxuXG4gIHNldE1vZHVsZVBhdGgoa2V5OiBzdHJpbmcsIG1vZHVsZVBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIGNvbnNvbGUuZGVidWcoY2hhbGsuY3lhbihgc2V0TW9kdWxlUGF0aCA6OiAke2tleX0gOjogJHttb2R1bGVQYXRofWApKTtcbiAgICB0aGlzLm1vZHVsZVBhdGhzLnNldChrZXksIG1vZHVsZVBhdGgpO1xuICB9XG5cbiAgZ2V0TW9kdWxlUGF0aChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbW9kdWxlUGF0aCA9IHRoaXMubW9kdWxlUGF0aHMuZ2V0KGtleSk7XG4gICAgaWYgKG1vZHVsZVBhdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGDsobTsnqztlZjsp4Ag7JWK64qUIOuqqOuTiCDtjKjsiqQg7JqU7LKtICR7a2V5fWApO1xuICAgIH1cblxuICAgIHJldHVybiBtb2R1bGVQYXRoO1xuICB9XG5cbiAgc2V0VGFibGVTcGVjKHRhYmxlU3BlYzogVGFibGVTcGVjKSB7XG4gICAgdGhpcy50YWJsZVNwZWNzLnNldCh0YWJsZVNwZWMubmFtZSwgdGFibGVTcGVjKTtcbiAgfVxuXG4gIGdldFRhYmxlU3BlYyhrZXk6IHN0cmluZyk6IFRhYmxlU3BlYyB7XG4gICAgY29uc3QgdGFibGVTcGVjID0gdGhpcy50YWJsZVNwZWNzLmdldChrZXkpO1xuICAgIGlmICh0YWJsZVNwZWMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGDsobTsnqztlZjsp4Ag7JWK64qUIO2FjOydtOu4lCDsiqTtjpkg7JqU7LKtICR7a2V5fWApO1xuICAgIH1cblxuICAgIHJldHVybiB0YWJsZVNwZWM7XG4gIH1cblxuICBnZXROYW1lc0Zyb21JZChlbnRpdHlJZDogc3RyaW5nKTogRW50aXR5TmFtZXNSZWNvcmQge1xuICAgIC8vIGVudGl0eUlk6rCAIOuLqOuzteyImCDrj5ntmJUg64uo7Ja07J24IOqyveyasCBMaXN0IOu2meyXrOyEnCDsg53shLFcbiAgICBjb25zdCBwbHVyYWxpemVkID1cbiAgICAgIGluZmxlY3Rpb24ucGx1cmFsaXplKGVudGl0eUlkKSA9PT0gZW50aXR5SWRcbiAgICAgICAgPyBgJHtlbnRpdHlJZH1MaXN0YFxuICAgICAgICA6IGluZmxlY3Rpb24ucGx1cmFsaXplKGVudGl0eUlkKTtcblxuICAgIHJldHVybiB7XG4gICAgICBmczogaW5mbGVjdGlvbi5kYXNoZXJpemUoaW5mbGVjdGlvbi51bmRlcnNjb3JlKGVudGl0eUlkKSkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGZzUGx1cmFsOiBpbmZsZWN0aW9uLmRhc2hlcml6ZShpbmZsZWN0aW9uLnVuZGVyc2NvcmUocGx1cmFsaXplZCkpLnRvTG93ZXJDYXNlKCksXG4gICAgICBjYW1lbDogaW5mbGVjdGlvbi5jYW1lbGl6ZShlbnRpdHlJZCwgdHJ1ZSksXG4gICAgICBjYW1lbFBsdXJhbDogaW5mbGVjdGlvbi5jYW1lbGl6ZShwbHVyYWxpemVkLCB0cnVlKSxcbiAgICAgIGNhcGl0YWw6IGVudGl0eUlkLFxuICAgICAgY2FwaXRhbFBsdXJhbDogcGx1cmFsaXplZCxcbiAgICAgIHVwcGVyOiBlbnRpdHlJZC50b1VwcGVyQ2FzZSgpLFxuICAgICAgY29uc3RhbnQ6IGluZmxlY3Rpb24udW5kZXJzY29yZShlbnRpdHlJZCkudG9VcHBlckNhc2UoKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEVudGl0eUlk64qUIE1vZGVs7J2EIOygnOyZuO2VnCBQYXNjYWxDYXNlIOydtOumhOyeheuLiOuLpC4gKGV4LiBcIlVzZXJcIilcbiAgICogQHBhcmFtIGZpbGVQYXRoXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBnZXRFbnRpdHlJZEZyb21QYXRoKGZpbGVQYXRoOiBBYnNvbHV0ZVBhdGgpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1hdGNoZWQgPSBmaWxlUGF0aC5tYXRjaCgvYXBwbGljYXRpb25cXC8oLispXFwvLyk7XG4gICAgYXNzZXJ0KG1hdGNoZWQ/LlsxXSk7XG4gICAgcmV0dXJuIGluZmxlY3Rpb24uY2FtZWxpemUobWF0Y2hlZFsxXS5yZXBsYWNlKC8tL2csIFwiX1wiKSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEVudGl0eU1hbmFnZXIgPSBuZXcgRW50aXR5TWFuYWdlckNsYXNzKCk7XG4iXSwibmFtZXMiOlsiYXNzZXJ0IiwiY2hhbGsiLCJnbG9iIiwicmVhZEZpbGUiLCJpbmZsZWN0aW9uIiwicGF0aCIsInByZXR0aWZ5RXJyb3IiLCJTb25hbXUiLCJFbnRpdHlKc29uU2NoZW1hIiwiRW50aXR5IiwiRW50aXR5TWFuYWdlckNsYXNzIiwiZW50aXRpZXMiLCJNYXAiLCJtb2R1bGVQYXRocyIsInRhYmxlU3BlY3MiLCJpc0F1dG9sb2FkZWQiLCJhdXRvbG9hZCIsIl8iLCJwYXRoUGF0dGVybiIsImpvaW4iLCJhcGlSb290UGF0aCIsImZpbGUiLCJyZXNvbHZlIiwianNvbiIsIkpTT04iLCJwYXJzZSIsInRvU3RyaW5nIiwiZXJyb3IiLCJzY2hlbWFWYWxpZGF0ZSIsInJlbGF0aXZlUGF0aCIsInJlbGF0aXZlIiwiZXJyb3JNZXNzYWdlIiwiY29uc29sZSIsInJlZCIsInllbGxvdyIsInJlZ2lzdGVyIiwicmVzdWx0Iiwic2FmZVBhcnNlIiwic3VjY2VzcyIsInJlbG9hZCIsImRvU2lsZW50IiwiY2xlYXIiLCJlbnRpdHkiLCJyZWdpc3Rlck1vZHVsZVBhdGhzIiwicmVnaXN0ZXJUYWJsZVNwZWNzIiwic2V0IiwiaWQiLCJnZXQiLCJlbnRpdHlJZCIsInVuZGVmaW5lZCIsIkVycm9yIiwiZ2V0QnlUYWJsZSIsInRhYmxlIiwiQXJyYXkiLCJmcm9tIiwidmFsdWVzIiwiZmluZCIsImV4aXN0cyIsImdldEFsbElkcyIsIkVudGl0eU1hbmFnZXIiLCJrZXlzIiwic29ydCIsImdldEFsbEVudGl0aWVzIiwiZ2V0QWxsUGFyZW50SWRzIiwiZmlsdGVyIiwicGFyZW50SWQiLCJnZXRDaGlsZHJlbklkcyIsInNldE1vZHVsZVBhdGgiLCJrZXkiLCJtb2R1bGVQYXRoIiwiZ2V0TW9kdWxlUGF0aCIsInNldFRhYmxlU3BlYyIsInRhYmxlU3BlYyIsIm5hbWUiLCJnZXRUYWJsZVNwZWMiLCJnZXROYW1lc0Zyb21JZCIsInBsdXJhbGl6ZWQiLCJwbHVyYWxpemUiLCJmcyIsImRhc2hlcml6ZSIsInVuZGVyc2NvcmUiLCJ0b0xvd2VyQ2FzZSIsImZzUGx1cmFsIiwiY2FtZWwiLCJjYW1lbGl6ZSIsImNhbWVsUGx1cmFsIiwiY2FwaXRhbCIsImNhcGl0YWxQbHVyYWwiLCJ1cHBlciIsInRvVXBwZXJDYXNlIiwiY29uc3RhbnQiLCJnZXRFbnRpdHlJZEZyb21QYXRoIiwiZmlsZVBhdGgiLCJtYXRjaGVkIiwibWF0Y2giLCJyZXBsYWNlIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFZLFNBQVM7QUFDNUIsT0FBT0MsV0FBVyxRQUFRO0FBQzFCLFNBQVNDLElBQUksRUFBRUMsUUFBUSxRQUFRLG1CQUFjO0FBQzdDLE9BQU9DLGdCQUFnQixhQUFhO0FBQ3BDLE9BQU9DLFVBQVUsT0FBTztBQUN4QixTQUFTQyxhQUFhLFFBQVEsTUFBTTtBQUNwQyxTQUFTQyxNQUFNLFFBQVEsbUJBQWdCO0FBQ3ZDLFNBQTRDQyxnQkFBZ0IsUUFBUSxvQkFBaUI7QUFFckYsU0FBU0MsTUFBTSxRQUFRLGNBQVc7QUFXbEMsTUFBTUM7SUFDSUMsV0FBZ0MsSUFBSUMsTUFBTTtJQUMzQ0MsY0FBbUMsSUFBSUQsTUFB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
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbnRpdHkvZW50aXR5LW1hbmFnZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tIFwiYXNzZXJ0XCI7XG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQgeyBnbG9iLCByZWFkRmlsZSB9IGZyb20gXCJmcy9wcm9taXNlc1wiO1xuaW1wb3J0IGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBwcmV0dGlmeUVycm9yLCB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uL2FwaS9zb25hbXVcIjtcbmltcG9ydCB7IHR5cGUgRW50aXR5SW5kZXgsIHR5cGUgRW50aXR5SnNvbiwgRW50aXR5SnNvblNjaGVtYSB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgZ2xvYkFzeW5jIH0gZnJvbSBcIi4uL3V0aWxzL2FzeW5jLXV0aWxzXCI7XG5pbXBvcnQgeyBpbXBvcnRNZW1iZXJzIH0gZnJvbSBcIi4uL3V0aWxzL2VzbS11dGlsc1wiO1xuaW1wb3J0IHR5cGUgeyBBYnNvbHV0ZVBhdGggfSBmcm9tIFwiLi4vdXRpbHMvcGF0aC11dGlsc1wiO1xuaW1wb3J0IHsgcnVudGltZVBhdGggfSBmcm9tIFwiLi4vdXRpbHMvcGF0aC11dGlsc1wiO1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSBcIi4vZW50aXR5XCI7XG5cbmV4cG9ydCB0eXBlIEVudGl0eU5hbWVzUmVjb3JkID0gUmVjb3JkPFxuICBcImZzXCIgfCBcImZzUGx1cmFsXCIgfCBcImNhbWVsXCIgfCBcImNhbWVsUGx1cmFsXCIgfCBcImNhcGl0YWxcIiB8IFwiY2FwaXRhbFBsdXJhbFwiIHwgXCJ1cHBlclwiIHwgXCJjb25zdGFudFwiLFxuICBzdHJpbmdcbj47XG5leHBvcnQgdHlwZSBUYWJsZVNwZWMgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdW5pcXVlSW5kZXhlczogRW50aXR5SW5kZXhbXTtcbiAganNvbkNvbHVtbnM6IHN0cmluZ1tdO1xufTtcbmNsYXNzIEVudGl0eU1hbmFnZXJDbGFzcyB7XG4gIHByaXZhdGUgZW50aXRpZXM6IE1hcDxzdHJpbmcsIEVudGl0eT4gPSBuZXcgTWFwKCk7XG4gIHB1YmxpYyBtb2R1bGVQYXRoczogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKTtcbiAgcHJpdmF0ZSB0YWJsZVNwZWNzOiBNYXA8c3RyaW5nLCBUYWJsZVNwZWM+ID0gbmV3IE1hcCgpO1xuICBwdWJsaWMgaXNBdXRvbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8g6rK966GcIOyghOuLrOuwm+yVhCDrqqjrk6AgZW50aXR5Lmpzb24g7YyM7J28IOuhnOuTnFxuICBhc3luYyBhdXRvbG9hZChfOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAodGhpcy5pc0F1dG9sb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGF0aFBhdHRlcm4gPSBwYXRoLmpvaW4oU29uYW11LmFwaVJvb3RQYXRoLCBcIi9zcmMvYXBwbGljYXRpb24vKiovKi5lbnRpdHkuanNvblwiKTtcblxuICAgIGZvciBhd2FpdCAoY29uc3QgZmlsZSBvZiBnbG9iKHBhdGgucmVzb2x2ZShwYXRoUGF0dGVybikpKSB7XG4gICAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZSgoYXdhaXQgcmVhZEZpbGUoZmlsZSkpLnRvU3RyaW5nKCkpO1xuXG4gICAgICAvLyBlbnRpdHkuanNvbiDsiqTtgqTrp4gg6rKA7KadXG4gICAgICBjb25zdCBlcnJvciA9IHRoaXMuc2NoZW1hVmFsaWRhdGUoanNvbik7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgY29uc3QgcmVsYXRpdmVQYXRoID0gcGF0aC5yZWxhdGl2ZShTb25hbXUuYXBpUm9vdFBhdGgsIGZpbGUpO1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBwcmV0dGlmeUVycm9yKGVycm9yKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICBjaGFsay5yZWQoYEludmFsaWQgZW50aXR5Lmpzb24gc2NoZW1hOiAke3JlbGF0aXZlUGF0aH1cXG4ke2NoYWxrLnllbGxvdyhlcnJvck1lc3NhZ2UpfWApLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLnJlZ2lzdGVyKGpzb24pO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucmVnaXN0ZXJOb25FbnRpdHlUeXBlTW9kdWxlUGF0aHMoKTtcblxuICAgIHRoaXMuaXNBdXRvbG9hZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHNjaGVtYVZhbGlkYXRlKGpzb246IHVua25vd24pIHtcbiAgICBjb25zdCByZXN1bHQgPSBFbnRpdHlKc29uU2NoZW1hLnNhZmVQYXJzZShqc29uKTtcbiAgICByZXR1cm4gcmVzdWx0LnN1Y2Nlc3MgPyBudWxsIDogcmVzdWx0LmVycm9yO1xuICB9XG5cbiAgYXN5bmMgcmVsb2FkKGRvU2lsZW50OiBib29sZWFuID0gZmFsc2UpIHtcbiAgICB0aGlzLmVudGl0aWVzLmNsZWFyKCk7XG4gICAgdGhpcy5tb2R1bGVQYXRocy5jbGVhcigpO1xuICAgIHRoaXMudGFibGVTcGVjcy5jbGVhcigpO1xuICAgIHRoaXMuaXNBdXRvbG9hZGVkID0gZmFsc2U7XG5cbiAgICByZXR1cm4gYXdhaXQgdGhpcy5hdXRvbG9hZChkb1NpbGVudCk7XG4gIH1cblxuICBhc3luYyByZWdpc3Rlcihqc29uOiBFbnRpdHlKc29uKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZW50aXR5ID0gbmV3IEVudGl0eShqc29uKTtcbiAgICBhd2FpdCBlbnRpdHkucmVnaXN0ZXJNb2R1bGVQYXRocygpO1xuICAgIGVudGl0eS5yZWdpc3RlclRhYmxlU3BlY3MoKTtcbiAgICB0aGlzLmVudGl0aWVzLnNldChqc29uLmlkLCBlbnRpdHkpO1xuICB9XG5cbiAgZ2V0KGVudGl0eUlkOiBzdHJpbmcpOiBFbnRpdHkge1xuICAgIGNvbnN0IGVudGl0eSA9IHRoaXMuZW50aXRpZXMuZ2V0KGVudGl0eUlkKTtcbiAgICBpZiAoZW50aXR5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihg7KG07J6s7ZWY7KeAIOyViuuKlCBFbnRpdHkg7JqU7LKtICR7ZW50aXR5SWR9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVudGl0eTtcbiAgfVxuXG4gIGdldEJ5VGFibGUodGFibGU6IHN0cmluZyk6IEVudGl0eSB7XG4gICAgY29uc3QgZW50aXR5ID0gQXJyYXkuZnJvbSh0aGlzLmVudGl0aWVzLnZhbHVlcygpKS5maW5kKChlbnRpdHkpID0+IGVudGl0eS50YWJsZSA9PT0gdGFibGUpO1xuICAgIGlmIChlbnRpdHkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGDsobTsnqztlZjsp4Ag7JWK64qUIEVudGl0eSDsmpTssq0gJHt0YWJsZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50aXR5O1xuICB9XG5cbiAgZXhpc3RzKGVudGl0eUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBlbnRpdHkgPSB0aGlzLmVudGl0aWVzLmdldChlbnRpdHlJZCk7XG4gICAgcmV0dXJuIGVudGl0eSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0QWxsSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShFbnRpdHlNYW5hZ2VyLmVudGl0aWVzLmtleXMoKSkuc29ydCgpO1xuICB9XG5cbiAgZ2V0QWxsRW50aXRpZXMoKTogRW50aXR5W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZW50aXRpZXMudmFsdWVzKCkpO1xuICB9XG5cbiAgZ2V0QWxsUGFyZW50SWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBbGxJZHMoKS5maWx0ZXIoKGVudGl0eUlkKSA9PiB7XG4gICAgICBjb25zdCBlbnRpdHkgPSB0aGlzLmdldChlbnRpdHlJZCk7XG4gICAgICByZXR1cm4gZW50aXR5LnBhcmVudElkID09PSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH1cblxuICBnZXRDaGlsZHJlbklkcyhwYXJlbnRJZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmdldEFsbElkcygpLmZpbHRlcigoZW50aXR5SWQpID0+IHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IHRoaXMuZ2V0KGVudGl0eUlkKTtcbiAgICAgIHJldHVybiBlbnRpdHkucGFyZW50SWQgPT09IHBhcmVudElkO1xuICAgIH0pO1xuICB9XG5cbiAgc2V0TW9kdWxlUGF0aChrZXk6IHN0cmluZywgbW9kdWxlUGF0aDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gY29uc29sZS5kZWJ1ZyhjaGFsay5jeWFuKGBzZXRNb2R1bGVQYXRoIDo6ICR7a2V5fSA6OiAke21vZHVsZVBhdGh9YCkpO1xuICAgIHRoaXMubW9kdWxlUGF0aHMuc2V0KGtleSwgbW9kdWxlUGF0aCk7XG4gIH1cblxuICBnZXRNb2R1bGVQYXRoKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBtb2R1bGVQYXRoID0gdGhpcy5tb2R1bGVQYXRocy5nZXQoa2V5KTtcbiAgICBpZiAobW9kdWxlUGF0aCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYOyhtOyerO2VmOyngCDslYrripQg66qo65OIIO2MqOyKpCDsmpTssq0gJHtrZXl9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZHVsZVBhdGg7XG4gIH1cblxuICBzZXRUYWJsZVNwZWModGFibGVTcGVjOiBUYWJsZVNwZWMpIHtcbiAgICB0aGlzLnRhYmxlU3BlY3Muc2V0KHRhYmxlU3BlYy5uYW1lLCB0YWJsZVNwZWMpO1xuICB9XG5cbiAgZ2V0VGFibGVTcGVjKGtleTogc3RyaW5nKTogVGFibGVTcGVjIHtcbiAgICBjb25zdCB0YWJsZVNwZWMgPSB0aGlzLnRhYmxlU3BlY3MuZ2V0KGtleSk7XG4gICAgaWYgKHRhYmxlU3BlYyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYOyhtOyerO2VmOyngCDslYrripQg7YWM7J2067iUIOyKpO2OmSDsmpTssq0gJHtrZXl9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhYmxlU3BlYztcbiAgfVxuXG4gIGdldE5hbWVzRnJvbUlkKGVudGl0eUlkOiBzdHJpbmcpOiBFbnRpdHlOYW1lc1JlY29yZCB7XG4gICAgLy8gZW50aXR5SWTqsIAg64uo67O17IiYIOuPme2YlSDri6jslrTsnbgg6rK97JqwIExpc3Qg67aZ7Jes7IScIOyDneyEsVxuICAgIGNvbnN0IHBsdXJhbGl6ZWQgPVxuICAgICAgaW5mbGVjdGlvbi5wbHVyYWxpemUoZW50aXR5SWQpID09PSBlbnRpdHlJZFxuICAgICAgICA/IGAke2VudGl0eUlkfUxpc3RgXG4gICAgICAgIDogaW5mbGVjdGlvbi5wbHVyYWxpemUoZW50aXR5SWQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZzOiBpbmZsZWN0aW9uLmRhc2hlcml6ZShpbmZsZWN0aW9uLnVuZGVyc2NvcmUoZW50aXR5SWQpKS50b0xvd2VyQ2FzZSgpLFxuICAgICAgZnNQbHVyYWw6IGluZmxlY3Rpb24uZGFzaGVyaXplKGluZmxlY3Rpb24udW5kZXJzY29yZShwbHVyYWxpemVkKSkudG9Mb3dlckNhc2UoKSxcbiAgICAgIGNhbWVsOiBpbmZsZWN0aW9uLmNhbWVsaXplKGVudGl0eUlkLCB0cnVlKSxcbiAgICAgIGNhbWVsUGx1cmFsOiBpbmZsZWN0aW9uLmNhbWVsaXplKHBsdXJhbGl6ZWQsIHRydWUpLFxuICAgICAgY2FwaXRhbDogZW50aXR5SWQsXG4gICAgICBjYXBpdGFsUGx1cmFsOiBwbHVyYWxpemVkLFxuICAgICAgdXBwZXI6IGVudGl0eUlkLnRvVXBwZXJDYXNlKCksXG4gICAgICBjb25zdGFudDogaW5mbGVjdGlvbi51bmRlcnNjb3JlKGVudGl0eUlkKS50b1VwcGVyQ2FzZSgpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogRW50aXR5SWTripQgTW9kZWzsnYQg7KCc7Jm47ZWcIFBhc2NhbENhc2Ug7J2066aE7J6F64uI64ukLiAoZXguIFwiVXNlclwiKVxuICAgKiBAcGFyYW0gZmlsZVBhdGhcbiAgICogQHJldHVybnNcbiAgICovXG4gIGdldEVudGl0eUlkRnJvbVBhdGgoZmlsZVBhdGg6IEFic29sdXRlUGF0aCk6IHN0cmluZyB7XG4gICAgY29uc3QgbWF0Y2hlZCA9IGZpbGVQYXRoLm1hdGNoKC9hcHBsaWNhdGlvblxcLyguKylcXC8vKTtcbiAgICBhc3NlcnQobWF0Y2hlZD8uWzFdKTtcbiAgICByZXR1cm4gaW5mbGVjdGlvbi5jYW1lbGl6ZShtYXRjaGVkWzFdLnJlcGxhY2UoLy0vZywgXCJfXCIpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVnaXN0ZXJOb25FbnRpdHlUeXBlTW9kdWxlUGF0aHMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdHlwZVBhdGhzUGF0dGVybnMgPSBbXG4gICAgICBwYXRoLmpvaW4oU29uYW11LmFwaVJvb3RQYXRoLCBydW50aW1lUGF0aChcInNyYy9hcHBsaWNhdGlvbi8qKi8qLnR5cGVzLnRzXCIpKSxcbiAgICAgIHBhdGguam9pbihTb25hbXUuYXBpUm9vdFBhdGgsIHJ1bnRpbWVQYXRoKFwic3JjL2FwcGxpY2F0aW9uLyoqLyouZ2VuZXJhdGVkLnRzXCIpKSxcbiAgICBdO1xuICAgIGNvbnN0IHR5cGVQYXRocyA9IChcbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHR5cGVQYXRoc1BhdHRlcm5zLm1hcCgocGF0dGVybikgPT4gZ2xvYkFzeW5jKHBhdHRlcm4pKSlcbiAgICApLmZsYXQoKTtcblxuICAgIGZvciAoY29uc3QgZmlsZVBhdGggb2YgdHlwZVBhdGhzKSB7XG4gICAgICBjb25zdCBtb2R1bGVQYXRoID0gdGhpcy5nZXRNb2R1bGVQYXRoRnJvbVR5cGVGaWxlUGF0aChmaWxlUGF0aCk7XG4gICAgICBjb25zdCBpbXBvcnRlZE1lbWJlcnMgPSBhd2FpdCBpbXBvcnRNZW1iZXJzPHVua25vd24+KGZpbGVQYXRoKTtcbiAgICAgIGZvciAoY29uc3QgeyBuYW1lLCB2YWx1ZSB9IG9mIGltcG9ydGVkTWVtYmVycykge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiB6LlpvZFR5cGUpIHtcbiAgICAgICAgICB0aGlzLnNldE1vZHVsZVBhdGgobmFtZSwgbW9kdWxlUGF0aCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldE1vZHVsZVBhdGhGcm9tVHlwZUZpbGVQYXRoKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gZmlsZVBhdGgucmVwbGFjZUFsbChcIlxcXFxcIiwgXCIvXCIpO1xuICAgIGNvbnN0IG1hdGNoZWQgPSBub3JtYWxpemVkUGF0aC5tYXRjaCgvXFwvKD86c3JjfGRpc3QpXFwvYXBwbGljYXRpb25cXC8oLispXFwuKD86dHN8anMpJC8pO1xuXG4gICAgaWYgKCFtYXRjaGVkPy5bMV0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihg7YOA7J6FIO2MjOydvOydmCDrqqjrk4gg6rK966Gc66W8IOqzhOyCsO2VoCDsiJgg7JeG7Iq164uI64ukOiAke2ZpbGVQYXRofWApO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGVkWzFdO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBFbnRpdHlNYW5hZ2VyID0gbmV3IEVudGl0eU1hbmFnZXJDbGFzcygpO1xuIl0sIm5hbWVzIjpbImFzc2VydCIsImNoYWxrIiwiZ2xvYiIsInJlYWRGaWxlIiwiaW5mbGVjdGlvbiIsInBhdGgiLCJwcmV0dGlmeUVycm9yIiwieiIsIlNvbmFtdSIsIkVudGl0eUpzb25TY2hlbWEiLCJnbG9iQXN5bmMiLCJpbXBvcnRNZW1iZXJzIiwicnVudGltZVBhdGgiLCJFbnRpdHkiLCJFbnRpdHlNYW5hZ2VyQ2xhc3MiLCJlbnRpdGllcyIsIk1hcCIsIm1vZHVsZVBhdGhzIiwidGFibGVTcGVjcyIsImlzQXV0b2xvYWRlZCIsImF1dG9sb2FkIiwiXyIsInBhdGhQYXR0ZXJuIiwiam9pbiIsImFwaVJvb3RQYXRoIiwiZmlsZSIsInJlc29sdmUiLCJqc29uIiwiSlNPTiIsInBhcnNlIiwidG9TdHJpbmciLCJlcnJvciIsInNjaGVtYVZhbGlkYXRlIiwicmVsYXRpdmVQYXRoIiwicmVsYXRpdmUiLCJlcnJvck1lc3NhZ2UiLCJjb25zb2xlIiwicmVkIiwieWVsbG93IiwicmVnaXN0ZXIiLCJyZWdpc3Rlck5vbkVudGl0eVR5cGVNb2R1bGVQYXRocyIsInJlc3VsdCIsInNhZmVQYXJzZSIsInN1Y2Nlc3MiLCJyZWxvYWQiLCJkb1NpbGVudCIsImNsZWFyIiwiZW50aXR5IiwicmVnaXN0ZXJNb2R1bGVQYXRocyIsInJlZ2lzdGVyVGFibGVTcGVjcyIsInNldCIsImlkIiwiZ2V0IiwiZW50aXR5SWQiLCJ1bmRlZmluZWQiLCJFcnJvciIsImdldEJ5VGFibGUiLCJ0YWJsZSIsIkFycmF5IiwiZnJvbSIsInZhbHVlcyIsImZpbmQiLCJleGlzdHMiLCJnZXRBbGxJZHMiLCJFbnRpdHlNYW5hZ2VyIiwia2V5cyIsInNvcnQiLCJnZXRBbGxFbnRpdGllcyIsImdldEFsbFBhcmVudElkcyIsImZpbHRlciIsInBhcmVudElkIiwiZ2V0Q2hpbGRyZW5JZHMiLCJzZXRNb2R1bGVQYXRoIiwia2V5IiwibW9kdWxlUGF0aCIsImdldE1vZHVsZVBhdGgiLCJzZXRUYWJsZVNwZWMiLCJ0YWJsZVNwZWMiLCJuYW1lIiwiZ2V0VGFibGVTcGVjIiwiZ2V0TmFtZXNGcm9tSWQiLCJwbHVyYWxpemVkIiwicGx1cmFsaXplIiwiZnMiLCJkYXNoZXJpemUiLCJ1bmRlcnNjb3JlIiwidG9Mb3dlckNhc2UiLCJmc1BsdXJhbCIsImNhbWVsIiwiY2FtZWxpemUiLCJjYW1lbFBsdXJhbCIsImNhcGl0YWwiLCJjYXBpdGFsUGx1cmFsIiwidXBwZXIiLCJ0b1VwcGVyQ2FzZSIsImNvbnN0YW50IiwiZ2V0RW50aXR5SWRGcm9tUGF0aCIsImZpbGVQYXRoIiwibWF0Y2hlZCIsIm1hdGNoIiwicmVwbGFjZSIsInR5cGVQYXRoc1BhdHRlcm5zIiwidHlwZVBhdGhzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsInBhdHRlcm4iLCJmbGF0IiwiZ2V0TW9kdWxlUGF0aEZyb21UeXBlRmlsZVBhdGgiLCJpbXBvcnRlZE1lbWJlcnMiLCJ2YWx1ZSIsIlpvZFR5cGUiLCJub3JtYWxpemVkUGF0aCIsInJlcGxhY2VBbGwiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVksU0FBUztBQUM1QixPQUFPQyxXQUFXLFFBQVE7QUFDMUIsU0FBU0MsSUFBSSxFQUFFQyxRQUFRLFFBQVEsbUJBQWM7QUFDN0MsT0FBT0MsZ0JBQWdCLGFBQWE7QUFDcEMsT0FBT0MsVUFBVSxPQUFPO0FBQ3hCLFNBQVNDLGFBQWEsRUFBRUMsQ0FBQyxRQUFRLE1BQU07QUFDdkMsU0FBU0MsTUFBTSxRQUFRLG1CQUFnQjtBQUN2QyxTQUE0Q0MsZ0JBQWdCLFFBQVEsb0JBQWlCO0FBQ3JGLFNBQVNDLFNBQVMsUUFBUSwwQkFBdUI7QUFDakQsU0FBU0MsYUFBYSxRQUFRLHdCQUFxQjtBQUVuRCxTQUFTQyxXQUFXLFFBQVEseUJBQXNCO0FBQ2xELFNBQVNDLE1BQU0sUUFBUSxjQUFXO0FBV2xDLE1BQU1DO0lBQ0lDLFdBQWdDLElBQUlDLE1BQU07SUFDM0NDLGNBQW1DLElBQUlELE1BQU07SUFDNUNFLGFBQXFDLElBQUlGLE1BQU07SUFDaERHLGVBQXdCLE1BQU07SUFFckMsK0JBQStCO0lBQy9CLE1BQU1DLFNBQVNDLElBQWEsS0FBSyxFQUFFO1FBQ2pDLElBQUksSUFBSSxDQUFDRixZQUFZLEVBQUU7WUFDckI7UUFDRjtRQUNBLE1BQU1HLGNBQWNqQixLQUFLa0IsSUFBSSxDQUFDZixPQUFPZ0IsV0FBVyxFQUFFO1FBRWxELFdBQVcsTUFBTUMsUUFBUXZCLEtBQUtHLEtBQUtxQixPQUFPLENBQUNKLGNBQWU7WUFDeEQsTUFBTUss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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/migration/migrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC,OAAO,EAAM,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMzD,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,gBAAgB,CAAC;AAMrE,OAAO,KAAK,EAA6B,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,EAAE,CAAC;AAEJ,qBAAa,QAAQ;YACL,iBAAiB;IAqB/B;;;;;;;;OAQG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAiG3C;;;;;;;;;OASG;IACG,SAAS,CACb,MAAM,EAAE,OAAO,GAAG,UAAU,EAC5B,OAAO,EAAE,CAAC,MAAM,cAAc,CAAC,EAAE,GAChC,OAAO,CAAC,eAAe,CAAC;IAmE3B;;;;;;OAMG;IACH,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;;;;IAWtE;;;;;;;OAOG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBpD,OAAO,CAAC,UAAU;IAalB;;;;;;OAMG;IACG,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAuBxC,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAgErE;;;;;;OAMG;IACG,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/migration/migrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC,OAAO,EAAM,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMzD,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,gBAAgB,CAAC;AAMrE,OAAO,KAAK,EAA6B,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,EAAE,CAAC;AAEJ,qBAAa,QAAQ;YACL,iBAAiB;IAqB/B;;;;;;;;OAQG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAiG3C;;;;;;;;;OASG;IACG,SAAS,CACb,MAAM,EAAE,OAAO,GAAG,UAAU,EAC5B,OAAO,EAAE,CAAC,MAAM,cAAc,CAAC,EAAE,GAChC,OAAO,CAAC,eAAe,CAAC;IAmE3B;;;;;;OAMG;IACH,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;;;;IAWtE;;;;;;;OAOG;IACG,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBpD,OAAO,CAAC,UAAU;IAalB;;;;;;OAMG;IACG,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC;IAuBxC,iBAAiB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAgErE;;;;;;OAMG;IACG,aAAa,IAAI,OAAO,CAAC,eAAe,CAAC;CAsEhD"}
|