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
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/sonamu-ui/setting.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>{{projectName}}: Sonamu UI</title>
8
- <script type="module" crossorigin src="/sonamu-ui/assets/index-C0m1pk6K.js"></script>
8
+ <script type="module" crossorigin src="/sonamu-ui/assets/index-DV1AAq6W.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/sonamu-ui/assets/index-D3QNH-Dv.css">
10
10
  </head>
11
11
  <body>
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/utils/formatter.ts"],"names":[],"mappings":"AAeA;;;;;GAKG;AACH,eAAO,MAAM,UAAU,qDAGrB,CAAC"}
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/utils/formatter.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,eAAO,MAAM,UAAU,qDAGrB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
+ import { init_runtime_value, isNumberValue } from "./runtime-value.js";
2
3
  import { init_controller, isTest } from "./controller.js";
3
4
  import { cached, init_async_utils } from "./async-utils.js";
4
5
  import { execute, init_process_utils } from "./process-utils.js";
@@ -80,7 +81,7 @@ async function runOxlint(code) {
80
81
  tmpFile
81
82
  ], { timeout: 1e4 });
82
83
  } catch (e) {
83
- if (typeof e.code !== "number") throw e;
84
+ if (!isNumberValue(e.code)) throw e;
84
85
  }
85
86
  return await readFile(tmpFile, "utf-8");
