sonamu 0.9.19 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +36 -0
  2. package/dist/ai/agents/agent.js +5 -7
  3. package/dist/ai/agents/index.js +1 -2
  4. package/dist/ai/agents/types.js +1 -1
  5. package/dist/ai/index.js +1 -2
  6. package/dist/ai/providers/rtzr/api.js +2 -3
  7. package/dist/ai/providers/rtzr/error.js +14 -29
  8. package/dist/ai/providers/rtzr/index.js +1 -2
  9. package/dist/ai/providers/rtzr/model.js +13 -20
  10. package/dist/ai/providers/rtzr/options.js +2 -3
  11. package/dist/ai/providers/rtzr/provider.js +2 -3
  12. package/dist/ai/providers/rtzr/utils.js +12 -21
  13. package/dist/api/base-frame.js +4 -4
  14. package/dist/api/caster.js +21 -38
  15. package/dist/api/code-converters.js +41 -98
  16. package/dist/api/config.d.ts +1 -10
  17. package/dist/api/config.d.ts.map +1 -1
  18. package/dist/api/config.js +9 -8
  19. package/dist/api/context.js +2 -3
  20. package/dist/api/decorators.js +80 -116
  21. package/dist/api/index.js +2 -3
  22. package/dist/api/secret.js +6 -10
  23. package/dist/api/sonamu.d.ts.map +1 -1
  24. package/dist/api/sonamu.js +200 -387
  25. package/dist/api/validator.js +5 -8
  26. package/dist/api/websocket-helpers.js +21 -32
  27. package/dist/auth/audit-log/builders.js +2 -3
  28. package/dist/auth/audit-log/events.js +2 -2
  29. package/dist/auth/audit-log/plugin.js +30 -61
  30. package/dist/auth/audit-log-ingestor.js +19 -41
  31. package/dist/auth/auth-generator.js +16 -41
  32. package/dist/auth/better-auth-entities.js +3 -4
  33. package/dist/auth/index.js +2 -3
  34. package/dist/auth/knex-adapter.js +18 -45
  35. package/dist/auth/plugins/entity-definitions/admin.js +2 -2
  36. package/dist/auth/plugins/entity-definitions/anonymous.js +2 -2
  37. package/dist/auth/plugins/entity-definitions/api-key.js +2 -2
  38. package/dist/auth/plugins/entity-definitions/audit-log.js +2 -2
  39. package/dist/auth/plugins/entity-definitions/index.js +2 -3
  40. package/dist/auth/plugins/entity-definitions/jwt.js +2 -2
  41. package/dist/auth/plugins/entity-definitions/organization.js +2 -2
  42. package/dist/auth/plugins/entity-definitions/passkey.js +2 -2
  43. package/dist/auth/plugins/entity-definitions/phone-number.js +2 -2
  44. package/dist/auth/plugins/entity-definitions/sso.js +2 -2
  45. package/dist/auth/plugins/entity-definitions/two-factor.js +2 -2
  46. package/dist/auth/plugins/entity-definitions/types.js +1 -1
  47. package/dist/auth/plugins/entity-definitions/username.js +2 -2
  48. package/dist/auth/plugins/index.js +1 -2
  49. package/dist/auth/plugins/wrappers/admin.js +2 -3
  50. package/dist/auth/plugins/wrappers/anonymous.js +2 -3
  51. package/dist/auth/plugins/wrappers/api-key.js +2 -3
  52. package/dist/auth/plugins/wrappers/index.js +1 -2
  53. package/dist/auth/plugins/wrappers/jwt.js +2 -3
  54. package/dist/auth/plugins/wrappers/organization.js +2 -3
  55. package/dist/auth/plugins/wrappers/passkey.js +2 -3
  56. package/dist/auth/plugins/wrappers/phone-number.js +2 -3
  57. package/dist/auth/plugins/wrappers/sso.js +2 -3
  58. package/dist/auth/plugins/wrappers/two-factor.js +2 -3
  59. package/dist/auth/plugins/wrappers/username.js +2 -3
  60. package/dist/bin/build-config.js +2 -2
  61. package/dist/bin/cli.js +151 -258
  62. package/dist/bin/fixture.d.ts.map +1 -1
  63. package/dist/bin/fixture.js +55 -97
  64. package/dist/bin/hmr-hook-register.js +3 -3
  65. package/dist/bin/migrate-targets.d.ts +3 -0
  66. package/dist/bin/migrate-targets.d.ts.map +1 -0
  67. package/dist/bin/migrate-targets.js +11 -0
  68. package/dist/bin/test-command.js +25 -55
  69. package/dist/bin/ts-loader-register.js +5 -6
  70. package/dist/bin/ts-loader-registration.js +6 -13
  71. package/dist/cache/cache-manager.js +3 -4
  72. package/dist/cache/decorator.js +11 -21
  73. package/dist/cache/drivers.js +2 -3
  74. package/dist/cache/index.js +2 -3
  75. package/dist/cache/types.js +1 -1
  76. package/dist/cache-control/cache-control.js +21 -34
  77. package/dist/cache-control/types.js +1 -1
  78. package/dist/compress/compress.js +10 -10
  79. package/dist/compress/index.js +1 -2
  80. package/dist/compress/types.js +1 -1
  81. package/dist/cone/cone-generator.js +25 -63
  82. package/dist/database/_batch_update.js +26 -46
  83. package/dist/database/base-model.js +44 -97
  84. package/dist/database/base-model.types.js +1 -1
  85. package/dist/database/db.d.ts +8 -14
  86. package/dist/database/db.d.ts.map +1 -1
  87. package/dist/database/db.js +127 -72
  88. package/dist/database/knex.js +5 -8
  89. package/dist/database/puri-subset.types.js +1 -1
  90. package/dist/database/puri-wrapper.js +11 -15
  91. package/dist/database/puri.js +117 -234
  92. package/dist/database/puri.types.js +3 -4
  93. package/dist/database/transaction-context.js +4 -5
  94. package/dist/database/upsert-builder.js +109 -176
  95. package/dist/dict/en.d.ts +1 -0
  96. package/dist/dict/en.d.ts.map +1 -1
  97. package/dist/dict/en.js +4 -4
  98. package/dist/dict/index.js +2 -3
  99. package/dist/dict/ko.d.ts +1 -0
  100. package/dist/dict/ko.d.ts.map +1 -1
  101. package/dist/dict/ko.js +4 -4
  102. package/dist/dict/rc-keys.js +3 -4
  103. package/dist/dict/sd.js +8 -19
  104. package/dist/dict/sonamu-dictionary.js +141 -284
  105. package/dist/dict/types.js +1 -1
  106. package/dist/dict/utils.js +4 -5
  107. package/dist/entity/entity-manager.d.ts +2 -2
  108. package/dist/entity/entity-manager.js +34 -82
  109. package/dist/entity/entity-template-cone.js +33 -66
  110. package/dist/entity/entity.js +156 -310
  111. package/dist/env.d.ts +14 -0
  112. package/dist/env.d.ts.map +1 -0
  113. package/dist/env.js +75 -0
  114. package/dist/exceptions/error-handler.js +2 -3
  115. package/dist/exceptions/so-exceptions.js +7 -5
  116. package/dist/filter/index.js +1 -2
  117. package/dist/filter/types.js +3 -4
  118. package/dist/filter/utils.js +21 -54
  119. package/dist/index.js +8 -7
  120. package/dist/logger/category.js +6 -12
  121. package/dist/logger/configure.js +23 -34
  122. package/dist/migration/code-generation.js +146 -314
  123. package/dist/migration/index-where-predicate.js +52 -144
  124. package/dist/migration/migration-set.js +19 -33
  125. package/dist/migration/migrator.d.ts +2 -0
  126. package/dist/migration/migrator.d.ts.map +1 -1
  127. package/dist/migration/migrator.js +69 -53
  128. package/dist/migration/postgresql-schema-reader.js +126 -225
  129. package/dist/migration/slack-confirm.d.ts +1 -0
  130. package/dist/migration/slack-confirm.d.ts.map +1 -1
  131. package/dist/migration/slack-confirm.js +28 -38
  132. package/dist/migration/types.js +1 -1
  133. package/dist/naite/messaging-types.js +1 -1
  134. package/dist/naite/naite-reporter.js +15 -32
  135. package/dist/naite/naite.js +43 -76
  136. package/dist/ssr/index.js +6 -9
  137. package/dist/ssr/registry.js +10 -18
  138. package/dist/ssr/renderer.js +10 -21
  139. package/dist/ssr/types.js +1 -1
  140. package/dist/storage/base-file.js +5 -10
  141. package/dist/storage/buffered-file.js +3 -4
  142. package/dist/storage/drivers.js +2 -3
  143. package/dist/storage/index.js +2 -3
  144. package/dist/storage/s3-driver.js +5 -9
  145. package/dist/storage/storage-manager.js +5 -5
  146. package/dist/storage/types.js +1 -1
  147. package/dist/storage/uploaded-file.js +4 -6
  148. package/dist/stream/index.js +1 -2
  149. package/dist/stream/sse.js +8 -13
  150. package/dist/stream/ws-audience-resolver.js +5 -5
  151. package/dist/stream/ws-audience.js +3 -4
  152. package/dist/stream/ws-cluster-bus.js +3 -4
  153. package/dist/stream/ws-core.js +1 -1
  154. package/dist/stream/ws-delivery.js +11 -25
  155. package/dist/stream/ws-local-connection-store.js +9 -18
  156. package/dist/stream/ws-presence-store.js +43 -97
  157. package/dist/stream/ws-registry.js +17 -22
  158. package/dist/stream/ws-telemetry-memory.js +38 -45
  159. package/dist/stream/ws-telemetry-trace.js +4 -6
  160. package/dist/stream/ws-telemetry.js +82 -135
  161. package/dist/stream/ws.js +47 -91
  162. package/dist/syncer/api-parser.js +81 -147
  163. package/dist/syncer/checksum.js +9 -20
  164. package/dist/syncer/code-generator.js +29 -47
  165. package/dist/syncer/entity-operations.js +17 -27
  166. package/dist/syncer/event-batcher.js +8 -15
  167. package/dist/syncer/file-patterns.js +3 -4
  168. package/dist/syncer/file-tracking.js +6 -10
  169. package/dist/syncer/index.js +1 -2
  170. package/dist/syncer/module-loader.js +10 -26
  171. package/dist/syncer/syncer-actions.js +19 -37
  172. package/dist/syncer/syncer.js +46 -98
  173. package/dist/syncer/watcher.js +12 -26
  174. package/dist/tasks/decorator.js +7 -11
  175. package/dist/tasks/step-wrapper.js +7 -8
  176. package/dist/tasks/workflow-manager.js +18 -25
  177. package/dist/template/entity-converter.js +40 -64
  178. package/dist/template/helpers.js +32 -63
  179. package/dist/template/implementations/entity.template.js +7 -11
  180. package/dist/template/implementations/entry-server.template.js +2 -3
  181. package/dist/template/implementations/generated.template.js +25 -51
  182. package/dist/template/implementations/generated_http.template.js +31 -58
  183. package/dist/template/implementations/generated_sso.template.js +45 -85
  184. package/dist/template/implementations/init_types.template.js +4 -7
  185. package/dist/template/implementations/model.template.js +5 -10
  186. package/dist/template/implementations/model_test.template.js +2 -3
  187. package/dist/template/implementations/queries.template.js +4 -7
  188. package/dist/template/implementations/sd.template.js +17 -35
  189. package/dist/template/implementations/services.template.js +18 -30
  190. package/dist/template/implementations/view_form.template.js +72 -125
  191. package/dist/template/implementations/view_id_all_select.template.js +2 -3
  192. package/dist/template/implementations/view_list.template.js +86 -143
  193. package/dist/template/implementations/view_search_input.template.js +2 -3
  194. package/dist/template/index.js +5 -8
  195. package/dist/template/template-manager.js +13 -26
  196. package/dist/template/template-types.js +2 -3
  197. package/dist/template/template.js +7 -11
  198. package/dist/template/zod-converter.js +173 -348
  199. package/dist/testing/_relation-graph.js +18 -37
  200. package/dist/testing/bootstrap.js +5 -8
  201. package/dist/testing/data-explorer.js +34 -78
  202. package/dist/testing/dev-test-routes.js +54 -60
  203. package/dist/testing/dev-vitest-manager.js +33 -84
  204. package/dist/testing/faker-mappings.js +3 -4
  205. package/dist/testing/fixture-generator.d.ts +2 -1
  206. package/dist/testing/fixture-generator.d.ts.map +1 -1
  207. package/dist/testing/fixture-generator.js +159 -321
  208. package/dist/testing/fixture-loader.js +2 -2
  209. package/dist/testing/fixture-manager.d.ts.map +1 -1
  210. package/dist/testing/fixture-manager.js +124 -227
  211. package/dist/testing/global-setup.d.ts.map +1 -1
  212. package/dist/testing/global-setup.js +29 -17
  213. package/dist/testing/index.js +1 -2
  214. package/dist/testing/naite-vitest-reporter.js +2 -3
  215. package/dist/testing/parallel-db-manager.js +5 -3
  216. package/dist/testing/vitest-helpers.d.ts.map +1 -1
  217. package/dist/testing/vitest-helpers.js +15 -12
  218. package/dist/types/types.d.ts +14 -14
  219. package/dist/types/types.js +27 -50
  220. package/dist/ui/ai-api.js +6 -11
  221. package/dist/ui/ai-client.js +86 -134
  222. package/dist/ui/api.js +99 -195
  223. package/dist/ui/cdd-service.js +78 -130
  224. package/dist/ui/cdd-types.js +1 -1
  225. package/dist/ui-web/assets/{index-Df8q-fhb.js → index-DFStGyd0.js} +49 -49
  226. package/dist/ui-web/assets/index-Dx4ap5i4.css +1 -0
  227. package/dist/ui-web/index.html +2 -2
  228. package/dist/utils/async-utils.js +13 -25
  229. package/dist/utils/class-name.js +3 -4
  230. package/dist/utils/console-util.js +11 -26
  231. package/dist/utils/controller.d.ts.map +1 -1
  232. package/dist/utils/controller.js +14 -12
  233. package/dist/utils/esm-utils.js +5 -8
  234. package/dist/utils/formatter.js +10 -22
  235. package/dist/utils/fs-utils.js +14 -25
  236. package/dist/utils/lodash-able.js +3 -4
  237. package/dist/utils/model.js +7 -14
  238. package/dist/utils/object-utils.js +41 -73
  239. package/dist/utils/path-utils.js +5 -9
  240. package/dist/utils/process-utils.js +4 -7
  241. package/dist/utils/sql-parser.js +6 -13
  242. package/dist/utils/type-utils.js +16 -26
  243. package/dist/utils/utils.js +18 -40
  244. package/dist/utils/zod-error.js +9 -16
  245. package/dist/vector/chunking.js +24 -37
  246. package/dist/vector/config.js +2 -2
  247. package/dist/vector/embedding.js +8 -19
  248. package/dist/vector/index.js +1 -2
  249. package/dist/vector/types.js +1 -1
  250. package/package.json +7 -7
  251. package/src/__tests__/env.test.ts +127 -0
  252. package/src/api/__tests__/config.test.ts +10 -1
  253. package/src/api/config.ts +4 -12
  254. package/src/api/sonamu.ts +14 -4
  255. package/src/bin/__tests__/migrate-targets.test.ts +28 -0
  256. package/src/bin/__tests__/test-command.test.ts +82 -1
  257. package/src/bin/cli.ts +9 -18
  258. package/src/bin/fixture.ts +5 -4
  259. package/src/bin/migrate-targets.ts +7 -0
  260. package/src/bin/test-command.ts +2 -2
  261. package/src/database/__tests__/db.test.ts +175 -0
  262. package/src/database/db.ts +193 -71
  263. package/src/dict/en.ts +2 -0
  264. package/src/dict/ko.ts +2 -0
  265. package/src/env.ts +123 -0
  266. package/src/migration/__tests__/migrator.test.ts +149 -0
  267. package/src/migration/migrator.ts +74 -17
  268. package/src/migration/slack-confirm.ts +21 -0
  269. package/src/skills/sonamu/database.md +1 -1
  270. package/src/skills/sonamu/entity-basic.md +31 -0
  271. package/src/skills/sonamu/puri.md +22 -0
  272. package/src/skills/sonamu/testing-devrunner.md +1 -1
  273. package/src/skills/sonamu/upsert.md +53 -6
  274. package/src/stream/ws-telemetry-memory.ts +2 -2
  275. package/src/testing/fixture-generator.ts +2 -1
  276. package/src/testing/fixture-manager.ts +3 -4
  277. package/src/testing/global-setup.ts +42 -18
  278. package/src/testing/vitest-helpers.ts +14 -0
  279. package/src/utils/controller.ts +14 -7
  280. package/tsdown.api.config.ts +6 -0
  281. package/dist/_virtual/rolldown_runtime.js +0 -39
  282. package/dist/ui-web/assets/index-D4rYm-Xz.css +0 -1
