sonamu 0.10.12 → 0.10.13

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 (513) hide show
  1. package/dist/ai/agents/agent.d.ts +1 -1
  2. package/dist/ai/agents/agent.d.ts.map +1 -1
  3. package/dist/ai/agents/agent.js +5 -6
  4. package/dist/ai/agents/types.d.ts +1 -1
  5. package/dist/ai/agents/types.d.ts.map +1 -1
  6. package/dist/ai/providers/rtzr/api.js +18 -18
  7. package/dist/ai/providers/rtzr/error.d.ts.map +1 -1
  8. package/dist/ai/providers/rtzr/error.js +17 -15
  9. package/dist/ai/providers/rtzr/model.d.ts.map +1 -1
  10. package/dist/ai/providers/rtzr/model.js +3 -2
  11. package/dist/ai/providers/rtzr/options.d.ts.map +1 -1
  12. package/dist/ai/providers/rtzr/options.js +16 -16
  13. package/dist/ai/providers/rtzr/provider.d.ts.map +1 -1
  14. package/dist/ai/providers/rtzr/provider.js +9 -9
  15. package/dist/ai/providers/rtzr/utils.d.ts.map +1 -1
  16. package/dist/ai/providers/rtzr/utils.js +1 -1
  17. package/dist/api/caster.d.ts.map +1 -1
  18. package/dist/api/caster.js +17 -17
  19. package/dist/api/code-converters.d.ts +4 -2
  20. package/dist/api/code-converters.d.ts.map +1 -1
  21. package/dist/api/code-converters.js +100 -19
  22. package/dist/api/config.d.ts +16 -1
  23. package/dist/api/config.d.ts.map +1 -1
  24. package/dist/api/config.js +28 -21
  25. package/dist/api/context.d.ts +2 -2
  26. package/dist/api/context.d.ts.map +1 -1
  27. package/dist/api/context.js +1 -1
  28. package/dist/api/decorators.d.ts.map +1 -1
  29. package/dist/api/decorators.js +18 -11
  30. package/dist/api/http-validator.d.ts +36 -0
  31. package/dist/api/http-validator.d.ts.map +1 -0
  32. package/dist/api/http-validator.js +72 -0
  33. package/dist/api/index.js +6 -4
  34. package/dist/api/sonamu.d.ts +59 -20
  35. package/dist/api/sonamu.d.ts.map +1 -1
  36. package/dist/api/sonamu.js +250 -106
  37. package/dist/api/websocket-helpers.d.ts +7 -5
  38. package/dist/api/websocket-helpers.d.ts.map +1 -1
  39. package/dist/api/websocket-helpers.js +6 -6
  40. package/dist/auth/audit-log/builders.d.ts.map +1 -1
  41. package/dist/auth/audit-log/builders.js +1 -1
  42. package/dist/auth/audit-log/client-ip.d.ts +1 -1
  43. package/dist/auth/audit-log/client-ip.d.ts.map +1 -1
  44. package/dist/auth/audit-log/client-ip.js +4 -2
  45. package/dist/auth/audit-log/events.d.ts +5 -1
  46. package/dist/auth/audit-log/events.d.ts.map +1 -1
  47. package/dist/auth/audit-log/events.js +1 -1
  48. package/dist/auth/audit-log/plugin.d.ts +0 -8
  49. package/dist/auth/audit-log/plugin.d.ts.map +1 -1
  50. package/dist/auth/audit-log/plugin.js +48 -52
  51. package/dist/auth/audit-log-ingestor.d.ts.map +1 -1
  52. package/dist/auth/audit-log-ingestor.js +16 -12
  53. package/dist/auth/auth-generator.d.ts.map +1 -1
  54. package/dist/auth/auth-generator.js +1 -1
  55. package/dist/auth/better-auth-request.d.ts.map +1 -1
  56. package/dist/auth/better-auth-request.js +6 -5
  57. package/dist/auth/knex-adapter.js +1 -1
  58. package/dist/auth/plugins/entity-definitions/index.d.ts +13 -1
  59. package/dist/auth/plugins/entity-definitions/index.d.ts.map +1 -1
  60. package/dist/auth/plugins/entity-definitions/index.js +1 -1
  61. package/dist/auth/plugins/wrappers/admin.d.ts +1 -1
  62. package/dist/bin/build-config.d.ts +25 -0
  63. package/dist/bin/build-config.d.ts.map +1 -1
  64. package/dist/bin/build-config.js +105 -2
  65. package/dist/bin/cli.js +131 -27
  66. package/dist/bin/compiler-policy.d.ts +3 -0
  67. package/dist/bin/compiler-policy.d.ts.map +1 -0
  68. package/dist/bin/compiler-policy.js +24 -0
  69. package/dist/bin/fixture.d.ts.map +1 -1
  70. package/dist/bin/fixture.js +5 -3
  71. package/dist/bin/test-command.d.ts +22 -1
  72. package/dist/bin/test-command.d.ts.map +1 -1
  73. package/dist/bin/test-command.js +18 -10
  74. package/dist/bin/ts-loader-registration.d.ts +7 -1
  75. package/dist/bin/ts-loader-registration.d.ts.map +1 -1
  76. package/dist/bin/ts-loader-registration.js +13 -4
  77. package/dist/cache/decorator.d.ts.map +1 -1
  78. package/dist/cache/decorator.js +11 -4
  79. package/dist/compress/compress.d.ts.map +1 -1
  80. package/dist/compress/compress.js +1 -1
  81. package/dist/cone/cone-generator.d.ts +14 -1
  82. package/dist/cone/cone-generator.d.ts.map +1 -1
  83. package/dist/cone/cone-generator.js +13 -9
  84. package/dist/database/_batch_update.js +1 -1
  85. package/dist/database/base-model.d.ts +22 -10
  86. package/dist/database/base-model.d.ts.map +1 -1
  87. package/dist/database/base-model.js +26 -16
  88. package/dist/database/base-model.types.d.ts +15 -3
  89. package/dist/database/base-model.types.d.ts.map +1 -1
  90. package/dist/database/db.d.ts +12 -2
  91. package/dist/database/db.d.ts.map +1 -1
  92. package/dist/database/db.js +10 -7
  93. package/dist/database/knex.d.ts.map +1 -1
  94. package/dist/database/knex.js +17 -14
  95. package/dist/database/puri.d.ts +11 -9
  96. package/dist/database/puri.d.ts.map +1 -1
  97. package/dist/database/puri.js +93 -79
  98. package/dist/database/puri.types.d.ts +21 -21
  99. package/dist/database/puri.types.d.ts.map +1 -1
  100. package/dist/database/puri.types.js +1 -1
  101. package/dist/database/upsert-builder.d.ts +12 -10
  102. package/dist/database/upsert-builder.d.ts.map +1 -1
  103. package/dist/database/upsert-builder.js +20 -12
  104. package/dist/dict/sd.d.ts.map +1 -1
  105. package/dist/dict/sd.js +1 -1
  106. package/dist/dict/sonamu-dictionary.d.ts.map +1 -1
  107. package/dist/dict/sonamu-dictionary.js +1 -1
  108. package/dist/dict/utils.d.ts.map +1 -1
  109. package/dist/dict/utils.js +7 -2
  110. package/dist/entity/entity-manager.d.ts +13 -4
  111. package/dist/entity/entity-manager.d.ts.map +1 -1
  112. package/dist/entity/entity-manager.js +19 -11
  113. package/dist/entity/entity-template-cone.d.ts +73 -5
  114. package/dist/entity/entity-template-cone.d.ts.map +1 -1
  115. package/dist/entity/entity-template-cone.js +4 -2
  116. package/dist/entity/entity.d.ts +6 -2
  117. package/dist/entity/entity.d.ts.map +1 -1
  118. package/dist/entity/entity.js +30 -28
  119. package/dist/env.d.ts +3 -1
  120. package/dist/env.d.ts.map +1 -1
  121. package/dist/env.js +1 -1
  122. package/dist/exceptions/error-handler.d.ts.map +1 -1
  123. package/dist/exceptions/error-handler.js +7 -2
  124. package/dist/exceptions/so-exceptions.d.ts +24 -20
  125. package/dist/exceptions/so-exceptions.d.ts.map +1 -1
  126. package/dist/exceptions/so-exceptions.js +4 -2
  127. package/dist/filter/utils.d.ts +7 -2
  128. package/dist/filter/utils.d.ts.map +1 -1
  129. package/dist/filter/utils.js +8 -6
  130. package/dist/index.d.ts +3 -0
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +12 -6
  133. package/dist/logger/configure.d.ts.map +1 -1
  134. package/dist/logger/configure.js +10 -10
  135. package/dist/migration/code-generation.d.ts.map +1 -1
  136. package/dist/migration/code-generation.js +50 -46
  137. package/dist/migration/index-where-predicate.d.ts.map +1 -1
  138. package/dist/migration/index-where-predicate.js +22 -8
  139. package/dist/migration/migration-set.d.ts.map +1 -1
  140. package/dist/migration/migration-set.js +1 -1
  141. package/dist/migration/migrator.d.ts +3 -2
  142. package/dist/migration/migrator.d.ts.map +1 -1
  143. package/dist/migration/migrator.js +27 -21
  144. package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
  145. package/dist/migration/postgresql-schema-reader.js +51 -36
  146. package/dist/migration/slack-confirm.d.ts.map +1 -1
  147. package/dist/migration/slack-confirm.js +1 -1
  148. package/dist/naite/naite-reporter.js +2 -2
  149. package/dist/naite/naite.d.ts +74 -15
  150. package/dist/naite/naite.d.ts.map +1 -1
  151. package/dist/naite/naite.js +5 -19
  152. package/dist/runtime-type.d.ts +6 -0
  153. package/dist/runtime-type.d.ts.map +1 -0
  154. package/dist/runtime-type.js +26 -0
  155. package/dist/ssr/hmr-opt-out.d.ts +26 -0
  156. package/dist/ssr/hmr-opt-out.d.ts.map +1 -0
  157. package/dist/ssr/hmr-opt-out.js +59 -0
  158. package/dist/ssr/renderer.d.ts.map +1 -1
  159. package/dist/ssr/renderer.js +4 -1
  160. package/dist/storage/base-file.js +14 -14
  161. package/dist/storage/buffered-file.d.ts +2 -2
  162. package/dist/storage/buffered-file.d.ts.map +1 -1
  163. package/dist/storage/buffered-file.js +12 -12
  164. package/dist/storage/s3-driver.d.ts.map +1 -1
  165. package/dist/storage/s3-driver.js +1 -1
  166. package/dist/storage/uploaded-file.d.ts +2 -2
  167. package/dist/storage/uploaded-file.d.ts.map +1 -1
  168. package/dist/storage/uploaded-file.js +8 -8
  169. package/dist/stream/sse.js +11 -11
  170. package/dist/stream/ws-core.d.ts +1 -1
  171. package/dist/stream/ws-core.d.ts.map +1 -1
  172. package/dist/stream/ws-delivery.d.ts +1 -1
  173. package/dist/stream/ws-delivery.d.ts.map +1 -1
  174. package/dist/stream/ws-delivery.js +6 -4
  175. package/dist/stream/ws-local-connection-store.d.ts.map +1 -1
  176. package/dist/stream/ws-local-connection-store.js +4 -2
  177. package/dist/stream/ws-presence-store.js +1 -1
  178. package/dist/stream/ws-registry.d.ts +4 -4
  179. package/dist/stream/ws-registry.d.ts.map +1 -1
  180. package/dist/stream/ws-registry.js +4 -2
  181. package/dist/stream/ws-telemetry.d.ts +16 -12
  182. package/dist/stream/ws-telemetry.d.ts.map +1 -1
  183. package/dist/stream/ws-telemetry.js +22 -18
  184. package/dist/stream/ws.d.ts +18 -12
  185. package/dist/stream/ws.d.ts.map +1 -1
  186. package/dist/stream/ws.js +26 -22
  187. package/dist/syncer/api-parser.js +1 -1
  188. package/dist/syncer/checksum.d.ts.map +1 -1
  189. package/dist/syncer/checksum.js +7 -8
  190. package/dist/syncer/code-generator.d.ts.map +1 -1
  191. package/dist/syncer/code-generator.js +13 -14
  192. package/dist/syncer/entity-operations.d.ts.map +1 -1
  193. package/dist/syncer/entity-operations.js +5 -6
  194. package/dist/syncer/file-copy.d.ts +5 -0
  195. package/dist/syncer/file-copy.d.ts.map +1 -0
  196. package/dist/syncer/file-copy.js +36 -0
  197. package/dist/syncer/file-patterns.d.ts +1 -0
  198. package/dist/syncer/file-patterns.d.ts.map +1 -1
  199. package/dist/syncer/file-patterns.js +5 -2
  200. package/dist/syncer/file-tracking.d.ts.map +1 -1
  201. package/dist/syncer/file-tracking.js +5 -4
  202. package/dist/syncer/filesystem-dependencies.d.ts +15 -0
  203. package/dist/syncer/filesystem-dependencies.d.ts.map +1 -0
  204. package/dist/syncer/filesystem-dependencies.js +53 -0
  205. package/dist/syncer/module-loader.d.ts +1 -1
  206. package/dist/syncer/module-loader.d.ts.map +1 -1
  207. package/dist/syncer/module-loader.js +6 -4
  208. package/dist/syncer/syncer-actions.d.ts +4 -0
  209. package/dist/syncer/syncer-actions.d.ts.map +1 -1
  210. package/dist/syncer/syncer-actions.js +34 -17
  211. package/dist/syncer/syncer.d.ts +17 -6
  212. package/dist/syncer/syncer.d.ts.map +1 -1
  213. package/dist/syncer/syncer.js +71 -29
  214. package/dist/syncer/watcher.d.ts.map +1 -1
  215. package/dist/syncer/watcher.js +3 -3
  216. package/dist/tasks/decorator.d.ts +6 -6
  217. package/dist/tasks/decorator.d.ts.map +1 -1
  218. package/dist/tasks/decorator.js +4 -4
  219. package/dist/tasks/step-wrapper.d.ts +6 -4
  220. package/dist/tasks/step-wrapper.d.ts.map +1 -1
  221. package/dist/tasks/step-wrapper.js +5 -5
  222. package/dist/tasks/workflow-manager.d.ts.map +1 -1
  223. package/dist/tasks/workflow-manager.js +13 -7
  224. package/dist/template/entity-converter.d.ts +1 -1
  225. package/dist/template/entity-converter.d.ts.map +1 -1
  226. package/dist/template/entity-converter.js +2 -2
  227. package/dist/template/helpers.d.ts +8 -6
  228. package/dist/template/helpers.d.ts.map +1 -1
  229. package/dist/template/helpers.js +1 -1
  230. package/dist/template/implementations/generated.template.d.ts.map +1 -1
  231. package/dist/template/implementations/generated.template.js +4 -4
  232. package/dist/template/implementations/generated_http.template.d.ts +7 -4
  233. package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
  234. package/dist/template/implementations/generated_http.template.js +21 -21
  235. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
  236. package/dist/template/implementations/generated_sso.template.js +6 -3
  237. package/dist/template/implementations/http_validators.template.d.ts +18 -0
  238. package/dist/template/implementations/http_validators.template.d.ts.map +1 -0
  239. package/dist/template/implementations/http_validators.template.js +127 -0
  240. package/dist/template/implementations/model.template.d.ts.map +1 -1
  241. package/dist/template/implementations/model.template.js +1 -1
  242. package/dist/template/implementations/queries.template.js +1 -1
  243. package/dist/template/implementations/sd.template.d.ts.map +1 -1
  244. package/dist/template/implementations/sd.template.js +79 -39
  245. package/dist/template/implementations/services.template.d.ts.map +1 -1
  246. package/dist/template/implementations/services.template.js +6 -4
  247. package/dist/template/implementations/view_form.template.d.ts +6 -1
  248. package/dist/template/implementations/view_form.template.d.ts.map +1 -1
  249. package/dist/template/implementations/view_form.template.js +23 -15
  250. package/dist/template/implementations/view_list.template.d.ts.map +1 -1
  251. package/dist/template/implementations/view_list.template.js +11 -6
  252. package/dist/template/template-manager.d.ts.map +1 -1
  253. package/dist/template/template-manager.js +9 -7
  254. package/dist/template/template-types.d.ts +12 -5
  255. package/dist/template/template-types.d.ts.map +1 -1
  256. package/dist/template/template-types.js +1 -1
  257. package/dist/template/template.d.ts +2 -2
  258. package/dist/template/template.d.ts.map +1 -1
  259. package/dist/template/template.js +6 -4
  260. package/dist/template/zod-converter.d.ts +0 -19
  261. package/dist/template/zod-converter.d.ts.map +1 -1
  262. package/dist/template/zod-converter.js +100 -84
  263. package/dist/testing/_relation-graph.d.ts.map +1 -1
  264. package/dist/testing/_relation-graph.js +2 -1
  265. package/dist/testing/bootstrap.d.ts.map +1 -1
  266. package/dist/testing/bootstrap.js +9 -6
  267. package/dist/testing/data-explorer.d.ts +32 -7
  268. package/dist/testing/data-explorer.d.ts.map +1 -1
  269. package/dist/testing/data-explorer.js +77 -31
  270. package/dist/testing/dev-test-routes.d.ts +8 -1
  271. package/dist/testing/dev-test-routes.d.ts.map +1 -1
  272. package/dist/testing/dev-test-routes.js +125 -108
  273. package/dist/testing/dev-vitest-manager.d.ts +54 -8
  274. package/dist/testing/dev-vitest-manager.d.ts.map +1 -1
  275. package/dist/testing/dev-vitest-manager.js +24 -9
  276. package/dist/testing/faker-mappings.d.ts +412 -1
  277. package/dist/testing/faker-mappings.d.ts.map +1 -1
  278. package/dist/testing/faker-mappings.js +1 -1
  279. package/dist/testing/filesystem.d.ts +2 -0
  280. package/dist/testing/filesystem.d.ts.map +1 -0
  281. package/dist/testing/filesystem.js +7 -0
  282. package/dist/testing/fixture-generator.d.ts +25 -8
  283. package/dist/testing/fixture-generator.d.ts.map +1 -1
  284. package/dist/testing/fixture-generator.js +132 -73
  285. package/dist/testing/fixture-loader.d.ts +3 -1
  286. package/dist/testing/fixture-loader.d.ts.map +1 -1
  287. package/dist/testing/fixture-loader.js +1 -20
  288. package/dist/testing/fixture-manager.d.ts +8 -7
  289. package/dist/testing/fixture-manager.d.ts.map +1 -1
  290. package/dist/testing/fixture-manager.js +91 -59
  291. package/dist/testing/global-setup.d.ts.map +1 -1
  292. package/dist/testing/global-setup.js +5 -2
  293. package/dist/testing/index.d.ts +2 -0
  294. package/dist/testing/index.d.ts.map +1 -1
  295. package/dist/testing/index.js +6 -3
  296. package/dist/types/types.d.ts +101 -99
  297. package/dist/types/types.d.ts.map +1 -1
  298. package/dist/types/types.js +234 -225
  299. package/dist/ui/ai-api.d.ts.map +1 -1
  300. package/dist/ui/ai-api.js +1 -1
  301. package/dist/ui/ai-client.d.ts.map +1 -1
  302. package/dist/ui/ai-client.js +28 -18
  303. package/dist/ui/api.d.ts.map +1 -1
  304. package/dist/ui/api.js +135 -128
  305. package/dist/ui/async-route.d.ts +3 -0
  306. package/dist/ui/async-route.d.ts.map +1 -0
  307. package/dist/ui/async-route.js +12 -0
  308. package/dist/ui/cdd-service.d.ts +9 -7
  309. package/dist/ui/cdd-service.d.ts.map +1 -1
  310. package/dist/ui/cdd-service.js +7 -5
  311. package/dist/ui/migrations-api.d.ts.map +1 -1
  312. package/dist/ui/migrations-api.js +17 -15
  313. package/dist/ui-web/assets/index-DV1AAq6W.js +178 -0
  314. package/dist/ui-web/index.html +1 -1
  315. package/dist/utils/formatter.d.ts.map +1 -1
  316. package/dist/utils/formatter.js +7 -5
  317. package/dist/utils/fs-utils.d.ts +3 -3
  318. package/dist/utils/fs-utils.d.ts.map +1 -1
  319. package/dist/utils/fs-utils.js +6 -6
  320. package/dist/utils/model.d.ts +3 -5
  321. package/dist/utils/model.d.ts.map +1 -1
  322. package/dist/utils/model.js +1 -1
  323. package/dist/utils/object-utils.d.ts +1 -1
  324. package/dist/utils/object-utils.d.ts.map +1 -1
  325. package/dist/utils/object-utils.js +17 -16
  326. package/dist/utils/process-utils.d.ts.map +1 -1
  327. package/dist/utils/process-utils.js +4 -2
  328. package/dist/utils/runtime-value.d.ts +13 -0
  329. package/dist/utils/runtime-value.d.ts.map +1 -0
  330. package/dist/utils/runtime-value.js +40 -0
  331. package/dist/utils/sql-parser.d.ts +8 -1
  332. package/dist/utils/sql-parser.d.ts.map +1 -1
  333. package/dist/utils/sql-parser.js +6 -3
  334. package/dist/utils/type-utils.d.ts.map +1 -1
  335. package/dist/utils/type-utils.js +10 -8
  336. package/dist/utils/utils.d.ts +2 -2
  337. package/dist/utils/utils.d.ts.map +1 -1
  338. package/dist/utils/utils.js +11 -8
  339. package/dist/utils/zod-error.d.ts.map +1 -1
  340. package/dist/utils/zod-error.js +7 -4
  341. package/dist/vector/chunking.d.ts.map +1 -1
  342. package/dist/vector/chunking.js +1 -1
  343. package/dist/vector/embedding.d.ts.map +1 -1
  344. package/dist/vector/embedding.js +1 -1
  345. package/dist/vector/types.d.ts +3 -2
  346. package/dist/vector/types.d.ts.map +1 -1
  347. package/package.json +5 -3
  348. package/src/ai/agents/agent.ts +5 -5
  349. package/src/ai/agents/types.ts +1 -1
  350. package/src/ai/providers/rtzr/__tests__/model.test.ts +2 -2
  351. package/src/ai/providers/rtzr/error.ts +5 -3
  352. package/src/ai/providers/rtzr/model.ts +3 -2
  353. package/src/ai/providers/rtzr/options.ts +10 -5
  354. package/src/ai/providers/rtzr/provider.ts +10 -10
  355. package/src/ai/providers/rtzr/utils.ts +3 -1
  356. package/src/api/__tests__/config.test.ts +11 -21
  357. package/src/api/__tests__/sonamu.http-validator.test.ts +512 -0
  358. package/src/api/__tests__/sonamu.websocket.test.ts +51 -41
  359. package/src/api/__tests__/zod-compiler-policy.test.ts +95 -0
  360. package/src/api/caster.ts +6 -8
  361. package/src/api/code-converters.ts +136 -36
  362. package/src/api/config.ts +62 -4
  363. package/src/api/context.ts +3 -3
  364. package/src/api/decorators.ts +28 -17
  365. package/src/api/http-validator.ts +149 -0
  366. package/src/api/sonamu.ts +459 -152
  367. package/src/api/websocket-helpers.ts +24 -17
  368. package/src/auth/audit-log/builders.ts +3 -2
  369. package/src/auth/audit-log/client-ip.ts +4 -2
  370. package/src/auth/audit-log/events.ts +15 -1
  371. package/src/auth/audit-log/plugin.ts +129 -200
  372. package/src/auth/audit-log-ingestor.ts +19 -15
  373. package/src/auth/auth-generator.ts +10 -5
  374. package/src/auth/better-auth-request.ts +4 -3
  375. package/src/auth/knex-adapter.ts +8 -2
  376. package/src/auth/plugins/entity-definitions/index.ts +6 -5
  377. package/src/bin/__tests__/http-validator-benchmark.test.ts +94 -0
  378. package/src/bin/__tests__/test-command.test.ts +9 -15
  379. package/src/bin/__tests__/ts-loader-register.test.ts +15 -17
  380. package/src/bin/__tests__/zod-compiler-build.test.ts +307 -0
  381. package/src/bin/build-config.ts +167 -0
  382. package/src/bin/cli.ts +153 -36
  383. package/src/bin/compiler-policy.ts +35 -0
  384. package/src/bin/fixture.ts +14 -3
  385. package/src/bin/test-command.ts +74 -29
  386. package/src/bin/ts-loader-registration.ts +22 -4
  387. package/src/cache/decorator.ts +10 -3
  388. package/src/compress/compress.ts +17 -4
  389. package/src/cone/cone-generator.ts +34 -6
  390. package/src/database/__tests__/db.test.ts +1 -0
  391. package/src/database/__tests__/puri.test.ts +16 -15
  392. package/src/database/__tests__/transaction-scope.test.ts +5 -0
  393. package/src/database/_batch_update.ts +1 -0
  394. package/src/database/base-model.ts +81 -50
  395. package/src/database/base-model.types.ts +6 -6
  396. package/src/database/db.ts +29 -19
  397. package/src/database/knex.ts +30 -17
  398. package/src/database/puri-subset.test-d.ts +17 -0
  399. package/src/database/puri.ts +181 -143
  400. package/src/database/puri.types.test-d.ts +31 -1
  401. package/src/database/puri.types.ts +23 -21
  402. package/src/database/upsert-builder.ts +75 -53
  403. package/src/dict/sd.ts +15 -5
  404. package/src/dict/sonamu-dictionary.ts +6 -6
  405. package/src/dict/utils.ts +9 -1
  406. package/src/entity/entity-manager.ts +26 -9
  407. package/src/entity/entity-template-cone.ts +5 -10
  408. package/src/entity/entity.ts +50 -34
  409. package/src/env.ts +7 -3
  410. package/src/exceptions/error-handler.ts +17 -2
  411. package/src/exceptions/so-exceptions.ts +26 -20
  412. package/src/filter/utils.ts +21 -11
  413. package/src/index.ts +3 -0
  414. package/src/logger/configure.ts +26 -18
  415. package/src/migration/__tests__/migrator.test.ts +50 -57
  416. package/src/migration/code-generation.ts +132 -104
  417. package/src/migration/index-where-predicate.ts +51 -24
  418. package/src/migration/migration-set.ts +11 -5
  419. package/src/migration/migrator.ts +68 -41
  420. package/src/migration/postgresql-schema-reader.ts +52 -47
  421. package/src/migration/slack-confirm.ts +17 -15
  422. package/src/naite/naite-reporter.ts +1 -1
  423. package/src/naite/naite.ts +97 -24
  424. package/src/runtime-type.ts +34 -0
  425. package/src/ssr/hmr-opt-out.ts +78 -0
  426. package/src/ssr/renderer.ts +6 -0
  427. package/src/storage/base-file.ts +13 -13
  428. package/src/storage/buffered-file.ts +11 -11
  429. package/src/storage/s3-driver.ts +4 -1
  430. package/src/storage/uploaded-file.ts +8 -8
  431. package/src/stream/__tests__/ws-contracts.test.ts +4 -2
  432. package/src/stream/__tests__/ws-telemetry.test.ts +1 -1
  433. package/src/stream/__tests__/ws.test.ts +30 -6
  434. package/src/stream/sse.ts +12 -11
  435. package/src/stream/ws-core.ts +1 -1
  436. package/src/stream/ws-delivery.ts +16 -7
  437. package/src/stream/ws-local-connection-store.ts +2 -3
  438. package/src/stream/ws-presence-store.ts +6 -1
  439. package/src/stream/ws-registry.ts +16 -7
  440. package/src/stream/ws-telemetry.ts +66 -43
  441. package/src/stream/ws.ts +73 -39
  442. package/src/syncer/__tests__/api-parser.websocket-type-ref.test.ts +3 -2
  443. package/src/syncer/__tests__/http-validator-registry.test.ts +137 -0
  444. package/src/syncer/api-parser.ts +67 -27
  445. package/src/syncer/checksum.ts +17 -11
  446. package/src/syncer/code-generator.ts +25 -17
  447. package/src/syncer/entity-operations.ts +3 -5
  448. package/src/syncer/file-copy.ts +46 -0
  449. package/src/syncer/file-patterns.ts +11 -8
  450. package/src/syncer/file-tracking.ts +3 -4
  451. package/src/syncer/filesystem-dependencies.ts +73 -0
  452. package/src/syncer/module-loader.ts +8 -4
  453. package/src/syncer/syncer-actions.ts +56 -18
  454. package/src/syncer/syncer.ts +116 -43
  455. package/src/syncer/watcher.ts +8 -4
  456. package/src/tasks/decorator.ts +20 -12
  457. package/src/tasks/step-wrapper.ts +19 -9
  458. package/src/tasks/workflow-manager.ts +15 -9
  459. package/src/template/__tests__/http_validators.template.test.ts +160 -0
  460. package/src/template/__tests__/services.template.mutation.test.ts +24 -23
  461. package/src/template/__tests__/services.template.websocket.test.ts +21 -25
  462. package/src/template/entity-converter.ts +5 -2
  463. package/src/template/helpers.ts +8 -9
  464. package/src/template/implementations/generated.template.ts +5 -4
  465. package/src/template/implementations/generated_http.template.ts +61 -15
  466. package/src/template/implementations/generated_sso.template.ts +15 -4
  467. package/src/template/implementations/http_validators.template.ts +175 -0
  468. package/src/template/implementations/model.template.ts +3 -1
  469. package/src/template/implementations/sd.template.ts +81 -41
  470. package/src/template/implementations/services.template.ts +2 -2
  471. package/src/template/implementations/view_form.template.ts +56 -39
  472. package/src/template/implementations/view_list.template.ts +31 -23
  473. package/src/template/template-manager.ts +15 -13
  474. package/src/template/template-types.ts +13 -5
  475. package/src/template/template.ts +4 -3
  476. package/src/template/zod-converter.ts +206 -91
  477. package/src/testing/__tests__/dev-test-routes.test.ts +85 -25
  478. package/src/testing/__tests__/dev-vitest-manager.test.ts +15 -15
  479. package/src/testing/_relation-graph.ts +4 -1
  480. package/src/testing/bootstrap.ts +12 -5
  481. package/src/testing/data-explorer.ts +102 -53
  482. package/src/testing/dev-test-routes.ts +87 -50
  483. package/src/testing/dev-vitest-manager.ts +88 -32
  484. package/src/testing/faker-mappings.ts +2 -2
  485. package/src/testing/filesystem.ts +1 -0
  486. package/src/testing/fixture-generator.ts +191 -131
  487. package/src/testing/fixture-loader.ts +5 -1
  488. package/src/testing/fixture-manager.ts +129 -90
  489. package/src/testing/global-setup.ts +7 -3
  490. package/src/testing/index.ts +5 -0
  491. package/src/types/__tests__/entity-json-schema-search-text.test.ts +9 -3
  492. package/src/types/types.ts +184 -158
  493. package/src/ui/ai-api.ts +9 -7
  494. package/src/ui/ai-client.ts +61 -56
  495. package/src/ui/api.ts +727 -616
  496. package/src/ui/async-route.ts +4 -0
  497. package/src/ui/cdd-service.ts +35 -12
  498. package/src/ui/migrations-api.ts +63 -51
  499. package/src/utils/formatter.ts +7 -3
  500. package/src/utils/fs-utils.ts +5 -5
  501. package/src/utils/model.ts +4 -5
  502. package/src/utils/object-utils.ts +32 -22
  503. package/src/utils/process-utils.ts +4 -1
  504. package/src/utils/runtime-value.ts +43 -0
  505. package/src/utils/sql-parser.ts +13 -6
  506. package/src/utils/type-utils.ts +9 -7
  507. package/src/utils/utils.ts +19 -21
  508. package/src/utils/zod-error.ts +4 -2
  509. package/src/vector/chunking.ts +6 -1
  510. package/src/vector/embedding.ts +2 -1
  511. package/src/vector/types.ts +4 -2
  512. package/tsdown.api.config.ts +5 -2
  513. package/dist/ui-web/assets/index-C0m1pk6K.js +0 -177