86
87
  } finally {
@@ -91,17 +92,18 @@ async function runOxlint(code) {
91
92
  }
92
93
  function resolveOxlintBin() {
93
94
  try {
94
- return _require.resolve("oxlint/bin/oxlint");
95
+ return requireFromHere.resolve("oxlint/bin/oxlint");
95
96
  } catch {
96
97
  return "oxlint";
97
98
  }
98
99
  }
99
- var _require, formatCode, cachedOxfmtConfig;
100
+ var requireFromHere, formatCode, cachedOxfmtConfig;
100
101
  var init_formatter = __esmMin((() => {
101
102
  init_async_utils();
102
103
  init_controller();
103
104
  init_process_utils();
104
- _require = createRequire(import.meta.url);
105
+ init_runtime_value();
106
+ requireFromHere = createRequire(import.meta.url);
105
107
  formatCode = cached(formatCodeInternal, (code, filePath) => {
106
108
  return `${filePath.endsWith(".tsx") ? "tsx" : filePath.endsWith(".json") ? "json" : "ts"}:${createHash("sha1").update(code).digest("hex")}`;
107
109
  });
@@ -111,4 +113,4 @@ var init_formatter = __esmMin((() => {
111
113
  init_formatter();
112
114
  export { formatCode, init_formatter };
113
115
 
114
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mb3JtYXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIjtcbi8vIO2FjOyKpO2KuCDtmZjqsr3sl5DshJzripQgZnMvcHJvbWlzZXPqsIAgbW9ja+uQmOyngOunjCwg7JWE656YIHJ1bk94bGludOydtCBpc1Rlc3Qg6rCA65Oc66GcIOyViCDrj4Tri4jquYxcbi8vIOq3uOuDpSBmcy9wcm9taXNlcyDqt7jrjIDroZwg7IKs7JqpLiAocHJvZHVjdGlvbuyXkOyEnOunjCDsnoTsi5ztjIzsnbwg7Z2Q66aE7J20IOuPleuLiOuLpC4pXG5pbXBvcnQgeyByZWFkRmlsZSwgdW5saW5rLCB3cml0ZUZpbGUgfSBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibW9kdWxlXCI7XG5pbXBvcnQgcGF0aCwgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZm9ybWF0LCB0eXBlIEZvcm1hdENvbmZpZyB9IGZyb20gXCJveGZtdFwiO1xuXG5pbXBvcnQgeyBjYWNoZWQgfSBmcm9tIFwiLi9hc3luYy11dGlsc1wiO1xuaW1wb3J0IHsgaXNUZXN0IH0gZnJvbSBcIi4vY29udHJvbGxlclwiO1xuaW1wb3J0IHsgZXhlY3V0ZSB9IGZyb20gXCIuL3Byb2Nlc3MtdXRpbHNcIjtcblxuY29uc3QgX3JlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5cbi8qKlxuICog7L2U65Oc66W8IO2UhOuhnOygne2KuOydmCBveGZtdCArIG94bGludCDshKTsoJXsl5Ag66ee7LawIO2PrOunpO2Mhe2VnCDrrLjsnpDsl7TsnYQg67CY7ZmY7ZWp64uI64ukLlxuICpcbiAqIOy6kOyLseuPhCDsnojslrTsmpQg44WO44WOIOuYkeqwmeydgCDsnoXroKXsl5Ag64yA7ZW07IScIOy6kOyLnCDsu6TrsoTrkKnri4jri6QuXG4gKiDsiJjrqoXsnYAg7ZSE66Gc7IS47IqkIOyjveydhOuVjOq5jOyngCDjhYtcbiAqL1xuZXhwb3J0IGNvbnN0IGZvcm1hdENvZGUgPSBjYWNoZWQoZm9ybWF0Q29kZUludGVybmFsLCAoY29kZSwgZmlsZVBhdGgpID0+IHtcbiAgY29uc3QgZXh0ID0gZmlsZVBhdGguZW5kc1dpdGgoXCIudHN4XCIpID8gXCJ0c3hcIiA6IGZpbGVQYXRoLmVuZHNXaXRoKFwiLmpzb25cIikgPyBcImpzb25cIiA6IFwidHNcIjtcbiAgcmV0dXJuIGAke2V4dH06JHtjcmVhdGVIYXNoKFwic2hhMVwiKS51cGRhdGUoY29kZSkuZGlnZXN0KFwiaGV4XCIpfWA7XG59KTtcblxuLyoqXG4gKiDsupDsi5wg7JeG64qUIO2PrOunt+2VqOyImCDsl5TtirjrpqwuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZvcm1hdENvZGVJbnRlcm5hbChjb2RlOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAvLyBqc29u7J2AIO2PrOunt+unjCDtlZjrqbQg65Cp64uI64ukLlxuICBpZiAoZmlsZVBhdGguZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgIHJldHVybiBydW5PeGZtdChjb2RlLCBmaWxlUGF0aCk7XG4gIH1cblxuICAvLyDrprDtirgg66i87KCAIO2VnCDri6TsnYzsl5Ag7Y+s66e37Jy866GcIOuniOustOumrO2VtOyalC5cbiAgcmV0dXJuIHJ1bk94Zm10KGF3YWl0IHJ1bk94bGludChjb2RlKSwgZmlsZVBhdGgpO1xufVxuXG4vKipcbiAqIO2UhOuhnOygne2KuCDshKTsoJXsnYQg7LC+7JWE7IScIOydtOyXkCDrp57strDshJwg7L2U65Oc66W8IO2PrOunt+2VqeuLiOuLpC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuT3hmbXQoY29kZTogc3RyaW5nLCBmaWxlUGF0aDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZm9ybWF0KHBhdGguYmFzZW5hbWUoZmlsZVBhdGgpLCBjb2RlLCBhd2FpdCBsb2FkT3hmbXRDb25maWcoKSk7XG5cbiAgY29uc3QgZXJyb3JzID0gcmVzdWx0LmVycm9ycy5maWx0ZXIoKGUpID0+IGUuc2V2ZXJpdHkgPT09IFwiRXJyb3JcIik7XG4gIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGlmICghaXNUZXN0KCkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYG94Zm10IGVycm9ycyAoJHtmaWxlUGF0aH0pOmApO1xuICAgICAgZm9yIChjb25zdCBlcnIgb2YgZXJyb3JzKSB7XG4gICAgICAgIGNvbnN0IGxhYmVsID0gZXJyLmxhYmVsc1swXTtcbiAgICAgICAgaWYgKGxhYmVsKSB7XG4gICAgICAgICAgY29uc3QgYmVmb3JlID0gY29kZS5zbGljZShNYXRoLm1heCgwLCBsYWJlbC5zdGFydCAtIDgwKSwgbGFiZWwuc3RhcnQpO1xuICAgICAgICAgIGNvbnN0IGF0ID0gY29kZS5zbGljZShsYWJlbC5zdGFydCwgbGFiZWwuZW5kKTtcbiAgICAgICAgICBjb25zdCBhZnRlciA9IGNvZGUuc2xpY2UobGFiZWwuZW5kLCBNYXRoLm1pbihjb2RlLmxlbmd0aCwgbGFiZWwuZW5kICsgODApKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGAgIC0gJHtlcnIubWVzc2FnZX0gKG9mZnNldCAke2xhYmVsLnN0YXJ0fS0ke2xhYmVsLmVuZH0pYCk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgICAgIGFyb3VuZDogLi4uJHtiZWZvcmV9wrske2F0fcKrJHthZnRlcn0uLi5gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGAgIC0gJHtlcnIubWVzc2FnZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY29kZTtcbiAgfVxuICByZXR1cm4gcmVzdWx0LmNvZGU7XG59XG5cbmxldCBjYWNoZWRPeGZtdENvbmZpZzogRm9ybWF0Q29uZmlnIHwgbnVsbCA9IG51bGw7XG5hc3luYyBmdW5jdGlvbiBsb2FkT3hmbXRDb25maWcoKTogUHJvbWlzZTxGb3JtYXRDb25maWc+IHtcbiAgaWYgKGNhY2hlZE94Zm10Q29uZmlnICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGNhY2hlZE94Zm10Q29uZmlnO1xuICB9XG5cbiAgbGV0IGRpciA9IHByb2Nlc3MuY3dkKCk7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgY29uc3QgY2FuZGlkYXRlID0gam9pbihkaXIsIFwiLm94Zm10cmMuanNvblwiKTtcbiAgICB0cnkge1xuICAgICAgY2FjaGVkT3hmbXRDb25maWcgPSBKU09OLnBhcnNlKGF3YWl0IHJlYWRGaWxlKGNhbmRpZGF0ZSwgXCJ1dGYtOFwiKSkgYXMgRm9ybWF0Q29uZmlnO1xuICAgICAgcmV0dXJuIGNhY2hlZE94Zm10Q29uZmlnO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICgoZSBhcyBOb2RlSlMuRXJybm9FeGNlcHRpb24pLmNvZGUgIT09IFwiRU5PRU5UXCIpIHtcbiAgICAgICAgIWlzVGVzdCgpICYmIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkICR7Y2FuZGlkYXRlfTpgLCBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHBhcmVudCA9IGRpcm5hbWUoZGlyKTtcbiAgICBpZiAocGFyZW50ID09PSBkaXIpIGJyZWFrO1xuICAgIGRpciA9IHBhcmVudDtcbiAgfVxuXG4gIGNhY2hlZE94Zm10Q29uZmlnID0ge307XG4gIHJldHVybiBjYWNoZWRPeGZtdENvbmZpZztcbn1cblxuLyoqXG4gKiDtlITroZzsoJ3tirgg7ISk7KCV7JeQIOunnuy2sCDsvZTrk5zrpbwgbGludO2VqeuLiOuLpC5cbiAqXG4gKiDtlITroZzsoJ3tirgg7ISk7KCV7J2EIOyggeyaqeuwm+uKlCBveGxpbnQgY2xp66W8IOywvuyVhCDrnYTsm4zshJwsXG4gKiDsnoTsi5wg7YyM7J287JeQIGluLXBsYWNl66GcIOyNqOyEnCDqt7gg6rKw6rO866W8IOu5vOyYpOuKlCDrsKnsi53snLzroZwg7J6R64+Z7ZWp64uI64ukLlxuICog7JmcIOydtOugh+qyjCDtlZjripDrg5A/IG94bGludOqwgCBub2RlIGFwaeuPhCDslYgg7KO86rOgIGNsaeyXkOyEnCBzdGRpbiDsmLXshZjrj4Qg7JWIIOyjvOq4sCDrlYzrrLguLi5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuT3hsaW50KGNvZGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmIChpc1Rlc3QoKSkge1xuICAgIC8vIO2FjOyKpO2KuCDtmZjqsr3sl5DshJzripQg64qQ66Ck7KeA6riw66eMIO2VmOqzoCDqsoDspp3tlaAg6rCA7LmY64+EIOyXhuyWtOyEnCDslYgg7ZWp64uI64ukLlxuICAgIC8vIEdpdEh1YiBBY3Rpb25zIO2ZmOqyveyXkOyEnCBsaW506rCAIOyYpOuemCDqsbjroKTshJwg67uX6riw64+EIO2WiOyWtOyalC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9jYXJ0YW5vdmEtYWkvc29uYW11L2FjdGlvbnMvcnVucy8yNTI2NzIxNDAyNy9qb2IvNzQwODM2MzAxNjkpXG4gICAgcmV0dXJuIGNvZGU7XG4gIH1cblxuICBjb25zdCB0bXBGaWxlID0gam9pbihcbiAgICAvLyDtg4Dqsp8g7YyM7J287J20IOujqO2KuCDslYTrnpjsl5Ag7J6I7Ja07JW8IO2VtOyalC4g6re4656Y7IScIHRtcCDrlJTroInthqDrpqzqsJnsnYDqsbAg7JWIIOyUgeuLiOuLpCFcbiAgICBwcm9jZXNzLmN3ZCgpLFxuICAgIGAuc29uYW11LWZtdC0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMil9LnRzYCxcbiAgKTtcblxuICB0cnkge1xuICAgIGF3YWl0IHdyaXRlRmlsZSh0bXBGaWxlLCBjb2RlLCBcInV0Zi04XCIpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGV4ZWN1dGUocmVzb2x2ZU94bGludEJpbigpLCBbXCItLWZpeFwiLCBcIi0tZml4LXN1Z2dlc3Rpb25zXCIsIFwiLS10eXBlLWF3YXJlXCIsIHRtcEZpbGVdLCB7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbGludCDsnITrsJgg7IucIGV4aXQgY29kZSAhPSAw7J207KeA66eMIC0tZml464qUIOyggeyaqeuQqC4gZXhlYyDsnpDssrQg7Iuk7Yyo66eMIHRocm93LlxuICAgICAgaWYgKHR5cGVvZiAoZSBhcyBFcnJvciAmIHsgY29kZT86IG51bWJlciB9KS5jb2RlICE9PSBcIm51bWJlclwiKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHJlYWRGaWxlKHRtcEZpbGUsIFwidXRmLThcIik7XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHVubGluayh0bXBGaWxlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIOyCreygnCDsi6TtjKjtlbTrj4Qg7Ja07LCo7ZS8IGlnbm9yZeuQqC5cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVzb2x2ZU94bGludEJpbigpOiBzdHJpbmcge1xuICB0cnkge1xuICAgIHJldHVybiBfcmVxdWlyZS5yZXNvbHZlKFwib3hsaW50L2Jpbi9veGxpbnRcIik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBcIm94bGludFwiO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUE2QkEsZUFBZSxtQkFBbUIsTUFBYyxVQUFtQztDQUVqRixJQUFJLFNBQVMsU0FBUyxPQUFPLEdBQzNCLE9BQU8sU0FBUyxNQUFNLFFBQVE7Q0FJaEMsT0FBTyxTQUFTLE1BQU0sVUFBVSxJQUFJLEdBQUcsUUFBUTtBQUNqRDs7OztBQUtBLGVBQWUsU0FBUyxNQUFjLFVBQW1DO0NBQ3ZFLE1BQU0sU0FBUyxN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
116
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mb3JtYXR0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIjtcbi8vIO2FjOyKpO2KuCDtmZjqsr3sl5DshJzripQgZnMvcHJvbWlzZXPqsIAgbW9ja+uQmOyngOunjCwg7JWE656YIHJ1bk94bGludOydtCBpc1Rlc3Qg6rCA65Oc66GcIOyViCDrj4Tri4jquYxcbi8vIOq3uOuDpSBmcy9wcm9taXNlcyDqt7jrjIDroZwg7IKs7JqpLiAocHJvZHVjdGlvbuyXkOyEnOunjCDsnoTsi5ztjIzsnbwg7Z2Q66aE7J20IOuPleuLiOuLpC4pXG5pbXBvcnQgeyByZWFkRmlsZSwgdW5saW5rLCB3cml0ZUZpbGUgfSBmcm9tIFwiZnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibW9kdWxlXCI7XG5pbXBvcnQgcGF0aCwgeyBkaXJuYW1lLCBqb2luIH0gZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZm9ybWF0LCB0eXBlIEZvcm1hdENvbmZpZyB9IGZyb20gXCJveGZtdFwiO1xuXG5pbXBvcnQgeyBjYWNoZWQgfSBmcm9tIFwiLi9hc3luYy11dGlsc1wiO1xuaW1wb3J0IHsgaXNUZXN0IH0gZnJvbSBcIi4vY29udHJvbGxlclwiO1xuaW1wb3J0IHsgZXhlY3V0ZSB9IGZyb20gXCIuL3Byb2Nlc3MtdXRpbHNcIjtcbmltcG9ydCB7IGlzTnVtYmVyVmFsdWUgfSBmcm9tIFwiLi9ydW50aW1lLXZhbHVlXCI7XG5cbmNvbnN0IHJlcXVpcmVGcm9tSGVyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxuLyoqXG4gKiDsvZTrk5zrpbwg7ZSE66Gc7KCd7Yq47J2YIG94Zm10ICsgb3hsaW50IOyEpOygleyXkCDrp57strAg7Y+s66ek7YyF7ZWcIOusuOyekOyXtOydhCDrsJjtmZjtlanri4jri6QuXG4gKlxuICog7LqQ7Iux64+EIOyeiOyWtOyalCDjhY7jhY4g65iR6rCZ7J2AIOyeheugpeyXkCDrjIDtlbTshJwg7LqQ7IucIOy7pOuyhOuQqeuLiOuLpC5cbiAqIOyImOuqheydgCDtlITroZzshLjsiqQg7KO97J2E65WM6rmM7KeAIOOFi1xuICovXG5leHBvcnQgY29uc3QgZm9ybWF0Q29kZSA9IGNhY2hlZChmb3JtYXRDb2RlSW50ZXJuYWwsIChjb2RlLCBmaWxlUGF0aCkgPT4ge1xuICBjb25zdCBleHQgPSBmaWxlUGF0aC5lbmRzV2l0aChcIi50c3hcIikgPyBcInRzeFwiIDogZmlsZVBhdGguZW5kc1dpdGgoXCIuanNvblwiKSA/IFwianNvblwiIDogXCJ0c1wiO1xuICByZXR1cm4gYCR7ZXh0fToke2NyZWF0ZUhhc2goXCJzaGExXCIpLnVwZGF0ZShjb2RlKS5kaWdlc3QoXCJoZXhcIil9YDtcbn0pO1xuXG4vKipcbiAqIOy6kOyLnCDsl4bripQg7Y+s66e37ZWo7IiYIOyXlO2KuOumrC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZm9ybWF0Q29kZUludGVybmFsKGNvZGU6IHN0cmluZywgZmlsZVBhdGg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIC8vIGpzb27snYAg7Y+s66e366eMIO2VmOuptCDrkKnri4jri6QuXG4gIGlmIChmaWxlUGF0aC5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgcmV0dXJuIHJ1bk94Zm10KGNvZGUsIGZpbGVQYXRoKTtcbiAgfVxuXG4gIC8vIOumsO2KuCDrqLzsoIAg7ZWcIOuLpOydjOyXkCDtj6zrp7fsnLzroZwg66eI66y066as7ZW07JqULlxuICByZXR1cm4gcnVuT3hmbXQoYXdhaXQgcnVuT3hsaW50KGNvZGUpLCBmaWxlUGF0aCk7XG59XG5cbi8qKlxuICog7ZSE66Gc7KCd7Yq4IOyEpOygleydhCDssL7slYTshJwg7J207JeQIOunnuy2sOyEnCDsvZTrk5zrpbwg7Y+s66e37ZWp64uI64ukLlxuICovXG5hc3luYyBmdW5jdGlvbiBydW5PeGZtdChjb2RlOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBmb3JtYXQocGF0aC5iYXNlbmFtZShmaWxlUGF0aCksIGNvZGUsIGF3YWl0IGxvYWRPeGZtdENvbmZpZygpKTtcblxuICBjb25zdCBlcnJvcnMgPSByZXN1bHQuZXJyb3JzLmZpbHRlcigoZSkgPT4gZS5zZXZlcml0eSA9PT0gXCJFcnJvclwiKTtcbiAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgaWYgKCFpc1Rlc3QoKSkge1xuICAgICAgY29uc29sZS5lcnJvcihgb3hmbXQgZXJyb3JzICgke2ZpbGVQYXRofSk6YCk7XG4gICAgICBmb3IgKGNvbnN0IGVyciBvZiBlcnJvcnMpIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBlcnIubGFiZWxzWzBdO1xuICAgICAgICBpZiAobGFiZWwpIHtcbiAgICAgICAgICBjb25zdCBiZWZvcmUgPSBjb2RlLnNsaWNlKE1hdGgubWF4KDAsIGxhYmVsLnN0YXJ0IC0gODApLCBsYWJlbC5zdGFydCk7XG4gICAgICAgICAgY29uc3QgYXQgPSBjb2RlLnNsaWNlKGxhYmVsLnN0YXJ0LCBsYWJlbC5lbmQpO1xuICAgICAgICAgIGNvbnN0IGFmdGVyID0gY29kZS5zbGljZShsYWJlbC5lbmQsIE1hdGgubWluKGNvZGUubGVuZ3RoLCBsYWJlbC5lbmQgKyA4MCkpO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYCAgLSAke2Vyci5tZXNzYWdlfSAob2Zmc2V0ICR7bGFiZWwuc3RhcnR9LSR7bGFiZWwuZW5kfSlgKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGAgICAgYXJvdW5kOiAuLi4ke2JlZm9yZX3CuyR7YXR9wqske2FmdGVyfS4uLmApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYCAgLSAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb2RlO1xuICB9XG4gIHJldHVybiByZXN1bHQuY29kZTtcbn1cblxubGV0IGNhY2hlZE94Zm10Q29uZmlnOiBGb3JtYXRDb25maWcgfCBudWxsID0gbnVsbDtcbmFzeW5jIGZ1bmN0aW9uIGxvYWRPeGZtdENvbmZpZygpOiBQcm9taXNlPEZvcm1hdENvbmZpZz4ge1xuICBpZiAoY2FjaGVkT3hmbXRDb25maWcgIT09IG51bGwpIHtcbiAgICByZXR1cm4gY2FjaGVkT3hmbXRDb25maWc7XG4gIH1cblxuICBsZXQgZGlyID0gcHJvY2Vzcy5jd2QoKTtcbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCBjYW5kaWRhdGUgPSBqb2luKGRpciwgXCIub3hmbXRyYy5qc29uXCIpO1xuICAgIHRyeSB7XG4gICAgICAvLyBTQUZFVFk6IOyEoO2WiSDrtoTquLDsmYAg7ZWo7IiYIOqzhOyVveydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgIGNhY2hlZE94Zm10Q29uZmlnID0gSlNPTi5wYXJzZShhd2FpdCByZWFkRmlsZShjYW5kaWRhdGUsIFwidXRmLThcIikpIGFzIEZvcm1hdENvbmZpZztcbiAgICAgIHJldHVybiBjYWNoZWRPeGZtdENvbmZpZztcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBTQUZFVFk6IOyEoO2WiSDrtoTquLDsmYAg7ZWo7IiYIOqzhOyVveydtCDsnbQg7YOA7J6F7J2EIOuztOyepe2VqeuLiOuLpC5cbiAgICAgIGlmICgoZSBhcyBOb2RlSlMuRXJybm9FeGNlcHRpb24pLmNvZGUgIT09IFwiRU5PRU5UXCIpIHtcbiAgICAgICAgIWlzVGVzdCgpICYmIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBsb2FkICR7Y2FuZGlkYXRlfTpgLCBlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHBhcmVudCA9IGRpcm5hbWUoZGlyKTtcbiAgICBpZiAocGFyZW50ID09PSBkaXIpIGJyZWFrO1xuICAgIGRpciA9IHBhcmVudDtcbiAgfVxuXG4gIGNhY2hlZE94Zm10Q29uZmlnID0ge307XG4gIHJldHVybiBjYWNoZWRPeGZtdENvbmZpZztcbn1cblxuLyoqXG4gKiDtlITroZzsoJ3tirgg7ISk7KCV7JeQIOunnuy2sCDsvZTrk5zrpbwgbGludO2VqeuLiOuLpC5cbiAqXG4gKiDtlITroZzsoJ3tirgg7ISk7KCV7J2EIOyggeyaqeuwm+uKlCBveGxpbnQgY2xp66W8IOywvuyVhCDrnYTsm4zshJwsXG4gKiDsnoTsi5wg7YyM7J287JeQIGluLXBsYWNl66GcIOyNqOyEnCDqt7gg6rKw6rO866W8IOu5vOyYpOuKlCDrsKnsi53snLzroZwg7J6R64+Z7ZWp64uI64ukLlxuICog7JmcIOydtOugh+qyjCDtlZjripDrg5A/IG94bGludOqwgCBub2RlIGFwaeuPhCDslYgg7KO86rOgIGNsaeyXkOyEnCBzdGRpbiDsmLXshZjrj4Qg7JWIIOyjvOq4sCDrlYzrrLguLi5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcnVuT3hsaW50KGNvZGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGlmIChpc1Rlc3QoKSkge1xuICAgIC8vIO2FjOyKpO2KuCDtmZjqsr3sl5DshJzripQg64qQ66Ck7KeA6riw66eMIO2VmOqzoCDqsoDspp3tlaAg6rCA7LmY64+EIOyXhuyWtOyEnCDslYgg7ZWp64uI64ukLlxuICAgIC8vIEdpdEh1YiBBY3Rpb25zIO2ZmOqyveyXkOyEnCBsaW506rCAIOyYpOuemCDqsbjroKTshJwg67uX6riw64+EIO2WiOyWtOyalC4gKGh0dHBzOi8vZ2l0aHViLmNvbS9jYXJ0YW5vdmEtYWkvc29uYW11L2FjdGlvbnMvcnVucy8yNTI2NzIxNDAyNy9qb2IvNzQwODM2MzAxNjkpXG4gICAgcmV0dXJuIGNvZGU7XG4gIH1cblxuICBjb25zdCB0bXBGaWxlID0gam9pbihcbiAgICAvLyDtg4Dqsp8g7YyM7J287J20IOujqO2KuCDslYTrnpjsl5Ag7J6I7Ja07JW8IO2VtOyalC4g6re4656Y7IScIHRtcCDrlJTroInthqDrpqzqsJnsnYDqsbAg7JWIIOyUgeuLiOuLpCFcbiAgICBwcm9jZXNzLmN3ZCgpLFxuICAgIGAuc29uYW11LWZtdC0ke0RhdGUubm93KCl9LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMil9LnRzYCxcbiAgKTtcblxuICB0cnkge1xuICAgIGF3YWl0IHdyaXRlRmlsZSh0bXBGaWxlLCBjb2RlLCBcInV0Zi04XCIpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGV4ZWN1dGUocmVzb2x2ZU94bGludEJpbigpLCBbXCItLWZpeFwiLCBcIi0tZml4LXN1Z2dlc3Rpb25zXCIsIFwiLS10eXBlLWF3YXJlXCIsIHRtcEZpbGVdLCB7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgLy8gbGludCDsnITrsJgg7IucIGV4aXQgY29kZSAhPSAw7J207KeA66eMIC0tZml464qUIOyggeyaqeuQqC4gZXhlYyDsnpDssrQg7Iuk7Yyo66eMIHRocm93LlxuICAgICAgLy8gU0FGRVRZOiDshKDtlokg67aE6riw7JmAIO2VqOyImCDqs4Tslb3snbQg7J20IO2DgOyeheydhCDrs7TsnqXtlanri4jri6QuXG4gICAgICBpZiAoIWlzTnVtYmVyVmFsdWUoKGUgYXMgRXJyb3IgJiB7IGNvZGU/OiBudW1iZXIgfSkuY29kZSkpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gYXdhaXQgcmVhZEZpbGUodG1wRmlsZSwgXCJ1dGYtOFwiKTtcbiAgfSBmaW5hbGx5IHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdW5saW5rKHRtcEZpbGUpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8g7IKt7KCcIOyLpO2MqO2VtOuPhCDslrTssKjtlLwgaWdub3Jl65CoLlxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlT3hsaW50QmluKCk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHJlcXVpcmVGcm9tSGVyZS5yZXNvbHZlKFwib3hsaW50L2Jpbi9veGxpbnRcIik7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBcIm94bGludFwiO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBOEJBLGVBQWUsbUJBQW1CLE1BQWMsVUFBbUM7Q0FFakYsSUFBSSxTQUFTLFNBQVMsT0FBTyxHQUMzQixPQUFPLFNBQVMsTUFBTSxRQUFRO0NBSWhDLE9BQU8sU0FBUyxNQUFNLFVBQVUsSUFBSSxHQUFHLFFBQVE7QUFDakQ7Ozs7QUFLQSxlQUFlLFNBQVMsTUFBYyxVQUFtQztDQUN2RSxNQUFNLFNBQVMsTUFBTSxPQUFPLEtBQUssU0FBUyxRQUFRLEdBQUcsTUFBTSxNQUFNLGdCQUFnQixDQUFDO0NBRWxGLE1BQU0sU0FBUyxPQUFPLE9BQU8sUUFBUSxNQUFNLEVBQUUsYUFBYSxPQUFPO0NBQ2pFLElBQUksT0FBTyxTQUFTLEdBQUc7RUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRztHQUNiLFFBQVEsTUFBTSxpQkFBaUIsU0FBUyxHQUFHO0dBQzNDLEtBQUssTUFBTSxPQUFPLFFBQVE7SUFDeEIsTUFBTSxRQUFRLElBQUksT0FBTztJQUN6QixJQUFJLE9BQU87S0FDVCxNQUFNLFNBQVMsS0FBSyxNQUFNLEtBQUssSUFBSSxHQUFHLE1BQU0sUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLO0tBQ3BFLE1BQU0sS0FBSyxLQUFLLE1BQU0sTUFBTSxPQUFPLE1BQU0sR0FBRztLQUM1QyxNQUFNLFFBQVEsS0FBSyxNQUFNLE1BQU0sS0FBSyxLQUFLLElBQUksS0FBSyxRQUFRLE1BQU0sTUFBTSxFQUFFLENBQUM7S0FDekUsUUFBUSxNQUFNLE9BQU8sSUFBSSxRQUFRLFdBQVcsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUU7S0FDdkUsUUFBUSxNQUFNLGtCQUFrQixPQUFPLEdBQUcsR0FBRyxHQUFHLE1BQU0sSUFBSTtJQUM1RCxPQUNFLFFBQVEsTUFBTSxPQUFPLElBQUksU0FBUztHQUV0QztFQUNGO0VBQ0EsT0FBTztDQUNUO0NBQ0EsT0FBTyxPQUFPO0FBQ2hCO0FBR0EsZUFBZSxrQkFBeUM7Q0FDdEQsSUFBSSxzQkFBc0IsTUFDeEIsT0FBTztDQUdULElBQUksTUFBTSxRQUFRLElBQUk7Q0FDdEIsT0FBTyxNQUFNO0VBQ1gsTUFBTSxZQUFZLEtBQUssS0FBSyxlQUFlO0VBQzNDLElBQUk7R0FFRixvQkFBb0IsS0FBSyxNQUFNLE1BQU0sU0FBUyxXQUFXLE9BQU8sQ0FBQztHQUNqRSxPQUFPO0VBQ1QsU0FBUyxHQUFHO0dBRVYsSUFBSyxFQUE0QixTQUFTLFVBQVU7SUFDbEQsQ0FBQyxPQUFPLEtBQUssUUFBUSxNQUFNLGtCQUFrQixVQUFVLElBQUksQ0FBQztJQUM1RDtHQUNGO0VBQ0Y7RUFDQSxNQUFNLFNBQVMsUUFBUSxHQUFHO0VBQzFCLElBQUksV0FBVyxLQUFLO0VBQ3BCLE1BQU07Q0FDUjtDQUVBLG9CQUFvQixDQUFDO0NBQ3JCLE9BQU87QUFDVDs7Ozs7Ozs7QUFTQSxlQUFlLFVBQVUsTUFBK0I7Q0FDdEQsSUFBSSxPQUFPLEdBR1QsT0FBTztDQUdULE1BQU0sVUFBVSxLQUVkLFFBQVEsSUFBSSxHQUNaLGVBQWUsS0FBSyxJQUFJLEVBQUUsR0FBRyxLQUFLLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFDbkU7Q0FFQSxJQUFJO0VBQ0YsTUFBTSxVQUFVLFNBQVMsTUFBTSxPQUFPO0VBRXRDLElBQUk7R0FDRixNQUFNLFFBQVEsaUJBQWlCLEdBQUc7SUFBQztJQUFTO0lBQXFCO0lBQWdCO0dBQU8sR0FBRyxFQUN6RixTQUFTLElBQ1gsQ0FBQztFQUNILFNBQVMsR0FBRztHQUdWLElBQUksQ0FBQyxjQUFlLEVBQWdDLElBQUksR0FDdEQsTUFBTTtFQUVWO0VBRUEsT0FBTyxNQUFNLFNBQVMsU0FBUyxPQUFPO0NBQ3hDLFVBQVU7RUFDUixJQUFJO0dBQ0YsTUFBTSxPQUFPLE9BQU87RUFDdEIsUUFBUSxDQUVSO0NBQ0Y7QUFDRjtBQUVBLFNBQVMsbUJBQTJCO0NBQ2xDLElBQUk7RUFDRixPQUFPLGdCQUFnQixRQUFRLG1CQUFtQjtDQUNwRCxRQUFRO0VBQ04sT0FBTztDQUNUO0FBQ0Y7OztrQkEzSXNDO2lCQUNEO29CQUNJO29CQUNNO0NBRXpDLGtCQUFrQixjQUFjLE9BQU8sS0FBSyxHQUFHO0NBUXhDLGFBQWEsT0FBTyxxQkFBcUIsTUFBTSxhQUFhO0VBRXZFLE9BQU8sR0FESyxTQUFTLFNBQVMsTUFBTSxJQUFJLFFBQVEsU0FBUyxTQUFTLE9BQU8sSUFBSSxTQUFTLEtBQ3hFLEdBQUcsV0FBVyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSztDQUMvRCxDQUFDO0NBMkNHLG9CQUF5QyJ9
@@ -2,11 +2,11 @@ import { type PathLike } from "fs";
2
2
  /**
3
3
  * fs/promises에는 exists가 없어요. 대신 access가 있습니다.
4
4
  * 근데 얘는 인터페이스가 쓰기 불편해요. 그래서 감싸주었습니다.
5
- * @param path
5
+ * @param targetPath
6
6
  * @returns
7
7
  */
8
- export declare function exists(path: PathLike): Promise<boolean>;
9
- export declare function fileExists(path: PathLike): Promise<boolean>;
8
+ export declare function exists(targetPath: PathLike): Promise<boolean>;
9
+ export declare function fileExists(targetPath: PathLike): Promise<boolean>;
10
10
  /**
11
11
  * 파일을 복사하면서 `from "sonamu"` import를 sonamu.shared.ts 경로로 치환합니다.
12
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../../src/utils/fs-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,IAAI,CAAC;AAMnC;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAO7D;AAGD,wBAAsB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAOjE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CA4ClB"}
1
+ {"version":3,"file":"fs-utils.d.ts","sourceRoot":"","sources":["../../src/utils/fs-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,IAAI,CAAC;AAMnC;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAGD,wBAAsB,UAAU,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,+BAA+B,CACnD,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CA4ClB"}
@@ -7,20 +7,20 @@ import { access, readFile, stat, writeFile } from "fs/promises";
7
7
  /**
8
8
  * fs/promises에는 exists가 없어요. 대신 access가 있습니다.
9
9
  * 근데 얘는 인터페이스가 쓰기 불편해요. 그래서 감싸주었습니다.
10
- * @param path
10
+ * @param targetPath
11
11
  * @returns
12
12
  */
13
- async function exists(path) {
13
+ async function exists(targetPath) {
14
14
  try {
15
- await access(path, constants.F_OK);
15
+ await access(targetPath, constants.F_OK);
16
16
  return true;
17
17
  } catch {
18
18
  return false;
19
19
  }
20
20
  }
21
- async function fileExists(path) {
21
+ async function fileExists(targetPath) {
22
22
  try {
23
- return (await stat(path)).isFile();
23
+ return (await stat(targetPath)).isFile();
24
24
  } catch {
25
25
  return false;
26
26
  }
@@ -69,4 +69,4 @@ var init_fs_utils = __esmMin((() => {
69
69
  init_fs_utils();
70
70
  export { copyFileWithReplaceCoreToShared, exists, fileExists, init_fs_utils };
71
71
 
72
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdXRpbHMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2ZzLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgdHlwZSBQYXRoTGlrZSB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgYWNjZXNzLCByZWFkRmlsZSwgc3RhdCwgd3JpdGVGaWxlIH0gZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCwgeyBkaXJuYW1lIH0gZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZm9ybWF0Q29kZSB9IGZyb20gXCIuL2Zvcm1hdHRlclwiO1xuXG4vKipcbiAqIGZzL3Byb21pc2Vz7JeQ64qUIGV4aXN0c+qwgCDsl4bslrTsmpQuIOuMgOyLoCBhY2Nlc3PqsIAg7J6I7Iq164uI64ukLlxuICog6re8642wIOyWmOuKlCDsnbjthLDtjpjsnbTsiqTqsIAg7JOw6riwIOu2iO2OuO2VtOyalC4g6re4656Y7IScIOqwkOyLuOyjvOyXiOyKteuLiOuLpC5cbiAqIEBwYXJhbSBwYXRoXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhpc3RzKHBhdGg6IFBhdGhMaWtlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYWNjZXNzKHBhdGgsIGNvbnN0YW50cy5GX09LKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vIOuUlOugie2GoOumrOqwgCDslYTri4jrnbwg7YyM7J2866eMIOyhtOyerO2VmOuKlOyngCDtmZXsnbjtlanri4jri6QuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmlsZUV4aXN0cyhwYXRoOiBQYXRoTGlrZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICB0cnkge1xuICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgc3RhdChwYXRoKTtcbiAgICByZXR1cm4gc3RhdHMuaXNGaWxlKCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIO2MjOydvOydhCDrs7XsgqztlZjrqbTshJwgYGZyb20gXCJzb25hbXVcImAgaW1wb3J066W8IHNvbmFtdS5zaGFyZWQudHMg6rK966Gc66GcIOy5mO2ZmO2VqeuLiOuLpC5cbiAqXG4gKiB3ZWLsnbTrgpggYXBwIOuTseyXkOuKlCBzb25hbXUg7Yyo7YKk7KeA6rCAIOyXhuycvOuvgOuhnCwg7ZWo6ruYIOuzteyCrOuQmOuKlCBzb25hbXUuc2hhcmVkLnRz7JeQ7IScIOqwgOyguOyYpOuPhOuhnSDrs4DtmZjtlanri4jri6QuXG4gKiDrjIDsg4Eg7YyM7J287J2YIOychOy5mOyXkCDrlLDrnbwg7IOB64yAIOqyveuhnOqwgCDri6zrnbzsp5Hri4jri6Q6XG4gKiAtIHNlcnZpY2VzL3NvbmFtdS5nZW5lcmF0ZWQudHMg4oaSIC4vc29uYW11LnNoYXJlZFxuICogLSBzZXJ2aWNlcy91c2VyL3VzZXIudHlwZXMudHMg4oaSIC4uL3NvbmFtdS5zaGFyZWRcbiAqIC0gaTE4bi9rby50cyDihpIgLi4vc2VydmljZXMvc29uYW11LnNoYXJlZFxuICpcbiAqIHRzL3RzeCDtjIzsnbzsnYAg7JOw6riwIOyghOyXkCBveGZtdC9veGxpbnQg7ZWc67KIIOuPjOugpOykjeuLiOuLpCFcbiAqXG4gKiBAcGFyYW0gZnJvbVBhdGgg7JuQ67O4IO2MjOydvCDqsr3roZxcbiAqIEBwYXJhbSB0b1BhdGgg64yA7IOBIO2MjOydvCDqsr3roZxcbiAqIEBwYXJhbSBzeW5jSGVhZGVyIOuPmeq4sO2ZlCDsi5wg7YyM7J28IOy1nOyDgeuLqOyXkCDsgr3snoXtlaAg7KO87ISdIOu4lOuhnS4g6riw7KG0IEBnZW5lcmF0ZWQg67iU66Gd7J20IOyeiOycvOuptCDqtZDssrTtlZjqs6AsIOyXhuycvOuptCDstZzsg4Hri6jsl5Ag7LaU6rCA7ZWp64uI64ukLlxuICogQHJldHVybnMg7YyM7J287J2EIOyNvOycvOuptCB0cnVlLCDqsbTrhIjrm7Dsl4jsnLzrqbQgZmFsc2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHlGaWxlV2l0aFJlcGxhY2VDb3JlVG9TaGFyZWQoXG4gIGZyb21QYXRoOiBzdHJpbmcsXG4gIHRvUGF0aDogc3RyaW5nLFxuICBzeW5jSGVhZGVyPzogc3RyaW5nLFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmICghKGF3YWl0IGV4aXN0cyhmcm9tUGF0aCkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgb2xkRmlsZUNvbnRlbnQgPSAoYXdhaXQgcmVhZEZpbGUoZnJvbVBhdGgpKS50b1N0cmluZygpO1xuXG4gIGxldCBuZXdGaWxlQ29udGVudCA9ICgoKSA9PiB7XG4gICAgLy8gc29uYW11LnNoYXJlZC50c+uKlCDtla3sg4Ege2Jhc2V9L3NyYy9zZXJ2aWNlcy9zb25hbXUuc2hhcmVkLnRz7JeQIOychOy5mO2VqeuLiOuLpC5cbiAgICAvLyB0b1BhdGjsl5DshJwgL3NyYy/rpbwg7LC+7JWEIHNlcnZpY2VzIOuUlOugie2GoOumrCDqsr3roZzrpbwg6rOE7IKw7ZWp64uI64ukLlxuICAgIGNvbnN0IHNyY01hdGNoID0gdG9QYXRoLm1hdGNoKC9eKC4rXFwvc3JjKVxcLy8pO1xuICAgIGlmICghc3JjTWF0Y2gpIHtcbiAgICAgIC8vIC9zcmMv6rCAIOyXhuycvOuptCDrs4DtmZgg7JeG7J20IOq3uOuMgOuhnCDrsJjtmZhcbiAgICAgIHJldHVybiBvbGRGaWxlQ29udGVudDtcbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2aWNlc0RpciA9IHBhdGguam9pbihzcmNNYXRjaFsxXSwgXCJzZXJ2aWNlc1wiKTtcbiAgICBjb25zdCBmaWxlRGlyID0gZGlybmFtZSh0b1BhdGgpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUoZmlsZURpciwgc2VydmljZXNEaXIpO1xuICAgIGNvbnN0IHNoYXJlZFBhdGggPSByZWxhdGl2ZVBhdGggPT09IFwiXCIgPyBcIi4vc29uYW11LnNoYXJlZFwiIDogYCR7cmVsYXRpdmVQYXRofS9zb25hbXUuc2hhcmVkYDtcblxuICAgIHJldHVybiBvbGRGaWxlQ29udGVudC5yZXBsYWNlKC9mcm9tIFwic29uYW11KFxcL2RpY3QpP1wiL2csIGBmcm9tIFwiJHtzaGFyZWRQYXRofVwiYCk7XG4gIH0pKCk7XG5cbiAgLy8gc3luY0hlYWRlcuqwgCDsoJzqs7XrkJwg6rK97JqwIEBnZW5lcmF0ZWQg67iU66Gd7J2EIOq1kOyytO2VmOqxsOuCmCDstZzsg4Hri6jsl5Ag7LaU6rCA7ZWp64uI64ukLlxuICAvLyBgKi9gIOynge2bhOyXkOuKlCDtla3sg4Eg67mIIOykhCDtlZwg6rCc66W8IOuztOyepe2VmOyXrCBveGZtdOqwgCDso7zshJ3snYQgaW1wb3J07J2YIGxlYWRpbmcgY29tbWVudOuhnCDsmKTsnbjtlbQg7KCV66CsIOyLnCDrgYzroKTqsIDripQg66y47KCc66W8IOuwqeyngO2VqeuLiOuLpC5cbiAgaWYgKHN5bmNIZWFkZXIpIHtcbiAgICAvLyDquLDsobQgQGdlbmVyYXRlZCDruJTroZ0gKyDrkqTsnbTslrQg7Jik64qUIOu5iCDspITrk6Qo7J6I7Jy866m0IO2PrO2VqCnsnYQg7ZWc6rq867KI7JeQIOunpOy5re2VmOyXrCDqtZDssrQg7IucIOu5iCDspITsnbQg64iE7KCB65CY7KeAIOyViuqyjCDtlanri4jri6QuXG4gICAgLy8g7ZWcIOykhOynnOumrCgvKiogQGdlbmVyYXRlZCAqLynripQg66ek7Lmt7ZWY7KeAIOyViuycvOuvgOuhnCDsiJjrj5nsnLzroZwg7LaV7JW97ZWY7KeAIOuniOyEuOyalC5cbiAgICBjb25zdCBnZW5lcmF0ZWRCbG9ja1JlZ2V4ID0gL1xcL1xcKlxcKlxccj9cXG4gXFwqIEBnZW5lcmF0ZWRcXHI/XFxuW1xcc1xcU10qP1xcKlxcL1xccj9cXG4oXFxyP1xcbikqLztcbiAgICBpZiAoZ2VuZXJhdGVkQmxvY2tSZWdleC50ZXN0KG5ld0ZpbGVDb250ZW50KSkge1xuICAgICAgbmV3RmlsZUNvbnRlbnQgPSBuZXdGaWxlQ29udGVudC5yZXBsYWNlKGdlbmVyYXRlZEJsb2NrUmVnZXgsIGAke3N5bmNIZWFkZXJ9XFxuXFxuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0ZpbGVDb250ZW50ID0gYCR7c3luY0hlYWRlcn1cXG5cXG4ke25ld0ZpbGVDb250ZW50fWA7XG4gICAgfVxuICB9XG5cbiAgLy8gLnRzLy50c3gg7IKw7Lac66y87J2AIOyTsOq4sCDsoITsl5Ag7Y+s66e364+EIO2VtOykmOyalCDjhY7jhY5cbiAgaWYgKHRvUGF0aC5lbmRzV2l0aChcIi50c1wiKSB8fCB0b1BhdGguZW5kc1dpdGgoXCIudHN4XCIpKSB7XG4gICAgbmV3RmlsZUNvbnRlbnQgPSBhd2FpdCBmb3JtYXRDb2RlKG5ld0ZpbGVDb250ZW50LCB0b1BhdGgpO1xuICB9XG5cbiAgYXdhaXQgd3JpdGVGaWxlKHRvUGF0aCwgbmV3RmlsZUNvbnRlbnQpO1xuICByZXR1cm4gdHJ1ZTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBYUEsZUFBc0IsT0FBTyxNQUFrQztDQUM3RCxJQUFJO0VBQ0YsTUFBTSxPQUFPLE1BQU0sVUFBVSxJQUFJO0VBQ2pDLE9BQU87Q0FDVCxRQUFRO0VBQ04sT0FBTztDQUNUO0FBQ0Y7QUFHQSxlQUFzQixXQUFXLE1BQWtDO0NBQ2pFLElBQUk7RUFFRixRQUFPLE1BRGEsS0FBSyxJQUFJLEVBQ3RCLENBQU0sT0FBTztDQUN0QixRQUFRO0VBQ04sT0FBTztDQUNUO0FBQ0Y7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBLGVBQXNCLGdDQUNwQixVQUNBLFFBQ0EsWUFDa0I7Q0FDbEIsSUFBSSxDQUFFLE1BQU0sT0FBTyxRQUFRLEdBQ3pCLE9BQU87Q0FHVCxNQUFNLGtCQUFrQixNQUFNLFNBQVMsUUFBUSxFQUFBLENBQUcsU0FBUztDQUUzRCxJQUFJLHdCQUF3QjtFQUcxQixNQUFNLFdBQVcsT0FBTyxNQUFNLGNBQWM7RUFDNUMsSUFBSSxDQUFDLFVBRUgsT0FBTztFQUdULE1BQU0sY0FBYyxLQUFLLEtBQUssU0FBUyxJQUFJLFVBQVU7RUFDckQsTUFBTSxVQUFVLFFBQVEsTUFBTTtFQUM5QixNQUFNLGVBQWUsS0FBSyxTQUFTLFNBQVMsV0FBVztFQUN2RCxNQUFNLGFBQWEsaUJBQWlCLEtBQUssb0JBQW9CLEdBQUcsYUFBYTtFQUU3RSxPQUFPLGVBQWUsUUFBUSwyQkFBMkIsU0FBUyxXQUFXLEVBQUU7Q0FDakYsRUFBQSxDQUFHO0NBSUgsSUFBSSxZQUFZO0VBR2QsTUFBTSxzQkFBc0I7RUFDNUIsSUFBSSxvQkFBb0IsS0FBSyxjQUFjLEdBQ3pDLGlCQUFpQixlQUFlLFFBQVEscUJBQXFCLEdBQUcsV0FBVyxLQUFLO09BRWhGLGlCQUFpQixHQUFHLFdBQVcsTUFBTTtDQUV6QztDQUdBLElBQUksT0FBTyxTQUFTLEtBQUssS0FBSyxPQUFPLFNBQVMsTUFBTSxHQUNsRCxpQkFBaUIsTUFBTSxXQUFXLGdCQUFnQixNQUFNO0NBRzFELE1BQU0sVUFBVSxRQUFRLGNBQWM7Q0FDdEMsT0FBTztBQUNUOztnQkEzRndDIn0=
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtdXRpbHMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2ZzLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbnN0YW50cyB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgdHlwZSBQYXRoTGlrZSB9IGZyb20gXCJmc1wiO1xuaW1wb3J0IHsgYWNjZXNzLCByZWFkRmlsZSwgc3RhdCwgd3JpdGVGaWxlIH0gZnJvbSBcImZzL3Byb21pc2VzXCI7XG5pbXBvcnQgcGF0aCwgeyBkaXJuYW1lIH0gZnJvbSBcInBhdGhcIjtcblxuaW1wb3J0IHsgZm9ybWF0Q29kZSB9IGZyb20gXCIuL2Zvcm1hdHRlclwiO1xuXG4vKipcbiAqIGZzL3Byb21pc2Vz7JeQ64qUIGV4aXN0c+qwgCDsl4bslrTsmpQuIOuMgOyLoCBhY2Nlc3PqsIAg7J6I7Iq164uI64ukLlxuICog6re8642wIOyWmOuKlCDsnbjthLDtjpjsnbTsiqTqsIAg7JOw6riwIOu2iO2OuO2VtOyalC4g6re4656Y7IScIOqwkOyLuOyjvOyXiOyKteuLiOuLpC5cbiAqIEBwYXJhbSB0YXJnZXRQYXRoXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhpc3RzKHRhcmdldFBhdGg6IFBhdGhMaWtlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYWNjZXNzKHRhcmdldFBhdGgsIGNvbnN0YW50cy5GX09LKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8vIOuUlOugie2GoOumrOqwgCDslYTri4jrnbwg7YyM7J2866eMIOyhtOyerO2VmOuKlOyngCDtmZXsnbjtlanri4jri6QuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmlsZUV4aXN0cyh0YXJnZXRQYXRoOiBQYXRoTGlrZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICB0cnkge1xuICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgc3RhdCh0YXJnZXRQYXRoKTtcbiAgICByZXR1cm4gc3RhdHMuaXNGaWxlKCk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIO2MjOydvOydhCDrs7XsgqztlZjrqbTshJwgYGZyb20gXCJzb25hbXVcImAgaW1wb3J066W8IHNvbmFtdS5zaGFyZWQudHMg6rK966Gc66GcIOy5mO2ZmO2VqeuLiOuLpC5cbiAqXG4gKiB3ZWLsnbTrgpggYXBwIOuTseyXkOuKlCBzb25hbXUg7Yyo7YKk7KeA6rCAIOyXhuycvOuvgOuhnCwg7ZWo6ruYIOuzteyCrOuQmOuKlCBzb25hbXUuc2hhcmVkLnRz7JeQ7IScIOqwgOyguOyYpOuPhOuhnSDrs4DtmZjtlanri4jri6QuXG4gKiDrjIDsg4Eg7YyM7J287J2YIOychOy5mOyXkCDrlLDrnbwg7IOB64yAIOqyveuhnOqwgCDri6zrnbzsp5Hri4jri6Q6XG4gKiAtIHNlcnZpY2VzL3NvbmFtdS5nZW5lcmF0ZWQudHMg4oaSIC4vc29uYW11LnNoYXJlZFxuICogLSBzZXJ2aWNlcy91c2VyL3VzZXIudHlwZXMudHMg4oaSIC4uL3NvbmFtdS5zaGFyZWRcbiAqIC0gaTE4bi9rby50cyDihpIgLi4vc2VydmljZXMvc29uYW11LnNoYXJlZFxuICpcbiAqIHRzL3RzeCDtjIzsnbzsnYAg7JOw6riwIOyghOyXkCBveGZtdC9veGxpbnQg7ZWc67KIIOuPjOugpOykjeuLiOuLpCFcbiAqXG4gKiBAcGFyYW0gZnJvbVBhdGgg7JuQ67O4IO2MjOydvCDqsr3roZxcbiAqIEBwYXJhbSB0b1BhdGgg64yA7IOBIO2MjOydvCDqsr3roZxcbiAqIEBwYXJhbSBzeW5jSGVhZGVyIOuPmeq4sO2ZlCDsi5wg7YyM7J28IOy1nOyDgeuLqOyXkCDsgr3snoXtlaAg7KO87ISdIOu4lOuhnS4g6riw7KG0IEBnZW5lcmF0ZWQg67iU66Gd7J20IOyeiOycvOuptCDqtZDssrTtlZjqs6AsIOyXhuycvOuptCDstZzsg4Hri6jsl5Ag7LaU6rCA7ZWp64uI64ukLlxuICogQHJldHVybnMg7YyM7J287J2EIOyNvOycvOuptCB0cnVlLCDqsbTrhIjrm7Dsl4jsnLzrqbQgZmFsc2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvcHlGaWxlV2l0aFJlcGxhY2VDb3JlVG9TaGFyZWQoXG4gIGZyb21QYXRoOiBzdHJpbmcsXG4gIHRvUGF0aDogc3RyaW5nLFxuICBzeW5jSGVhZGVyPzogc3RyaW5nLFxuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmICghKGF3YWl0IGV4aXN0cyhmcm9tUGF0aCkpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgb2xkRmlsZUNvbnRlbnQgPSAoYXdhaXQgcmVhZEZpbGUoZnJvbVBhdGgpKS50b1N0cmluZygpO1xuXG4gIGxldCBuZXdGaWxlQ29udGVudCA9ICgoKSA9PiB7XG4gICAgLy8gc29uYW11LnNoYXJlZC50c+uKlCDtla3sg4Ege2Jhc2V9L3NyYy9zZXJ2aWNlcy9zb25hbXUuc2hhcmVkLnRz7JeQIOychOy5mO2VqeuLiOuLpC5cbiAgICAvLyB0b1BhdGjsl5DshJwgL3NyYy/rpbwg7LC+7JWEIHNlcnZpY2VzIOuUlOugie2GoOumrCDqsr3roZzrpbwg6rOE7IKw7ZWp64uI64ukLlxuICAgIGNvbnN0IHNyY01hdGNoID0gdG9QYXRoLm1hdGNoKC9eKC4rXFwvc3JjKVxcLy8pO1xuICAgIGlmICghc3JjTWF0Y2gpIHtcbiAgICAgIC8vIC9zcmMv6rCAIOyXhuycvOuptCDrs4DtmZgg7JeG7J20IOq3uOuMgOuhnCDrsJjtmZhcbiAgICAgIHJldHVybiBvbGRGaWxlQ29udGVudDtcbiAgICB9XG5cbiAgICBjb25zdCBzZXJ2aWNlc0RpciA9IHBhdGguam9pbihzcmNNYXRjaFsxXSwgXCJzZXJ2aWNlc1wiKTtcbiAgICBjb25zdCBmaWxlRGlyID0gZGlybmFtZSh0b1BhdGgpO1xuICAgIGNvbnN0IHJlbGF0aXZlUGF0aCA9IHBhdGgucmVsYXRpdmUoZmlsZURpciwgc2VydmljZXNEaXIpO1xuICAgIGNvbnN0IHNoYXJlZFBhdGggPSByZWxhdGl2ZVBhdGggPT09IFwiXCIgPyBcIi4vc29uYW11LnNoYXJlZFwiIDogYCR7cmVsYXRpdmVQYXRofS9zb25hbXUuc2hhcmVkYDtcblxuICAgIHJldHVybiBvbGRGaWxlQ29udGVudC5yZXBsYWNlKC9mcm9tIFwic29uYW11KFxcL2RpY3QpP1wiL2csIGBmcm9tIFwiJHtzaGFyZWRQYXRofVwiYCk7XG4gIH0pKCk7XG5cbiAgLy8gc3luY0hlYWRlcuqwgCDsoJzqs7XrkJwg6rK97JqwIEBnZW5lcmF0ZWQg67iU66Gd7J2EIOq1kOyytO2VmOqxsOuCmCDstZzsg4Hri6jsl5Ag7LaU6rCA7ZWp64uI64ukLlxuICAvLyBgKi9gIOynge2bhOyXkOuKlCDtla3sg4Eg67mIIOykhCDtlZwg6rCc66W8IOuztOyepe2VmOyXrCBveGZtdOqwgCDso7zshJ3snYQgaW1wb3J07J2YIGxlYWRpbmcgY29tbWVudOuhnCDsmKTsnbjtlbQg7KCV66CsIOyLnCDrgYzroKTqsIDripQg66y47KCc66W8IOuwqeyngO2VqeuLiOuLpC5cbiAgaWYgKHN5bmNIZWFkZXIpIHtcbiAgICAvLyDquLDsobQgQGdlbmVyYXRlZCDruJTroZ0gKyDrkqTsnbTslrQg7Jik64qUIOu5iCDspITrk6Qo7J6I7Jy866m0IO2PrO2VqCnsnYQg7ZWc6rq867KI7JeQIOunpOy5re2VmOyXrCDqtZDssrQg7IucIOu5iCDspITsnbQg64iE7KCB65CY7KeAIOyViuqyjCDtlanri4jri6QuXG4gICAgLy8g7ZWcIOykhOynnOumrCgvKiogQGdlbmVyYXRlZCAqLynripQg66ek7Lmt7ZWY7KeAIOyViuycvOuvgOuhnCDsiJjrj5nsnLzroZwg7LaV7JW97ZWY7KeAIOuniOyEuOyalC5cbiAgICBjb25zdCBnZW5lcmF0ZWRCbG9ja1JlZ2V4ID0gL1xcL1xcKlxcKlxccj9cXG4gXFwqIEBnZW5lcmF0ZWRcXHI/XFxuW1xcc1xcU10qP1xcKlxcL1xccj9cXG4oXFxyP1xcbikqLztcbiAgICBpZiAoZ2VuZXJhdGVkQmxvY2tSZWdleC50ZXN0KG5ld0ZpbGVDb250ZW50KSkge1xuICAgICAgbmV3RmlsZUNvbnRlbnQgPSBuZXdGaWxlQ29udGVudC5yZXBsYWNlKGdlbmVyYXRlZEJsb2NrUmVnZXgsIGAke3N5bmNIZWFkZXJ9XFxuXFxuYCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0ZpbGVDb250ZW50ID0gYCR7c3luY0hlYWRlcn1cXG5cXG4ke25ld0ZpbGVDb250ZW50fWA7XG4gICAgfVxuICB9XG5cbiAgLy8gLnRzLy50c3gg7IKw7Lac66y87J2AIOyTsOq4sCDsoITsl5Ag7Y+s66e364+EIO2VtOykmOyalCDjhY7jhY5cbiAgaWYgKHRvUGF0aC5lbmRzV2l0aChcIi50c1wiKSB8fCB0b1BhdGguZW5kc1dpdGgoXCIudHN4XCIpKSB7XG4gICAgbmV3RmlsZUNvbnRlbnQgPSBhd2FpdCBmb3JtYXRDb2RlKG5ld0ZpbGVDb250ZW50LCB0b1BhdGgpO1xuICB9XG5cbiAgYXdhaXQgd3JpdGVGaWxlKHRvUGF0aCwgbmV3RmlsZUNvbnRlbnQpO1xuICByZXR1cm4gdHJ1ZTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBYUEsZUFBc0IsT0FBTyxZQUF3QztDQUNuRSxJQUFJO0VBQ0YsTUFBTSxPQUFPLFlBQVksVUFBVSxJQUFJO0VBQ3ZDLE9BQU87Q0FDVCxRQUFRO0VBQ04sT0FBTztDQUNUO0FBQ0Y7QUFHQSxlQUFzQixXQUFXLFlBQXdDO0NBQ3ZFLElBQUk7RUFFRixRQUFPLE1BRGEsS0FBSyxVQUFVLEVBQzVCLENBQU0sT0FBTztDQUN0QixRQUFRO0VBQ04sT0FBTztDQUNUO0FBQ0Y7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBLGVBQXNCLGdDQUNwQixVQUNBLFFBQ0EsWUFDa0I7Q0FDbEIsSUFBSSxDQUFFLE1BQU0sT0FBTyxRQUFRLEdBQ3pCLE9BQU87Q0FHVCxNQUFNLGtCQUFrQixNQUFNLFNBQVMsUUFBUSxFQUFBLENBQUcsU0FBUztDQUUzRCxJQUFJLHdCQUF3QjtFQUcxQixNQUFNLFdBQVcsT0FBTyxNQUFNLGNBQWM7RUFDNUMsSUFBSSxDQUFDLFVBRUgsT0FBTztFQUdULE1BQU0sY0FBYyxLQUFLLEtBQUssU0FBUyxJQUFJLFVBQVU7RUFDckQsTUFBTSxVQUFVLFFBQVEsTUFBTTtFQUM5QixNQUFNLGVBQWUsS0FBSyxTQUFTLFNBQVMsV0FBVztFQUN2RCxNQUFNLGFBQWEsaUJBQWlCLEtBQUssb0JBQW9CLEdBQUcsYUFBYTtFQUU3RSxPQUFPLGVBQWUsUUFBUSwyQkFBMkIsU0FBUyxXQUFXLEVBQUU7Q0FDakYsRUFBQSxDQUFHO0NBSUgsSUFBSSxZQUFZO0VBR2QsTUFBTSxzQkFBc0I7RUFDNUIsSUFBSSxvQkFBb0IsS0FBSyxjQUFjLEdBQ3pDLGlCQUFpQixlQUFlLFFBQVEscUJBQXFCLEdBQUcsV0FBVyxLQUFLO09BRWhGLGlCQUFpQixHQUFHLFdBQVcsTUFBTTtDQUV6QztDQUdBLElBQUksT0FBTyxTQUFTLEtBQUssS0FBSyxPQUFPLFNBQVMsTUFBTSxHQUNsRCxpQkFBaUIsTUFBTSxXQUFXLGdCQUFnQixNQUFNO0NBRzFELE1BQU0sVUFBVSxRQUFRLGNBQWM7Q0FDdEMsT0FBTztBQUNUOztnQkEzRndDIn0=
@@ -1,7 +1,5 @@
1
- import { type SonamuQueryMode } from "../types/types";
2
- type WithSimilarity<LP, T> = LP extends {
3
- semanticQuery: Record<string, unknown>;
4
- } ? T & {
1
+ import { type SonamuQueryMode, type SonamuSemanticParams } from "../types/types";
2
+ type WithSimilarity<LP, T> = "semanticQuery" extends keyof LP ? T & {
5
3
  similarity: number;
6
4
  } : T;
7
5
  export type ListResult<LP extends {
@@ -25,7 +23,7 @@ export interface BaseListParams {
25
23
  page?: number;
26
24
  keyword?: string;
27
25
  queryMode?: "list" | "count" | "both";
28
- semanticQuery?: Record<string, unknown>;
26
+ semanticQuery?: SonamuSemanticParams["semanticQuery"];
29
27
  }
30
28
  export {};
31
29
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/utils/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,KAAK,cAAc,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS;IAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC9E,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1B,CAAC,CAAC;AAEN,MAAM,MAAM,UAAU,CACpB,EAAE,SAAS;IAAE,SAAS,CAAC,EAAE,eAAe,CAAA;CAAE,EAC1C,CAAC,IACC,EAAE,CAAC,WAAW,CAAC,SAAS,MAAM,GAC9B;IAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;CAAE,GACjC,EAAE,CAAC,WAAW,CAAC,SAAS,OAAO,GAC7B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAEjC,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAM9C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,mCAOlD;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/utils/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGjF,KAAK,cAAc,CAAC,EAAE,EAAE,CAAC,IAAI,eAAe,SAAS,MAAM,EAAE,GAAG,CAAC,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,CAAC,CAAC;AAE/F,MAAM,MAAM,UAAU,CACpB,EAAE,SAAS;IAAE,SAAS,CAAC,EAAE,eAAe,CAAA;CAAE,EAC1C,CAAC,IACC,EAAE,CAAC,WAAW,CAAC,SAAS,MAAM,GAC9B;IAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;CAAE,GACjC,EAAE,CAAC,WAAW,CAAC,SAAS,OAAO,GAC7B;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAEjC,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAO9C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAA;CAAE,mCAOlD;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACtC,aAAa,CAAC,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;CACvD"}
@@ -14,4 +14,4 @@ var init_model = __esmMin((() => {}));
14
14
  init_model();
15
15
  export { asArray, init_model, objToMap };
16
16
 
17
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL21vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgU29uYW11UXVlcnlNb2RlIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5cbi8vIHNlbWFudGljUXVlcnnqsIAg7J6I7Jy866m0IHNpbWlsYXJpdHnrpbwg7LaU6rCA7ZWY64qUIOyhsOqxtOu2gCDtg4DsnoVcbnR5cGUgV2l0aFNpbWlsYXJpdHk8TFAsIFQ+ID0gTFAgZXh0ZW5kcyB7IHNlbWFudGljUXVlcnk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH1cbiAgPyBUICYgeyBzaW1pbGFyaXR5OiBudW1iZXIgfVxuICA6IFQ7XG5cbmV4cG9ydCB0eXBlIExpc3RSZXN1bHQ8XG4gIExQIGV4dGVuZHMgeyBxdWVyeU1vZGU/OiBTb25hbXVRdWVyeU1vZGUgfSxcbiAgVCxcbj4gPSBMUFtcInF1ZXJ5TW9kZVwiXSBleHRlbmRzIFwibGlzdFwiXG4gID8geyByb3dzOiBXaXRoU2ltaWxhcml0eTxMUCwgVD5bXSB9XG4gIDogTFBbXCJxdWVyeU1vZGVcIl0gZXh0ZW5kcyBcImNvdW50XCJcbiAgICA/IHsgdG90YWw6IG51bWJlciB9XG4gICAgOiB7IHJvd3M6IFdpdGhTaW1pbGFyaXR5PExQLCBUPltdOyB0b3RhbDogbnVtYmVyIH07XG5cbmV4cG9ydCB0eXBlIEFycmF5T3I8VD4gPSBUIHwgVFtdO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNBcnJheTxUPihwYXJhbTogVCB8IFRbXSk6IFRbXSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHBhcmFtKSkge1xuICAgIHJldHVybiBwYXJhbTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gW3BhcmFtXSBhcyBUW107XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG9ialRvTWFwPFQ+KG9iajogeyBbazogc3RyaW5nXTogVCB9KSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhvYmopO1xuICBpZiAoa2V5cy5ldmVyeSgoa2V5KSA9PiBwYXJzZUludChrZXkpLnRvU3RyaW5nKCkgPT09IGtleSkpIHtcbiAgICByZXR1cm4gbmV3IE1hcDxudW1iZXIsIFQ+KGtleXMubWFwKChrZXkpID0+IFtwYXJzZUludChrZXkpLCBvYmpba2V5XV0pKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIFQ+KE9iamVjdC5lbnRyaWVzKG9iaikpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUxpc3RQYXJhbXMge1xuICBpZD86IG51bWJlciB8IG51bWJlcltdO1xuICBudW0/OiBudW1iZXI7XG4gIHBhZ2U/OiBudW1iZXI7XG4gIGtleXdvcmQ/OiBzdHJpbmc7XG4gIHF1ZXJ5TW9kZT86IFwibGlzdFwiIHwgXCJjb3VudFwiIHwgXCJib3RoXCI7XG4gIHNlbWFudGljUXVlcnk/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFrQkEsU0FBZ0IsUUFBVyxPQUFxQjtDQUM5QyxJQUFJLE1BQU0sUUFBUSxLQUFLLEdBQ3JCLE9BQU87TUFFUCxPQUFPLENBQUMsS0FBSztBQUVqQjtBQUVBLFNBQWdCLFNBQVksS0FBeUI7Q0FDbkQsTUFBTSxPQUFPLE9BQU8sS0FBSyxHQUFHO0NBQzVCLElBQUksS0FBSyxPQUFPLFFBQVEsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLE1BQU0sR0FBRyxHQUN0RCxPQUFPLElBQUksSUFBZSxLQUFLLEtBQUssUUFBUSxDQUFDLFNBQVMsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7TUFFdEUsT0FBTyxJQUFJLElBQWUsT0FBTyxRQUFRLEdBQUcsQ0FBQztBQUVqRCJ9
17
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL21vZGVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgU29uYW11UXVlcnlNb2RlLCB0eXBlIFNvbmFtdVNlbWFudGljUGFyYW1zIH0gZnJvbSBcIi4uL3R5cGVzL3R5cGVzXCI7XG5cbi8vIHNlbWFudGljUXVlcnnqsIAg7J6I7Jy866m0IHNpbWlsYXJpdHnrpbwg7LaU6rCA7ZWY64qUIOyhsOqxtOu2gCDtg4DsnoVcbnR5cGUgV2l0aFNpbWlsYXJpdHk8TFAsIFQ+ID0gXCJzZW1hbnRpY1F1ZXJ5XCIgZXh0ZW5kcyBrZXlvZiBMUCA/IFQgJiB7IHNpbWlsYXJpdHk6IG51bWJlciB9IDogVDtcblxuZXhwb3J0IHR5cGUgTGlzdFJlc3VsdDxcbiAgTFAgZXh0ZW5kcyB7IHF1ZXJ5TW9kZT86IFNvbmFtdVF1ZXJ5TW9kZSB9LFxuICBULFxuPiA9IExQW1wicXVlcnlNb2RlXCJdIGV4dGVuZHMgXCJsaXN0XCJcbiAgPyB7IHJvd3M6IFdpdGhTaW1pbGFyaXR5PExQLCBUPltdIH1cbiAgOiBMUFtcInF1ZXJ5TW9kZVwiXSBleHRlbmRzIFwiY291bnRcIlxuICAgID8geyB0b3RhbDogbnVtYmVyIH1cbiAgICA6IHsgcm93czogV2l0aFNpbWlsYXJpdHk8TFAsIFQ+W107IHRvdGFsOiBudW1iZXIgfTtcblxuZXhwb3J0IHR5cGUgQXJyYXlPcjxUPiA9IFQgfCBUW107XG5cbmV4cG9ydCBmdW5jdGlvbiBhc0FycmF5PFQ+KHBhcmFtOiBUIHwgVFtdKTogVFtdIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocGFyYW0pKSB7XG4gICAgcmV0dXJuIHBhcmFtO1xuICB9IGVsc2Uge1xuICAgIC8vIFNBRkVUWTog7ISg7ZaJIOu2hOq4sOyZgCDtlajsiJgg6rOE7JW97J20IOydtCDtg4DsnoXsnYQg67O07J6l7ZWp64uI64ukLlxuICAgIHJldHVybiBbcGFyYW1dIGFzIFRbXTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gb2JqVG9NYXA8VD4ob2JqOiB7IFtrOiBzdHJpbmddOiBUIH0pIHtcbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG9iaik7XG4gIGlmIChrZXlzLmV2ZXJ5KChrZXkpID0+IHBhcnNlSW50KGtleSkudG9TdHJpbmcoKSA9PT0ga2V5KSkge1xuICAgIHJldHVybiBuZXcgTWFwPG51bWJlciwgVD4oa2V5cy5tYXAoKGtleSkgPT4gW3BhcnNlSW50KGtleSksIG9ialtrZXldXSkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgVD4oT2JqZWN0LmVudHJpZXMob2JqKSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlTGlzdFBhcmFtcyB7XG4gIGlkPzogbnVtYmVyIHwgbnVtYmVyW107XG4gIG51bT86IG51bWJlcjtcbiAgcGFnZT86IG51bWJlcjtcbiAga2V5d29yZD86IHN0cmluZztcbiAgcXVlcnlNb2RlPzogXCJsaXN0XCIgfCBcImNvdW50XCIgfCBcImJvdGhcIjtcbiAgc2VtYW50aWNRdWVyeT86IFNvbmFtdVNlbWFudGljUGFyYW1zW1wic2VtYW50aWNRdWVyeVwiXTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsU0FBZ0IsUUFBVyxPQUFxQjtDQUM5QyxJQUFJLE1BQU0sUUFBUSxLQUFLLEdBQ3JCLE9BQU87TUFHUCxPQUFPLENBQUMsS0FBSztBQUVqQjtBQUVBLFNBQWdCLFNBQVksS0FBeUI7Q0FDbkQsTUFBTSxPQUFPLE9BQU8sS0FBSyxHQUFHO0NBQzVCLElBQUksS0FBSyxPQUFPLFFBQVEsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLE1BQU0sR0FBRyxHQUN0RCxPQUFPLElBQUksSUFBZSxLQUFLLEtBQUssUUFBUSxDQUFDLFNBQVMsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7TUFFdEUsT0FBTyxJQUFJLElBQWUsT0FBTyxRQUFRLEdBQUcsQ0FBQztBQUVqRCJ9
@@ -39,6 +39,6 @@ export interface SerializableCheckResult {
39
39
  * isSerializable({ fn: () => {} }) // { valid: false, reason: "Function at fn" }
40
40
  * isSerializable({ deep: { nested: Promise.resolve() } }) // { valid: false, reason: "Promise at deep.nested" }
41
41
  */
42
- export declare function isSerializable(value: unknown, path?: string[], seen?: WeakSet<object>): SerializableCheckResult;
42
+ export declare function isSerializable<Value>(value: Value, path?: string[], seen?: WeakSet<object>): SerializableCheckResult;
43
43
  export {};
44
44
  //# sourceMappingURL=object-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object-utils.d.ts","sourceRoot":"","sources":["../../src/utils/object-utils.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9D,KAAK,UAAU,GACX,SAAS,GACT,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,WAAW,GACX,UAAU,GACV,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,cAAc,CAAC;AAEnB,KAAK,mBAAmB,GAAG,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC;AAE3D,0BAA0B;AAC1B,KAAK,eAAe,GAChB,QAAQ,GACR,OAAO,CAAC,OAAO,CAAC,GAChB,MAAM,GACN,MAAM,GAEN,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAEjB,OAAO,CAAC,GAAG,CAAC,GAEZ,OAAO,CAAC,GAAG,CAAC,CAAC;AAEjB,oBAAoB;AACpB,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,mBAAmB,GACnB,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,kBAAkB,CAAC;AAEvB,UAAU,iBAAkB,SAAQ,KAAK,CAAC,YAAY,CAAC;CAAG;AAE1D,UAAU,eAAgB,SAAQ,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC;CAAG;AAEpE,UAAU,eAAgB,SAAQ,GAAG,CAAC,YAAY,CAAC;CAAG;AAEtD,UAAU,kBAAkB;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,eAAe,GACzD,KAAK,GACL,CAAC,SAAS,SAAS,GAAG,mBAAmB,GACvC,CAAC,GACD,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,GACjD,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAC1B,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACtB,kBAAkB,CAAC,CAAC,CAAC,EAAE,GACvB,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC5C,CAAC,CAAC;AAEhB,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,IAAI,GAAE,MAAM,EAAO,EACnB,IAAI,GAAE,OAAO,CAAC,MAAM,CAAiB,GACpC,uBAAuB,CAyHzB"}
1
+ {"version":3,"file":"object-utils.d.ts","sourceRoot":"","sources":["../../src/utils/object-utils.ts"],"names":[],"mappings":"AASA,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9D,KAAK,UAAU,GACX,SAAS,GACT,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,WAAW,GACX,UAAU,GACV,WAAW,GACX,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,cAAc,CAAC;AAEnB,KAAK,mBAAmB,GAAG,IAAI,GAAG,WAAW,GAAG,UAAU,CAAC;AAE3D,0BAA0B;AAC1B,KAAK,eAAe,GAChB,QAAQ,GACR,OAAO,CAAC,OAAO,CAAC,GAChB,MAAM,GACN,MAAM,GAEN,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAEjB,OAAO,CAAC,GAAG,CAAC,GAEZ,OAAO,CAAC,GAAG,CAAC,CAAC;AAEjB,oBAAoB;AACpB,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,mBAAmB,GACnB,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,kBAAkB,CAAC;AAEvB,UAAU,iBAAkB,SAAQ,KAAK,CAAC,YAAY,CAAC;CAAG;AAE1D,UAAU,eAAgB,SAAQ,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC;CAAG;AAEpE,UAAU,eAAgB,SAAQ,GAAG,CAAC,YAAY,CAAC;CAAG;AAEtD,UAAU,kBAAkB;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,SAAS,eAAe,GACzD,KAAK,GACL,CAAC,SAAS,SAAS,GAAG,mBAAmB,GACvC,CAAC,GACD,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,GACjD,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,GACpB,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAC1B,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACtB,kBAAkB,CAAC,CAAC,CAAC,EAAE,GACvB,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC5C,CAAC,CAAC;AAEhB,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAClC,KAAK,EAAE,KAAK,EACZ,IAAI,GAAE,MAAM,EAAO,EACnB,IAAI,GAAE,OAAO,CAAC,MAAM,CAAiB,GACpC,uBAAuB,CA0HzB"}
@@ -1,4 +1,5 @@
1
1
  import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
+ import { init_runtime_value, isBigIntValue, isFunctionValue, isNumberValue, isObjectValue, isStringValue, isSymbolValue } from "./runtime-value.js";
2
3
  //#region src/utils/object-utils.ts
3
4
  /**
4
5
  * 값이 Vitest worker/process 간 전달 가능한지 검증합니다.
@@ -16,18 +17,16 @@ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
16
17
  */
17
18
  function isSerializable(value, path = [], seen = /* @__PURE__ */ new WeakSet()) {
18
19
  if (value === null) return { valid: true };
19
- const type = typeof value;
20
- if (type === "string" || type === "number" || type === "boolean" || type === "undefined") return { valid: true };
21
- if (type === "bigint") return { valid: true };
22
- if (type === "function") return {
20
+ if (isStringValue(value) || isNumberValue(value) || value === true || value === false || value === void 0 || isBigIntValue(value)) return { valid: true };
21
+ if (isFunctionValue(value)) return {
23
22
  valid: false,
24
23
  reason: `Function at ${formatPath(path)}`
25
24
  };
26
- if (type === "symbol") return {
25
+ if (isSymbolValue(value)) return {
27
26
  valid: false,
28
27
  reason: `Symbol at ${formatPath(path)}`
29
28
  };
30
- if (type === "object") {
29
+ if (isObjectValue(value)) {
31
30
  const obj = value;
32
31
  if (obj instanceof Promise) return {
33
32
  valid: false,
@@ -45,7 +44,7 @@ function isSerializable(value, path = [], seen = /* @__PURE__ */ new WeakSet())
45
44
  valid: false,
46
45
  reason: `WeakSet at ${formatPath(path)}`
47
46
  };
48
- if (typeof WeakRef !== "undefined" && obj instanceof WeakRef) return {
47
+ if ("WeakRef" in globalThis && obj instanceof WeakRef) return {
49
48
  valid: false,
50
49
  reason: `WeakRef at ${formatPath(path)}`
51
50
  };
@@ -82,13 +81,13 @@ function isSerializable(value, path = [], seen = /* @__PURE__ */ new WeakSet())
82
81
  return { valid: true };
83
82
  }
84
83
  if (obj instanceof Error) {
85
- const errorProps = Object.keys(obj).filter((k) => ![
84
+ const errorEntries = Object.entries(obj).filter(([key]) => ![
86
85
  "name",
87
86
  "message",
88
87
  "stack"
89
- ].includes(k));
90
- for (const key of errorProps) {
91
- const result = isSerializable(obj[key], [...path, key], seen);
88
+ ].includes(key));
89
+ for (const [key, nestedValue] of errorEntries) {
90
+ const result = isSerializable(nestedValue, [...path, key], seen);
92
91
  if (!result.valid) return result;
93
92
  }
94
93
  return { valid: true };
@@ -98,24 +97,26 @@ function isSerializable(value, path = [], seen = /* @__PURE__ */ new WeakSet())
98
97
  valid: false,
99
98
  reason: `Class instance (${obj.constructor?.name ?? "Unknown"}) at ${formatPath(path)}`
100
99
  };
101
- for (const key of Object.keys(obj)) {
102
- const result = isSerializable(obj[key], [...path, key], seen);
100
+ for (const [key, nestedValue] of Object.entries(obj)) {
101
+ const result = isSerializable(nestedValue, [...path, key], seen);
103
102
  if (!result.valid) return result;
104
103
  }
105
104
  return { valid: true };
106
105
  }
107
106
  return {
108
107
  valid: false,
109
- reason: `Unknown type (${type}) at ${formatPath(path)}`
108
+ reason: `Unknown value at ${formatPath(path)}`
110
109
  };
111
110
  }
112
111
  function formatPath(path) {
113
112
  if (path.length === 0) return "(root)";
114
113
  return path.join(".");
115
114
  }
116
- var init_object_utils = __esmMin((() => {}));
115
+ var init_object_utils = __esmMin((() => {
116
+ init_runtime_value();
117
+ }));
117
118
  //#endregion
118
119
  init_object_utils();
119
120
  export { init_object_utils, isSerializable };
120
121
 
121
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9vYmplY3QtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsidHlwZSBQcmltaXRpdmUgPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxudHlwZSBUeXBlZEFycmF5ID1cbiAgfCBJbnQ4QXJyYXlcbiAgfCBVaW50OEFycmF5XG4gIHwgVWludDhDbGFtcGVkQXJyYXlcbiAgfCBJbnQxNkFycmF5XG4gIHwgVWludDE2QXJyYXlcbiAgfCBJbnQzMkFycmF5XG4gIHwgVWludDMyQXJyYXlcbiAgfCBGbG9hdDMyQXJyYXlcbiAgfCBGbG9hdDY0QXJyYXlcbiAgfCBCaWdJbnQ2NEFycmF5XG4gIHwgQmlnVWludDY0QXJyYXk7XG5cbnR5cGUgU3RydWN0dXJlZENsb25lYWJsZSA9IERhdGUgfCBBcnJheUJ1ZmZlciB8IFR5cGVkQXJyYXk7XG5cbi8qKiDsp4HroKztmZQg67aI6rCAIO2DgOyehSAo66qF7Iuc7KCBIOygnOyZuOyaqSkgKi9cbnR5cGUgTm9uU2VyaWFsaXphYmxlID1cbiAgfCBGdW5jdGlvblxuICB8IFByb21pc2U8dW5rbm93bj5cbiAgfCBSZWdFeHBcbiAgfCBzeW1ib2xcbiAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gV2Vha01hcOydmCDsoJzrhKTrpq0g7YyM652866+47YSwXG4gIHwgV2Vha01hcDxhbnksIGFueT5cbiAgLy8gb3hsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gV2Vha1NldOydmCDsoJzrhKTrpq0g7YyM652866+47YSwXG4gIHwgV2Vha1NldDxhbnk+XG4gIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIFdlYWtSZWbsnZgg7KCc64Sk66atIO2MjOudvOuvuO2EsFxuICB8IFdlYWtSZWY8YW55PjtcblxuLyoqIOyerOq3gOyggSDsp4HroKztmZQg6rCA64qlIO2DgOyehSAqL1xuZXhwb3J0IHR5cGUgU2VyaWFsaXphYmxlID1cbiAgfCBQcmltaXRpdmVcbiAgfCBTdHJ1Y3R1cmVkQ2xvbmVhYmxlXG4gIHwgU2VyaWFsaXphYmxlQXJyYXlcbiAgfCBTZXJpYWxpemFibGVNYXBcbiAgfCBTZXJpYWxpemFibGVTZXRcbiAgfCBTZXJpYWxpemFibGVPYmplY3Q7XG5cbmludGVyZmFjZSBTZXJpYWxpemFibGVBcnJheSBleHRlbmRzIEFycmF5PFNlcmlhbGl6YWJsZT4ge31cblxuaW50ZXJmYWNlIFNlcmlhbGl6YWJsZU1hcCBleHRlbmRzIE1hcDxTZXJpYWxpemFibGUsIFNlcmlhbGl6YWJsZT4ge31cblxuaW50ZXJmYWNlIFNlcmlhbGl6YWJsZVNldCBleHRlbmRzIFNldDxTZXJpYWxpemFibGU+IHt9XG5cbmludGVyZmFjZSBTZXJpYWxpemFibGVPYmplY3Qge1xuICBba2V5OiBzdHJpbmddOiBTZXJpYWxpemFibGU7XG59XG5cbi8qKlxuICog7KO87Ja07KeEIO2DgOyehSBU6rCAIOyngeugrO2ZlCDqsIDriqXtlZzsp4Ag6rKA7Kad7ZWY64qUIOyhsOqxtOu2gCDtg4DsnoVcbiAqIOyngeugrO2ZlCDrtojqsIDtlZwg6rCS7J20IO2PrO2VqOuQmOyWtCDsnojsnLzrqbQgbmV2ZXLrpbwg67CY7ZmY7ZWY7JesIO2DgOyehSDsl5Drn6zqsIAg67Cc7IOd7ZWp64uI64ukXG4gKi9cbmV4cG9ydCB0eXBlIEFzc2VydFNlcmlhbGl6YWJsZTxUPiA9IFQgZXh0ZW5kcyBOb25TZXJpYWxpemFibGVcbiAgPyBuZXZlclxuICA6IFQgZXh0ZW5kcyBQcmltaXRpdmUgfCBTdHJ1Y3R1cmVkQ2xvbmVhYmxlXG4gICAgPyBUXG4gICAgOiBUIGV4dGVuZHMgTWFwPGluZmVyIEssIGluZmVyIFY+XG4gICAgICA/IE1hcDxBc3NlcnRTZXJpYWxpemFibGU8Sz4sIEFzc2VydFNlcmlhbGl6YWJsZTxWPj5cbiAgICAgIDogVCBleHRlbmRzIFNldDxpbmZlciBVPlxuICAgICAgICA/IFNldDxBc3NlcnRTZXJpYWxpemFibGU8VT4+XG4gICAgICAgIDogVCBleHRlbmRzIEFycmF5PGluZmVyIFU+XG4gICAgICAgICAgPyBBc3NlcnRTZXJpYWxpemFibGU8VT5bXVxuICAgICAgICAgIDogVCBleHRlbmRzIG9iamVjdFxuICAgICAgICAgICAgPyB7IFtLIGluIGtleW9mIFRdOiBBc3NlcnRTZXJpYWxpemFibGU8VFtLXT4gfVxuICAgICAgICAgICAgOiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlcmlhbGl6YWJsZUNoZWNrUmVzdWx0IHtcbiAgdmFsaWQ6IGJvb2xlYW47XG4gIHJlYXNvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiDqsJLsnbQgVml0ZXN0IHdvcmtlci9wcm9jZXNzIOqwhCDsoITri6wg6rCA64ql7ZWc7KeAIOqygOymne2VqeuLiOuLpC5cbiAqIFNlcmlhbGl6YWJsZe2VmOuLpOuKlCDqsoPsnYAg6rKw6rWtIG1lc3NhZ2UgcG9ydOyZgCBwcm9jZXNzLnNlbmTrpbwg7Ya17ZW0IOyghOuLrCDqsIDriqXtlZwg6rKD7J2EIOydmOuvuO2VqeuLiOuLpC5cbiAqXG4gKiBAcGFyYW0gdmFsdWUgLSDqsoDspp3tlaAg6rCSXG4gKiBAcGFyYW0gcGF0aCAtIO2YhOyerCDqsr3roZwgKOyXkOufrCDrqZTsi5zsp4DsmqksIOuCtOu2gCDsnqzqt4Dsl5DshJwg7IKs7JqpKVxuICogQHBhcmFtIHNlZW4gLSDsiJztmZgg7LC47KGwIOqwkOyngOyaqSBXZWFrU2V0ICjrgrTrtoAg7J6s6reA7JeQ7IScIOyCrOyaqSlcbiAqIEByZXR1cm5zIOqygOymnSDqsrDqs7wgeyB2YWxpZDogYm9vbGVhbiwgcmVhc29uPzogc3RyaW5nIH1cbiAqXG4gKiBAZXhhbXBsZVxuICogaXNTZXJpYWxpemFibGUoeyBhOiAxLCBiOiBcImhlbGxvXCIgfSkgLy8geyB2YWxpZDogdHJ1ZSB9XG4gKiBpc1NlcmlhbGl6YWJsZSh7IGZuOiAoKSA9PiB7fSB9KSAvLyB7IHZhbGlkOiBmYWxzZSwgcmVhc29uOiBcIkZ1bmN0aW9uIGF0IGZuXCIgfVxuICogaXNTZXJpYWxpemFibGUoeyBkZWVwOiB7IG5lc3RlZDogUHJvbWlzZS5yZXNvbHZlKCkgfSB9KSAvLyB7IHZhbGlkOiBmYWxzZSwgcmVhc29uOiBcIlByb21pc2UgYXQgZGVlcC5uZXN0ZWRcIiB9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlcmlhbGl6YWJsZShcbiAgdmFsdWU6IHVua25vd24sXG4gIHBhdGg6IHN0cmluZ1tdID0gW10sXG4gIHNlZW46IFdlYWtTZXQ8b2JqZWN0PiA9IG5ldyBXZWFrU2V0KCksXG4pOiBTZXJpYWxpemFibGVDaGVja1Jlc3VsdCB7XG4gIC8vIHR5cGVvZiBudWxsID09PSAnb2JqZWN0J+ydtOuvgOuhnCDrqLzsoIAg7LKY66asXG4gIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gIH1cblxuICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICBpZiAodHlwZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlID09PSBcIm51bWJlclwiIHx8IHR5cGUgPT09IFwiYm9vbGVhblwiIHx8IHR5cGUgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICB9XG4gIGlmICh0eXBlID09PSBcImJpZ2ludFwiKSB7XG4gICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgfVxuXG4gIGlmICh0eXBlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogYEZ1bmN0aW9uIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gIH1cbiAgaWYgKHR5cGUgPT09IFwic3ltYm9sXCIpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogYFN5bWJvbCBhdCAke2Zvcm1hdFBhdGgocGF0aCl9YCB9O1xuICB9XG5cbiAgaWYgKHR5cGUgPT09IFwib2JqZWN0XCIpIHtcbiAgICBjb25zdCBvYmogPSB2YWx1ZSBhcyBvYmplY3Q7XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBQcm9taXNlIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gICAgfVxuXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBSZWdFeHAgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAgfTtcbiAgICB9XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgV2Vha01hcCkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBXZWFrTWFwIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gICAgfVxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBXZWFrU2V0KSB7XG4gICAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogYFdlYWtTZXQgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAgfTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBXZWFrUmVmICE9PSBcInVuZGVmaW5lZFwiICYmIG9iaiBpbnN0YW5jZW9mIFdlYWtSZWYpIHtcbiAgICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgcmVhc29uOiBgV2Vha1JlZiBhdCAke2Zvcm1hdFBhdGgocGF0aCl9YCB9O1xuICAgIH1cblxuICAgIC8vIOyInO2ZmCDssLjsobAg7ZeI7Jqp7ZWY65CYIOustO2VnOujqO2UhCDrsKnsp4BcbiAgICBpZiAoc2Vlbi5oYXMob2JqKSkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gICAgc2Vlbi5hZGQob2JqKTtcblxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcbiAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgfVxuICAgIGlmIChBcnJheUJ1ZmZlci5pc1ZpZXcob2JqKSkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgTWFwKSB7XG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBvYmopIHtcbiAgICAgICAgY29uc3Qga2V5UmVzdWx0ID0gaXNTZXJpYWxpemFibGUoaywgWy4uLnBhdGgsIGBNYXAua2V5WyR7aX1dYF0sIHNlZW4pO1xuICAgICAgICBpZiAoIWtleVJlc3VsdC52YWxpZCkgcmV0dXJuIGtleVJlc3VsdDtcblxuICAgICAgICBjb25zdCB2YWxSZXN1bHQgPSBpc1NlcmlhbGl6YWJsZSh2LCBbLi4ucGF0aCwgYE1hcC52YWx1ZVske2l9XWBdLCBzZWVuKTtcbiAgICAgICAgaWYgKCF2YWxSZXN1bHQudmFsaWQpIHJldHVybiB2YWxSZXN1bHQ7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgfVxuXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgbGV0IGkgPSAwO1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIG9iaikge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBpc1NlcmlhbGl6YWJsZShpdGVtLCBbLi4ucGF0aCwgYFNldFske2l9XWBdLCBzZWVuKTtcbiAgICAgICAgaWYgKCFyZXN1bHQudmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICAgIGkrKztcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgfVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvYmoubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXNTZXJpYWxpemFibGUob2JqW2ldLCBbLi4ucGF0aCwgYFske2l9XWBdLCBzZWVuKTtcbiAgICAgICAgaWYgKCFyZXN1bHQudmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cblxuICAgIC8vIFZpdGVzdOuKlCBFcnJvcuulvCDtl4jsmqntlZjsp4Drp4wg7IaN7ISx7J2AIOyngeugrO2ZlCDtlYTsmpRcbiAgICBpZiAob2JqIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGNvbnN0IGVycm9yUHJvcHMgPSBPYmplY3Qua2V5cyhvYmopLmZpbHRlcigoaykgPT4gIVtcIm5hbWVcIiwgXCJtZXNzYWdlXCIsIFwic3RhY2tcIl0uaW5jbHVkZXMoaykpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgZXJyb3JQcm9wcykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBpc1NlcmlhbGl6YWJsZShcbiAgICAgICAgICAob2JqIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV0sXG4gICAgICAgICAgWy4uLnBhdGgsIGtleV0sXG4gICAgICAgICAgc2VlbixcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCFyZXN1bHQudmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cblxuICAgIC8vIE9iamVjdC5wcm90b3R5cGUg65iQ64qUIG51bGzsnYQg7ZSE66Gc7Yag7YOA7J6F7Jy866GcIOqwgOyngOuKlCDqsr3smrDrp4wgcGxhaW4gb2JqZWN0XG4gICAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKTtcbiAgICBpZiAocHJvdG8gIT09IE9iamVjdC5wcm90b3R5cGUgJiYgcHJvdG8gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGNvbnN0cnVjdG9yTmFtZSA9IG9iai5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyBcIlVua25vd25cIjtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgICAgcmVhc29uOiBgQ2xhc3MgaW5zdGFuY2UgKCR7Y29uc3RydWN0b3JOYW1lfSkgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG9iaikpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGlzU2VyaWFsaXphYmxlKChvYmogYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV0sIFsuLi5wYXRoLCBrZXldLCBzZWVuKTtcbiAgICAgIGlmICghcmVzdWx0LnZhbGlkKSByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICB9XG5cbiAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBVbmtub3duIHR5cGUgKCR7dHlwZX0pIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG59XG5cbmZ1bmN0aW9uIGZvcm1hdFBhdGgocGF0aDogc3RyaW5nW10pOiBzdHJpbmcge1xuICBpZiAocGF0aC5sZW5ndGggPT09IDApIHJldHVybiBcIihyb290KVwiO1xuICByZXR1cm4gcGF0aC5qb2luKFwiLlwiKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQXNGQSxTQUFnQixlQUNkLE9BQ0EsT0FBaUIsQ0FBQyxHQUNsQix1QkFBd0IsSUFBSSxRQUFRLEdBQ1g7Q0FFekIsSUFBSSxVQUFVLE1BQ1osT0FBTyxFQUFFLE9BQU8sS0FBSztDQUd2QixNQUFNLE9BQU8sT0FBTztDQUNwQixJQUFJLFNBQVMsWUFBWSxTQUFTLFlBQVksU0FBUyxhQUFhLFNBQVMsYUFDM0UsT0FBTyxFQUFFLE9BQU8sS0FBSztDQUV2QixJ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
122
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXV0aWxzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9vYmplY3QtdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaXNCaWdJbnRWYWx1ZSxcbiAgaXNGdW5jdGlvblZhbHVlLFxuICBpc051bWJlclZhbHVlLFxuICBpc09iamVjdFZhbHVlLFxuICBpc1N0cmluZ1ZhbHVlLFxuICBpc1N5bWJvbFZhbHVlLFxufSBmcm9tIFwiLi9ydW50aW1lLXZhbHVlXCI7XG5cbnR5cGUgUHJpbWl0aXZlID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbnR5cGUgVHlwZWRBcnJheSA9XG4gIHwgSW50OEFycmF5XG4gIHwgVWludDhBcnJheVxuICB8IFVpbnQ4Q2xhbXBlZEFycmF5XG4gIHwgSW50MTZBcnJheVxuICB8IFVpbnQxNkFycmF5XG4gIHwgSW50MzJBcnJheVxuICB8IFVpbnQzMkFycmF5XG4gIHwgRmxvYXQzMkFycmF5XG4gIHwgRmxvYXQ2NEFycmF5XG4gIHwgQmlnSW50NjRBcnJheVxuICB8IEJpZ1VpbnQ2NEFycmF5O1xuXG50eXBlIFN0cnVjdHVyZWRDbG9uZWFibGUgPSBEYXRlIHwgQXJyYXlCdWZmZXIgfCBUeXBlZEFycmF5O1xuXG4vKiog7KeB66Cs7ZmUIOu2iOqwgCDtg4DsnoUgKOuqheyLnOyggSDsoJzsmbjsmqkpICovXG50eXBlIE5vblNlcmlhbGl6YWJsZSA9XG4gIHwgRnVuY3Rpb25cbiAgfCBQcm9taXNlPHVua25vd24+XG4gIHwgUmVnRXhwXG4gIHwgc3ltYm9sXG4gIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIFdlYWtNYXDsnZgg7KCc64Sk66atIO2MjOudvOuvuO2EsFxuICB8IFdlYWtNYXA8YW55LCBhbnk+XG4gIC8vIG94bGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIFdlYWtTZXTsnZgg7KCc64Sk66atIO2MjOudvOuvuO2EsFxuICB8IFdlYWtTZXQ8YW55PlxuICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSBXZWFrUmVm7J2YIOygnOuEpOumrSDtjIzrnbzrr7jthLBcbiAgfCBXZWFrUmVmPGFueT47XG5cbi8qKiDsnqzqt4DsoIEg7KeB66Cs7ZmUIOqwgOuKpSDtg4DsnoUgKi9cbmV4cG9ydCB0eXBlIFNlcmlhbGl6YWJsZSA9XG4gIHwgUHJpbWl0aXZlXG4gIHwgU3RydWN0dXJlZENsb25lYWJsZVxuICB8IFNlcmlhbGl6YWJsZUFycmF5XG4gIHwgU2VyaWFsaXphYmxlTWFwXG4gIHwgU2VyaWFsaXphYmxlU2V0XG4gIHwgU2VyaWFsaXphYmxlT2JqZWN0O1xuXG5pbnRlcmZhY2UgU2VyaWFsaXphYmxlQXJyYXkgZXh0ZW5kcyBBcnJheTxTZXJpYWxpemFibGU+IHt9XG5cbmludGVyZmFjZSBTZXJpYWxpemFibGVNYXAgZXh0ZW5kcyBNYXA8U2VyaWFsaXphYmxlLCBTZXJpYWxpemFibGU+IHt9XG5cbmludGVyZmFjZSBTZXJpYWxpemFibGVTZXQgZXh0ZW5kcyBTZXQ8U2VyaWFsaXphYmxlPiB7fVxuXG5pbnRlcmZhY2UgU2VyaWFsaXphYmxlT2JqZWN0IHtcbiAgW2tleTogc3RyaW5nXTogU2VyaWFsaXphYmxlO1xufVxuXG4vKipcbiAqIOyjvOyWtOynhCDtg4DsnoUgVOqwgCDsp4HroKztmZQg6rCA64ql7ZWc7KeAIOqygOymne2VmOuKlCDsobDqsbTrtoAg7YOA7J6FXG4gKiDsp4HroKztmZQg67aI6rCA7ZWcIOqwkuydtCDtj6ztlajrkJjslrQg7J6I7Jy866m0IG5ldmVy66W8IOuwmO2ZmO2VmOyXrCDtg4DsnoUg7JeQ65+s6rCAIOuwnOyDne2VqeuLiOuLpFxuICovXG5leHBvcnQgdHlwZSBBc3NlcnRTZXJpYWxpemFibGU8VD4gPSBUIGV4dGVuZHMgTm9uU2VyaWFsaXphYmxlXG4gID8gbmV2ZXJcbiAgOiBUIGV4dGVuZHMgUHJpbWl0aXZlIHwgU3RydWN0dXJlZENsb25lYWJsZVxuICAgID8gVFxuICAgIDogVCBleHRlbmRzIE1hcDxpbmZlciBLLCBpbmZlciBWPlxuICAgICAgPyBNYXA8QXNzZXJ0U2VyaWFsaXphYmxlPEs+LCBBc3NlcnRTZXJpYWxpemFibGU8Vj4+XG4gICAgICA6IFQgZXh0ZW5kcyBTZXQ8aW5mZXIgVT5cbiAgICAgICAgPyBTZXQ8QXNzZXJ0U2VyaWFsaXphYmxlPFU+PlxuICAgICAgICA6IFQgZXh0ZW5kcyBBcnJheTxpbmZlciBVPlxuICAgICAgICAgID8gQXNzZXJ0U2VyaWFsaXphYmxlPFU+W11cbiAgICAgICAgICA6IFQgZXh0ZW5kcyBvYmplY3RcbiAgICAgICAgICAgID8geyBbSyBpbiBrZXlvZiBUXTogQXNzZXJ0U2VyaWFsaXphYmxlPFRbS10+IH1cbiAgICAgICAgICAgIDogVDtcblxuZXhwb3J0IGludGVyZmFjZSBTZXJpYWxpemFibGVDaGVja1Jlc3VsdCB7XG4gIHZhbGlkOiBib29sZWFuO1xuICByZWFzb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICog6rCS7J20IFZpdGVzdCB3b3JrZXIvcHJvY2VzcyDqsIQg7KCE64usIOqwgOuKpe2VnOyngCDqsoDspp3tlanri4jri6QuXG4gKiBTZXJpYWxpemFibGXtlZjri6TripQg6rKD7J2AIOqysOq1rSBtZXNzYWdlIHBvcnTsmYAgcHJvY2Vzcy5zZW5k66W8IO2Gte2VtCDsoITri6wg6rCA64ql7ZWcIOqyg+ydhCDsnZjrr7jtlanri4jri6QuXG4gKlxuICogQHBhcmFtIHZhbHVlIC0g6rKA7Kad7ZWgIOqwklxuICogQHBhcmFtIHBhdGggLSDtmITsnqwg6rK966GcICjsl5Drn6wg66mU7Iuc7KeA7JqpLCDrgrTrtoAg7J6s6reA7JeQ7IScIOyCrOyaqSlcbiAqIEBwYXJhbSBzZWVuIC0g7Iic7ZmYIOywuOyhsCDqsJDsp4DsmqkgV2Vha1NldCAo64K067aAIOyerOq3gOyXkOyEnCDsgqzsmqkpXG4gKiBAcmV0dXJucyDqsoDspp0g6rKw6rO8IHsgdmFsaWQ6IGJvb2xlYW4sIHJlYXNvbj86IHN0cmluZyB9XG4gKlxuICogQGV4YW1wbGVcbiAqIGlzU2VyaWFsaXphYmxlKHsgYTogMSwgYjogXCJoZWxsb1wiIH0pIC8vIHsgdmFsaWQ6IHRydWUgfVxuICogaXNTZXJpYWxpemFibGUoeyBmbjogKCkgPT4ge30gfSkgLy8geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogXCJGdW5jdGlvbiBhdCBmblwiIH1cbiAqIGlzU2VyaWFsaXphYmxlKHsgZGVlcDogeyBuZXN0ZWQ6IFByb21pc2UucmVzb2x2ZSgpIH0gfSkgLy8geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogXCJQcm9taXNlIGF0IGRlZXAubmVzdGVkXCIgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTZXJpYWxpemFibGU8VmFsdWU+KFxuICB2YWx1ZTogVmFsdWUsXG4gIHBhdGg6IHN0cmluZ1tdID0gW10sXG4gIHNlZW46IFdlYWtTZXQ8b2JqZWN0PiA9IG5ldyBXZWFrU2V0KCksXG4pOiBTZXJpYWxpemFibGVDaGVja1Jlc3VsdCB7XG4gIC8vIHR5cGVvZiBudWxsID09PSAnb2JqZWN0J+ydtOuvgOuhnCDrqLzsoIAg7LKY66asXG4gIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gIH1cblxuICBpZiAoXG4gICAgaXNTdHJpbmdWYWx1ZSh2YWx1ZSkgfHxcbiAgICBpc051bWJlclZhbHVlKHZhbHVlKSB8fFxuICAgIHZhbHVlID09PSB0cnVlIHx8XG4gICAgdmFsdWUgPT09IGZhbHNlIHx8XG4gICAgdmFsdWUgPT09IHVuZGVmaW5lZCB8fFxuICAgIGlzQmlnSW50VmFsdWUodmFsdWUpXG4gICkge1xuICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gIH1cblxuICBpZiAoaXNGdW5jdGlvblZhbHVlKHZhbHVlKSkge1xuICAgIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgcmVhc29uOiBgRnVuY3Rpb24gYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAgfTtcbiAgfVxuICBpZiAoaXNTeW1ib2xWYWx1ZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogYFN5bWJvbCBhdCAke2Zvcm1hdFBhdGgocGF0aCl9YCB9O1xuICB9XG5cbiAgaWYgKGlzT2JqZWN0VmFsdWUodmFsdWUpKSB7XG4gICAgY29uc3Qgb2JqID0gdmFsdWU7XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBQcm9taXNlIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gICAgfVxuXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBSZWdFeHAgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAgfTtcbiAgICB9XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgV2Vha01hcCkge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBXZWFrTWFwIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gICAgfVxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBXZWFrU2V0KSB7XG4gICAgICByZXR1cm4geyB2YWxpZDogZmFsc2UsIHJlYXNvbjogYFdlYWtTZXQgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAgfTtcbiAgICB9XG4gICAgaWYgKFwiV2Vha1JlZlwiIGluIGdsb2JhbFRoaXMgJiYgb2JqIGluc3RhbmNlb2YgV2Vha1JlZikge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IGZhbHNlLCByZWFzb246IGBXZWFrUmVmIGF0ICR7Zm9ybWF0UGF0aChwYXRoKX1gIH07XG4gICAgfVxuXG4gICAgLy8g7Iic7ZmYIOywuOyhsCDtl4jsmqntlZjrkJgg66y07ZWc66Oo7ZSEIOuwqeyngFxuICAgIGlmIChzZWVuLmhhcyhvYmopKSB7XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cbiAgICBzZWVuLmFkZChvYmopO1xuXG4gICAgaWYgKG9iaiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgfVxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikge1xuICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gICAgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhvYmopKSB7XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cblxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBNYXApIHtcbiAgICAgIGxldCBpID0gMDtcbiAgICAgIGZvciAoY29uc3QgW2ssIHZdIG9mIG9iaikge1xuICAgICAgICBjb25zdCBrZXlSZXN1bHQgPSBpc1NlcmlhbGl6YWJsZShrLCBbLi4ucGF0aCwgYE1hcC5rZXlbJHtpfV1gXSwgc2Vlbik7XG4gICAgICAgIGlmICgha2V5UmVzdWx0LnZhbGlkKSByZXR1cm4ga2V5UmVzdWx0O1xuXG4gICAgICAgIGNvbnN0IHZhbFJlc3VsdCA9IGlzU2VyaWFsaXphYmxlKHYsIFsuLi5wYXRoLCBgTWFwLnZhbHVlWyR7aX1dYF0sIHNlZW4pO1xuICAgICAgICBpZiAoIXZhbFJlc3VsdC52YWxpZCkgcmV0dXJuIHZhbFJlc3VsdDtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICBpZiAob2JqIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2Ygb2JqKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGlzU2VyaWFsaXphYmxlKGl0ZW0sIFsuLi5wYXRoLCBgU2V0WyR7aX1dYF0sIHNlZW4pO1xuICAgICAgICBpZiAoIXJlc3VsdC52YWxpZCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgaSsrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9iai5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBpc1NlcmlhbGl6YWJsZShvYmpbaV0sIFsuLi5wYXRoLCBgWyR7aX1dYF0sIHNlZW4pO1xuICAgICAgICBpZiAoIXJlc3VsdC52YWxpZCkgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7IHZhbGlkOiB0cnVlIH07XG4gICAgfVxuXG4gICAgLy8gVml0ZXN064qUIEVycm9y66W8IO2XiOyaqe2VmOyngOunjCDsho3shLHsnYAg7KeB66Cs7ZmUIO2VhOyalFxuICAgIGlmIChvYmogaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgY29uc3QgZXJyb3JFbnRyaWVzID0gT2JqZWN0LmVudHJpZXMob2JqKS5maWx0ZXIoXG4gICAgICAgIChba2V5XSkgPT4gIVtcIm5hbWVcIiwgXCJtZXNzYWdlXCIsIFwic3RhY2tcIl0uaW5jbHVkZXMoa2V5KSxcbiAgICAgICk7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIG5lc3RlZFZhbHVlXSBvZiBlcnJvckVudHJpZXMpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gaXNTZXJpYWxpemFibGUobmVzdGVkVmFsdWUsIFsuLi5wYXRoLCBrZXldLCBzZWVuKTtcbiAgICAgICAgaWYgKCFyZXN1bHQudmFsaWQpIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgICByZXR1cm4geyB2YWxpZDogdHJ1ZSB9O1xuICAgIH1cblxuICAgIC8vIE9iamVjdC5wcm90b3R5cGUg65iQ64qUIG51bGzsnYQg7ZSE66Gc7Yag7YOA7J6F7Jy866GcIOqwgOyngOuKlCDqsr3smrDrp4wgcGxhaW4gb2JqZWN0XG4gICAgY29uc3QgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKTtcbiAgICBpZiAocHJvdG8gIT09IE9iamVjdC5wcm90b3R5cGUgJiYgcHJvdG8gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGNvbnN0cnVjdG9yTmFtZSA9IG9iai5jb25zdHJ1Y3Rvcj8ubmFtZSA/PyBcIlVua25vd25cIjtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbGlkOiBmYWxzZSxcbiAgICAgICAgcmVhc29uOiBgQ2xhc3MgaW5zdGFuY2UgKCR7Y29uc3RydWN0b3JOYW1lfSkgYXQgJHtmb3JtYXRQYXRoKHBhdGgpfWAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2tleSwgbmVzdGVkVmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iaikpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGlzU2VyaWFsaXphYmxlKG5lc3RlZFZhbHVlLCBbLi4ucGF0aCwga2V5XSwgc2Vlbik7XG4gICAgICBpZiAoIXJlc3VsdC52YWxpZCkgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgcmV0dXJuIHsgdmFsaWQ6IHRydWUgfTtcbiAgfVxuXG4gIHJldHVybiB7IHZhbGlkOiBmYWxzZSwgcmVhc29uOiBgVW5rbm93biB2YWx1ZSBhdCAke2Zvcm1hdFBhdGgocGF0aCl9YCB9O1xufVxuXG5mdW5jdGlvbiBmb3JtYXRQYXRoKHBhdGg6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgaWYgKHBhdGgubGVuZ3RoID09PSAwKSByZXR1cm4gXCIocm9vdClcIjtcbiAgcmV0dXJuIHBhdGguam9pbihcIi5cIik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0ZBLFNBQWdCLGVBQ2QsT0FDQSxPQUFpQixDQUFDLEdBQ2xCLHVCQUF3QixJQUFJLFFBQVEsR0FDWDtDQUV6QixJQUFJLFVBQVUsTUFDWixPQUFPLEVBQUUsT0FBTyxLQUFLO0NBR3ZCLElBQ0UsY0FBYyxLQUFLLEtBQ25CLGNBQWMsS0FBSyxLQUNuQixVQUFVLFFBQ1YsVUFBVSxTQUNWLFVBQVUsVUFDVixjQUFjLEtBQUssR0FFbkIsT0FBTyxFQUFFLE9BQU8sS0FBSztDQUd2QixJQUFJLGdCQUFnQixLQUFLLEdBQ3ZCLE9BQU87RUFBRSxPQUFPO0VBQU8sUUFBUSxlQUFlLFdBQVcsSUFBSTtDQUFJO0NBRW5FLElBQUksY0FBYyxLQUFLLEdBQ3JCLE9BQU87RUFBRSxPQUFPO0VBQU8sUUFBUSxhQUFhLFdBQVcsSUFBSTtDQUFJO0NBR2pFLElBQUksY0FBYyxLQUFLLEdBQUc7RUFDeEIsTUFBTSxNQUFNO0VBRVosSUFBSSxlQUFlLFNBQ2pCLE9BQU87R0FBRSxPQUFPO0dBQU8sUUFBUSxjQUFjLFdBQVcsSUFBSTtFQUFJO0VBR2xFLElBQUksZUFBZSxRQUNqQixPQUFPO0dBQUUsT0FBTztHQUFPLFFBQVEsYUFBYSxXQUFXLElBQUk7RUFBSTtFQUdqRSxJQUFJLGVBQWUsU0FDakIsT0FBTztHQUFFLE9BQU87R0FBTyxRQUFRLGNBQWMsV0FBVyxJQUFJO0VBQUk7RUFFbEUsSUFBSSxlQUFlLFNBQ2pCLE9BQU87R0FBRSxPQUFPO0dBQU8sUUFBUSxjQUFjLFdBQVcsSUFBSTtFQUFJO0VBRWxFLElBQUksYUFBYSxjQUFjLGVBQWUsU0FDNUMsT0FBTztHQUFFLE9BQU87R0FBTyxRQUFRLGNBQWMsV0FBVyxJQUFJO0VBQUk7RUFJbEUsSUFBSSxLQUFLLElBQUksR0FBRyxHQUNkLE9BQU8sRUFBRSxPQUFPLEtBQUs7RUFFdkIsS0FBSyxJQUFJLEdBQUc7RUFFWixJQUFJLGVBQWUsTUFDakIsT0FBTyxFQUFFLE9BQU8sS0FBSztFQUV2QixJQUFJLGVBQWUsYUFDakIsT0FBTyxFQUFFLE9BQU8sS0FBSztFQUV2QixJQUFJLFlBQVksT0FBTyxHQUFHLEdBQ3hCLE9BQU8sRUFBRSxPQUFPLEtBQUs7RUFHdkIsSUFBSSxlQUFlLEtBQUs7R0FDdEIsSUFBSSxJQUFJO0dBQ1IsS0FBSyxNQUFNLENBQUMsR0FBRyxNQUFNLEtBQUs7SUFDeEIsTUFBTSxZQUFZLGVBQWUsR0FBRyxDQUFDLEdBQUcsTUFBTSxXQUFXLEVBQUUsRUFBRSxHQUFHLElBQUk7SUFDcEUsSUFBSSxDQUFDLFVBQVUsT0FBTyxPQUFPO0lBRTdCLE1BQU0sWUFBWSxlQUFlLEdBQUcsQ0FBQyxHQUFHLE1BQU0sYUFBYSxFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQ3RFLElBQUksQ0FBQyxVQUFVLE9BQU8sT0FBTztJQUM3QjtHQUNGO0dBQ0EsT0FBTyxFQUFFLE9BQU8sS0FBSztFQUN2QjtFQUVBLElBQUksZUFBZSxLQUFLO0dBQ3RCLElBQUksSUFBSTtHQUNSLEtBQUssTUFBTSxRQUFRLEtBQUs7SUFDdEIsTUFBTSxTQUFTLGVBQWUsTUFBTSxDQUFDLEdBQUcsTUFBTSxPQUFPLEVBQUUsRUFBRSxHQUFHLElBQUk7SUFDaEUsSUFBSSxDQUFDLE9BQU8sT0FBTyxPQUFPO0lBQzFCO0dBQ0Y7R0FDQSxPQUFPLEVBQUUsT0FBTyxLQUFLO0VBQ3ZCO0VBRUEsSUFBSSxNQUFNLFFBQVEsR0FBRyxHQUFHO0dBQ3RCLEtBQUssSUFBSSxJQUFJLEdBQUcsSUFBSSxJQUFJLFFBQVEsS0FBSztJQUNuQyxNQUFNLFNBQVMsZUFBZSxJQUFJLElBQUksQ0FBQyxHQUFHLE1BQU0sSUFBSSxFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQy9ELElBQUksQ0FBQyxPQUFPLE9BQU8sT0FBTztHQUM1QjtHQUNBLE9BQU8sRUFBRSxPQUFPLEtBQUs7RUFDdkI7RUFHQSxJQUFJLGVBQWUsT0FBTztHQUN4QixNQUFNLGVBQWUsT0FBTyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQ3RDLENBQUMsU0FBUyxDQUFDO0lBQUM7SUFBUTtJQUFXO0dBQU8sQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUN2RDtHQUNBLEtBQUssTUFBTSxDQUFDLEtBQUssZ0JBQWdCLGNBQWM7SUFDN0MsTUFBTSxTQUFTLGVBQWUsYUFBYSxDQUFDLEdBQUcsTUFBTSxHQUFHLEdBQUcsSUFBSTtJQUMvRCxJQUFJLENBQUMsT0FBTyxPQUFPLE9BQU87R0FDNUI7R0FDQSxPQUFPLEVBQUUsT0FBTyxLQUFLO0VBQ3ZCO0VBR0EsTUFBTSxRQUFRLE9BQU8sZUFBZSxHQUFHO0VBQ3ZDLElBQUksVUFBVSxPQUFPLGFBQWEsVUFBVSxNQUUxQyxPQUFPO0dBQ0wsT0FBTztHQUNQLFFBQVEsbUJBSGMsSUFBSSxhQUFhLFFBQVEsVUFHSixPQUFPLFdBQVcsSUFBSTtFQUNuRTtFQUdGLEtBQUssTUFBTSxDQUFDLEtBQUssZ0JBQWdCLE9BQU8sUUFBUSxHQUFHLEdBQUc7R0FDcEQsTUFBTSxTQUFTLGVBQWUsYUFBYSxDQUFDLEdBQUcsTUFBTSxHQUFHLEdBQUcsSUFBSTtHQUMvRCxJQUFJLENBQUMsT0FBTyxPQUFPLE9BQU87RUFDNUI7RUFDQSxPQUFPLEVBQUUsT0FBTyxLQUFLO0NBQ3ZCO0NBRUEsT0FBTztFQUFFLE9BQU87RUFBTyxRQUFRLG9CQUFvQixXQUFXLElBQUk7Q0FBSTtBQUN4RTtBQUVBLFNBQVMsV0FBVyxNQUF3QjtDQUMxQyxJQUFJLEtBQUssV0FBVyxHQUFHLE9BQU87Q0FDOUIsT0FBTyxLQUFLLEtBQUssR0FBRztBQUN0Qjs7b0JBM053QiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"process-utils.d.ts","sourceRoot":"","sources":["../../src/utils/process-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAQ/D;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACxB,EACE,eAAe,EAAE,KAAK,EACtB,WAAW,EAAE,mBAAmB,GACjC,GAAE;IAAE,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAGxD,GACA,OAAO,CAAC,IAAI,CAAC,CAyBf"}
1
+ {"version":3,"file":"process-utils.d.ts","sourceRoot":"","sources":["../../src/utils/process-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAU/D;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACxB,EACE,eAAe,EAAE,KAAK,EACtB,WAAW,EAAE,mBAAmB,GACjC,GAAE;IAAE,eAAe,EAAE,MAAM,CAAC,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAGxD,GACA,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -1,4 +1,5 @@
1
1
  import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
+ import { init_runtime_value, isStringValue } from "./runtime-value.js";
2
3
  import chalk from "chalk";
3
4
  import { execFile } from "child_process";
4
5
  import { setTimeout } from "timers/promises";
@@ -10,7 +11,7 @@ import { promisify } from "util";
10
11
  */
11
12
  async function execute(bin, args, options) {
12
13
  const { stdout } = await execFileAsync(bin, args, options);
13
- return typeof stdout === "string" ? stdout : stdout.toString();
14
+ return isStringValue(stdout) ? stdout : stdout.toString();
14
15
  }
15
16
  /**
16
17
  * 주어진 작업을 실행합니다.
@@ -43,10 +44,11 @@ async function runWithGracefulShutdown(job, { whenThisHappens: event, waitForUpT
43
44
  }
44
45
  var execFileAsync;
45
46
  var init_process_utils = __esmMin((() => {
47
+ init_runtime_value();
46
48
  execFileAsync = promisify(execFile);
47
49
  }));
48
50
  //#endregion
49
51
  init_process_utils();
50
52
  export { execute, init_process_utils, runWithGracefulShutdown };
51
53
 
52
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy11dGlscy5qcyIsIm5hbWVzIjpbInNldFRpbWVvdXRQcm9taXNlcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9wcm9jZXNzLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlLCB0eXBlIEV4ZWNGaWxlT3B0aW9ucyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBzZXRUaW1lb3V0IGFzIHNldFRpbWVvdXRQcm9taXNlcyB9IGZyb20gXCJ0aW1lcnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gXCJ1dGlsXCI7XG5cbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcblxuY29uc3QgZXhlY0ZpbGVBc3luYyA9IHByb21pc2lmeShleGVjRmlsZSk7XG5cbi8qKlxuICogY2hpbGRfcHJvY2Vzcy5leGVjRmlsZeydmCBQcm9taXNlIOq4sOuwmCB3cmFwcGVy7J6F64uI64ukLlxuICogZXhpdCBjb2Rl6rCAIG5vbi16ZXJv7J2066m0IHJlamVjdO2VtOyalC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUoXG4gIGJpbjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgb3B0aW9ucz86IEV4ZWNGaWxlT3B0aW9ucyxcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHsgc3Rkb3V0IH0gPSBhd2FpdCBleGVjRmlsZUFzeW5jKGJpbiwgYXJncywgb3B0aW9ucyk7XG4gIHJldHVybiB0eXBlb2Ygc3Rkb3V0ID09PSBcInN0cmluZ1wiID8gc3Rkb3V0IDogc3Rkb3V0LnRvU3RyaW5nKCk7XG59XG5cbi8qKlxuICog7KO87Ja07KeEIOyekeyXheydhCDsi6Ttlontlanri4jri6QuXG4gKiDso7zslrTsp4Qg7ZSE66Gc7IS47IqkIOydtOuypO2KuCg97Iuc6re464SQKeqwgCDrsJzsg53tlZjsmIDsnYQg65WM7JeQ64+EIOy1nOuMgCDtlZzqs4Qod2FpdEZvclVwVG8pIOuPmeyViCDsnpHsl4XsnYQg6riw64uk66awIO2bhCDsooXro4ztlanri4jri6QuXG4gKiBAcGFyYW0geygpID0+IFByb21pc2U8dm9pZD59IGpvYiAtIOyLpO2Wie2VoCDsnpHsl4VcbiAqIEBwYXJhbSB7eyB3aGVuVGhpc0hhcHBlbnM6IE5vZGVKUy5TaWduYWxzOyB3YWl0Rm9yVXBUbzogbnVtYmVyIH19IG9wdGlvbnMgLSDsmLXshZhcbiAqIEBwYXJhbSB7Tm9kZUpTLlNpZ25hbHN9IG9wdGlvbnMud2hlblRoaXNIYXBwZW5zIC0g7ZSE66Gc7IS47IqkIOydtOuypO2KuFxuICogQHBhcmFtIHtudW1iZXJ9IG9wdGlvbnMud2FpdEZvclVwVG8gLSDstZzrjIAg7ZWc6rOEIOyLnOqwhFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV2l0aEdyYWNlZnVsU2h1dGRvd24oXG4gIGpvYjogKCkgPT4gUHJvbWlzZTx2b2lkPixcbiAge1xuICAgIHdoZW5UaGlzSGFwcGVuczogZXZlbnQsXG4gICAgd2FpdEZvclVwVG86IGRlbGF5QmVmb3JlU2h1dGRvd24sXG4gIH06IHsgd2hlblRoaXNIYXBwZW5zOiBOb2RlSlMuU2lnbmFsczsgd2FpdEZvclVwVG86IG51bWJlciB9ID0ge1xuICAgIHdoZW5UaGlzSGFwcGVuczogXCJTSUdVU1IyXCIsXG4gICAgd2FpdEZvclVwVG86IDIwMDAwLFxuICB9LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGxldCBpc1J1bm5pbmcgPSB0cnVlIGFzIGJvb2xlYW47XG5cbiAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBjb25zdCBvbkV2ZW50ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghaXNSdW5uaW5nKSB7XG4gICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGNoYWxrLm1hZ2VudGFCcmlnaHQoYHdhaXQgZm9yIHN5bmNpbmcgZG9uZS4uLi5gKSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgc2V0VGltZW91dFByb21pc2VzKGRlbGF5QmVmb3JlU2h1dGRvd24sIFwid2FpdGluZy1zeW5jXCIsIHtcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7fVxuICAgIGNvbnNvbGUubG9nKGNoYWxrLm1hZ2VudGFCcmlnaHQoYFN5bmNpbmcgRE9ORSFgKSk7XG4gICAgcHJvY2Vzcy5leGl0KDApO1xuICB9O1xuICBwcm9jZXNzLm9uKGV2ZW50LCBvbkV2ZW50KTtcblxuICBhd2FpdCBqb2IoKTtcblxuICBpc1J1bm5pbmcgPSBmYWxzZTtcbiAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gIHByb2Nlc3Mub2ZmKGV2ZW50LCBvbkV2ZW50KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVlBLGVBQXNCLFFBQ3BCLEtBQ0EsTUFDQSxTQUNpQjtDQUNqQixNQUFNLEVBQUUsV0FBVyxNQUFNLGNBQWMsS0FBSyxNQUFNLE9BQU87Q0FDekQsT0FBTyxPQUFPLFdBQVcsV0FBVyxTQUFTLE9BQU8sU0FBUztBQUMvRDs7Ozs7Ozs7O0FBVUEsZUFBc0Isd0JBQ3BCLEtBQ0EsRUFDRSxpQkFBaUIsT0FDakIsYUFBYSx3QkFDK0M7Q0FDNUQsaUJBQWlCO0NBQ2pCLGFBQWE7QUFDZixHQUNlO0NBQ2YsSUFBSSxZQUFZO0NBRWhCLE1BQU0sa0JBQWtCLElBQUksZ0JBQWdCO0NBQzVDLE1BQU0sVUFBVSxZQUFZO0VBQzFCLElBQUksQ0FBQyxXQUNILFFBQVEsS0FBSyxDQUFDO0VBRWhCLFFBQVEsSUFBSSxNQUFNLGNBQWMsMkJBQTJCLENBQUM7RUFFNUQsSUFBSTtHQUNGLE1BQU1BLFdBQW1CLHFCQUFxQixnQkFBZ0IsRUFDNUQsUUFBUSxnQkFBZ0IsT0FDMUIsQ0FBQztFQUNILFFBQVEsQ0FBQztFQUNULFFBQVEsSUFBSSxNQUFNLGNBQWMsZUFBZSxDQUFDO0VBQ2hELFFBQVEsS0FBSyxDQUFDO0NBQ2hCO0NBQ0EsUUFBUSxHQUFHLE9BQU8sT0FBTztDQUV6QixNQUFNLElBQUk7Q0FFVixZQUFZO0NBQ1osZ0JBQWdCLE1BQU07Q0FDdEIsUUFBUSxJQUFJLE9BQU8sT0FBTztBQUM1Qjs7O0NBekRNLGdCQUFnQixVQUFVLFFBQVEifQ==
54
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy11dGlscy5qcyIsIm5hbWVzIjpbInNldFRpbWVvdXRQcm9taXNlcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9wcm9jZXNzLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4ZWNGaWxlLCB0eXBlIEV4ZWNGaWxlT3B0aW9ucyB9IGZyb20gXCJjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgeyBzZXRUaW1lb3V0IGFzIHNldFRpbWVvdXRQcm9taXNlcyB9IGZyb20gXCJ0aW1lcnMvcHJvbWlzZXNcIjtcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gXCJ1dGlsXCI7XG5cbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcblxuaW1wb3J0IHsgaXNTdHJpbmdWYWx1ZSB9IGZyb20gXCIuL3J1bnRpbWUtdmFsdWVcIjtcblxuY29uc3QgZXhlY0ZpbGVBc3luYyA9IHByb21pc2lmeShleGVjRmlsZSk7XG5cbi8qKlxuICogY2hpbGRfcHJvY2Vzcy5leGVjRmlsZeydmCBQcm9taXNlIOq4sOuwmCB3cmFwcGVy7J6F64uI64ukLlxuICogZXhpdCBjb2Rl6rCAIG5vbi16ZXJv7J2066m0IHJlamVjdO2VtOyalC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUoXG4gIGJpbjogc3RyaW5nLFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgb3B0aW9ucz86IEV4ZWNGaWxlT3B0aW9ucyxcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHsgc3Rkb3V0IH0gPSBhd2FpdCBleGVjRmlsZUFzeW5jKGJpbiwgYXJncywgb3B0aW9ucyk7XG4gIHJldHVybiBpc1N0cmluZ1ZhbHVlKHN0ZG91dCkgPyBzdGRvdXQgOiBzdGRvdXQudG9TdHJpbmcoKTtcbn1cblxuLyoqXG4gKiDso7zslrTsp4Qg7J6R7JeF7J2EIOyLpO2Wie2VqeuLiOuLpC5cbiAqIOyjvOyWtOynhCDtlITroZzshLjsiqQg7J2067Kk7Yq4KD3si5zqt7jrhJAp6rCAIOuwnOyDne2VmOyYgOydhCDrlYzsl5Drj4Qg7LWc64yAIO2VnOqzhCh3YWl0Rm9yVXBUbykg64+Z7JWIIOyekeyXheydhCDquLDri6TrprAg7ZuEIOyiheujjO2VqeuLiOuLpC5cbiAqIEBwYXJhbSB7KCkgPT4gUHJvbWlzZTx2b2lkPn0gam9iIC0g7Iuk7ZaJ7ZWgIOyekeyXhVxuICogQHBhcmFtIHt7IHdoZW5UaGlzSGFwcGVuczogTm9kZUpTLlNpZ25hbHM7IHdhaXRGb3JVcFRvOiBudW1iZXIgfX0gb3B0aW9ucyAtIOyYteyFmFxuICogQHBhcmFtIHtOb2RlSlMuU2lnbmFsc30gb3B0aW9ucy53aGVuVGhpc0hhcHBlbnMgLSDtlITroZzshLjsiqQg7J2067Kk7Yq4XG4gKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy53YWl0Rm9yVXBUbyAtIOy1nOuMgCDtlZzqs4Qg7Iuc6rCEXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBydW5XaXRoR3JhY2VmdWxTaHV0ZG93bihcbiAgam9iOiAoKSA9PiBQcm9taXNlPHZvaWQ+LFxuICB7XG4gICAgd2hlblRoaXNIYXBwZW5zOiBldmVudCxcbiAgICB3YWl0Rm9yVXBUbzogZGVsYXlCZWZvcmVTaHV0ZG93bixcbiAgfTogeyB3aGVuVGhpc0hhcHBlbnM6IE5vZGVKUy5TaWduYWxzOyB3YWl0Rm9yVXBUbzogbnVtYmVyIH0gPSB7XG4gICAgd2hlblRoaXNIYXBwZW5zOiBcIlNJR1VTUjJcIixcbiAgICB3YWl0Rm9yVXBUbzogMjAwMDAsXG4gIH0sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgLy8gU0FGRVRZOiDshKDtlokg67aE6riw7JmAIO2VqOyImCDqs4Tslb3snbQg7J20IO2DgOyeheydhCDrs7TsnqXtlanri4jri6QuXG4gIGxldCBpc1J1bm5pbmcgPSB0cnVlIGFzIGJvb2xlYW47XG5cbiAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBjb25zdCBvbkV2ZW50ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghaXNSdW5uaW5nKSB7XG4gICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGNoYWxrLm1hZ2VudGFCcmlnaHQoYHdhaXQgZm9yIHN5bmNpbmcgZG9uZS4uLi5gKSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgc2V0VGltZW91dFByb21pc2VzKGRlbGF5QmVmb3JlU2h1dGRvd24sIFwid2FpdGluZy1zeW5jXCIsIHtcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7fVxuICAgIGNvbnNvbGUubG9nKGNoYWxrLm1hZ2VudGFCcmlnaHQoYFN5bmNpbmcgRE9ORSFgKSk7XG4gICAgcHJvY2Vzcy5leGl0KDApO1xuICB9O1xuICBwcm9jZXNzLm9uKGV2ZW50LCBvbkV2ZW50KTtcblxuICBhd2FpdCBqb2IoKTtcblxuICBpc1J1bm5pbmcgPSBmYWxzZTtcbiAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gIHByb2Nlc3Mub2ZmKGV2ZW50LCBvbkV2ZW50KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFjQSxlQUFzQixRQUNwQixLQUNBLE1BQ0EsU0FDaUI7Q0FDakIsTUFBTSxFQUFFLFdBQVcsTUFBTSxjQUFjLEtBQUssTUFBTSxPQUFPO0NBQ3pELE9BQU8sY0FBYyxNQUFNLElBQUksU0FBUyxPQUFPLFNBQVM7QUFDMUQ7Ozs7Ozs7OztBQVVBLGVBQXNCLHdCQUNwQixLQUNBLEVBQ0UsaUJBQWlCLE9BQ2pCLGFBQWEsd0JBQytDO0NBQzVELGlCQUFpQjtDQUNqQixhQUFhO0FBQ2YsR0FDZTtDQUVmLElBQUksWUFBWTtDQUVoQixNQUFNLGtCQUFrQixJQUFJLGdCQUFnQjtDQUM1QyxNQUFNLFVBQVUsWUFBWTtFQUMxQixJQUFJLENBQUMsV0FDSCxRQUFRLEtBQUssQ0FBQztFQUVoQixRQUFRLElBQUksTUFBTSxjQUFjLDJCQUEyQixDQUFDO0VBRTVELElBQUk7R0FDRixNQUFNQSxXQUFtQixxQkFBcUIsZ0JBQWdCLEVBQzVELFFBQVEsZ0JBQWdCLE9BQzFCLENBQUM7RUFDSCxRQUFRLENBQUM7RUFDVCxRQUFRLElBQUksTUFBTSxjQUFjLGVBQWUsQ0FBQztFQUNoRCxRQUFRLEtBQUssQ0FBQztDQUNoQjtDQUNBLFFBQVEsR0FBRyxPQUFPLE9BQU87Q0FFekIsTUFBTSxJQUFJO0NBRVYsWUFBWTtDQUNaLGdCQUFnQixNQUFNO0NBQ3RCLFFBQVEsSUFBSSxPQUFPLE9BQU87QUFDNUI7OztvQkE1RCtDO0NBRXpDLGdCQUFnQixVQUFVLFFBQVEifQ==
@@ -0,0 +1,13 @@
1
+ /** 런타임 값이 원시 문자열인지 판별합니다. */
2
+ export declare function isStringValue<Value>(value: Value): value is Value & string;
3
+ /** 런타임 값이 원시 숫자인지 판별합니다. */
4
+ export declare function isNumberValue<Value>(value: Value): value is Value & number;
5
+ /** 런타임 값이 원시 심벌인지 판별합니다. */
6
+ export declare function isSymbolValue<Value>(value: Value): value is Value & symbol;
7
+ /** 런타임 값이 원시 bigint인지 판별합니다. */
8
+ export declare function isBigIntValue<Value>(value: Value): value is Value & bigint;
9
+ /** 런타임 값이 함수인지 판별합니다. */
10
+ export declare function isFunctionValue<Value>(value: Value): value is Value & CallableFunction;
11
+ /** null과 함수를 제외한 객체 표현인지 판별합니다. */
12
+ export declare function isObjectValue<Value>(value: Value): value is Value & object;
13
+ //# sourceMappingURL=runtime-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-value.d.ts","sourceRoot":"","sources":["../../src/utils/runtime-value.ts"],"names":[],"mappings":"AAIA,6BAA6B;AAC7B,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,CAE1E;AAED,4BAA4B;AAC5B,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,CAE1E;AAED,4BAA4B;AAC5B,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,CAE1E;AAED,gCAAgC;AAChC,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,CAE1E;AAED,yBAAyB;AACzB,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,gBAAgB,CAYtF;AAED,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,KAAK,GAAG,MAAM,CAE1E"}
@@ -0,0 +1,40 @@
1
+ import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
+ //#region src/utils/runtime-value.ts
3
+ function hasPrimitiveTag(value, tag) {
4
+ return Object.prototype.toString.call(value) === tag && Object(value) !== value;
5
+ }
6
+ /** 런타임 값이 원시 문자열인지 판별합니다. */
7
+ function isStringValue(value) {
8
+ return hasPrimitiveTag(value, "[object String]");
9
+ }
10
+ /** 런타임 값이 원시 숫자인지 판별합니다. */
11
+ function isNumberValue(value) {
12
+ return hasPrimitiveTag(value, "[object Number]");
13
+ }
14
+ /** 런타임 값이 원시 심벌인지 판별합니다. */
15
+ function isSymbolValue(value) {
16
+ return hasPrimitiveTag(value, "[object Symbol]");
17
+ }
18
+ /** 런타임 값이 원시 bigint인지 판별합니다. */
19
+ function isBigIntValue(value) {
20
+ return hasPrimitiveTag(value, "[object BigInt]");
21
+ }
22
+ /** 런타임 값이 함수인지 판별합니다. */
23
+ function isFunctionValue(value) {
24
+ try {
25
+ const tag = Object.prototype.toString.call(value);
26
+ return tag === "[object Function]" || tag === "[object AsyncFunction]" || tag === "[object GeneratorFunction]" || tag === "[object AsyncGeneratorFunction]";
27
+ } catch {
28
+ return false;
29
+ }
30
+ }
31
+ /** null과 함수를 제외한 객체 표현인지 판별합니다. */
32
+ function isObjectValue(value) {
33
+ return value !== null && Object(value) === value && !isFunctionValue(value);
34
+ }
35
+ var init_runtime_value = __esmMin((() => {}));
36
+ //#endregion
37
+ init_runtime_value();
38
+ export { init_runtime_value, isBigIntValue, isFunctionValue, isNumberValue, isObjectValue, isStringValue, isSymbolValue };
39
+
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS12YWx1ZS5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcnVudGltZS12YWx1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBoYXNQcmltaXRpdmVUYWc8VmFsdWU+KHZhbHVlOiBWYWx1ZSwgdGFnOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09IHRhZyAmJiBPYmplY3QodmFsdWUpICE9PSB2YWx1ZTtcbn1cblxuLyoqIOufsO2DgOyehCDqsJLsnbQg7JuQ7IucIOusuOyekOyXtOyduOyngCDtjJDrs4Ttlanri4jri6QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTdHJpbmdWYWx1ZTxWYWx1ZT4odmFsdWU6IFZhbHVlKTogdmFsdWUgaXMgVmFsdWUgJiBzdHJpbmcge1xuICByZXR1cm4gaGFzUHJpbWl0aXZlVGFnKHZhbHVlLCBcIltvYmplY3QgU3RyaW5nXVwiKTtcbn1cblxuLyoqIOufsO2DgOyehCDqsJLsnbQg7JuQ7IucIOyIq+yekOyduOyngCDtjJDrs4Ttlanri4jri6QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXJWYWx1ZTxWYWx1ZT4odmFsdWU6IFZhbHVlKTogdmFsdWUgaXMgVmFsdWUgJiBudW1iZXIge1xuICByZXR1cm4gaGFzUHJpbWl0aXZlVGFnKHZhbHVlLCBcIltvYmplY3QgTnVtYmVyXVwiKTtcbn1cblxuLyoqIOufsO2DgOyehCDqsJLsnbQg7JuQ7IucIOyLrOuyjOyduOyngCDtjJDrs4Ttlanri4jri6QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTeW1ib2xWYWx1ZTxWYWx1ZT4odmFsdWU6IFZhbHVlKTogdmFsdWUgaXMgVmFsdWUgJiBzeW1ib2wge1xuICByZXR1cm4gaGFzUHJpbWl0aXZlVGFnKHZhbHVlLCBcIltvYmplY3QgU3ltYm9sXVwiKTtcbn1cblxuLyoqIOufsO2DgOyehCDqsJLsnbQg7JuQ7IucIGJpZ2ludOyduOyngCDtjJDrs4Ttlanri4jri6QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNCaWdJbnRWYWx1ZTxWYWx1ZT4odmFsdWU6IFZhbHVlKTogdmFsdWUgaXMgVmFsdWUgJiBiaWdpbnQge1xuICByZXR1cm4gaGFzUHJpbWl0aXZlVGFnKHZhbHVlLCBcIltvYmplY3QgQmlnSW50XVwiKTtcbn1cblxuLyoqIOufsO2DgOyehCDqsJLsnbQg7ZWo7IiY7J247KeAIO2MkOuzhO2VqeuLiOuLpC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uVmFsdWU8VmFsdWU+KHZhbHVlOiBWYWx1ZSk6IHZhbHVlIGlzIFZhbHVlICYgQ2FsbGFibGVGdW5jdGlvbiB7XG4gIHRyeSB7XG4gICAgY29uc3QgdGFnID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHZhbHVlKTtcbiAgICByZXR1cm4gKFxuICAgICAgdGFnID09PSBcIltvYmplY3QgRnVuY3Rpb25dXCIgfHxcbiAgICAgIHRhZyA9PT0gXCJbb2JqZWN0IEFzeW5jRnVuY3Rpb25dXCIgfHxcbiAgICAgIHRhZyA9PT0gXCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0aW9uXVwiIHx8XG4gICAgICB0YWcgPT09IFwiW29iamVjdCBBc3luY0dlbmVyYXRvckZ1bmN0aW9uXVwiXG4gICAgKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKiBudWxs6rO8IO2VqOyImOulvCDsoJzsmbjtlZwg6rCd7LK0IO2RnO2YhOyduOyngCDtjJDrs4Ttlanri4jri6QuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3RWYWx1ZTxWYWx1ZT4odmFsdWU6IFZhbHVlKTogdmFsdWUgaXMgVmFsdWUgJiBvYmplY3Qge1xuICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgT2JqZWN0KHZhbHVlKSA9PT0gdmFsdWUgJiYgIWlzRnVuY3Rpb25WYWx1ZSh2YWx1ZSk7XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBUyxnQkFBdUIsT0FBYyxLQUFzQjtDQUNsRSxPQUFPLE9BQU8sVUFBVSxTQUFTLEtBQUssS0FBSyxNQUFNLE9BQU8sT0FBTyxLQUFLLE1BQU07QUFDNUU7O0FBR0EsU0FBZ0IsY0FBcUIsT0FBdUM7Q0FDMUUsT0FBTyxnQkFBZ0IsT0FBTyxpQkFBaUI7QUFDakQ7O0FBR0EsU0FBZ0IsY0FBcUIsT0FBdUM7Q0FDMUUsT0FBTyxnQkFBZ0IsT0FBTyxpQkFBaUI7QUFDakQ7O0FBR0EsU0FBZ0IsY0FBcUIsT0FBdUM7Q0FDMUUsT0FBTyxnQkFBZ0IsT0FBTyxpQkFBaUI7QUFDakQ7O0FBR0EsU0FBZ0IsY0FBcUIsT0FBdUM7Q0FDMUUsT0FBTyxnQkFBZ0IsT0FBTyxpQkFBaUI7QUFDakQ7O0FBR0EsU0FBZ0IsZ0JBQXVCLE9BQWlEO0NBQ3RGLElBQUk7RUFDRixNQUFNLE1BQU0sT0FBTyxVQUFVLFNBQVMsS0FBSyxLQUFLO0VBQ2hELE9BQ0UsUUFBUSx1QkFDUixRQUFRLDRCQUNSLFFBQVEsZ0NBQ1IsUUFBUTtDQUVaLFFBQVE7RUFDTixPQUFPO0NBQ1Q7QUFDRjs7QUFHQSxTQUFnQixjQUFxQixPQUF1QztDQUMxRSxPQUFPLFVBQVUsUUFBUSxPQUFPLEtBQUssTUFBTSxTQUFTLENBQUMsZ0JBQWdCLEtBQUs7QUFDNUUifQ==
@@ -1,8 +1,15 @@
1
1
  import { type AST, type ColumnRef, type Join } from "node-sql-parser";
2
- export declare function getTableName(expr: ColumnRef): string | null;
2
+ type ParserColumnRef = Omit<ColumnRef, "table"> & {
3
+ table?: string | {
4
+ type: string;
5
+ value: string;
6
+ } | null;
7
+ };
8
+ export declare function getTableName(expr: ParserColumnRef): string | null;
3
9
  export declare function getTableNamesFromWhere(ast: AST | AST[]): string[];
4
10
  /**
5
11
  * 주의: table명이 아닌 alias를 반환함
6
12
  */
7
13
  export declare function getJoinTables(ast: AST | AST[], joinTypes: Join["join"][]): string[];
14
+ export {};
8
15
  //# sourceMappingURL=sql-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sql-parser.d.ts","sourceRoot":"","sources":["../../src/utils/sql-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EAId,KAAK,IAAI,EAEV,MAAM,iBAAiB,CAAC;AAKzB,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,iBAO3C;AAGD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CA0BjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAYnF"}
1
+ {"version":3,"file":"sql-parser.d.ts","sourceRoot":"","sources":["../../src/utils/sql-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,SAAS,EAId,KAAK,IAAI,EAEV,MAAM,iBAAiB,CAAC;AAMzB,KAAK,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG;IAChD,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,iBAQjD;AAGD,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CA2BjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAYnF"}
@@ -1,10 +1,12 @@
1
1
  import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
+ import { init_runtime_value, isObjectValue, isStringValue } from "./runtime-value.js";
2
3
  import { init_utils, nonNullable } from "./utils.js";
3
4
  import { unique } from "radashi";
4
5
  //#region src/utils/sql-parser.ts
5
6
  function getTableName(expr) {
6
- if ("table" in expr && expr.table !== null) return typeof expr.table === "string" ? expr.table : expr.table.value;
7
- return null;
7
+ const table = expr.table;
8
+ if (isStringValue(table)) return table;
9
+ return isObjectValue(table) && "value" in table && isStringValue(table.value) ? table.value : null;
8
10
  }
9
11
  function getTableNamesFromWhere(ast) {
10
12
  const extractTableNames = (where) => {
@@ -30,10 +32,11 @@ function getJoinTables(ast, joinTypes) {
30
32
  return unique((Array.isArray(ast) ? ast : [ast]).flatMap((a) => a.type === "select" && Array.isArray(a.from) ? extractJoinTables(a.from) : []));
31
33
  }
32
34
  var init_sql_parser = __esmMin((() => {
35
+ init_runtime_value();
33
36
  init_utils();
34
37
  }));
35
38
  //#endregion
36
39
  init_sql_parser();
37
40
  export { getJoinTables, getTableName, getTableNamesFromWhere, init_sql_parser };
38
41
 
39
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLXBhcnNlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc3FsLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIEFTVCxcbiAgdHlwZSBDb2x1bW5SZWYsXG4gIHR5cGUgRXhwcixcbiAgdHlwZSBFeHByZXNzaW9uVmFsdWUsXG4gIHR5cGUgRnJvbSxcbiAgdHlwZSBKb2luLFxuICB0eXBlIFNlbGVjdCxcbn0gZnJvbSBcIm5vZGUtc3FsLXBhcnNlclwiO1xuaW1wb3J0IHsgdW5pcXVlIH0gZnJvbSBcInJhZGFzaGlcIjtcblxuaW1wb3J0IHsgbm9uTnVsbGFibGUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFibGVOYW1lKGV4cHI6IENvbHVtblJlZikge1xuICBpZiAoXCJ0YWJsZVwiIGluIGV4cHIgJiYgZXhwci50YWJsZSAhPT0gbnVsbCkge1xuICAgIHJldHVybiB0eXBlb2YgZXhwci50YWJsZSA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBleHByLnRhYmxlXG4gICAgICA6IChleHByLnRhYmxlIGFzIHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0pLnZhbHVlO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vLyB3aGVyZSDsobDqsbTsl5Ag7IKs7Jqp65CcIO2FjOydtOu4lOuqheydhCDstpTstpxcbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWJsZU5hbWVzRnJvbVdoZXJlKGFzdDogQVNUIHwgQVNUW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGV4dHJhY3RUYWJsZU5hbWVzID0gKHdoZXJlOiBTZWxlY3RbXCJ3aGVyZVwiXSk6IHN0cmluZ1tdID0+IHtcbiAgICBpZiAod2hlcmUgPT09IG51bGwgfHwgISh3aGVyZS50eXBlID09PSBcImJpbmFyeV9leHByXCIgJiYgXCJsZWZ0XCIgaW4gd2hlcmUpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZXh0cmFjdFRhYmxlTmFtZSA9IChleHByOiBFeHByIHwgRXhwcmVzc2lvblZhbHVlKTogc3RyaW5nW10gPT4ge1xuICAgICAgaWYgKGV4cHIudHlwZSA9PT0gXCJjb2x1bW5fcmVmXCIpIHtcbiAgICAgICAgY29uc3QgdGFibGUgPSBnZXRUYWJsZU5hbWUoZXhwciBhcyBDb2x1bW5SZWYpO1xuICAgICAgICByZXR1cm4gdGFibGUgPyBbdGFibGVdIDogW107XG4gICAgICB9IGVsc2UgaWYgKGV4cHIudHlwZSA9PT0gXCJiaW5hcnlfZXhwclwiICYmIFwibGVmdFwiIGluIGV4cHIpIHtcbiAgICAgICAgcmV0dXJuIGV4dHJhY3RUYWJsZU5hbWVzKGV4cHIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtdO1xuICAgIH07XG5cbiAgICByZXR1cm4gWy4uLmV4dHJhY3RUYWJsZU5hbWUod2hlcmUubGVmdCksIC4uLmV4dHJhY3RUYWJsZU5hbWUod2hlcmUucmlnaHQpXTtcbiAgfTtcblxuICByZXR1cm4gdW5pcXVlKFxuICAgIChBcnJheS5pc0FycmF5KGFzdCkgPyBhc3QgOiBbYXN0XSkuZmxhdE1hcCgoYSkgPT5cbiAgICAgIGEudHlwZSA9PT0gXCJzZWxlY3RcIiB8fCBhLnR5cGUgPT09IFwidXBkYXRlXCIgfHwgYS50eXBlID09PSBcImRlbGV0ZVwiXG4gICAgICAgID8gZXh0cmFjdFRhYmxlTmFtZXMoYS53aGVyZSlcbiAgICAgICAgOiBbXSxcbiAgICApLFxuICApO1xufVxuXG4vKipcbiAqIOyjvOydmDogdGFibGXrqoXsnbQg7JWE64uMIGFsaWFz66W8IOuwmO2ZmO2VqFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Sm9pblRhYmxlcyhhc3Q6IEFTVCB8IEFTVFtdLCBqb2luVHlwZXM6IEpvaW5bXCJqb2luXCJdW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGV4dHJhY3RKb2luVGFibGVzID0gKGZyb21zOiBGcm9tW10pOiBzdHJpbmdbXSA9PiB7XG4gICAgcmV0dXJuIGZyb21zXG4gICAgICAubWFwKChmKSA9PiAoXCJqb2luXCIgaW4gZiAmJiBqb2luVHlwZXMuaW5jbHVkZXMoZi5qb2luKSA/IGYuYXMgOiBudWxsKSlcbiAgICAgIC5maWx0ZXIobm9uTnVsbGFibGUpO1xuICB9O1xuXG4gIHJldHVybiB1bmlxdWUoXG4gICAgKEFycmF5LmlzQXJyYXkoYXN0KSA/IGFzdCA6IFthc3RdKS5mbGF0TWFwKChhKSA9PlxuICAgICAgYS50eXBlID09PSBcInNlbGVjdFwiICYmIEFycmF5LmlzQXJyYXkoYS5mcm9tKSA/IGV4dHJhY3RKb2luVGFibGVzKGEuZnJvbSkgOiBbXSxcbiAgICApLFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7O0FBYUEsU0FBZ0IsYUFBYSxNQUFpQjtDQUM1QyxJQUFJLFdBQVcsUUFBUSxLQUFLLFVBQVUsTUFDcEMsT0FBTyxPQUFPLEtBQUssVUFBVSxXQUN6QixLQUFLLFFBQ0osS0FBSyxNQUEwQztDQUV0RCxPQUFPO0FBQ1Q7QUFHQSxTQUFnQix1QkFBdUIsS0FBNEI7Q0FDakUsTUFBTSxxQkFBcUIsVUFBcUM7RUFDOUQsSUFBSSxVQUFVLFFBQVEsRUFBRSxNQUFNLFNBQVMsaUJBQWlCLFVBQVUsUUFDaEUsT0FBTyxDQUFDO0VBR1YsTUFBTSxvQkFBb0IsU0FBMkM7R0FDbkUsSUFBSSxLQUFLLFNBQVMsY0FBYztJQUM5QixNQUFNLFFBQVEsYUFBYSxJQUFpQjtJQUM1QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQztHQUM1QixPQUFPLElBQUksS0FBSyxTQUFTLGlCQUFpQixVQUFVLE1BQ2xELE9BQU8sa0JBQWtCLElBQUk7R0FFL0IsT0FBTyxDQUFDO0VBQ1Y7RUFFQSxPQUFPLENBQUMsR0FBRyxpQkFBaUIsTUFBTSxJQUFJLEdBQUcsR0FBRyxpQkFBaUIsTUFBTSxLQUFLLENBQUM7Q0FDM0U7Q0FFQSxPQUFPLFFBQ0osTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFBLENBQUcsU0FBUyxNQUMxQyxFQUFFLFNBQVMsWUFBWSxFQUFFLFNBQVMsWUFBWSxFQUFFLFNBQVMsV0FDckQsa0JBQWtCLEVBQUUsS0FBSyxJQUN6QixDQUFDLENBQ1AsQ0FDRjtBQUNGOzs7O0FBS0EsU0FBZ0IsY0FBYyxLQUFrQixXQUFxQztDQUNuRixNQUFNLHFCQUFxQixVQUE0QjtFQUNyRCxPQUFPLE1BQ0osS0FBSyxNQUFPLFVBQVUsS0FBSyxVQUFVLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxLQUFLLElBQUssQ0FBQyxDQUNyRSxPQUFPLFdBQVc7Q0FDdkI7Q0FFQSxPQUFPLFFBQ0osTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFBLENBQUcsU0FBUyxNQUMxQyxFQUFFLFNBQVMsWUFBWSxNQUFNLFFBQVEsRUFBRSxJQUFJLElBQUksa0JBQWtCLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FDOUUsQ0FDRjtBQUNGOztZQXZEcUMifQ==
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLXBhcnNlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc3FsLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIEFTVCxcbiAgdHlwZSBDb2x1bW5SZWYsXG4gIHR5cGUgRXhwcixcbiAgdHlwZSBFeHByZXNzaW9uVmFsdWUsXG4gIHR5cGUgRnJvbSxcbiAgdHlwZSBKb2luLFxuICB0eXBlIFNlbGVjdCxcbn0gZnJvbSBcIm5vZGUtc3FsLXBhcnNlclwiO1xuaW1wb3J0IHsgdW5pcXVlIH0gZnJvbSBcInJhZGFzaGlcIjtcblxuaW1wb3J0IHsgaXNPYmplY3RWYWx1ZSwgaXNTdHJpbmdWYWx1ZSB9IGZyb20gXCIuL3J1bnRpbWUtdmFsdWVcIjtcbmltcG9ydCB7IG5vbk51bGxhYmxlIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxudHlwZSBQYXJzZXJDb2x1bW5SZWYgPSBPbWl0PENvbHVtblJlZiwgXCJ0YWJsZVwiPiAmIHtcbiAgdGFibGU/OiBzdHJpbmcgfCB7IHR5cGU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9IHwgbnVsbDtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWJsZU5hbWUoZXhwcjogUGFyc2VyQ29sdW1uUmVmKSB7XG4gIGNvbnN0IHRhYmxlID0gZXhwci50YWJsZTtcbiAgaWYgKGlzU3RyaW5nVmFsdWUodGFibGUpKSB7XG4gICAgcmV0dXJuIHRhYmxlO1xuICB9XG4gIHJldHVybiBpc09iamVjdFZhbHVlKHRhYmxlKSAmJiBcInZhbHVlXCIgaW4gdGFibGUgJiYgaXNTdHJpbmdWYWx1ZSh0YWJsZS52YWx1ZSlcbiAgICA/IHRhYmxlLnZhbHVlXG4gICAgOiBudWxsO1xufVxuXG4vLyB3aGVyZSDsobDqsbTsl5Ag7IKs7Jqp65CcIO2FjOydtOu4lOuqheydhCDstpTstpxcbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWJsZU5hbWVzRnJvbVdoZXJlKGFzdDogQVNUIHwgQVNUW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGV4dHJhY3RUYWJsZU5hbWVzID0gKHdoZXJlOiBTZWxlY3RbXCJ3aGVyZVwiXSk6IHN0cmluZ1tdID0+IHtcbiAgICBpZiAod2hlcmUgPT09IG51bGwgfHwgISh3aGVyZS50eXBlID09PSBcImJpbmFyeV9leHByXCIgJiYgXCJsZWZ0XCIgaW4gd2hlcmUpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZXh0cmFjdFRhYmxlTmFtZSA9IChleHByOiBFeHByIHwgRXhwcmVzc2lvblZhbHVlKTogc3RyaW5nW10gPT4ge1xuICAgICAgaWYgKGV4cHIudHlwZSA9PT0gXCJjb2x1bW5fcmVmXCIpIHtcbiAgICAgICAgLy8gU0FGRVRZOiDshKDtlokg67aE6riw7JmAIO2VqOyImCDqs4Tslb3snbQg7J20IO2DgOyeheydhCDrs7TsnqXtlanri4jri6QuXG4gICAgICAgIGNvbnN0IHRhYmxlID0gZ2V0VGFibGVOYW1lKGV4cHIgYXMgQ29sdW1uUmVmKTtcbiAgICAgICAgcmV0dXJuIHRhYmxlID8gW3RhYmxlXSA6IFtdO1xuICAgICAgfSBlbHNlIGlmIChleHByLnR5cGUgPT09IFwiYmluYXJ5X2V4cHJcIiAmJiBcImxlZnRcIiBpbiBleHByKSB7XG4gICAgICAgIHJldHVybiBleHRyYWN0VGFibGVOYW1lcyhleHByKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFsuLi5leHRyYWN0VGFibGVOYW1lKHdoZXJlLmxlZnQpLCAuLi5leHRyYWN0VGFibGVOYW1lKHdoZXJlLnJpZ2h0KV07XG4gIH07XG5cbiAgcmV0dXJuIHVuaXF1ZShcbiAgICAoQXJyYXkuaXNBcnJheShhc3QpID8gYXN0IDogW2FzdF0pLmZsYXRNYXAoKGEpID0+XG4gICAgICBhLnR5cGUgPT09IFwic2VsZWN0XCIgfHwgYS50eXBlID09PSBcInVwZGF0ZVwiIHx8IGEudHlwZSA9PT0gXCJkZWxldGVcIlxuICAgICAgICA/IGV4dHJhY3RUYWJsZU5hbWVzKGEud2hlcmUpXG4gICAgICAgIDogW10sXG4gICAgKSxcbiAgKTtcbn1cblxuLyoqXG4gKiDso7zsnZg6IHRhYmxl66qF7J20IOyVhOuLjCBhbGlhc+ulvCDrsJjtmZjtlahcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEpvaW5UYWJsZXMoYXN0OiBBU1QgfCBBU1RbXSwgam9pblR5cGVzOiBKb2luW1wiam9pblwiXVtdKTogc3RyaW5nW10ge1xuICBjb25zdCBleHRyYWN0Sm9pblRhYmxlcyA9IChmcm9tczogRnJvbVtdKTogc3RyaW5nW10gPT4ge1xuICAgIHJldHVybiBmcm9tc1xuICAgICAgLm1hcCgoZikgPT4gKFwiam9pblwiIGluIGYgJiYgam9pblR5cGVzLmluY2x1ZGVzKGYuam9pbikgPyBmLmFzIDogbnVsbCkpXG4gICAgICAuZmlsdGVyKG5vbk51bGxhYmxlKTtcbiAgfTtcblxuICByZXR1cm4gdW5pcXVlKFxuICAgIChBcnJheS5pc0FycmF5KGFzdCkgPyBhc3QgOiBbYXN0XSkuZmxhdE1hcCgoYSkgPT5cbiAgICAgIGEudHlwZSA9PT0gXCJzZWxlY3RcIiAmJiBBcnJheS5pc0FycmF5KGEuZnJvbSkgPyBleHRyYWN0Sm9pblRhYmxlcyhhLmZyb20pIDogW10sXG4gICAgKSxcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFrQkEsU0FBZ0IsYUFBYSxNQUF1QjtDQUNsRCxNQUFNLFFBQVEsS0FBSztDQUNuQixJQUFJLGNBQWMsS0FBSyxHQUNyQixPQUFPO0NBRVQsT0FBTyxjQUFjLEtBQUssS0FBSyxXQUFXLFNBQVMsY0FBYyxNQUFNLEtBQUssSUFDeEUsTUFBTSxRQUNOO0FBQ047QUFHQSxTQUFnQix1QkFBdUIsS0FBNEI7Q0FDakUsTUFBTSxxQkFBcUIsVUFBcUM7RUFDOUQsSUFBSSxVQUFVLFFBQVEsRUFBRSxNQUFNLFNBQVMsaUJBQWlCLFVBQVUsUUFDaEUsT0FBTyxDQUFDO0VBR1YsTUFBTSxvQkFBb0IsU0FBMkM7R0FDbkUsSUFBSSxLQUFLLFNBQVMsY0FBYztJQUU5QixNQUFNLFFBQVEsYUFBYSxJQUFpQjtJQUM1QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQztHQUM1QixPQUFPLElBQUksS0FBSyxTQUFTLGlCQUFpQixVQUFVLE1BQ2xELE9BQU8sa0JBQWtCLElBQUk7R0FFL0IsT0FBTyxDQUFDO0VBQ1Y7RUFFQSxPQUFPLENBQUMsR0FBRyxpQkFBaUIsTUFBTSxJQUFJLEdBQUcsR0FBRyxpQkFBaUIsTUFBTSxLQUFLLENBQUM7Q0FDM0U7Q0FFQSxPQUFPLFFBQ0osTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFBLENBQUcsU0FBUyxNQUMxQyxFQUFFLFNBQVMsWUFBWSxFQUFFLFNBQVMsWUFBWSxFQUFFLFNBQVMsV0FDckQsa0JBQWtCLEVBQUUsS0FBSyxJQUN6QixDQUFDLENBQ1AsQ0FDRjtBQUNGOzs7O0FBS0EsU0FBZ0IsY0FBYyxLQUFrQixXQUFxQztDQUNuRixNQUFNLHFCQUFxQixVQUE0QjtFQUNyRCxPQUFPLE1BQ0osS0FBSyxNQUFPLFVBQVUsS0FBSyxVQUFVLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxLQUFLLElBQUssQ0FBQyxDQUNyRSxPQUFPLFdBQVc7Q0FDdkI7Q0FFQSxPQUFPLFFBQ0osTUFBTSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFBLENBQUcsU0FBUyxNQUMxQyxFQUFFLFNBQVMsWUFBWSxNQUFNLFFBQVEsRUFBRSxJQUFJLElBQUksa0JBQWtCLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FDOUUsQ0FDRjtBQUNGOztvQkE5RDhEO1lBQ3pCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../src/utils/type-utils.ts"],"names":[],"mappings":"AACA,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,KAAK,CAAC;AAGtE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACjE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAElB,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,GAClC,CAAC,SAAS,MAAM,CAAC,GAEf,MAAM,CAAC;KACJ,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GACtB,CAAC,CAAC,GAAG,CAAC;CACX,CAAC,GAEF,MAAM,CAAC,CAAC,GAAG;KAAG,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;CAAE,CAAC,GAElD,CAAC,SAAS,MAAM,CAAC,GAEf,MAAM,CAAC;KAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CAAE,CAAC,GAExD,MAAM,CAAC,CAAC,GAAG;KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;CAAE,CAAC,CAAC;AAEtC,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,EAC5D,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAmClB;AAED,UAAU,YAAY,CAAC,CAAC;IAEtB,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAG5E,KAAK,IAAI,CAAC,CAAC;CACZ;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQnE"}
1
+ {"version":3,"file":"type-utils.d.ts","sourceRoot":"","sources":["../../src/utils/type-utils.ts"],"names":[],"mappings":"AAEA,KAAK,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GAAG,KAAK,CAAC;AAGtE,KAAK,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GACjE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAElB,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,GAClC,CAAC,SAAS,MAAM,CAAC,GAEf,MAAM,CAAC;KACJ,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GACtB,CAAC,CAAC,GAAG,CAAC;CACX,CAAC,GAEF,MAAM,CAAC,CAAC,GAAG;KAAG,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;CAAE,CAAC,GAElD,CAAC,SAAS,MAAM,CAAC,GAEf,MAAM,CAAC;KAAG,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;CAAE,CAAC,GAExD,MAAM,CAAC,CAAC,GAAG;KAAG,GAAG,IAAI,CAAC,GAAG,CAAC;CAAE,CAAC,CAAC;AAEtC,wBAAgB,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,EAC5D,GAAG,EAAE,CAAC,EACN,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAoClB;AAED,UAAU,YAAY,CAAC,CAAC;IAEtB,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAG5E,KAAK,IAAI,CAAC,CAAC;CACZ;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQnE"}