sonamu 0.5.6 → 0.6.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 (365) hide show
  1. package/dist/api/base-frame.js +12 -2
  2. package/dist/api/caster.js +66 -2
  3. package/dist/api/code-converters.js +489 -2
  4. package/dist/api/config.d.ts +76 -0
  5. package/dist/api/config.d.ts.map +1 -0
  6. package/dist/api/config.js +32 -0
  7. package/dist/api/context.d.ts +1 -0
  8. package/dist/api/context.d.ts.map +1 -1
  9. package/dist/api/context.js +3 -2
  10. package/dist/api/decorators.d.ts +1 -0
  11. package/dist/api/decorators.d.ts.map +1 -1
  12. package/dist/api/decorators.js +142 -2
  13. package/dist/api/index.js +9 -2
  14. package/dist/api/sonamu.d.ts +8 -22
  15. package/dist/api/sonamu.d.ts.map +1 -1
  16. package/dist/api/sonamu.js +482 -2
  17. package/dist/bin/build-config.d.ts +2 -1
  18. package/dist/bin/build-config.d.ts.map +1 -1
  19. package/dist/bin/build-config.js +12 -2
  20. package/dist/bin/cli-wrapper.js +71 -2
  21. package/dist/bin/cli.js +418 -2
  22. package/dist/bin/hot-hook-register.d.ts +11 -0
  23. package/dist/bin/hot-hook-register.d.ts.map +1 -0
  24. package/dist/bin/hot-hook-register.js +21 -0
  25. package/dist/database/_batch_update.js +78 -2
  26. package/dist/database/base-model.js +247 -2
  27. package/dist/database/code-generator.js +53 -2
  28. package/dist/database/db.d.ts +5 -16
  29. package/dist/database/db.d.ts.map +1 -1
  30. package/dist/database/db.js +132 -2
  31. package/dist/database/knex-plugins/knex-on-duplicate-update.js +39 -2
  32. package/dist/database/puri-wrapper.d.ts +22 -10
  33. package/dist/database/puri-wrapper.d.ts.map +1 -1
  34. package/dist/database/puri-wrapper.js +109 -2
  35. package/dist/database/puri.d.ts +105 -73
  36. package/dist/database/puri.d.ts.map +1 -1
  37. package/dist/database/puri.js +539 -2
  38. package/dist/database/puri.types.d.ts +33 -42
  39. package/dist/database/puri.types.d.ts.map +1 -1
  40. package/dist/database/puri.types.js +3 -2
  41. package/dist/database/transaction-context.d.ts +3 -3
  42. package/dist/database/transaction-context.d.ts.map +1 -1
  43. package/dist/database/transaction-context.js +14 -2
  44. package/dist/database/upsert-builder.js +215 -2
  45. package/dist/entity/entity-manager.d.ts +3 -1
  46. package/dist/entity/entity-manager.d.ts.map +1 -1
  47. package/dist/entity/entity-manager.js +114 -2
  48. package/dist/entity/entity-utils.js +210 -2
  49. package/dist/entity/entity.d.ts.map +1 -1
  50. package/dist/entity/entity.js +651 -2
  51. package/dist/exceptions/error-handler.js +29 -2
  52. package/dist/exceptions/so-exceptions.js +85 -2
  53. package/dist/file-storage/driver.js +79 -2
  54. package/dist/file-storage/file-storage.js +75 -2
  55. package/dist/index.d.ts +2 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +28 -2
  58. package/dist/migration/code-generation.js +558 -2
  59. package/dist/migration/migration-set.js +364 -2
  60. package/dist/migration/migrator.d.ts +0 -9
  61. package/dist/migration/migrator.d.ts.map +1 -1
  62. package/dist/migration/migrator.js +510 -2
  63. package/dist/migration/types.js +3 -2
  64. package/dist/naite/naite.d.ts +12 -0
  65. package/dist/naite/naite.d.ts.map +1 -0
  66. package/dist/naite/naite.js +72 -0
  67. package/dist/stream/index.js +3 -2
  68. package/dist/stream/sse.js +38 -2
  69. package/dist/syncer/api-parser.d.ts +20 -0
  70. package/dist/syncer/api-parser.d.ts.map +1 -0
  71. package/dist/syncer/api-parser.js +229 -0
  72. package/dist/syncer/checksum.d.ts +21 -0
  73. package/dist/syncer/checksum.d.ts.map +1 -0
  74. package/dist/syncer/checksum.js +98 -0
  75. package/dist/syncer/code-generator.d.ts +20 -0
  76. package/dist/syncer/code-generator.d.ts.map +1 -0
  77. package/dist/syncer/code-generator.js +141 -0
  78. package/dist/syncer/entity-operations.d.ts +17 -0
  79. package/dist/syncer/entity-operations.d.ts.map +1 -0
  80. package/dist/syncer/entity-operations.js +58 -0
  81. package/dist/syncer/file-patterns.d.ts +29 -0
  82. package/dist/syncer/file-patterns.d.ts.map +1 -0
  83. package/dist/syncer/file-patterns.js +38 -0
  84. package/dist/syncer/index.d.ts +6 -0
  85. package/dist/syncer/index.d.ts.map +1 -1
  86. package/dist/syncer/index.js +9 -2
  87. package/dist/syncer/module-loader.d.ts +35 -0
  88. package/dist/syncer/module-loader.d.ts.map +1 -0
  89. package/dist/syncer/module-loader.js +82 -0
  90. package/dist/syncer/syncer.d.ts +93 -108
  91. package/dist/syncer/syncer.d.ts.map +1 -1
  92. package/dist/syncer/syncer.js +375 -2
  93. package/dist/template/entity-converter.d.ts +14 -0
  94. package/dist/template/entity-converter.d.ts.map +1 -0
  95. package/dist/template/entity-converter.js +101 -0
  96. package/dist/template/helpers.d.ts +23 -0
  97. package/dist/template/helpers.d.ts.map +1 -0
  98. package/dist/template/helpers.js +64 -0
  99. package/dist/{templates → template/implementations}/entity.template.d.ts +3 -3
  100. package/dist/template/implementations/entity.template.d.ts.map +1 -0
  101. package/dist/template/implementations/entity.template.js +87 -0
  102. package/dist/{templates → template/implementations}/generated.template.d.ts +3 -3
  103. package/dist/template/implementations/generated.template.d.ts.map +1 -0
  104. package/dist/template/implementations/generated.template.js +232 -0
  105. package/dist/{templates → template/implementations}/generated_http.template.d.ts +3 -3
  106. package/dist/template/implementations/generated_http.template.d.ts.map +1 -0
  107. package/dist/template/implementations/generated_http.template.js +131 -0
  108. package/dist/{templates → template/implementations}/generated_sso.template.d.ts +3 -3
  109. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -0
  110. package/dist/template/implementations/generated_sso.template.js +105 -0
  111. package/dist/{templates → template/implementations}/init_types.template.d.ts +3 -3
  112. package/dist/template/implementations/init_types.template.d.ts.map +1 -0
  113. package/dist/template/implementations/init_types.template.js +38 -0
  114. package/dist/template/implementations/model.template.d.ts +17 -0
  115. package/dist/template/implementations/model.template.d.ts.map +1 -0
  116. package/dist/template/implementations/model.template.js +171 -0
  117. package/dist/{templates → template/implementations}/model_test.template.d.ts +3 -3
  118. package/dist/template/implementations/model_test.template.d.ts.map +1 -0
  119. package/dist/template/implementations/model_test.template.js +35 -0
  120. package/dist/{templates → template/implementations}/service.template.d.ts +6 -6
  121. package/dist/template/implementations/service.template.d.ts.map +1 -0
  122. package/dist/template/implementations/service.template.js +193 -0
  123. package/dist/{templates → template/implementations}/view_enums_buttonset.template.d.ts +3 -3
  124. package/dist/template/implementations/view_enums_buttonset.template.d.ts.map +1 -0
  125. package/dist/template/implementations/view_enums_buttonset.template.js +31 -0
  126. package/dist/{templates → template/implementations}/view_enums_dropdown.template.d.ts +3 -4
  127. package/dist/template/implementations/view_enums_dropdown.template.d.ts.map +1 -0
  128. package/dist/template/implementations/view_enums_dropdown.template.js +50 -0
  129. package/dist/{templates → template/implementations}/view_enums_select.template.d.ts +3 -3
  130. package/dist/template/implementations/view_enums_select.template.d.ts.map +1 -0
  131. package/dist/template/implementations/view_enums_select.template.js +55 -0
  132. package/dist/{templates → template/implementations}/view_form.template.d.ts +5 -5
  133. package/dist/template/implementations/view_form.template.d.ts.map +1 -0
  134. package/dist/template/implementations/view_form.template.js +337 -0
  135. package/dist/{templates → template/implementations}/view_id_all_select.template.d.ts +3 -3
  136. package/dist/template/implementations/view_id_all_select.template.d.ts.map +1 -0
  137. package/dist/template/implementations/view_id_all_select.template.js +31 -0
  138. package/dist/{templates → template/implementations}/view_id_async_select.template.d.ts +3 -3
  139. package/dist/template/implementations/view_id_async_select.template.d.ts.map +1 -0
  140. package/dist/template/implementations/view_id_async_select.template.js +105 -0
  141. package/dist/{templates → template/implementations}/view_list.template.d.ts +5 -13
  142. package/dist/template/implementations/view_list.template.d.ts.map +1 -0
  143. package/dist/template/implementations/view_list.template.js +465 -0
  144. package/dist/{templates → template/implementations}/view_list_columns.template.d.ts +3 -3
  145. package/dist/template/implementations/view_list_columns.template.d.ts.map +1 -0
  146. package/dist/template/implementations/view_list_columns.template.js +49 -0
  147. package/dist/{templates → template/implementations}/view_search_input.template.d.ts +3 -3
  148. package/dist/template/implementations/view_search_input.template.d.ts.map +1 -0
  149. package/dist/template/implementations/view_search_input.template.js +64 -0
  150. package/dist/template/index.d.ts +5 -0
  151. package/dist/template/index.d.ts.map +1 -0
  152. package/dist/template/index.js +6 -0
  153. package/dist/template/template.d.ts +39 -0
  154. package/dist/template/template.d.ts.map +1 -0
  155. package/dist/template/template.js +47 -0
  156. package/dist/template/zod-converter.d.ts +18 -0
  157. package/dist/template/zod-converter.d.ts.map +1 -0
  158. package/dist/template/zod-converter.js +166 -0
  159. package/dist/testing/_relation-graph.js +80 -2
  160. package/dist/testing/fixture-manager.d.ts.map +1 -1
  161. package/dist/testing/fixture-manager.js +521 -2
  162. package/dist/types/types.d.ts +39 -40
  163. package/dist/types/types.d.ts.map +1 -1
  164. package/dist/types/types.js +289 -2
  165. package/dist/typings/knex.d.js +3 -2
  166. package/dist/utils/async-utils.d.ts +7 -0
  167. package/dist/utils/async-utils.d.ts.map +1 -1
  168. package/dist/utils/async-utils.js +57 -2
  169. package/dist/utils/console-util.d.ts +2 -0
  170. package/dist/utils/console-util.d.ts.map +1 -0
  171. package/dist/utils/console-util.js +6 -0
  172. package/dist/utils/controller.js +26 -2
  173. package/dist/utils/esm-utils.d.ts +45 -0
  174. package/dist/utils/esm-utils.d.ts.map +1 -0
  175. package/dist/utils/esm-utils.js +56 -0
  176. package/dist/utils/fs-utils.js +17 -2
  177. package/dist/utils/lodash-able.js +6 -2
  178. package/dist/utils/model.js +22 -2
  179. package/dist/utils/path-utils.d.ts +89 -0
  180. package/dist/utils/path-utils.d.ts.map +1 -0
  181. package/dist/utils/path-utils.js +60 -0
  182. package/dist/utils/process-utils.d.ts +13 -0
  183. package/dist/utils/process-utils.d.ts.map +1 -0
  184. package/dist/utils/process-utils.js +36 -0
  185. package/dist/utils/sql-parser.js +35 -2
  186. package/dist/utils/utils.d.ts +4 -7
  187. package/dist/utils/utils.d.ts.map +1 -1
  188. package/dist/utils/utils.js +33 -2
  189. package/dist/utils/zod-error.d.ts.map +1 -1
  190. package/dist/utils/zod-error.js +19 -2
  191. package/package.json +21 -9
  192. package/src/api/code-converters.ts +2 -2
  193. package/src/api/config.ts +142 -0
  194. package/src/api/context.ts +1 -0
  195. package/src/api/decorators.ts +15 -5
  196. package/src/api/sonamu.ts +102 -87
  197. package/src/bin/build-config.ts +2 -1
  198. package/src/bin/cli-wrapper.ts +10 -3
  199. package/src/bin/cli.ts +108 -56
  200. package/src/bin/hot-hook-register.ts +22 -0
  201. package/src/database/base-model.ts +1 -1
  202. package/src/database/code-generator.ts +1 -1
  203. package/src/database/db.ts +53 -60
  204. package/src/database/puri-wrapper.ts +104 -26
  205. package/src/database/puri.ts +477 -580
  206. package/src/database/puri.types.ts +111 -201
  207. package/src/database/transaction-context.ts +4 -4
  208. package/src/database/upsert-builder.ts +1 -1
  209. package/src/entity/entity-manager.ts +19 -15
  210. package/src/entity/entity.ts +4 -3
  211. package/src/index.ts +2 -0
  212. package/src/migration/code-generation.ts +1 -1
  213. package/src/migration/migration-set.ts +1 -1
  214. package/src/migration/migrator.ts +23 -152
  215. package/src/naite/naite.ts +70 -0
  216. package/src/syncer/api-parser.ts +299 -0
  217. package/src/syncer/checksum.ts +152 -0
  218. package/src/syncer/code-generator.ts +202 -0
  219. package/src/syncer/entity-operations.ts +68 -0
  220. package/src/syncer/file-patterns.ts +56 -0
  221. package/src/syncer/index.ts +6 -0
  222. package/src/syncer/module-loader.ts +125 -0
  223. package/src/syncer/syncer.ts +363 -1420
  224. package/src/template/entity-converter.ts +123 -0
  225. package/src/template/helpers.ts +84 -0
  226. package/src/{templates → template/implementations}/entity.template.ts +4 -4
  227. package/src/{templates → template/implementations}/generated.template.ts +9 -9
  228. package/src/{templates → template/implementations}/generated_http.template.ts +9 -6
  229. package/src/{templates → template/implementations}/generated_sso.template.ts +7 -7
  230. package/src/{templates → template/implementations}/init_types.template.ts +4 -4
  231. package/src/{templates → template/implementations}/model.template.ts +9 -9
  232. package/src/{templates → template/implementations}/model_test.template.ts +5 -5
  233. package/src/{templates → template/implementations}/service.template.ts +29 -12
  234. package/src/{templates → template/implementations}/view_enums_buttonset.template.ts +3 -3
  235. package/src/{templates → template/implementations}/view_enums_dropdown.template.ts +5 -21
  236. package/src/{templates → template/implementations}/view_enums_select.template.ts +4 -4
  237. package/src/{templates → template/implementations}/view_form.template.ts +11 -13
  238. package/src/{templates → template/implementations}/view_id_all_select.template.ts +3 -3
  239. package/src/{templates → template/implementations}/view_id_async_select.template.ts +3 -3
  240. package/src/{templates → template/implementations}/view_list.template.ts +13 -64
  241. package/src/{templates → template/implementations}/view_list_columns.template.ts +3 -3
  242. package/src/{templates → template/implementations}/view_search_input.template.ts +3 -3
  243. package/src/template/index.ts +4 -0
  244. package/src/template/template.ts +86 -0
  245. package/src/template/zod-converter.ts +219 -0
  246. package/src/testing/fixture-manager.ts +8 -1
  247. package/src/types/types.ts +39 -62
  248. package/src/utils/async-utils.ts +17 -0
  249. package/src/utils/console-util.ts +4 -0
  250. package/src/utils/esm-utils.ts +69 -0
  251. package/src/utils/path-utils.ts +102 -0
  252. package/src/utils/process-utils.ts +46 -0
  253. package/src/utils/sql-parser.ts +1 -1
  254. package/src/utils/utils.ts +14 -40
  255. package/src/utils/zod-error.ts +0 -1
  256. package/dist/api/base-frame.js.map +0 -1
  257. package/dist/api/caster.js.map +0 -1
  258. package/dist/api/code-converters.js.map +0 -1
  259. package/dist/api/context.js.map +0 -1
  260. package/dist/api/decorators.js.map +0 -1
  261. package/dist/api/index.js.map +0 -1
  262. package/dist/api/sonamu.js.map +0 -1
  263. package/dist/bin/build-config.js.map +0 -1
  264. package/dist/bin/cli-wrapper.js.map +0 -1
  265. package/dist/bin/cli.js.map +0 -1
  266. package/dist/database/_batch_update.js.map +0 -1
  267. package/dist/database/base-model.js.map +0 -1
  268. package/dist/database/code-generator.js.map +0 -1
  269. package/dist/database/db.js.map +0 -1
  270. package/dist/database/knex-plugins/knex-on-duplicate-update.js.map +0 -1
  271. package/dist/database/puri-wrapper.js.map +0 -1
  272. package/dist/database/puri.js.map +0 -1
  273. package/dist/database/puri.types.js.map +0 -1
  274. package/dist/database/transaction-context.js.map +0 -1
  275. package/dist/database/upsert-builder.js.map +0 -1
  276. package/dist/entity/entity-manager.js.map +0 -1
  277. package/dist/entity/entity-utils.js.map +0 -1
  278. package/dist/entity/entity.js.map +0 -1
  279. package/dist/exceptions/error-handler.js.map +0 -1
  280. package/dist/exceptions/so-exceptions.js.map +0 -1
  281. package/dist/file-storage/driver.js.map +0 -1
  282. package/dist/file-storage/file-storage.js.map +0 -1
  283. package/dist/index.js.map +0 -1
  284. package/dist/migration/code-generation.js.map +0 -1
  285. package/dist/migration/migration-set.js.map +0 -1
  286. package/dist/migration/migrator.js.map +0 -1
  287. package/dist/migration/types.js.map +0 -1
  288. package/dist/stream/index.js.map +0 -1
  289. package/dist/stream/sse.js.map +0 -1
  290. package/dist/syncer/index.js.map +0 -1
  291. package/dist/syncer/syncer.js.map +0 -1
  292. package/dist/templates/base-template.d.ts +0 -13
  293. package/dist/templates/base-template.d.ts.map +0 -1
  294. package/dist/templates/base-template.js +0 -2
  295. package/dist/templates/base-template.js.map +0 -1
  296. package/dist/templates/entity.template.d.ts.map +0 -1
  297. package/dist/templates/entity.template.js +0 -2
  298. package/dist/templates/entity.template.js.map +0 -1
  299. package/dist/templates/generated.template.d.ts.map +0 -1
  300. package/dist/templates/generated.template.js +0 -2
  301. package/dist/templates/generated.template.js.map +0 -1
  302. package/dist/templates/generated_http.template.d.ts.map +0 -1
  303. package/dist/templates/generated_http.template.js +0 -2
  304. package/dist/templates/generated_http.template.js.map +0 -1
  305. package/dist/templates/generated_sso.template.d.ts.map +0 -1
  306. package/dist/templates/generated_sso.template.js +0 -2
  307. package/dist/templates/generated_sso.template.js.map +0 -1
  308. package/dist/templates/index.d.ts +0 -2
  309. package/dist/templates/index.d.ts.map +0 -1
  310. package/dist/templates/index.js +0 -2
  311. package/dist/templates/index.js.map +0 -1
  312. package/dist/templates/init_types.template.d.ts.map +0 -1
  313. package/dist/templates/init_types.template.js +0 -2
  314. package/dist/templates/init_types.template.js.map +0 -1
  315. package/dist/templates/model.template.d.ts +0 -17
  316. package/dist/templates/model.template.d.ts.map +0 -1
  317. package/dist/templates/model.template.js +0 -2
  318. package/dist/templates/model.template.js.map +0 -1
  319. package/dist/templates/model_test.template.d.ts.map +0 -1
  320. package/dist/templates/model_test.template.js +0 -2
  321. package/dist/templates/model_test.template.js.map +0 -1
  322. package/dist/templates/service.template.d.ts.map +0 -1
  323. package/dist/templates/service.template.js +0 -2
  324. package/dist/templates/service.template.js.map +0 -1
  325. package/dist/templates/view_enums_buttonset.template.d.ts.map +0 -1
  326. package/dist/templates/view_enums_buttonset.template.js +0 -2
  327. package/dist/templates/view_enums_buttonset.template.js.map +0 -1
  328. package/dist/templates/view_enums_dropdown.template.d.ts.map +0 -1
  329. package/dist/templates/view_enums_dropdown.template.js +0 -2
  330. package/dist/templates/view_enums_dropdown.template.js.map +0 -1
  331. package/dist/templates/view_enums_select.template.d.ts.map +0 -1
  332. package/dist/templates/view_enums_select.template.js +0 -2
  333. package/dist/templates/view_enums_select.template.js.map +0 -1
  334. package/dist/templates/view_form.template.d.ts.map +0 -1
  335. package/dist/templates/view_form.template.js +0 -2
  336. package/dist/templates/view_form.template.js.map +0 -1
  337. package/dist/templates/view_id_all_select.template.d.ts.map +0 -1
  338. package/dist/templates/view_id_all_select.template.js +0 -2
  339. package/dist/templates/view_id_all_select.template.js.map +0 -1
  340. package/dist/templates/view_id_async_select.template.d.ts.map +0 -1
  341. package/dist/templates/view_id_async_select.template.js +0 -2
  342. package/dist/templates/view_id_async_select.template.js.map +0 -1
  343. package/dist/templates/view_list.template.d.ts.map +0 -1
  344. package/dist/templates/view_list.template.js +0 -2
  345. package/dist/templates/view_list.template.js.map +0 -1
  346. package/dist/templates/view_list_columns.template.d.ts.map +0 -1
  347. package/dist/templates/view_list_columns.template.js +0 -2
  348. package/dist/templates/view_list_columns.template.js.map +0 -1
  349. package/dist/templates/view_search_input.template.d.ts.map +0 -1
  350. package/dist/templates/view_search_input.template.js +0 -2
  351. package/dist/templates/view_search_input.template.js.map +0 -1
  352. package/dist/testing/_relation-graph.js.map +0 -1
  353. package/dist/testing/fixture-manager.js.map +0 -1
  354. package/dist/types/types.js.map +0 -1
  355. package/dist/typings/knex.d.js.map +0 -1
  356. package/dist/utils/async-utils.js.map +0 -1
  357. package/dist/utils/controller.js.map +0 -1
  358. package/dist/utils/fs-utils.js.map +0 -1
  359. package/dist/utils/lodash-able.js.map +0 -1
  360. package/dist/utils/model.js.map +0 -1
  361. package/dist/utils/sql-parser.js.map +0 -1
  362. package/dist/utils/utils.js.map +0 -1
  363. package/dist/utils/zod-error.js.map +0 -1
  364. package/src/templates/base-template.ts +0 -19
  365. package/src/templates/index.ts +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/service.template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAgB,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAQ3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,qBAAa,iBAAkB,SAAQ,QAAQ;;IAK7C,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IAOzC,MAAM,CAAC,EAAE,WAAW,EAAE,EAAE,eAAe,CAAC,SAAS,CAAC;;;;;;;IAmClD,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG;QAClC,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB;IAyHD,WAAW,CACT,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM;IA8BpB,oBAAoB,CAClB,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,oBAAoB,EAAE,QAAQ,EAAE;IA6ClC,SAAS,CACP,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM;IAsBpB,iBAAiB,CACf,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM;IAapB,YAAY,CACV,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM;CAuB5B"}