@@ -1,6 +1,5 @@
1
1
  import { EntityManager, init_entity_manager } from "../../entity/entity-manager.js";
2
2
  import { Template, init_template } from "../template.js";
3
-
4
3
  //#region src/template/implementations/view_search_input.template.ts
5
4
  init_entity_manager();
6
5
  init_template();
@@ -87,7 +86,7 @@ export function ${names.capital}SearchInput({
87
86
  };
88
87
  }
89
88
  };
90
-
91
89
  //#endregion
92
90
  export { Template__view_search_input };
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld19zZWFyY2hfaW5wdXQudGVtcGxhdGUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlbXBsYXRlL2ltcGxlbWVudGF0aW9ucy92aWV3X3NlYXJjaF9pbnB1dC50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgdHlwZSBFbnRpdHlOYW1lc1JlY29yZCB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IHR5cGUgVGVtcGxhdGVPcHRpb25zIH0gZnJvbSBcIi4uLy4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVfX3ZpZXdfc2VhcmNoX2lucHV0IGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcInZpZXdfc2VhcmNoX2lucHV0XCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChuYW1lczogRW50aXR5TmFtZXNSZWNvcmQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBcIndlYi9zcmMvY29tcG9uZW50c1wiLFxuICAgICAgcGF0aDogYCR7bmFtZXMuZnN9LyR7bmFtZXMuY2FwaXRhbH1TZWFyY2hJbnB1dC50c3hgLFxuICAgIH07XG4gIH1cblxuICBvdmVycmlkZSBnZXRSZXF1aXJlZERpY3RLZXlzKCk6IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgcmV0dXJuIFtcImNvbW1vbi5zZWFyY2hQbGFjZWhvbGRlclwiXTtcbiAgfVxuXG4gIGFzeW5jIHJlbmRlcih7IGVudGl0eUlkIH06IFRlbXBsYXRlT3B0aW9uc1tcInZpZXdfc2VhcmNoX2lucHV0XCJdKSB7XG4gICAgY29uc3QgbmFtZXMgPSBFbnRpdHlNYW5hZ2VyLmdldE5hbWVzRnJvbUlkKGVudGl0eUlkKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgobmFtZXMpLFxuICAgICAgYm9keTogYFxuaW1wb3J0IHsgQnV0dG9uLCBFbnVtU2VsZWN0LCBJbnB1dCB9IGZyb20gXCJAc29uYW11LWtpdC9yZWFjdC1jb21wb25lbnRzL2NvbXBvbmVudHNcIjtcbmltcG9ydCB7IHVzZVNvbmFtdUJhc2VDb250ZXh0IH0gZnJvbSBcIkBzb25hbXUta2l0L3JlYWN0LWNvbXBvbmVudHMvY29udGV4dHNcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7ICR7bmFtZXMuY2FwaXRhbH1TZWFyY2hGaWVsZCwgJHtuYW1lcy5jYXBpdGFsfVNlYXJjaEZpZWxkTGFiZWwgfSBmcm9tIFwiQC9zZXJ2aWNlcy9zb25hbXUuZ2VuZXJhdGVkXCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwifmljb25zL2x1Y2lkZS9zZWFyY2hcIjtcbmltcG9ydCB7IFNEIH0gZnJvbSBcIkAvaTE4bi9zZC5nZW5lcmF0ZWRcIjtcbmV4cG9ydCB0eXBlICR7bmFtZXMuY2FwaXRhbH1TZWFyY2hJbnB1dFByb3BzID0ge1xuICBpbnB1dDoge1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICAgIG9uVmFsdWVDaGFuZ2U/OiAodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpID0+IHZvaWQ7XG4gIH07XG4gIGRyb3Bkb3duOiB7XG4gICAgdmFsdWU/OiBzdHJpbmc7XG4gICAgb25WYWx1ZUNoYW5nZT86ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcbiAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiAke25hbWVzLmNhcGl0YWx9U2VhcmNoSW5wdXQoe1xuICBpbnB1dDogeyB2YWx1ZTogaW5wdXRWYWx1ZSwgb25WYWx1ZUNoYW5nZTogaW5wdXRPblZhbHVlQ2hhbmdlIH0sXG4gIGRyb3Bkb3duOiBkcm9wZG93blByb3BzLFxufTogJHtuYW1lcy5jYXBpdGFsfVNlYXJjaElucHV0UHJvcHMpIHtcbiAgY29uc3QgW2tleXdvcmQsIHNldEtleXdvcmRdID0gdXNlU3RhdGU8c3RyaW5nPihpbnB1dFZhbHVlID8/IFwiXCIpO1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICBpbnB1dE9uVmFsdWVDaGFuZ2U/LihrZXl3b3JkIHx8IHVuZGVmaW5lZCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgIGhhbmRsZVNlYXJjaCgpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgIDxFbnVtU2VsZWN0XG4gICAgICAgIGVudW09eyR7bmFtZXMuY2FwaXRhbH1TZWFyY2hGaWVsZH1cbiAgICAgICAgbGFiZWxzPXske25hbWVzLmNhcGl0YWx9U2VhcmNoRmllbGRMYWJlbH1cbiAgICAgICAgdmFsdWU9e2Ryb3Bkb3duUHJvcHMudmFsdWV9XG4gICAgICAgIG9uVmFsdWVDaGFuZ2U9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGRyb3Bkb3duUHJvcHMub25WYWx1ZUNoYW5nZT8uKHZhbHVlIGFzIHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpO1xuICAgICAgICB9fVxuICAgICAgICBwbGFjZWhvbGRlcj17U0QoXCJjb21tb24uc2VhcmNoXCIpfVxuICAgICAgICBjbGFzc05hbWU9XCJ3LVsxNTBweF0gaC04XCJcbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxJbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17U0QoXCJjb21tb24uc2VhcmNoUGxhY2Vob2xkZXJcIil9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiaC04IHctWzIwMHB4XSBwci04XCJcbiAgICAgICAgICB2YWx1ZT17a2V5d29yZH1cbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldEtleXdvcmQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgLz5cbiAgICAgICAgPEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdmFyaWFudD1cImdob3N0XCIgb25DbGljaz17aGFuZGxlU2VhcmNofSBpY29uPXs8U2VhcmNoSWNvbiAvPn0gLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuICAgICAgYC50cmltKCksXG4gICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7cUJBQTREO2VBR3JCO0FBRXZDLElBQWEsOEJBQWIsY0FBaUQsU0FBUztDQUN4RCxjQUFjO0FBQ1osUUFBTSxvQkFBb0I7O0NBRzVCLGlCQUFpQixPQUEwQjtBQUN6QyxTQUFPO0dBQ0wsUUFBUTtHQUNSLE1BQU0sR0FBRyxNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVE7R0FDcEM7O0NBR0gsQUFBUyxzQkFBdUM7QUFDOUMsU0FBTyxDQUFDLDJCQUEyQjs7Q0FHckMsTUFBTSxPQUFPLEVBQUUsWUFBa0Q7RUFDL0QsTUFBTSxRQUFRLGNBQWMsZUFBZSxTQUFTO0FBRXBELFNBQU87R0FDTCxHQUFHLEtBQUssaUJBQWlCLE1BQU07R0FDL0IsTUFBTTs7Ozs7V0FLRCxNQUFNLFFBQVEsZUFBZSxNQUFNLFFBQVE7OztjQUd4QyxNQUFNLFFBQVE7Ozs7Ozs7Ozs7O2tCQVdWLE1BQU0sUUFBUTs7O0tBRzNCLE1BQU0sUUFBUTs7Ozs7Ozs7Ozs7Ozs7OztnQkFnQkgsTUFBTSxRQUFRO2tCQUNaLE1BQU0sUUFBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQXNCeEIsTUFBTTtHQUNSLFlBQVksRUFBRTtHQUNmIn0=
91
+
92
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld19zZWFyY2hfaW5wdXQudGVtcGxhdGUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3RlbXBsYXRlL2ltcGxlbWVudGF0aW9ucy92aWV3X3NlYXJjaF9pbnB1dC50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlNYW5hZ2VyIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgdHlwZSBFbnRpdHlOYW1lc1JlY29yZCB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IHR5cGUgVGVtcGxhdGVPcHRpb25zIH0gZnJvbSBcIi4uLy4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVfX3ZpZXdfc2VhcmNoX2lucHV0IGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcInZpZXdfc2VhcmNoX2lucHV0XCIpO1xuICB9XG5cbiAgZ2V0VGFyZ2V0QW5kUGF0aChuYW1lczogRW50aXR5TmFtZXNSZWNvcmQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBcIndlYi9zcmMvY29tcG9uZW50c1wiLFxuICAgICAgcGF0aDogYCR7bmFtZXMuZnN9LyR7bmFtZXMuY2FwaXRhbH1TZWFyY2hJbnB1dC50c3hgLFxuICAgIH07XG4gIH1cblxuICBvdmVycmlkZSBnZXRSZXF1aXJlZERpY3RLZXlzKCk6IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgcmV0dXJuIFtcImNvbW1vbi5zZWFyY2hQbGFjZWhvbGRlclwiXTtcbiAgfVxuXG4gIGFzeW5jIHJlbmRlcih7IGVudGl0eUlkIH06IFRlbXBsYXRlT3B0aW9uc1tcInZpZXdfc2VhcmNoX2lucHV0XCJdKSB7XG4gICAgY29uc3QgbmFtZXMgPSBFbnRpdHlNYW5hZ2VyLmdldE5hbWVzRnJvbUlkKGVudGl0eUlkKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgobmFtZXMpLFxuICAgICAgYm9keTogYFxuaW1wb3J0IHsgQnV0dG9uLCBFbnVtU2VsZWN0LCBJbnB1dCB9IGZyb20gXCJAc29uYW11LWtpdC9yZWFjdC1jb21wb25lbnRzL2NvbXBvbmVudHNcIjtcbmltcG9ydCB7IHVzZVNvbmFtdUJhc2VDb250ZXh0IH0gZnJvbSBcIkBzb25hbXUta2l0L3JlYWN0LWNvbXBvbmVudHMvY29udGV4dHNcIjtcbmltcG9ydCB0eXBlIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7ICR7bmFtZXMuY2FwaXRhbH1TZWFyY2hGaWVsZCwgJHtuYW1lcy5jYXBpdGFsfVNlYXJjaEZpZWxkTGFiZWwgfSBmcm9tIFwiQC9zZXJ2aWNlcy9zb25hbXUuZ2VuZXJhdGVkXCI7XG5pbXBvcnQgU2VhcmNoSWNvbiBmcm9tIFwifmljb25zL2x1Y2lkZS9zZWFyY2hcIjtcbmltcG9ydCB7IFNEIH0gZnJvbSBcIkAvaTE4bi9zZC5nZW5lcmF0ZWRcIjtcbmV4cG9ydCB0eXBlICR7bmFtZXMuY2FwaXRhbH1TZWFyY2hJbnB1dFByb3BzID0ge1xuICBpbnB1dDoge1xuICAgIHZhbHVlPzogc3RyaW5nO1xuICAgIG9uVmFsdWVDaGFuZ2U/OiAodmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpID0+IHZvaWQ7XG4gIH07XG4gIGRyb3Bkb3duOiB7XG4gICAgdmFsdWU/OiBzdHJpbmc7XG4gICAgb25WYWx1ZUNoYW5nZT86ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcbiAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiAke25hbWVzLmNhcGl0YWx9U2VhcmNoSW5wdXQoe1xuICBpbnB1dDogeyB2YWx1ZTogaW5wdXRWYWx1ZSwgb25WYWx1ZUNoYW5nZTogaW5wdXRPblZhbHVlQ2hhbmdlIH0sXG4gIGRyb3Bkb3duOiBkcm9wZG93blByb3BzLFxufTogJHtuYW1lcy5jYXBpdGFsfVNlYXJjaElucHV0UHJvcHMpIHtcbiAgY29uc3QgW2tleXdvcmQsIHNldEtleXdvcmRdID0gdXNlU3RhdGU8c3RyaW5nPihpbnB1dFZhbHVlID8/IFwiXCIpO1xuXG4gIGNvbnN0IGhhbmRsZVNlYXJjaCA9ICgpID0+IHtcbiAgICBpbnB1dE9uVmFsdWVDaGFuZ2U/LihrZXl3b3JkIHx8IHVuZGVmaW5lZCk7XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgIGhhbmRsZVNlYXJjaCgpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgIDxFbnVtU2VsZWN0XG4gICAgICAgIGVudW09eyR7bmFtZXMuY2FwaXRhbH1TZWFyY2hGaWVsZH1cbiAgICAgICAgbGFiZWxzPXske25hbWVzLmNhcGl0YWx9U2VhcmNoRmllbGRMYWJlbH1cbiAgICAgICAgdmFsdWU9e2Ryb3Bkb3duUHJvcHMudmFsdWV9XG4gICAgICAgIG9uVmFsdWVDaGFuZ2U9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGRyb3Bkb3duUHJvcHMub25WYWx1ZUNoYW5nZT8uKHZhbHVlIGFzIHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpO1xuICAgICAgICB9fVxuICAgICAgICBwbGFjZWhvbGRlcj17U0QoXCJjb21tb24uc2VhcmNoXCIpfVxuICAgICAgICBjbGFzc05hbWU9XCJ3LVsxNTBweF0gaC04XCJcbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxJbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBwbGFjZWhvbGRlcj17U0QoXCJjb21tb24uc2VhcmNoUGxhY2Vob2xkZXJcIil9XG4gICAgICAgICAgY2xhc3NOYW1lPVwiaC04IHctWzIwMHB4XSBwci04XCJcbiAgICAgICAgICB2YWx1ZT17a2V5d29yZH1cbiAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldEtleXdvcmQoZS50YXJnZXQudmFsdWUpfVxuICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgLz5cbiAgICAgICAgPEJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdmFyaWFudD1cImdob3N0XCIgb25DbGljaz17aGFuZGxlU2VhcmNofSBpY29uPXs8U2VhcmNoSWNvbiAvPn0gLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuICAgICAgYC50cmltKCksXG4gICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICB9O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztvQkFBMkQ7Y0FHckI7QUFFdEMsSUFBYSw4QkFBYixjQUFpRCxTQUFTO0NBQ3hELGNBQWM7RUFDWixNQUFNLG1CQUFtQjtDQUMzQjtDQUVBLGlCQUFpQixPQUEwQjtFQUN6QyxPQUFPO0dBQ0wsUUFBUTtHQUNSLE1BQU0sR0FBRyxNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVE7RUFDckM7Q0FDRjtDQUVBLHNCQUFnRDtFQUM5QyxPQUFPLENBQUMsMEJBQTBCO0NBQ3BDO0NBRUEsTUFBTSxPQUFPLEVBQUUsWUFBa0Q7RUFDL0QsTUFBTSxRQUFRLGNBQWMsZUFBZSxRQUFRO0VBRW5ELE9BQU87R0FDTCxHQUFHLEtBQUssaUJBQWlCLEtBQUs7R0FDOUIsTUFBTTs7Ozs7V0FLRCxNQUFNLFFBQVEsZUFBZSxNQUFNLFFBQVE7OztjQUd4QyxNQUFNLFFBQVE7Ozs7Ozs7Ozs7O2tCQVdWLE1BQU0sUUFBUTs7O0tBRzNCLE1BQU0sUUFBUTs7Ozs7Ozs7Ozs7Ozs7OztnQkFnQkgsTUFBTSxRQUFRO2tCQUNaLE1BQU0sUUFBUTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztRQXNCeEIsS0FBSztHQUNQLFlBQVksQ0FBQztFQUNmO0NBQ0Y7QUFDRiJ9
@@ -1,22 +1,19 @@
1
- import { __esmMin } from "../_virtual/rolldown_runtime.js";
1
+ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
2
  import { Template, init_template as init_template$1 } from "./template.js";
