sonamu 0.8.26 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (684) hide show
  1. package/bin/cli.js +60 -13
  2. package/dist/_virtual/rolldown_runtime.js +39 -0
  3. package/dist/ai/agents/agent.d.ts +3 -3
  4. package/dist/ai/agents/agent.d.ts.map +1 -1
  5. package/dist/ai/agents/agent.js +76 -73
  6. package/dist/ai/agents/index.js +3 -3
  7. package/dist/ai/agents/types.d.ts +3 -3
  8. package/dist/ai/agents/types.d.ts.map +1 -1
  9. package/dist/ai/agents/types.js +1 -3
  10. package/dist/ai/index.js +3 -2
  11. package/dist/ai/providers/rtzr/api.js +25 -25
  12. package/dist/ai/providers/rtzr/error.js +25 -26
  13. package/dist/ai/providers/rtzr/index.js +5 -5
  14. package/dist/ai/providers/rtzr/model.d.ts +1 -1
  15. package/dist/ai/providers/rtzr/model.d.ts.map +1 -1
  16. package/dist/ai/providers/rtzr/model.js +117 -133
  17. package/dist/ai/providers/rtzr/options.d.ts.map +1 -1
  18. package/dist/ai/providers/rtzr/options.js +35 -41
  19. package/dist/ai/providers/rtzr/provider.d.ts +1 -1
  20. package/dist/ai/providers/rtzr/provider.d.ts.map +1 -1
  21. package/dist/ai/providers/rtzr/provider.js +53 -51
  22. package/dist/ai/providers/rtzr/utils.d.ts.map +1 -1
  23. package/dist/ai/providers/rtzr/utils.js +84 -84
  24. package/dist/api/base-frame.d.ts +2 -2
  25. package/dist/api/base-frame.d.ts.map +1 -1
  26. package/dist/api/base-frame.js +29 -19
  27. package/dist/api/caster.d.ts +1 -1
  28. package/dist/api/caster.d.ts.map +1 -1
  29. package/dist/api/caster.js +51 -61
  30. package/dist/api/code-converters.d.ts +4 -3
  31. package/dist/api/code-converters.d.ts.map +1 -1
  32. package/dist/api/code-converters.js +226 -249
  33. package/dist/api/config.d.ts +17 -17
  34. package/dist/api/config.d.ts.map +1 -1
  35. package/dist/api/config.js +37 -30
  36. package/dist/api/context.d.ts +10 -10
  37. package/dist/api/context.d.ts.map +1 -1
  38. package/dist/api/context.js +8 -2
  39. package/dist/api/decorators.d.ts +8 -8
  40. package/dist/api/decorators.d.ts.map +1 -1
  41. package/dist/api/decorators.js +245 -268
  42. package/dist/api/index.js +39 -7
  43. package/dist/api/secret.js +22 -15
  44. package/dist/api/sonamu.d.ts +15 -15
  45. package/dist/api/sonamu.d.ts.map +1 -1
  46. package/dist/api/sonamu.js +1012 -1131
  47. package/dist/api/validator.js +88 -79
  48. package/dist/auth/auth-generator.d.ts.map +1 -1
  49. package/dist/auth/auth-generator.js +203 -200
  50. package/dist/auth/better-auth-entities.d.ts +2 -2
  51. package/dist/auth/better-auth-entities.d.ts.map +1 -1
  52. package/dist/auth/better-auth-entities.js +369 -429
  53. package/dist/auth/index.js +21 -6
  54. package/dist/auth/knex-adapter.d.ts +2 -2
  55. package/dist/auth/knex-adapter.d.ts.map +1 -1
  56. package/dist/auth/knex-adapter.js +153 -157
  57. package/dist/auth/plugins/entity-definitions/admin.d.ts +1 -1
  58. package/dist/auth/plugins/entity-definitions/admin.d.ts.map +1 -1
  59. package/dist/auth/plugins/entity-definitions/admin.js +58 -56
  60. package/dist/auth/plugins/entity-definitions/anonymous.d.ts +1 -1
  61. package/dist/auth/plugins/entity-definitions/anonymous.d.ts.map +1 -1
  62. package/dist/auth/plugins/entity-definitions/anonymous.js +20 -20
  63. package/dist/auth/plugins/entity-definitions/api-key.d.ts +1 -1
  64. package/dist/auth/plugins/entity-definitions/api-key.d.ts.map +1 -1
  65. package/dist/auth/plugins/entity-definitions/api-key.js +185 -196
  66. package/dist/auth/plugins/entity-definitions/index.d.ts +1 -1
  67. package/dist/auth/plugins/entity-definitions/index.d.ts.map +1 -1
  68. package/dist/auth/plugins/entity-definitions/index.js +26 -29
  69. package/dist/auth/plugins/entity-definitions/jwt.d.ts +1 -1
  70. package/dist/auth/plugins/entity-definitions/jwt.d.ts.map +1 -1
  71. package/dist/auth/plugins/entity-definitions/jwt.js +62 -64
  72. package/dist/auth/plugins/entity-definitions/organization.d.ts +1 -1
  73. package/dist/auth/plugins/entity-definitions/organization.d.ts.map +1 -1
  74. package/dist/auth/plugins/entity-definitions/organization.js +362 -421
  75. package/dist/auth/plugins/entity-definitions/passkey.d.ts +1 -1
  76. package/dist/auth/plugins/entity-definitions/passkey.d.ts.map +1 -1
  77. package/dist/auth/plugins/entity-definitions/passkey.js +115 -126
  78. package/dist/auth/plugins/entity-definitions/phone-number.d.ts +1 -1
  79. package/dist/auth/plugins/entity-definitions/phone-number.d.ts.map +1 -1
  80. package/dist/auth/plugins/entity-definitions/phone-number.js +31 -40
  81. package/dist/auth/plugins/entity-definitions/sso.d.ts +1 -1
  82. package/dist/auth/plugins/entity-definitions/sso.d.ts.map +1 -1
  83. package/dist/auth/plugins/entity-definitions/sso.js +94 -107
  84. package/dist/auth/plugins/entity-definitions/two-factor.d.ts +1 -1
  85. package/dist/auth/plugins/entity-definitions/two-factor.d.ts.map +1 -1
  86. package/dist/auth/plugins/entity-definitions/two-factor.js +78 -92
  87. package/dist/auth/plugins/entity-definitions/types.d.ts +1 -1
  88. package/dist/auth/plugins/entity-definitions/types.d.ts.map +1 -1
  89. package/dist/auth/plugins/entity-definitions/types.js +1 -10
  90. package/dist/auth/plugins/entity-definitions/username.d.ts +1 -1
  91. package/dist/auth/plugins/entity-definitions/username.d.ts.map +1 -1
  92. package/dist/auth/plugins/entity-definitions/username.js +31 -40
  93. package/dist/auth/plugins/index.js +12 -3
  94. package/dist/auth/plugins/wrappers/admin.d.ts +2 -2
  95. package/dist/auth/plugins/wrappers/admin.d.ts.map +1 -1
  96. package/dist/auth/plugins/wrappers/admin.js +28 -29
  97. package/dist/auth/plugins/wrappers/anonymous.d.ts +2 -1
  98. package/dist/auth/plugins/wrappers/anonymous.d.ts.map +1 -1
  99. package/dist/auth/plugins/wrappers/anonymous.js +23 -22
  100. package/dist/auth/plugins/wrappers/api-key.d.ts +2 -1
  101. package/dist/auth/plugins/wrappers/api-key.d.ts.map +1 -1
  102. package/dist/auth/plugins/wrappers/api-key.js +39 -34
  103. package/dist/auth/plugins/wrappers/index.js +11 -11
  104. package/dist/auth/plugins/wrappers/jwt.d.ts +2 -1
  105. package/dist/auth/plugins/wrappers/jwt.d.ts.map +1 -1
  106. package/dist/auth/plugins/wrappers/jwt.js +31 -26
  107. package/dist/auth/plugins/wrappers/organization.d.ts +2 -1
  108. package/dist/auth/plugins/wrappers/organization.d.ts.map +1 -1
  109. package/dist/auth/plugins/wrappers/organization.js +65 -62
  110. package/dist/auth/plugins/wrappers/passkey.d.ts +2 -1
  111. package/dist/auth/plugins/wrappers/passkey.d.ts.map +1 -1
  112. package/dist/auth/plugins/wrappers/passkey.js +33 -28
  113. package/dist/auth/plugins/wrappers/phone-number.d.ts.map +1 -1
  114. package/dist/auth/plugins/wrappers/phone-number.js +26 -23
  115. package/dist/auth/plugins/wrappers/sso.d.ts.map +1 -1
  116. package/dist/auth/plugins/wrappers/sso.js +37 -31
  117. package/dist/auth/plugins/wrappers/two-factor.d.ts.map +1 -1
  118. package/dist/auth/plugins/wrappers/two-factor.js +31 -28
  119. package/dist/auth/plugins/wrappers/username.d.ts.map +1 -1
  120. package/dist/auth/plugins/wrappers/username.js +23 -23
  121. package/dist/bin/build-config.js +31 -31
  122. package/dist/bin/cli.js +1063 -1204
  123. package/dist/bin/fixture.d.ts.map +1 -1
  124. package/dist/bin/fixture.js +266 -259
  125. package/dist/bin/hmr-hook-register.d.ts.map +1 -1
  126. package/dist/bin/hmr-hook-register.js +19 -18
  127. package/dist/bin/test-command.d.ts.map +1 -1
  128. package/dist/bin/test-command.js +180 -177
  129. package/dist/bin/ts-loader-register.js +13 -6
  130. package/dist/bin/ts-loader-registration.d.ts.map +1 -1
  131. package/dist/bin/ts-loader-registration.js +28 -38
  132. package/dist/cache/cache-manager.d.ts +1 -1
  133. package/dist/cache/cache-manager.d.ts.map +1 -1
  134. package/dist/cache/cache-manager.js +20 -15
  135. package/dist/cache/decorator.d.ts +1 -1
  136. package/dist/cache/decorator.d.ts.map +1 -1
  137. package/dist/cache/decorator.js +84 -76
  138. package/dist/cache/drivers.js +21 -34
  139. package/dist/cache/index.js +10 -7
  140. package/dist/cache/types.d.ts +2 -2
  141. package/dist/cache/types.d.ts.map +1 -1
  142. package/dist/cache/types.js +1 -6
  143. package/dist/cache-control/cache-control.d.ts +2 -2
  144. package/dist/cache-control/cache-control.d.ts.map +1 -1
  145. package/dist/cache-control/cache-control.js +106 -122
  146. package/dist/cache-control/types.d.ts +2 -2
  147. package/dist/cache-control/types.d.ts.map +1 -1
  148. package/dist/cache-control/types.js +1 -19
  149. package/dist/compress/compress.d.ts +1 -1
  150. package/dist/compress/compress.d.ts.map +1 -1
  151. package/dist/compress/compress.js +58 -56
  152. package/dist/compress/index.js +7 -2
  153. package/dist/compress/types.js +1 -11
  154. package/dist/cone/cone-generator.d.ts +1 -1
  155. package/dist/cone/cone-generator.d.ts.map +1 -1
  156. package/dist/cone/cone-generator.js +216 -219
  157. package/dist/database/_batch_update.d.ts +1 -1
  158. package/dist/database/_batch_update.d.ts.map +1 -1
  159. package/dist/database/_batch_update.js +107 -102
  160. package/dist/database/base-model.d.ts +8 -9
  161. package/dist/database/base-model.d.ts.map +1 -1
  162. package/dist/database/base-model.js +371 -392
  163. package/dist/database/base-model.types.d.ts +5 -5
  164. package/dist/database/base-model.types.d.ts.map +1 -1
  165. package/dist/database/base-model.types.js +1 -20
  166. package/dist/database/db.d.ts +5 -2
  167. package/dist/database/db.d.ts.map +1 -1
  168. package/dist/database/db.js +185 -171
  169. package/dist/database/knex.d.ts +1 -1
  170. package/dist/database/knex.d.ts.map +1 -1
  171. package/dist/database/knex.js +48 -42
  172. package/dist/database/puri-subset.types.d.ts +6 -7
  173. package/dist/database/puri-subset.types.d.ts.map +1 -1
  174. package/dist/database/puri-subset.types.js +1 -16
  175. package/dist/database/puri-wrapper.d.ts +6 -6
  176. package/dist/database/puri-wrapper.d.ts.map +1 -1
  177. package/dist/database/puri-wrapper.js +99 -101
  178. package/dist/database/puri.d.ts +4 -5
  179. package/dist/database/puri.d.ts.map +1 -1
  180. package/dist/database/puri.js +1021 -1227
  181. package/dist/database/puri.types.d.ts +6 -6
  182. package/dist/database/puri.types.d.ts.map +1 -1
  183. package/dist/database/puri.types.js +15 -6
  184. package/dist/database/transaction-context.d.ts +2 -2
  185. package/dist/database/transaction-context.d.ts.map +1 -1
  186. package/dist/database/transaction-context.js +22 -13
  187. package/dist/database/upsert-builder.d.ts +3 -3
  188. package/dist/database/upsert-builder.d.ts.map +1 -1
  189. package/dist/database/upsert-builder.js +405 -465
  190. package/dist/dict/en.js +72 -74
  191. package/dist/dict/index.js +13 -13
  192. package/dist/dict/ko.js +72 -74
  193. package/dist/dict/rc-keys.js +150 -168
  194. package/dist/dict/sd.d.ts +3 -1
  195. package/dist/dict/sd.d.ts.map +1 -1
  196. package/dist/dict/sd.js +54 -40
  197. package/dist/dict/sonamu-dictionary.d.ts +1 -1
  198. package/dist/dict/sonamu-dictionary.d.ts.map +1 -1
  199. package/dist/dict/sonamu-dictionary.js +887 -955
  200. package/dist/dict/types.js +1 -7
  201. package/dist/dict/utils.js +26 -24
  202. package/dist/entity/entity-manager.d.ts +9 -9
  203. package/dist/entity/entity-manager.d.ts.map +1 -1
  204. package/dist/entity/entity-manager.js +226 -223
  205. package/dist/entity/entity-template-cone.d.ts +1 -1
  206. package/dist/entity/entity-template-cone.d.ts.map +1 -1
  207. package/dist/entity/entity-template-cone.js +152 -151
  208. package/dist/entity/entity.d.ts.map +1 -1
  209. package/dist/entity/entity.js +952 -1089
  210. package/dist/exceptions/error-handler.d.ts +1 -1
  211. package/dist/exceptions/error-handler.d.ts.map +1 -1
  212. package/dist/exceptions/error-handler.js +32 -27
  213. package/dist/exceptions/so-exceptions.d.ts +1 -1
  214. package/dist/exceptions/so-exceptions.d.ts.map +1 -1
  215. package/dist/exceptions/so-exceptions.js +61 -68
  216. package/dist/filter/index.js +9 -3
  217. package/dist/filter/types.js +92 -88
  218. package/dist/filter/utils.d.ts +1 -1
  219. package/dist/filter/utils.d.ts.map +1 -1
  220. package/dist/filter/utils.js +147 -161
  221. package/dist/index.js +87 -40
  222. package/dist/logger/category.d.ts.map +1 -1
  223. package/dist/logger/category.js +30 -29
  224. package/dist/logger/configure.d.ts.map +1 -1
  225. package/dist/logger/configure.js +83 -107
  226. package/dist/migration/code-generation.d.ts +2 -2
  227. package/dist/migration/code-generation.d.ts.map +1 -1
  228. package/dist/migration/code-generation.js +1385 -1578
  229. package/dist/migration/migration-set.d.ts +1 -1
  230. package/dist/migration/migration-set.d.ts.map +1 -1
  231. package/dist/migration/migration-set.js +177 -227
  232. package/dist/migration/migrator.d.ts +4 -3
  233. package/dist/migration/migrator.d.ts.map +1 -1
  234. package/dist/migration/migrator.js +340 -345
  235. package/dist/migration/postgresql-schema-reader.d.ts +2 -2
  236. package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
  237. package/dist/migration/postgresql-schema-reader.js +506 -564
  238. package/dist/migration/slack-confirm.d.ts +2 -2
  239. package/dist/migration/slack-confirm.d.ts.map +1 -1
  240. package/dist/migration/slack-confirm.js +205 -193
  241. package/dist/migration/types.d.ts +2 -2
  242. package/dist/migration/types.d.ts.map +1 -1
  243. package/dist/migration/types.js +1 -3
  244. package/dist/naite/messaging-types.d.ts +1 -0
  245. package/dist/naite/messaging-types.d.ts.map +1 -1
  246. package/dist/naite/messaging-types.js +1 -7
  247. package/dist/naite/naite-reporter.d.ts +2 -2
  248. package/dist/naite/naite-reporter.d.ts.map +1 -1
  249. package/dist/naite/naite-reporter.js +127 -120
  250. package/dist/naite/naite.d.ts +3 -2
  251. package/dist/naite/naite.d.ts.map +1 -1
  252. package/dist/naite/naite.js +266 -300
  253. package/dist/ssr/index.d.ts +2 -2
  254. package/dist/ssr/index.d.ts.map +1 -1
  255. package/dist/ssr/index.js +13 -3
  256. package/dist/ssr/registry.d.ts +1 -1
  257. package/dist/ssr/registry.d.ts.map +1 -1
  258. package/dist/ssr/registry.js +45 -37
  259. package/dist/ssr/renderer.d.ts +4 -4
  260. package/dist/ssr/renderer.d.ts.map +1 -1
  261. package/dist/ssr/renderer.js +84 -91
  262. package/dist/ssr/types.d.ts +2 -2
  263. package/dist/ssr/types.d.ts.map +1 -1
  264. package/dist/ssr/types.js +1 -3
  265. package/dist/storage/base-file.js +54 -41
  266. package/dist/storage/buffered-file.d.ts +2 -2
  267. package/dist/storage/buffered-file.d.ts.map +1 -1
  268. package/dist/storage/buffered-file.js +51 -44
  269. package/dist/storage/drivers.d.ts +2 -2
  270. package/dist/storage/drivers.d.ts.map +1 -1
  271. package/dist/storage/drivers.js +12 -7
  272. package/dist/storage/index.js +14 -7
  273. package/dist/storage/s3-driver.d.ts +2 -2
  274. package/dist/storage/s3-driver.d.ts.map +1 -1
  275. package/dist/storage/s3-driver.js +52 -48
  276. package/dist/storage/storage-manager.d.ts +2 -2
  277. package/dist/storage/storage-manager.d.ts.map +1 -1
  278. package/dist/storage/storage-manager.js +33 -25
  279. package/dist/storage/types.d.ts +2 -2
  280. package/dist/storage/types.d.ts.map +1 -1
  281. package/dist/storage/types.js +1 -5
  282. package/dist/storage/uploaded-file.d.ts +1 -1
  283. package/dist/storage/uploaded-file.d.ts.map +1 -1
  284. package/dist/storage/uploaded-file.js +45 -35
  285. package/dist/stream/index.js +7 -2
  286. package/dist/stream/sse.d.ts +2 -2
  287. package/dist/stream/sse.d.ts.map +1 -1
  288. package/dist/stream/sse.js +72 -67
  289. package/dist/syncer/api-parser.d.ts +1 -1
  290. package/dist/syncer/api-parser.d.ts.map +1 -1
  291. package/dist/syncer/api-parser.js +224 -245
  292. package/dist/syncer/checksum.d.ts +1 -1
  293. package/dist/syncer/checksum.d.ts.map +1 -1
  294. package/dist/syncer/checksum.js +86 -72
  295. package/dist/syncer/code-generator.d.ts +2 -2
  296. package/dist/syncer/code-generator.d.ts.map +1 -1
  297. package/dist/syncer/code-generator.js +154 -160
  298. package/dist/syncer/entity-operations.d.ts +1 -1
  299. package/dist/syncer/entity-operations.d.ts.map +1 -1
  300. package/dist/syncer/entity-operations.js +63 -54
  301. package/dist/syncer/file-patterns.d.ts +1 -1
  302. package/dist/syncer/file-patterns.d.ts.map +1 -1
  303. package/dist/syncer/file-patterns.js +38 -38
  304. package/dist/syncer/index.js +19 -8
  305. package/dist/syncer/module-loader.d.ts +5 -5
  306. package/dist/syncer/module-loader.d.ts.map +1 -1
  307. package/dist/syncer/module-loader.js +83 -78
  308. package/dist/syncer/syncer-actions.d.ts +2 -2
  309. package/dist/syncer/syncer-actions.d.ts.map +1 -1
  310. package/dist/syncer/syncer-actions.js +76 -91
  311. package/dist/syncer/syncer.d.ts +7 -6
  312. package/dist/syncer/syncer.d.ts.map +1 -1
  313. package/dist/syncer/syncer.js +426 -492
  314. package/dist/tasks/decorator.d.ts +3 -3
  315. package/dist/tasks/decorator.d.ts.map +1 -1
  316. package/dist/tasks/decorator.js +32 -28
  317. package/dist/tasks/step-wrapper.d.ts +1 -1
  318. package/dist/tasks/step-wrapper.d.ts.map +1 -1
  319. package/dist/tasks/step-wrapper.js +42 -41
  320. package/dist/tasks/workflow-manager.d.ts +2 -2
  321. package/dist/tasks/workflow-manager.d.ts.map +1 -1
  322. package/dist/tasks/workflow-manager.js +192 -221
  323. package/dist/template/entity-converter.d.ts +1 -1
  324. package/dist/template/entity-converter.d.ts.map +1 -1
  325. package/dist/template/entity-converter.js +103 -103
  326. package/dist/template/helpers.d.ts.map +1 -1
  327. package/dist/template/helpers.js +163 -163
  328. package/dist/template/implementations/entity.template.d.ts +1 -1
  329. package/dist/template/implementations/entity.template.d.ts.map +1 -1
  330. package/dist/template/implementations/entity.template.js +76 -85
  331. package/dist/template/implementations/entry-server.template.d.ts +1 -1
  332. package/dist/template/implementations/entry-server.template.d.ts.map +1 -1
  333. package/dist/template/implementations/entry-server.template.js +32 -27
  334. package/dist/template/implementations/generated.template.d.ts +1 -1
  335. package/dist/template/implementations/generated.template.d.ts.map +1 -1
  336. package/dist/template/implementations/generated.template.js +254 -275
  337. package/dist/template/implementations/generated_http.template.d.ts +2 -2
  338. package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
  339. package/dist/template/implementations/generated_http.template.js +114 -133
  340. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
  341. package/dist/template/implementations/generated_sso.template.js +249 -275
  342. package/dist/template/implementations/init_types.template.d.ts +1 -1
  343. package/dist/template/implementations/init_types.template.d.ts.map +1 -1
  344. package/dist/template/implementations/init_types.template.js +40 -34
  345. package/dist/template/implementations/model.template.d.ts +1 -1
  346. package/dist/template/implementations/model.template.d.ts.map +1 -1
  347. package/dist/template/implementations/model.template.js +56 -53
  348. package/dist/template/implementations/model_test.template.d.ts +1 -1
  349. package/dist/template/implementations/model_test.template.d.ts.map +1 -1
  350. package/dist/template/implementations/model_test.template.js +32 -24
  351. package/dist/template/implementations/queries.template.d.ts +1 -1
  352. package/dist/template/implementations/queries.template.d.ts.map +1 -1
  353. package/dist/template/implementations/queries.template.js +84 -89
  354. package/dist/template/implementations/sd.template.d.ts +1 -1
  355. package/dist/template/implementations/sd.template.d.ts.map +1 -1
  356. package/dist/template/implementations/sd.template.js +137 -144
  357. package/dist/template/implementations/services.template.d.ts +1 -1
  358. package/dist/template/implementations/services.template.d.ts.map +1 -1
  359. package/dist/template/implementations/services.template.js +164 -189
  360. package/dist/template/implementations/view_form.template.d.ts +1 -1
  361. package/dist/template/implementations/view_form.template.d.ts.map +1 -1
  362. package/dist/template/implementations/view_form.template.js +258 -285
  363. package/dist/template/implementations/view_id_all_select.template.d.ts +1 -1
  364. package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -1
  365. package/dist/template/implementations/view_id_all_select.template.js +31 -25
  366. package/dist/template/implementations/view_list.template.d.ts +1 -1
  367. package/dist/template/implementations/view_list.template.d.ts.map +1 -1
  368. package/dist/template/implementations/view_list.template.js +304 -355
  369. package/dist/template/implementations/view_search_input.template.d.ts +1 -1
  370. package/dist/template/implementations/view_search_input.template.d.ts.map +1 -1
  371. package/dist/template/implementations/view_search_input.template.js +31 -27
  372. package/dist/template/index.js +21 -7
  373. package/dist/template/template-manager.d.ts +1 -1
  374. package/dist/template/template-manager.d.ts.map +1 -1
  375. package/dist/template/template-manager.js +132 -123
  376. package/dist/template/template-types.js +8 -6
  377. package/dist/template/template.d.ts +2 -2
  378. package/dist/template/template.d.ts.map +1 -1
  379. package/dist/template/template.js +73 -68
  380. package/dist/template/zod-converter.d.ts.map +1 -1
  381. package/dist/template/zod-converter.js +603 -657
  382. package/dist/testing/_relation-graph.d.ts +1 -1
  383. package/dist/testing/_relation-graph.d.ts.map +1 -1
  384. package/dist/testing/_relation-graph.js +93 -88
  385. package/dist/testing/bootstrap.d.ts +22 -13
  386. package/dist/testing/bootstrap.d.ts.map +1 -1
  387. package/dist/testing/bootstrap.js +114 -114
  388. package/dist/testing/data-explorer.d.ts +3 -3
  389. package/dist/testing/data-explorer.d.ts.map +1 -1
  390. package/dist/testing/data-explorer.js +237 -265
  391. package/dist/testing/dev-test-routes.d.ts +2 -2
  392. package/dist/testing/dev-test-routes.d.ts.map +1 -1
  393. package/dist/testing/dev-test-routes.js +258 -249
  394. package/dist/testing/dev-vitest-manager.d.ts +1 -1
  395. package/dist/testing/dev-vitest-manager.d.ts.map +1 -1
  396. package/dist/testing/dev-vitest-manager.js +514 -539
  397. package/dist/testing/faker-mappings.js +422 -420
  398. package/dist/testing/fixture-generator.d.ts +3 -3
  399. package/dist/testing/fixture-generator.d.ts.map +1 -1
  400. package/dist/testing/fixture-generator.js +1216 -1346
  401. package/dist/testing/fixture-loader.js +26 -25
  402. package/dist/testing/fixture-manager.d.ts +3 -3
  403. package/dist/testing/fixture-manager.d.ts.map +1 -1
  404. package/dist/testing/fixture-manager.js +706 -776
  405. package/dist/testing/global-setup.js +53 -49
  406. package/dist/testing/index.js +19 -11
  407. package/dist/testing/naite-vitest-reporter.js +18 -13
  408. package/dist/testing/parallel-db-manager.d.ts +1 -1
  409. package/dist/testing/parallel-db-manager.d.ts.map +1 -1
  410. package/dist/testing/parallel-db-manager.js +63 -78
  411. package/dist/testing/vitest-helpers.d.ts +1 -1
  412. package/dist/testing/vitest-helpers.d.ts.map +1 -1
  413. package/dist/testing/vitest-helpers.js +37 -33
  414. package/dist/types/types.d.ts +28 -28
  415. package/dist/types/types.d.ts.map +1 -1
  416. package/dist/types/types.js +764 -890
  417. package/dist/ui/ai-api.d.ts +1 -1
  418. package/dist/ui/ai-api.d.ts.map +1 -1
  419. package/dist/ui/ai-api.js +52 -42
  420. package/dist/ui/ai-client.d.ts +1 -2
  421. package/dist/ui/ai-client.d.ts.map +1 -1
  422. package/dist/ui/ai-client.js +353 -388
  423. package/dist/ui/api.d.ts +1 -1
  424. package/dist/ui/api.d.ts.map +1 -1
  425. package/dist/ui/api.js +903 -1145
  426. package/dist/ui/cdd-service.d.ts +1 -1
  427. package/dist/ui/cdd-service.d.ts.map +1 -1
  428. package/dist/ui/cdd-service.js +406 -407
  429. package/dist/ui/cdd-types.js +1 -3
  430. package/dist/ui-web/assets/index-C-Zz-wYg.css +1 -0
  431. package/dist/ui-web/assets/index-DejDON8K.js +238 -0
  432. package/dist/ui-web/index.html +3 -3
  433. package/dist/utils/async-utils.js +57 -45
  434. package/dist/utils/console-util.d.ts.map +1 -1
  435. package/dist/utils/console-util.js +104 -87
  436. package/dist/utils/controller.js +26 -19
  437. package/dist/utils/esm-utils.js +49 -38
  438. package/dist/utils/formatter.d.ts +1 -2
  439. package/dist/utils/formatter.d.ts.map +1 -1
  440. package/dist/utils/formatter.js +89 -115
  441. package/dist/utils/fs-utils.d.ts.map +1 -1
  442. package/dist/utils/fs-utils.js +68 -65
  443. package/dist/utils/lodash-able.js +11 -4
  444. package/dist/utils/model.d.ts +1 -1
  445. package/dist/utils/model.d.ts.map +1 -1
  446. package/dist/utils/model.js +21 -19
  447. package/dist/utils/object-utils.js +148 -186
  448. package/dist/utils/path-utils.js +67 -57
  449. package/dist/utils/process-utils.d.ts.map +1 -1
  450. package/dist/utils/process-utils.js +37 -31
  451. package/dist/utils/sql-parser.d.ts +1 -1
  452. package/dist/utils/sql-parser.d.ts.map +1 -1
  453. package/dist/utils/sql-parser.js +40 -40
  454. package/dist/utils/type-utils.js +44 -43
  455. package/dist/utils/utils.d.ts +2 -3
  456. package/dist/utils/utils.d.ts.map +1 -1
  457. package/dist/utils/utils.js +81 -93
  458. package/dist/utils/zod-error.d.ts +1 -1
  459. package/dist/utils/zod-error.d.ts.map +1 -1
  460. package/dist/utils/zod-error.js +24 -17
  461. package/dist/vector/chunking.d.ts +1 -1
  462. package/dist/vector/chunking.d.ts.map +1 -1
  463. package/dist/vector/chunking.js +100 -94
  464. package/dist/vector/config.d.ts +1 -1
  465. package/dist/vector/config.d.ts.map +1 -1
  466. package/dist/vector/config.js +76 -78
  467. package/dist/vector/embedding.d.ts +1 -1
  468. package/dist/vector/embedding.d.ts.map +1 -1
  469. package/dist/vector/embedding.js +128 -125
  470. package/dist/vector/index.js +5 -5
  471. package/dist/vector/types.js +1 -5
  472. package/package.json +31 -36
  473. package/src/ai/agents/agent.ts +12 -5
  474. package/src/ai/agents/types.ts +5 -5
  475. package/src/ai/providers/rtzr/model.ts +8 -10
  476. package/src/ai/providers/rtzr/options.ts +2 -1
  477. package/src/ai/providers/rtzr/provider.ts +5 -3
  478. package/src/ai/providers/rtzr/utils.ts +2 -7
  479. package/src/api/__tests__/config.test.ts +15 -8
  480. package/src/api/base-frame.ts +5 -3
  481. package/src/api/caster.ts +7 -6
  482. package/src/api/code-converters.ts +23 -26
  483. package/src/api/config.ts +23 -17
  484. package/src/api/context.ts +18 -11
  485. package/src/api/decorators.ts +17 -18
  486. package/src/api/sonamu.ts +44 -49
  487. package/src/auth/auth-generator.ts +4 -6
  488. package/src/auth/better-auth-entities.ts +3 -2
  489. package/src/auth/knex-adapter.ts +6 -5
  490. package/src/auth/plugins/entity-definitions/admin.ts +1 -1
  491. package/src/auth/plugins/entity-definitions/anonymous.ts +1 -1
  492. package/src/auth/plugins/entity-definitions/api-key.ts +1 -1
  493. package/src/auth/plugins/entity-definitions/index.ts +1 -1
  494. package/src/auth/plugins/entity-definitions/jwt.ts +1 -1
  495. package/src/auth/plugins/entity-definitions/organization.ts +1 -1
  496. package/src/auth/plugins/entity-definitions/passkey.ts +1 -1
  497. package/src/auth/plugins/entity-definitions/phone-number.ts +1 -1
  498. package/src/auth/plugins/entity-definitions/sso.ts +1 -1
  499. package/src/auth/plugins/entity-definitions/two-factor.ts +1 -1
  500. package/src/auth/plugins/entity-definitions/types.ts +1 -1
  501. package/src/auth/plugins/entity-definitions/username.ts +1 -1
  502. package/src/auth/plugins/wrappers/admin.ts +3 -1
  503. package/src/auth/plugins/wrappers/anonymous.ts +3 -1
  504. package/src/auth/plugins/wrappers/api-key.ts +3 -1
  505. package/src/auth/plugins/wrappers/jwt.ts +3 -1
  506. package/src/auth/plugins/wrappers/organization.ts +3 -1
  507. package/src/auth/plugins/wrappers/passkey.ts +3 -1
  508. package/src/auth/plugins/wrappers/phone-number.ts +3 -1
  509. package/src/auth/plugins/wrappers/sso.ts +2 -1
  510. package/src/auth/plugins/wrappers/two-factor.ts +3 -1
  511. package/src/auth/plugins/wrappers/username.ts +3 -1
  512. package/src/bin/__tests__/ts-loader-register.test.ts +7 -12
  513. package/src/bin/build-config.ts +3 -3
  514. package/src/bin/cli.ts +27 -25
  515. package/src/bin/fixture.ts +4 -2
  516. package/src/bin/hmr-hook-register.ts +1 -0
  517. package/src/bin/test-command.ts +4 -2
  518. package/src/bin/ts-loader-registration.ts +6 -22
  519. package/src/cache/cache-manager.ts +2 -1
  520. package/src/cache/decorator.ts +2 -2
  521. package/src/cache/types.ts +3 -3
  522. package/src/cache-control/cache-control.ts +3 -2
  523. package/src/cache-control/types.ts +2 -2
  524. package/src/compress/compress.ts +1 -1
  525. package/src/cone/cone-generator.ts +5 -3
  526. package/src/database/_batch_update.ts +1 -1
  527. package/src/database/base-model.ts +20 -14
  528. package/src/database/base-model.types.ts +12 -11
  529. package/src/database/db.ts +56 -21
  530. package/src/database/knex.ts +2 -2
  531. package/src/database/puri-subset.test-d.ts +33 -32
  532. package/src/database/puri-subset.types.ts +6 -7
  533. package/src/database/puri-wrapper.ts +29 -26
  534. package/src/database/puri.ts +36 -34
  535. package/src/database/puri.types.test-d.ts +6 -5
  536. package/src/database/puri.types.ts +9 -12
  537. package/src/database/transaction-context.ts +2 -2
  538. package/src/database/upsert-builder.ts +17 -10
  539. package/src/dict/sd.ts +17 -4
  540. package/src/dict/sonamu-dictionary.ts +23 -17
  541. package/src/entity/entity-manager.ts +9 -7
  542. package/src/entity/entity-template-cone.ts +10 -3
  543. package/src/entity/entity.ts +20 -16
  544. package/src/exceptions/error-handler.ts +2 -1
  545. package/src/exceptions/so-exceptions.ts +1 -1
  546. package/src/filter/utils.ts +3 -2
  547. package/src/logger/category.ts +1 -0
  548. package/src/logger/configure.ts +5 -5
  549. package/src/migration/__tests__/code-generation.search-text.test.ts +2 -3
  550. package/src/migration/code-generation.ts +26 -25
  551. package/src/migration/migration-set.ts +16 -18
  552. package/src/migration/migrator.ts +38 -33
  553. package/src/migration/postgresql-schema-reader.ts +12 -12
  554. package/src/migration/slack-confirm.ts +5 -4
  555. package/src/migration/types.ts +2 -2
  556. package/src/naite/messaging-types.ts +1 -1
  557. package/src/naite/naite-reporter.ts +5 -3
  558. package/src/naite/naite.ts +12 -7
  559. package/src/shared/app.shared.ts.txt +2 -2
  560. package/src/shared/web.shared.ts.txt +2 -2
  561. package/src/skills/AGENTS.md +19 -18
  562. package/src/skills/commands/sonamu-skills.md +9 -9
  563. package/src/skills/sonamu/SKILL.md +111 -104
  564. package/src/skills/sonamu/ai-agents.md +27 -26
  565. package/src/skills/sonamu/api.md +81 -69
  566. package/src/skills/sonamu/auth-migration.md +13 -27
  567. package/src/skills/sonamu/auth-plugins.md +41 -31
  568. package/src/skills/sonamu/auth.md +30 -24
  569. package/src/skills/sonamu/cdd.md +26 -17
  570. package/src/skills/sonamu/cone.md +50 -50
  571. package/src/skills/sonamu/config.md +74 -51
  572. package/src/skills/sonamu/create-sonamu.md +31 -19
  573. package/src/skills/sonamu/database.md +43 -26
  574. package/src/skills/sonamu/entity-basic.md +61 -61
  575. package/src/skills/sonamu/entity-relations.md +84 -80
  576. package/src/skills/sonamu/entity-validation-checklist.md +19 -15
  577. package/src/skills/sonamu/fixture-cli.md +52 -30
  578. package/src/skills/sonamu/framework-change.md +9 -7
  579. package/src/skills/sonamu/frontend.md +64 -82
  580. package/src/skills/sonamu/i18n.md +45 -37
  581. package/src/skills/sonamu/migration.md +54 -31
  582. package/src/skills/sonamu/model.md +98 -66
  583. package/src/skills/sonamu/naite.md +34 -32
  584. package/src/skills/sonamu/project-init.md +28 -8
  585. package/src/skills/sonamu/puri.md +82 -91
  586. package/src/skills/sonamu/scaffolding.md +44 -32
  587. package/src/skills/sonamu/skill-contribution.md +50 -45
  588. package/src/skills/sonamu/subset.md +13 -13
  589. package/src/skills/sonamu/tasks.md +73 -58
  590. package/src/skills/sonamu/testing-devrunner.md +56 -36
  591. package/src/skills/sonamu/testing.md +23 -58
  592. package/src/skills/sonamu/upsert.md +32 -31
  593. package/src/skills/sonamu/vector.md +37 -36
  594. package/src/ssr/index.ts +2 -12
  595. package/src/ssr/registry.ts +1 -1
  596. package/src/ssr/renderer.ts +7 -5
  597. package/src/ssr/types.ts +2 -2
  598. package/src/storage/buffered-file.ts +4 -2
  599. package/src/storage/drivers.ts +3 -2
  600. package/src/storage/s3-driver.ts +7 -4
  601. package/src/storage/storage-manager.ts +3 -2
  602. package/src/storage/types.ts +3 -2
  603. package/src/storage/uploaded-file.ts +1 -1
  604. package/src/stream/sse.ts +2 -2
  605. package/src/syncer/api-parser.ts +8 -5
  606. package/src/syncer/checksum.ts +9 -5
  607. package/src/syncer/code-generator.ts +16 -8
  608. package/src/syncer/entity-operations.ts +5 -3
  609. package/src/syncer/file-patterns.ts +2 -1
  610. package/src/syncer/module-loader.ts +9 -6
  611. package/src/syncer/syncer-actions.ts +5 -3
  612. package/src/syncer/syncer.ts +18 -24
  613. package/src/tasks/decorator.ts +10 -8
  614. package/src/tasks/step-wrapper.ts +1 -1
  615. package/src/tasks/workflow-manager.ts +18 -15
  616. package/src/template/__tests__/generated.template.search-text.test.ts +1 -0
  617. package/src/template/entity-converter.ts +4 -2
  618. package/src/template/generated.template.test-d.ts +2 -1
  619. package/src/template/helpers.ts +5 -2
  620. package/src/template/implementations/entity.template.ts +9 -8
  621. package/src/template/implementations/entry-server.template.ts +1 -1
  622. package/src/template/implementations/generated.template.ts +21 -29
  623. package/src/template/implementations/generated_http.template.ts +9 -6
  624. package/src/template/implementations/generated_sso.template.ts +6 -4
  625. package/src/template/implementations/init_types.template.ts +3 -2
  626. package/src/template/implementations/model.template.ts +4 -2
  627. package/src/template/implementations/model_test.template.ts +3 -2
  628. package/src/template/implementations/queries.template.ts +6 -14
  629. package/src/template/implementations/sd.template.ts +4 -2
  630. package/src/template/implementations/services.template.ts +7 -11
  631. package/src/template/implementations/view_form.template.ts +5 -3
  632. package/src/template/implementations/view_id_all_select.template.ts +3 -2
  633. package/src/template/implementations/view_list.template.ts +7 -5
  634. package/src/template/implementations/view_search_input.template.ts +3 -2
  635. package/src/template/template-manager.ts +4 -3
  636. package/src/template/template.ts +4 -3
  637. package/src/template/zod-converter.ts +10 -7
  638. package/src/testing/__tests__/dev-test-routes.test.ts +3 -2
  639. package/src/testing/__tests__/dev-vitest-manager.test.ts +1 -0
  640. package/src/testing/_relation-graph.ts +2 -2
  641. package/src/testing/bootstrap.ts +55 -27
  642. package/src/testing/data-explorer.ts +5 -4
  643. package/src/testing/dev-test-routes.ts +8 -5
  644. package/src/testing/dev-vitest-manager.ts +13 -12
  645. package/src/testing/fixture-generator.ts +11 -17
  646. package/src/testing/fixture-manager.ts +21 -17
  647. package/src/testing/parallel-db-manager.ts +2 -1
  648. package/src/testing/vitest-helpers.ts +2 -1
  649. package/src/types/__tests__/entity-json-schema-search-text.test.ts +1 -0
  650. package/src/types/types.ts +8 -8
  651. package/src/typings/knex.d.ts +4 -4
  652. package/src/ui/ai-api.ts +5 -3
  653. package/src/ui/ai-client.ts +6 -5
  654. package/src/ui/api.ts +25 -23
  655. package/src/ui/cdd-service.ts +12 -11
  656. package/src/utils/console-util.ts +3 -1
  657. package/src/utils/formatter.ts +94 -102
  658. package/src/utils/fs-utils.ts +2 -1
  659. package/src/utils/model.ts +2 -2
  660. package/src/utils/object-utils.ts +3 -3
  661. package/src/utils/process-utils.ts +2 -1
  662. package/src/utils/sql-parser.ts +10 -1
  663. package/src/utils/type-utils.ts +3 -3
  664. package/src/utils/utils.ts +9 -7
  665. package/src/utils/zod-error.ts +1 -1
  666. package/src/vector/chunking.ts +1 -1
  667. package/src/vector/config.ts +1 -1
  668. package/src/vector/embedding.ts +11 -9
  669. package/tsdown.api.config.ts +50 -0
  670. package/.swcrc.project-default +0 -18
  671. package/dist/api/__tests__/config.test.js +0 -189
  672. package/dist/bin/__tests__/test-command.test.js +0 -112
  673. package/dist/bin/__tests__/ts-loader-register.test.js +0 -45
  674. package/dist/database/puri-subset.test-d.js +0 -89
  675. package/dist/database/puri.types.test-d.js +0 -129
  676. package/dist/migration/__tests__/code-generation.search-text.test.js +0 -435
  677. package/dist/template/__tests__/generated.template.search-text.test.js +0 -99
  678. package/dist/template/generated.template.test-d.js +0 -24
  679. package/dist/testing/__tests__/dev-test-routes.test.js +0 -144
  680. package/dist/testing/__tests__/dev-vitest-manager.test.js +0 -152
  681. package/dist/types/__tests__/entity-json-schema-search-text.test.js +0 -256
  682. package/dist/typings/knex.d.js +0 -3
  683. package/dist/ui-web/assets/index-CKo0Z2Iu.css +0 -1
  684. package/dist/ui-web/assets/index-DK-2aacv.js +0 -257