@@ -0,0 +1,193 @@
1
+ import inflection from "inflection";
2
+ import * as _ from "lodash-es";
3
+ import { ApiParamType } from "../../types/types.js";
4
+ import { apiParamTypeToTsType, apiParamToTsCode, unwrapPromiseOnce, zodTypeToTsTypeDef, apiParamToTsCodeAsObject } from "../../api/code-converters.js";
5
+ import { Template } from "../template.js";
6
+ import { Sonamu } from "../../api/sonamu.js";
7
+ export class Template__service extends Template {
8
+ constructor(){
9
+ super("service");
10
+ }
11
+ getTargetAndPath(names) {
12
+ return {
13
+ target: ":target/src/services",
14
+ path: `${names.fs}/${names.fs}.service.ts`
15
+ };
16
+ }
17
+ render({ namesRecord }) {
18
+ const { syncer: { apis } } = Sonamu;
19
+ const apisForThisModel = apis.filter((api)=>api.modelName === `${namesRecord.capital}Model`);
20
+ // 서비스 TypeSource
21
+ const { lines, importKeys } = this.getTypeSource(apisForThisModel);
22
+ // AxiosProgressEvent 있는지 확인
23
+ const hasAxiosProgressEvent = apis.find((api)=>(api.options.clients ?? []).includes("axios-multipart"));
24
+ return {
25
+ ...this.getTargetAndPath(namesRecord),
26
+ body: lines.join("\n"),
27
+ importKeys: importKeys.filter((key)=>[
28
+ "ListResult"
29
+ ].includes(key) === false),
30
+ customHeaders: [
31
+ `import { z } from 'zod';`,
32
+ `import qs from "qs";`,
33
+ `import useSWR, { SWRResponse } from "swr";`,
34
+ `import { fetch, ListResult, SWRError, SwrOptions, handleConditional, swrPostFetcher, EventHandlers, SSEStreamOptions, useSSEStream } from '../sonamu.shared';`,
35
+ ...hasAxiosProgressEvent ? [
36
+ `import { AxiosProgressEvent } from 'axios';`
37
+ ] : []
38
+ ]
39
+ };
40
+ }
41
+ getTypeSource(apis) {
42
+ const importKeys = [];
43
+ // 제네릭에서 선언한 타입, importKeys에서 제외 필요
44
+ let typeParamNames = [];
45
+ const groups = _.groupBy(apis, (api)=>api.modelName);
46
+ const body = Object.keys(groups).map((modelName)=>{
47
+ const methods = groups[modelName];
48
+ const methodCodes = methods.map((api)=>{
49
+ // 컨텍스트 제외된 파라미터 리스트
50
+ const paramsWithoutContext = api.parameters.filter((param)=>!ApiParamType.isContext(param.type) && !ApiParamType.isRefKnex(param.type) && !(param.optional === true && param.name.startsWith("_") // _로 시작하는 파라미터는 제외
51
+ ));
52
+ // 파라미터 타입 정의
53
+ const typeParamsDef = api.typeParameters.map((typeParam)=>{
54
+ return apiParamTypeToTsType(typeParam, importKeys);
55
+ }).join(", ");
56
+ typeParamNames = typeParamNames.concat(api.typeParameters.map((typeParam)=>typeParam.id));
57
+ // 파라미터 정의
58
+ const paramsDef = apiParamToTsCode(paramsWithoutContext, importKeys);
59
+ // 파라미터 정의 (객체 형태)
60
+ const paramsDefAsObject = apiParamToTsCodeAsObject(paramsWithoutContext, importKeys);
61
+ // 리턴 타입 정의
62
+ const returnTypeDef = apiParamTypeToTsType(unwrapPromiseOnce(api.returnType), importKeys);
63
+ // 페이로드 데이터 정의
64
+ const payloadDef = `{ ${paramsWithoutContext.map((param)=>param.name).join(", ")} }`;
65
+ // 기본 URL
66
+ const apiBaseUrl = `${Sonamu.config.api.route.prefix}${api.path}`;
67
+ return [
68
+ // 클라이언트별로 생성
69
+ ..._.sortBy(api.options.clients, (client)=>client === "swr" ? 0 : 1).map((client)=>{
70
+ switch(client){
71
+ case "axios":
72
+ return this.renderAxios(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, payloadDef);
73
+ case "axios-multipart":
74
+ return this.renderAxiosMultipart(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, paramsWithoutContext);
75
+ case "swr":
76
+ return this.renderSwr(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, payloadDef);
77
+ case "window-fetch":
78
+ return this.renderWindowFetch(api, apiBaseUrl, typeParamsDef, paramsDef, payloadDef);
79
+ default:
80
+ return `// Not supported ${inflection.camelize(client, true)} yet.`;
81
+ }
82
+ }),
83
+ // 스트리밍인 경우
84
+ ...api.streamOptions ? [
85
+ this.renderStream(api, apiBaseUrl, paramsDefAsObject)
86
+ ] : []
87
+ ].join("\n");
88
+ }).join("\n\n");
89
+ return `export namespace ${modelName.replace(/Model$/, "Service").replace(/Frame$/, "Service")} {
90
+ ${methodCodes}
91
+ }`;
92
+ }).join("\n\n");
93
+ return {
94
+ lines: [
95
+ body
96
+ ],
97
+ importKeys: _.difference(_.uniq(importKeys), typeParamNames)
98
+ };
99
+ }
100
+ renderAxios(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, payloadDef) {
101
+ const methodNameAxios = api.options.resourceName ? "get" + inflection.camelize(api.options.resourceName) : api.methodName;
102
+ if (api.options.httpMethod === "GET") {
103
+ return `
104
+ export async function ${methodNameAxios}${typeParamsDef}(${paramsDef}): Promise<${returnTypeDef}> {
105
+ return fetch({
106
+ method: "GET",
107
+ url: \`${apiBaseUrl}?\${qs.stringify(${payloadDef})}\`,
108
+ ${api.options.timeout ? `signal: AbortSignal.timeout(${api.options.timeout}),` : ""}
109
+ });
110
+ }
111
+ `.trim();
112
+ } else {
113
+ return `
114
+ export async function ${methodNameAxios}${typeParamsDef}(${paramsDef}): Promise<${returnTypeDef}> {
115
+ return fetch({
116
+ method: '${api.options.httpMethod}',
117
+ url: \`${apiBaseUrl}\`,
118
+ data: ${payloadDef},
119
+ ${api.options.timeout ? `signal: AbortSignal.timeout(${api.options.timeout}),` : ""}
120
+ });
121
+ }
122
+ `.trim();
123
+ }
124
+ }
125
+ renderAxiosMultipart(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, paramsWithoutContext) {
126
+ const isMultiple = api.uploadOptions?.mode === "multiple";
127
+ const fileParamName = isMultiple ? "files" : "file";
128
+ const fileParamType = isMultiple ? "File[]" : "File";
129
+ const formDataDef = isMultiple ? [
130
+ `${fileParamName}.forEach(f => formData.append("${fileParamName}", f));`,
131
+ ...paramsWithoutContext.map((param)=>`formData.append('${param.name}', String(${param.name}));`)
132
+ ].join("\n") : [
133
+ `formData.append("${fileParamName}", ${fileParamName});`,
134
+ ...paramsWithoutContext.map((param)=>`formData.append('${param.name}', String(${param.name}));`)
135
+ ].join("\n");
136
+ const paramsDefComma = paramsDef !== "" ? ", " : "";
137
+ return `
138
+ export async function ${api.methodName}${typeParamsDef}(
139
+ ${paramsDef}${paramsDefComma}
140
+ ${fileParamName}: ${fileParamType},
141
+ onUploadProgress?: (pe:AxiosProgressEvent) => void
142
+ ): Promise<${returnTypeDef}> {
143
+ const formData = new FormData();
144
+ ${formDataDef}
145
+ return fetch({
146
+ method: 'POST',
147
+ url: \`${apiBaseUrl}\`,
148
+ headers: {
149
+ "Content-Type": "multipart/form-data",
150
+ },
151
+ onUploadProgress,
152
+ data: formData,
153
+ ${api.options.timeout ? `signal: AbortSignal.timeout(${api.options.timeout}),` : ""}
154
+ });
155
+ }
156
+ `.trim();
157
+ }
158
+ renderSwr(api, apiBaseUrl, typeParamsDef, paramsDef, returnTypeDef, payloadDef) {
159
+ const methodNameSwr = api.options.resourceName ? "use" + inflection.camelize(api.options.resourceName) : "use" + inflection.camelize(api.methodName);
160
+ return ` export function ${inflection.camelize(methodNameSwr, true)}${typeParamsDef}(${[
161
+ paramsDef,
162
+ "swrOptions?: SwrOptions"
163
+ ].filter((p)=>p !== "").join(",")}, ): SWRResponse<${returnTypeDef}, SWRError> {
164
+ return useSWR(handleConditional([
165
+ \`${apiBaseUrl}\`,
166
+ ${payloadDef},
167
+ ], swrOptions?.conditional)${api.options.httpMethod === "POST" ? ", swrPostFetcher" : ""}${api.options.timeout ? `, { loadingTimeout: ${api.options.timeout} }` : ""});
168
+ }`;
169
+ }
170
+ renderWindowFetch(api, apiBaseUrl, typeParamsDef, paramsDef, payloadDef) {
171
+ return `
172
+ export async function ${api.methodName}${typeParamsDef}(${paramsDef}): Promise<Response> {
173
+ return window.fetch(\`${apiBaseUrl}?\${qs.stringify(${payloadDef})}\`${api.options.timeout ? `, { signal: AbortSignal.timeout(${api.options.timeout}) }` : ""});
174
+ }
175
+ `.trim();
176
+ }
177
+ renderStream(api, apiBaseUrl, paramsDefAsObject) {
178
+ if (!api.streamOptions) {
179
+ return "// streamOptions not found";
180
+ }
181
+ const methodNameStream = api.options.resourceName ? "use" + inflection.camelize(api.options.resourceName) : "use" + inflection.camelize(api.methodName);
182
+ const methodNameStreamCamelized = inflection.camelize(methodNameStream, true);
183
+ const eventsTypeDef = zodTypeToTsTypeDef(api.streamOptions.events);
184
+ return ` export function ${methodNameStreamCamelized}(
185
+ params: ${paramsDefAsObject},
186
+ handlers: EventHandlers<${eventsTypeDef} & { end?: () => void }>,
187
+ options: SSEStreamOptions) {
188
+ return useSSEStream<${eventsTypeDef}>(\`${apiBaseUrl}\`, params, handlers, options);
189
+ }`;
190
+ }
191
+ }
192
+
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvc2VydmljZS50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IEVudGl0eU5hbWVzUmVjb3JkIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgQXBpUGFyYW1UeXBlLCBBcGlQYXJhbSB9IGZyb20gXCIuLi8uLi90eXBlcy90eXBlc1wiO1xuaW1wb3J0IHtcbiAgYXBpUGFyYW1UeXBlVG9Uc1R5cGUsXG4gIGFwaVBhcmFtVG9Uc0NvZGUsXG4gIHVud3JhcFByb21pc2VPbmNlLFxuICB6b2RUeXBlVG9Uc1R5cGVEZWYsXG4gIGFwaVBhcmFtVG9Uc0NvZGVBc09iamVjdCxcbn0gZnJvbSBcIi4uLy4uL2FwaS9jb2RlLWNvbnZlcnRlcnNcIjtcbmltcG9ydCB7IEV4dGVuZGVkQXBpIH0gZnJvbSBcIi4uLy4uL2FwaS9kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gXCIuLi90ZW1wbGF0ZVwiO1xuaW1wb3J0IHsgU29uYW11IH0gZnJvbSBcIi4uLy4uL2FwaS9zb25hbXVcIjtcblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlX19zZXJ2aWNlIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcInNlcnZpY2VcIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKG5hbWVzOiBFbnRpdHlOYW1lc1JlY29yZCkge1xuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IFwiOnRhcmdldC9zcmMvc2VydmljZXNcIixcbiAgICAgIHBhdGg6IGAke25hbWVzLmZzfS8ke25hbWVzLmZzfS5zZXJ2aWNlLnRzYCxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHsgbmFtZXNSZWNvcmQgfTogVGVtcGxhdGVPcHRpb25zW1wic2VydmljZVwiXSkge1xuICAgIGNvbnN0IHtcbiAgICAgIHN5bmNlcjogeyBhcGlzIH0sXG4gICAgfSA9IFNvbmFtdTtcblxuICAgIGNvbnN0IGFwaXNGb3JUaGlzTW9kZWwgPSBhcGlzLmZpbHRlcihcbiAgICAgIChhcGkpID0+IGFwaS5tb2RlbE5hbWUgPT09IGAke25hbWVzUmVjb3JkLmNhcGl0YWx9TW9kZWxgXG4gICAgKTtcblxuICAgIC8vIOyEnOu5hOyKpCBUeXBlU291cmNlXG4gICAgY29uc3QgeyBsaW5lcywgaW1wb3J0S2V5cyB9ID0gdGhpcy5nZXRUeXBlU291cmNlKGFwaXNGb3JUaGlzTW9kZWwpO1xuXG4gICAgLy8gQXhpb3NQcm9ncmVzc0V2ZW50IOyeiOuKlOyngCDtmZXsnbhcbiAgICBjb25zdCBoYXNBeGlvc1Byb2dyZXNzRXZlbnQgPSBhcGlzLmZpbmQoKGFwaSkgPT5cbiAgICAgIChhcGkub3B0aW9ucy5jbGllbnRzID8/IFtdKS5pbmNsdWRlcyhcImF4aW9zLW11bHRpcGFydFwiKVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRUYXJnZXRBbmRQYXRoKG5hbWVzUmVjb3JkKSxcbiAgICAgIGJvZHk6IGxpbmVzLmpvaW4oXCJcXG5cIiksXG4gICAgICBpbXBvcnRLZXlzOiBpbXBvcnRLZXlzLmZpbHRlcihcbiAgICAgICAgKGtleSkgPT4gW1wiTGlzdFJlc3VsdFwiXS5pbmNsdWRlcyhrZXkpID09PSBmYWxzZVxuICAgICAgKSxcbiAgICAgIGN1c3RvbUhlYWRlcnM6IFtcbiAgICAgICAgYGltcG9ydCB7IHogfSBmcm9tICd6b2QnO2AsXG4gICAgICAgIGBpbXBvcnQgcXMgZnJvbSBcInFzXCI7YCxcbiAgICAgICAgYGltcG9ydCB1c2VTV1IsIHsgU1dSUmVzcG9uc2UgfSBmcm9tIFwic3dyXCI7YCxcbiAgICAgICAgYGltcG9ydCB7IGZldGNoLCBMaXN0UmVzdWx0LCBTV1JFcnJvciwgU3dyT3B0aW9ucywgaGFuZGxlQ29uZGl0aW9uYWwsIHN3clBvc3RGZXRjaGVyLCBFdmVudEhhbmRsZXJzLCBTU0VTdHJlYW1PcHRpb25zLCB1c2VTU0VTdHJlYW0gfSBmcm9tICcuLi9zb25hbXUuc2hhcmVkJztgLFxuICAgICAgICAuLi4oaGFzQXhpb3NQcm9ncmVzc0V2ZW50XG4gICAgICAgICAgPyBbYGltcG9ydCB7IEF4aW9zUHJvZ3Jlc3NFdmVudCB9IGZyb20gJ2F4aW9zJztgXVxuICAgICAgICAgIDogW10pLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0VHlwZVNvdXJjZShhcGlzOiBFeHRlbmRlZEFwaVtdKToge1xuICAgIGxpbmVzOiBzdHJpbmdbXTtcbiAgICBpbXBvcnRLZXlzOiBzdHJpbmdbXTtcbiAgfSB7XG4gICAgY29uc3QgaW1wb3J0S2V5czogc3RyaW5nW10gPSBbXTtcblxuICAgIC8vIOygnOuEpOumreyXkOyEnCDshKDslrjtlZwg7YOA7J6FLCBpbXBvcnRLZXlz7JeQ7IScIOygnOyZuCDtlYTsmpRcbiAgICBsZXQgdHlwZVBhcmFtTmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBjb25zdCBncm91cHMgPSBfLmdyb3VwQnkoYXBpcywgKGFwaSkgPT4gYXBpLm1vZGVsTmFtZSk7XG4gICAgY29uc3QgYm9keSA9IE9iamVjdC5rZXlzKGdyb3VwcylcbiAgICAgIC5tYXAoKG1vZGVsTmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBtZXRob2RzID0gZ3JvdXBzW21vZGVsTmFtZV07XG4gICAgICAgIGNvbnN0IG1ldGhvZENvZGVzID0gbWV0aG9kc1xuICAgICAgICAgIC5tYXAoKGFwaSkgPT4ge1xuICAgICAgICAgICAgLy8g7Luo7YWN7Iqk7Yq4IOygnOyZuOuQnCDtjIzrnbzrr7jthLAg66as7Iqk7Yq4XG4gICAgICAgICAgICBjb25zdCBwYXJhbXNXaXRob3V0Q29udGV4dCA9IGFwaS5wYXJhbWV0ZXJzLmZpbHRlcihcbiAgICAgICAgICAgICAgKHBhcmFtKSA9PlxuICAgICAgICAgICAgICAgICFBcGlQYXJhbVR5cGUuaXNDb250ZXh0KHBhcmFtLnR5cGUpICYmXG4gICAgICAgICAgICAgICAgIUFwaVBhcmFtVHlwZS5pc1JlZktuZXgocGFyYW0udHlwZSkgJiZcbiAgICAgICAgICAgICAgICAhKHBhcmFtLm9wdGlvbmFsID09PSB0cnVlICYmIHBhcmFtLm5hbWUuc3RhcnRzV2l0aChcIl9cIikpIC8vIF/roZwg7Iuc7J6R7ZWY64qUIO2MjOudvOuvuO2EsOuKlCDsoJzsmbhcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIO2MjOudvOuvuO2EsCDtg4DsnoUg7KCV7J2YXG4gICAgICAgICAgICBjb25zdCB0eXBlUGFyYW1zRGVmID0gYXBpLnR5cGVQYXJhbWV0ZXJzXG4gICAgICAgICAgICAgIC5tYXAoKHR5cGVQYXJhbSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcGlQYXJhbVR5cGVUb1RzVHlwZSh0eXBlUGFyYW0sIGltcG9ydEtleXMpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuam9pbihcIiwgXCIpO1xuICAgICAgICAgICAgdHlwZVBhcmFtTmFtZXMgPSB0eXBlUGFyYW1OYW1lcy5jb25jYXQoXG4gICAgICAgICAgICAgIGFwaS50eXBlUGFyYW1ldGVycy5tYXAoKHR5cGVQYXJhbSkgPT4gdHlwZVBhcmFtLmlkKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8g7YyM652866+47YSwIOygleydmFxuICAgICAgICAgICAgY29uc3QgcGFyYW1zRGVmID0gYXBpUGFyYW1Ub1RzQ29kZShcbiAgICAgICAgICAgICAgcGFyYW1zV2l0aG91dENvbnRleHQsXG4gICAgICAgICAgICAgIGltcG9ydEtleXNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIO2MjOudvOuvuO2EsCDsoJXsnZggKOqwneyytCDtmJXtg5wpXG4gICAgICAgICAgICBjb25zdCBwYXJhbXNEZWZBc09iamVjdCA9IGFwaVBhcmFtVG9Uc0NvZGVBc09iamVjdChcbiAgICAgICAgICAgICAgcGFyYW1zV2l0aG91dENvbnRleHQsXG4gICAgICAgICAgICAgIGltcG9ydEtleXNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIC8vIOumrO2EtCDtg4DsnoUg7KCV7J2YXG4gICAgICAgICAgICBjb25zdCByZXR1cm5UeXBlRGVmID0gYXBpUGFyYW1UeXBlVG9Uc1R5cGUoXG4gICAgICAgICAgICAgIHVud3JhcFByb21pc2VPbmNlKGFwaS5yZXR1cm5UeXBlKSxcbiAgICAgICAgICAgICAgaW1wb3J0S2V5c1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8g7Y6Y7J2066Gc65OcIOuNsOydtO2EsCDsoJXsnZhcbiAgICAgICAgICAgIGNvbnN0IHBheWxvYWREZWYgPSBgeyAke3BhcmFtc1dpdGhvdXRDb250ZXh0XG4gICAgICAgICAgICAgIC5tYXAoKHBhcmFtKSA9PiBwYXJhbS5uYW1lKVxuICAgICAgICAgICAgICAuam9pbihcIiwgXCIpfSB9YDtcblxuICAgICAgICAgICAgLy8g6riw67O4IFVSTFxuICAgICAgICAgICAgY29uc3QgYXBpQmFzZVVybCA9IGAke1NvbmFtdS5jb25maWcuYXBpLnJvdXRlLnByZWZpeH0ke2FwaS5wYXRofWA7XG5cbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgIC8vIO2BtOudvOydtOyWuO2KuOuzhOuhnCDsg53shLFcbiAgICAgICAgICAgICAgLi4uXy5zb3J0QnkoYXBpLm9wdGlvbnMuY2xpZW50cywgKGNsaWVudCkgPT5cbiAgICAgICAgICAgICAgICBjbGllbnQgPT09IFwic3dyXCIgPyAwIDogMVxuICAgICAgICAgICAgICApLm1hcCgoY2xpZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjbGllbnQpIHtcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJheGlvc1wiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJBeGlvcyhcbiAgICAgICAgICAgICAgICAgICAgICBhcGksXG4gICAgICAgICAgICAgICAgICAgICAgYXBpQmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlUGFyYW1zRGVmLFxuICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc0RlZixcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm5UeXBlRGVmLFxuICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWREZWZcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGNhc2UgXCJheGlvcy1tdWx0aXBhcnRcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVuZGVyQXhpb3NNdWx0aXBhcnQoXG4gICAgICAgICAgICAgICAgICAgICAgYXBpLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaUJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtc0RlZixcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZURlZixcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNXaXRob3V0Q29udGV4dFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgY2FzZSBcInN3clwiOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJTd3IoXG4gICAgICAgICAgICAgICAgICAgICAgYXBpLFxuICAgICAgICAgICAgICAgICAgICAgIGFwaUJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtc0RlZixcbiAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVHlwZURlZixcbiAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkRGVmXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICBjYXNlIFwid2luZG93LWZldGNoXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlbmRlcldpbmRvd0ZldGNoKFxuICAgICAgICAgICAgICAgICAgICAgIGFwaSxcbiAgICAgICAgICAgICAgICAgICAgICBhcGlCYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgIHR5cGVQYXJhbXNEZWYsXG4gICAgICAgICAgICAgICAgICAgICAgcGFyYW1zRGVmLFxuICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWREZWZcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgLy8gTm90IHN1cHBvcnRlZCAke2luZmxlY3Rpb24uY2FtZWxpemUoY2xpZW50LCB0cnVlKX0geWV0LmA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgLy8g7Iqk7Yq466as67CN7J24IOqyveyasFxuICAgICAgICAgICAgICAuLi4oYXBpLnN0cmVhbU9wdGlvbnNcbiAgICAgICAgICAgICAgICA/IFt0aGlzLnJlbmRlclN0cmVhbShhcGksIGFwaUJhc2VVcmwsIHBhcmFtc0RlZkFzT2JqZWN0KV1cbiAgICAgICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICAgIF0uam9pbihcIlxcblwiKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5qb2luKFwiXFxuXFxuXCIpO1xuXG4gICAgICAgIHJldHVybiBgZXhwb3J0IG5hbWVzcGFjZSAke21vZGVsTmFtZS5yZXBsYWNlKC9Nb2RlbCQvLCBcIlNlcnZpY2VcIikucmVwbGFjZSgvRnJhbWUkLywgXCJTZXJ2aWNlXCIpfSB7XG4ke21ldGhvZENvZGVzfVxufWA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oXCJcXG5cXG5cIik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGluZXM6IFtib2R5XSxcbiAgICAgIGltcG9ydEtleXM6IF8uZGlmZmVyZW5jZShfLnVuaXEoaW1wb3J0S2V5cyksIHR5cGVQYXJhbU5hbWVzKSxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyQXhpb3MoXG4gICAgYXBpOiBFeHRlbmRlZEFwaSxcbiAgICBhcGlCYXNlVXJsOiBzdHJpbmcsXG4gICAgdHlwZVBhcmFtc0RlZjogc3RyaW5nLFxuICAgIHBhcmFtc0RlZjogc3RyaW5nLFxuICAgIHJldHVyblR5cGVEZWY6IHN0cmluZyxcbiAgICBwYXlsb2FkRGVmOiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgbWV0aG9kTmFtZUF4aW9zID0gYXBpLm9wdGlvbnMucmVzb3VyY2VOYW1lXG4gICAgICA/IFwiZ2V0XCIgKyBpbmZsZWN0aW9uLmNhbWVsaXplKGFwaS5vcHRpb25zLnJlc291cmNlTmFtZSlcbiAgICAgIDogYXBpLm1ldGhvZE5hbWU7XG5cbiAgICBpZiAoYXBpLm9wdGlvbnMuaHR0cE1ldGhvZCA9PT0gXCJHRVRcIikge1xuICAgICAgcmV0dXJuIGBcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiAke21ldGhvZE5hbWVBeGlvc30ke3R5cGVQYXJhbXNEZWZ9KCR7cGFyYW1zRGVmfSk6IFByb21pc2U8JHtyZXR1cm5UeXBlRGVmfT4ge1xuICAgIHJldHVybiBmZXRjaCh7XG4gICAgICBtZXRob2Q6IFwiR0VUXCIsXG4gICAgICB1cmw6IFxcYCR7YXBpQmFzZVVybH0/XFwke3FzLnN0cmluZ2lmeSgke3BheWxvYWREZWZ9KX1cXGAsXG4gICAgICAke2FwaS5vcHRpb25zLnRpbWVvdXQgPyBgc2lnbmFsOiBBYm9ydFNpZ25hbC50aW1lb3V0KCR7YXBpLm9wdGlvbnMudGltZW91dH0pLGAgOiBcIlwifVxuICAgIH0pO1xufVxuICAgIGAudHJpbSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gYFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uICR7bWV0aG9kTmFtZUF4aW9zfSR7dHlwZVBhcmFtc0RlZn0oJHtwYXJhbXNEZWZ9KTogUHJvbWlzZTwke3JldHVyblR5cGVEZWZ9PiB7XG4gICAgcmV0dXJuIGZldGNoKHtcbiAgICAgIG1ldGhvZDogJyR7YXBpLm9wdGlvbnMuaHR0cE1ldGhvZH0nLFxuICAgICAgdXJsOiBcXGAke2FwaUJhc2VVcmx9XFxgLFxuICAgICAgZGF0YTogJHtwYXlsb2FkRGVmfSxcbiAgICAgICR7YXBpLm9wdGlvbnMudGltZW91dCA/IGBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoJHthcGkub3B0aW9ucy50aW1lb3V0fSksYCA6IFwiXCJ9XG4gICAgfSk7XG59XG4gICAgICBgLnRyaW0oKTtcbiAgICB9XG4gIH1cblxuICByZW5kZXJBeGlvc011bHRpcGFydChcbiAgICBhcGk6IEV4dGVuZGVkQXBpLFxuICAgIGFwaUJhc2VVcmw6IHN0cmluZyxcbiAgICB0eXBlUGFyYW1zRGVmOiBzdHJpbmcsXG4gICAgcGFyYW1zRGVmOiBzdHJpbmcsXG4gICAgcmV0dXJuVHlwZURlZjogc3RyaW5nLFxuICAgIHBhcmFtc1dpdGhvdXRDb250ZXh0OiBBcGlQYXJhbVtdXG4gICkge1xuICAgIGNvbnN0IGlzTXVsdGlwbGUgPSBhcGkudXBsb2FkT3B0aW9ucz8ubW9kZSA9PT0gXCJtdWx0aXBsZVwiO1xuICAgIGNvbnN0IGZpbGVQYXJhbU5hbWUgPSBpc011bHRpcGxlID8gXCJmaWxlc1wiIDogXCJmaWxlXCI7XG4gICAgY29uc3QgZmlsZVBhcmFtVHlwZSA9IGlzTXVsdGlwbGUgPyBcIkZpbGVbXVwiIDogXCJGaWxlXCI7XG5cbiAgICBjb25zdCBmb3JtRGF0YURlZiA9IGlzTXVsdGlwbGVcbiAgICAgID8gW1xuICAgICAgICAgIGAke2ZpbGVQYXJhbU5hbWV9LmZvckVhY2goZiA9PiBmb3JtRGF0YS5hcHBlbmQoXCIke2ZpbGVQYXJhbU5hbWV9XCIsIGYpKTtgLFxuICAgICAgICAgIC4uLnBhcmFtc1dpdGhvdXRDb250ZXh0Lm1hcChcbiAgICAgICAgICAgIChwYXJhbSkgPT5cbiAgICAgICAgICAgICAgYGZvcm1EYXRhLmFwcGVuZCgnJHtwYXJhbS5uYW1lfScsIFN0cmluZygke3BhcmFtLm5hbWV9KSk7YFxuICAgICAgICAgICksXG4gICAgICAgIF0uam9pbihcIlxcblwiKVxuICAgICAgOiBbXG4gICAgICAgICAgYGZvcm1EYXRhLmFwcGVuZChcIiR7ZmlsZVBhcmFtTmFtZX1cIiwgJHtmaWxlUGFyYW1OYW1lfSk7YCxcbiAgICAgICAgICAuLi5wYXJhbXNXaXRob3V0Q29udGV4dC5tYXAoXG4gICAgICAgICAgICAocGFyYW0pID0+XG4gICAgICAgICAgICAgIGBmb3JtRGF0YS5hcHBlbmQoJyR7cGFyYW0ubmFtZX0nLCBTdHJpbmcoJHtwYXJhbS5uYW1lfSkpO2BcbiAgICAgICAgICApLFxuICAgICAgICBdLmpvaW4oXCJcXG5cIik7XG5cbiAgICBjb25zdCBwYXJhbXNEZWZDb21tYSA9IHBhcmFtc0RlZiAhPT0gXCJcIiA/IFwiLCBcIiA6IFwiXCI7XG4gICAgcmV0dXJuIGBcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiAke2FwaS5tZXRob2ROYW1lfSR7dHlwZVBhcmFtc0RlZn0oXG4gICR7cGFyYW1zRGVmfSR7cGFyYW1zRGVmQ29tbWF9XG4gICR7ZmlsZVBhcmFtTmFtZX06ICR7ZmlsZVBhcmFtVHlwZX0sXG4gIG9uVXBsb2FkUHJvZ3Jlc3M/OiAocGU6QXhpb3NQcm9ncmVzc0V2ZW50KSA9PiB2b2lkXG4gICk6IFByb21pc2U8JHtyZXR1cm5UeXBlRGVmfT4ge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgJHtmb3JtRGF0YURlZn1cbiAgICByZXR1cm4gZmV0Y2goe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB1cmw6IFxcYCR7YXBpQmFzZVVybH1cXGAsXG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiLFxuICAgICAgfSxcbiAgICAgIG9uVXBsb2FkUHJvZ3Jlc3MsXG4gICAgICBkYXRhOiBmb3JtRGF0YSxcbiAgICAgICR7YXBpLm9wdGlvbnMudGltZW91dCA/IGBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoJHthcGkub3B0aW9ucy50aW1lb3V0fSksYCA6IFwiXCJ9XG4gICAgfSk7XG4gIH1cbiAgYC50cmltKCk7XG4gIH1cblxuICByZW5kZXJTd3IoXG4gICAgYXBpOiBFeHRlbmRlZEFwaSxcbiAgICBhcGlCYXNlVXJsOiBzdHJpbmcsXG4gICAgdHlwZVBhcmFtc0RlZjogc3RyaW5nLFxuICAgIHBhcmFtc0RlZjogc3RyaW5nLFxuICAgIHJldHVyblR5cGVEZWY6IHN0cmluZyxcbiAgICBwYXlsb2FkRGVmOiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgbWV0aG9kTmFtZVN3ciA9IGFwaS5vcHRpb25zLnJlc291cmNlTmFtZVxuICAgICAgPyBcInVzZVwiICsgaW5mbGVjdGlvbi5jYW1lbGl6ZShhcGkub3B0aW9ucy5yZXNvdXJjZU5hbWUpXG4gICAgICA6IFwidXNlXCIgKyBpbmZsZWN0aW9uLmNhbWVsaXplKGFwaS5tZXRob2ROYW1lKTtcbiAgICByZXR1cm4gYCAgZXhwb3J0IGZ1bmN0aW9uICR7aW5mbGVjdGlvbi5jYW1lbGl6ZShcbiAgICAgIG1ldGhvZE5hbWVTd3IsXG4gICAgICB0cnVlXG4gICAgKX0ke3R5cGVQYXJhbXNEZWZ9KCR7W3BhcmFtc0RlZiwgXCJzd3JPcHRpb25zPzogU3dyT3B0aW9uc1wiXVxuICAgICAgLmZpbHRlcigocCkgPT4gcCAhPT0gXCJcIilcbiAgICAgIC5qb2luKFwiLFwiKX0sICk6IFNXUlJlc3BvbnNlPCR7cmV0dXJuVHlwZURlZn0sIFNXUkVycm9yPiB7XG4gICAgcmV0dXJuIHVzZVNXUihoYW5kbGVDb25kaXRpb25hbChbXG4gICAgICBcXGAke2FwaUJhc2VVcmx9XFxgLFxuICAgICAgJHtwYXlsb2FkRGVmfSxcbiAgICBdLCBzd3JPcHRpb25zPy5jb25kaXRpb25hbCkke1xuICAgICAgYXBpLm9wdGlvbnMuaHR0cE1ldGhvZCA9PT0gXCJQT1NUXCIgPyBcIiwgc3dyUG9zdEZldGNoZXJcIiA6IFwiXCJcbiAgICB9JHtcbiAgICAgIGFwaS5vcHRpb25zLnRpbWVvdXQgPyBgLCB7IGxvYWRpbmdUaW1lb3V0OiAke2FwaS5vcHRpb25zLnRpbWVvdXR9IH1gIDogXCJcIlxuICAgIH0pO1xuICB9YDtcbiAgfVxuXG4gIHJlbmRlcldpbmRvd0ZldGNoKFxuICAgIGFwaTogRXh0ZW5kZWRBcGksXG4gICAgYXBpQmFzZVVybDogc3RyaW5nLFxuICAgIHR5cGVQYXJhbXNEZWY6IHN0cmluZyxcbiAgICBwYXJhbXNEZWY6IHN0cmluZyxcbiAgICBwYXlsb2FkRGVmOiBzdHJpbmdcbiAgKSB7XG4gICAgcmV0dXJuIGBcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiAke2FwaS5tZXRob2ROYW1lfSR7dHlwZVBhcmFtc0RlZn0oJHtwYXJhbXNEZWZ9KTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgIHJldHVybiB3aW5kb3cuZmV0Y2goXFxgJHthcGlCYXNlVXJsfT9cXCR7cXMuc3RyaW5naWZ5KCR7cGF5bG9hZERlZn0pfVxcYCR7XG4gICAgICBhcGkub3B0aW9ucy50aW1lb3V0XG4gICAgICAgID8gYCwgeyBzaWduYWw6IEFib3J0U2lnbmFsLnRpbWVvdXQoJHthcGkub3B0aW9ucy50aW1lb3V0fSkgfWBcbiAgICAgICAgOiBcIlwiXG4gICAgfSk7XG59XG4gICAgYC50cmltKCk7XG4gIH1cblxuICByZW5kZXJTdHJlYW0oXG4gICAgYXBpOiBFeHRlbmRlZEFwaSxcbiAgICBhcGlCYXNlVXJsOiBzdHJpbmcsXG4gICAgcGFyYW1zRGVmQXNPYmplY3Q6IHN0cmluZ1xuICApIHtcbiAgICBpZiAoIWFwaS5zdHJlYW1PcHRpb25zKSB7XG4gICAgICByZXR1cm4gXCIvLyBzdHJlYW1PcHRpb25zIG5vdCBmb3VuZFwiO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGhvZE5hbWVTdHJlYW0gPSBhcGkub3B0aW9ucy5yZXNvdXJjZU5hbWVcbiAgICAgID8gXCJ1c2VcIiArIGluZmxlY3Rpb24uY2FtZWxpemUoYXBpLm9wdGlvbnMucmVzb3VyY2VOYW1lKVxuICAgICAgOiBcInVzZVwiICsgaW5mbGVjdGlvbi5jYW1lbGl6ZShhcGkubWV0aG9kTmFtZSk7XG4gICAgY29uc3QgbWV0aG9kTmFtZVN0cmVhbUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoXG4gICAgICBtZXRob2ROYW1lU3RyZWFtLFxuICAgICAgdHJ1ZVxuICAgICk7XG5cbiAgICBjb25zdCBldmVudHNUeXBlRGVmID0gem9kVHlwZVRvVHNUeXBlRGVmKGFwaS5zdHJlYW1PcHRpb25zLmV2ZW50cyk7XG5cbiAgICByZXR1cm4gYCAgZXhwb3J0IGZ1bmN0aW9uICR7bWV0aG9kTmFtZVN0cmVhbUNhbWVsaXplZH0oXG4gIHBhcmFtczogJHtwYXJhbXNEZWZBc09iamVjdH0sXG4gIGhhbmRsZXJzOiBFdmVudEhhbmRsZXJzPCR7ZXZlbnRzVHlwZURlZn0gJiB7IGVuZD86ICgpID0+IHZvaWQgfT4sXG4gIG9wdGlvbnM6IFNTRVN0cmVhbU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdXNlU1NFU3RyZWFtPCR7ZXZlbnRzVHlwZURlZn0+KFxcYCR7YXBpQmFzZVVybH1cXGAsIHBhcmFtcywgaGFuZGxlcnMsIG9wdGlvbnMpO1xuICB9YDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbImluZmxlY3Rpb24iLCJfIiwiQXBpUGFyYW1UeXBlIiwiYXBpUGFyYW1UeXBlVG9Uc1R5cGUiLCJhcGlQYXJhbVRvVHNDb2RlIiwidW53cmFwUHJvbWlzZU9uY2UiLCJ6b2RUeXBlVG9Uc1R5cGVEZWYiLCJhcGlQYXJhbVRvVHNDb2RlQXNPYmplY3QiLCJUZW1wbGF0ZSIsIlNvbmFtdSIsIlRlbXBsYXRlX19zZXJ2aWNlIiwiZ2V0VGFyZ2V0QW5kUGF0aCIsIm5hbWVzIiwidGFyZ2V0IiwicGF0aCIsImZzIiwicmVuZGVyIiwibmFtZXNSZWNvcmQiLCJzeW5jZXIiLCJhcGlzIiwiYXBpc0ZvclRoaXNNb2RlbCIsImZpbHRlciIsImFwaSIsIm1vZGVsTmFtZSIsImNhcGl0YWwiLCJsaW5lcyIsImltcG9ydEtleXMiLCJnZXRUeXBlU291cmNlIiwiaGFzQXhpb3NQcm9ncmVzc0V2ZW50IiwiZmluZCIsIm9wdGlvbnMiLCJjbGllbnRzIiwiaW5jbHVkZXMiLCJib2R5Iiwiam9pbiIsImtleSIsImN1c3RvbUhlYWRlcnMiLCJ0eXBlUGFyYW1OYW1lcyIsImdyb3VwcyIsImdyb3VwQnkiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwibWV0aG9kcyIsIm1ldGhvZENvZGVzIiwicGFyYW1zV2l0aG91dENvbnRleHQiLCJwYXJhbWV0ZXJzIiwicGFyYW0iLCJpc0NvbnRleHQiLCJ0eXBlIiwiaXNSZWZLbmV4Iiwib3B0aW9uYWwiLCJuYW1lIiwic3RhcnRzV2l0aCIsInR5cGVQYXJhbXNEZWYiLCJ0eXBlUGFyYW1ldGVycyIsInR5cGVQYXJhbSIsImNvbmNhdCIsImlkIiwicGFyYW1zRGVmIiwicGFyYW1zRGVmQXNPYmplY3QiLCJyZXR1cm5UeXBlRGVmIiwicmV0dXJuVHlwZSIsInBheWxvYWREZWYiLCJhcGlCYXNlVXJsIiwiY29uZmlnIiwicm91dGUiLCJwcmVmaXgiLCJzb3J0QnkiLCJjbGllbnQiLCJyZW5kZXJBeGlvcyIsInJlbmRlckF4aW9zTXVsdGlwYXJ0IiwicmVuZGVyU3dyIiwicmVuZGVyV2luZG93RmV0Y2giLCJjYW1lbGl6ZSIsInN0cmVhbU9wdGlvbnMiLCJyZW5kZXJTdHJlYW0iLCJyZXBsYWNlIiwiZGlmZmVyZW5jZSIsInVuaXEiLCJtZXRob2ROYW1lQXhpb3MiLCJyZXNvdXJjZU5hbWUiLCJtZXRob2ROYW1lIiwiaHR0cE1ldGhvZCIsInRpbWVvdXQiLCJ0cmltIiwiaXNNdWx0aXBsZSIsInVwbG9hZE9wdGlvbnMiLCJtb2RlIiwiZmlsZVBhcmFtTmFtZSIsImZpbGVQYXJhbVR5cGUiLCJmb3JtRGF0YURlZiIsInBhcmFtc0RlZkNvbW1hIiwibWV0aG9kTmFtZVN3ciIsInAiLCJtZXRob2ROYW1lU3RyZWFtIiwibWV0aG9kTmFtZVN0cmVhbUNhbWVsaXplZCIsImV2ZW50c1R5cGVEZWYiLCJldmVudHMiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGdCQUFnQixhQUFhO0FBQ3BDLFlBQVlDLE9BQU8sWUFBWTtBQUcvQixTQUFTQyxZQUFZLFFBQWtCLHVCQUFvQjtBQUMzRCxTQUNFQyxvQkFBb0IsRUFDcEJDLGdCQUFnQixFQUNoQkMsaUJBQWlCLEVBQ2pCQyxrQkFBa0IsRUFDbEJDLHdCQUF3QixRQUNuQiwrQkFBNEI7QUFFbkMsU0FBU0MsUUFBUSxRQUFRLGlCQUFjO0FBQ3ZDLFNBQVNDLE1BQU0sUUFBUSxzQkFBbUI7QUFFMUMsT0FBTyxNQUFNQywwQkFBMEJGO0lBQ3JDLGFBQWM7UUFDWixLQUFLLENBQUM7SUFDUjtJQUVBRyxpQkFBaUJDLEtBQXdCLEVBQUU7UUFDekMsT0FBTztZQUNMQyxRQUFRO1lBQ1JDLE1BQU0sR0FBR0YsTUFBTUcsRUFBRSxDQUFDLENBQUMsRUFBRUgsTUFBTUcsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUM1QztJQUNGO0lBRUFDLE9BQU8sRUFBRUMsV0FBVyxFQUE4QixFQUFFO1FBQ2xELE1BQU0sRUFDSkMsUUFBUSxFQUFFQyxJQUFJLEVBQUUsRUFDakIsR0FBR1Y7UUFFSixNQUFNVyxtQkFBbUJELEtBQUtFLE1BQU0sQ0FDbEMsQ0FBQ0MsTUFBUUEsSUFBSUMsU0FBUyxLQUFLLEdBQUdOLFlBQVlPLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFHMUQsaUJBQWlCO1FBQ2pCLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUNDLGFBQWEsQ0FBQ1A7UUFFakQsNEJBQTRCO1FBQzVCLE1BQU1RLHdCQUF3QlQsS0FBS1UsSUFBSSxDQUFDLENBQUNQLE1BQ3ZDLEFBQUNBLENBQUFBLElBQUlRLE9BQU8sQ0FBQ0MsT0FBTyxJQUFJLEVBQUUsQUFBRCxFQUFHQyxRQUFR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
@@ -1,6 +1,6 @@
1
- import { TemplateOptions } from "../types/types";
2
- import { EntityNamesRecord } from "../entity/entity-manager";
3
- import { Template } from "./base-template";
1
+ import { TemplateOptions } from "../../types/types";
2
+ import { EntityNamesRecord } from "../../entity/entity-manager";
3
+ import { Template } from "../template";
4
4
  export declare class Template__view_enums_buttonset extends Template {
5
5
  constructor();
6
6
  getTargetAndPath(names: EntityNamesRecord, componentId: string): {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view_enums_buttonset.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_enums_buttonset.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,qBAAa,8BAA+B,SAAQ,QAAQ;;IAK1D,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM;;;;IAO9D,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,sBAAsB,CAAC;;;;;;CAiBrE"}
@@ -0,0 +1,31 @@
1
+ import { EntityManager } from "../../entity/entity-manager.js";
2
+ import { Template } from "../template.js";
3
+ export class Template__view_enums_buttonset extends Template {
4
+ constructor(){
5
+ super("view_enums_buttonset");
6
+ }
7
+ getTargetAndPath(names, componentId) {
8
+ return {
9
+ target: "web/src/components",
10
+ path: `${names.fs}/${componentId}ButtonSet.tsx`
11
+ };
12
+ }
13
+ render({ entityId, enumId }) {
14
+ const names = EntityManager.getNamesFromId(entityId);
15
+ return {
16
+ ...this.getTargetAndPath(names, enumId),
17
+ body: `
18
+ /*
19
+ view_enums_buttonset
20
+ ${JSON.stringify({
21
+ key: this.key,
22
+ options: entityId
23
+ })}
24
+ */
25
+ `.trim(),
26
+ importKeys: []
27
+ };
28
+ }
29
+ }
30
+
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvdmlld19lbnVtc19idXR0b25zZXQudGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVPcHRpb25zIH0gZnJvbSBcIi4uLy4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyLCBFbnRpdHlOYW1lc1JlY29yZCB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlXCI7XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZV9fdmlld19lbnVtc19idXR0b25zZXQgZXh0ZW5kcyBUZW1wbGF0ZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwidmlld19lbnVtc19idXR0b25zZXRcIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKG5hbWVzOiBFbnRpdHlOYW1lc1JlY29yZCwgY29tcG9uZW50SWQ6IHN0cmluZykge1xuICAgIHJldHVybiB7XG4gICAgICB0YXJnZXQ6IFwid2ViL3NyYy9jb21wb25lbnRzXCIsXG4gICAgICBwYXRoOiBgJHtuYW1lcy5mc30vJHtjb21wb25lbnRJZH1CdXR0b25TZXQudHN4YCxcbiAgICB9O1xuICB9XG5cbiAgcmVuZGVyKHsgZW50aXR5SWQsIGVudW1JZCB9OiBUZW1wbGF0ZU9wdGlvbnNbXCJ2aWV3X2VudW1zX2J1dHRvbnNldFwiXSkge1xuICAgIGNvbnN0IG5hbWVzID0gRW50aXR5TWFuYWdlci5nZXROYW1lc0Zyb21JZChlbnRpdHlJZCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5nZXRUYXJnZXRBbmRQYXRoKG5hbWVzLCBlbnVtSWQpLFxuICAgICAgYm9keTogYFxuLypcbnZpZXdfZW51bXNfYnV0dG9uc2V0XG4ke0pTT04uc3RyaW5naWZ5KHtcbiAga2V5OiB0aGlzLmtleSxcbiAgb3B0aW9uczogZW50aXR5SWQsXG59KX1cbiovXG4gICAgICBgLnRyaW0oKSxcbiAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFbnRpdHlNYW5hZ2VyIiwiVGVtcGxhdGUiLCJUZW1wbGF0ZV9fdmlld19lbnVtc19idXR0b25zZXQiLCJnZXRUYXJnZXRBbmRQYXRoIiwibmFtZXMiLCJjb21wb25lbnRJZCIsInRhcmdldCIsInBhdGgiLCJmcyIsInJlbmRlciIsImVudGl0eUlkIiwiZW51bUlkIiwiZ2V0TmFtZXNGcm9tSWQiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsImtleSIsIm9wdGlvbnMiLCJ0cmltIiwiaW1wb3J0S2V5cyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsYUFBYSxRQUEyQixpQ0FBOEI7QUFDL0UsU0FBU0MsUUFBUSxRQUFRLGlCQUFjO0FBRXZDLE9BQU8sTUFBTUMsdUNBQXVDRDtJQUNsRCxhQUFjO1FBQ1osS0FBSyxDQUFDO0lBQ1I7SUFFQUUsaUJBQWlCQyxLQUF3QixFQUFFQyxXQUFtQixFQUFFO1FBQzlELE9BQU87WUFDTEMsUUFBUTtZQUNSQyxNQUFNLEdBQUdILE1BQU1JLEVBQUUsQ0FBQyxDQUFDLEVBQUVILFlBQVksYUFBYSxDQUFDO1FBQ2pEO0lBQ0Y7SUFFQUksT0FBTyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBMkMsRUFBRTtRQUNwRSxNQUFNUCxRQUFRSixjQUFjWSxjQUFjLENBQUNGO1FBRTNDLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQ1AsZ0JBQWdCLENBQUNDLE9BQU9PLE9BQU87WUFDdkNFLE1BQU0sQ0FBQzs7O0FBR2IsRUFBRUMsS0FBS0MsU0FBUyxDQUFDO2dCQUNmQyxLQUFLLElBQUksQ0FBQ0EsR0FBRztnQkFDYkMsU0FBU1A7WUFDWCxHQUFHOztNQUVHLENBQUMsQ0FBQ1EsSUFBSTtZQUNOQyxZQUFZLEVBQUU7UUFDaEI7SUFDRjtBQUNGIn0=
@@ -1,6 +1,6 @@
1
- import { TemplateOptions } from "../types/types";
2
- import { EntityNamesRecord } from "../entity/entity-manager";
3
- import { Template } from "./base-template";
1
+ import { TemplateOptions } from "../../types/types";
2
+ import { EntityNamesRecord } from "../../entity/entity-manager";
3
+ import { Template } from "../template";
4
4
  export declare class Template__view_enums_dropdown extends Template {
5
5
  constructor();
6
6
  getTargetAndPath(names: EntityNamesRecord, enumId: string): {
@@ -14,5 +14,4 @@ export declare class Template__view_enums_dropdown extends Template {
14
14
  path: string;
15
15
  };
16
16
  }
17
- export declare function getLabel(entityId: string, enumId: string): string;
18
17
  //# sourceMappingURL=view_enums_dropdown.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view_enums_dropdown.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_enums_dropdown.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,qBAAa,6BAA8B,SAAQ,QAAQ;;IAKzD,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;;;;IAOzD,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,qBAAqB,CAAC;;;;;;CAmCpE"}
@@ -0,0 +1,50 @@
1
+ import { EntityManager } from "../../entity/entity-manager.js";
2
+ import { Template } from "../template.js";
3
+ import { getLabel } from "../helpers.js";
4
+ export class Template__view_enums_dropdown extends Template {
5
+ constructor(){
6
+ super("view_enums_dropdown");
7
+ }
8
+ getTargetAndPath(names, enumId) {
9
+ return {
10
+ target: "web/src/components",
11
+ path: `${names.fs}/${enumId}Dropdown.tsx`
12
+ };
13
+ }
14
+ render({ entityId, enumId }) {
15
+ const names = EntityManager.getNamesFromId(entityId);
16
+ const label = getLabel(entityId, enumId);
17
+ return {
18
+ ...this.getTargetAndPath(names, enumId),
19
+ body: `
20
+ import React from 'react';
21
+ import {
22
+ Dropdown,
23
+ DropdownProps,
24
+ } from 'semantic-ui-react';
25
+
26
+ import { ${enumId}Label } from 'src/services/sonamu.generated';
27
+
28
+ export function ${enumId}Dropdown(props: DropdownProps) {
29
+ const options = Object.entries(${enumId}Label).map(([key, label]) => {
30
+ return {
31
+ key,
32
+ value: key,
33
+ text: "${label}: " + label,
34
+ };
35
+ });
36
+ return (
37
+ <Dropdown
38
+ className="label"
39
+ options={options}
40
+ {...props}
41
+ />
42
+ );
43
+ }
44
+ `.trim(),
45
+ importKeys: []
46
+ };
47
+ }
48
+ }
49
+
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvdmlld19lbnVtc19kcm9wZG93bi50ZW1wbGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZW1wbGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vdHlwZXMvdHlwZXNcIjtcbmltcG9ydCB7IEVudGl0eU1hbmFnZXIsIEVudGl0eU5hbWVzUmVjb3JkIH0gZnJvbSBcIi4uLy4uL2VudGl0eS9lbnRpdHktbWFuYWdlclwiO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tIFwiLi4vdGVtcGxhdGVcIjtcbmltcG9ydCB7IGdldExhYmVsIH0gZnJvbSBcIi4uL2hlbHBlcnNcIjtcblxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlX192aWV3X2VudW1zX2Ryb3Bkb3duIGV4dGVuZHMgVGVtcGxhdGUge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcInZpZXdfZW51bXNfZHJvcGRvd25cIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKG5hbWVzOiBFbnRpdHlOYW1lc1JlY29yZCwgZW51bUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBcIndlYi9zcmMvY29tcG9uZW50c1wiLFxuICAgICAgcGF0aDogYCR7bmFtZXMuZnN9LyR7ZW51bUlkfURyb3Bkb3duLnRzeGAsXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlcih7IGVudGl0eUlkLCBlbnVtSWQgfTogVGVtcGxhdGVPcHRpb25zW1widmlld19lbnVtc19kcm9wZG93blwiXSkge1xuICAgIGNvbnN0IG5hbWVzID0gRW50aXR5TWFuYWdlci5nZXROYW1lc0Zyb21JZChlbnRpdHlJZCk7XG4gICAgY29uc3QgbGFiZWwgPSBnZXRMYWJlbChlbnRpdHlJZCwgZW51bUlkKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmdldFRhcmdldEFuZFBhdGgobmFtZXMsIGVudW1JZCksXG4gICAgICBib2R5OiBgXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtcbiAgRHJvcGRvd24sXG4gIERyb3Bkb3duUHJvcHMsXG59IGZyb20gJ3NlbWFudGljLXVpLXJlYWN0JztcblxuaW1wb3J0IHsgJHtlbnVtSWR9TGFiZWwgfSBmcm9tICdzcmMvc2VydmljZXMvc29uYW11LmdlbmVyYXRlZCc7XG5cbmV4cG9ydCBmdW5jdGlvbiAke2VudW1JZH1Ecm9wZG93bihwcm9wczogRHJvcGRvd25Qcm9wcykge1xuICBjb25zdCBvcHRpb25zID0gT2JqZWN0LmVudHJpZXMoJHtlbnVtSWR9TGFiZWwpLm1hcCgoW2tleSwgbGFiZWxdKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlOiBrZXksXG4gICAgICB0ZXh0OiBcIiR7bGFiZWx9OiBcIiArIGxhYmVsLFxuICAgIH07XG4gIH0pO1xuICByZXR1cm4gKFxuICAgIDxEcm9wZG93blxuICAgICAgY2xhc3NOYW1lPVwibGFiZWxcIlxuICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApO1xufVxuICAgICAgYC50cmltKCksXG4gICAgICBpbXBvcnRLZXlzOiBbXSxcbiAgICB9O1xuICB9XG59Il0sIm5hbWVzIjpbIkVudGl0eU1hbmFnZXIiLCJUZW1wbGF0ZSIsImdldExhYmVsIiwiVGVtcGxhdGVfX3ZpZXdfZW51bXNfZHJvcGRvd24iLCJnZXRUYXJnZXRBbmRQYXRoIiwibmFtZXMiLCJlbnVtSWQiLCJ0YXJnZXQiLCJwYXRoIiwiZnMiLCJyZW5kZXIiLCJlbnRpdHlJZCIsImdldE5hbWVzRnJvbUlkIiwibGFiZWwiLCJib2R5IiwidHJpbSIsImltcG9ydEtleXMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGFBQWEsUUFBMkIsaUNBQThCO0FBQy9FLFNBQVNDLFFBQVEsUUFBUSxpQkFBYztBQUN2QyxTQUFTQyxRQUFRLFFBQVEsZ0JBQWE7QUFFdEMsT0FBTyxNQUFNQyxzQ0FBc0NGO0lBQ2pELGFBQWM7UUFDWixLQUFLLENBQUM7SUFDUjtJQUVBRyxpQkFBaUJDLEtBQXdCLEVBQUVDLE1BQWMsRUFBRTtRQUN6RCxPQUFPO1lBQ0xDLFFBQVE7WUFDUkMsTUFBTSxHQUFHSCxNQUFNSSxFQUFFLENBQUMsQ0FBQyxFQUFFSCxPQUFPLFlBQVksQ0FBQztRQUMzQztJQUNGO0lBRUFJLE9BQU8sRUFBRUMsUUFBUSxFQUFFTCxNQUFNLEVBQTBDLEVBQUU7UUFDbkUsTUFBTUQsUUFBUUwsY0FBY1ksY0FBYyxDQUFDRDtRQUMzQyxNQUFNRSxRQUFRWCxTQUFTUyxVQUFVTDtRQUVqQyxPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUNGLGdCQUFnQixDQUFDQyxPQUFPQyxPQUFPO1lBQ3ZDUSxNQUFNLENBQUM7Ozs7Ozs7U0FPSixFQUFFUixPQUFPOztnQkFFRixFQUFFQSxPQUFPO2lDQUNRLEVBQUVBLE9BQU87Ozs7YUFJN0IsRUFBRU8sTUFBTTs7Ozs7Ozs7Ozs7TUFXZixDQUFDLENBQUNFLElBQUk7WUFDTkMsWUFBWSxFQUFFO1FBQ2hCO0lBQ0Y7QUFDRiJ9
@@ -1,6 +1,6 @@
1
- import { TemplateOptions } from "../types/types";
2
- import { EntityNamesRecord } from "../entity/entity-manager";
3
- import { Template } from "./base-template";
1
+ import { TemplateOptions } from "../../types/types";
2
+ import { EntityNamesRecord } from "../../entity/entity-manager";
3
+ import { Template } from "../template";
4
4
  export declare class Template__view_enums_select extends Template {
5
5
  constructor();
6
6
  getTargetAndPath(names: EntityNamesRecord, enumId: string): {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view_enums_select.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_enums_select.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,qBAAa,2BAA4B,SAAQ,QAAQ;;IAKvD,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM;;;;IAOzD,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,eAAe,CAAC,mBAAmB,CAAC;;;;;;CAwClE"}
@@ -0,0 +1,55 @@
1
+ import { EntityManager } from "../../entity/entity-manager.js";
2
+ import { Template } from "../template.js";
3
+ import { getLabel } from "../helpers.js";
4
+ export class Template__view_enums_select extends Template {
5
+ constructor(){
6
+ super("view_enums_select");
7
+ }
8
+ getTargetAndPath(names, enumId) {
9
+ return {
10
+ target: "web/src/components",
11
+ path: `${names.fs}/${enumId}Select.tsx`
12
+ };
13
+ }
14
+ render({ entityId, enumId }) {
15
+ const names = EntityManager.getNamesFromId(entityId);
16
+ const label = getLabel(entityId, enumId);
17
+ return {
18
+ ...this.getTargetAndPath(names, enumId),
19
+ body: `
20
+ import React from 'react';
21
+ import {
22
+ Dropdown,
23
+ DropdownProps,
24
+ } from 'semantic-ui-react';
25
+
26
+ import { ${enumId}, ${enumId}Label } from 'src/services/sonamu.generated';
27
+
28
+ export type ${enumId}SelectProps = {
29
+ placeholder?: string;
30
+ textPrefix?: string;
31
+ } & DropdownProps;
32
+ export function ${enumId}Select({placeholder, textPrefix, ...props}: ${enumId}SelectProps) {
33
+ const typeOptions = ${enumId}.options.map((key) => ({
34
+ key,
35
+ value: key,
36
+ text: (textPrefix ?? '${label}: ') + ${enumId}Label[key],
37
+ }));
38
+
39
+ return (
40
+ <Dropdown
41
+ placeholder={placeholder ?? "${label}"}
42
+ selection
43
+ options={typeOptions}
44
+ selectOnBlur={false}
45
+ {...props}
46
+ />
47
+ );
48
+ }
49
+ `.trim(),
50
+ importKeys: []
51
+ };
52
+ }
53
+ }
54
+
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZW1wbGF0ZS9pbXBsZW1lbnRhdGlvbnMvdmlld19lbnVtc19zZWxlY3QudGVtcGxhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVPcHRpb25zIH0gZnJvbSBcIi4uLy4uL3R5cGVzL3R5cGVzXCI7XG5pbXBvcnQgeyBFbnRpdHlNYW5hZ2VyLCBFbnRpdHlOYW1lc1JlY29yZCB9IGZyb20gXCIuLi8uLi9lbnRpdHkvZW50aXR5LW1hbmFnZXJcIjtcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcIi4uL3RlbXBsYXRlXCI7XG5pbXBvcnQgeyBnZXRMYWJlbCB9IGZyb20gXCIuLi9oZWxwZXJzXCI7XG5cbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZV9fdmlld19lbnVtc19zZWxlY3QgZXh0ZW5kcyBUZW1wbGF0ZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwidmlld19lbnVtc19zZWxlY3RcIik7XG4gIH1cblxuICBnZXRUYXJnZXRBbmRQYXRoKG5hbWVzOiBFbnRpdHlOYW1lc1JlY29yZCwgZW51bUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGFyZ2V0OiBcIndlYi9zcmMvY29tcG9uZW50c1wiLFxuICAgICAgcGF0aDogYCR7bmFtZXMuZnN9LyR7ZW51bUlkfVNlbGVjdC50c3hgLFxuICAgIH07XG4gIH1cblxuICByZW5kZXIoeyBlbnRpdHlJZCwgZW51bUlkIH06IFRlbXBsYXRlT3B0aW9uc1tcInZpZXdfZW51bXNfc2VsZWN0XCJdKSB7XG4gICAgY29uc3QgbmFtZXMgPSBFbnRpdHlNYW5hZ2VyLmdldE5hbWVzRnJvbUlkKGVudGl0eUlkKTtcbiAgICBjb25zdCBsYWJlbCA9IGdldExhYmVsKGVudGl0eUlkLCBlbnVtSWQpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMuZ2V0VGFyZ2V0QW5kUGF0aChuYW1lcywgZW51bUlkKSxcbiAgICAgIGJvZHk6IGBcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBEcm9wZG93bixcbiAgRHJvcGRvd25Qcm9wcyxcbn0gZnJvbSAnc2VtYW50aWMtdWktcmVhY3QnO1xuXG5pbXBvcnQgeyAke2VudW1JZH0sICR7ZW51bUlkfUxhYmVsIH0gZnJvbSAnc3JjL3NlcnZpY2VzL3NvbmFtdS5nZW5lcmF0ZWQnO1xuXG5leHBvcnQgdHlwZSAke2VudW1JZH1TZWxlY3RQcm9wcyA9IHtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHRleHRQcmVmaXg/OiBzdHJpbmc7XG59ICYgRHJvcGRvd25Qcm9wcztcbmV4cG9ydCBmdW5jdGlvbiAke2VudW1JZH1TZWxlY3Qoe3BsYWNlaG9sZGVyLCB0ZXh0UHJlZml4LCAuLi5wcm9wc306ICR7ZW51bUlkfVNlbGVjdFByb3BzKSB7XG4gIGNvbnN0IHR5cGVPcHRpb25zID0gJHtlbnVtSWR9Lm9wdGlvbnMubWFwKChrZXkpID0+ICh7XG4gICAga2V5LFxuICAgIHZhbHVlOiBrZXksXG4gICAgdGV4dDogKHRleHRQcmVmaXggPz8gJyR7bGFiZWx9OiAnKSArICR7ZW51bUlkfUxhYmVsW2tleV0sXG4gIH0pKTtcblxuICByZXR1cm4gKFxuICAgIDxEcm9wZG93blxuICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyID8/IFwiJHtsYWJlbH1cIn1cbiAgICAgIHNlbGVjdGlvblxuICAgICAgb3B0aW9ucz17dHlwZU9wdGlvbnN9XG4gICAgICBzZWxlY3RPbkJsdXI9e2ZhbHNlfVxuICAgICAgey4uLnByb3BzfVxuICAgIC8+XG4gICk7XG59XG4gICAgICBgLnRyaW0oKSxcbiAgICAgIGltcG9ydEtleXM6IFtdLFxuICAgIH07XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJFbnRpdHlNYW5hZ2VyIiwiVGVtcGxhdGUiLCJnZXRMYWJlbCIsIlRlbXBsYXRlX192aWV3X2VudW1zX3NlbGVjdCIsImdldFRhcmdldEFuZFBhdGgiLCJuYW1lcyIsImVudW1JZCIsInRhcmdldCIsInBhdGgiLCJmcyIsInJlbmRlciIsImVudGl0eUlkIiwiZ2V0TmFtZXNGcm9tSWQiLCJsYWJlbCIsImJvZHkiLCJ0cmltIiwiaW1wb3J0S2V5cyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsYUFBYSxRQUEyQixpQ0FBOEI7QUFDL0UsU0FBU0MsUUFBUSxRQUFRLGlCQUFjO0FBQ3ZDLFNBQVNDLFFBQVEsUUFBUSxnQkFBYTtBQUV0QyxPQUFPLE1BQU1DLG9DQUFvQ0Y7SUFDL0MsYUFBYztRQUNaLEtBQUssQ0FBQztJQUNSO0lBRUFHLGlCQUFpQkMsS0FBd0IsRUFBRUMsTUFBYyxFQUFFO1FBQ3pELE9BQU87WUFDTEMsUUFBUTtZQUNSQyxNQUFNLEdBQUdILE1BQU1JLEVBQUUsQ0FBQyxDQUFDLEVBQUVILE9BQU8sVUFBVSxDQUFDO1FBQ3pDO0lBQ0Y7SUFFQUksT0FBTyxFQUFFQyxRQUFRLEVBQUVMLE1BQU0sRUFBd0MsRUFBRTtRQUNqRSxNQUFNRCxRQUFRTCxjQUFjWSxjQUFjLENBQUNEO1FBQzNDLE1BQU1FLFFBQVFYLFNBQVNTLFVBQVVMO1FBRWpDLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQ0YsZ0JBQWdCLENBQUNDLE9BQU9DLE9BQU87WUFDdkNRLE1BQU0sQ0FBQzs7Ozs7OztTQU9KLEVBQUVSLE9BQU8sRUFBRSxFQUFFQSxPQUFPOztZQUVqQixFQUFFQSxPQUFPOzs7O2dCQUlMLEVBQUVBLE9BQU8sNENBQTRDLEVBQUVBLE9BQU87c0JBQ3hELEVBQUVBLE9BQU87OzswQkFHTCxFQUFFTyxNQUFNLE9BQU8sRUFBRVAsT0FBTzs7Ozs7bUNBS2YsRUFBRU8sTUFBTTs7Ozs7Ozs7TUFRckMsQ0FBQyxDQUFDRSxJQUFJO1lBQ05DLFlBQVksRUFBRTtRQUNoQjtJQUNGO0FBQ0YifQ==
@@ -1,6 +1,6 @@
1
- import { RenderingNode, TemplateKey, TemplateOptions } from "../types/types";
2
- import { EntityNamesRecord } from "../entity/entity-manager";
3
- import { Template } from "./base-template";
1
+ import { RenderingNode, TemplateKey, TemplateOptions } from "../../types/types";
2
+ import { EntityNamesRecord } from "../../entity/entity-manager";
3
+ import { Template } from "../template";
4
4
  export declare class Template__view_form extends Template {
5
5
  constructor();
6
6
  getTargetAndPath(names: EntityNamesRecord): {
@@ -12,7 +12,7 @@ export declare class Template__view_form extends Template {
12
12
  renderColumnImport(entityId: string, col: RenderingNode): string;
13
13
  renderColumn(entityId: string, col: RenderingNode, names: EntityNamesRecord, parent?: string): string;
14
14
  resolveDefaultValue(columns: RenderingNode[]): object;
15
- render({ entityId }: TemplateOptions["view_form"], saveParamsNode: RenderingNode): {
15
+ render({ entityId }: TemplateOptions["view_form"]): Promise<{
16
16
  body: string;
17
17
  importKeys: never[];
18
18
  preTemplates: {
@@ -21,6 +21,6 @@ export declare class Template__view_form extends Template {
21
21
  }[];
22
22
  target: string;
23
23
  path: string;
24
- };
24
+ }>;
25
25
  }
26
26
  //# sourceMappingURL=view_form.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view_form.template.d.ts","sourceRoot":"","sources":["../../../src/template/implementations/view_form.template.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAAiB,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAE/E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,qBAAa,mBAAoB,SAAQ,QAAQ;;IAK/C,gBAAgB,CAAC,KAAK,EAAE,iBAAiB;;;;IAOzC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAO5C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAQ5C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa;IAyBvD,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,iBAAiB,EACxB,MAAM,GAAE,MAAW,GAClB,MAAM;IAqET,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM;IAqC/C,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC;;;;;;;;;;CA2PxD"}