3
3
  import { TemplateManager, TemplateManagerClass, init_template_manager } from "./template-manager.js";
4
4
  import { BUILT_IN_TYPES, getZodTypeById, init_zod_converter, propNodeToZodTypeDef, propToZodType, propToZodTypeDef, zodTypeToRenderingNode, zodTypeToTsTypeDef, zodTypeToZodCode } from "./zod-converter.js";
5
5
  import { getColumnsNode, init_entity_converter, propNodeToZodType } from "./entity-converter.js";
6
6
  import { extractObjectDeclaration, getEnumInfoFromColName, getLabel, getRelationNameFromColumnName, getRelationPropFromColName, init_helpers } from "./helpers.js";
7
7
  import { init_template_types } from "./template-types.js";
8
-
9
- //#region src/template/index.ts
10
- var init_template = __esmMin((() => {
8
+ //#endregion
9
+ __esmMin((() => {
11
10
  init_entity_converter();
12
11
  init_helpers();
13
12
  init_template$1();
14
13
  init_template_manager();
15
14
  init_template_types();
16
15
  init_zod_converter();
17
- }));
18
-
19
- //#endregion
20
- init_template();
16
+ }))();
21
17
  export { BUILT_IN_TYPES, Template, TemplateManager, TemplateManagerClass, extractObjectDeclaration, getColumnsNode, getEnumInfoFromColName, getLabel, getRelationNameFromColumnName, getRelationPropFromColName, getZodTypeById, propNodeToZodType, propNodeToZodTypeDef, propToZodType, propToZodTypeDef, zodTypeToRenderingNode, zodTypeToTsTypeDef, zodTypeToZodCode };