@@ -1,36 +1,42 @@
1
+ import { __esmMin } from "../_virtual/rolldown_runtime.js";
1
2
  import chalk from "chalk";
2
- import { setTimeout as setTimeoutPromises } from "node:timers/promises";
3
+ import { setTimeout } from "timers/promises";
4
+
5
+ //#region src/utils/process-utils.ts
3
6
  /**
4
- * 주어진 작업을 실행합니다.
5
- * 주어진 프로세스 이벤트(=시그널)가 발생하였을 때에도 최대 한계(delayBeforeShutdown) 동안 작업을 기다린 후 종료합니다.
6
- * @param {() => Promise<void>} job - 실행할 작업
7
- * @param {event: NodeJS.Signals; delayBeforeShutdown: number} options - 옵션
8
- * @param {NodeJS.Signals} options.event - 프로세스 이벤트
9
- * @param {number} options.delayBeforeShutdown - 최대 한계 시간
10
- */ export async function runWithGracefulShutdown(job, { whenThisHappens: event, waitForUpTo: delayBeforeShutdown } = {
11
- whenThisHappens: "SIGUSR2",
12
- waitForUpTo: 20000
7
+ * 주어진 작업을 실행합니다.
8
+ * 주어진 프로세스 이벤트(=시그널)가 발생하였을 때에도 최대 한계(delayBeforeShutdown) 동안 작업을 기다린 후 종료합니다.
9
+ * @param {() => Promise<void>} job - 실행할 작업
10
+ * @param {event: NodeJS.Signals; delayBeforeShutdown: number} options - 옵션
11
+ * @param {NodeJS.Signals} options.event - 프로세스 이벤트
12
+ * @param {number} options.delayBeforeShutdown - 최대 한계 시간
13
+ */
14
+ async function runWithGracefulShutdown(job, { whenThisHappens: event, waitForUpTo: delayBeforeShutdown } = {
15
+ whenThisHappens: "SIGUSR2",
16
+ waitForUpTo: 2e4
13
17
  }) {
14
- let isRunning = true;
15
- const abortController = new AbortController();
16
- const onEvent = async ()=>{
17
- if (!isRunning) {
18
- process.exit(0);
19
- }
20
- console.log(chalk.magentaBright(`wait for syncing done....`));
21
- try {
22
- await setTimeoutPromises(delayBeforeShutdown, "waiting-sync", {
23
- signal: abortController.signal
24
- });
25
- } catch {}
26
- console.log(chalk.magentaBright(`Syncing DONE!`));
27
- process.exit(0);
28
- };
29
- process.on(event, onEvent);
30
- await job();
31
- isRunning = false;
32
- abortController.abort();
33
- process.off(event, onEvent);
18
+ let isRunning = true;
19
+ const abortController = new AbortController();
20
+ const onEvent = async () => {
21
+ if (!isRunning) {
22
+ process.exit(0);
23
+ }
24
+ console.log(chalk.magentaBright(`wait for syncing done....`));
25
+ try {
26
+ await setTimeout(delayBeforeShutdown, "waiting-sync", { signal: abortController.signal });
27
+ } catch {}
28
+ console.log(chalk.magentaBright(`Syncing DONE!`));
29
+ process.exit(0);
30
+ };
31
+ process.on(event, onEvent);
32
+ await job();
33
+ isRunning = false;
34
+ abortController.abort();
35
+ process.off(event, onEvent);
34
36
  }
37
+ var init_process_utils = __esmMin((() => {}));
35
38
 
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9wcm9jZXNzLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCB7IHNldFRpbWVvdXQgYXMgc2V0VGltZW91dFByb21pc2VzIH0gZnJvbSBcInRpbWVycy9wcm9taXNlc1wiO1xuXG4vKipcbiAqIOyjvOyWtOynhCDsnpHsl4XsnYQg7Iuk7ZaJ7ZWp64uI64ukLlxuICog7KO87Ja07KeEIO2UhOuhnOyEuOyKpCDsnbTrsqTtirgoPeyLnOq3uOuEkCnqsIAg67Cc7IOd7ZWY7JiA7J2EIOuVjOyXkOuPhCDstZzrjIAg7ZWc6rOEKGRlbGF5QmVmb3JlU2h1dGRvd24pIOuPmeyViCDsnpHsl4XsnYQg6riw64uk66awIO2bhCDsooXro4ztlanri4jri6QuXG4gKiBAcGFyYW0geygpID0+IFByb21pc2U8dm9pZD59IGpvYiAtIOyLpO2Wie2VoCDsnpHsl4VcbiAqIEBwYXJhbSB7ZXZlbnQ6IE5vZGVKUy5TaWduYWxzOyBkZWxheUJlZm9yZVNodXRkb3duOiBudW1iZXJ9IG9wdGlvbnMgLSDsmLXshZhcbiAqIEBwYXJhbSB7Tm9kZUpTLlNpZ25hbHN9IG9wdGlvbnMuZXZlbnQgLSDtlITroZzshLjsiqQg7J2067Kk7Yq4XG4gKiBAcGFyYW0ge251bWJlcn0gb3B0aW9ucy5kZWxheUJlZm9yZVNodXRkb3duIC0g7LWc64yAIO2VnOqzhCDsi5zqsIRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bldpdGhHcmFjZWZ1bFNodXRkb3duKFxuICBqb2I6ICgpID0+IFByb21pc2U8dm9pZD4sXG4gIHtcbiAgICB3aGVuVGhpc0hhcHBlbnM6IGV2ZW50LFxuICAgIHdhaXRGb3JVcFRvOiBkZWxheUJlZm9yZVNodXRkb3duLFxuICB9OiB7IHdoZW5UaGlzSGFwcGVuczogTm9kZUpTLlNpZ25hbHM7IHdhaXRGb3JVcFRvOiBudW1iZXIgfSA9IHtcbiAgICB3aGVuVGhpc0hhcHBlbnM6IFwiU0lHVVNSMlwiLFxuICAgIHdhaXRGb3JVcFRvOiAyMDAwMCxcbiAgfSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBsZXQgaXNSdW5uaW5nID0gdHJ1ZSBhcyBib29sZWFuO1xuXG4gIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgY29uc3Qgb25FdmVudCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoIWlzUnVubmluZykge1xuICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhjaGFsay5tYWdlbnRhQnJpZ2h0KGB3YWl0IGZvciBzeW5jaW5nIGRvbmUuLi4uYCkpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHNldFRpbWVvdXRQcm9taXNlcyhkZWxheUJlZm9yZVNodXRkb3duLCBcIndhaXRpbmctc3luY1wiLCB7XG4gICAgICAgIHNpZ25hbDogYWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2gge31cbiAgICBjb25zb2xlLmxvZyhjaGFsay5tYWdlbnRhQnJpZ2h0KGBTeW5jaW5nIERPTkUhYCkpO1xuICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgfTtcbiAgcHJvY2Vzcy5vbihldmVudCwgb25FdmVudCk7XG5cbiAgYXdhaXQgam9iKCk7XG5cbiAgaXNSdW5uaW5nID0gZmFsc2U7XG4gIGFib3J0Q29udHJvbGxlci5hYm9ydCgpO1xuICBwcm9jZXNzLm9mZihldmVudCwgb25FdmVudCk7XG59XG4iXSwibmFtZXMiOlsiY2hhbGsiLCJzZXRUaW1lb3V0Iiwic2V0VGltZW91dFByb21pc2VzIiwicnVuV2l0aEdyYWNlZnVsU2h1dGRvd24iLCJqb2IiLCJ3aGVuVGhpc0hhcHBlbnMiLCJldmVudCIsIndhaXRGb3JVcFRvIiwiZGVsYXlCZWZvcmVTaHV0ZG93biIsImlzUnVubmluZyIsImFib3J0Q29udHJvbGxlciIsIkFib3J0Q29udHJvbGxlciIsIm9uRXZlbnQiLCJwcm9jZXNzIiwiZXhpdCIsImNvbnNvbGUiLCJsb2ciLCJtYWdlbnRhQnJpZ2h0Iiwic2lnbmFsIiwib24iLCJhYm9ydCIsIm9mZiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsV0FBVyxRQUFRO0FBQzFCLFNBQVNDLGNBQWNDLGtCQUFrQixRQUFRLHVCQUFrQjtBQUVuRTs7Ozs7OztDQU9DLEdBQ0QsT0FBTyxlQUFlQyx3QkFDcEJDLEdBQXdCLEVBQ3hCLEVBQ0VDLGlCQUFpQkMsS0FBSyxFQUN0QkMsYUFBYUMsbUJBQW1CLEVBQ3lCLEdBQUc7SUFDNURILGlCQUFpQjtJQUNqQkUsYUFBYTtBQUNmLENBQUM7SUFFRCxJQUFJRSxZQUFZO0lBRWhCLE1BQU1DLGtCQUFrQixJQUFJQztJQUM1QixNQUFNQyxVQUFVO1FBQ2QsSUFBSSxDQUFDSCxXQUFXO1lBQ2RJLFFBQVFDLElBQUksQ0FBQztRQUNmO1FBQ0FDLFFBQVFDLEdBQUcsQ0FBQ2hCLE1BQU1pQixhQUFhLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQztRQUUzRCxJQUFJO1lBQ0YsTUFBTWYsbUJBQW1CTSxxQkFBcUIsZ0JBQWdCO2dCQUM1RFUsUUFBUVIsZ0JBQWdCUSxNQUFNO1lBQ2hDO1FBQ0YsRUFBRSxPQUFNLENBQUM7UUFDVEgsUUFBUUMsR0FBRyxDQUFDaEIsTUFBTWlCLGFBQWEsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMvQ0osUUFBUUMsSUFBSSxDQUFDO0lBQ2Y7SUFDQUQsUUFBUU0sRUFBRSxDQUFDYixPQUFPTTtJQUVsQixNQUFNUjtJQUVOSyxZQUFZO0lBQ1pDLGdCQUFnQlUsS0FBSztJQUNyQlAsUUFBUVEsR0FBRyxDQUFDZixPQUFPTTtBQUNyQiJ9
39
+ //#endregion
40
+ init_process_utils();
41
+ export { init_process_utils, runWithGracefulShutdown };
42
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy11dGlscy5qcyIsIm5hbWVzIjpbInNldFRpbWVvdXRQcm9taXNlcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9wcm9jZXNzLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNldFRpbWVvdXQgYXMgc2V0VGltZW91dFByb21pc2VzIH0gZnJvbSBcInRpbWVycy9wcm9taXNlc1wiO1xuXG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5cbi8qKlxuICog7KO87Ja07KeEIOyekeyXheydhCDsi6Ttlontlanri4jri6QuXG4gKiDso7zslrTsp4Qg7ZSE66Gc7IS47IqkIOydtOuypO2KuCg97Iuc6re464SQKeqwgCDrsJzsg53tlZjsmIDsnYQg65WM7JeQ64+EIOy1nOuMgCDtlZzqs4QoZGVsYXlCZWZvcmVTaHV0ZG93bikg64+Z7JWIIOyekeyXheydhCDquLDri6TrprAg7ZuEIOyiheujjO2VqeuLiOuLpC5cbiAqIEBwYXJhbSB7KCkgPT4gUHJvbWlzZTx2b2lkPn0gam9iIC0g7Iuk7ZaJ7ZWgIOyekeyXhVxuICogQHBhcmFtIHtldmVudDogTm9kZUpTLlNpZ25hbHM7IGRlbGF5QmVmb3JlU2h1dGRvd246IG51bWJlcn0gb3B0aW9ucyAtIOyYteyFmFxuICogQHBhcmFtIHtOb2RlSlMuU2lnbmFsc30gb3B0aW9ucy5ldmVudCAtIO2UhOuhnOyEuOyKpCDsnbTrsqTtirhcbiAqIEBwYXJhbSB7bnVtYmVyfSBvcHRpb25zLmRlbGF5QmVmb3JlU2h1dGRvd24gLSDstZzrjIAg7ZWc6rOEIOyLnOqwhFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV2l0aEdyYWNlZnVsU2h1dGRvd24oXG4gIGpvYjogKCkgPT4gUHJvbWlzZTx2b2lkPixcbiAge1xuICAgIHdoZW5UaGlzSGFwcGVuczogZXZlbnQsXG4gICAgd2FpdEZvclVwVG86IGRlbGF5QmVmb3JlU2h1dGRvd24sXG4gIH06IHsgd2hlblRoaXNIYXBwZW5zOiBOb2RlSlMuU2lnbmFsczsgd2FpdEZvclVwVG86IG51bWJlciB9ID0ge1xuICAgIHdoZW5UaGlzSGFwcGVuczogXCJTSUdVU1IyXCIsXG4gICAgd2FpdEZvclVwVG86IDIwMDAwLFxuICB9LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGxldCBpc1J1bm5pbmcgPSB0cnVlIGFzIGJvb2xlYW47XG5cbiAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBjb25zdCBvbkV2ZW50ID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmICghaXNSdW5uaW5nKSB7XG4gICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKGNoYWxrLm1hZ2VudGFCcmlnaHQoYHdhaXQgZm9yIHN5bmNpbmcgZG9uZS4uLi5gKSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgc2V0VGltZW91dFByb21pc2VzKGRlbGF5QmVmb3JlU2h1dGRvd24sIFwid2FpdGluZy1zeW5jXCIsIHtcbiAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCB7fVxuICAgIGNvbnNvbGUubG9nKGNoYWxrLm1hZ2VudGFCcmlnaHQoYFN5bmNpbmcgRE9ORSFgKSk7XG4gICAgcHJvY2Vzcy5leGl0KDApO1xuICB9O1xuICBwcm9jZXNzLm9uKGV2ZW50LCBvbkV2ZW50KTtcblxuICBhd2FpdCBqb2IoKTtcblxuICBpc1J1bm5pbmcgPSBmYWxzZTtcbiAgYWJvcnRDb250cm9sbGVyLmFib3J0KCk7XG4gIHByb2Nlc3Mub2ZmKGV2ZW50LCBvbkV2ZW50KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQVlBLGVBQXNCLHdCQUNwQixLQUNBLEVBQ0UsaUJBQWlCLE9BQ2pCLGFBQWEsd0JBQytDO0NBQzVELGlCQUFpQjtDQUNqQixhQUFhO0NBQ2QsRUFDYztDQUNmLElBQUksWUFBWTtDQUVoQixNQUFNLGtCQUFrQixJQUFJLGlCQUFpQjtDQUM3QyxNQUFNLFVBQVUsWUFBWTtBQUMxQixNQUFJLENBQUMsV0FBVztBQUNkLFdBQVEsS0FBSyxFQUFFOztBQUVqQixVQUFRLElBQUksTUFBTSxjQUFjLDRCQUE0QixDQUFDO0FBRTdELE1BQUk7QUFDRixTQUFNQSxXQUFtQixxQkFBcUIsZ0JBQWdCLEVBQzVELFFBQVEsZ0JBQWdCLFFBQ3pCLENBQUM7VUFDSTtBQUNSLFVBQVEsSUFBSSxNQUFNLGNBQWMsZ0JBQWdCLENBQUM7QUFDakQsVUFBUSxLQUFLLEVBQUU7O0FBRWpCLFNBQVEsR0FBRyxPQUFPLFFBQVE7QUFFMUIsT0FBTSxLQUFLO0FBRVgsYUFBWTtBQUNaLGlCQUFnQixPQUFPO0FBQ3ZCLFNBQVEsSUFBSSxPQUFPLFFBQVEifQ==
@@ -1,4 +1,4 @@
1
- import type { AST, ColumnRef, Join } from "node-sql-parser";
1
+ import { type AST, type ColumnRef, type Join } from "node-sql-parser";
2
2
  export declare function getTableName(expr: ColumnRef): string | null;
3
3
  export declare function getTableNamesFromWhere(ast: AST | AST[]): string[];
4
4
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sql-parser.d.ts","sourceRoot":"","sources":["../../src/utils/sql-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAA+B,IAAI,EAAU,MAAM,iBAAiB,CAAC;AAIjG,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;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,46 +1,46 @@
1
+ import { __esmMin } from "../_virtual/rolldown_runtime.js";
2
+ import { init_utils, nonNullable } from "./utils.js";
1
3
  import { unique } from "radashi";
2
- import { nonNullable } from "./utils.js";
3
- export function getTableName(expr) {
4
- if ("table" in expr && expr.table !== null) {
5
- return typeof expr.table === "string" ? expr.table : expr.table.value;
6
- }
7
- return null;
4
+
5
+ //#region src/utils/sql-parser.ts
6
+ function getTableName(expr) {
7
+ if ("table" in expr && expr.table !== null) {
8
+ return typeof expr.table === "string" ? expr.table : expr.table.value;
9
+ }
10
+ return null;
8
11
  }
9
- // where 조건에 사용된 테이블명을 추출
10
- export function getTableNamesFromWhere(ast) {
11
- const extractTableNames = (where)=>{
12
- if (where === null || !(where.type === "binary_expr" && "left" in where)) {
13
- return [];
14
- }
15
- const extractTableName = (expr)=>{
16
- if (expr.type === "column_ref") {
17
- const table = getTableName(expr);
18
- return table ? [
19
- table
20
- ] : [];
21
- } else if (expr.type === "binary_expr" && "left" in expr) {
22
- return extractTableNames(expr);
23
- }
24
- return [];
25
- };
26
- return [
27
- ...extractTableName(where.left),
28
- ...extractTableName(where.right)
29
- ];
30
- };
31
- return unique((Array.isArray(ast) ? ast : [
32
- ast
33
- ]).flatMap((a)=>a.type === "select" || a.type === "update" || a.type === "delete" ? extractTableNames(a.where) : []));
12
+ function getTableNamesFromWhere(ast) {
13
+ const extractTableNames = (where) => {
14
+ if (where === null || !(where.type === "binary_expr" && "left" in where)) {
15
+ return [];
16
+ }
17
+ const extractTableName = (expr) => {
18
+ if (expr.type === "column_ref") {
19
+ const table = getTableName(expr);
20
+ return table ? [table] : [];
21
+ } else if (expr.type === "binary_expr" && "left" in expr) {
22
+ return extractTableNames(expr);
23
+ }
24
+ return [];
25
+ };
26
+ return [...extractTableName(where.left), ...extractTableName(where.right)];
27
+ };
28
+ return unique((Array.isArray(ast) ? ast : [ast]).flatMap((a) => a.type === "select" || a.type === "update" || a.type === "delete" ? extractTableNames(a.where) : []));
34
29
  }
35
30
  /**
36
- * 주의: table명이 아닌 alias를 반환함
37
- */ export function getJoinTables(ast, joinTypes) {
38
- const extractJoinTables = (froms)=>{
39
- return froms.map((f)=>"join" in f && joinTypes.includes(f.join) ? f.as : null).filter(nonNullable);
40
- };
41
- return unique((Array.isArray(ast) ? ast : [
42
- ast
43
- ]).flatMap((a)=>a.type === "select" && Array.isArray(a.from) ? extractJoinTables(a.from) : []));
31
+ * 주의: table명이 아닌 alias를 반환함
32
+ */
33
+ function getJoinTables(ast, joinTypes) {
34
+ const extractJoinTables = (froms) => {
35
+ return froms.map((f) => "join" in f && joinTypes.includes(f.join) ? f.as : null).filter(nonNullable);
36
+ };
37
+ return unique((Array.isArray(ast) ? ast : [ast]).flatMap((a) => a.type === "select" && Array.isArray(a.from) ? extractJoinTables(a.from) : []));
44
38
  }
39
+ var init_sql_parser = __esmMin((() => {
40
+ init_utils();
41
+ }));
45
42
 
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9zcWwtcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQVNULCBDb2x1bW5SZWYsIEV4cHIsIEV4cHJlc3Npb25WYWx1ZSwgRnJvbSwgSm9pbiwgU2VsZWN0IH0gZnJvbSBcIm5vZGUtc3FsLXBhcnNlclwiO1xuaW1wb3J0IHsgdW5pcXVlIH0gZnJvbSBcInJhZGFzaGlcIjtcbmltcG9ydCB7IG5vbk51bGxhYmxlIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRhYmxlTmFtZShleHByOiBDb2x1bW5SZWYpIHtcbiAgaWYgKFwidGFibGVcIiBpbiBleHByICYmIGV4cHIudGFibGUgIT09IG51bGwpIHtcbiAgICByZXR1cm4gdHlwZW9mIGV4cHIudGFibGUgPT09IFwic3RyaW5nXCJcbiAgICAgID8gZXhwci50YWJsZVxuICAgICAgOiAoZXhwci50YWJsZSBhcyB7IHR5cGU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9KS52YWx1ZTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLy8gd2hlcmUg7KGw6rG07JeQIOyCrOyaqeuQnCDthYzsnbTruJTrqoXsnYQg7LaU7LacXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFibGVOYW1lc0Zyb21XaGVyZShhc3Q6IEFTVCB8IEFTVFtdKTogc3RyaW5nW10ge1xuICBjb25zdCBleHRyYWN0VGFibGVOYW1lcyA9ICh3aGVyZTogU2VsZWN0W1wid2hlcmVcIl0pOiBzdHJpbmdbXSA9PiB7XG4gICAgaWYgKHdoZXJlID09PSBudWxsIHx8ICEod2hlcmUudHlwZSA9PT0gXCJiaW5hcnlfZXhwclwiICYmIFwibGVmdFwiIGluIHdoZXJlKSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dHJhY3RUYWJsZU5hbWUgPSAoZXhwcjogRXhwciB8IEV4cHJlc3Npb25WYWx1ZSk6IHN0cmluZ1tdID0+IHtcbiAgICAgIGlmIChleHByLnR5cGUgPT09IFwiY29sdW1uX3JlZlwiKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlID0gZ2V0VGFibGVOYW1lKGV4cHIgYXMgQ29sdW1uUmVmKTtcbiAgICAgICAgcmV0dXJuIHRhYmxlID8gW3RhYmxlXSA6IFtdO1xuICAgICAgfSBlbHNlIGlmIChleHByLnR5cGUgPT09IFwiYmluYXJ5X2V4cHJcIiAmJiBcImxlZnRcIiBpbiBleHByKSB7XG4gICAgICAgIHJldHVybiBleHRyYWN0VGFibGVOYW1lcyhleHByKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIFsuLi5leHRyYWN0VGFibGVOYW1lKHdoZXJlLmxlZnQpLCAuLi5leHRyYWN0VGFibGVOYW1lKHdoZXJlLnJpZ2h0KV07XG4gIH07XG5cbiAgcmV0dXJuIHVuaXF1ZShcbiAgICAoQXJyYXkuaXNBcnJheShhc3QpID8gYXN0IDogW2FzdF0pLmZsYXRNYXAoKGEpID0+XG4gICAgICBhLnR5cGUgPT09IFwic2VsZWN0XCIgfHwgYS50eXBlID09PSBcInVwZGF0ZVwiIHx8IGEudHlwZSA9PT0gXCJkZWxldGVcIlxuICAgICAgICA/IGV4dHJhY3RUYWJsZU5hbWVzKGEud2hlcmUpXG4gICAgICAgIDogW10sXG4gICAgKSxcbiAgKTtcbn1cblxuLyoqXG4gKiDso7zsnZg6IHRhYmxl66qF7J20IOyVhOuLjCBhbGlhc+ulvCDrsJjtmZjtlahcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEpvaW5UYWJsZXMoYXN0OiBBU1QgfCBBU1RbXSwgam9pblR5cGVzOiBKb2luW1wiam9pblwiXVtdKTogc3RyaW5nW10ge1xuICBjb25zdCBleHRyYWN0Sm9pblRhYmxlcyA9IChmcm9tczogRnJvbVtdKTogc3RyaW5nW10gPT4ge1xuICAgIHJldHVybiBmcm9tc1xuICAgICAgLm1hcCgoZikgPT4gKFwiam9pblwiIGluIGYgJiYgam9pblR5cGVzLmluY2x1ZGVzKGYuam9pbikgPyBmLmFzIDogbnVsbCkpXG4gICAgICAuZmlsdGVyKG5vbk51bGxhYmxlKTtcbiAgfTtcblxuICByZXR1cm4gdW5pcXVlKFxuICAgIChBcnJheS5pc0FycmF5KGFzdCkgPyBhc3QgOiBbYXN0XSkuZmxhdE1hcCgoYSkgPT5cbiAgICAgIGEudHlwZSA9PT0gXCJzZWxlY3RcIiAmJiBBcnJheS5pc0FycmF5KGEuZnJvbSkgPyBleHRyYWN0Sm9pblRhYmxlcyhhLmZyb20pIDogW10sXG4gICAgKSxcbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlxdWUiLCJub25OdWxsYWJsZSIsImdldFRhYmxlTmFtZSIsImV4cHIiLCJ0YWJsZSIsInZhbHVlIiwiZ2V0VGFibGVOYW1lc0Zyb21XaGVyZSIsImFzdCIsImV4dHJhY3RUYWJsZU5hbWVzIiwid2hlcmUiLCJ0eXBlIiwiZXh0cmFjdFRhYmxlTmFtZSIsImxlZnQiLCJyaWdodCIsIkFycmF5IiwiaXNBcnJheSIsImZsYXRNYXAiLCJhIiwiZ2V0Sm9pblRhYmxlcyIsImpvaW5UeXBlcyIsImV4dHJhY3RKb2luVGFibGVzIiwiZnJvbXMiLCJtYXAiLCJmIiwiaW5jbHVkZXMiLCJqb2luIiwiYXMiLCJmaWx0ZXIiLCJmcm9tIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxNQUFNLFFBQVEsVUFBVTtBQUNqQyxTQUFTQyxXQUFXLFFBQVEsYUFBVTtBQUV0QyxPQUFPLFNBQVNDLGFBQWFDLElBQWU7SUFDMUMsSUFBSSxXQUFXQSxRQUFRQSxLQUFLQyxLQUFLLEtBQUssTUFBTTtRQUMxQyxPQUFPLE9BQU9ELEtBQUtDLEtBQUssS0FBSyxXQUN6QkQsS0FBS0MsS0FBSyxHQUNWLEFBQUNELEtBQUtDLEtBQUssQ0FBcUNDLEtBQUs7SUFDM0Q7SUFDQSxPQUFPO0FBQ1Q7QUFFQSx5QkFBeUI7QUFDekIsT0FBTyxTQUFTQyx1QkFBdUJDLEdBQWdCO0lBQ3JELE1BQU1DLG9CQUFvQixDQUFDQztRQUN6QixJQUFJQSxVQUFVLFFBQVEsQ0FBRUEsQ0FBQUEsTUFBTUMsSUFBSSxLQUFLLGlCQUFpQixVQUFVRCxLQUFJLEdBQUk7WUFDeEUsT0FBTyxFQUFFO1FBQ1g7UUFFQSxNQUFNRSxtQkFBbUIsQ0FBQ1I7WUFDeEIsSUFBSUEsS0FBS08sSUFBSSxLQUFLLGNBQWM7Z0JBQzlCLE1BQU1OLFFBQVFGLGFBQWFDO2dCQUMzQixPQUFPQyxRQUFRO29CQUFDQTtpQkFBTSxHQUFHLEVBQUU7WUFDN0IsT0FBTyxJQUFJRCxLQUFLTyxJQUFJLEtBQUssaUJBQWlCLFVBQVVQLE1BQU07Z0JBQ3hELE9BQU9LLGtCQUFrQkw7WUFDM0I7WUFDQSxPQUFPLEVBQUU7UUFDWDtRQUVBLE9BQU87ZUFBSVEsaUJBQWlCRixNQUFNRyxJQUFJO2VBQU1ELGlCQUFpQkYsTUFBTUksS0FBSztTQUFFO0lBQzVFO0lBRUEsT0FBT2IsT0FDTCxBQUFDYyxDQUFBQSxNQUFNQyxPQUFPLENBQUNSLE9BQU9BLE1BQU07UUFBQ0E7S0FBSSxBQUFELEVBQUdTLE9BQU8sQ0FBQyxDQUFDQyxJQUMxQ0EsRUFBRVAsSUFBSSxLQUFLLFlBQVlPLEVBQUVQLElBQUksS0FBSyxZQUFZTyxFQUFFUCxJQUFJLEtBQUssV0FDckRGLGtCQUFrQlMsRUFBRVIsS0FBSyxJQUN6QixFQUFFO0FBR1o7QUFFQTs7Q0FFQyxHQUNELE9BQU8sU0FBU1MsY0FBY1gsR0FBZ0IsRUFBRVksU0FBeUI7SUFDdkUsTUFBTUMsb0JBQW9CLENBQUNDO1FBQ3pCLE9BQU9BLE1BQ0pDLEdBQUcsQ0FBQyxDQUFDQyxJQUFPLFVBQVVBLEtBQUtKLFVBQVVLLFFBQVEsQ0FBQ0QsRUFBRUUsSUFBSSxJQUFJRixFQUFFRyxFQUFFLEdBQUcsTUFDL0RDLE1BQU0sQ0FBQzFCO0lBQ1o7SUFFQSxPQUFPRCxPQUNMLEFBQUNjLENBQUFBLE1BQU1DLE9BQU8sQ0FBQ1IsT0FBT0EsTUFBTTtRQUFDQTtLQUFJLEFBQUQsRUFBR1MsT0FBTyxDQUFDLENBQUNDLElBQzFDQSxFQUFFUCxJQUFJLEtBQUssWUFBWUksTUFBTUMsT0FBTyxDQUFDRSxFQUFFVyxJQUFJLElBQUlSLGtCQUFrQkgsRUFBRVcsSUFBSSxJQUFJLEVBQUU7QUFHbkYifQ==
43
+ //#endregion
44
+ init_sql_parser();
45
+ export { getJoinTables, getTableName, getTableNamesFromWhere, init_sql_parser };
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLXBhcnNlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvc3FsLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIEFTVCxcbiAgdHlwZSBDb2x1bW5SZWYsXG4gIHR5cGUgRXhwcixcbiAgdHlwZSBFeHByZXNzaW9uVmFsdWUsXG4gIHR5cGUgRnJvbSxcbiAgdHlwZSBKb2luLFxuICB0eXBlIFNlbGVjdCxcbn0gZnJvbSBcIm5vZGUtc3FsLXBhcnNlclwiO1xuaW1wb3J0IHsgdW5pcXVlIH0gZnJvbSBcInJhZGFzaGlcIjtcblxuaW1wb3J0IHsgbm9uTnVsbGFibGUgfSBmcm9tIFwiLi91dGlsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFibGVOYW1lKGV4cHI6IENvbHVtblJlZikge1xuICBpZiAoXCJ0YWJsZVwiIGluIGV4cHIgJiYgZXhwci50YWJsZSAhPT0gbnVsbCkge1xuICAgIHJldHVybiB0eXBlb2YgZXhwci50YWJsZSA9PT0gXCJzdHJpbmdcIlxuICAgICAgPyBleHByLnRhYmxlXG4gICAgICA6IChleHByLnRhYmxlIGFzIHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0pLnZhbHVlO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG4vLyB3aGVyZSDsobDqsbTsl5Ag7IKs7Jqp65CcIO2FjOydtOu4lOuqheydhCDstpTstpxcbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWJsZU5hbWVzRnJvbVdoZXJlKGFzdDogQVNUIHwgQVNUW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGV4dHJhY3RUYWJsZU5hbWVzID0gKHdoZXJlOiBTZWxlY3RbXCJ3aGVyZVwiXSk6IHN0cmluZ1tdID0+IHtcbiAgICBpZiAod2hlcmUgPT09IG51bGwgfHwgISh3aGVyZS50eXBlID09PSBcImJpbmFyeV9leHByXCIgJiYgXCJsZWZ0XCIgaW4gd2hlcmUpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZXh0cmFjdFRhYmxlTmFtZSA9IChleHByOiBFeHByIHwgRXhwcmVzc2lvblZhbHVlKTogc3RyaW5nW10gPT4ge1xuICAgICAgaWYgKGV4cHIudHlwZSA9PT0gXCJjb2x1bW5fcmVmXCIpIHtcbiAgICAgICAgY29uc3QgdGFibGUgPSBnZXRUYWJsZU5hbWUoZXhwciBhcyBDb2x1bW5SZWYpO1xuICAgICAgICByZXR1cm4gdGFibGUgPyBbdGFibGVdIDogW107XG4gICAgICB9IGVsc2UgaWYgKGV4cHIudHlwZSA9PT0gXCJiaW5hcnlfZXhwclwiICYmIFwibGVmdFwiIGluIGV4cHIpIHtcbiAgICAgICAgcmV0dXJuIGV4dHJhY3RUYWJsZU5hbWVzKGV4cHIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtdO1xuICAgIH07XG5cbiAgICByZXR1cm4gWy4uLmV4dHJhY3RUYWJsZU5hbWUod2hlcmUubGVmdCksIC4uLmV4dHJhY3RUYWJsZU5hbWUod2hlcmUucmlnaHQpXTtcbiAgfTtcblxuICByZXR1cm4gdW5pcXVlKFxuICAgIChBcnJheS5pc0FycmF5KGFzdCkgPyBhc3QgOiBbYXN0XSkuZmxhdE1hcCgoYSkgPT5cbiAgICAgIGEudHlwZSA9PT0gXCJzZWxlY3RcIiB8fCBhLnR5cGUgPT09IFwidXBkYXRlXCIgfHwgYS50eXBlID09PSBcImRlbGV0ZVwiXG4gICAgICAgID8gZXh0cmFjdFRhYmxlTmFtZXMoYS53aGVyZSlcbiAgICAgICAgOiBbXSxcbiAgICApLFxuICApO1xufVxuXG4vKipcbiAqIOyjvOydmDogdGFibGXrqoXsnbQg7JWE64uMIGFsaWFz66W8IOuwmO2ZmO2VqFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Sm9pblRhYmxlcyhhc3Q6IEFTVCB8IEFTVFtdLCBqb2luVHlwZXM6IEpvaW5bXCJqb2luXCJdW10pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGV4dHJhY3RKb2luVGFibGVzID0gKGZyb21zOiBGcm9tW10pOiBzdHJpbmdbXSA9PiB7XG4gICAgcmV0dXJuIGZyb21zXG4gICAgICAubWFwKChmKSA9PiAoXCJqb2luXCIgaW4gZiAmJiBqb2luVHlwZXMuaW5jbHVkZXMoZi5qb2luKSA/IGYuYXMgOiBudWxsKSlcbiAgICAgIC5maWx0ZXIobm9uTnVsbGFibGUpO1xuICB9O1xuXG4gIHJldHVybiB1bmlxdWUoXG4gICAgKEFycmF5LmlzQXJyYXkoYXN0KSA/IGFzdCA6IFthc3RdKS5mbGF0TWFwKChhKSA9PlxuICAgICAgYS50eXBlID09PSBcInNlbGVjdFwiICYmIEFycmF5LmlzQXJyYXkoYS5mcm9tKSA/IGV4dHJhY3RKb2luVGFibGVzKGEuZnJvbSkgOiBbXSxcbiAgICApLFxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQWFBLFNBQWdCLGFBQWEsTUFBaUI7QUFDNUMsS0FBSSxXQUFXLFFBQVEsS0FBSyxVQUFVLE1BQU07QUFDMUMsU0FBTyxPQUFPLEtBQUssVUFBVSxXQUN6QixLQUFLLFFBQ0osS0FBSyxNQUEwQzs7QUFFdEQsUUFBTzs7QUFJVCxTQUFnQix1QkFBdUIsS0FBNEI7Q0FDakUsTUFBTSxxQkFBcUIsVUFBcUM7QUFDOUQsTUFBSSxVQUFVLFFBQVEsRUFBRSxNQUFNLFNBQVMsaUJBQWlCLFVBQVUsUUFBUTtBQUN4RSxVQUFPLEVBQUU7O0VBR1gsTUFBTSxvQkFBb0IsU0FBMkM7QUFDbkUsT0FBSSxLQUFLLFNBQVMsY0FBYztJQUM5QixNQUFNLFFBQVEsYUFBYSxLQUFrQjtBQUM3QyxXQUFPLFFBQVEsQ0FBQyxNQUFNLEdBQUcsRUFBRTtjQUNsQixLQUFLLFNBQVMsaUJBQWlCLFVBQVUsTUFBTTtBQUN4RCxXQUFPLGtCQUFrQixLQUFLOztBQUVoQyxVQUFPLEVBQUU7O0FBR1gsU0FBTyxDQUFDLEdBQUcsaUJBQWlCLE1BQU0sS0FBSyxFQUFFLEdBQUcsaUJBQWlCLE1BQU0sTUFBTSxDQUFDOztBQUc1RSxRQUFPLFFBQ0osTUFBTSxRQUFRLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsTUFDMUMsRUFBRSxTQUFTLFlBQVksRUFBRSxTQUFTLFlBQVksRUFBRSxTQUFTLFdBQ3JELGtCQUFrQixFQUFFLE1BQU0sR0FDMUIsRUFBRSxDQUNQLENBQ0Y7Ozs7O0FBTUgsU0FBZ0IsY0FBYyxLQUFrQixXQUFxQztDQUNuRixNQUFNLHFCQUFxQixVQUE0QjtBQUNyRCxTQUFPLE1BQ0osS0FBSyxNQUFPLFVBQVUsS0FBSyxVQUFVLFNBQVMsRUFBRSxLQUFLLEdBQUcsRUFBRSxLQUFLLEtBQU0sQ0FDckUsT0FBTyxZQUFZOztBQUd4QixRQUFPLFFBQ0osTUFBTSxRQUFRLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLFNBQVMsTUFDMUMsRUFBRSxTQUFTLFlBQVksTUFBTSxRQUFRLEVBQUUsS0FBSyxHQUFHLGtCQUFrQixFQUFFLEtBQUssR0FBRyxFQUFFLENBQzlFLENBQ0Y7OzthQXREbUMifQ==
@@ -1,47 +1,48 @@
1
- // 타입을 펼쳐서 보여주는 유틸리티 (객체에만 사용해야 함)
2
- export function withProp(obj, path, value) {
3
- const keys = path.split(".");
4
- if (keys.length === 0) throw new Error("Path cannot be empty");
5
- const result = structuredClone(obj);
6
- // biome-ignore lint/suspicious/noExplicitAny: 범용 배열 요소 타입
7
- const setDeep = (current, keys, value)=>{
8
- if (keys.length === 0) return;
9
- const [key, ...rest] = keys;
10
- if (rest.length === 0) {
11
- if (Array.isArray(current)) {
12
- current.forEach((item)=>{
13
- item[key] = value;
14
- });
15
- } else {
16
- current[key] = value;
17
- }
18
- } else {
19
- if (!(key in current) || typeof current[key] !== "object") {
20
- current[key] = {};
21
- }
22
- if (Array.isArray(current[key])) {
23
- // biome-ignore lint/suspicious/noExplicitAny: 범용 배열 요소 타입
24
- current[key].forEach((item)=>{
25
- setDeep(item, rest, value);
26
- });
27
- } else {
28
- setDeep(current[key], rest, value);
29
- }
30
- }
31
- };
32
- setDeep(result, keys, value);
33
- return result;
1
+ //#region src/utils/type-utils.ts
2
+ function withProp(obj, path, value) {
3
+ const keys = path.split(".");
4
+ if (keys.length === 0) throw new Error("Path cannot be empty");
5
+ const result = structuredClone(obj);
6
+ const setDeep = (current, keys$1, value$1) => {
7
+ if (keys$1.length === 0) return;
8
+ const [key, ...rest] = keys$1;
9
+ if (rest.length === 0) {
10
+ if (Array.isArray(current)) {
11
+ current.forEach((item) => {
12
+ item[key] = value$1;
13
+ });
14
+ } else {
15
+ current[key] = value$1;
16
+ }
17
+ } else {
18
+ if (!(key in current) || typeof current[key] !== "object") {
19
+ current[key] = {};
20
+ }
21
+ if (Array.isArray(current[key])) {
22
+ current[key].forEach((item) => {
23
+ setDeep(item, rest, value$1);
24
+ });
25
+ } else {
26
+ setDeep(current[key], rest, value$1);
27
+ }
28
+ }
29
+ };
30
+ setDeep(result, keys, value);
31
+ return result;
34
32
  }
35
33
  /**
36
- * 객체를 감싸서 체이닝을 시작합니다.
37
- */ export function withProps(obj) {
38
- return {
39
- set: (path, value)=>{
40
- const nextObj = withProp(obj, path, value);
41
- return withProps(nextObj);
42
- },
43
- value: ()=>obj
44
- };
34
+ * 객체를 감싸서 체이닝을 시작합니다.
35
+ */
36
+ function withProps(obj) {
37
+ return {
38
+ set: (path, value) => {
39
+ const nextObj = withProp(obj, path, value);
40
+ return withProps(nextObj);
41
+ },
42
+ value: () => obj
43
+ };
45
44
  }
46
45
 
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90eXBlLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIO2DgOyeheydhCDtjrzss5DshJwg67O07Jes7KO864qUIOycoO2LuOumrO2LsCAo6rCd7LK07JeQ66eMIOyCrOyaqe2VtOyVvCDtlagpXG50eXBlIEV4cGFuZDxUPiA9IFQgZXh0ZW5kcyBpbmZlciBPID8geyBbSyBpbiBrZXlvZiBPXTogT1tLXSB9IDogbmV2ZXI7XG5cbi8vIO2VteyLrCDroZzsp4FcbnR5cGUgU2V0UGF0aDxULCBQIGV4dGVuZHMgc3RyaW5nLCBWPiA9IFQgZXh0ZW5kcyByZWFkb25seSAoaW5mZXIgVSlbXSAvLyBbU3RlcCAxXSDtmITsnqwg7YOA7J6F7J20IOuwsOyXtOyduOqwgD8gLT4g7JqU7IaMKFUp7JeQIOuMgO2VtCDsnqzqt4Ag7Zi47LacIO2bhCDrsLDsl7TroZwg6rCQ7IyIXG4gID8gU2V0UGF0aDxVLCBQLCBWPltdXG4gIDogLy8gW1N0ZXAgMl0g6rK966Gc6rCAIOygkCguKeycvOuhnCDrgpjriZjripTqsIA/XG4gICAgUCBleHRlbmRzIGAke2luZmVyIEt9LiR7aW5mZXIgUmVzdH1gXG4gICAgPyBLIGV4dGVuZHMga2V5b2YgVFxuICAgICAgPyAvLyBbU3RlcCAyLTFdIO2CpOqwgCDsobTsnqztlahcbiAgICAgICAgRXhwYW5kPHtcbiAgICAgICAgICBbS2V5IGluIGtleW9mIFRdOiBLZXkgZXh0ZW5kcyBLXG4gICAgICAgICAgICA/IFNldFBhdGg8VFtLXSwgUmVzdCwgVj4gLy8g7J6s6reAIO2YuOy2nFxuICAgICAgICAgICAgOiBUW0tleV07XG4gICAgICAgIH0+XG4gICAgICA6IC8vIFtTdGVwIDItMl0g7YKk6rCAIOyXhuydjCAo7IOI66Gc7Jq0IOqwneyytCDqsr3roZwg7IOd7ISxKVxuICAgICAgICBFeHBhbmQ8VCAmIHsgW0tleSBpbiBLXTogU2V0UGF0aDx7fSwgUmVzdCwgVj4gfT5cbiAgICA6IC8vIFtTdGVwIDNdIOqyveuhnOydmCDrp4jsp4Drp4kgKEJhc2UgQ2FzZSlcbiAgICAgIFAgZXh0ZW5kcyBrZXlvZiBUXG4gICAgICA/IC8vIFtTdGVwIDMtMV0g6riw7KG0IO2CpCDrja7slrTsk7DquLAgKOq1kOywqCDtg4DsnoUgJiDrjIDsi6Ag7KGw6rG067aAIO2DgOyeheycvOuhnCDsmYTsoIQg6rWQ7LK0KVxuICAgICAgICBFeHBhbmQ8eyBbS2V5IGluIGtleW9mIFRdOiBLZXkgZXh0ZW5kcyBQID8gViA6IFRbS2V5XSB9PlxuICAgICAgOiAvLyBbU3RlcCAzLTJdIOyDiCDtgqQg7LaU6rCAXG4gICAgICAgIEV4cGFuZDxUICYgeyBbS2V5IGluIFBdOiBWIH0+O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFByb3A8VCBleHRlbmRzIG9iamVjdCwgUCBleHRlbmRzIHN0cmluZywgVj4oXG4gIG9iajogVCxcbiAgcGF0aDogUCxcbiAgdmFsdWU6IFYsXG4pOiBTZXRQYXRoPFQsIFAsIFY+IHtcbiAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoXCIuXCIpO1xuICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHRocm93IG5ldyBFcnJvcihcIlBhdGggY2Fubm90IGJlIGVtcHR5XCIpO1xuICBjb25zdCByZXN1bHQgPSBzdHJ1Y3R1cmVkQ2xvbmUob2JqKTtcblxuICAvLyBiaW9tZS1pZ25vcmUgbGludC9zdXNwaWNpb3VzL25vRXhwbGljaXRBbnk6IOuylOyaqSDrsLDsl7Qg7JqU7IaMIO2DgOyehVxuICBjb25zdCBzZXREZWVwID0gKGN1cnJlbnQ6IGFueSwga2V5czogc3RyaW5nW10sIHZhbHVlOiBWKTogdm9pZCA9PiB7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgY29uc3QgW2tleSwgLi4ucmVzdF0gPSBrZXlzO1xuXG4gICAgaWYgKHJlc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50KSkge1xuICAgICAgICBjdXJyZW50LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICBpdGVtW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjdXJyZW50W2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCEoa2V5IGluIGN1cnJlbnQpIHx8IHR5cGVvZiBjdXJyZW50W2tleV0gIT09IFwib2JqZWN0XCIpIHtcbiAgICAgICAgY3VycmVudFtrZXldID0ge307XG4gICAgICB9XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50W2tleV0pKSB7XG4gICAgICAgIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTog67KU7JqpIOuwsOyXtCDsmpTshowg7YOA7J6FXG4gICAgICAgIGN1cnJlbnRba2V5XS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICBzZXREZWVwKGl0ZW0sIHJlc3QsIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXREZWVwKGN1cnJlbnRba2V5XSwgcmVzdCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBzZXREZWVwKHJlc3VsdCwga2V5cywgdmFsdWUpO1xuICByZXR1cm4gcmVzdWx0IGFzIFNldFBhdGg8VCwgUCwgVj47XG59XG5cbmludGVyZmFjZSBDaGFpbldyYXBwZXI8VD4ge1xuICAvLyDqsr3roZzsl5Ag6rCS7J2EIOyEpOygle2VmOqzoCDrs4Dqsr3rkJwg7YOA7J6F7J2YIOyDiOuhnOyatCDssrTsnbgg656Y7Y2866W8IOuwmO2ZmO2VqeuLiOuLpC5cbiAgc2V0PFAgZXh0ZW5kcyBzdHJpbmcsIFY+KHBhdGg6IFAsIHZhbHVlOiBWKTogQ2hhaW5XcmFwcGVyPFNldFBhdGg8VCwgUCwgVj4+O1xuXG4gIC8vIOy1nOyihSDqsrDqs7wg6rCd7LK066W8IOuwmO2ZmO2VqeuLiOuLpC5cbiAgdmFsdWUoKTogVDtcbn1cblxuLyoqXG4gKiDqsJ3ssrTrpbwg6rCQ7Iu47IScIOyytOydtOuLneydhCDsi5zsnpHtlanri4jri6QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUHJvcHM8VCBleHRlbmRzIG9iamVjdD4ob2JqOiBUKTogQ2hhaW5XcmFwcGVyPFQ+IHtcbiAgcmV0dXJuIHtcbiAgICBzZXQ6IDxQIGV4dGVuZHMgc3RyaW5nLCBWPihwYXRoOiBQLCB2YWx1ZTogVikgPT4ge1xuICAgICAgY29uc3QgbmV4dE9iaiA9IHdpdGhQcm9wKG9iaiwgcGF0aCwgdmFsdWUpO1xuICAgICAgcmV0dXJuIHdpdGhQcm9wcyhuZXh0T2JqKSBhcyBDaGFpbldyYXBwZXI8U2V0UGF0aDxULCBQLCBWPj47XG4gICAgfSxcbiAgICB2YWx1ZTogKCkgPT4gb2JqLFxuICB9O1xufVxuIl0sIm5hbWVzIjpbIndpdGhQcm9wIiwib2JqIiwicGF0aCIsInZhbHVlIiwia2V5cyIsInNwbGl0IiwibGVuZ3RoIiwiRXJyb3IiLCJyZXN1bHQiLCJzdHJ1Y3R1cmVkQ2xvbmUiLCJzZXREZWVwIiwiY3VycmVudCIsImtleSIsInJlc3QiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JFYWNoIiwiaXRlbSIsIndpdGhQcm9wcyIsInNldCIsIm5leHRPYmoiXSwibWFwcGluZ3MiOiJBQUFBLGtDQUFrQztBQXdCbEMsT0FBTyxTQUFTQSxTQUNkQyxHQUFNLEVBQ05DLElBQU8sRUFDUEMsS0FBUTtJQUVSLE1BQU1DLE9BQU9GLEtBQUtHLEtBQUssQ0FBQztJQUN4QixJQUFJRCxLQUFLRSxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUlDLE1BQU07SUFDdkMsTUFBTUMsU0FBU0MsZ0JBQWdCUjtJQUUvQiwwREFBMEQ7SUFDMUQsTUFBTVMsVUFBVSxDQUFDQyxTQUFjUCxNQUFnQkQ7UUFDN0MsSUFBSUMsS0FBS0UsTUFBTSxLQUFLLEdBQUc7UUFDdkIsTUFBTSxDQUFDTSxLQUFLLEdBQUdDLEtBQUssR0FBR1Q7UUFFdkIsSUFBSVMsS0FBS1AsTUFBTSxLQUFLLEdBQUc7WUFDckIsSUFBSVEsTUFBTUMsT0FBTyxDQUFDSixVQUFVO2dCQUMxQkEsUUFBUUssT0FBTyxDQUFDLENBQUNDO29CQUNmQSxJQUFJLENBQUNMLElBQUksR0FBR1Q7Z0JBQ2Q7WUFDRixPQUFPO2dCQUNMUSxPQUFPLENBQUNDLElBQUksR0FBR1Q7WUFDakI7UUFDRixPQUFPO1lBQ0wsSUFBSSxDQUFFUyxDQUFBQSxPQUFPRCxPQUFNLEtBQU0sT0FBT0EsT0FBTyxDQUFDQyxJQUFJLEtBQUssVUFBVTtnQkFDekRELE9BQU8sQ0FBQ0MsSUFBSSxHQUFHLENBQUM7WUFDbEI7WUFDQSxJQUFJRSxNQUFNQyxPQUFPLENBQUNKLE9BQU8sQ0FBQ0MsSUFBSSxHQUFHO2dCQUMvQiwwREFBMEQ7Z0JBQzFERCxPQUFPLENBQUNDLElBQUksQ0FBQ0ksT0FBTyxDQUFDLENBQUNDO29CQUNwQlAsUUFBUU8sTUFBTUosTUFBTVY7Z0JBQ3RCO1lBQ0YsT0FBTztnQkFDTE8sUUFBUUMsT0FBTyxDQUFDQyxJQUFJLEVBQUVDLE1BQU1WO1lBQzlCO1FBQ0Y7SUFDRjtJQUVBTyxRQUFRRixRQUFRSixNQUFNRDtJQUN0QixPQUFPSztBQUNUO0FBVUE7O0NBRUMsR0FDRCxPQUFPLFNBQVNVLFVBQTRCakIsR0FBTTtJQUNoRCxPQUFPO1FBQ0xrQixLQUFLLENBQXNCakIsTUFBU0M7WUFDbEMsTUFBTWlCLFVBQVVwQixTQUFTQyxLQUFLQyxNQUFNQztZQUNwQyxPQUFPZSxVQUFVRTtRQUNuQjtRQUNBakIsT0FBTyxJQUFNRjtJQUNmO0FBQ0YifQ==
46
+ //#endregion
47
+ export { withProp, withProps };
48
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS11dGlscy5qcyIsIm5hbWVzIjpbImtleXMiLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy90eXBlLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIO2DgOyeheydhCDtjrzss5DshJwg67O07Jes7KO864qUIOycoO2LuOumrO2LsCAo6rCd7LK07JeQ66eMIOyCrOyaqe2VtOyVvCDtlagpXG50eXBlIEV4cGFuZDxUPiA9IFQgZXh0ZW5kcyBpbmZlciBPID8geyBbSyBpbiBrZXlvZiBPXTogT1tLXSB9IDogbmV2ZXI7XG5cbi8vIO2VteyLrCDroZzsp4FcbnR5cGUgU2V0UGF0aDxULCBQIGV4dGVuZHMgc3RyaW5nLCBWPiA9IFQgZXh0ZW5kcyByZWFkb25seSAoaW5mZXIgVSlbXSAvLyBbU3RlcCAxXSDtmITsnqwg7YOA7J6F7J20IOuwsOyXtOyduOqwgD8gLT4g7JqU7IaMKFUp7JeQIOuMgO2VtCDsnqzqt4Ag7Zi47LacIO2bhCDrsLDsl7TroZwg6rCQ7IyIXG4gID8gU2V0UGF0aDxVLCBQLCBWPltdXG4gIDogLy8gW1N0ZXAgMl0g6rK966Gc6rCAIOygkCguKeycvOuhnCDrgpjriZjripTqsIA/XG4gICAgUCBleHRlbmRzIGAke2luZmVyIEt9LiR7aW5mZXIgUmVzdH1gXG4gICAgPyBLIGV4dGVuZHMga2V5b2YgVFxuICAgICAgPyAvLyBbU3RlcCAyLTFdIO2CpOqwgCDsobTsnqztlahcbiAgICAgICAgRXhwYW5kPHtcbiAgICAgICAgICBbS2V5IGluIGtleW9mIFRdOiBLZXkgZXh0ZW5kcyBLXG4gICAgICAgICAgICA/IFNldFBhdGg8VFtLXSwgUmVzdCwgVj4gLy8g7J6s6reAIO2YuOy2nFxuICAgICAgICAgICAgOiBUW0tleV07XG4gICAgICAgIH0+XG4gICAgICA6IC8vIFtTdGVwIDItMl0g7YKk6rCAIOyXhuydjCAo7IOI66Gc7Jq0IOqwneyytCDqsr3roZwg7IOd7ISxKVxuICAgICAgICBFeHBhbmQ8VCAmIHsgW0tleSBpbiBLXTogU2V0UGF0aDx7fSwgUmVzdCwgVj4gfT5cbiAgICA6IC8vIFtTdGVwIDNdIOqyveuhnOydmCDrp4jsp4Drp4kgKEJhc2UgQ2FzZSlcbiAgICAgIFAgZXh0ZW5kcyBrZXlvZiBUXG4gICAgICA/IC8vIFtTdGVwIDMtMV0g6riw7KG0IO2CpCDrja7slrTsk7DquLAgKOq1kOywqCDtg4DsnoUgJiDrjIDsi6Ag7KGw6rG067aAIO2DgOyeheycvOuhnCDsmYTsoIQg6rWQ7LK0KVxuICAgICAgICBFeHBhbmQ8eyBbS2V5IGluIGtleW9mIFRdOiBLZXkgZXh0ZW5kcyBQID8gViA6IFRbS2V5XSB9PlxuICAgICAgOiAvLyBbU3RlcCAzLTJdIOyDiCDtgqQg7LaU6rCAXG4gICAgICAgIEV4cGFuZDxUICYgeyBbS2V5IGluIFBdOiBWIH0+O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFByb3A8VCBleHRlbmRzIG9iamVjdCwgUCBleHRlbmRzIHN0cmluZywgVj4oXG4gIG9iajogVCxcbiAgcGF0aDogUCxcbiAgdmFsdWU6IFYsXG4pOiBTZXRQYXRoPFQsIFAsIFY+IHtcbiAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoXCIuXCIpO1xuICBpZiAoa2V5cy5sZW5ndGggPT09IDApIHRocm93IG5ldyBFcnJvcihcIlBhdGggY2Fubm90IGJlIGVtcHR5XCIpO1xuICBjb25zdCByZXN1bHQgPSBzdHJ1Y3R1cmVkQ2xvbmUob2JqKTtcblxuICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSDrspTsmqkg67Cw7Je0IOyalOyGjCDtg4DsnoVcbiAgY29uc3Qgc2V0RGVlcCA9IChjdXJyZW50OiBhbnksIGtleXM6IHN0cmluZ1tdLCB2YWx1ZTogVik6IHZvaWQgPT4ge1xuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IFtrZXksIC4uLnJlc3RdID0ga2V5cztcblxuICAgIGlmIChyZXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudCkpIHtcbiAgICAgICAgY3VycmVudC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgaXRlbVtrZXldID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3VycmVudFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghKGtleSBpbiBjdXJyZW50KSB8fCB0eXBlb2YgY3VycmVudFtrZXldICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIGN1cnJlbnRba2V5XSA9IHt9O1xuICAgICAgfVxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudFtrZXldKSkge1xuICAgICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSDrspTsmqkg67Cw7Je0IOyalOyGjCDtg4DsnoVcbiAgICAgICAgY3VycmVudFtrZXldLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgIHNldERlZXAoaXRlbSwgcmVzdCwgdmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldERlZXAoY3VycmVudFtrZXldLCByZXN0LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHNldERlZXAocmVzdWx0LCBrZXlzLCB2YWx1ZSk7XG4gIHJldHVybiByZXN1bHQgYXMgU2V0UGF0aDxULCBQLCBWPjtcbn1cblxuaW50ZXJmYWNlIENoYWluV3JhcHBlcjxUPiB7XG4gIC8vIOqyveuhnOyXkCDqsJLsnYQg7ISk7KCV7ZWY6rOgIOuzgOqyveuQnCDtg4DsnoXsnZgg7IOI66Gc7Jq0IOyytOyduCDrnpjtjbzrpbwg67CY7ZmY7ZWp64uI64ukLlxuICBzZXQ8UCBleHRlbmRzIHN0cmluZywgVj4ocGF0aDogUCwgdmFsdWU6IFYpOiBDaGFpbldyYXBwZXI8U2V0UGF0aDxULCBQLCBWPj47XG5cbiAgLy8g7LWc7KKFIOqysOqzvCDqsJ3ssrTrpbwg67CY7ZmY7ZWp64uI64ukLlxuICB2YWx1ZSgpOiBUO1xufVxuXG4vKipcbiAqIOqwneyytOulvCDqsJDsi7jshJwg7LK07J2064ud7J2EIOyLnOyeke2VqeuLiOuLpC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhQcm9wczxUIGV4dGVuZHMgb2JqZWN0PihvYmo6IFQpOiBDaGFpbldyYXBwZXI8VD4ge1xuICByZXR1cm4ge1xuICAgIHNldDogPFAgZXh0ZW5kcyBzdHJpbmcsIFY+KHBhdGg6IFAsIHZhbHVlOiBWKSA9PiB7XG4gICAgICBjb25zdCBuZXh0T2JqID0gd2l0aFByb3Aob2JqLCBwYXRoLCB2YWx1ZSk7XG4gICAgICByZXR1cm4gd2l0aFByb3BzKG5leHRPYmopO1xuICAgIH0sXG4gICAgdmFsdWU6ICgpID0+IG9iaixcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQXdCQSxTQUFnQixTQUNkLEtBQ0EsTUFDQSxPQUNrQjtDQUNsQixNQUFNLE9BQU8sS0FBSyxNQUFNLElBQUk7QUFDNUIsS0FBSSxLQUFLLFdBQVcsRUFBRyxPQUFNLElBQUksTUFBTSx1QkFBdUI7Q0FDOUQsTUFBTSxTQUFTLGdCQUFnQixJQUFJO0NBR25DLE1BQU0sV0FBVyxTQUFjLFFBQWdCLFlBQW1CO0FBQ2hFLE1BQUlBLE9BQUssV0FBVyxFQUFHO0VBQ3ZCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsUUFBUUE7QUFFdkIsTUFBSSxLQUFLLFdBQVcsR0FBRztBQUNyQixPQUFJLE1BQU0sUUFBUSxRQUFRLEVBQUU7QUFDMUIsWUFBUSxTQUFTLFNBQVM7QUFDeEIsVUFBSyxPQUFPQztNQUNaO1VBQ0c7QUFDTCxZQUFRLE9BQU9BOztTQUVaO0FBQ0wsT0FBSSxFQUFFLE9BQU8sWUFBWSxPQUFPLFFBQVEsU0FBUyxVQUFVO0FBQ3pELFlBQVEsT0FBTyxFQUFFOztBQUVuQixPQUFJLE1BQU0sUUFBUSxRQUFRLEtBQUssRUFBRTtBQUUvQixZQUFRLEtBQUssU0FBUyxTQUFjO0FBQ2xDLGFBQVEsTUFBTSxNQUFNQSxRQUFNO01BQzFCO1VBQ0c7QUFDTCxZQUFRLFFBQVEsTUFBTSxNQUFNQSxRQUFNOzs7O0FBS3hDLFNBQVEsUUFBUSxNQUFNLE1BQU07QUFDNUIsUUFBTzs7Ozs7QUFjVCxTQUFnQixVQUE0QixLQUF5QjtBQUNuRSxRQUFPO0VBQ0wsTUFBMkIsTUFBUyxVQUFhO0dBQy9DLE1BQU0sVUFBVSxTQUFTLEtBQUssTUFBTSxNQUFNO0FBQzFDLFVBQU8sVUFBVSxRQUFROztFQUUzQixhQUFhO0VBQ2QifQ==
@@ -1,5 +1,5 @@
1
- import type { FastifyRequest } from "fastify";
2
- import type { AbsolutePath } from "./path-utils";
1
+ import { type FastifyRequest } from "fastify";
2
+ import { type AbsolutePath } from "./path-utils";
3
3
  export declare function findAppRootPath(): AbsolutePath;
4
4
  export declare function findApiRootPath(): AbsolutePath;
5
5
  export declare function nonNullable<T>(value: T): value is NonNullable<T>;
@@ -7,7 +7,6 @@ export declare function exhaustive(_param: never): void;
7
7
  export declare function assertExists<T>(value: T | null | undefined, message?: string): T;
8
8
  export declare function assertNotNull<T>(value: T | null, message?: string): T;
9
9
  export declare function assertDefined<T>(value: T | undefined, message?: string): T;
10
- export declare function chunk<T>(array: T[], size: number): T[][];
11
10
  export declare function intersectionBy<T, K>(arr1: readonly T[], arr2: readonly T[], iteratee: (item: T) => K): T[];
12
11
  export declare function differenceWith<T>(arr1: readonly T[], arr2: readonly T[], comparator: (a: T, b: T) => boolean): T[];
13
12
  export declare function merge<T extends Record<string, any>>(defaultObj: T, userObj: T): T;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,wBAAgB,eAAe,IAAI,YAAY,CAG9C;AAED,wBAAgB,eAAe,IAAI,YAAY,CAyB9C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAEhE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,QAEvC;AAGD,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAKhF;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAKrE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAK1E;AAGD,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE,CAExD;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EACjC,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACvB,CAAC,EAAE,CAGL;AAED,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAClC,CAAC,EAAE,CAEL;AAGD,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAsBjF;AAcD,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,OAAO,CAM3F"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,wBAAgB,eAAe,IAAI,YAAY,CAG9C;AAED,wBAAgB,eAAe,IAAI,YAAY,CA8B9C;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAEhE;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,KAAK,QAEvC;AAGD,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAKhF;AAGD,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAKrE;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,CAAC,CAK1E;AAGD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EACjC,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACvB,CAAC,EAAE,CAGL;AAED,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,GAClC,CAAC,EAAE,CAEL;AAGD,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAsBjF;AAcD,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,GAAG,OAAO,CAM3F"}
@@ -1,108 +1,96 @@
1
- import fs from "fs";
1
+ import { __esmMin } from "../_virtual/rolldown_runtime.js";
2
2
  import path from "path";
3
- import { cluster } from "radashi";
4
- export function findAppRootPath() {
5
- const apiRootPath = findApiRootPath();
6
- return path.dirname(apiRootPath);
7
- }
8
- export function findApiRootPath() {
9
- // NOTE: for support npm / yarn / pnpm workspaces
10
- // 하지만 workspace 쓰면 process.cwd() 하면 되는데... 이건 나중에 협의 후 수정하는걸로
11
- const workspacePath = process.env.PNPM_SCRIPT_SRC_DIR ?? process.env.INIT_CWD;
12
- if (nonNullable(workspacePath)) {
13
- return workspacePath;
14
- }
15
- if (nonNullable(process.env.PNPM_PACKAGE_NAME)) {
16
- return process.cwd().split(path.sep).join(path.sep);
17
- }
18
- const basePath = import.meta.filename;
19
- let dir = path.dirname(basePath);
20
- if (dir.includes("/.yarn/")) {
21
- dir = dir.split("/.yarn/")[0];
22
- }
23
- do {
24
- if (fs.existsSync(path.join(dir, "/package.json"))) {
25
- return dir.split(path.sep).join(path.sep);
26
- }
27
- dir = dir.split(path.sep).slice(0, -1).join(path.sep);
28
- }while (dir.split(path.sep).length > 1)
29
- throw new Error("Cannot find AppRoot using Sonamu -2");
3
+ import fs from "fs";
4
+
5
+ //#region src/utils/utils.ts
6
+ function findAppRootPath() {
7
+ const apiRootPath = findApiRootPath();
8
+ return path.dirname(apiRootPath);
30
9
  }
31
- export function nonNullable(value) {
32
- return value !== null && value !== undefined;
10
+ function findApiRootPath() {
11
+ const workspacePath = process.env.PNPM_SCRIPT_SRC_DIR ?? process.env.INIT_CWD;
12
+ if (nonNullable(workspacePath)) {
13
+ return workspacePath;
14
+ }
15
+ if (nonNullable(process.env.PNPM_PACKAGE_NAME)) {
16
+ return process.cwd().split(path.sep).join(path.sep);
17
+ }
18
+ const cwdPackagePath = path.join(process.cwd(), "package.json");
19
+ if (fs.existsSync(cwdPackagePath)) {
20
+ return process.cwd().split(path.sep).join(path.sep);
21
+ }
22
+ const basePath = import.meta.filename;
23
+ let dir = path.dirname(basePath);
24
+ if (dir.includes("/.yarn/")) {
25
+ dir = dir.split("/.yarn/")[0];
26
+ }
27
+ do {
28
+ if (fs.existsSync(path.join(dir, "/package.json"))) {
29
+ return dir.split(path.sep).join(path.sep);
30
+ }
31
+ dir = dir.split(path.sep).slice(0, -1).join(path.sep);
32
+ } while (dir.split(path.sep).length > 1);
33
+ throw new Error("Cannot find AppRoot using Sonamu -2");
33
34
  }
34
- export function exhaustive(_param) {
35
- throw new Error(`exhaustive`);
35
+ function nonNullable(value) {
36
+ return value !== null && value !== undefined;
36
37
  }
37
- // 일반 버전
38
- export function assertExists(value, message) {
39
- if (value === null || value === undefined) {
40
- throw new Error(message ?? "Value must exist");
41
- }
42
- return value;
38
+ function exhaustive(_param) {
39
+ throw new Error(`exhaustive`);
43
40
  }
44
- // null만 체크
45
- export function assertNotNull(value, message) {
46
- if (value === null) {
47
- throw new Error(message ?? "Value must not be null");
48
- }
49
- return value;
41
+ function assertExists(value, message) {
42
+ if (value === null || value === undefined) {
43
+ throw new Error(message ?? "Value must exist");
44
+ }
45
+ return value;
50
46
  }
51
- // undefined만 체크
52
- export function assertDefined(value, message) {
53
- if (value === undefined) {
54
- throw new Error(message ?? "Value must be defined");
55
- }
56
- return value;
47
+ function assertNotNull(value, message) {
48
+ if (value === null) {
49
+ throw new Error(message ?? "Value must not be null");
50
+ }
51
+ return value;
57
52
  }
58
- // lodash chunk 대체 (radash cluster 사용)
59
- export function chunk(array, size) {
60
- return cluster(array, Math.ceil(array.length / size));
53
+ function assertDefined(value, message) {
54
+ if (value === undefined) {
55
+ throw new Error(message ?? "Value must be defined");
56
+ }
57
+ return value;
61
58
  }
62
- // lodash intersectionBy 대체
63
- export function intersectionBy(arr1, arr2, iteratee) {
64
- const arr2Keys = new Set(arr2.map(iteratee));
65
- return arr1.filter((item)=>arr2Keys.has(iteratee(item)));
59
+ function intersectionBy(arr1, arr2, iteratee) {
60
+ const arr2Keys = new Set(arr2.map(iteratee));
61
+ return arr1.filter((item) => arr2Keys.has(iteratee(item)));
66
62
  }
67
- // lodash differenceWith 대체
68
- export function differenceWith(arr1, arr2, comparator) {
69
- return arr1.filter((itemA)=>!arr2.some((itemB)=>comparator(itemA, itemB)));
63
+ function differenceWith(arr1, arr2, comparator) {
64
+ return arr1.filter((itemA) => !arr2.some((itemB) => comparator(itemA, itemB)));
70
65
  }
71
- // biome-ignore lint/suspicious/noExplicitAny: dynamic property access
72
- export function merge(defaultObj, userObj) {
73
- // 원본 보존을 위해 defaultObj 복사
74
- const result = {
75
- ...defaultObj
76
- };
77
- // userObj의 속성을 순회
78
- for(const key in userObj){
79
- // userObj의 own property만 처리 (프로토타입 체인 제외)
80
- if (Object.hasOwn(userObj, key)) {
81
- const userValue = userObj[key];
82
- const defaultValue = result[key];
83
- // 두 값이 모두 객체이고, 배열이 아닌 경우 재귀적으로 병합
84
- if (isPlainObject(userValue) && isPlainObject(defaultValue)) {
85
- result[key] = merge(defaultValue, userValue);
86
- } else {
87
- // 그 외의 경우 userObj의 값으로 덮어쓰기
88
- result[key] = userValue;
89
- }
90
- }
91
- }
92
- return result;
66
+ function merge(defaultObj, userObj) {
67
+ const result = { ...defaultObj };
68
+ for (const key in userObj) {
69
+ if (Object.hasOwn(userObj, key)) {
70
+ const userValue = userObj[key];
71
+ const defaultValue = result[key];
72
+ if (isPlainObject(userValue) && isPlainObject(defaultValue)) {
73
+ result[key] = merge(defaultValue, userValue);
74
+ } else {
75
+ result[key] = userValue;
76
+ }
77
+ }
78
+ }
79
+ return result;
93
80
  }
94
- // plain object 판별 헬퍼 함수
95
- // (배열, null, Date 등을 제외한 순수 객체만 true)
96
81
  function isPlainObject(value) {
97
- return value !== null && typeof value === "object" && !Array.isArray(value) && Object.prototype.toString.call(value) === "[object Object]";
82
+ return value !== null && typeof value === "object" && !Array.isArray(value) && Object.prototype.toString.call(value) === "[object Object]";
98
83
  }
99
- // Convert Fastify headers to standard Headers object
100
- export function convertFastifyHeadersToStandard(headers) {
101
- const headersObj = new Headers();
102
- Object.entries(headers).forEach(([key, value])=>{
103
- if (value) headersObj.append(key, value.toString());
104
- });
105
- return headersObj;
84
+ function convertFastifyHeadersToStandard(headers) {
85
+ const headersObj = new Headers();
86
+ Object.entries(headers).forEach(([key, value]) => {
87
+ if (value) headersObj.append(key, value.toString());
88
+ });
89
+ return headersObj;
106
90
  }
91
+ var init_utils = __esmMin((() => {}));
107
92
 
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZhc3RpZnlSZXF1ZXN0IH0gZnJvbSBcImZhc3RpZnlcIjtcbmltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBjbHVzdGVyIH0gZnJvbSBcInJhZGFzaGlcIjtcbmltcG9ydCB0eXBlIHsgQWJzb2x1dGVQYXRoIH0gZnJvbSBcIi4vcGF0aC11dGlsc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZmluZEFwcFJvb3RQYXRoKCk6IEFic29sdXRlUGF0aCB7XG4gIGNvbnN0IGFwaVJvb3RQYXRoID0gZmluZEFwaVJvb3RQYXRoKCk7XG4gIHJldHVybiBwYXRoLmRpcm5hbWUoYXBpUm9vdFBhdGgpIGFzIEFic29sdXRlUGF0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBcGlSb290UGF0aCgpOiBBYnNvbHV0ZVBhdGgge1xuICAvLyBOT1RFOiBmb3Igc3VwcG9ydCBucG0gLyB5YXJuIC8gcG5wbSB3b3Jrc3BhY2VzXG4gIC8vIO2VmOyngOunjCB3b3Jrc3BhY2Ug7JOw66m0IHByb2Nlc3MuY3dkKCkg7ZWY66m0IOuQmOuKlOuNsC4uLiDsnbTqsbQg64KY7KSR7JeQIO2YkeydmCDtm4Qg7IiY7KCV7ZWY64qU6rG466GcXG4gIGNvbnN0IHdvcmtzcGFjZVBhdGggPSBwcm9jZXNzLmVudi5QTlBNX1NDUklQVF9TUkNfRElSID8/IHByb2Nlc3MuZW52LklOSVRfQ1dEO1xuICBpZiAobm9uTnVsbGFibGUod29ya3NwYWNlUGF0aCkpIHtcbiAgICByZXR1cm4gd29ya3NwYWNlUGF0aCBhcyBBYnNvbHV0ZVBhdGg7XG4gIH1cblxuICBpZiAobm9uTnVsbGFibGUocHJvY2Vzcy5lbnYuUE5QTV9QQUNLQUdFX05BTUUpKSB7XG4gICAgcmV0dXJuIHByb2Nlc3MuY3dkKCkuc3BsaXQocGF0aC5zZXApLmpvaW4ocGF0aC5zZXApIGFzIEFic29sdXRlUGF0aDtcbiAgfVxuXG4gIGNvbnN0IGJhc2VQYXRoID0gaW1wb3J0Lm1ldGEuZmlsZW5hbWU7XG4gIGxldCBkaXIgPSBwYXRoLmRpcm5hbWUoYmFzZVBhdGgpO1xuICBpZiAoZGlyLmluY2x1ZGVzKFwiLy55YXJuL1wiKSkge1xuICAgIGRpciA9IGRpci5zcGxpdChcIi8ueWFybi9cIilbMF07XG4gIH1cblxuICBkbyB7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKGRpciwgXCIvcGFja2FnZS5qc29uXCIpKSkge1xuICAgICAgcmV0dXJuIGRpci5zcGxpdChwYXRoLnNlcCkuam9pbihwYXRoLnNlcCkgYXMgQWJzb2x1dGVQYXRoO1xuICAgIH1cbiAgICBkaXIgPSBkaXIuc3BsaXQocGF0aC5zZXApLnNsaWNlKDAsIC0xKS5qb2luKHBhdGguc2VwKTtcbiAgfSB3aGlsZSAoZGlyLnNwbGl0KHBhdGguc2VwKS5sZW5ndGggPiAxKTtcbiAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgQXBwUm9vdCB1c2luZyBTb25hbXUgLTJcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub25OdWxsYWJsZTxUPih2YWx1ZTogVCk6IHZhbHVlIGlzIE5vbk51bGxhYmxlPFQ+IHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGhhdXN0aXZlKF9wYXJhbTogbmV2ZXIpIHtcbiAgdGhyb3cgbmV3IEVycm9yKGBleGhhdXN0aXZlYCk7XG59XG5cbi8vIOydvOuwmCDrsoTsoIRcbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRFeGlzdHM8VD4odmFsdWU6IFQgfCBudWxsIHwgdW5kZWZpbmVkLCBtZXNzYWdlPzogc3RyaW5nKTogVCB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UgPz8gXCJWYWx1ZSBtdXN0IGV4aXN0XCIpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLy8gbnVsbOunjCDssrTtgaxcbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnROb3ROdWxsPFQ+KHZhbHVlOiBUIHwgbnVsbCwgbWVzc2FnZT86IHN0cmluZyk6IFQge1xuICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSA/PyBcIlZhbHVlIG11c3Qgbm90IGJlIG51bGxcIik7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuLy8gdW5kZWZpbmVk66eMIOyytO2BrFxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydERlZmluZWQ8VD4odmFsdWU6IFQgfCB1bmRlZmluZWQsIG1lc3NhZ2U/OiBzdHJpbmcpOiBUIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSA/PyBcIlZhbHVlIG11c3QgYmUgZGVmaW5lZFwiKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbi8vIGxvZGFzaCBjaHVuayDrjIDssrQgKHJhZGFzaCBjbHVzdGVyIOyCrOyaqSlcbmV4cG9ydCBmdW5jdGlvbiBjaHVuazxUPihhcnJheTogVFtdLCBzaXplOiBudW1iZXIpOiBUW11bXSB7XG4gIHJldHVybiBjbHVzdGVyKGFycmF5LCBNYXRoLmNlaWwoYXJyYXkubGVuZ3RoIC8gc2l6ZSkpO1xufVxuLy8gbG9kYXNoIGludGVyc2VjdGlvbkJ5IOuMgOyytFxuZXhwb3J0IGZ1bmN0aW9uIGludGVyc2VjdGlvbkJ5PFQsIEs+KFxuICBhcnIxOiByZWFkb25seSBUW10sXG4gIGFycjI6IHJlYWRvbmx5IFRbXSxcbiAgaXRlcmF0ZWU6IChpdGVtOiBUKSA9PiBLLFxuKTogVFtdIHtcbiAgY29uc3QgYXJyMktleXMgPSBuZXcgU2V0KGFycjIubWFwKGl0ZXJhdGVlKSk7XG4gIHJldHVybiBhcnIxLmZpbHRlcigoaXRlbSkgPT4gYXJyMktleXMuaGFzKGl0ZXJhdGVlKGl0ZW0pKSk7XG59XG4vLyBsb2Rhc2ggZGlmZmVyZW5jZVdpdGgg64yA7LK0XG5leHBvcnQgZnVuY3Rpb24gZGlmZmVyZW5jZVdpdGg8VD4oXG4gIGFycjE6IHJlYWRvbmx5IFRbXSxcbiAgYXJyMjogcmVhZG9ubHkgVFtdLFxuICBjb21wYXJhdG9yOiAoYTogVCwgYjogVCkgPT4gYm9vbGVhbixcbik6IFRbXSB7XG4gIHJldHVybiBhcnIxLmZpbHRlcigoaXRlbUEpID0+ICFhcnIyLnNvbWUoKGl0ZW1CKSA9PiBjb21wYXJhdG9yKGl0ZW1BLCBpdGVtQikpKTtcbn1cblxuLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy9ub0V4cGxpY2l0QW55OiBkeW5hbWljIHByb3BlcnR5IGFjY2Vzc1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlPFQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+PihkZWZhdWx0T2JqOiBULCB1c2VyT2JqOiBUKTogVCB7XG4gIC8vIOybkOuzuCDrs7TsobTsnYQg7JyE7ZW0IGRlZmF1bHRPYmog67O17IKsXG4gIGNvbnN0IHJlc3VsdCA9IHsgLi4uZGVmYXVsdE9iaiB9O1xuXG4gIC8vIHVzZXJPYmrsnZgg6rCBIOyGjeyEseydhCDsiJztmoxcbiAgZm9yIChjb25zdCBrZXkgaW4gdXNlck9iaikge1xuICAgIC8vIHVzZXJPYmrsnZggb3duIHByb3BlcnR566eMIOyymOumrCAo7ZSE66Gc7Yag7YOA7J6FIOyytOyduCDsoJzsmbgpXG4gICAgaWYgKE9iamVjdC5oYXNPd24odXNlck9iaiwga2V5KSkge1xuICAgICAgY29uc3QgdXNlclZhbHVlID0gdXNlck9ialtrZXldO1xuICAgICAgY29uc3QgZGVmYXVsdFZhbHVlID0gcmVzdWx0W2tleV07XG5cbiAgICAgIC8vIOuRkCDqsJLsnbQg66qo65GQIOqwneyytOydtOqzoCwg67Cw7Je07J20IOyVhOuLjCDqsr3smrAg7J6s6reA7KCB7Jy866GcIOuzke2VqVxuICAgICAgaWYgKGlzUGxhaW5PYmplY3QodXNlclZhbHVlKSAmJiBpc1BsYWluT2JqZWN0KGRlZmF1bHRWYWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBtZXJnZShkZWZhdWx0VmFsdWUsIHVzZXJWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyDqt7gg7Jm47J2YIOqyveyasCB1c2VyT2Jq7J2YIOqwkuycvOuhnCDrja7slrTsk7DquLBcbiAgICAgICAgcmVzdWx0W2tleV0gPSB1c2VyVmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gcGxhaW4gb2JqZWN0IO2MkOuzhCDtl6ztjbwg7ZWo7IiYXG4vLyAo67Cw7Je0LCBudWxsLCBEYXRlIOuTseydhCDsoJzsmbjtlZwg7Iic7IiYIOqwneyytOunjCB0cnVlKVxuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgcmV0dXJuIChcbiAgICB2YWx1ZSAhPT0gbnVsbCAmJlxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09IFwiW29iamVjdCBPYmplY3RdXCJcbiAgKTtcbn1cblxuLy8gQ29udmVydCBGYXN0aWZ5IGhlYWRlcnMgdG8gc3RhbmRhcmQgSGVhZGVycyBvYmplY3RcbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RmFzdGlmeUhlYWRlcnNUb1N0YW5kYXJkKGhlYWRlcnM6IEZhc3RpZnlSZXF1ZXN0W1wiaGVhZGVyc1wiXSk6IEhlYWRlcnMge1xuICBjb25zdCBoZWFkZXJzT2JqID0gbmV3IEhlYWRlcnMoKTtcbiAgT2JqZWN0LmVudHJpZXMoaGVhZGVycykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgaWYgKHZhbHVlKSBoZWFkZXJzT2JqLmFwcGVuZChrZXksIHZhbHVlLnRvU3RyaW5nKCkpO1xuICB9KTtcbiAgcmV0dXJuIGhlYWRlcnNPYmo7XG59XG4iXSwibmFtZXMiOlsiZnMiLCJwYXRoIiwiY2x1c3RlciIsImZpbmRBcHBSb290UGF0aCIsImFwaVJvb3RQYXRoIiwiZmluZEFwaVJvb3RQYXRoIiwiZGlybmFtZSIsIndvcmtzcGFjZVBhdGgiLCJwcm9jZXNzIiwiZW52IiwiUE5QTV9TQ1JJUFRfU1JDX0RJUiIsIklOSVRfQ1dEIiwibm9uTnVsbGFibGUiLCJQTlBNX1BBQ0tBR0VfTkFNRSIsImN3ZCIsInNwbGl0Iiwic2VwIiwiam9pbiIsImJhc2VQYXRoIiwiZmlsZW5hbWUiLCJkaXIiLCJpbmNsdWRlcyIsImV4aXN0c1N5bmMiLCJzbGljZSIsImxlbmd0aCIsIkVycm9yIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJleGhhdXN0aXZlIiwiX3BhcmFtIiwiYXNzZXJ0RXhpc3RzIiwibWVzc2FnZSIsImFzc2VydE5vdE51bGwiLCJhc3NlcnREZWZpbmVkIiwiY2h1bmsiLCJhcnJheSIsInNpemUiLCJNYXRoIiwiY2VpbCIsImludGVyc2VjdGlvbkJ5IiwiYXJyMSIsImFycjIiLCJpdGVyYXRlZSIsImFycjJLZXlzIiwiU2V0IiwibWFwIiwiZmlsdGVyIiwiaXRlbSIsImhhcyIsImRpZmZlcmVuY2VXaXRoIiwiY29tcGFyYXRvciIsIml0ZW1BIiwic29tZSIsIml0ZW1CIiwibWVyZ2UiLCJkZWZhdWx0T2JqIiwidXNlck9iaiIsInJlc3VsdCIsImtleSIsIk9iamVjdCIsImhhc093biIsInVzZXJWYWx1ZSIsImRlZmF1bHRWYWx1ZSIsImlzUGxhaW5PYmplY3QiLCJBcnJheSIsImlzQXJyYXkiLCJwcm90b3R5cGUiLCJ0b1N0cmluZyIsImNhbGwiLCJjb252ZXJ0RmFzdGlmeUhlYWRlcnNUb1N0YW5kYXJkIiwiaGVhZGVycyIsImhlYWRlcnNPYmoiLCJIZWFkZXJzIiwiZW50cmllcyIsImZvckVhY2giLCJhcHBlbmQiXSwibWFwcGluZ3MiOiJBQUNBLE9BQU9BLFFBQVEsS0FBSztBQUNwQixPQUFPQyxVQUFVLE9BQU87QUFDeEIsU0FBU0MsT0FBTyxRQUFRLFVBQVU7QUFHbEMsT0FBTyxTQUFTQztJQUNkLE1BQU1DLGNBQWNDO0lBQ3BCLE9BQU9KLEtBQUtLLE9BQU8sQ0FBQ0Y7QUFDdEI7QUFFQSxPQUFPLFNBQVNDO0lBQ2QsaURBQWlEO0lBQ2pELDhEQUE4RDtJQUM5RCxNQUFNRSxnQkFBZ0JDLFFBQVFDLEdBQUcsQ0FBQ0MsbUJBQW1CLElBQUlGLFFBQVFDLEdBQUcsQ0FBQ0UsUUFBUTtJQUM3RSxJQUFJQyxZQUFZTCxnQkFBZ0I7UUFDOUIsT0FBT0E7SUFDVDtJQUVBLElBQUlLLFlBQVlKLFFBQVFDLEdBQUcsQ0FBQ0ksaUJBQWlCLEdBQUc7UUFDOUMsT0FBT0wsUUFBUU0sR0FBRyxHQUFHQyxLQUFLLENBQUNkLEtBQUtlLEdBQUcsRUFBRUMsSUFBSSxDQUFDaEIsS0FBS2UsR0FBRztJQUNwRDtJQUVBLE1BQU1FLFdBQVcsWUFBWUMsUUFBUTtJQUNyQyxJQUFJQyxNQUFNbkIsS0FBS0ssT0FBTyxDQUFDWTtJQUN2QixJQUFJRSxJQUFJQyxRQUFRLENBQUMsWUFBWTtRQUMzQkQsTUFBTUEsSUFBSUwsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQy9CO0lBRUEsR0FBRztRQUNELElBQUlmLEdBQUdzQixVQUFVLENBQUNyQixLQUFLZ0IsSUFBSSxDQUFDRyxLQUFLLG1CQUFtQjtZQUNsRCxPQUFPQSxJQUFJTCxLQUFLLENBQUNkLEtBQUtlLEdBQUcsRUFBRUMsSUFBSSxDQUFDaEIsS0FBS2UsR0FBRztRQUMxQztRQUNBSSxNQUFNQSxJQUFJTCxLQUFLLENBQUNkLEtBQUtlLEdBQUcsRUFBRU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHTixJQUFJLENBQUNoQixLQUFLZSxHQUFHO0lBQ3RELFFBQVNJLElBQUlMLEtBQUssQ0FBQ2QsS0FBS2UsR0FBRyxFQUFFUSxNQUFNLEdBQUcsRUFBRztJQUN6QyxNQUFNLElBQUlDLE1BQU07QUFDbEI7QUFFQSxPQUFPLFNBQVNiLFlBQWVjLEtBQVE7SUFDckMsT0FBT0EsVUFBVSxRQUFRQSxVQUFVQztBQUNyQztBQUVBLE9BQU8sU0FBU0MsV0FBV0MsTUFBYTtJQUN0QyxNQUFNLElBQUlKLE1BQU0sQ0FBQyxVQUFVLENBQUM7QUFDOUI7QUFFQSxRQUFRO0FBQ1IsT0FBTyxTQUFTSyxhQUFnQkosS0FBMkIsRUFBRUssT0FBZ0I7SUFDM0UsSUFBSUwsVUFBVSxRQUFRQSxVQUFVQyxXQUFXO1FBQ3pDLE1BQU0sSUFBSUYsTUFBTU0sV0FBVztJQUM3QjtJQUNBLE9BQU9MO0FBQ1Q7QUFFQSxXQUFXO0FBQ1gsT0FBTyxTQUFTTSxjQUFpQk4sS0FBZSxFQUFFSyxPQUFnQjtJQUNoRSxJQUFJTCxVQUFVLE1BQU07UUFDbEIsTUFBTSxJQUFJRCxNQUFNTSxXQUFXO0lBQzdCO0lBQ0EsT0FBT0w7QUFDVDtBQUNBLGdCQUFnQjtBQUNoQixPQUFPLFNBQVNPLGNBQWlCUCxLQUFvQixFQUFFSyxPQUFnQjtJQUNyRSxJQUFJTCxVQUFVQyxXQUFXO1FBQ3ZCLE1BQU0sSUFBSUYsTUFBTU0sV0FBVztJQUM3QjtJQUNBLE9BQU9MO0FBQ1Q7QUFFQSxzQ0FBc0M7QUFDdEMsT0FBTyxTQUFTUSxNQUFTQyxLQUFVLEVBQUVDLElBQVk7SUFDL0MsT0FBT2xDLFFBQVFpQyxPQUFPRSxLQUFLQyxJQUFJLENBQUNILE1BQU1YLE1BQU0sR0FBR1k7QUFDakQ7QUFDQSwyQkFBMkI7QUFDM0IsT0FBTyxTQUFTRyxlQUNkQyxJQUFrQixFQUNsQkMsSUFBa0IsRUFDbEJDLFFBQXdCO0lBRXhCLE1BQU1DLFdBQVcsSUFBSUMsSUFBSUgsS0FBS0ksR0FBRyxDQUFDSDtJQUNsQyxPQUFPRixLQUFLTSxNQUFNLENBQUMsQ0FBQ0MsT0FBU0osU0FBU0ssR0FBRyxDQUFDTixTQUFTSztBQUNyRDtBQUNBLDJCQUEyQjtBQUMzQixPQUFPLFNBQVNFLGVBQ2RULElBQWtCLEVBQ2xCQyxJQUFrQixFQUNsQlMsVUFBbUM7SUFFbkMsT0FBT1YsS0FBS00sTUFBTSxDQUFDLENBQUNLLFFBQVUsQ0FBQ1YsS0FBS1csSUFBSSxDQUFDLENBQUNDLFFBQVVILFdBQVdDLE9BQU9FO0FBQ3hFO0FBRUEsc0VBQXNFO0FBQ3RFLE9BQU8sU0FBU0MsTUFBcUNDLFVBQWEsRUFBRUMsT0FBVTtJQUM1RSwwQkFBMEI7SUFDMUIsTUFBTUMsU0FBUztRQUFFLEdBQUdGLFVBQVU7SUFBQztJQUUvQixvQkFBb0I7SUFDcEIsSUFBSyxNQUFNRyxPQUFPRixRQUFTO1FBQ3pCLDBDQUEwQztRQUMxQyxJQUFJRyxPQUFPQyxNQUFNLENBQUNKLFNBQVNFLE1BQU07WUFDL0IsTUFBTUcsWUFBWUwsT0FBTyxDQUFDRSxJQUFJO1lBQzlCLE1BQU1JLGVBQWVMLE1BQU0sQ0FBQ0MsSUFBSTtZQUVoQyxtQ0FBbUM7WUFDbkMsSUFBSUssY0FBY0YsY0FBY0UsY0FBY0QsZUFBZTtnQkFDM0RMLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHSixNQUFNUSxjQUFjRDtZQUNwQyxPQUFPO2dCQUNMLDRCQUE0QjtnQkFDNUJKLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHRztZQUNoQjtRQUNGO0lBQ0Y7SUFFQSxPQUFPSjtBQUNUO0FBRUEsd0JBQXdCO0FBQ3hCLHNDQUFzQztBQUN0QyxTQUFTTSxjQUFjckMsS0FBYztJQUNuQyxPQUNFQSxVQUFVLFFBQ1YsT0FBT0EsVUFBVSxZQUNqQixDQUFDc0MsTUFBTUMsT0FBTyxDQUFDdkMsVUFDZmlDLE9BQU9PLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDQyxJQUFJLENBQUMxQyxXQUFXO0FBRTlDO0FBRUEscURBQXFEO0FBQ3JELE9BQU8sU0FBUzJDLGdDQUFnQ0MsT0FBa0M7SUFDaEYsTUFBTUMsYUFBYSxJQUFJQztJQUN2QmIsT0FBT2MsT0FBTyxDQUFDSCxTQUFTSSxPQUFPLENBQUMsQ0FBQyxDQUFDaEIsS0FBS2hDLE1BQU07UUFDM0MsSUFBSUEsT0FBTzZDLFdBQVdJLE1BQU0sQ0FBQ2pCLEtBQUtoQyxNQUFNeUMsUUFBUTtJQUNsRDtJQUNBLE9BQU9JO0FBQ1QifQ==
93
+ //#endregion
94
+ init_utils();
95
+ export { assertDefined, assertExists, assertNotNull, convertFastifyHeadersToStandard, differenceWith, exhaustive, findApiRootPath, findAppRootPath, init_utils, intersectionBy, merge, nonNullable };
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3V0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmltcG9ydCB7IHR5cGUgRmFzdGlmeVJlcXVlc3QgfSBmcm9tIFwiZmFzdGlmeVwiO1xuXG5pbXBvcnQgeyB0eXBlIEFic29sdXRlUGF0aCB9IGZyb20gXCIuL3BhdGgtdXRpbHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRBcHBSb290UGF0aCgpOiBBYnNvbHV0ZVBhdGgge1xuICBjb25zdCBhcGlSb290UGF0aCA9IGZpbmRBcGlSb290UGF0aCgpO1xuICByZXR1cm4gcGF0aC5kaXJuYW1lKGFwaVJvb3RQYXRoKSBhcyBBYnNvbHV0ZVBhdGg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQXBpUm9vdFBhdGgoKTogQWJzb2x1dGVQYXRoIHtcbiAgLy8gTk9URTogZm9yIHN1cHBvcnQgbnBtIC8geWFybiAvIHBucG0gd29ya3NwYWNlc1xuICAvLyDtlZjsp4Drp4wgd29ya3NwYWNlIOyTsOuptCBwcm9jZXNzLmN3ZCgpIO2VmOuptCDrkJjripTrjbAuLi4g7J206rG0IOuCmOykkeyXkCDtmJHsnZgg7ZuEIOyImOygle2VmOuKlOqxuOuhnFxuICBjb25zdCB3b3Jrc3BhY2VQYXRoID0gcHJvY2Vzcy5lbnYuUE5QTV9TQ1JJUFRfU1JDX0RJUiA/PyBwcm9jZXNzLmVudi5JTklUX0NXRDtcbiAgaWYgKG5vbk51bGxhYmxlKHdvcmtzcGFjZVBhdGgpKSB7XG4gICAgcmV0dXJuIHdvcmtzcGFjZVBhdGggYXMgQWJzb2x1dGVQYXRoO1xuICB9XG5cbiAgaWYgKG5vbk51bGxhYmxlKHByb2Nlc3MuZW52LlBOUE1fUEFDS0FHRV9OQU1FKSkge1xuICAgIHJldHVybiBwcm9jZXNzLmN3ZCgpLnNwbGl0KHBhdGguc2VwKS5qb2luKHBhdGguc2VwKSBhcyBBYnNvbHV0ZVBhdGg7XG4gIH1cblxuICBjb25zdCBjd2RQYWNrYWdlUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBcInBhY2thZ2UuanNvblwiKTtcbiAgaWYgKGZzLmV4aXN0c1N5bmMoY3dkUGFja2FnZVBhdGgpKSB7XG4gICAgcmV0dXJuIHByb2Nlc3MuY3dkKCkuc3BsaXQocGF0aC5zZXApLmpvaW4ocGF0aC5zZXApIGFzIEFic29sdXRlUGF0aDtcbiAgfVxuXG4gIGNvbnN0IGJhc2VQYXRoID0gaW1wb3J0Lm1ldGEuZmlsZW5hbWU7XG4gIGxldCBkaXIgPSBwYXRoLmRpcm5hbWUoYmFzZVBhdGgpO1xuICBpZiAoZGlyLmluY2x1ZGVzKFwiLy55YXJuL1wiKSkge1xuICAgIGRpciA9IGRpci5zcGxpdChcIi8ueWFybi9cIilbMF07XG4gIH1cblxuICBkbyB7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKGRpciwgXCIvcGFja2FnZS5qc29uXCIpKSkge1xuICAgICAgcmV0dXJuIGRpci5zcGxpdChwYXRoLnNlcCkuam9pbihwYXRoLnNlcCkgYXMgQWJzb2x1dGVQYXRoO1xuICAgIH1cbiAgICBkaXIgPSBkaXIuc3BsaXQocGF0aC5zZXApLnNsaWNlKDAsIC0xKS5qb2luKHBhdGguc2VwKTtcbiAgfSB3aGlsZSAoZGlyLnNwbGl0KHBhdGguc2VwKS5sZW5ndGggPiAxKTtcbiAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgQXBwUm9vdCB1c2luZyBTb25hbXUgLTJcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub25OdWxsYWJsZTxUPih2YWx1ZTogVCk6IHZhbHVlIGlzIE5vbk51bGxhYmxlPFQ+IHtcbiAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleGhhdXN0aXZlKF9wYXJhbTogbmV2ZXIpIHtcbiAgdGhyb3cgbmV3IEVycm9yKGBleGhhdXN0aXZlYCk7XG59XG5cbi8vIOydvOuwmCDrsoTsoIRcbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRFeGlzdHM8VD4odmFsdWU6IFQgfCBudWxsIHwgdW5kZWZpbmVkLCBtZXNzYWdlPzogc3RyaW5nKTogVCB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UgPz8gXCJWYWx1ZSBtdXN0IGV4aXN0XCIpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLy8gbnVsbOunjCDssrTtgaxcbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnROb3ROdWxsPFQ+KHZhbHVlOiBUIHwgbnVsbCwgbWVzc2FnZT86IHN0cmluZyk6IFQge1xuICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSA/PyBcIlZhbHVlIG11c3Qgbm90IGJlIG51bGxcIik7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufVxuLy8gdW5kZWZpbmVk66eMIOyytO2BrFxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydERlZmluZWQ8VD4odmFsdWU6IFQgfCB1bmRlZmluZWQsIG1lc3NhZ2U/OiBzdHJpbmcpOiBUIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSA/PyBcIlZhbHVlIG11c3QgYmUgZGVmaW5lZFwiKTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5cbi8vIGxvZGFzaCBpbnRlcnNlY3Rpb25CeSDrjIDssrRcbmV4cG9ydCBmdW5jdGlvbiBpbnRlcnNlY3Rpb25CeTxULCBLPihcbiAgYXJyMTogcmVhZG9ubHkgVFtdLFxuICBhcnIyOiByZWFkb25seSBUW10sXG4gIGl0ZXJhdGVlOiAoaXRlbTogVCkgPT4gSyxcbik6IFRbXSB7XG4gIGNvbnN0IGFycjJLZXlzID0gbmV3IFNldChhcnIyLm1hcChpdGVyYXRlZSkpO1xuICByZXR1cm4gYXJyMS5maWx0ZXIoKGl0ZW0pID0+IGFycjJLZXlzLmhhcyhpdGVyYXRlZShpdGVtKSkpO1xufVxuLy8gbG9kYXNoIGRpZmZlcmVuY2VXaXRoIOuMgOyytFxuZXhwb3J0IGZ1bmN0aW9uIGRpZmZlcmVuY2VXaXRoPFQ+KFxuICBhcnIxOiByZWFkb25seSBUW10sXG4gIGFycjI6IHJlYWRvbmx5IFRbXSxcbiAgY29tcGFyYXRvcjogKGE6IFQsIGI6IFQpID0+IGJvb2xlYW4sXG4pOiBUW10ge1xuICByZXR1cm4gYXJyMS5maWx0ZXIoKGl0ZW1BKSA9PiAhYXJyMi5zb21lKChpdGVtQikgPT4gY29tcGFyYXRvcihpdGVtQSwgaXRlbUIpKSk7XG59XG5cbi8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvbm9FeHBsaWNpdEFueTogZHluYW1pYyBwcm9wZXJ0eSBhY2Nlc3NcbmV4cG9ydCBmdW5jdGlvbiBtZXJnZTxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55Pj4oZGVmYXVsdE9iajogVCwgdXNlck9iajogVCk6IFQge1xuICAvLyDsm5Drs7gg67O07KG07J2EIOychO2VtCBkZWZhdWx0T2JqIOuzteyCrFxuICBjb25zdCByZXN1bHQgPSB7IC4uLmRlZmF1bHRPYmogfTtcblxuICAvLyB1c2VyT2Jq7J2YIOqwgSDsho3shLHsnYQg7Iic7ZqMXG4gIGZvciAoY29uc3Qga2V5IGluIHVzZXJPYmopIHtcbiAgICAvLyB1c2VyT2Jq7J2YIG93biBwcm9wZXJ0eeunjCDsspjrpqwgKO2UhOuhnO2GoO2DgOyehSDssrTsnbgg7KCc7Jm4KVxuICAgIGlmIChPYmplY3QuaGFzT3duKHVzZXJPYmosIGtleSkpIHtcbiAgICAgIGNvbnN0IHVzZXJWYWx1ZSA9IHVzZXJPYmpba2V5XTtcbiAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHJlc3VsdFtrZXldO1xuXG4gICAgICAvLyDrkZAg6rCS7J20IOuqqOuRkCDqsJ3ssrTsnbTqs6AsIOuwsOyXtOydtCDslYTri4wg6rK97JqwIOyerOq3gOyggeycvOuhnCDrs5HtlalcbiAgICAgIGlmIChpc1BsYWluT2JqZWN0KHVzZXJWYWx1ZSkgJiYgaXNQbGFpbk9iamVjdChkZWZhdWx0VmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gbWVyZ2UoZGVmYXVsdFZhbHVlLCB1c2VyVmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8g6re4IOyZuOydmCDqsr3smrAgdXNlck9iauydmCDqsJLsnLzroZwg642u7Ja07JOw6riwXG4gICAgICAgIHJlc3VsdFtrZXldID0gdXNlclZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIHBsYWluIG9iamVjdCDtjJDrs4Qg7Zes7Y28IO2VqOyImFxuLy8gKOuwsOyXtCwgbnVsbCwgRGF0ZSDrk7HsnYQg7KCc7Jm47ZWcIOyInOyImCDqsJ3ssrTrp4wgdHJ1ZSlcbmZ1bmN0aW9uIGlzUGxhaW5PYmplY3QodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIHJldHVybiAoXG4gICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICB0eXBlb2YgdmFsdWUgPT09IFwib2JqZWN0XCIgJiZcbiAgICAhQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiZcbiAgICBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSBcIltvYmplY3QgT2JqZWN0XVwiXG4gICk7XG59XG5cbi8vIENvbnZlcnQgRmFzdGlmeSBoZWFkZXJzIHRvIHN0YW5kYXJkIEhlYWRlcnMgb2JqZWN0XG5leHBvcnQgZnVuY3Rpb24gY29udmVydEZhc3RpZnlIZWFkZXJzVG9TdGFuZGFyZChoZWFkZXJzOiBGYXN0aWZ5UmVxdWVzdFtcImhlYWRlcnNcIl0pOiBIZWFkZXJzIHtcbiAgY29uc3QgaGVhZGVyc09iaiA9IG5ldyBIZWFkZXJzKCk7XG4gIE9iamVjdC5lbnRyaWVzKGhlYWRlcnMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGlmICh2YWx1ZSkgaGVhZGVyc09iai5hcHBlbmQoa2V5LCB2YWx1ZS50b1N0cmluZygpKTtcbiAgfSk7XG4gIHJldHVybiBoZWFkZXJzT2JqO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQU9BLFNBQWdCLGtCQUFnQztDQUM5QyxNQUFNLGNBQWMsaUJBQWlCO0FBQ3JDLFFBQU8sS0FBSyxRQUFRLFlBQVk7O0FBR2xDLFNBQWdCLGtCQUFnQztDQUc5QyxNQUFNLGdCQUFnQixRQUFRLElBQUksdUJBQXVCLFFBQVEsSUFBSTtBQUNyRSxLQUFJLFlBQVksY0FBYyxFQUFFO0FBQzlCLFNBQU87O0FBR1QsS0FBSSxZQUFZLFFBQVEsSUFBSSxrQkFBa0IsRUFBRTtBQUM5QyxTQUFPLFFBQVEsS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUk7O0NBR3JELE1BQU0saUJBQWlCLEtBQUssS0FBSyxRQUFRLEtBQUssRUFBRSxlQUFlO0FBQy9ELEtBQUksR0FBRyxXQUFXLGVBQWUsRUFBRTtBQUNqQyxTQUFPLFFBQVEsS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUk7O0NBR3JELE1BQU0sV0FBVyxPQUFPLEtBQUs7Q0FDN0IsSUFBSSxNQUFNLEtBQUssUUFBUSxTQUFTO0FBQ2hDLEtBQUksSUFBSSxTQUFTLFVBQVUsRUFBRTtBQUMzQixRQUFNLElBQUksTUFBTSxVQUFVLENBQUM7O0FBRzdCLElBQUc7QUFDRCxNQUFJLEdBQUcsV0FBVyxLQUFLLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxFQUFFO0FBQ2xELFVBQU8sSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJOztBQUUzQyxRQUFNLElBQUksTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUk7VUFDOUMsSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLFNBQVM7QUFDdEMsT0FBTSxJQUFJLE1BQU0sc0NBQXNDOztBQUd4RCxTQUFnQixZQUFlLE9BQW1DO0FBQ2hFLFFBQU8sVUFBVSxRQUFRLFVBQVU7O0FBR3JDLFNBQWdCLFdBQVcsUUFBZTtBQUN4QyxPQUFNLElBQUksTUFBTSxhQUFhOztBQUkvQixTQUFnQixhQUFnQixPQUE2QixTQUFxQjtBQUNoRixLQUFJLFVBQVUsUUFBUSxVQUFVLFdBQVc7QUFDekMsUUFBTSxJQUFJLE1BQU0sV0FBVyxtQkFBbUI7O0FBRWhELFFBQU87O0FBSVQsU0FBZ0IsY0FBaUIsT0FBaUIsU0FBcUI7QUFDckUsS0FBSSxVQUFVLE1BQU07QUFDbEIsUUFBTSxJQUFJLE1BQU0sV0FBVyx5QkFBeUI7O0FBRXRELFFBQU87O0FBR1QsU0FBZ0IsY0FBaUIsT0FBc0IsU0FBcUI7QUFDMUUsS0FBSSxVQUFVLFdBQVc7QUFDdkIsUUFBTSxJQUFJLE1BQU0sV0FBVyx3QkFBd0I7O0FBRXJELFFBQU87O0FBSVQsU0FBZ0IsZUFDZCxNQUNBLE1BQ0EsVUFDSztDQUNMLE1BQU0sV0FBVyxJQUFJLElBQUksS0FBSyxJQUFJLFNBQVMsQ0FBQztBQUM1QyxRQUFPLEtBQUssUUFBUSxTQUFTLFNBQVMsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDOztBQUc1RCxTQUFnQixlQUNkLE1BQ0EsTUFDQSxZQUNLO0FBQ0wsUUFBTyxLQUFLLFFBQVEsVUFBVSxDQUFDLEtBQUssTUFBTSxVQUFVLFdBQVcsT0FBTyxNQUFNLENBQUMsQ0FBQzs7QUFJaEYsU0FBZ0IsTUFBcUMsWUFBZSxTQUFlO0NBRWpGLE1BQU0sU0FBUyxFQUFFLEdBQUcsWUFBWTtBQUdoQyxNQUFLLE1BQU0sT0FBTyxTQUFTO0FBRXpCLE1BQUksT0FBTyxPQUFPLFNBQVMsSUFBSSxFQUFFO0dBQy9CLE1BQU0sWUFBWSxRQUFRO0dBQzFCLE1BQU0sZUFBZSxPQUFPO0FBRzVCLE9BQUksY0FBYyxVQUFVLElBQUksY0FBYyxhQUFhLEVBQUU7QUFDM0QsV0FBTyxPQUFPLE1BQU0sY0FBYyxVQUFVO1VBQ3ZDO0FBRUwsV0FBTyxPQUFPOzs7O0FBS3BCLFFBQU87O0FBS1QsU0FBUyxjQUFjLE9BQWtEO0FBQ3ZFLFFBQ0UsVUFBVSxRQUNWLE9BQU8sVUFBVSxZQUNqQixDQUFDLE1BQU0sUUFBUSxNQUFNLElBQ3JCLE9BQU8sVUFBVSxTQUFTLEtBQUssTUFBTSxLQUFLOztBQUs5QyxTQUFnQixnQ0FBZ0MsU0FBNkM7Q0FDM0YsTUFBTSxhQUFhLElBQUksU0FBUztBQUNoQyxRQUFPLFFBQVEsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLFdBQVc7QUFDaEQsTUFBSSxNQUFPLFlBQVcsT0FBTyxLQUFLLE1BQU0sVUFBVSxDQUFDO0dBQ25EO0FBQ0YsUUFBTyJ9
@@ -1,4 +1,4 @@
1
- import type { z } from "zod";
1
+ import { type z } from "zod";
2
2
  type ValidationError = {
3
3
  path: string[];
4
4
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"zod-error.d.ts","sourceRoot":"","sources":["../../src/utils/zod-error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,eAAe,EAAE,CAgBrE"}
1
+ {"version":3,"file":"zod-error.d.ts","sourceRoot":"","sources":["../../src/utils/zod-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,GAAG,eAAe,EAAE,CAgBrE"}