@@ -1,4 +1,5 @@
1
1
  import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
+ import { init_runtime_value, isFunctionValue } from "../utils/runtime-value.js";
2
3
  import { globAsync, init_async_utils } from "../utils/async-utils.js";
3
4
  import { importMembers, init_esm_utils } from "../utils/esm-utils.js";
4
5
  import { Template, init_template } from "./template.js";
@@ -8,6 +9,7 @@ var TemplateManagerClass, TemplateManager;
8
9
  var init_template_manager = __esmMin((() => {
9
10
  init_async_utils();
10
11
  init_esm_utils();
12
+ init_runtime_value();
11
13
  init_template();
12
14
  TemplateManagerClass = class TemplateManagerClass {
13
15
  templates = /* @__PURE__ */ new Map();
@@ -20,12 +22,12 @@ var init_template_manager = __esmMin((() => {
20
22
  const templateFiles = await globAsync(path.join(import.meta.dirname, "implementations/*.template.js"));
21
23
  for (const templateFile of templateFiles) {
22
24
  const templates = await importMembers(templateFile);
23
- if (templates.length === 1 && typeof templates[0].value === "function" && templates[0].value.prototype instanceof Template) {
25
+ if (templates.length === 1 && this.isTemplateClass(templates[0].value)) {
24
26
  const instance = new templates[0].value();
25
27
  this.templates.set(instance.key, instance);
26
28
  } else throw new Error(`Template ${templateFile} should export only one class that extends Template`);
27
29
  }
28
- for (const [key, template] of this.templates) Template._getTemplatesMap().set(key, template);
30
+ for (const [key, template] of this.templates) Template.getTemplatesMap().set(key, template);
29
31
  this.isAutoloaded = true;
30
32
  }
31
33
  /**
@@ -33,7 +35,7 @@ var init_template_manager = __esmMin((() => {
33
35
  */
34
36
  async reload() {
35
37
  this.templates.clear();
36
- Template._clearTemplates();
38
+ Template.clearTemplates();
37
39
  this.isAutoloaded = false;
38
40
  await this.autoload();
39
41
  }
@@ -54,14 +56,14 @@ var init_template_manager = __esmMin((() => {
54
56
  return count;
55
57
  }
56
58
  isTemplateClass(value) {
57
- return typeof value === "function" && value.prototype instanceof Template;
59
+ return isFunctionValue(value) && value.prototype instanceof Template;
58
60
  }
59
61
  /**
60
62
  * 템플릿 등록
61
63
  */
62
64
  register(template) {
63
65
  this.templates.set(template.key, template);
64
- Template._getTemplatesMap().set(template.key, template);
66
+ Template.getTemplatesMap().set(template.key, template);
65
67
  }
66
68
  /**
67
69
  * 여러 템플릿 등록
@@ -103,7 +105,7 @@ var init_template_manager = __esmMin((() => {
103
105
  reset() {
104
106
  this.templates.clear();
105
107
  this.isAutoloaded = false;
106
- Template._clearTemplates();
108
+ Template.clearTemplates();
107
109
  }
108
110
  /**
109
111
  * 격리된 인스턴스 생성 (테스트용)
@@ -118,4 +120,4 @@ var init_template_manager = __esmMin((() => {
118
120
  init_template_manager();
119
121
  export { TemplateManager, TemplateManagerClass, init_template_manager };
120
122
 
121
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbWFuYWdlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvdGVtcGxhdGUtbWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyB0eXBlIFRlbXBsYXRlS2V5IH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBnbG9iQXN5bmMgfSBmcm9tIFwiLi4vdXRpbHMvYXN5bmMtdXRpbHNcIjtcbmltcG9ydCB7IGltcG9ydE1lbWJlcnMgfSBmcm9tIFwiLi4vdXRpbHMvZXNtLXV0aWxzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuL3RlbXBsYXRlXCI7XG5cbmNsYXNzIFRlbXBsYXRlTWFuYWdlckNsYXNzIHtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZXM6IE1hcDxUZW1wbGF0ZUtleSB8IHN0cmluZywgVGVtcGxhdGU+ID0gbmV3IE1hcCgpO1xuICBpc0F1dG9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDquLDrs7gg66mU7ISc65OcXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIOu5jO2KuOyduCDthZztlIzrpr8g66Gc65OcIChpbXBsZW1lbnRhdGlvbnMvKi50ZW1wbGF0ZS5qcylcbiAgICovXG4gIGFzeW5jIGF1dG9sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzQXV0b2xvYWRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZUZpbGVzID0gYXdhaXQgZ2xvYkFzeW5jKFxuICAgICAgcGF0aC5qb2luKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiaW1wbGVtZW50YXRpb25zLyoudGVtcGxhdGUuanNcIiksXG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgdGVtcGxhdGVGaWxlIG9mIHRlbXBsYXRlRmlsZXMpIHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IGltcG9ydE1lbWJlcnM8dW5rbm93bj4odGVtcGxhdGVGaWxlKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGVtcGxhdGVzLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICB0eXBlb2YgdGVtcGxhdGVzWzBdLnZhbHVlID09PSBcImZ1bmN0aW9uXCIgJiZcbiAgICAgICAgdGVtcGxhdGVzWzBdLnZhbHVlLnByb3RvdHlwZSBpbnN0YW5jZW9mIFRlbXBsYXRlXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgKHRlbXBsYXRlc1swXS52YWx1ZSBhcyBuZXcgKCkgPT4gVGVtcGxhdGUpKCk7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzLnNldChpbnN0YW5jZS5rZXksIGluc3RhbmNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGVtcGxhdGUgJHt0ZW1wbGF0ZUZpbGV9IHNob3VsZCBleHBvcnQgb25seSBvbmUgY2xhc3MgdGhhdCBleHRlbmRzIFRlbXBsYXRlYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHRlbXBsYXRlXSBvZiB0aGlzLnRlbXBsYXRlcykge1xuICAgICAgVGVtcGxhdGUuX2dldFRlbXBsYXRlc01hcCgpLnNldChrZXkgYXMgVGVtcGxhdGVLZXksIHRlbXBsYXRlKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzQXV0b2xvYWRlZCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICog7YWc7ZSM66a/IOuLpOyLnCDroZzrk5xcbiAgICovXG4gIGFzeW5jIHJlbG9hZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnRlbXBsYXRlcy5jbGVhcigpO1xuICAgIFRlbXBsYXRlLl9jbGVhclRlbXBsYXRlcygpO1xuICAgIHRoaXMuaXNBdXRvbG9hZGVkID0gZmFsc2U7XG4gICAgYXdhaXQgdGhpcy5hdXRvbG9hZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIO2UhOuhnOygne2KuCDrlJTroInthqDrpqzsl5DshJwg7Luk7Iqk7YWAIO2FnO2UjOumvyDroZzrk5xcbiAgICovXG4gIGFzeW5jIGxvYWRGcm9tRGlyZWN0b3J5KGRpcjogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZUZpbGVzID0gYXdhaXQgZ2xvYkFzeW5jKHBhdGguam9pbihkaXIsIFwiKi50ZW1wbGF0ZS57dHMsanN9XCIpKTtcbiAgICBsZXQgY291bnQgPSAwO1xuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIHRlbXBsYXRlRmlsZXMpIHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IGltcG9ydE1lbWJlcnM8dW5rbm93bj4oZmlsZSk7XG4gICAgICBmb3IgKGNvbnN0IHsgdmFsdWUgfSBvZiB0ZW1wbGF0ZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNUZW1wbGF0ZUNsYXNzKHZhbHVlKSkge1xuICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gbmV3ICh2YWx1ZSBhcyBuZXcgKCkgPT4gVGVtcGxhdGUpKCk7XG4gICAgICAgICAgdGhpcy5yZWdpc3RlcihpbnN0YW5jZSk7XG4gICAgICAgICAgY291bnQrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIHByaXZhdGUgaXNUZW1wbGF0ZUNsYXNzKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmIHZhbHVlLnByb3RvdHlwZSBpbnN0YW5jZW9mIFRlbXBsYXRlO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8g7YWc7ZSM66a/IOuTseuhnVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiDthZztlIzrpr8g65Ox66GdXG4gICAqL1xuICByZWdpc3Rlcih0ZW1wbGF0ZTogVGVtcGxhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlcy5zZXQodGVtcGxhdGUua2V5LCB0ZW1wbGF0ZSk7XG4gICAgLy8g7ZWY7JyEIO2YuO2ZmFxuICAgIFRlbXBsYXRlLl9nZXRUZW1wbGF0ZXNNYXAoKS5zZXQodGVtcGxhdGUua2V5LCB0ZW1wbGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICog7Jes65+sIO2FnO2UjOumvyDrk7HroZ1cbiAgICovXG4gIHJlZ2lzdGVyQWxsKHRlbXBsYXRlczogVGVtcGxhdGVbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGUgb2YgdGVtcGxhdGVzKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyKHRlbXBsYXRlKTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDthZztlIzrpr8g7KGw7ZqMXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIO2FnO2UjOumvyDsobDtmoxcbiAgICog67mM7Yq47J24IDog7J6Q64+Z7JmE7ISxIOyngOybkFxuICAgKiDsu6TsiqTthYAgOiDsnoTsnZgg66y47J6Q7Je0IOyngOybkFxuICAgKi9cbiAgZ2V0KGtleTogVGVtcGxhdGVLZXkgfCAoc3RyaW5nICYge30pKTogVGVtcGxhdGUge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZ2V0KGtleSk7XG4gICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW1wbGF0ZSAnJHtrZXl9JyBub3QgZm91bmQuIEF2YWlsYWJsZTogWyR7dGhpcy5nZXRBbGxLZXlzKCkuam9pbihcIiwgXCIpfV1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIO2FnO2UjOumvyDsobTsnqwg7Jes67aAXG4gICAqL1xuICBleGlzdHMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZXMuaGFzKGtleSk7XG4gIH1cblxuICAvKipcbiAgICog66qo65OgIO2FnO2UjOumvyDtgqQg66qp66GdXG4gICAqL1xuICBnZXRBbGxLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRlbXBsYXRlcy5rZXlzKCkpLnRvU29ydGVkKCk7XG4gIH1cblxuICAvKipcbiAgICog65Ox66Gd65CcIO2FnO2UjOumvyDqsJzsiJhcbiAgICovXG4gIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzLnNpemU7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDthYzsiqTtirgg7Jyg7Yu466as7YuwXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIOuqqOuToCDsg4Htg5wg7LSI6riw7ZmUICjthYzsiqTtirjsmqkpXG4gICAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlcy5jbGVhcigpO1xuICAgIHRoaXMuaXNBdXRvbG9hZGVkID0gZmFsc2U7XG4gICAgVGVtcGxhdGUuX2NsZWFyVGVtcGxhdGVzKCk7XG4gIH1cblxuICAvKipcbiAgICog6rKp66as65CcIOyduOyKpO2EtOyKpCDsg53shLEgKO2FjOyKpO2KuOyaqSlcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZSgpOiBUZW1wbGF0ZU1hbmFnZXJDbGFzcyB7XG4gICAgcmV0dXJuIG5ldyBUZW1wbGF0ZU1hbmFnZXJDbGFzcygpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBUZW1wbGF0ZU1hbmFnZXIgPSBuZXcgVGVtcGxhdGVNYW5hZ2VyQ2xhc3MoKTtcbmV4cG9ydCB7IFRlbXBsYXRlTWFuYWdlckNsYXNzIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O2tCQUdnRDtnQkFDRTtlQUNiO0NBRS9CLHVCQUFOLE1BQU0scUJBQXFCO0VBQ3pCLDRCQUF5RCxJQUFJLElBQUk7RUFDakUsZUFBd0I7Ozs7RUFTeEIsTUFBTSxXQUEwQjtHQUM5QixJQUFJLEtBQUssY0FDUDtHQUVGLE1BQU0sZ0JBQWdCLE1BQU0sVUFDMUIsS0FBSyxLQUFLLE9BQU8sS0FBSyxTQUFTLCtCQUErQixDQUNoRTtHQUVBLEtBQUssTUFBTSxnQkFBZ0IsZUFBZTtJQUN4QyxNQUFNLFlBQVksTUFBTSxjQUF1QixZQUFZO0lBQzNELElBQ0UsVUFBVSxXQUFXLEtBQ3JCLE9BQU8sVUFBVSxFQUFFLENBQUMsVUFBVSxjQUM5QixVQUFVLEVBQUUsQ0FBQyxNQUFNLHFCQUFxQixVQUN4QztLQUNBLE1BQU0sV0FBVyxJQUFLLFVBQVUsRUFBRSxDQUFDLE1BQTZCO0tBQ2hFLEtBQUssVUFBVSxJQUFJLFNBQVMsS0FBSyxRQUFRO0lBQzNDLE9BQ0UsTUFBTSxJQUFJLE1BQ1IsWUFBWSxhQUFhLG9EQUMzQjtHQUVKO0dBRUEsS0FBSyxNQUFNLENBQUMsS0FBSyxhQUFhLEtBQUssV0FDakMsU0FBUyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksS0FBb0IsUUFBUTtHQUc5RCxLQUFLLGVBQWU7RUFDdEI7Ozs7RUFLQSxNQUFNLFNBQXdCO0dBQzVCLEtBQUssVUFBVSxNQUFNO0dBQ3JCLFNBQVMsZ0JBQWdCO0dBQ3pCLEtBQUssZUFBZTtHQUNwQixNQUFNLEtBQUssU0FBUztFQUN0Qjs7OztFQUtBLE1BQU0sa0JBQWtCLEtBQThCO0dBQ3BELE1BQU0sZ0JBQWdCLE1BQU0sVUFBVSxLQUFLLEtBQUssS0FBSyxvQkFBb0IsQ0FBQztHQUMxRSxJQUFJLFFBQVE7R0FFWixLQUFLLE1BQU0sUUFBUSxlQUFlO0lBQ2hDLE1BQU0sWUFBWSxNQUFNLGNBQXVCLElBQUk7SUFDbkQsS0FBSyxNQUFNLEVBQUUsV0FBVyxXQUN0QixJQUFJLEtBQUssZ0JBQWdCLEtBQUssR0FBRztLQUMvQixNQUFNLFdBQVcsSUFBSyxNQUE2QjtLQUNuRCxLQUFLLFNBQVMsUUFBUTtLQUN0QjtJQUNGO0dBRUo7R0FFQSxPQUFPO0VBQ1Q7RUFFQSxnQkFBd0IsT0FBeUI7R0FDL0MsT0FBTyxPQUFPLFVBQVUsY0FBYyxNQUFNLHFCQUFxQjtFQUNuRTs7OztFQVNBLFNBQVMsVUFBMEI7R0FDakMsS0FBSyxVQUFVLElBQUksU0FBUyxLQUFLLFFBQVE7R0FFekMsU0FBUyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksU0FBUyxLQUFLLFFBQVE7RUFDeEQ7Ozs7RUFLQSxZQUFZLFdBQTZCO0dBQ3ZDLEtBQUssTUFBTSxZQUFZLFdBQ3JCLEtBQUssU0FBUyxRQUFRO0VBRTFCOzs7Ozs7RUFXQSxJQUFJLEtBQTRDO0dBQzlDLE1BQU0sV0FBVyxLQUFLLFVBQVUsSUFBSSxHQUFHO0dBQ3ZDLElBQUksQ0FBQyxVQUNILE1BQU0sSUFBSSxNQUFNLGFBQWEsSUFBSSwyQkFBMkIsS0FBSyxXQUFXLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFO0dBRTdGLE9BQU87RUFDVDs7OztFQUtBLE9BQU8sS0FBc0I7R0FDM0IsT0FBTyxLQUFLLFVBQVUsSUFBSSxHQUFHO0VBQy9COzs7O0VBS0EsYUFBdUI7R0FDckIsT0FBTyxNQUFNLEtBQUssS0FBSyxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUztFQUNwRDs7OztFQUtBLElBQUksT0FBZTtHQUNqQixPQUFPLEtBQUssVUFBVTtFQUN4Qjs7OztFQVNBLFFBQWM7R0FDWixLQUFLLFVBQVUsTUFBTTtHQUNyQixLQUFLLGVBQWU7R0FDcEIsU0FBUyxnQkFBZ0I7RUFDM0I7Ozs7RUFLQSxPQUFPLGlCQUF1QztHQUM1QyxPQUFPLElBQUkscUJBQXFCO0VBQ2xDO0NBQ0Y7Q0FFYSxrQkFBa0IsSUFBSSxxQkFBcUIifQ==
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtbWFuYWdlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcGxhdGUvdGVtcGxhdGUtbWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuXG5pbXBvcnQgeyB0eXBlIFRlbXBsYXRlS2V5IH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBnbG9iQXN5bmMgfSBmcm9tIFwiLi4vdXRpbHMvYXN5bmMtdXRpbHNcIjtcbmltcG9ydCB7IGltcG9ydE1lbWJlcnMgfSBmcm9tIFwiLi4vdXRpbHMvZXNtLXV0aWxzXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uVmFsdWUgfSBmcm9tIFwiLi4vdXRpbHMvcnVudGltZS12YWx1ZVwiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiLi90ZW1wbGF0ZVwiO1xuXG50eXBlIFRlbXBsYXRlQ29uc3RydWN0b3IgPSBuZXcgKCkgPT4gVGVtcGxhdGU7XG5cbmNsYXNzIFRlbXBsYXRlTWFuYWdlckNsYXNzIHtcbiAgcHJpdmF0ZSB0ZW1wbGF0ZXM6IE1hcDxUZW1wbGF0ZUtleSB8IHN0cmluZywgVGVtcGxhdGU+ID0gbmV3IE1hcCgpO1xuICBpc0F1dG9sb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDquLDrs7gg66mU7ISc65OcXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIOu5jO2KuOyduCDthZztlIzrpr8g66Gc65OcIChpbXBsZW1lbnRhdGlvbnMvKi50ZW1wbGF0ZS5qcylcbiAgICovXG4gIGFzeW5jIGF1dG9sb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzQXV0b2xvYWRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZUZpbGVzID0gYXdhaXQgZ2xvYkFzeW5jKFxuICAgICAgcGF0aC5qb2luKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiaW1wbGVtZW50YXRpb25zLyoudGVtcGxhdGUuanNcIiksXG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgdGVtcGxhdGVGaWxlIG9mIHRlbXBsYXRlRmlsZXMpIHtcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IGltcG9ydE1lbWJlcnM8dW5rbm93bj4odGVtcGxhdGVGaWxlKTtcbiAgICAgIGlmICh0ZW1wbGF0ZXMubGVuZ3RoID09PSAxICYmIHRoaXMuaXNUZW1wbGF0ZUNsYXNzKHRlbXBsYXRlc1swXS52YWx1ZSkpIHtcbiAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgdGVtcGxhdGVzWzBdLnZhbHVlKCk7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzLnNldChpbnN0YW5jZS5rZXksIGluc3RhbmNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGVtcGxhdGUgJHt0ZW1wbGF0ZUZpbGV9IHNob3VsZCBleHBvcnQgb25seSBvbmUgY2xhc3MgdGhhdCBleHRlbmRzIFRlbXBsYXRlYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHRlbXBsYXRlXSBvZiB0aGlzLnRlbXBsYXRlcykge1xuICAgICAgVGVtcGxhdGUuZ2V0VGVtcGxhdGVzTWFwKCkuc2V0KFxuICAgICAgICAvKiBTQUZFVFk6IOyEoO2WiSBab2Qg7KKF66WYIOu2hOq4sOyZgCDthZztlIzrpr8g7J6F66ClIOqzhOyVveydtCDsnbQg6rCS7J2YIO2DgOyeheydhCDrs7TsnqXtlZzri6QuICovIGtleSBhcyBUZW1wbGF0ZUtleSxcbiAgICAgICAgdGVtcGxhdGUsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuaXNBdXRvbG9hZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiDthZztlIzrpr8g64uk7IucIOuhnOuTnFxuICAgKi9cbiAgYXN5bmMgcmVsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMudGVtcGxhdGVzLmNsZWFyKCk7XG4gICAgVGVtcGxhdGUuY2xlYXJUZW1wbGF0ZXMoKTtcbiAgICB0aGlzLmlzQXV0b2xvYWRlZCA9IGZhbHNlO1xuICAgIGF3YWl0IHRoaXMuYXV0b2xvYWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDtlITroZzsoJ3tirgg65SU66CJ7Yag66as7JeQ7IScIOy7pOyKpO2FgCDthZztlIzrpr8g66Gc65OcXG4gICAqL1xuICBhc3luYyBsb2FkRnJvbURpcmVjdG9yeShkaXI6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgdGVtcGxhdGVGaWxlcyA9IGF3YWl0IGdsb2JBc3luYyhwYXRoLmpvaW4oZGlyLCBcIioudGVtcGxhdGUue3RzLGpzfVwiKSk7XG4gICAgbGV0IGNvdW50ID0gMDtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiB0ZW1wbGF0ZUZpbGVzKSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZXMgPSBhd2FpdCBpbXBvcnRNZW1iZXJzPHVua25vd24+KGZpbGUpO1xuICAgICAgZm9yIChjb25zdCB7IHZhbHVlIH0gb2YgdGVtcGxhdGVzKSB7XG4gICAgICAgIGlmICh0aGlzLmlzVGVtcGxhdGVDbGFzcyh2YWx1ZSkpIHtcbiAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyB2YWx1ZSgpO1xuICAgICAgICAgIHRoaXMucmVnaXN0ZXIoaW5zdGFuY2UpO1xuICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY291bnQ7XG4gIH1cblxuICBwcml2YXRlIGlzVGVtcGxhdGVDbGFzczxWYWx1ZT4odmFsdWU6IFZhbHVlKTogdmFsdWUgaXMgVmFsdWUgJiBUZW1wbGF0ZUNvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gaXNGdW5jdGlvblZhbHVlKHZhbHVlKSAmJiB2YWx1ZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBUZW1wbGF0ZTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIO2FnO2UjOumvyDrk7HroZ1cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICog7YWc7ZSM66a/IOuTseuhnVxuICAgKi9cbiAgcmVnaXN0ZXIodGVtcGxhdGU6IFRlbXBsYXRlKTogdm9pZCB7XG4gICAgdGhpcy50ZW1wbGF0ZXMuc2V0KHRlbXBsYXRlLmtleSwgdGVtcGxhdGUpO1xuICAgIC8vIO2VmOychCDtmLjtmZhcbiAgICBUZW1wbGF0ZS5nZXRUZW1wbGF0ZXNNYXAoKS5zZXQodGVtcGxhdGUua2V5LCB0ZW1wbGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICog7Jes65+sIO2FnO2UjOumvyDrk7HroZ1cbiAgICovXG4gIHJlZ2lzdGVyQWxsKHRlbXBsYXRlczogVGVtcGxhdGVbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGUgb2YgdGVtcGxhdGVzKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyKHRlbXBsYXRlKTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDthZztlIzrpr8g7KGw7ZqMXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIO2FnO2UjOumvyDsobDtmoxcbiAgICog67mM7Yq47J24IDog7J6Q64+Z7JmE7ISxIOyngOybkFxuICAgKiDsu6TsiqTthYAgOiDsnoTsnZgg66y47J6Q7Je0IOyngOybkFxuICAgKi9cbiAgZ2V0KGtleTogVGVtcGxhdGVLZXkgfCAoc3RyaW5nICYge30pKTogVGVtcGxhdGUge1xuICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZ2V0KGtleSk7XG4gICAgaWYgKCF0ZW1wbGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUZW1wbGF0ZSAnJHtrZXl9JyBub3QgZm91bmQuIEF2YWlsYWJsZTogWyR7dGhpcy5nZXRBbGxLZXlzKCkuam9pbihcIiwgXCIpfV1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHRlbXBsYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIO2FnO2UjOumvyDsobTsnqwg7Jes67aAXG4gICAqL1xuICBleGlzdHMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZXMuaGFzKGtleSk7XG4gIH1cblxuICAvKipcbiAgICog66qo65OgIO2FnO2UjOumvyDtgqQg66qp66GdXG4gICAqL1xuICBnZXRBbGxLZXlzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnRlbXBsYXRlcy5rZXlzKCkpLnRvU29ydGVkKCk7XG4gIH1cblxuICAvKipcbiAgICog65Ox66Gd65CcIO2FnO2UjOumvyDqsJzsiJhcbiAgICovXG4gIGdldCBzaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzLnNpemU7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyDthYzsiqTtirgg7Jyg7Yu466as7YuwXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIOuqqOuToCDsg4Htg5wg7LSI6riw7ZmUICjthYzsiqTtirjsmqkpXG4gICAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlcy5jbGVhcigpO1xuICAgIHRoaXMuaXNBdXRvbG9hZGVkID0gZmFsc2U7XG4gICAgVGVtcGxhdGUuY2xlYXJUZW1wbGF0ZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDqsqnrpqzrkJwg7J247Iqk7YS07IqkIOyDneyEsSAo7YWM7Iqk7Yq47JqpKVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKCk6IFRlbXBsYXRlTWFuYWdlckNsYXNzIHtcbiAgICByZXR1cm4gbmV3IFRlbXBsYXRlTWFuYWdlckNsYXNzKCk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFRlbXBsYXRlTWFuYWdlciA9IG5ldyBUZW1wbGF0ZU1hbmFnZXJDbGFzcygpO1xuZXhwb3J0IHsgVGVtcGxhdGVNYW5hZ2VyQ2xhc3MgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O2tCQUdnRDtnQkFDRTtvQkFDTTtlQUNuQjtDQUkvQix1QkFBTixNQUFNLHFCQUFxQjtFQUN6Qiw0QkFBeUQsSUFBSSxJQUFJO0VBQ2pFLGVBQXdCOzs7O0VBU3hCLE1BQU0sV0FBMEI7R0FDOUIsSUFBSSxLQUFLLGNBQ1A7R0FFRixNQUFNLGdCQUFnQixNQUFNLFVBQzFCLEtBQUssS0FBSyxPQUFPLEtBQUssU0FBUywrQkFBK0IsQ0FDaEU7R0FFQSxLQUFLLE1BQU0sZ0JBQWdCLGVBQWU7SUFDeEMsTUFBTSxZQUFZLE1BQU0sY0FBdUIsWUFBWTtJQUMzRCxJQUFJLFVBQVUsV0FBVyxLQUFLLEtBQUssZ0JBQWdCLFVBQVUsRUFBRSxDQUFDLEtBQUssR0FBRztLQUN0RSxNQUFNLFdBQVcsSUFBSSxVQUFVLEVBQUUsQ0FBQyxNQUFNO0tBQ3hDLEtBQUssVUFBVSxJQUFJLFNBQVMsS0FBSyxRQUFRO0lBQzNDLE9BQ0UsTUFBTSxJQUFJLE1BQ1IsWUFBWSxhQUFhLG9EQUMzQjtHQUVKO0dBRUEsS0FBSyxNQUFNLENBQUMsS0FBSyxhQUFhLEtBQUssV0FDakMsU0FBUyxnQkFBZ0IsQ0FBQyxDQUFDLElBQzZCLEtBQ3RELFFBQ0Y7R0FHRixLQUFLLGVBQWU7RUFDdEI7Ozs7RUFLQSxNQUFNLFNBQXdCO0dBQzVCLEtBQUssVUFBVSxNQUFNO0dBQ3JCLFNBQVMsZUFBZTtHQUN4QixLQUFLLGVBQWU7R0FDcEIsTUFBTSxLQUFLLFNBQVM7RUFDdEI7Ozs7RUFLQSxNQUFNLGtCQUFrQixLQUE4QjtHQUNwRCxNQUFNLGdCQUFnQixNQUFNLFVBQVUsS0FBSyxLQUFLLEtBQUssb0JBQW9CLENBQUM7R0FDMUUsSUFBSSxRQUFRO0dBRVosS0FBSyxNQUFNLFFBQVEsZUFBZTtJQUNoQyxNQUFNLFlBQVksTUFBTSxjQUF1QixJQUFJO0lBQ25ELEtBQUssTUFBTSxFQUFFLFdBQVcsV0FDdEIsSUFBSSxLQUFLLGdCQUFnQixLQUFLLEdBQUc7S0FDL0IsTUFBTSxXQUFXLElBQUksTUFBTTtLQUMzQixLQUFLLFNBQVMsUUFBUTtLQUN0QjtJQUNGO0dBRUo7R0FFQSxPQUFPO0VBQ1Q7RUFFQSxnQkFBK0IsT0FBb0Q7R0FDakYsT0FBTyxnQkFBZ0IsS0FBSyxLQUFLLE1BQU0scUJBQXFCO0VBQzlEOzs7O0VBU0EsU0FBUyxVQUEwQjtHQUNqQyxLQUFLLFVBQVUsSUFBSSxTQUFTLEtBQUssUUFBUTtHQUV6QyxTQUFTLGdCQUFnQixDQUFDLENBQUMsSUFBSSxTQUFTLEtBQUssUUFBUTtFQUN2RDs7OztFQUtBLFlBQVksV0FBNkI7R0FDdkMsS0FBSyxNQUFNLFlBQVksV0FDckIsS0FBSyxTQUFTLFFBQVE7RUFFMUI7Ozs7OztFQVdBLElBQUksS0FBNEM7R0FDOUMsTUFBTSxXQUFXLEtBQUssVUFBVSxJQUFJLEdBQUc7R0FDdkMsSUFBSSxDQUFDLFVBQ0gsTUFBTSxJQUFJLE1BQU0sYUFBYSxJQUFJLDJCQUEyQixLQUFLLFdBQVcsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLEVBQUU7R0FFN0YsT0FBTztFQUNUOzs7O0VBS0EsT0FBTyxLQUFzQjtHQUMzQixPQUFPLEtBQUssVUFBVSxJQUFJLEdBQUc7RUFDL0I7Ozs7RUFLQSxhQUF1QjtHQUNyQixPQUFPLE1BQU0sS0FBSyxLQUFLLFVBQVUsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTO0VBQ3BEOzs7O0VBS0EsSUFBSSxPQUFlO0dBQ2pCLE9BQU8sS0FBSyxVQUFVO0VBQ3hCOzs7O0VBU0EsUUFBYztHQUNaLEtBQUssVUFBVSxNQUFNO0dBQ3JCLEtBQUssZUFBZTtHQUNwQixTQUFTLGVBQWU7RUFDMUI7Ozs7RUFLQSxPQUFPLGlCQUF1QztHQUM1QyxPQUFPLElBQUkscUJBQXFCO0VBQ2xDO0NBQ0Y7Q0FFYSxrQkFBa0IsSUFBSSxxQkFBcUIifQ==
@@ -1,16 +1,23 @@
1
+ import { type TemplateKey, type TemplateOptions } from "../types/types";
2
+ type TemplateGroupEntry = {
3
+ [Key in TemplateKey]: {
4
+ key: Key;
5
+ getOptions: (baseOptions: Partial<TemplateOptions>) => TemplateOptions[Key];
6
+ };
7
+ }[TemplateKey];
1
8
  /**
2
9
  * 템플릿 그룹 (관련 템플릿 묶음 실행)
3
10
  */
4
11
  export type TemplateGroup = {
5
12
  name: string;
6
13
  description?: string;
7
- templates: Array<{
8
- key: string;
9
- getOptions: (baseOptions: Record<string, unknown>) => Record<string, unknown>;
10
- }>;
14
+ templates: TemplateGroupEntry[];
11
15
  };
12
16
  /**
13
17
  * 템플릿 프리셋 (템플릿별 기본 옵션)
14
18
  */
15
- export type TemplatePreset = Record<string, Record<string, unknown>>;
19
+ export type TemplatePreset = Partial<{
20
+ [Key in TemplateKey]: TemplateOptions[Key];
21
+ }>;
22
+ export {};
16
23
  //# sourceMappingURL=template-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-types.d.ts","sourceRoot":"","sources":["../../src/template/template-types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,KAAK,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/E,CAAC,CAAC;CACJ,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"template-types.d.ts","sourceRoot":"","sources":["../../src/template/template-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAExE,KAAK,kBAAkB,GAAG;KACvB,GAAG,IAAI,WAAW,GAAG;QACpB,GAAG,EAAE,GAAG,CAAC;QACT,UAAU,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,eAAe,CAAC,GAAG,CAAC,CAAC;KAC7E;CACF,CAAC,WAAW,CAAC,CAAC;AAEf;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,kBAAkB,EAAE,CAAC;CACjC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;KAClC,GAAG,IAAI,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC;CAC3C,CAAC,CAAC"}
@@ -5,4 +5,4 @@ var init_template_types = __esmMin((() => {}));
5
5
  init_template_types();
6
6
  export { init_template_types };
7
7
 
8
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtdHlwZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3RlbXBsYXRlLXR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog7YWc7ZSM66a/IOq3uOujuSAo6rSA66CoIO2FnO2UjOumvyDrrLbsnYwg7Iuk7ZaJKVxuICovXG5leHBvcnQgdHlwZSBUZW1wbGF0ZUdyb3VwID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB0ZW1wbGF0ZXM6IEFycmF5PHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBnZXRPcHRpb25zOiAoYmFzZU9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfT47XG59O1xuXG4vKipcbiAqIO2FnO2UjOumvyDtlITrpqzshYsgKO2FnO2UjOumv+uzhCDquLDrs7gg7Ji17IWYKVxuICovXG5leHBvcnQgdHlwZSBUZW1wbGF0ZVByZXNldCA9IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbiJdLCJtYXBwaW5ncyI6IiJ9
8
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtdHlwZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3RlbXBsYXRlLXR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgVGVtcGxhdGVLZXksIHR5cGUgVGVtcGxhdGVPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5cbnR5cGUgVGVtcGxhdGVHcm91cEVudHJ5ID0ge1xuICBbS2V5IGluIFRlbXBsYXRlS2V5XToge1xuICAgIGtleTogS2V5O1xuICAgIGdldE9wdGlvbnM6IChiYXNlT3B0aW9uczogUGFydGlhbDxUZW1wbGF0ZU9wdGlvbnM+KSA9PiBUZW1wbGF0ZU9wdGlvbnNbS2V5XTtcbiAgfTtcbn1bVGVtcGxhdGVLZXldO1xuXG4vKipcbiAqIO2FnO2UjOumvyDqt7jro7kgKOq0gOugqCDthZztlIzrpr8g66y27J2MIOyLpO2WiSlcbiAqL1xuZXhwb3J0IHR5cGUgVGVtcGxhdGVHcm91cCA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdGVtcGxhdGVzOiBUZW1wbGF0ZUdyb3VwRW50cnlbXTtcbn07XG5cbi8qKlxuICog7YWc7ZSM66a/IO2UhOumrOyFiyAo7YWc7ZSM66a/67OEIOq4sOuzuCDsmLXshZgpXG4gKi9cbmV4cG9ydCB0eXBlIFRlbXBsYXRlUHJlc2V0ID0gUGFydGlhbDx7XG4gIFtLZXkgaW4gVGVtcGxhdGVLZXldOiBUZW1wbGF0ZU9wdGlvbnNbS2V5XTtcbn0+O1xuIl0sIm1hcHBpbmdzIjoiIn0=
@@ -35,11 +35,11 @@ export declare abstract class Template {
35
35
  /**
36
36
  * 내부용: TemplateManager에서 사용
37
37
  */
38
- static _getTemplatesMap(): Map<TemplateKey, Template>;
38
+ static getTemplatesMap(): Map<TemplateKey, Template>;
39
39
  /**
40
40
  * 내부용: TemplateManager에서 사용
41
41
  */
42
- static _clearTemplates(): void;
42
+ static clearTemplates(): void;
43
43
  abstract render(options: TemplateOptions[TemplateKey], ...extra: unknown[]): RenderedTemplate | Promise<RenderedTemplate>;
44
44
  abstract getTargetAndPath(names?: EntityNamesRecord, ...extra: unknown[]): {
45
45
  target: string;
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/template/template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIxE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE;QACb,GAAG,EAAE,WAAW,CAAC;QACjB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;KACvC,EAAE,CAAC;CACL,CAAC;AAEF;;GAEG;AACH,8BAAsB,QAAQ;IAGT,GAAG,EAAE,WAAW;IAFnC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAyC;gBAE9C,GAAG,EAAE,WAAW;IAEnC;;;;OAIG;WACiB,QAAQ;IA8B5B;;;;;;OAMG;WACW,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,QAAQ;IAU9C;;OAEG;WACW,gBAAgB,IAAI,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;IAI5D;;OAEG;WACW,eAAe,IAAI,IAAI;aAIrB,MAAM,CACpB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,EACrC,GAAG,KAAK,EAAE,OAAO,EAAE,GAClB,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;aAE/B,gBAAgB,CAC9B,KAAK,CAAC,EAAE,iBAAiB,EACzB,GAAG,KAAK,EAAE,OAAO,EAAE,GAClB;QACD,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd;IAED;;;;;OAKG;IACI,mBAAmB,IAAI,MAAM,EAAE,GAAG,IAAI;CAI9C"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/template/template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKxE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,CAAC,EAAE;QACb,GAAG,EAAE,WAAW,CAAC;QACjB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;KACvC,EAAE,CAAC;CACL,CAAC;AAEF;;GAEG;AACH,8BAAsB,QAAQ;IAGT,GAAG,EAAE,WAAW;IAFnC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAyC;gBAE9C,GAAG,EAAE,WAAW;IAEnC;;;;OAIG;WACiB,QAAQ;IA8B5B;;;;;;OAMG;WACW,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,QAAQ;IAU9C;;OAEG;WACW,eAAe,IAAI,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC;IAI3D;;OAEG;WACW,cAAc,IAAI,IAAI;aAIpB,MAAM,CACpB,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,EACrC,GAAG,KAAK,EAAE,OAAO,EAAE,GAClB,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;aAE/B,gBAAgB,CAC9B,KAAK,CAAC,EAAE,iBAAiB,EACzB,GAAG,KAAK,EAAE,OAAO,EAAE,GAClB;QACD,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd;IAED;;;;;OAKG;IACI,mBAAmB,IAAI,MAAM,EAAE,GAAG,IAAI;CAI9C"}
@@ -1,4 +1,5 @@
1
1
  import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
+ import { init_runtime_value, isFunctionValue } from "../utils/runtime-value.js";
2
3
  import { globAsync, init_async_utils } from "../utils/async-utils.js";
3
4
  import { importMembers, init_esm_utils } from "../utils/esm-utils.js";
4
5
  import path from "path";
@@ -7,6 +8,7 @@ var Template;
7
8
  var init_template = __esmMin((() => {
8
9
  init_async_utils();
9
10
  init_esm_utils();
11
+ init_runtime_value();
10
12
  Template = class Template {
11
13
  key;
12
14
  static templates = /* @__PURE__ */ new Map();
@@ -22,7 +24,7 @@ var init_template = __esmMin((() => {
22
24
  const templateFiles = await globAsync(path.join(import.meta.dirname, "implementations/*.template.js"));
23
25
  for (const templateFile of templateFiles) {
24
26
  const templates = await importMembers(templateFile);
25
- if (templates.length === 1 && typeof templates[0].value === "function" && templates[0].value.prototype instanceof Template) {
27
+ if (templates.length === 1 && isFunctionValue(templates[0].value) && templates[0].value.prototype instanceof Template) {
26
28
  const instance = new templates[0].value();
27
29
  Template.templates.set(instance.key, instance);
28
30
  } else throw new Error(`Template ${templateFile} should export only one class that extends Template`);
@@ -43,13 +45,13 @@ var init_template = __esmMin((() => {
43
45
  /**
44
46
  * 내부용: TemplateManager에서 사용
45
47
  */
46
- static _getTemplatesMap() {
48
+ static getTemplatesMap() {
47
49
  return Template.templates;
48
50
  }
49
51
  /**
50
52
  * 내부용: TemplateManager에서 사용
51
53
  */
52
- static _clearTemplates() {
54
+ static clearTemplates() {
53
55
  Template.templates.clear();
54
56
  }
55
57
  /**
@@ -67,4 +69,4 @@ var init_template = __esmMin((() => {
67
69
  init_template();
68
70
  export { Template, init_template };
69
71
 
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=
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3RlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHR5cGUgRW50aXR5TmFtZXNSZWNvcmQgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eS1tYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIFRlbXBsYXRlS2V5LCB0eXBlIFRlbXBsYXRlT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHsgZ2xvYkFzeW5jIH0gZnJvbSBcIi4uL3V0aWxzL2FzeW5jLXV0aWxzXCI7XG5pbXBvcnQgeyBpbXBvcnRNZW1iZXJzIH0gZnJvbSBcIi4uL3V0aWxzL2VzbS11dGlsc1wiO1xuaW1wb3J0IHsgaXNGdW5jdGlvblZhbHVlIH0gZnJvbSBcIi4uL3V0aWxzL3J1bnRpbWUtdmFsdWVcIjtcblxuZXhwb3J0IHR5cGUgUmVuZGVyZWRUZW1wbGF0ZSA9IHtcbiAgdGFyZ2V0OiBzdHJpbmc7XG4gIHBhdGg6IHN0cmluZztcbiAgYm9keTogc3RyaW5nO1xuICBpbXBvcnRLZXlzOiBzdHJpbmdbXTtcbiAgY3VzdG9tSGVhZGVycz86IHN0cmluZ1tdO1xuICBwcmVUZW1wbGF0ZXM/OiB7XG4gICAga2V5OiBUZW1wbGF0ZUtleTtcbiAgICBvcHRpb25zOiBUZW1wbGF0ZU9wdGlvbnNbVGVtcGxhdGVLZXldO1xuICB9W107XG59O1xuXG4vKipcbiAqIO2FnO2UjOumv+ydhCDrgpjtg4DrgrTripQg67Kg7J207IqkIO2BtOuemOyKpOyeheuLiOuLpC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRlbXBsYXRlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgdGVtcGxhdGVzOiBNYXA8VGVtcGxhdGVLZXksIFRlbXBsYXRlPiA9IG5ldyBNYXAoKTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMga2V5OiBUZW1wbGF0ZUtleSkge31cblxuICAvKipcbiAgICog7YWc7ZSM66a/IOq1rO2YhOyytOqwgCDsnojripQg65SU66CJ7Yag66as7J2YIOuqqOuToCDthZztlIzrpr/snYQg66Gc65Oc7ZWp64uI64ukLlxuICAgKiDthZztlIzrpr/snbQg7ZWE7JqUKFRlbXBsYXRlTWFuYWdlci5nZXQp7ZW07KeA6riwIOyghOyXkCDstZzshowg7ZWcIOuyiCDtmLjstpztlbTso7zshZTslbwg7ZWp64uI64ukLlxuICAgKiBAZGVwcmVjYXRlZCBUZW1wbGF0ZU1hbmFnZXIuYXV0b2xvYWQoKSDsgqzsmqkg6raM7J6lXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIGF1dG9sb2FkKCkge1xuICAgIGNvbnN0IHRlbXBsYXRlRmlsZXMgPSBhd2FpdCBnbG9iQXN5bmMoXG4gICAgICAvLyBTb25hbXXsnZgg7L2U65Oc67Kg7J207Iqk64qUIO2VreyDgSDruYzrk5zrkJwg7LGE66GcIGRpc3Qg7IaN7JeQIOuouOustOultOuvgOuhnCxcbiAgICAgIC8vIO2YhOyerCDtjIzsnbzsnYQg6riw7KSA7Jy866GcIOuniOywrOqwgOyngOuhnCBkaXN0IOyGjeyXkCDsnojripQg7YWc7ZSM66a/IOq1rO2YhOyytCBqcyDtjIzsnbzrk6TsnYQg7LC+7Iq164uI64ukLlxuICAgICAgcGF0aC5qb2luKGltcG9ydC5tZXRhLmRpcm5hbWUsIFwiaW1wbGVtZW50YXRpb25zLyoudGVtcGxhdGUuanNcIiksXG4gICAgKTtcblxuICAgIGZvciAoY29uc3QgdGVtcGxhdGVGaWxlIG9mIHRlbXBsYXRlRmlsZXMpIHtcbiAgICAgIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIGltcG9ydE1lbWJlcnPsnZgg67CY7ZmYIO2DgOyeheydhCDrqoXsi5zsoIHsnLzroZwg7KeA7KCV7ZWgIOyImCDsl4bsnYxcbiAgICAgIGNvbnN0IHRlbXBsYXRlcyA9IGF3YWl0IGltcG9ydE1lbWJlcnM8YW55Pih0ZW1wbGF0ZUZpbGUpO1xuICAgICAgaWYgKFxuICAgICAgICB0ZW1wbGF0ZXMubGVuZ3RoID09PSAxICYmXG4gICAgICAgIGlzRnVuY3Rpb25WYWx1ZSh0ZW1wbGF0ZXNbMF0udmFsdWUpICYmXG4gICAgICAgIHRlbXBsYXRlc1swXS52YWx1ZS5wcm90b3R5cGUgaW5zdGFuY2VvZiBUZW1wbGF0ZVxuICAgICAgKSB7XG4gICAgICAgIC8vIO2BtOuemOyKpOydmCDsnbjsiqTthLTsiqTrpbwg7IOd7ISx7ZWY7JesIOuTseuhnVxuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyB0ZW1wbGF0ZXNbMF0udmFsdWUoKTtcbiAgICAgICAgVGVtcGxhdGUudGVtcGxhdGVzLnNldChpbnN0YW5jZS5rZXksIGluc3RhbmNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGVtcGxhdGUgJHt0ZW1wbGF0ZUZpbGV9IHNob3VsZCBleHBvcnQgb25seSBvbmUgY2xhc3MgdGhhdCBleHRlbmRzIFRlbXBsYXRlYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjb25zb2xlLmxvZyhcbiAgICAvLyAgIGNoYWxrLmdyYXkoYFtMb2FkaW5nXSBMb2FkZWQgJHt0aGlzLnRlbXBsYXRlcy5zaXplfSB0ZW1wbGF0ZXMuYClcbiAgICAvLyApO1xuICB9XG5cbiAgLyoqXG4gICAqIO2FnO2UjOumvyAqKuyduOyKpO2EtOyKpCoq66W8IGtleeuhnCDssL7slYTsmLXri4jri6QuXG4gICAqIOunjOyVvSDthZztlIzrpr/snbQg66Gc65OcKGF1dG9sb2FkKeuQmOyngCDslYrslZjqsbDrgpgg7LC+64qUIO2FnO2UjOumv+ydtCDsl4bri6TrqbQg7JeQ65+s66W8IOuNmOynkeuLiOuLpC5cbiAgICogQGRlcHJlY2F0ZWQgVGVtcGxhdGVNYW5hZ2VyLmdldCgpIOyCrOyaqSDqtozsnqVcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmaW5kKGtleTogVGVtcGxhdGVLZXkpOiBUZW1wbGF0ZSB7XG4gICAgY29uc3QgaW5zdGFuY2UgPSBUZW1wbGF0ZS50ZW1wbGF0ZXMuZ2V0KGtleSk7XG4gICAgaWYgKCFpbnN0YW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGVtcGxhdGUgJHtrZXl9IG5vdCBmb3VuZC4gSXQgbWlnaHQgYmUgYmVjYXVzZSB5b3UgdHJpZWQgdG8gZmluZCBhIHRlbXBsYXRlIGJlZm9yZSBsb2FkaW5nIGFsbCB0ZW1wbGF0ZXMuIERpZCB5b3UgY2FsbCBUZW1wbGF0ZU1hbmFnZXIuYXV0b2xvYWQoKT9gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIOuCtOu2gOyaqTogVGVtcGxhdGVNYW5hZ2Vy7JeQ7IScIOyCrOyaqVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBnZXRUZW1wbGF0ZXNNYXAoKTogTWFwPFRlbXBsYXRlS2V5LCBUZW1wbGF0ZT4ge1xuICAgIHJldHVybiBUZW1wbGF0ZS50ZW1wbGF0ZXM7XG4gIH1cblxuICAvKipcbiAgICog64K067aA7JqpOiBUZW1wbGF0ZU1hbmFnZXLsl5DshJwg7IKs7JqpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGNsZWFyVGVtcGxhdGVzKCk6IHZvaWQge1xuICAgIFRlbXBsYXRlLnRlbXBsYXRlcy5jbGVhcigpO1xuICB9XG5cbiAgcHVibGljIGFic3RyYWN0IHJlbmRlcihcbiAgICBvcHRpb25zOiBUZW1wbGF0ZU9wdGlvbnNbVGVtcGxhdGVLZXldLFxuICAgIC4uLmV4dHJhOiB1bmtub3duW11cbiAgKTogUmVuZGVyZWRUZW1wbGF0ZSB8IFByb21pc2U8UmVuZGVyZWRUZW1wbGF0ZT47XG5cbiAgcHVibGljIGFic3RyYWN0IGdldFRhcmdldEFuZFBhdGgoXG4gICAgbmFtZXM/OiBFbnRpdHlOYW1lc1JlY29yZCxcbiAgICAuLi5leHRyYTogdW5rbm93bltdXG4gICk6IHtcbiAgICB0YXJnZXQ6IHN0cmluZztcbiAgICBwYXRoOiBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIOydtCDthZztlIzrpr/snbQg7ZWE7JqU66GcIO2VmOuKlCBpMThuIGRpY3Qg7YKk66W8IOuwmO2ZmO2VqeuLiOuLpC5cbiAgICog7Iqk7LqQ7Y+065SpIOyLnCDsl6zrn6wg7YWc7ZSM66a/7J2YIO2CpOulvCDrqqjslYTshJwg7ZWcIOuyiOyXkCDsspjrpqztlanri4jri6QuXG4gICAqXG4gICAqIEByZXR1cm5zIO2VhOyalO2VnCBkaWN0IO2CpCDrsLDsl7Qg65iQ64qUIG51bGwgKGkxOG4g67aI7ZWE7JqUIOyLnClcbiAgICovXG4gIHB1YmxpYyBnZXRSZXF1aXJlZERpY3RLZXlzKCk6IHN0cmluZ1tdIHwgbnVsbCB7XG4gICAgLy8g6riw67O47KCB7Jy866GcIGRpY3Qg7YKk6rCAIO2VhOyalCDsl4bsnYwuIO2VhOyalO2VnCDthZztlIzrpr/sl5DshJwg7Jik67KE65287J2065OcXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7a0JBSWdEO2dCQUNFO29CQUNNO0NBaUJsQyxXQUF0QixNQUFzQixTQUFTO0VBR1Y7RUFGbkIsT0FBZSw0QkFBd0MsSUFBSSxJQUFJO0VBRS9ELFlBQVksS0FBeUI7R0FBbEIsS0FBQSxNQUFBO0VBQW1COzs7Ozs7RUFPdEMsYUFBb0IsV0FBVztHQUM3QixNQUFNLGdCQUFnQixNQUFNLFVBRzFCLEtBQUssS0FBSyxPQUFPLEtBQUssU0FBUywrQkFBK0IsQ0FDaEU7R0FFQSxLQUFLLE1BQU0sZ0JBQWdCLGVBQWU7SUFFeEMsTUFBTSxZQUFZLE1BQU0sY0FBbUIsWUFBWTtJQUN2RCxJQUNFLFVBQVUsV0FBVyxLQUNyQixnQkFBZ0IsVUFBVSxFQUFFLENBQUMsS0FBSyxLQUNsQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLHFCQUFxQixVQUN4QztLQUVBLE1BQU0sV0FBVyxJQUFJLFVBQVUsRUFBRSxDQUFDLE1BQU07S0FDeEMsU0FBUyxVQUFVLElBQUksU0FBUyxLQUFLLFFBQVE7SUFDL0MsT0FDRSxNQUFNLElBQUksTUFDUixZQUFZLGFBQWEsb0RBQzNCO0dBRUo7RUFLRjs7Ozs7Ozs7RUFTQSxPQUFjLEtBQUssS0FBNEI7R0FDN0MsTUFBTSxXQUFXLFNBQVMsVUFBVSxJQUFJLEdBQUc7R0FDM0MsSUFBSSxDQUFDLFVBQ0gsTUFBTSxJQUFJLE1BQ1IsWUFBWSxJQUFJLG9JQUNsQjtHQUVGLE9BQU87RUFDVDs7OztFQUtBLE9BQWMsa0JBQThDO0dBQzFELE9BQU8sU0FBUztFQUNsQjs7OztFQUtBLE9BQWMsaUJBQXVCO0dBQ25DLFNBQVMsVUFBVSxNQUFNO0VBQzNCOzs7Ozs7O0VBcUJBLHNCQUE4QztHQUU1QyxPQUFPO0VBQ1Q7Q0FDRiJ9
@@ -1,22 +1,3 @@
1
- /**
2
- * zod-converter 구성
3
- * 1. 유틸리티
4
- * - getZodTypeById
5
- *
6
- * 2. Zod 타입 변환 (EntityProp -> ZodType)
7
- * - propToZodType
8
- *
9
- * 3. EntityProp/Node -> Zod 코드 문자열
10
- * - propToZodTypeDef
11
- * - propNodeToZodTypeDef
12
- *
13
- * 4. Zod 타입 인스턴스를 해당하는 Zod 코드 문자열로 변환 (ZodType -> ZodCode)
14
- * - zodTypeToZodCode
15
- *
16
- * 5. Zod 타입을 UI 렌더링에 사용할 수 있는 RenderingNode로 변환 (ZodType -> RenderingNode)
17
- * - zodTypeToRenderingNode
18
- * - resolveRenderType
19
- */
20
1
  import { z } from "zod";
21
2
  import { type EntityProp, type EntityPropNode, type RenderingNode } from "../types/types";
22
3
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"zod-converter.d.ts","sourceRoot":"","sources":["../../src/template/zod-converter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoCxB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAEnB,MAAM,gBAAgB,CAAC;AAcxB;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;CAWjB,CAAC;AAyEX;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAuB7E;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CA2F3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CAkHrF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CA0BjG;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAgGxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,gBAAgB,GAAE,MAAM,EAAO,GAAG,MAAM,CA2HvF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,CAAC,CAAC,UAAU,EACrB,OAAO,GAAE,MAAe,GACvB,aAAa,CAmFf"}
1
+ {"version":3,"file":"zod-converter.d.ts","sourceRoot":"","sources":["../../src/template/zod-converter.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoCxB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAEnB,MAAM,gBAAgB,CAAC;AAexB;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;CAWjB,CAAC;AAqGX;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CA8B7E;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAsG3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CA0HrF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,MAAM,CA0BjG;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,MAAM,CAmHxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,gBAAgB,GAAE,MAAM,EAAO,GAAG,MAAM,CAuJvF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,CAAC,CAAC,UAAU,EACrB,OAAO,GAAE,MAAe,GACvB,aAAa,CAiGf"}