18
+
22
19
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2VudGl0eS1jb252ZXJ0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2hlbHBlcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RlbXBsYXRlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90ZW1wbGF0ZS1tYW5hZ2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90ZW1wbGF0ZS10eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vem9kLWNvbnZlcnRlclwiO1xuIl0sIm1hcHBpbmdzIjoiIn0=
@@ -1,9 +1,8 @@
1
- import { __esmMin } from "../_virtual/rolldown_runtime.js";
1
+ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
2
  import { globAsync, init_async_utils } from "../utils/async-utils.js";
3
3
  import { importMembers, init_esm_utils } from "../utils/esm-utils.js";
4
4
  import { Template, init_template } from "./template.js";
5
5
  import path from "path";
6
-
7
6
  //#region src/template/template-manager.ts
8
7
  var TemplateManagerClass, TemplateManager;
9
8
  var init_template_manager = __esmMin((() => {
@@ -11,28 +10,22 @@ var init_template_manager = __esmMin((() => {
11
10
  init_esm_utils();
12
11
  init_template();
13
12
  TemplateManagerClass = class TemplateManagerClass {
14
- templates = new Map();
13
+ templates = /* @__PURE__ */ new Map();
15
14
  isAutoloaded = false;
16
15
  /**
17
16
  * 빌트인 템플릿 로드 (implementations/*.template.js)
18
17
  */
19
18
  async autoload() {
20
- if (this.isAutoloaded) {
21
- return;
22
- }
19
+ if (this.isAutoloaded) return;
23
20
  const templateFiles = await globAsync(path.join(import.meta.dirname, "implementations/*.template.js"));
24
21
  for (const templateFile of templateFiles) {
25
22
  const templates = await importMembers(templateFile);
26
23
  if (templates.length === 1 && typeof templates[0].value === "function" && templates[0].value.prototype instanceof Template) {
27
24
  const instance = new templates[0].value();
28
25
  this.templates.set(instance.key, instance);
29
- } else {
30
- throw new Error(`Template ${templateFile} should export only one class that extends Template`);
31
- }
32
- }
33
- for (const [key, template] of this.templates) {
34
- Template._getTemplatesMap().set(key, template);
26
+ } else throw new Error(`Template ${templateFile} should export only one class that extends Template`);
35
27
  }
28
+ for (const [key, template] of this.templates) Template._getTemplatesMap().set(key, template);
36
29
  this.isAutoloaded = true;
37
30
  }
38
31
  /**
@@ -52,12 +45,10 @@ var init_template_manager = __esmMin((() => {
52
45
  let count = 0;
53
46
  for (const file of templateFiles) {
54
47
  const templates = await importMembers(file);
55
- for (const { value } of templates) {
56
- if (this.isTemplateClass(value)) {
57
- const instance = new value();
58
- this.register(instance);
59
- count++;
60
- }
48
+ for (const { value } of templates) if (this.isTemplateClass(value)) {
49
+ const instance = new value();
50
+ this.register(instance);
51
+ count++;
61
52
  }
62
53
  }
63
54
  return count;
@@ -76,9 +67,7 @@ var init_template_manager = __esmMin((() => {
76
67
  * 여러 템플릿 등록
77
68
  */
78
69
  registerAll(templates) {
79
- for (const template of templates) {
80
- this.register(template);
81
- }
70
+ for (const template of templates) this.register(template);
82
71
  }
83
72
  /**
84
73
  * 템플릿 조회
@@ -87,9 +76,7 @@ var init_template_manager = __esmMin((() => {
87
76
  */
88
77
  get(key) {
89
78
  const template = this.templates.get(key);
90
- if (!template) {
91
- throw new Error(`Template '${key}' not found. Available: [${this.getAllKeys().join(", ")}]`);
92
- }
79
+ if (!template) throw new Error(`Template '${key}' not found. Available: [${this.getAllKeys().join(", ")}]`);
93
80
  return template;
94
81
  }
95
82
  /**
@@ -127,8 +114,8 @@ var init_template_manager = __esmMin((() => {
127
114
  };
128
115
  TemplateManager = new TemplateManagerClass();
129
116
  }));
130
-
131
117
  //#endregion
132
118
  init_template_manager();
133
119
  export { TemplateManager, TemplateManagerClass, init_template_manager };
134
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbWFuYWdlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvdGVtcGxhdGUtbWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyB0eXBlIFRlbXBsYXRlS2V5IH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBnbG9iQXN5bmMgfSBmcm9tIFwiLi4vdXRpbHMvYXN5bmMtdXRpbHNcIjtcbmltcG9ydCB7IGltcG9ydE1lbWJlcnMgfSBmcm9tIFwiLi4vdXRpbHMvZXNtLXV0aWxzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuL3RlbXBsYXRlXCI7XG5cbmNsYXNzIFRlbXBsYXRlTWFuYWdlckNsYXNzIHtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZXM6IE1hcDxUZW1wbGF0ZUtleSB8IHN0cmluZywgVGVtcGxhdGU+ID0gbmV3IE1hcCgpO1xuICBpc0F1dG9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDquLDrs7gg66mU7ISc65OcXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIOu5jO2KuOyduCDthZztlIzrpr8g66Gc65OcIChpbXBsZW1lbnRhdGlvbnMvKi50ZW1wbGF0ZS5qcylcbiAgICovXG4gIGFzeW5jIGF1dG9sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzQXV0b2xvYWRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZUZpbGVzID0gYXdhaXQgZ2xvYkFzeW5jKFxuICAgICAgcGF0aC5qb2luKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiaW1wbGVtZW50YXRpb25zLyoudGVtcGxhdGUuanNcIiksXG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgdGVtcGxhdGVGaWxlIG9mIHRlbXBsYXRlRmlsZXMpIHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IGltcG9ydE1lbWJlcnM8dW5rbm93bj4odGVtcGxhdGVGaWxlKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGVtcGxhdGVzLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICB0eXBlb2YgdGVtcGxhdGVzWzBdLnZhbHVlID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgdGVtcGxhdGVzWzBdLnZhbHVlLnByb3RvdHlwZSBpbnN0YW5jZW9mIFRlbXBsYXRlXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgKHRlbXBsYXRlc1swXS52YWx1ZSBhcyBuZXcgKCkgPT4gVGVtcGxhdGUpKCk7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzLnNldChpbnN0YW5jZS5rZXksIGluc3RhbmNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGVtcGxhdGUgJHt0ZW1wbGF0ZUZpbGV9IHNob3VsZCBleHBvcnQgb25seSBvbmUgY2xhc3MgdGhhdCBleHRlbmRzIFRlbXBsYXRlYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHRlbXBsYXRlXSBvZiB0aGlzLnRlbXBsYXRlcykge1xuICAgICAgVGVtcGxhdGUuX2dldFRlbXBsYXRlc01hcCgpLnNldChrZXkgYXMgVGVtcGxhdGVLZXksIHRlbXBsYXRlKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzQXV0b2xvYWRlZCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICog7YWc7ZSM66a/IOuLpOyLnCDroZzrk5xcbiAgICovXG4gIGFzeW5jIHJlbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnRlbXBsYXRlcy5jbGVhcigpO1xuICAgIFRlbXBsYXRlLl9jbGVhclRlbXBsYXRlcygpO1xuICAgIHRoaXMuaXNBdXRvbG9hZGVkID0gZmFsc2U7XG4gICAgYXdhaXQgdGhpcy5hdXRvbG9hZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIO2UhOuhnOygne2KuCDrlJTroInthqDrpqzsl5DshJwg7Luk7Iqk7YWAIO2FnO2UjOumvyDroZzrk5xcbiAgICovXG4gIGFzeW5jIGxvYWRGcm9tRGlyZWN0b3J5KGRpcjogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZUZpbGVzID0gYXdhaXQgZ2xvYkFzeW5jKHBhdGguam9pbihkaXIsIFwiKi50ZW1wbGF0ZS57dHMsanN9XCIpKTtcbiAgICBsZXQgY291bnQgPSAwO1xuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIHRlbXBsYXRlRmlsZXMpIHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IGltcG9ydE1lbWJlcnM8dW5rbm93bj4oZmlsZSk7XG4gICAgICBmb3IgKGNvbnN0IHsgdmFsdWUgfSBvZiB0ZW1wbGF0ZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNUZW1wbGF0ZUNsYXNzKHZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3ICh2YWx1ZSBhcyBuZXcgKCkgPT4gVGVtcGxhdGUpKCk7XG4gICAgICAgICAgdGhpcy5yZWdpc3RlcihpbnN0YW5jZSk7XG4gICAgICAgICAgY291bnQrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIHByaXZhdGUgaXNUZW1wbGF0ZUNsYXNzKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmIHZhbHVlLnByb3RvdHlwZSBpbnN0YW5jZW9mIFRlbXBsYXRlO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8g7YWc7ZSM66a/IOuTseuhnVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiDthZztlIzrpr8g65Ox66GdXG4gICAqL1xuICByZWdpc3Rlcih0ZW1wbGF0ZTogVGVtcGxhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlcy5zZXQodGVtcGxhdGUua2V5LCB0ZW1wbGF0ZSk7XG4gICAgLy8g7ZWY7JyEIO2YuO2ZmFxuICAgIFRlbXBsYXRlLl9nZXRUZW1wbGF0ZXNNYXAoKS5zZXQodGVtcGxhdGUua2V5LCB0ZW1wbGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICog7Jes65+sIO2FnO2UjOumvyDrk7HroZ1cbiAgICovXG4gIHJlZ2lzdGVyQWxsKHRlbXBsYXRlczogVGVtcGxhdGVbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGUgb2YgdGVtcGxhdGVzKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyKHRlbXBsYXRlKTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDthZztlIzrpr8g7KGw7ZqMXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIO2FnO2UjOumvyDsobDtmoxcbiAgICog67mM7Yq47J24IDog7J6Q64+Z7JmE7ISxIOyngOybkFxuICAgKiDsu6TsiqTthYAgOiDsnoTsnZgg66y47J6Q7Je0IOyngOybkFxuICAgKi9cbiAgZ2V0KGtleTogVGVtcGxhdGVLZXkgfCAoc3RyaW5nICYge30pKTogVGVtcGxhdGUge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZ2V0KGtleSk7XG4gICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW1wbGF0ZSAnJHtrZXl9JyBub3QgZm91bmQuIEF2YWlsYWJsZTogWyR7dGhpcy5nZXRBbGxLZXlzKCkuam9pbihcIiwgXCIpfV1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIO2FnO2UjOumvyDsobTsnqwg7Jes67aAXG4gICAqL1xuICBleGlzdHMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZXMuaGFzKGtleSk7XG4gIH1cblxuICAvKipcbiAgICog66qo65OgIO2FnO2UjOumvyDtgqQg66qp66GdXG4gICAqL1xuICBnZXRBbGxLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRlbXBsYXRlcy5rZXlzKCkpLnRvU29ydGVkKCk7XG4gIH1cblxuICAvKipcbiAgICog65Ox66Gd65CcIO2FnO2UjOumvyDqsJzsiJhcbiAgICovXG4gIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzLnNpemU7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDthYzsiqTtirgg7Jyg7Yu466as7YuwXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIOuqqOuToCDsg4Htg5wg7LSI6riw7ZmUICjthYzsiqTtirjsmqkpXG4gICAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlcy5jbGVhcigpO1xuICAgIHRoaXMuaXNBdXRvbG9hZGVkID0gZmFsc2U7XG4gICAgVGVtcGxhdGUuX2NsZWFyVGVtcGxhdGVzKCk7XG4gIH1cblxuICAvKipcbiAgICog6rKp66as65CcIOyduOyKpO2EtOyKpCDsg53shLEgKO2FjOyKpO2KuOyaqSlcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpOiBUZW1wbGF0ZU1hbmFnZXJDbGFzcyB7XG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZU1hbmFnZXJDbGFzcygpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBUZW1wbGF0ZU1hbmFnZXIgPSBuZXcgVGVtcGxhdGVNYW5hZ2VyQ2xhc3MoKTtcbmV4cG9ydCB7IFRlbXBsYXRlTWFuYWdlckNs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
120
+
121
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbWFuYWdlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvdGVtcGxhdGUtbWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyB0eXBlIFRlbXBsYXRlS2V5IH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBnbG9iQXN5bmMgfSBmcm9tIFwiLi4vdXRpbHMvYXN5bmMtdXRpbHNcIjtcbmltcG9ydCB7IGltcG9ydE1lbWJlcnMgfSBmcm9tIFwiLi4vdXRpbHMvZXNtLXV0aWxzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuL3RlbXBsYXRlXCI7XG5cbmNsYXNzIFRlbXBsYXRlTWFuYWdlckNsYXNzIHtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZXM6IE1hcDxUZW1wbGF0ZUtleSB8IHN0cmluZywgVGVtcGxhdGU+ID0gbmV3IE1hcCgpO1xuICBpc0F1dG9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDquLDrs7gg66mU7ISc65OcXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIOu5jO2KuOyduCDthZztlIzrpr8g66Gc65OcIChpbXBsZW1lbnRhdGlvbnMvKi50ZW1wbGF0ZS5qcylcbiAgICovXG4gIGFzeW5jIGF1dG9sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzQXV0b2xvYWRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZUZpbGVzID0gYXdhaXQgZ2xvYkFzeW5jKFxuICAgICAgcGF0aC5qb2luKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiaW1wbGVtZW50YXRpb25zLyoudGVtcGxhdGUuanNcIiksXG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgdGVtcGxhdGVGaWxlIG9mIHRlbXBsYXRlRmlsZXMpIHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IGltcG9ydE1lbWJlcnM8dW5rbm93bj4odGVtcGxhdGVGaWxlKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGVtcGxhdGVzLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICB0eXBlb2YgdGVtcGxhdGVzWzBdLnZhbHVlID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgdGVtcGxhdGVzWzBdLnZhbHVlLnByb3RvdHlwZSBpbnN0YW5jZW9mIFRlbXBsYXRlXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgKHRlbXBsYXRlc1swXS52YWx1ZSBhcyBuZXcgKCkgPT4gVGVtcGxhdGUpKCk7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzLnNldChpbnN0YW5jZS5rZXksIGluc3RhbmNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGVtcGxhdGUgJHt0ZW1wbGF0ZUZpbGV9IHNob3VsZCBleHBvcnQgb25seSBvbmUgY2xhc3MgdGhhdCBleHRlbmRzIFRlbXBsYXRlYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHRlbXBsYXRlXSBvZiB0aGlzLnRlbXBsYXRlcykge1xuICAgICAgVGVtcGxhdGUuX2dldFRlbXBsYXRlc01hcCgpLnNldChrZXkgYXMgVGVtcGxhdGVLZXksIHRlbXBsYXRlKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzQXV0b2xvYWRlZCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICog7YWc7ZSM66a/IOuLpOyLnCDroZzrk5xcbiAgICovXG4gIGFzeW5jIHJlbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnRlbXBsYXRlcy5jbGVhcigpO1xuICAgIFRlbXBsYXRlLl9jbGVhclRlbXBsYXRlcygpO1xuICAgIHRoaXMuaXNBdXRvbG9hZGVkID0gZmFsc2U7XG4gICAgYXdhaXQgdGhpcy5hdXRvbG9hZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIO2UhOuhnOygne2KuCDrlJTroInthqDrpqzsl5DshJwg7Luk7Iqk7YWAIO2FnO2UjOumvyDroZzrk5xcbiAgICovXG4gIGFzeW5jIGxvYWRGcm9tRGlyZWN0b3J5KGRpcjogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZUZpbGVzID0gYXdhaXQgZ2xvYkFzeW5jKHBhdGguam9pbihkaXIsIFwiKi50ZW1wbGF0ZS57dHMsanN9XCIpKTtcbiAgICBsZXQgY291bnQgPSAwO1xuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIHRlbXBsYXRlRmlsZXMpIHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IGltcG9ydE1lbWJlcnM8dW5rbm93bj4oZmlsZSk7XG4gICAgICBmb3IgKGNvbnN0IHsgdmFsdWUgfSBvZiB0ZW1wbGF0ZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNUZW1wbGF0ZUNsYXNzKHZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3ICh2YWx1ZSBhcyBuZXcgKCkgPT4gVGVtcGxhdGUpKCk7XG4gICAgICAgICAgdGhpcy5yZWdpc3RlcihpbnN0YW5jZSk7XG4gICAgICAgICAgY291bnQrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIHByaXZhdGUgaXNUZW1wbGF0ZUNsYXNzKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmIHZhbHVlLnByb3RvdHlwZSBpbnN0YW5jZW9mIFRlbXBsYXRlO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8g7YWc7ZSM66a/IOuTseuhnVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiDthZztlIzrpr8g65Ox66GdXG4gICAqL1xuICByZWdpc3Rlcih0ZW1wbGF0ZTogVGVtcGxhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlcy5zZXQodGVtcGxhdGUua2V5LCB0ZW1wbGF0ZSk7XG4gICAgLy8g7ZWY7JyEIO2YuO2ZmFxuICAgIFRlbXBsYXRlLl9nZXRUZW1wbGF0ZXNNYXAoKS5zZXQodGVtcGxhdGUua2V5LCB0ZW1wbGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICog7Jes65+sIO2FnO2UjOumvyDrk7HroZ1cbiAgICovXG4gIHJlZ2lzdGVyQWxsKHRlbXBsYXRlczogVGVtcGxhdGVbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGUgb2YgdGVtcGxhdGVzKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyKHRlbXBsYXRlKTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDthZztlIzrpr8g7KGw7ZqMXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIO2FnO2UjOumvyDsobDtmoxcbiAgICog67mM7Yq47J24IDog7J6Q64+Z7JmE7ISxIOyngOybkFxuICAgKiDsu6TsiqTthYAgOiDsnoTsnZgg66y47J6Q7Je0IOyngOybkFxuICAgKi9cbiAgZ2V0KGtleTogVGVtcGxhdGVLZXkgfCAoc3RyaW5nICYge30pKTogVGVtcGxhdGUge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZ2V0KGtleSk7XG4gICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW1wbGF0ZSAnJHtrZXl9JyBub3QgZm91bmQuIEF2YWlsYWJsZTogWyR7dGhpcy5nZXRBbGxLZXlzKCkuam9pbihcIiwgXCIpfV1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIO2FnO2UjOumvyDsobTsnqwg7Jes67aAXG4gICAqL1xuICBleGlzdHMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZXMuaGFzKGtleSk7XG4gIH1cblxuICAvKipcbiAgICog66qo65OgIO2FnO2UjOumvyDtgqQg66qp66GdXG4gICAqL1xuICBnZXRBbGxLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRlbXBsYXRlcy5rZXlzKCkpLnRvU29ydGVkKCk7XG4gIH1cblxuICAvKipcbiAgICog65Ox66Gd65CcIO2FnO2UjOumvyDqsJzsiJhcbiAgICovXG4gIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzLnNpemU7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDthYzsiqTtirgg7Jyg7Yu466as7YuwXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIOuqqOuToCDsg4Htg5wg7LSI6riw7ZmUICjthYzsiqTtirjsmqkpXG4gICAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlcy5jbGVhcigpO1xuICAgIHRoaXMuaXNBdXRvbG9hZGVkID0gZmFsc2U7XG4gICAgVGVtcGxhdGUuX2NsZWFyVGVtcGxhdGVzKCk7XG4gIH1cblxuICAvKipcbiAgICog6rKp66as65CcIOyduOyKpO2EtOyKpCDsg53shLEgKO2FjOyKpO2KuOyaqSlcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpOiBUZW1wbGF0ZU1hbmFnZXJDbGFzcyB7XG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZU1hbmFnZXJDbGFzcygpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBUZW1wbGF0ZU1hbmFnZXIgPSBuZXcgVGVtcGxhdGVNYW5hZ2VyQ2xhc3MoKTtcbmV4cG9ydCB7IFRlbXBsYXRlTWFuYWdlckNs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
@@ -1,9 +1,8 @@
1
- import { __esmMin } from "../_virtual/rolldown_runtime.js";
2
-
1
+ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
3
2
  //#region src/template/template-types.ts
4
3
  var init_template_types = __esmMin((() => {}));
5
-
6
4
  //#endregion
7
5
  init_template_types();
8
6
  export { init_template_types };
7
+
9
8
  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtdHlwZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3RlbXBsYXRlLXR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog7YWc7ZSM66a/IOq3uOujuSAo6rSA66CoIO2FnO2UjOumvyDrrLbsnYwg7Iuk7ZaJKVxuICovXG5leHBvcnQgdHlwZSBUZW1wbGF0ZUdyb3VwID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB0ZW1wbGF0ZXM6IEFycmF5PHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBnZXRPcHRpb25zOiAoYmFzZU9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfT47XG59O1xuXG4vKipcbiAqIO2FnO2UjOumvyDtlITrpqzshYsgKO2FnO2UjOumv+uzhCDquLDrs7gg7Ji17IWYKVxuICovXG5leHBvcnQgdHlwZSBUZW1wbGF0ZVByZXNldCA9IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiJdLCJtYXBwaW5ncyI6IiJ9
@@ -1,15 +1,15 @@
1
- import { __esmMin } from "../_virtual/rolldown_runtime.js";
1
+ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
2
  import { globAsync, init_async_utils } from "../utils/async-utils.js";
3
3
  import { importMembers, init_esm_utils } from "../utils/esm-utils.js";
4
4
  import path from "path";
5
-
6
5
  //#region src/template/template.ts
7
6
  var Template;
8
7
  var init_template = __esmMin((() => {
9
8
  init_async_utils();
10
9
  init_esm_utils();
11
10
  Template = class Template {
12
- static templates = new Map();
11
+ key;
12
+ static templates = /* @__PURE__ */ new Map();
13
13
  constructor(key) {
14
14
  this.key = key;
15
15
  }
@@ -25,9 +25,7 @@ var init_template = __esmMin((() => {
25
25
  if (templates.length === 1 && typeof templates[0].value === "function" && templates[0].value.prototype instanceof Template) {
26
26
  const instance = new templates[0].value();
27
27
  Template.templates.set(instance.key, instance);
28
- } else {
29
- throw new Error(`Template ${templateFile} should export only one class that extends Template`);
30
- }
28
+ } else throw new Error(`Template ${templateFile} should export only one class that extends Template`);
31
29
  }
32
30
  }
33
31
  /**
@@ -39,9 +37,7 @@ var init_template = __esmMin((() => {
39
37
  */
40
38
  static find(key) {
41
39
  const instance = Template.templates.get(key);
42
- if (!instance) {
43
- throw new Error(`Template ${key} not found. It might be because you tried to find a template before loading all templates. Did you call TemplateManager.autoload()?`);
44
- }
40
+ if (!instance) throw new Error(`Template ${key} not found. It might be because you tried to find a template before loading all templates. Did you call TemplateManager.autoload()?`);
45
41
  return instance;
46
42
  }
47
43
  /**
@@ -67,8 +63,8 @@ var init_template = __esmMin((() => {
67
63
  }
68
64
  };
69
65
  }));
70
-
71
66
  //#endregion
72
67
  init_template();
73
68
  export { Template, init_template };
74
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJuYW1lcyI6WyJrZXk6IFRlbXBsYXRlS2V5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3RlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHR5cGUgRW50aXR5TmFtZXNSZWNvcmQgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIFRlbXBsYXRlS2V5LCB0eXBlIFRlbXBsYXRlT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgZ2xvYkFzeW5jIH0gZnJvbSBcIi4uL3V0aWxzL2FzeW5jLXV0aWxzXCI7XG5pbXBvcnQgeyBpbXBvcnRNZW1iZXJzIH0gZnJvbSBcIi4uL3V0aWxzL2VzbS11dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBSZW5kZXJlZFRlbXBsYXRlID0ge1xuICB0YXJnZXQ6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBib2R5OiBzdHJpbmc7XG4gIGltcG9ydEtleXM6IHN0cmluZ1tdO1xuICBjdXN0b21IZWFkZXJzPzogc3RyaW5nW107XG4gIHByZVRlbXBsYXRlcz86IHtcbiAgICBrZXk6IFRlbXBsYXRlS2V5O1xuICAgIG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uc1tUZW1wbGF0ZUtleV07XG4gIH1bXTtcbn07XG5cbi8qKlxuICog7YWc7ZSM66a/7J2EIOuCmO2DgOuCtOuKlCDrsqDsnbTsiqQg7YG0656Y7Iqk7J6F64uI64ukLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGVtcGxhdGUge1xuICBwcml2YXRlIHN0YXRpYyB0ZW1wbGF0ZXM6IE1hcDxUZW1wbGF0ZUtleSwgVGVtcGxhdGU+ID0gbmV3IE1hcCgpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBrZXk6IFRlbXBsYXRlS2V5KSB7fVxuXG4gIC8qKlxuICAgKiDthZztlIzrpr8g6rWs7ZiE7LK06rCAIOyeiOuKlCDrlJTroInthqDrpqzsnZgg66qo65OgIO2FnO2UjOumv+ydhCDroZzrk5ztlanri4jri6QuXG4gICAqIO2FnO2UjOumv+ydtCDtlYTsmpQoVGVtcGxhdGVNYW5hZ2VyLmdldCntlbTsp4DquLAg7KCE7JeQIOy1nOyGjCDtlZwg67KIIO2YuOy2nO2VtOyjvOyFlOyVvCDtlanri4jri6QuXG4gICAqIEBkZXByZWNhdGVkIFRlbXBsYXRlTWFuYWdlci5hdXRvbG9hZCgpIOyCrOyaqSDqtozsnqVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgYXV0b2xvYWQoKSB7XG4gICAgY29uc3QgdGVtcGxhdGVGaWxlcyA9IGF3YWl0IGdsb2JBc3luYyhcbiAgICAgIC8vIFNvbmFtdeydmCDsvZTrk5zrsqDsnbTsiqTripQg7ZWt7IOBIOu5jOuTnOuQnCDssYTroZwgZGlzdCDsho3sl5Ag66i466y066W066+A66GcLFxuICAgICAgLy8g7ZiE7J6sIO2MjOydvOydhCDquLDspIDsnLzroZwg66eI7LCs6rCA7KeA66GcIGRpc3Qg7IaN7JeQIOyeiOuKlCDthZztlIzrpr8g6rWs7ZiE7LK0IGpzIO2MjOydvOuTpOydhCDssL7sirXri4jri6QuXG4gICAgICBwYXRoLmpvaW4oaW1wb3J0Lm1ldGEuZGlybmFtZSwgXCJpbXBsZW1lbnRhdGlvbnMvKi50ZW1wbGF0ZS5qc1wiKSxcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCB0ZW1wbGF0ZUZpbGUgb2YgdGVtcGxhdGVGaWxlcykge1xuICAgICAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gaW1wb3J0TWVtYmVyc+ydmCDrsJjtmZgg7YOA7J6F7J2EIOuqheyLnOyggeycvOuhnCDsp4DsoJXtlaAg7IiYIOyXhuydjFxuICAgICAgY29uc3QgdGVtcGxhdGVzID0gYXdhaXQgaW1wb3J0TWVtYmVyczxhbnk+KHRlbXBsYXRlRmlsZSk7XG4gICAgICBpZiAoXG4gICAgICAgIHRlbXBsYXRlcy5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgdHlwZW9mIHRlbXBsYXRlc1swXS52YWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgIHRlbXBsYXRlc1swXS52YWx1ZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBUZW1wbGF0ZVxuICAgICAgKSB7XG4gICAgICAgIC8vIO2BtOuemOyKpOydmCDsnbjsiqTthLTsiqTrpbwg7IOd7ISx7ZWY7JesIOuTseuhnVxuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyB0ZW1wbGF0ZXNbMF0udmFsdWUoKTtcbiAgICAgICAgVGVtcGxhdGUudGVtcGxhdGVzLnNldChpbnN0YW5jZS5rZXksIGluc3RhbmNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGVtcGxhdGUgJHt0ZW1wbGF0ZUZpbGV9IHNob3VsZCBleHBvcnQgb25seSBvbmUgY2xhc3MgdGhhdCBleHRlbmRzIFRlbXBsYXRlYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjb25zb2xlLmxvZyhcbiAgICAvLyAgIGNoYWxrLmdyYXkoYFtMb2FkaW5nXSBMb2FkZWQgJHt0aGlzLnRlbXBsYXRlcy5zaXplfSB0ZW1wbGF0ZXMuYClcbiAgICAvLyApO1xuICB9XG5cbiAgLyoqXG4gICAqIO2FnO2UjOumvyAqKuyduOyKpO2EtOyKpCoq66W8IGtleeuhnCDssL7slYTsmLXri4jri6QuXG4gICAqIOunjOyVvSDthZztlIzrpr/snbQg66Gc65OcKGF1dG9sb2FkKeuQmOyngCDslYrslZjqsbDrgpgg7LC+64qUIO2FnO2UjOumv+ydtCDsl4bri6TrqbQg7JeQ65+s66W8IOuNmOynkeuLiOuLpC5cbiAgICogQGRlcHJlY2F0ZWQgVGVtcGxhdGVNYW5hZ2VyLmdldCgpIOyCrOyaqSDqtozsnqVcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmaW5kKGtleTogVGVtcGxhdGVLZXkpOiBUZW1wbGF0ZSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBUZW1wbGF0ZS50ZW1wbGF0ZXMuZ2V0KGtleSk7XG4gICAgaWYgKCFpbnN0YW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGVtcGxhdGUgJHtrZXl9IG5vdCBmb3VuZC4gSXQgbWlnaHQgYmUgYmVjYXVzZSB5b3UgdHJpZWQgdG8gZmluZCBhIHRlbXBsYXRlIGJlZm9yZSBsb2FkaW5nIGFsbCB0ZW1wbGF0ZXMuIERpZCB5b3UgY2FsbCBUZW1wbGF0ZU1hbmFnZXIuYXV0b2xvYWQoKT9gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIOuCtOu2gOyaqTogVGVtcGxhdGVNYW5hZ2Vy7JeQ7IScIOyCrOyaqVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBfZ2V0VGVtcGxhdGVzTWFwKCk6IE1hcDxUZW1wbGF0ZUtleSwgVGVtcGxhdGU+IHtcbiAgICByZXR1cm4gVGVtcGxhdGUudGVtcGxhdGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIOuCtOu2gOyaqTogVGVtcGxhdGVNYW5hZ2Vy7JeQ7IScIOyCrOyaqVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBfY2xlYXJUZW1wbGF0ZXMoKTogdm9pZCB7XG4gICAgVGVtcGxhdGUudGVtcGxhdGVzLmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgcmVuZGVyKFxuICAgIG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uc1tUZW1wbGF0ZUtleV0sXG4gICAgLi4uZXh0cmE6IHVua25vd25bXVxuICApOiBSZW5kZXJlZFRlbXBsYXRlIHwgUHJvbWlzZTxSZW5kZXJlZFRlbXBsYXRlPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0VGFyZ2V0QW5kUGF0aChcbiAgICBuYW1lcz86IEVudGl0eU5hbWVzUmVjb3JkLFxuICAgIC4uLmV4dHJhOiB1bmtub3duW11cbiAgKToge1xuICAgIHRhcmdldDogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgfTtcblxuICAvKipcbiAgICog7J20IO2FnO2UjOumv+ydtCDtlYTsmpTroZwg7ZWY64qUIGkxOG4gZGljdCDtgqTrpbwg67CY7ZmY7ZWp64uI64ukLlxuICAgKiDsiqTsupDtj7TrlKkg7IucIOyXrOufrCDthZztlIzrpr/snZgg7YKk66W8IOuqqOyVhOyEnCDtlZwg67KI7JeQIOyymOumrO2VqeuLiOuLpC5cbiAgICpcbiAgICogQHJldHVybnMg7ZWE7JqU7ZWcIGRpY3Qg7YKkIOuwsOyXtCDrmJDripQgbnVsbCAoaTE4biDrtojtlYTsmpQg7IucKVxuICAgKi9cbiAgcHVibGljIGdldFJlcXVpcmVkRGljdEtleXMoKTogc3RyaW5nW10gfCBudWxsIHtcbiAgICAvLyDquLDrs7jsoIHsnLzroZwgZGljdCDtgqTqsIAg7ZWE7JqUIOyXhuydjC4g7ZWE7JqU7ZWcIO2FnO2UjOumv+yXkOyEnCDsmKTrsoTrnbzsnbTrk5xcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OzttQkFJaUQ7aUJBQ0U7Q0FpQjdCLFdBQXRCLE1BQXNCLFNBQVM7RUFDN0IsT0FBZSxZQUF3QyxJQUFJLEtBQUs7RUFFaEUsWUFBWSxBQUFPQSxLQUFrQjtHQUFsQjs7Ozs7OztFQU9uQixhQUFvQixXQUFXO0dBQzdCLE1BQU0sZ0JBQWdCLE1BQU0sVUFHMUIsS0FBSyxLQUFLLE9BQU8sS0FBSyxTQUFTLGdDQUFnQyxDQUNoRTtBQUVELFFBQUssTUFBTSxnQkFBZ0IsZUFBZTtJQUV4QyxNQUFNLFlBQVksTUFBTSxjQUFtQixhQUFhO0FBQ3hELFFBQ0UsVUFBVSxXQUFXLEtBQ3JCLE9BQU8sVUFBVSxHQUFHLFVBQVUsY0FDOUIsVUFBVSxHQUFHLE1BQU0scUJBQXFCLFVBQ3hDO0tBRUEsTUFBTSxXQUFXLElBQUksVUFBVSxHQUFHLE9BQU87QUFDekMsY0FBUyxVQUFVLElBQUksU0FBUyxLQUFLLFNBQVM7V0FDekM7QUFDTCxXQUFNLElBQUksTUFDUixZQUFZLGFBQWEscURBQzFCOzs7Ozs7Ozs7OztFQWdCUCxPQUFjLEtBQUssS0FBNEI7R0FDN0MsTUFBTSxXQUFXLFNBQVMsVUFBVSxJQUFJLElBQUk7QUFDNUMsT0FBSSxDQUFDLFVBQVU7QUFDYixVQUFNLElBQUksTUFDUixZQUFZLElBQUkscUlBQ2pCOztBQUVILFVBQU87Ozs7O0VBTVQsT0FBYyxtQkFBK0M7QUFDM0QsVUFBTyxTQUFTOzs7OztFQU1sQixPQUFjLGtCQUF3QjtBQUNwQyxZQUFTLFVBQVUsT0FBTzs7Ozs7Ozs7RUFzQjVCLEFBQU8sc0JBQXVDO0FBRTVDLFVBQU8ifQ==
69
+
70
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3RlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHR5cGUgRW50aXR5TmFtZXNSZWNvcmQgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIFRlbXBsYXRlS2V5LCB0eXBlIFRlbXBsYXRlT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgZ2xvYkFzeW5jIH0gZnJvbSBcIi4uL3V0aWxzL2FzeW5jLXV0aWxzXCI7XG5pbXBvcnQgeyBpbXBvcnRNZW1iZXJzIH0gZnJvbSBcIi4uL3V0aWxzL2VzbS11dGlsc1wiO1xuXG5leHBvcnQgdHlwZSBSZW5kZXJlZFRlbXBsYXRlID0ge1xuICB0YXJnZXQ6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBib2R5OiBzdHJpbmc7XG4gIGltcG9ydEtleXM6IHN0cmluZ1tdO1xuICBjdXN0b21IZWFkZXJzPzogc3RyaW5nW107XG4gIHByZVRlbXBsYXRlcz86IHtcbiAgICBrZXk6IFRlbXBsYXRlS2V5O1xuICAgIG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uc1tUZW1wbGF0ZUtleV07XG4gIH1bXTtcbn07XG5cbi8qKlxuICog7YWc7ZSM66a/7J2EIOuCmO2DgOuCtOuKlCDrsqDsnbTsiqQg7YG0656Y7Iqk7J6F64uI64ukLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVGVtcGxhdGUge1xuICBwcml2YXRlIHN0YXRpYyB0ZW1wbGF0ZXM6IE1hcDxUZW1wbGF0ZUtleSwgVGVtcGxhdGU+ID0gbmV3IE1hcCgpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBrZXk6IFRlbXBsYXRlS2V5KSB7fVxuXG4gIC8qKlxuICAgKiDthZztlIzrpr8g6rWs7ZiE7LK06rCAIOyeiOuKlCDrlJTroInthqDrpqzsnZgg66qo65OgIO2FnO2UjOumv+ydhCDroZzrk5ztlanri4jri6QuXG4gICAqIO2FnO2UjOumv+ydtCDtlYTsmpQoVGVtcGxhdGVNYW5hZ2VyLmdldCntlbTsp4DquLAg7KCE7JeQIOy1nOyGjCDtlZwg67KIIO2YuOy2nO2VtOyjvOyFlOyVvCDtlanri4jri6QuXG4gICAqIEBkZXByZWNhdGVkIFRlbXBsYXRlTWFuYWdlci5hdXRvbG9hZCgpIOyCrOyaqSDqtozsnqVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgYXV0b2xvYWQoKSB7XG4gICAgY29uc3QgdGVtcGxhdGVGaWxlcyA9IGF3YWl0IGdsb2JBc3luYyhcbiAgICAgIC8vIFNvbmFtdeydmCDsvZTrk5zrsqDsnbTsiqTripQg7ZWt7IOBIOu5jOuTnOuQnCDssYTroZwgZGlzdCDsho3sl5Ag66i466y066W066+A66GcLFxuICAgICAgLy8g7ZiE7J6sIO2MjOydvOydhCDquLDspIDsnLzroZwg66eI7LCs6rCA7KeA66GcIGRpc3Qg7IaN7JeQIOyeiOuKlCDthZztlIzrpr8g6rWs7ZiE7LK0IGpzIO2MjOydvOuTpOydhCDssL7sirXri4jri6QuXG4gICAgICBwYXRoLmpvaW4oaW1wb3J0Lm1ldGEuZGlybmFtZSwgXCJpbXBsZW1lbnRhdGlvbnMvKi50ZW1wbGF0ZS5qc1wiKSxcbiAgICApO1xuXG4gICAgZm9yIChjb25zdCB0ZW1wbGF0ZUZpbGUgb2YgdGVtcGxhdGVGaWxlcykge1xuICAgICAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gaW1wb3J0TWVtYmVyc+ydmCDrsJjtmZgg7YOA7J6F7J2EIOuqheyLnOyggeycvOuhnCDsp4DsoJXtlaAg7IiYIOyXhuydjFxuICAgICAgY29uc3QgdGVtcGxhdGVzID0gYXdhaXQgaW1wb3J0TWVtYmVyczxhbnk+KHRlbXBsYXRlRmlsZSk7XG4gICAgICBpZiAoXG4gICAgICAgIHRlbXBsYXRlcy5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgdHlwZW9mIHRlbXBsYXRlc1swXS52YWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgIHRlbXBsYXRlc1swXS52YWx1ZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBUZW1wbGF0ZVxuICAgICAgKSB7XG4gICAgICAgIC8vIO2BtOuemOyKpOydmCDsnbjsiqTthLTsiqTrpbwg7IOd7ISx7ZWY7JesIOuTseuhnVxuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyB0ZW1wbGF0ZXNbMF0udmFsdWUoKTtcbiAgICAgICAgVGVtcGxhdGUudGVtcGxhdGVzLnNldChpbnN0YW5jZS5rZXksIGluc3RhbmNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGVtcGxhdGUgJHt0ZW1wbGF0ZUZpbGV9IHNob3VsZCBleHBvcnQgb25seSBvbmUgY2xhc3MgdGhhdCBleHRlbmRzIFRlbXBsYXRlYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjb25zb2xlLmxvZyhcbiAgICAvLyAgIGNoYWxrLmdyYXkoYFtMb2FkaW5nXSBMb2FkZWQgJHt0aGlzLnRlbXBsYXRlcy5zaXplfSB0ZW1wbGF0ZXMuYClcbiAgICAvLyApO1xuICB9XG5cbiAgLyoqXG4gICAqIO2FnO2UjOumvyAqKuyduOyKpO2EtOyKpCoq66W8IGtleeuhnCDssL7slYTsmLXri4jri6QuXG4gICAqIOunjOyVvSDthZztlIzrpr/snbQg66Gc65OcKGF1dG9sb2FkKeuQmOyngCDslYrslZjqsbDrgpgg7LC+64qUIO2FnO2UjOumv+ydtCDsl4bri6TrqbQg7JeQ65+s66W8IOuNmOynkeuLiOuLpC5cbiAgICogQGRlcHJlY2F0ZWQgVGVtcGxhdGVNYW5hZ2VyLmdldCgpIOyCrOyaqSDqtozsnqVcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmaW5kKGtleTogVGVtcGxhdGVLZXkpOiBUZW1wbGF0ZSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBUZW1wbGF0ZS50ZW1wbGF0ZXMuZ2V0KGtleSk7XG4gICAgaWYgKCFpbnN0YW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGVtcGxhdGUgJHtrZXl9IG5vdCBmb3VuZC4gSXQgbWlnaHQgYmUgYmVjYXVzZSB5b3UgdHJpZWQgdG8gZmluZCBhIHRlbXBsYXRlIGJlZm9yZSBsb2FkaW5nIGFsbCB0ZW1wbGF0ZXMuIERpZCB5b3UgY2FsbCBUZW1wbGF0ZU1hbmFnZXIuYXV0b2xvYWQoKT9gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIOuCtOu2gOyaqTogVGVtcGxhdGVNYW5hZ2Vy7JeQ7IScIOyCrOyaqVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBfZ2V0VGVtcGxhdGVzTWFwKCk6IE1hcDxUZW1wbGF0ZUtleSwgVGVtcGxhdGU+IHtcbiAgICByZXR1cm4gVGVtcGxhdGUudGVtcGxhdGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIOuCtOu2gOyaqTogVGVtcGxhdGVNYW5hZ2Vy7JeQ7IScIOyCrOyaqVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBfY2xlYXJUZW1wbGF0ZXMoKTogdm9pZCB7XG4gICAgVGVtcGxhdGUudGVtcGxhdGVzLmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgcmVuZGVyKFxuICAgIG9wdGlvbnM6IFRlbXBsYXRlT3B0aW9uc1tUZW1wbGF0ZUtleV0sXG4gICAgLi4uZXh0cmE6IHVua25vd25bXVxuICApOiBSZW5kZXJlZFRlbXBsYXRlIHwgUHJvbWlzZTxSZW5kZXJlZFRlbXBsYXRlPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZ2V0VGFyZ2V0QW5kUGF0aChcbiAgICBuYW1lcz86IEVudGl0eU5hbWVzUmVjb3JkLFxuICAgIC4uLmV4dHJhOiB1bmtub3duW11cbiAgKToge1xuICAgIHRhcmdldDogc3RyaW5nO1xuICAgIHBhdGg6IHN0cmluZztcbiAgfTtcblxuICAvKipcbiAgICog7J20IO2FnO2UjOumv+ydtCDtlYTsmpTroZwg7ZWY64qUIGkxOG4gZGljdCDtgqTrpbwg67CY7ZmY7ZWp64uI64ukLlxuICAgKiDsiqTsupDtj7TrlKkg7IucIOyXrOufrCDthZztlIzrpr/snZgg7YKk66W8IOuqqOyVhOyEnCDtlZwg67KI7JeQIOyymOumrO2VqeuLiOuLpC5cbiAgICpcbiAgICogQHJldHVybnMg7ZWE7JqU7ZWcIGRpY3Qg7YKkIOuwsOyXtCDrmJDripQgbnVsbCAoaTE4biDrtojtlYTsmpQg7IucKVxuICAgKi9cbiAgcHVibGljIGdldFJlcXVpcmVkRGljdEtleXMoKTogc3RyaW5nW10gfCBudWxsIHtcbiAgICAvLyDquLDrs7jsoIHsnLzroZwgZGljdCDtgqTqsIAg7ZWE7JqUIOyXhuydjC4g7ZWE7JqU7ZWcIO2FnO2UjOumv+yXkOyEnCDsmKTrsoTrnbzsnbTrk5xcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O2tCQUlnRDtnQkFDRTtDQWlCNUIsV0FBdEIsTUFBc0IsU0FBUztFQUdWO0VBRm5CLE9BQWUsNEJBQXdDLElBQUksSUFBSTtFQUUvRCxZQUFZLEtBQXlCO0dBQWxCLEtBQUEsTUFBQTtFQUFtQjs7Ozs7O0VBT3RDLGFBQW9CLFdBQVc7R0FDN0IsTUFBTSxnQkFBZ0IsTUFBTSxVQUcxQixLQUFLLEtBQUssT0FBTyxLQUFLLFNBQVMsK0JBQStCLENBQ2hFO0dBRUEsS0FBSyxNQUFNLGdCQUFnQixlQUFlO0lBRXhDLE1BQU0sWUFBWSxNQUFNLGNBQW1CLFlBQVk7SUFDdkQsSUFDRSxVQUFVLFdBQVcsS0FDckIsT0FBTyxVQUFVLEVBQUUsQ0FBQyxVQUFVLGNBQzlCLFVBQVUsRUFBRSxDQUFDLE1BQU0scUJBQXFCLFVBQ3hDO0tBRUEsTUFBTSxXQUFXLElBQUksVUFBVSxFQUFFLENBQUMsTUFBTTtLQUN4QyxTQUFTLFVBQVUsSUFBSSxTQUFTLEtBQUssUUFBUTtJQUMvQyxPQUNFLE1BQU0sSUFBSSxNQUNSLFlBQVksYUFBYSxvREFDM0I7R0FFSjtFQUtGOzs7Ozs7OztFQVNBLE9BQWMsS0FBSyxLQUE0QjtHQUM3QyxNQUFNLFdBQVcsU0FBUyxVQUFVLElBQUksR0FBRztHQUMzQyxJQUFJLENBQUMsVUFDSCxNQUFNLElBQUksTUFDUixZQUFZLElBQUksb0lBQ2xCO0dBRUYsT0FBTztFQUNUOzs7O0VBS0EsT0FBYyxtQkFBK0M7R0FDM0QsT0FBTyxTQUFTO0VBQ2xCOzs7O0VBS0EsT0FBYyxrQkFBd0I7R0FDcEMsU0FBUyxVQUFVLE1BQU07RUFDM0I7Ozs7Ozs7RUFxQkEsc0JBQThDO0dBRTVDLE9BQU87RUFDVDtDQUNGIn0=