taon 18.0.19 → 18.0.21

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 (330) hide show
  1. package/README.md +114 -118
  2. package/assets/shared/logo-header-admin-mode.png +0 -0
  3. package/assets/shared/shared_folder_info.txt +1 -1
  4. package/bin/start.js +279 -279
  5. package/bin/taon +6 -6
  6. package/bin/taon-debug +5 -5
  7. package/bin/taon-debug-brk +5 -5
  8. package/browser/README.md +24 -24
  9. package/browser/esm2022/lib/base-classes/base-abstract-entity.mjs +1 -1
  10. package/browser/esm2022/lib/base-classes/base-class.mjs +2 -2
  11. package/browser/esm2022/lib/base-classes/base-controller.mjs +3 -2
  12. package/browser/esm2022/lib/base-classes/base-crud-controller.mjs +1 -1
  13. package/browser/esm2022/lib/base-classes/base-migration.mjs +23 -0
  14. package/browser/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +20 -20
  15. package/browser/esm2022/lib/base-classes/base.mjs +5 -3
  16. package/browser/esm2022/lib/context-db-migrations.mjs +410 -0
  17. package/browser/esm2022/lib/create-context.mjs +22 -8
  18. package/browser/esm2022/lib/decorators/classes/controller-decorator.mjs +4 -1
  19. package/browser/esm2022/lib/decorators/classes/entity-decorator.mjs +4 -1
  20. package/browser/esm2022/lib/decorators/classes/migration-decorator.mjs +18 -0
  21. package/browser/esm2022/lib/decorators/classes/provider-decorator.mjs +4 -1
  22. package/browser/esm2022/lib/decorators/classes/repository-decorator.mjs +4 -1
  23. package/browser/esm2022/lib/decorators/classes/subscriber-decorator.mjs +5 -2
  24. package/browser/esm2022/lib/decorators/http/http-methods-decorators.mjs +1 -1
  25. package/browser/esm2022/lib/endpoint-context.mjs +105 -59
  26. package/browser/esm2022/lib/entity-process.mjs +1 -10
  27. package/browser/esm2022/lib/get-response-value.mjs +1 -15
  28. package/browser/esm2022/lib/index.mjs +4 -1
  29. package/browser/esm2022/lib/inject.mjs +1 -1
  30. package/browser/esm2022/lib/models.mjs +30 -1
  31. package/browser/esm2022/lib/symbols.mjs +2 -1
  32. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +1 -3
  33. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +55 -37
  34. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +17 -21
  35. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +1 -1
  36. package/browser/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +1 -1
  37. package/browser/esm2022/lib/ui/taon-table/taon-table.component.mjs +1 -2
  38. package/browser/fesm2022/taon.mjs +701 -449
  39. package/browser/fesm2022/taon.mjs.map +1 -1
  40. package/browser/lib/base-classes/base-abstract-entity.d.ts +2 -1
  41. package/browser/lib/base-classes/base-class.d.ts +1 -1
  42. package/browser/lib/base-classes/base-context.d.ts +3 -0
  43. package/browser/lib/base-classes/base-controller.d.ts +2 -1
  44. package/browser/lib/base-classes/base-crud-controller.d.ts +1 -1
  45. package/browser/lib/base-classes/base-migration.d.ts +12 -0
  46. package/browser/lib/base-classes/base.d.ts +8 -2
  47. package/browser/lib/context-db-migrations.d.ts +17 -0
  48. package/browser/lib/create-context.d.ts +7 -4
  49. package/browser/lib/decorators/classes/controller-decorator.d.ts +3 -0
  50. package/browser/lib/decorators/classes/entity-decorator.d.ts +3 -0
  51. package/browser/lib/decorators/classes/migration-decorator.d.ts +8 -0
  52. package/browser/lib/decorators/classes/provider-decorator.d.ts +3 -0
  53. package/browser/lib/decorators/classes/repository-decorator.d.ts +3 -0
  54. package/browser/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
  55. package/browser/lib/decorators/http/http-methods-decorators.d.ts +9 -0
  56. package/browser/lib/endpoint-context.d.ts +14 -7
  57. package/browser/lib/index.d.ts +14 -1
  58. package/browser/lib/models.d.ts +45 -22
  59. package/browser/lib/symbols.d.ts +1 -0
  60. package/browser/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
  61. package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +5 -8
  62. package/browser/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +8 -8
  63. package/client/README.md +24 -24
  64. package/client/esm2022/lib/base-classes/base-abstract-entity.mjs +1 -1
  65. package/client/esm2022/lib/base-classes/base-class.mjs +2 -2
  66. package/client/esm2022/lib/base-classes/base-controller.mjs +3 -2
  67. package/client/esm2022/lib/base-classes/base-crud-controller.mjs +1 -1
  68. package/client/esm2022/lib/base-classes/base-migration.mjs +23 -0
  69. package/client/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +20 -20
  70. package/client/esm2022/lib/base-classes/base.mjs +5 -3
  71. package/client/esm2022/lib/context-db-migrations.mjs +410 -0
  72. package/client/esm2022/lib/create-context.mjs +22 -8
  73. package/client/esm2022/lib/decorators/classes/controller-decorator.mjs +4 -1
  74. package/client/esm2022/lib/decorators/classes/entity-decorator.mjs +4 -1
  75. package/client/esm2022/lib/decorators/classes/migration-decorator.mjs +18 -0
  76. package/client/esm2022/lib/decorators/classes/provider-decorator.mjs +4 -1
  77. package/client/esm2022/lib/decorators/classes/repository-decorator.mjs +4 -1
  78. package/client/esm2022/lib/decorators/classes/subscriber-decorator.mjs +5 -2
  79. package/client/esm2022/lib/decorators/http/http-methods-decorators.mjs +1 -1
  80. package/client/esm2022/lib/endpoint-context.mjs +105 -59
  81. package/client/esm2022/lib/entity-process.mjs +1 -10
  82. package/client/esm2022/lib/get-response-value.mjs +1 -15
  83. package/client/esm2022/lib/index.mjs +4 -1
  84. package/client/esm2022/lib/inject.mjs +1 -1
  85. package/client/esm2022/lib/models.mjs +30 -1
  86. package/client/esm2022/lib/symbols.mjs +2 -1
  87. package/client/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +1 -3
  88. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +55 -37
  89. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +17 -21
  90. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +1 -1
  91. package/client/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +1 -1
  92. package/client/esm2022/lib/ui/taon-table/taon-table.component.mjs +1 -2
  93. package/client/fesm2022/taon.mjs +701 -449
  94. package/client/fesm2022/taon.mjs.map +1 -1
  95. package/client/lib/base-classes/base-abstract-entity.d.ts +2 -1
  96. package/client/lib/base-classes/base-class.d.ts +1 -1
  97. package/client/lib/base-classes/base-context.d.ts +3 -0
  98. package/client/lib/base-classes/base-controller.d.ts +2 -1
  99. package/client/lib/base-classes/base-crud-controller.d.ts +1 -1
  100. package/client/lib/base-classes/base-migration.d.ts +12 -0
  101. package/client/lib/base-classes/base.d.ts +8 -2
  102. package/client/lib/context-db-migrations.d.ts +17 -0
  103. package/client/lib/create-context.d.ts +7 -4
  104. package/client/lib/decorators/classes/controller-decorator.d.ts +3 -0
  105. package/client/lib/decorators/classes/entity-decorator.d.ts +3 -0
  106. package/client/lib/decorators/classes/migration-decorator.d.ts +8 -0
  107. package/client/lib/decorators/classes/provider-decorator.d.ts +3 -0
  108. package/client/lib/decorators/classes/repository-decorator.d.ts +3 -0
  109. package/client/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
  110. package/client/lib/decorators/http/http-methods-decorators.d.ts +9 -0
  111. package/client/lib/endpoint-context.d.ts +14 -7
  112. package/client/lib/index.d.ts +14 -1
  113. package/client/lib/models.d.ts +45 -22
  114. package/client/lib/symbols.d.ts +1 -0
  115. package/client/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
  116. package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +5 -8
  117. package/client/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +8 -8
  118. package/lib/base-classes/base-abstract-entity.d.ts +1 -0
  119. package/lib/base-classes/base-class.d.ts +1 -1
  120. package/lib/base-classes/base-class.js +1 -1
  121. package/lib/base-classes/base-context.d.ts +3 -0
  122. package/lib/base-classes/base-controller.d.ts +2 -1
  123. package/lib/base-classes/base-controller.js +2 -1
  124. package/lib/base-classes/base-controller.js.map +1 -1
  125. package/lib/base-classes/base-crud-controller.d.ts +1 -1
  126. package/lib/base-classes/base-migration.d.ts +11 -0
  127. package/lib/base-classes/base-migration.js +41 -0
  128. package/lib/base-classes/base-migration.js.map +1 -0
  129. package/lib/base-classes/base-repository.js +4 -4
  130. package/lib/base-classes/base-repository.js.map +1 -1
  131. package/lib/base-classes/base-subscriber-for-entity.js +19 -19
  132. package/lib/base-classes/base-subscriber-for-entity.js.map +1 -1
  133. package/lib/base-classes/base.d.ts +8 -2
  134. package/lib/base-classes/base.js +4 -2
  135. package/lib/base-classes/base.js.map +1 -1
  136. package/lib/context-db-migrations.d.ts +16 -0
  137. package/lib/context-db-migrations.js +585 -0
  138. package/lib/context-db-migrations.js.map +1 -0
  139. package/lib/create-context.d.ts +7 -4
  140. package/lib/create-context.js +34 -12
  141. package/lib/create-context.js.map +1 -1
  142. package/lib/decorators/classes/controller-decorator.d.ts +3 -0
  143. package/lib/decorators/classes/controller-decorator.js +3 -0
  144. package/lib/decorators/classes/controller-decorator.js.map +1 -1
  145. package/lib/decorators/classes/entity-decorator.d.ts +3 -0
  146. package/lib/decorators/classes/entity-decorator.js +3 -0
  147. package/lib/decorators/classes/entity-decorator.js.map +1 -1
  148. package/lib/decorators/classes/migration-decorator.d.ts +7 -0
  149. package/lib/decorators/classes/migration-decorator.js +27 -0
  150. package/lib/decorators/classes/migration-decorator.js.map +1 -0
  151. package/lib/decorators/classes/provider-decorator.d.ts +3 -0
  152. package/lib/decorators/classes/provider-decorator.js +3 -0
  153. package/lib/decorators/classes/provider-decorator.js.map +1 -1
  154. package/lib/decorators/classes/repository-decorator.d.ts +3 -0
  155. package/lib/decorators/classes/repository-decorator.js +3 -0
  156. package/lib/decorators/classes/repository-decorator.js.map +1 -1
  157. package/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
  158. package/lib/decorators/classes/subscriber-decorator.js +4 -1
  159. package/lib/decorators/classes/subscriber-decorator.js.map +1 -1
  160. package/lib/decorators/http/http-methods-decorators.d.ts +9 -0
  161. package/lib/decorators/http/http-methods-decorators.js.map +1 -1
  162. package/lib/endpoint-context.d.ts +14 -7
  163. package/lib/endpoint-context.js +265 -220
  164. package/lib/endpoint-context.js.map +1 -1
  165. package/lib/entity-process.js +0 -9
  166. package/lib/entity-process.js.map +1 -1
  167. package/lib/get-response-value.js +14 -37
  168. package/lib/get-response-value.js.map +1 -1
  169. package/lib/index.d.ts +14 -1
  170. package/lib/index.js +5 -1
  171. package/lib/index.js.map +1 -1
  172. package/lib/inject.js +0 -2
  173. package/lib/inject.js.map +1 -1
  174. package/lib/models.d.ts +45 -23
  175. package/lib/models.js +45 -0
  176. package/lib/models.js.map +1 -1
  177. package/lib/symbols.d.ts +1 -0
  178. package/lib/symbols.js +1 -0
  179. package/lib/symbols.js.map +1 -1
  180. package/lib/ui/directives/index.js +2 -2
  181. package/lib/ui/index.js +2 -2
  182. package/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
  183. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  184. package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +4 -7
  185. package/lib/ui/taon-admin-mode-configuration/{models/taon-admin-mode-tabs.js → taon-admin.models.js} +1 -1
  186. package/lib/ui/taon-admin-mode-configuration/taon-admin.models.js.map +1 -0
  187. package/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +6 -6
  188. package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
  189. package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
  190. package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
  191. package/lib/ui/taon-progress-bar/index.js +2 -2
  192. package/lib/ui/taon-session-passcode/index.js +2 -2
  193. package/lib/ui/taon-table/index.js +2 -2
  194. package/migrations/index.d.ts +1 -0
  195. package/migrations/index.js +6 -0
  196. package/migrations/index.js.map +1 -0
  197. package/migrations/migrations_index._auto-generated_.d.ts +0 -0
  198. package/migrations/migrations_index._auto-generated_.js +4 -0
  199. package/migrations/migrations_index._auto-generated_.js.map +1 -0
  200. package/package.json +7 -7
  201. package/taon.jsonc +47 -47
  202. package/tmp-environment.json +39 -31
  203. package/websql/README.md +24 -24
  204. package/websql/esm2022/lib/base-classes/base-abstract-entity.mjs +1 -1
  205. package/websql/esm2022/lib/base-classes/base-class.mjs +2 -2
  206. package/websql/esm2022/lib/base-classes/base-controller.mjs +3 -2
  207. package/websql/esm2022/lib/base-classes/base-crud-controller.mjs +1 -1
  208. package/websql/esm2022/lib/base-classes/base-migration.mjs +23 -0
  209. package/websql/esm2022/lib/base-classes/base-repository.mjs +5 -5
  210. package/websql/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +20 -20
  211. package/websql/esm2022/lib/base-classes/base.mjs +5 -3
  212. package/websql/esm2022/lib/context-db-migrations.mjs +269 -0
  213. package/websql/esm2022/lib/create-context.mjs +22 -8
  214. package/websql/esm2022/lib/decorators/classes/controller-decorator.mjs +4 -1
  215. package/websql/esm2022/lib/decorators/classes/entity-decorator.mjs +4 -1
  216. package/websql/esm2022/lib/decorators/classes/migration-decorator.mjs +18 -0
  217. package/websql/esm2022/lib/decorators/classes/provider-decorator.mjs +4 -1
  218. package/websql/esm2022/lib/decorators/classes/repository-decorator.mjs +4 -1
  219. package/websql/esm2022/lib/decorators/classes/subscriber-decorator.mjs +5 -2
  220. package/websql/esm2022/lib/decorators/http/http-methods-decorators.mjs +1 -1
  221. package/websql/esm2022/lib/endpoint-context.mjs +139 -95
  222. package/websql/esm2022/lib/entity-process.mjs +1 -10
  223. package/websql/esm2022/lib/get-response-value.mjs +4 -24
  224. package/websql/esm2022/lib/index.mjs +4 -1
  225. package/websql/esm2022/lib/inject.mjs +1 -1
  226. package/websql/esm2022/lib/models.mjs +28 -1
  227. package/websql/esm2022/lib/symbols.mjs +2 -1
  228. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +1 -3
  229. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +55 -37
  230. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +17 -21
  231. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +1 -1
  232. package/websql/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +1 -1
  233. package/websql/esm2022/lib/ui/taon-table/taon-table.component.mjs +1 -2
  234. package/websql/fesm2022/taon.mjs +594 -497
  235. package/websql/fesm2022/taon.mjs.map +1 -1
  236. package/websql/lib/base-classes/base-abstract-entity.d.ts +2 -1
  237. package/websql/lib/base-classes/base-class.d.ts +1 -1
  238. package/websql/lib/base-classes/base-context.d.ts +3 -0
  239. package/websql/lib/base-classes/base-controller.d.ts +2 -1
  240. package/websql/lib/base-classes/base-crud-controller.d.ts +1 -1
  241. package/websql/lib/base-classes/base-migration.d.ts +12 -0
  242. package/websql/lib/base-classes/base.d.ts +8 -2
  243. package/websql/lib/context-db-migrations.d.ts +17 -0
  244. package/websql/lib/create-context.d.ts +7 -4
  245. package/websql/lib/decorators/classes/controller-decorator.d.ts +3 -0
  246. package/websql/lib/decorators/classes/entity-decorator.d.ts +3 -0
  247. package/websql/lib/decorators/classes/migration-decorator.d.ts +8 -0
  248. package/websql/lib/decorators/classes/provider-decorator.d.ts +3 -0
  249. package/websql/lib/decorators/classes/repository-decorator.d.ts +3 -0
  250. package/websql/lib/decorators/classes/subscriber-decorator.d.ts +3 -0
  251. package/websql/lib/decorators/http/http-methods-decorators.d.ts +9 -0
  252. package/websql/lib/endpoint-context.d.ts +14 -7
  253. package/websql/lib/index.d.ts +14 -1
  254. package/websql/lib/models.d.ts +45 -23
  255. package/websql/lib/symbols.d.ts +1 -0
  256. package/websql/lib/ui/taon-admin-mode-configuration/index.d.ts +1 -3
  257. package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.d.ts +5 -8
  258. package/websql/lib/ui/taon-admin-mode-configuration/taon-admin.service.d.ts +8 -8
  259. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +0 -5
  260. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +0 -115
  261. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +0 -50
  262. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +0 -5
  263. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +0 -61
  264. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +0 -21
  265. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +0 -4
  266. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +0 -32
  267. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +0 -54
  268. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -3
  269. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -33
  270. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -16
  271. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -3
  272. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -17
  273. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -10
  274. package/browser/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +0 -6
  275. package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -18
  276. package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -17
  277. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +0 -5
  278. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +0 -115
  279. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +0 -50
  280. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +0 -5
  281. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +0 -61
  282. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +0 -21
  283. package/client/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +0 -4
  284. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +0 -32
  285. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +0 -54
  286. package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -3
  287. package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -33
  288. package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -16
  289. package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -3
  290. package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -17
  291. package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -10
  292. package/client/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +0 -6
  293. package/client/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -18
  294. package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -17
  295. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -2
  296. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +0 -5
  297. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js.map +0 -1
  298. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -29
  299. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -2
  300. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.d.ts +0 -1
  301. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +0 -5
  302. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js.map +0 -1
  303. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/taon-db-admin.component.d.ts +0 -8
  304. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -2
  305. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +0 -5
  306. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js.map +0 -1
  307. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -13
  308. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -2
  309. package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js.map +0 -1
  310. package/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -14
  311. package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -2
  312. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +0 -5
  313. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +0 -115
  314. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +0 -50
  315. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +0 -5
  316. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +0 -61
  317. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +0 -21
  318. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.mjs +0 -4
  319. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.mjs +0 -32
  320. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +0 -54
  321. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +0 -3
  322. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +0 -33
  323. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +0 -16
  324. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +0 -3
  325. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +0 -17
  326. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +0 -10
  327. package/websql/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +0 -6
  328. package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +0 -18
  329. package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +0 -17
  330. /package/lib/ui/taon-admin-mode-configuration/{models/taon-admin-mode-tabs.d.ts → taon-admin.models.d.ts} +0 -0
@@ -0,0 +1,269 @@
1
+ import { Helpers, UtilsMigrations } from 'tnp-core/websql';
2
+ import { Models } from './models';
3
+ import { ClassHelpers } from './helpers/class-helpers';
4
+ import { Table, TableIndex, } from 'taon-typeorm/websql'; /* */
5
+ export class ContextDbMigrations {
6
+ constructor(ctx) {
7
+ this.ctx = ctx;
8
+ this.DEFAULT_MIGRATION_TABLE_NAME = 'TAON_MIGRATION_META';
9
+ this.MIGRATION_STATUS_COMPLETED = 'completed';
10
+ this.MIGRATION_STATUS_PENDING = 'pending';
11
+ this.table = new Table({
12
+ name: this.DEFAULT_MIGRATION_TABLE_NAME,
13
+ columns: [
14
+ {
15
+ name: 'id',
16
+ type: 'integer',
17
+ isPrimary: true, // Mark it as the primary key
18
+ isGenerated: true, // Enable auto-generation
19
+ generationStrategy: 'increment', // Use auto-increment strategy
20
+ },
21
+ {
22
+ name: 'name',
23
+ type: 'varchar',
24
+ length: '255',
25
+ isUnique: true, // Ensure the name is unique
26
+ isNullable: false, // Ensure this field is required
27
+ },
28
+ {
29
+ name: 'context',
30
+ type: 'varchar',
31
+ length: '255',
32
+ isNullable: false, // Optional context for migrations (e.g., tenant or module name)
33
+ },
34
+ {
35
+ name: 'applied_at',
36
+ type: 'timestamp',
37
+ default: 'CURRENT_TIMESTAMP', // Automatically set the timestamp
38
+ isNullable: true,
39
+ },
40
+ {
41
+ name: 'status',
42
+ type: 'varchar',
43
+ length: '50',
44
+ default: `'${this.MIGRATION_STATUS_COMPLETED}'`,
45
+ isNullable: false,
46
+ },
47
+ ],
48
+ });
49
+ }
50
+ async ensureMigrationTableExists() {
51
+ if (this.ctx.remoteHost) {
52
+ return;
53
+ }
54
+ const queryRunner = this.ctx.connection.createQueryRunner();
55
+ await queryRunner.connect();
56
+ await queryRunner.startTransaction();
57
+ const hasTable = await queryRunner.hasTable(this.DEFAULT_MIGRATION_TABLE_NAME);
58
+ if (hasTable) {
59
+ this.ctx.logMigrations &&
60
+ console.log(`Table ${this.DEFAULT_MIGRATION_TABLE_NAME} already exists.`);
61
+ await queryRunner.release();
62
+ return; // Exit early if the table exists
63
+ }
64
+ try {
65
+ await queryRunner.createTable(this.table);
66
+ await queryRunner.createIndex(this.DEFAULT_MIGRATION_TABLE_NAME, new TableIndex({
67
+ name: 'IDX_NAME',
68
+ columnNames: ['name'],
69
+ }));
70
+ await queryRunner.commitTransaction();
71
+ }
72
+ catch (error) {
73
+ this.ctx.logMigrations &&
74
+ console.error(`Transaction failed [ensureMigrationTableExists]` + `, rolling back:`, error);
75
+ await queryRunner.rollbackTransaction();
76
+ }
77
+ finally {
78
+ await queryRunner.release();
79
+ }
80
+ }
81
+ async revertMigrationToTimestamp(timestamp) {
82
+ if (this.ctx.remoteHost) {
83
+ return;
84
+ }
85
+ if (!UtilsMigrations.isValidTimestamp(timestamp)) {
86
+ Helpers.throw(`Invalid timestamp provided for migration revert: ${timestamp}`);
87
+ }
88
+ const migrationsClassFns = this.ctx
89
+ .getClassFunByArr(Models.ClassType.MIGRATION)
90
+ .reverse();
91
+ const migrationClassesInstancesToRevert = migrationsClassFns
92
+ .map(classFn => {
93
+ const timestampFromClassName = Number(UtilsMigrations.getTimestampFromClassName(ClassHelpers.getName(classFn)));
94
+ if (timestampFromClassName <= timestamp) {
95
+ return null;
96
+ }
97
+ return this.ctx.getInstanceBy(classFn);
98
+ })
99
+ .filter(f => !!f)
100
+ .map(f => f)
101
+ .filter(migrationInstance => migrationInstance.isReadyToRun());
102
+ const queryRunner = this.ctx.connection.createQueryRunner();
103
+ await queryRunner.connect();
104
+ try {
105
+ await queryRunner.startTransaction();
106
+ const appliedMigrationsForContext = await queryRunner.query(`SELECT name FROM ${this.DEFAULT_MIGRATION_TABLE_NAME}
107
+ WHERE status = $1 AND context = $2`, [this.MIGRATION_STATUS_COMPLETED, this.ctx.contextName]);
108
+ const appliedMigrationsForContextNames = appliedMigrationsForContext.map(m => m.name);
109
+ for (const migrationClassInstance of migrationClassesInstancesToRevert) {
110
+ const migrationName = ClassHelpers.getName(migrationClassInstance);
111
+ if (!appliedMigrationsForContextNames.includes(migrationName)) {
112
+ this.ctx.logMigrations &&
113
+ console.warn(`Skipping migration not marked as applied: ${migrationName}`);
114
+ continue;
115
+ }
116
+ this.ctx.logMigrations &&
117
+ console.log(`Reverting migration: ${migrationName} , context: ${this.ctx.contextName}`);
118
+ await migrationClassInstance.down(queryRunner);
119
+ await queryRunner.query(`DELETE FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE name = $1`, [migrationName]);
120
+ }
121
+ await queryRunner.commitTransaction();
122
+ this.ctx.logMigrations &&
123
+ console.log('Migrations successfully reverted to the specified timestamp.');
124
+ }
125
+ catch (error) {
126
+ this.ctx.logMigrations &&
127
+ console.error('Transaction failed, rolling back:', error);
128
+ await queryRunner.rollbackTransaction();
129
+ }
130
+ finally {
131
+ await queryRunner.release();
132
+ }
133
+ }
134
+ async clearMigrationTable() {
135
+ if (this.ctx.remoteHost) {
136
+ return;
137
+ }
138
+ const queryRunner = this.ctx.connection.createQueryRunner();
139
+ await queryRunner.connect();
140
+ await queryRunner.startTransaction();
141
+ try {
142
+ await queryRunner.clearTable(this.DEFAULT_MIGRATION_TABLE_NAME);
143
+ await queryRunner.commitTransaction();
144
+ }
145
+ catch (error) {
146
+ this.ctx.logMigrations &&
147
+ console.error('Transaction failed, rolling back:', error);
148
+ await queryRunner.rollbackTransaction();
149
+ }
150
+ finally {
151
+ await queryRunner.release();
152
+ }
153
+ }
154
+ async markAllMigrationsAsApplied() {
155
+ if (this.ctx.remoteHost) {
156
+ return;
157
+ }
158
+ const migrationsClassFns = this.ctx.getClassFunByArr(Models.ClassType.MIGRATION);
159
+ const migrationClassesInstances = migrationsClassFns
160
+ .map(classFn => this.ctx.getInstanceBy(classFn))
161
+ .map(f => f)
162
+ .filter(migrationInstance => migrationInstance.isReadyToRun());
163
+ const queryRunner = this.ctx.connection.createQueryRunner();
164
+ await queryRunner.connect();
165
+ try {
166
+ await queryRunner.startTransaction();
167
+ const allMigrationsInDb = await queryRunner.query(`SELECT name FROM ${this.DEFAULT_MIGRATION_TABLE_NAME}`);
168
+ const allMigrationInDBNames = allMigrationsInDb.map(m => m.name);
169
+ for (const instance of migrationClassesInstances) {
170
+ const migrationName = ClassHelpers.getName(instance);
171
+ if (allMigrationInDBNames.includes(migrationName)) {
172
+ this.ctx.logMigrations &&
173
+ console.log(`Skipping already applied migration: ${migrationName}`);
174
+ continue;
175
+ }
176
+ this.ctx.logMigrations &&
177
+ console.log(`Marking migration as applied: ${migrationName}`);
178
+ await queryRunner.query(`INSERT INTO ${this.DEFAULT_MIGRATION_TABLE_NAME} (name, status, context, applied_at) ` +
179
+ `VALUES ($1, $2, $3, CURRENT_TIMESTAMP)`, [
180
+ migrationName,
181
+ this.MIGRATION_STATUS_COMPLETED,
182
+ instance.ctx.contextName,
183
+ ]);
184
+ }
185
+ await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME}
186
+ SET status = $1, applied_at = CURRENT_TIMESTAMP
187
+ WHERE status = $2`, [this.MIGRATION_STATUS_COMPLETED, this.MIGRATION_STATUS_PENDING]);
188
+ await queryRunner.commitTransaction();
189
+ this.ctx.logMigrations &&
190
+ console.log('All migrations marked as applied.');
191
+ }
192
+ catch (error) {
193
+ this.ctx.logMigrations &&
194
+ console.error('Failed to mark all migrations as applied, rolling back:', error);
195
+ await queryRunner.rollbackTransaction();
196
+ }
197
+ finally {
198
+ await queryRunner.release();
199
+ }
200
+ }
201
+ async runAllNotCompletedMigrations() {
202
+ if (this.ctx.remoteHost) {
203
+ return;
204
+ }
205
+ const migrationsClassFns = this.ctx.getClassFunByArr(Models.ClassType.MIGRATION);
206
+ const migrationClassesInstances = migrationsClassFns
207
+ .map(classFn => this.ctx.getInstanceBy(classFn))
208
+ .map(f => f)
209
+ .filter(migrationInstance => migrationInstance.isReadyToRun());
210
+ const queryRunner = this.ctx.connection.createQueryRunner();
211
+ await queryRunner.connect();
212
+ try {
213
+ await queryRunner.startTransaction();
214
+ const appliedMigrationsForContext = await queryRunner.query(`SELECT name, status FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} ` +
215
+ `WHERE context = $1`, [this.ctx.contextName]);
216
+ const pendingMigrationsForContext = appliedMigrationsForContext.filter(m => m.status === this.MIGRATION_STATUS_PENDING);
217
+ for (const pendingContextMigration of pendingMigrationsForContext) {
218
+ const migrationInstance = migrationClassesInstances.find(instance => ClassHelpers.getName(instance) === pendingContextMigration.name);
219
+ if (!migrationInstance) {
220
+ this.ctx.logMigrations &&
221
+ console.warn(`Pending migration ${pendingContextMigration.name} not found in loaded migrations.`);
222
+ continue;
223
+ }
224
+ this.ctx.logMigrations &&
225
+ console.log(`Completing pending migration: ${pendingContextMigration.name}`);
226
+ await migrationInstance.up(queryRunner);
227
+ await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME}
228
+ SET status = $1, applied_at = CURRENT_TIMESTAMP
229
+ WHERE name = $2`, [this.MIGRATION_STATUS_COMPLETED, pendingContextMigration.name]);
230
+ }
231
+ for (const instance of migrationClassesInstances) {
232
+ const migrationName = ClassHelpers.getName(instance);
233
+ if (appliedMigrationsForContext.some(m => m.name === migrationName)) {
234
+ this.ctx.logMigrations &&
235
+ console.log(`Skipping already applied migration: ${migrationName}`);
236
+ continue;
237
+ }
238
+ this.ctx.logMigrations &&
239
+ console.log(`Applying new migration: ${migrationName}`);
240
+ await queryRunner.query(`INSERT INTO ${this.DEFAULT_MIGRATION_TABLE_NAME} (name, status, context, applied_at) ` +
241
+ `VALUES ($1, $2, $3, NULL)`, [migrationName, this.MIGRATION_STATUS_PENDING, this.ctx.contextName]);
242
+ try {
243
+ await instance.up(queryRunner);
244
+ await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME} ` +
245
+ `SET status = '${this.MIGRATION_STATUS_COMPLETED}', applied_at = CURRENT_TIMESTAMP ` +
246
+ `WHERE name = $1`, [migrationName]);
247
+ }
248
+ catch (error) {
249
+ this.ctx.logMigrations &&
250
+ console.error(`Failed to apply migration: ${migrationName}`, error);
251
+ await queryRunner.query(`DELETE FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE name = $1`, [migrationName]);
252
+ throw error; // Rethrow to ensure the transaction is rolled back
253
+ }
254
+ }
255
+ await queryRunner.commitTransaction();
256
+ }
257
+ catch (error) {
258
+ this.ctx.logMigrations &&
259
+ console.error('Transaction failed, rolling back:', error);
260
+ await queryRunner.rollbackTransaction();
261
+ }
262
+ finally {
263
+ await queryRunner.release();
264
+ }
265
+ }
266
+ }
267
+ ;
268
+ ({}); // @--end-of-file-for-module=taon lib/context-db-migrations.ts
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1kYi1taWdyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2NvbnRleHQtZGItbWlncmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBSyxNQUFNLGlCQUFpQixDQUFDO0FBRzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBd0csS0FBSyxFQUFtQixVQUFVLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxDQUFBLEtBQUs7QUFpQnJMLE1BQU0sT0FBTyxtQkFBbUI7SUErRDlCLFlBQW9CLEdBQW9CO1FBQXBCLFFBQUcsR0FBSCxHQUFHLENBQWlCO1FBM0QvQixpQ0FBNEIsR0FBRyxxQkFBcUIsQ0FBQztRQUlyRCwrQkFBMEIsR0FBb0IsV0FBVyxDQUFDO1FBQzFELDZCQUF3QixHQUFvQixTQUFTLENBQUM7UUFJdEQsVUFBSyxHQUFHLElBQUksS0FBSyxDQUFDO1lBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsNEJBQTRCO1lBQ3ZDLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsSUFBSTtvQkFDVixJQUFJLEVBQUUsU0FBUztvQkFDZixTQUFTLEVBQUUsSUFBSSxFQUFFLDZCQUE2QjtvQkFDOUMsV0FBVyxFQUFFLElBQUksRUFBRSx5QkFBeUI7b0JBQzVDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSw4QkFBOEI7aUJBQ2hFO2dCQUNEO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxTQUFTO29CQUNmLE1BQU0sRUFBRSxLQUFLO29CQUNiLFFBQVEsRUFBRSxJQUFJLEVBQUUsNEJBQTRCO29CQUM1QyxVQUFV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QUMsS0FBSyxDQUFDLDhCQUE4QixhQUFhLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFHdEUsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUNyQixlQUFlLElBQUksQ0FBQyw0QkFBNEIsa0JBQWtCLEVBQ2xFLENBQUMsYUFBYSxDQUFDLENBQ2hCLENBQUM7b0JBRUYsTUFBTSxLQUFLLENBQUMsQ0FBQyxtREFBbUQ7Z0JBQ2xFLENBQUM7WUFDSCxDQUFDO1lBSUQsTUFBTSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN4QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtnQkFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1RCxNQUFNLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzFDLENBQUM7Z0JBQVMsQ0FBQztZQUNULE1BQU0sV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFFSCxDQUFDO0NBRUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDhEQUE4RCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IEhlbHBlcnMsIFV0aWxzTWlncmF0aW9ucywgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBCYXNlTWlncmF0aW9uIH0gZnJvbSAnLi9iYXNlLWNsYXNzZXMvYmFzZS1taWdyYXRpb24nO1xuaW1wb3J0IHR5cGUgeyBFbmRwb2ludENvbnRleHQgfSBmcm9tICcuL2VuZHBvaW50LWNvbnRleHQnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgICBDb2x1bW4sICAgRGF0YVNvdXJjZSwgICBFbnRpdHksICAgRW50aXR5U2NoZW1hLCAgIEluZGV4LCAgIFByaW1hcnlHZW5lcmF0ZWRDb2x1bW4sICAgUXVlcnlSdW5uZXIsICAgVGFibGUsICAgVGFibGVDb2x1bW4sICAgVGFibGVJbmRleCwgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cblxuXG5cblxuZXhwb3J0IHR5cGUgTWlncmF0aW9uU3RhdHVzID0gJ2NvbXBsZXRlZCcgfCAncGVuZGluZyc7XG5cbmV4cG9ydCBjbGFzcyBDb250ZXh0RGJNaWdyYXRpb25zIHtcblxuXG5cbiAgcmVhZG9ubHkgREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRSA9ICdUQU9OX01JR1JBVElPTl9NRVRBJztcblxuXG5cbiAgcmVhZG9ubHkgTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUQ6IE1pZ3JhdGlvblN0YXR1cyA9ICdjb21wbGV0ZWQnO1xuICByZWFkb25seSBNSUdSQVRJT05fU1RBVFVTX1BFTkRJTkc6IE1pZ3JhdGlvblN0YXR1cyA9ICdwZW5kaW5nJztcblxuXG5cbiAgcmVhZG9ubHkgdGFibGUgPSBuZXcgVGFibGUoe1xuICAgIG5hbWU6IHRoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRSxcbiAgICBjb2x1bW5zOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHR5cGU6ICdpbnRlZ2VyJyxcbiAgICAgICAgaXNQcmltYXJ5OiB0cnVlLCAvLyBNYXJrIGl0IGFzIHRoZSBwcmltYXJ5IGtleVxuICAgICAgICBpc0dlbmVyYXRlZDogdHJ1ZSwgLy8gRW5hYmxlIGF1dG8tZ2VuZXJhdGlvblxuICAgICAgICBnZW5lcmF0aW9uU3RyYXRlZ3k6ICdpbmNyZW1lbnQnLCAvLyBVc2UgYXV0by1pbmNyZW1lbnQgc3RyYXRlZ3lcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgICAgdHlwZTogJ3ZhcmNoYXInLFxuICAgICAgICBsZW5ndGg6ICcyNTUnLFxuICAgICAgICBpc1VuaXF1ZTogdHJ1ZSwgLy8gRW5zdXJlIHRoZSBuYW1lIGlzIHVuaXF1ZVxuICAgICAgICBpc051bGxhYmxlOiBmYWxzZSwgLy8gRW5zdXJlIHRoaXMgZmllbGQgaXMgcmVxdWlyZWRcbiAgICAgIH0sXG4gICAgICB7XG5cbiAgICAgICAgbmFtZTogJ2NvbnRleHQnLFxuICAgICAgICB0eXBlOiAndmFyY2hhcicsXG4gICAgICAgIGxlbmd0aDogJzI1NScsXG4gICAgICAgIGlzTnVsbGFibGU6IGZhbHNlLCAvLyBPcHRpb25hbCBjb250ZXh0IGZvciBtaWdyYXRpb25zIChlLmcuLCB0ZW5hbnQgb3IgbW9kdWxlIG5hbWUpXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnYXBwbGllZF9hdCcsXG4gICAgICAgIHR5cGU6ICd0aW1lc3RhbXAnLFxuICAgICAgICBkZWZhdWx0OiAnQ1VSUkVOVF9USU1FU1RBTVAnLCAvLyBBdXRvbWF0aWNhbGx5IHNldCB0aGUgdGltZXN0YW1wXG4gICAgICAgIGlzTnVsbGFibGU6IHRydWUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnc3RhdHVzJyxcbiAgICAgICAgdHlwZTogJ3ZhcmNoYXInLFxuICAgICAgICBsZW5ndGg6ICc1MCcsXG4gICAgICAgIGRlZmF1bHQ6IGAnJHt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVEfSdgLFxuICAgICAgICBpc051bGxhYmxlOiBmYWxzZSxcbiAgICAgIH0sXG5cblxuXG5cblxuXG4gICAgXSxcbiAgfSk7XG5cblxuXG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGN0eDogRW5kcG9pbnRDb250ZXh0KSB7fVxuXG5cblxuICBhc3luYyBlbnN1cmVNaWdyYXRpb25UYWJsZUV4aXN0cygpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5jdHguY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG5cblxuICAgIGNvbnN0IGhhc1RhYmxlID0gYXdhaXQgcXVlcnlSdW5uZXIuaGFzVGFibGUoXG4gICAgICB0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUUsXG4gICAgKTtcbiAgICBpZiAoaGFzVGFibGUpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYFRhYmxlICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSBhbHJlYWR5IGV4aXN0cy5gLFxuICAgICAgICApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgICAgcmV0dXJuOyAvLyBFeGl0IGVhcmx5IGlmIHRoZSB0YWJsZSBleGlzdHNcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY3JlYXRlVGFibGUodGhpcy50YWJsZSk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jcmVhdGVJbmRleChcbiAgICAgICAgdGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FLFxuICAgICAgICBuZXcgVGFibGVJbmRleCh7XG4gICAgICAgICAgbmFtZTogJ0lEWF9OQU1FJyxcbiAgICAgICAgICBjb2x1bW5OYW1lczogWyduYW1lJ10sXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBUcmFuc2FjdGlvbiBmYWlsZWQgW2Vuc3VyZU1pZ3JhdGlvblRhYmxlRXhpc3RzXWAgKyBgLCByb2xsaW5nIGJhY2s6YCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cblxuXG4gIH1cblxuXG5cbiAgYXN5bmMgcmV2ZXJ0TWlncmF0aW9uVG9UaW1lc3RhbXAodGltZXN0YW1wOiBudW1iZXIpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghVXRpbHNNaWdyYXRpb25zLmlzVmFsaWRUaW1lc3RhbXAodGltZXN0YW1wKSkge1xuICAgICAgSGVscGVycy50aHJvdyhcbiAgICAgICAgYEludmFsaWQgdGltZXN0YW1wIHByb3ZpZGVkIGZvciBtaWdyYXRpb24gcmV2ZXJ0OiAke3RpbWVzdGFtcH1gLFxuICAgICAgKTtcbiAgICB9XG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbnNDbGFzc0ZuczogRnVuY3Rpb25bXSA9IHRoaXMuY3R4XG4gICAgICAuZ2V0Q2xhc3NGdW5CeUFycihNb2RlbHMuQ2xhc3NUeXBlLk1JR1JBVElPTilcbiAgICAgIC5yZXZlcnNlKCk7XG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXNUb1JldmVydDogQmFzZU1pZ3JhdGlvbltdID1cbiAgICAgIG1pZ3JhdGlvbnNDbGFzc0Zuc1xuICAgICAgICAubWFwKGNsYXNzRm4gPT4ge1xuICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcEZyb21DbGFzc05hbWUgPSBOdW1iZXIoXG4gICAgICAgICAgICBVdGlsc01pZ3JhdGlvbnMuZ2V0VGltZXN0YW1wRnJvbUNsYXNzTmFtZShcbiAgICAgICAgICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUoY2xhc3NGbiksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAodGltZXN0YW1wRnJvbUNsYXNzTmFtZSA8PSB0aW1lc3RhbXApIHtcblxuXG5cblxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5jdHguZ2V0SW5zdGFuY2VCeShjbGFzc0ZuIGFzIGFueSkgYXMgYW55O1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKGYgPT4gISFmKVxuICAgICAgICAubWFwKGYgPT4gZiBhcyBCYXNlTWlncmF0aW9uKVxuICAgICAgICAuZmlsdGVyKG1pZ3JhdGlvbkluc3RhbmNlID0+IG1pZ3JhdGlvbkluc3RhbmNlLmlzUmVhZHlUb1J1bigpKTtcblxuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5jdHguY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG5cblxuICAgICAgY29uc3QgYXBwbGllZE1pZ3JhdGlvbnNGb3JDb250ZXh0ID0gYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgIGBTRUxFQ1QgbmFtZSBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfVxuICAgICAgICAgV0hFUkUgc3RhdHVzID0gJDEgQU5EIGNvbnRleHQgPSAkMmAsXG4gICAgICAgIFt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELCB0aGlzLmN0eC5jb250ZXh0TmFtZV0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCBhcHBsaWVkTWlncmF0aW9uc0ZvckNvbnRleHROYW1lcyA9IGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dC5tYXAoXG4gICAgICAgIG0gPT4gbS5uYW1lLFxuICAgICAgKTtcblxuXG4gICAgICBmb3IgKGNvbnN0IG1pZ3JhdGlvbkNsYXNzSW5zdGFuY2Ugb2YgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlc1RvUmV2ZXJ0KSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbk5hbWUgPSBDbGFzc0hlbHBlcnMuZ2V0TmFtZShtaWdyYXRpb25DbGFzc0luc3RhbmNlKTtcblxuICAgICAgICBpZiAoIWFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dE5hbWVzLmluY2x1ZGVzKG1pZ3JhdGlvbk5hbWUpKSB7XG4gICAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBgU2tpcHBpbmcgbWlncmF0aW9uIG5vdCBtYXJrZWQgYXMgYXBwbGllZDogJHttaWdyYXRpb25OYW1lfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYFJldmVydGluZyBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX0gLCBjb250ZXh0OiAke3RoaXMuY3R4LmNvbnRleHROYW1lfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgbWlncmF0aW9uQ2xhc3NJbnN0YW5jZS5kb3duKHF1ZXJ5UnVubmVyKTtcblxuXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBERUxFVEUgRlJPTSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gV0hFUkUgbmFtZSA9ICQxYCxcbiAgICAgICAgICBbbWlncmF0aW9uTmFtZV0sXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICdNaWdyYXRpb25zIHN1Y2Nlc3NmdWxseSByZXZlcnRlZCB0byB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcC4nLFxuICAgICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1RyYW5zYWN0aW9uIGZhaWxlZCwgcm9sbGluZyBiYWNrOicsIGVycm9yKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cblxuICB9XG5cblxuXG4gIGFzeW5jIGNsZWFyTWlncmF0aW9uVGFibGUoKSB7XG5cbiAgICBpZiAodGhpcy5jdHgucmVtb3RlSG9zdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuY3R4LmNvbm5lY3Rpb24uY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNsZWFyVGFibGUodGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcignVHJhbnNhY3Rpb24gZmFpbGVkLCByb2xsaW5nIGJhY2s6JywgZXJyb3IpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuXG4gIH1cblxuXG5cbiAgYXN5bmMgbWFya0FsbE1pZ3JhdGlvbnNBc0FwcGxpZWQoKSB7XG5cbiAgICBpZiAodGhpcy5jdHgucmVtb3RlSG9zdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBtaWdyYXRpb25zQ2xhc3NGbnM6IEZ1bmN0aW9uW10gPSB0aGlzLmN0eC5nZXRDbGFzc0Z1bkJ5QXJyKFxuICAgICAgTW9kZWxzLkNsYXNzVHlwZS5NSUdSQVRJT04sXG4gICAgKTtcblxuICAgIGNvbnN0IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXM6IEJhc2VNaWdyYXRpb25bXSA9IG1pZ3JhdGlvbnNDbGFzc0Zuc1xuICAgICAgLm1hcChjbGFzc0ZuID0+IHRoaXMuY3R4LmdldEluc3RhbmNlQnkoY2xhc3NGbiBhcyBhbnkpKVxuICAgICAgLm1hcChmID0+IGYgYXMgQmFzZU1pZ3JhdGlvbilcbiAgICAgIC5maWx0ZXIobWlncmF0aW9uSW5zdGFuY2UgPT4gbWlncmF0aW9uSW5zdGFuY2UuaXNSZWFkeVRvUnVuKCkpO1xuXG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmN0eC5jb25uZWN0aW9uLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcblxuXG4gICAgICBjb25zdCBhbGxNaWdyYXRpb25zSW5EYiA9IGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICBgU0VMRUNUIG5hbWUgRlJPTSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX1gLFxuICAgICAgKTtcblxuICAgICAgY29uc3QgYWxsTWlncmF0aW9uSW5EQk5hbWVzID0gYWxsTWlncmF0aW9uc0luRGIubWFwKG0gPT4gbS5uYW1lKTtcblxuICAgICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiBtaWdyYXRpb25DbGFzc2VzSW5zdGFuY2VzKSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbk5hbWUgPSBDbGFzc0hlbHBlcnMuZ2V0TmFtZShpbnN0YW5jZSk7XG5cbiAgICAgICAgaWYgKGFsbE1pZ3JhdGlvbkluREJOYW1lcy5pbmNsdWRlcyhtaWdyYXRpb25OYW1lKSkge1xuICAgICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBTa2lwcGluZyBhbHJlYWR5IGFwcGxpZWQgbWlncmF0aW9uOiAke21pZ3JhdGlvbk5hbWV9YCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgICAgY29uc29sZS5sb2coYE1hcmtpbmcgbWlncmF0aW9uIGFzIGFwcGxpZWQ6ICR7bWlncmF0aW9uTmFtZX1gKTtcblxuXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBJTlNFUlQgSU5UTyAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gKG5hbWUsIHN0YXR1cywgY29udGV4dCwgYXBwbGllZF9hdCkgYCArXG4gICAgICAgICAgICBgVkFMVUVTICgkMSwgJDIsICQzLCBDVVJSRU5UX1RJTUVTVEFNUClgLFxuICAgICAgICAgIFtcbiAgICAgICAgICAgIG1pZ3JhdGlvbk5hbWUsXG4gICAgICAgICAgICB0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELFxuICAgICAgICAgICAgaW5zdGFuY2UuY3R4LmNvbnRleHROYW1lLFxuICAgICAgICAgIF0sXG4gICAgICAgICk7XG4gICAgICB9XG5cblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgIGBVUERBVEUgJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9XG4gICAgICAgICBTRVQgc3RhdHVzID0gJDEsIGFwcGxpZWRfYXQgPSBDVVJSRU5UX1RJTUVTVEFNUFxuICAgICAgICAgV0hFUkUgc3RhdHVzID0gJDJgLFxuICAgICAgICBbdGhpcy5NSUdSQVRJT05fU1RBVFVTX0NPTVBMRVRFRCwgdGhpcy5NSUdSQVRJT05fU1RBVFVTX1BFTkRJTkddLFxuICAgICAgKTtcblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5sb2coJ0FsbCBtaWdyYXRpb25zIG1hcmtlZCBhcyBhcHBsaWVkLicpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgJ0ZhaWxlZCB0byBtYXJrIGFsbCBtaWdyYXRpb25zIGFzIGFwcGxpZWQsIHJvbGxpbmcgYmFjazonLFxuICAgICAgICAgIGVycm9yLFxuICAgICAgICApO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuXG4gIH1cblxuXG5cbiAgYXN5bmMgcnVuQWxsTm90Q29tcGxldGVkTWlncmF0aW9ucygpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1pZ3JhdGlvbnNDbGFzc0ZuczogRnVuY3Rpb25bXSA9IHRoaXMuY3R4LmdldENsYXNzRnVuQnlBcnIoXG4gICAgICBNb2RlbHMuQ2xhc3NUeXBlLk1JR1JBVElPTixcbiAgICApO1xuXG4gICAgY29uc3QgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlczogQmFzZU1pZ3JhdGlvbltdID0gbWlncmF0aW9uc0NsYXNzRm5zXG4gICAgICAubWFwKGNsYXNzRm4gPT4gdGhpcy5jdHguZ2V0SW5zdGFuY2VCeShjbGFzc0ZuIGFzIGFueSkpXG4gICAgICAubWFwKGYgPT4gZiBhcyBCYXNlTWlncmF0aW9uKVxuICAgICAgLmZpbHRlcihtaWdyYXRpb25JbnN0YW5jZSA9PiBtaWdyYXRpb25JbnN0YW5jZS5pc1JlYWR5VG9SdW4oKSk7XG5cbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuY3R4LmNvbm5lY3Rpb24uY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuXG5cblxuXG5cbiAgICAgIGNvbnN0IGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dCA9IGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICBgU0VMRUNUIG5hbWUsIHN0YXR1cyBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSBgICtcbiAgICAgICAgICBgV0hFUkUgY29udGV4dCA9ICQxYCxcbiAgICAgICAgW3RoaXMuY3R4LmNvbnRleHROYW1lXSxcbiAgICAgICk7XG5cblxuICAgICAgY29uc3QgcGVuZGluZ01pZ3JhdGlvbnNGb3JDb250ZXh0ID0gYXBwbGllZE1pZ3JhdGlvbnNGb3JDb250ZXh0LmZpbHRlcihcbiAgICAgICAgbSA9PiBtLnN0YXR1cyA9PT0gdGhpcy5NSUdSQVRJT05fU1RBVFVTX1BFTkRJTkcsXG4gICAgICApO1xuXG5cbiAgICAgIGZvciAoY29uc3QgcGVuZGluZ0NvbnRleHRNaWdyYXRpb24gb2YgcGVuZGluZ01pZ3JhdGlvbnNGb3JDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbkluc3RhbmNlID0gbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlcy5maW5kKFxuICAgICAgICAgIGluc3RhbmNlID0+XG4gICAgICAgICAgICBDbGFzc0hlbHBlcnMuZ2V0TmFtZShpbnN0YW5jZSkgPT09IHBlbmRpbmdDb250ZXh0TWlncmF0aW9uLm5hbWUsXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFtaWdyYXRpb25JbnN0YW5jZSkge1xuICAgICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgYFBlbmRpbmcgbWlncmF0aW9uICR7cGVuZGluZ0NvbnRleHRNaWdyYXRpb24ubmFtZX0gbm90IGZvdW5kIGluIGxvYWRlZCBtaWdyYXRpb25zLmAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYENvbXBsZXRpbmcgcGVuZGluZyBtaWdyYXRpb246ICR7cGVuZGluZ0NvbnRleHRNaWdyYXRpb24ubmFtZX1gLFxuICAgICAgICAgICk7XG4gICAgICAgIGF3YWl0IG1pZ3JhdGlvbkluc3RhbmNlLnVwKHF1ZXJ5UnVubmVyKTtcblxuXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBVUERBVEUgJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9XG4gICAgICAgICAgIFNFVCBzdGF0dXMgPSAkMSwgYXBwbGllZF9hdCA9IENVUlJFTlRfVElNRVNUQU1QXG4gICAgICAgICAgIFdIRVJFIG5hbWUgPSAkMmAsXG4gICAgICAgICAgW3RoaXMuTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUQsIHBlbmRpbmdDb250ZXh0TWlncmF0aW9uLm5hbWVdLFxuICAgICAgICApO1xuICAgICAgfVxuXG5cblxuICAgICAgZm9yIChjb25zdCBpbnN0YW5jZSBvZiBtaWdyYXRpb25DbGFzc2VzSW5zdGFuY2VzKSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbk5hbWUgPSBDbGFzc0hlbHBlcnMuZ2V0TmFtZShpbnN0YW5jZSk7XG5cbiAgICAgICAgaWYgKGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dC5zb21lKG0gPT4gbS5uYW1lID09PSBtaWdyYXRpb25OYW1lKSkge1xuICAgICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBTa2lwcGluZyBhbHJlYWR5IGFwcGxpZWQgbWlncmF0aW9uOiAke21pZ3JhdGlvbk5hbWV9YCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgICAgY29uc29sZS5sb2coYEFwcGx5aW5nIG5ldyBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX1gKTtcblxuICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgICBgSU5TRVJUIElOVE8gJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9IChuYW1lLCBzdGF0dXMsIGNvbnRleHQsIGFwcGxpZWRfYXQpIGAgK1xuICAgICAgICAgICAgYFZBTFVFUyAoJDEsICQyLCAkMywgTlVMTClgLFxuICAgICAgICAgIFttaWdyYXRpb25OYW1lLCB0aGlzLk1JR1JBVElPTl9TVEFUVVNfUEVORElORywgdGhpcy5jdHguY29udGV4dE5hbWVdLFxuICAgICAgICApO1xuXG4gICAgICAgIHRyeSB7XG5cbiAgICAgICAgICBhd2FpdCBpbnN0YW5jZS51cChxdWVyeVJ1bm5lcik7XG5cblxuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgICAgYFVQREFURSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gYCArXG4gICAgICAgICAgICAgIGBTRVQgc3RhdHVzID0gJyR7dGhpcy5NSUdSQVRJT05fU1RBVFVTX0NPTVBMRVRFRH0nLCBhcHBsaWVkX2F0ID0gQ1VSUkVOVF9USU1FU1RBTVAgYCArXG4gICAgICAgICAgICAgIGBXSEVSRSBuYW1lID0gJDFgLFxuICAgICAgICAgICAgW21pZ3JhdGlvbk5hbWVdLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGFwcGx5IG1pZ3JhdGlvbjogJHttaWdyYXRpb25OYW1lfWAsIGVycm9yKTtcblxuXG4gICAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgICAgICBgREVMRVRFIEZST00gJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9IFdIRVJFIG5hbWUgPSAkMWAsXG4gICAgICAgICAgICBbbWlncmF0aW9uTmFtZV0sXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRocm93IGVycm9yOyAvLyBSZXRocm93IHRvIGVuc3VyZSB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2tcbiAgICAgICAgfVxuICAgICAgfVxuXG5cblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKCdUcmFuc2FjdGlvbiBmYWlsZWQsIHJvbGxpbmcgYmFjazonLCBlcnJvcik7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG5cbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9jb250ZXh0LWRiLW1pZ3JhdGlvbnMudHMiXX0=
@@ -1,7 +1,7 @@
1
1
  import { Helpers } from 'tnp-core/websql';
2
2
  import { EndpointContext } from './endpoint-context';
3
3
  import { ENV } from './env';
4
- import { TaonAdmin } from './ui/taon-admin-mode-configuration/taon-admin.service';
4
+ import { TaonAdminService } from './ui/taon-admin-mode-configuration/taon-admin.service';
5
5
  export const createContext = (configFn) => {
6
6
  let config = configFn(ENV);
7
7
  const endpointContextRef = new EndpointContext(config, configFn);
@@ -19,6 +19,9 @@ export const createContext = (configFn) => {
19
19
  get subscribers() {
20
20
  return config.subscribers;
21
21
  },
22
+ get migrations() {
23
+ return config.migrations;
24
+ },
22
25
  },
23
26
  get contexts() {
24
27
  return config.contexts;
@@ -39,9 +42,9 @@ export const createContext = (configFn) => {
39
42
  return endpointContextRef;
40
43
  },
41
44
  /**
42
- * only for internal use
43
- * @deprecated
44
- */
45
+ * only for internal use
46
+ * @deprecated
47
+ */
45
48
  get __refSync() {
46
49
  return endpointContextRef;
47
50
  },
@@ -68,19 +71,30 @@ export const createContext = (configFn) => {
68
71
  await endpointContextRef.initEntities();
69
72
  await endpointContextRef.initSubscribers();
70
73
  await endpointContextRef.initDatabaseConnection();
71
- endpointContextRef.initMetadata();
74
+ await endpointContextRef.dbMigrations.ensureMigrationTableExists();
75
+ endpointContextRef.initControllers();
72
76
  endpointContextRef.startServer();
73
77
  endpointContextRef.writeActiveRoutes();
74
78
  await endpointContextRef.initClasses();
75
79
  let keepWebsqlDbDataAfterReload = false;
76
80
  keepWebsqlDbDataAfterReload =
77
- TaonAdmin.Instance.keepWebsqlDbDataAfterReload;
81
+ TaonAdminService.Instance?.keepWebsqlDbDataAfterReload;
78
82
  if (!Helpers.isNode && keepWebsqlDbDataAfterReload) {
79
83
  Helpers.info(`[taon] Keep websql data after reload`);
80
84
  }
81
85
  else {
82
86
  await endpointContextRef.reinitControllers();
83
87
  }
88
+ ///#region TODO this may be usefull but for now
89
+ if (endpointContextRef.onlyMigrationRun) {
90
+ await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();
91
+ }
92
+ else if (endpointContextRef.onlyMigrationRevertToTimestamp) {
93
+ await endpointContextRef.dbMigrations.revertMigrationToTimestamp(endpointContextRef.onlyMigrationRevertToTimestamp);
94
+ }
95
+ else {
96
+ await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();
97
+ }
84
98
  resolve(endpointContextRef);
85
99
  });
86
100
  });
@@ -96,7 +110,7 @@ export const createContext = (configFn) => {
96
110
  },
97
111
  get server() {
98
112
  return endpointContextRef.realtimeServer;
99
- }
113
+ },
100
114
  };
101
115
  },
102
116
  };
@@ -104,4 +118,4 @@ export const createContext = (configFn) => {
104
118
  };
105
119
  ;
106
120
  ({}); // @--end-of-file-for-module=taon lib/create-context.ts
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvY3JlYXRlLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTVCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQU9sRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FVM0IsUUFFeUUsRUFDekUsRUFBRTtJQUNGLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzQixNQUFNLGtCQUFrQixHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVqRSxNQUFNLEdBQUcsR0FBRztRQUVWLEtBQUssRUFBRTtZQW1CTCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLFlBQVk7Z0JBQ2QsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLFNBQVM7Z0JBQ1gsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7U0FDRjtRQUdELElBQUksUUFBUTtZQUNWLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxXQUFXO1lBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzVCLENBQUM7UUFHRDs7O1dBR0c7UUFDSCxLQUFLLENBQUMsS0FBSztZQUNULElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsTUFBTSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7b0JBQzVCLCtCQUErQixFQUFFLElBQUk7aUJBQ3RDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxPQUFPLGtCQUFrQixDQUFDO1FBQzVCLENBQUM7UUFDRDs7O1VBR0U7UUFDRixJQUFJLFNBQVM7WUFDWCxPQUFPLGtCQUFrQixDQUFDO1FBQzVCLENBQUM7UUFDRCxnQkFBZ0IsQ0FBSSxJQUErQjtZQUNqRCxPQUFPLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBRUQsUUFBUSxDQUFJLElBQStCO1lBQ3pDLE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdELE9BQU8sUUFBZSxDQUFDO1FBY3pCLENBQUM7UUFHRDs7O1dBR0c7UUFDSCxVQUFVLEVBQUUsS0FBSyxFQUFFLGVBR2xCLEVBQTRCLEVBQUU7WUFDN0IsT0FBTyxNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQ2pELFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDcEIsTUFBTSxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7d0JBQzVCLEdBQUcsZUFBZTtxQkFDbkIsQ0FBQyxDQUFDO29CQUNILElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7b0JBQzdELENBQUM7b0JBRUQsTUFBTSxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDeEMsTUFBTSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFHM0MsTUFBTSxrQkFBa0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO29CQU9sRCxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDbEMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBRWpDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLENBQUM7b0JBR3ZDLE1BQU0sa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3ZDLElBQUksMkJBQTJCLEdBQUcsS0FBSyxDQUFDO29CQUV4QywyQkFBMkI7d0JBQ3pCLFNBQVMsQ0FBQyxRQUFRLENBQUMsMkJBQTJCLENBQUM7b0JBRWpELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLDJCQUEyQixFQUFFLENBQUM7d0JBQ25ELE9BQU8sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLENBQUMsQ0FBQztvQkFDdkQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE1BQU0sa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztvQkFDL0MsQ0FBQztvQkFDRCxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRDs7O1dBR0c7UUFDSCxJQUFJLFFBQVE7WUFDVixPQUFPO2dCQUNMLElBQUksTUFBTTtvQkFDUixPQUFPLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztnQkFDM0MsQ0FBQztnQkFDRCxJQUFJLE1BQU07b0JBQ1IsT0FBTyxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7Z0JBQzNDLENBQUM7YUFDRixDQUFBO1FBQ0gsQ0FBQztLQUNGLENBQUM7SUFDRixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUdELENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBFbmRwb2ludENvbnRleHQgfSBmcm9tICcuL2VuZHBvaW50LWNvbnRleHQnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5pbXBvcnQgeyBFTlYgfSBmcm9tICcuL2Vudic7XG5cbmltcG9ydCB7IFRhb25BZG1pbiB9IGZyb20gJy4vdWkvdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24vdGFvbi1hZG1pbi5zZXJ2aWNlJztcblxuXG5cblxuXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDb250ZXh0ID0gPFxuXG4gIENUWCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG9iamVjdD4sXG4gIENUUkwgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBFTlRJVFkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBSRVBPIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgUFJPVklERVIgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBTVUJTQ1JJQkVSIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcblxuPihcbiAgY29uZmlnRm46IChcbiAgICBlbnY6IGFueSxcbiAgKSA9PiBNb2RlbHMuQ29udGV4dE9wdGlvbnM8Q1RYLCBDVFJMLCBFTlRJVFksIFJFUE8sIFBST1ZJREVSLCBTVUJTQ1JJQkVSPixcbikgPT4ge1xuICBsZXQgY29uZmlnID0gY29uZmlnRm4oRU5WKTtcblxuICBjb25zdCBlbmRwb2ludENvbnRleHRSZWYgPSBuZXcgRW5kcG9pbnRDb250ZXh0KGNvbmZpZywgY29uZmlnRm4pO1xuXG4gIGNvbnN0IHJlcyA9IHtcblxuICAgIHR5cGVzOiB7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgICBnZXQgY29udHJvbGxlcnMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcuY29udHJvbGxlcnM7XG4gICAgICB9LFxuICAgICAgZ2V0IHJlcG9zaXRvcmllcygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5yZXBvc2l0b3JpZXM7XG4gICAgICB9LFxuICAgICAgZ2V0IHByb3ZpZGVycygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5wcm92aWRlcnM7XG4gICAgICB9LFxuICAgICAgZ2V0IHN1YnNjcmliZXJzKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLnN1YnNjcmliZXJzO1xuICAgICAgfSxcbiAgICB9LFxuXG5cbiAgICBnZXQgY29udGV4dHMoKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmNvbnRleHRzO1xuICAgIH0sXG4gICAgZ2V0IGNvbnRleHROYW1lKCkge1xuICAgICAgcmV0dXJuIGNvbmZpZy5jb250ZXh0TmFtZTtcbiAgICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIC0gZ2V0IHJlZmVyZW5jZSB0byBpbnRlcm5hbCBjb250ZXh0XG4gICAgICovXG4gICAgYXN5bmMgX19yZWYoKSB7XG4gICAgICBpZiAoIWVuZHBvaW50Q29udGV4dFJlZi5pbml0ZWQpIHtcbiAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXQoe1xuICAgICAgICAgIGluaXRGcm9tUmVjcnVzaXZlQ29udGV4dFJlc292bGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZjtcbiAgICB9LFxuICAgIC8qKlxuICAgICogb25seSBmb3IgaW50ZXJuYWwgdXNlXG4gICAgKiBAZGVwcmVjYXRlZFxuICAgICovXG4gICAgZ2V0IF9fcmVmU3luYygpIHtcbiAgICAgIHJldHVybiBlbmRwb2ludENvbnRleHRSZWY7XG4gICAgfSxcbiAgICBnZXRDbGFzc0luc3RhbmNlPFQ+KGN0b3I6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgICAgIHJldHVybiBlbmRwb2ludENvbnRleHRSZWYuZ2V0SW5zdGFuY2VCeShjdG9yKTtcbiAgICB9LFxuXG4gICAgZ2V0Q2xhc3M8VD4oY3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQge1xuICAgICAgY29uc3QgY2xhc3NGdW4gPSBlbmRwb2ludENvbnRleHRSZWYuZ2V0Q2xhc3NGdW5CeUNsYXNzKGN0b3IpO1xuICAgICAgcmV0dXJuIGNsYXNzRnVuIGFzIGFueTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgIH0sXG5cblxuICAgIC8qKlxuICAgICAqIC0gY3JlYXRlIGNvbnRyb2xsZXIgaW5zdGFuY2VzIGZvciBjb250ZXh0XG4gICAgICogLSBpbml0IGRhdGFiYXNlIChpZiBlbmFibGUpICsgbWlnYXRpb24gc2NyaXB0c1xuICAgICAqL1xuICAgIGluaXRpYWxpemU6IGFzeW5jIChvdmVycmlkZU9wdGlvbnM/OntcbiAgICAgIG92ZXJyaWRlSG9zdD86IHN0cmluZztcbiAgICAgIG92ZXJyaWRlUmVtb3RlSG9zdD86IHN0cmluZztcbiAgICB9KTogUHJvbWlzZTxFbmRwb2ludENvbnRleHQ+ID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0KHtcbiAgICAgICAgICAgIC4uLm92ZXJyaWRlT3B0aW9ucyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoY29uZmlnLmFic3RyYWN0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFic3RyYWN0IGNvbnRleHQgY2FuIG5vdCBiZSBpbml0aWFsaXplZGApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0RW50aXRpZXMoKTtcbiAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuaW5pdFN1YnNjcmliZXJzKCk7XG5cblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0RGF0YWJhc2VDb25uZWN0aW9uKCk7XG5cblxuXG5cblxuXG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRNZXRhZGF0YSgpO1xuICAgICAgICAgIGVuZHBvaW50Q29udGV4dFJlZi5zdGFydFNlcnZlcigpO1xuXG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLndyaXRlQWN0aXZlUm91dGVzKCk7XG5cblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0Q2xhc3NlcygpO1xuICAgICAgICAgIGxldCBrZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQgPSBmYWxzZTtcblxuICAgICAgICAgIGtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCA9XG4gICAgICAgICAgICBUYW9uQWRtaW4uSW5zdGFuY2Uua2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkO1xuXG4gICAgICAgICAgaWYgKCFIZWxwZXJzLmlzTm9kZSAmJiBrZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQpIHtcbiAgICAgICAgICAgIEhlbHBlcnMuaW5mbyhgW3Rhb25dIEtlZXAgd2Vic3FsIGRhdGEgYWZ0ZXIgcmVsb2FkYCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5yZWluaXRDb250cm9sbGVycygpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKGVuZHBvaW50Q29udGV4dFJlZik7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlYWx0aW1lIGNvbW11bmljYXRpb24gd2l0aCBzZXJ2ZXJcbiAgICAgKiBVZHAgc29ja2V0LmlvIChvciBpcGMpIGJhc2VkLlxuICAgICAqL1xuICAgIGdldCByZWFsdGltZSgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldCBjbGllbnQoKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5yZWFsdGltZUNsaWVudDtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IHNlcnZlcigpIHtcbiAgICAgICAgICByZXR1cm4gZW5kcG9pbnRDb250ZXh0UmVmLnJlYWx0aW1lU2VydmVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIHJlcztcbn07XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2NyZWF0ZS1jb250ZXh0LnRzIl19
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvY3JlYXRlLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBT3pGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQVczQixRQVVDLEVBQ0QsRUFBRTtJQUNGLElBQUksTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUUzQixNQUFNLGtCQUFrQixHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVqRSxNQUFNLEdBQUcsR0FBRztRQUVWLEtBQUssRUFBRTtZQW1CTCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLFlBQVk7Z0JBQ2QsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLFNBQVM7Z0JBQ1gsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLFdBQVc7Z0JBQ2IsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1lBQzVCLENBQUM7WUFDRCxJQUFJLFVBQVU7Z0JBQ1osT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQzNCLENBQUM7U0FDRjtRQUdELElBQUksUUFBUTtZQUNWLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxX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QUksUUFBUTtZQUNWLE9BQU87Z0JBQ0wsSUFBSSxNQUFNO29CQUNSLE9BQU8sa0JBQWtCLENBQUMsY0FBYyxDQUFDO2dCQUMzQyxDQUFDO2dCQUNELElBQUksTUFBTTtvQkFDUixPQUFPLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztnQkFDM0MsQ0FBQzthQUNGLENBQUM7UUFDSixDQUFDO0tBQ0YsQ0FBQztJQUNGLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDO0FBR0QsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEVuZHBvaW50Q29udGV4dCB9IGZyb20gJy4vZW5kcG9pbnQtY29udGV4dCc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5cbmltcG9ydCB7IEVOViB9IGZyb20gJy4vZW52JztcblxuaW1wb3J0IHsgVGFvbkFkbWluU2VydmljZSB9IGZyb20gJy4vdWkvdGFvbi1hZG1pbi1tb2RlLWNvbmZpZ3VyYXRpb24vdGFvbi1hZG1pbi5zZXJ2aWNlJztcblxuXG5cblxuXG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDb250ZXh0ID0gPFxuXG4gIENUWCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG9iamVjdD4sXG4gIENUUkwgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBFTlRJVFkgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBSRVBPIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgUFJPVklERVIgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk+LFxuICBTVUJTQ1JJQkVSIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgTUlHUkFUSU9OIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcblxuPihcbiAgY29uZmlnRm46IChcbiAgICBlbnY6IGFueSxcbiAgKSA9PiBNb2RlbHMuQ29udGV4dE9wdGlvbnM8XG4gICAgQ1RYLFxuICAgIENUUkwsXG4gICAgRU5USVRZLFxuICAgIFJFUE8sXG4gICAgUFJPVklERVIsXG4gICAgU1VCU0NSSUJFUixcbiAgICBNSUdSQVRJT05cbiAgPixcbikgPT4ge1xuICBsZXQgY29uZmlnID0gY29uZmlnRm4oRU5WKTtcblxuICBjb25zdCBlbmRwb2ludENvbnRleHRSZWYgPSBuZXcgRW5kcG9pbnRDb250ZXh0KGNvbmZpZywgY29uZmlnRm4pO1xuXG4gIGNvbnN0IHJlcyA9IHtcblxuICAgIHR5cGVzOiB7XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgICBnZXQgY29udHJvbGxlcnMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcuY29udHJvbGxlcnM7XG4gICAgICB9LFxuICAgICAgZ2V0IHJlcG9zaXRvcmllcygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5yZXBvc2l0b3JpZXM7XG4gICAgICB9LFxuICAgICAgZ2V0IHByb3ZpZGVycygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5wcm92aWRlcnM7XG4gICAgICB9LFxuICAgICAgZ2V0IHN1YnNjcmliZXJzKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLnN1YnNjcmliZXJzO1xuICAgICAgfSxcbiAgICAgIGdldCBtaWdyYXRpb25zKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLm1pZ3JhdGlvbnM7XG4gICAgICB9LFxuICAgIH0sXG5cblxuICAgIGdldCBjb250ZXh0cygpIHtcbiAgICAgIHJldHVybiBjb25maWcuY29udGV4dHM7XG4gICAgfSxcbiAgICBnZXQgY29udGV4dE5hbWUoKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmNvbnRleHROYW1lO1xuICAgIH0sXG5cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICogLSBnZXQgcmVmZXJlbmNlIHRvIGludGVybmFsIGNvbnRleHRcbiAgICAgKi9cbiAgICBhc3luYyBfX3JlZigpIHtcbiAgICAgIGlmICghZW5kcG9pbnRDb250ZXh0UmVmLmluaXRlZCkge1xuICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuaW5pdCh7XG4gICAgICAgICAgaW5pdEZyb21SZWNydXNpdmVDb250ZXh0UmVzb3ZsZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZW5kcG9pbnRDb250ZXh0UmVmO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICogb25seSBmb3IgaW50ZXJuYWwgdXNlXG4gICAgICogQGRlcHJlY2F0ZWRcbiAgICAgKi9cbiAgICBnZXQgX19yZWZTeW5jKCkge1xuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZjtcbiAgICB9LFxuICAgIGdldENsYXNzSW5zdGFuY2U8VD4oY3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5nZXRJbnN0YW5jZUJ5KGN0b3IpO1xuICAgIH0sXG5cbiAgICBnZXRDbGFzczxUPihjdG9yOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCB7XG4gICAgICBjb25zdCBjbGFzc0Z1biA9IGVuZHBvaW50Q29udGV4dFJlZi5nZXRDbGFzc0Z1bkJ5Q2xhc3MoY3Rvcik7XG4gICAgICByZXR1cm4gY2xhc3NGdW4gYXMgYW55O1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgfSxcblxuXG4gICAgLyoqXG4gICAgICogLSBjcmVhdGUgY29udHJvbGxlciBpbnN0YW5jZXMgZm9yIGNvbnRleHRcbiAgICAgKiAtIGluaXQgZGF0YWJhc2UgKGlmIGVuYWJsZSkgKyBtaWdhdGlvbiBzY3JpcHRzXG4gICAgICovXG4gICAgaW5pdGlhbGl6ZTogYXN5bmMgKG92ZXJyaWRlT3B0aW9ucz86IHtcbiAgICAgIG92ZXJyaWRlSG9zdD86IHN0cmluZztcbiAgICAgIG92ZXJyaWRlUmVtb3RlSG9zdD86IHN0cmluZztcbiAgICAgIG9ubHlNaWdyYXRpb25SdW4/OiBib29sZWFuO1xuICAgICAgb25seU1pZ3JhdGlvblJldmVydFRvVGltZXN0YW1wPzogbnVtYmVyO1xuICAgIH0pOiBQcm9taXNlPEVuZHBvaW50Q29udGV4dD4gPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXQoe1xuICAgICAgICAgICAgLi4ub3ZlcnJpZGVPcHRpb25zLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGNvbmZpZy5hYnN0cmFjdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBBYnN0cmFjdCBjb250ZXh0IGNhbiBub3QgYmUgaW5pdGlhbGl6ZWRgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuaW5pdEVudGl0aWVzKCk7XG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRTdWJzY3JpYmVycygpO1xuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXREYXRhYmFzZUNvbm5lY3Rpb24oKTtcblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5kYk1pZ3JhdGlvbnMuZW5zdXJlTWlncmF0aW9uVGFibGVFeGlzdHMoKTtcblxuXG5cblxuXG5cbiAgICAgICAgICBlbmRwb2ludENvbnRleHRSZWYuaW5pdENvbnRyb2xsZXJzKCk7XG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLnN0YXJ0U2VydmVyKCk7XG5cbiAgICAgICAgICBlbmRwb2ludENvbnRleHRSZWYud3JpdGVBY3RpdmVSb3V0ZXMoKTtcblxuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRDbGFzc2VzKCk7XG4gICAgICAgICAgbGV0IGtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCA9IGZhbHNlO1xuXG4gICAgICAgICAga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkID1cbiAgICAgICAgICAgIFRhb25BZG1pblNlcnZpY2UuSW5zdGFuY2U/LmtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZDtcblxuICAgICAgICAgIGlmICghSGVscGVycy5pc05vZGUgJiYga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkKSB7XG4gICAgICAgICAgICBIZWxwZXJzLmluZm8oYFt0YW9uXSBLZWVwIHdlYnNxbCBkYXRhIGFmdGVyIHJlbG9hZGApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYucmVpbml0Q29udHJvbGxlcnMoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8vI3JlZ2lvbiBUT0RPIHRoaXMgbWF5IGJlIHVzZWZ1bGwgYnV0IGZvciBub3dcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gICAgICAgICAgaWYgKGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUnVuKSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLnJ1bkFsbE5vdENvbXBsZXRlZE1pZ3JhdGlvbnMoKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUmV2ZXJ0VG9UaW1lc3RhbXApIHtcbiAgICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5kYk1pZ3JhdGlvbnMucmV2ZXJ0TWlncmF0aW9uVG9UaW1lc3RhbXAoXG4gICAgICAgICAgICAgIGVuZHBvaW50Q29udGV4dFJlZi5vbmx5TWlncmF0aW9uUmV2ZXJ0VG9UaW1lc3RhbXAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLnJ1bkFsbE5vdENvbXBsZXRlZE1pZ3JhdGlvbnMoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXNvbHZlKGVuZHBvaW50Q29udGV4dFJlZik7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcblxuICAgIC8qKlxuICAgICAqIHJlYWx0aW1lIGNvbW11bmljYXRpb24gd2l0aCBzZXJ2ZXJcbiAgICAgKiBVZHAgc29ja2V0LmlvIChvciBpcGMpIGJhc2VkLlxuICAgICAqL1xuICAgIGdldCByZWFsdGltZSgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGdldCBjbGllbnQoKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5yZWFsdGltZUNsaWVudDtcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0IHNlcnZlcigpIHtcbiAgICAgICAgICByZXR1cm4gZW5kcG9pbnRDb250ZXh0UmVmLnJlYWx0aW1lU2VydmVyO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9LFxuICB9O1xuICByZXR1cm4gcmVzO1xufTtcblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvY3JlYXRlLWNvbnRleHQudHMiXX0=
@@ -1,6 +1,9 @@
1
1
  import { ClassHelpers } from '../../helpers/class-helpers';
2
2
  import { Symbols } from '../../symbols';
3
3
  import { Models } from '../../models';
4
+ /**
5
+ * Controller decorator
6
+ */
4
7
  export function TaonController(options) {
5
8
  return function (constructor) {
6
9
  ClassHelpers.setName(constructor, options?.className);
@@ -12,4 +15,4 @@ export class TaonControllerOptions extends Models.DecoratorAbstractOpt {
12
15
  }
13
16
  ;
14
17
  ({}); // @--end-of-file-for-module=taon lib/decorators/classes/controller-decorator.ts
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZGVjb3JhdG9ycy9jbGFzc2VzL2NvbnRyb2xsZXItZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUErQjtJQUM1RCxPQUFPLFVBQVUsV0FBcUI7UUFDcEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFDbkMsT0FBTyxFQUNQLFdBQVcsQ0FDWixDQUFDO1FBQ0YsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQzFCLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxDQUFDLElBQUksRUFDdEMsV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLE1BQU0sQ0FBQyxvQkFBb0I7Q0FTckU7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdGQUFnRiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgU3ltYm9scyB9IGZyb20gJy4uLy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIFRhb25Db250cm9sbGVyKG9wdGlvbnM/OiBUYW9uQ29udHJvbGxlck9wdGlvbnMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChjb25zdHJ1Y3RvcjogRnVuY3Rpb24pIHtcbiAgICBDbGFzc0hlbHBlcnMuc2V0TmFtZShjb25zdHJ1Y3Rvciwgb3B0aW9ucz8uY2xhc3NOYW1lKTtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgU3ltYm9scy5tZXRhZGF0YS5vcHRpb25zLmNvbnRyb2xsZXIsXG4gICAgICBvcHRpb25zLFxuICAgICAgY29uc3RydWN0b3IsXG4gICAgKTtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgU3ltYm9scy5tZXRhZGF0YS5jbGFzc05hbWUsXG4gICAgICBvcHRpb25zPy5jbGFzc05hbWUgfHwgY29uc3RydWN0b3IubmFtZSxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBUYW9uQ29udHJvbGxlck9wdGlvbnMgZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuICAvKipcbiAgICogdHlwZW9ybSByZWFsdGltZSBzdWJzY3JpYnRpb24gLy8gVE9ETyBkaXNhYmxlZCBmb3Igbm93LCBkb2VzIG5vdCBtYWtlIHNlbnNlID9zXG4gICAqL1xuICByZWFsdGltZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBvdmVycmlkZSBkZWZhdWx0IHBhdGggZm9yIGNvbnRyb2xsZXIgYXBpXG4gICAqL1xuICBwYXRoPzogc3RyaW5nO1xufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvZGVjb3JhdG9ycy9jbGFzc2VzL2NvbnRyb2xsZXItZGVjb3JhdG9yLnRzIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZGVjb3JhdG9ycy9jbGFzc2VzL2NvbnRyb2xsZXItZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQStCO0lBQzVELE9BQU8sVUFBVSxXQUFxQjtRQUNwQyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUNuQyxPQUFPLEVBQ1AsV0FBVyxDQUNaLENBQUM7UUFDRixPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDMUIsT0FBTyxFQUFFLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUN0QyxXQUFXLENBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsTUFBTSxDQUFDLG9CQUFvQjtDQVNyRTtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0ZBQWdGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG4vKipcbiAqIENvbnRyb2xsZXIgZGVjb3JhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYW9uQ29udHJvbGxlcihvcHRpb25zPzogVGFvbkNvbnRyb2xsZXJPcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgQ2xhc3NIZWxwZXJzLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5jb250cm9sbGVyLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgVGFvbkNvbnRyb2xsZXJPcHRpb25zIGV4dGVuZHMgTW9kZWxzLkRlY29yYXRvckFic3RyYWN0T3B0IHtcbiAgLyoqXG4gICAqIHR5cGVvcm0gcmVhbHRpbWUgc3Vic2NyaWJ0aW9uIC8vIFRPRE8gZGlzYWJsZWQgZm9yIG5vdywgZG9lcyBub3QgbWFrZSBzZW5zZSA/c1xuICAgKi9cbiAgcmVhbHRpbWU/OiBib29sZWFuO1xuICAvKipcbiAgICogb3ZlcnJpZGUgZGVmYXVsdCBwYXRoIGZvciBjb250cm9sbGVyIGFwaVxuICAgKi9cbiAgcGF0aD86IHN0cmluZztcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9jb250cm9sbGVyLWRlY29yYXRvci50cyJdfQ==
@@ -5,6 +5,9 @@ import { Symbols } from '../../symbols';
5
5
  import { _ } from 'tnp-core/websql';
6
6
  import { Models } from '../../models';
7
7
  import { Entity as TypeormEntity } from 'taon-typeorm/websql';
8
+ /**
9
+ * Entity decorator
10
+ */
8
11
  export function TaonEntity(options) {
9
12
  return function (constructor) {
10
13
  options = options || {};
@@ -22,4 +25,4 @@ export class TaonEntityOptions extends Models.DecoratorAbstractOpt {
22
25
  }
23
26
  ;
24
27
  ({}); // @--end-of-file-for-module=taon lib/decorators/classes/entity-decorator.ts
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9kZWNvcmF0b3JzL2NsYXNzZXMvZW50aXR5LWRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLElBQUksYUFBYSxFQUFRLE1BQU0scUJBQXFCLENBQUM7QUFHcEUsTUFBTSxVQUFVLFVBQVUsQ0FBVSxPQUE4QjtJQUNoRSxPQUFPLFVBQVUsV0FBcUI7UUFDcEMsT0FBTyxHQUFHLE9BQU8sSUFBSyxFQUFVLENBQUM7UUFDakMsT0FBTyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFLLElBQVksQ0FBQztRQUMvRCxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFdEQsT0FBTyxDQUFDLHVCQUF1QixDQUM3QixPQUFPLEVBQUUsa0JBQWtCLElBQUksRUFBRSxFQUNqQyxDQUFDLENBQUMsS0FBSyxDQUNMLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxFQUFFLEVBQ2xDLENBQUMsT0FBTyxFQUFFLHVCQUF1QixJQUFJLEVBQUUsQ0FBUSxDQUNoRCxDQUNGLENBQUMsV0FBVyxDQUFDLENBQUM7UUFHZixPQUFPLENBQUMsdUJBQXVCLENBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFNUQsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUMvQixPQUFPLEVBQ1AsV0FBVyxDQUNaLENBQUM7UUFDRixPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDMUIsT0FBTyxFQUFFLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUN0QyxXQUFXLENBQ1osQ0FBQztRQUVGLGFBQWEsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFL0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsOEJBQThCO0lBQ2hGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8saUJBQTJCLFNBQVEsTUFBTSxDQUFDLG9CQUFvQjtDQVUxRTtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNEVBQTRFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IE1hcHBpbmcgfSBmcm9tICduZzItcmVzdC93ZWJzcWwnO1xuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jbGFzcy1oZWxwZXJzJztcbmltcG9ydCB7IENMQVNTIH0gZnJvbSAndHlwZXNjcmlwdC1jbGFzcy1oZWxwZXJzL3dlYnNxbCc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmltcG9ydCB7IEVudGl0eSBhcyBUeXBlb3JtRW50aXR5LCBUcmVlIH0gZnJvbSAndGFvbi10eXBlb3JtL3dlYnNxbCc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIFRhb25FbnRpdHk8VCA9IGFueT4ob3B0aW9ucz86IFRhb25FbnRpdHlPcHRpb25zPFQ+KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwgKHt9IGFzIGFueSk7XG4gICAgb3B0aW9ucy51bmlxdWVLZXlQcm9wID0gb3B0aW9ucy51bmlxdWVLZXlQcm9wIHx8ICgnaWQnIGFzIGFueSk7XG4gICAgQ2xhc3NIZWxwZXJzLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7XG5cbiAgICBNYXBwaW5nLkRlZmF1bHRNb2RlbFdpdGhNYXBwaW5nPFQ+KFxuICAgICAgb3B0aW9ucz8uZGVmYXVsdE1vZGVsVmFsdWVzIHx8IHt9LFxuICAgICAgXy5tZXJnZShcbiAgICAgICAgb3B0aW9ucz8uZGVmYXVsdE1vZGVsTWFwcGluZyB8fCB7fSxcbiAgICAgICAgKG9wdGlvbnM/LmRlZmF1bHRNb2RlbE1hcHBpbmdEZWVwIHx8IHt9KSBhcyBhbnksXG4gICAgICApLFxuICAgICkoY29uc3RydWN0b3IpO1xuXG5cbiAgICBNYXBwaW5nLkRlZmF1bHRNb2RlbFdpdGhNYXBwaW5nPFQ+KHZvaWQgMCwge30pKGNvbnN0cnVjdG9yKTtcblxuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLm9wdGlvbnMuZW50aXR5LFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuXG4gICAgVHlwZW9ybUVudGl0eShvcHRpb25zPy5jbGFzc05hbWUpKGNvbnN0cnVjdG9yKTtcblxuICAgIENMQVNTLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7IC8vIFRPRE8gUVVJQ0tfRklYIGZvciBuZzItcmVzdFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgVGFvbkVudGl0eU9wdGlvbnM8VCA9IGFueT4gZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuICAvKipcbiAgICogZGVmYXVsdCB1bmlxdWUgcHJvcGVydHkgaXMgXCJpZFwiXG4gICAqIGZvciB5b3VyIGVudGl0eSBpdCBtYXkgYmUgc29tZXRoaW5nIGVsc2VcbiAgICovXG4gIHVuaXF1ZUtleVByb3A/OiBzdHJpbmc7XG4gIGNyZWF0ZVRhYmxlPzogYm9vbGVhbjtcbiAgZGVmYXVsdE1vZGVsVmFsdWVzPzogTWFwcGluZy5Nb2RlbFZhbHVlPFQ+O1xuICBkZWZhdWx0TW9kZWxNYXBwaW5nPzogTWFwcGluZy5NYXBwaW5nPFQ+O1xuICBkZWZhdWx0TW9kZWxNYXBwaW5nRGVlcD86IHsgW2xvZGFzaFBhdGhlczogc3RyaW5nXTogc3RyaW5nIHwgW3N0cmluZ10gfTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9lbnRpdHktZGVjb3JhdG9yLnRzIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9kZWNvcmF0b3JzL2NsYXNzZXMvZW50aXR5LWRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLElBQUksYUFBYSxFQUFRLE1BQU0scUJBQXFCLENBQUM7QUFHcEU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFVLE9BQThCO0lBQ2hFLE9BQU8sVUFBVSxXQUFxQjtRQUNwQyxPQUFPLEdBQUcsT0FBTyxJQUFLLEVBQVUsQ0FBQztRQUNqQyxPQUFPLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUssSUFBWSxDQUFDO1FBQy9ELFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV0RCxPQUFPLENBQUMsdUJBQXVCLENBQzdCLE9BQU8sRUFBRSxrQkFBa0IsSUFBSSxFQUFFLEVBQ2pDLENBQUMsQ0FBQyxLQUFLLENBQ0wsT0FBTyxFQUFFLG1CQUFtQixJQUFJLEVBQUUsRUFDbEMsQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLElBQUksRUFBRSxDQUFRLENBQ2hELENBQ0YsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUdmLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBSSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1RCxPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQy9CLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztRQUNGLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUMxQixPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQ3RDLFdBQVcsQ0FDWixDQUFDO1FBRUYsYUFBYSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyw4QkFBOEI7SUFDaEYsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sT0FBTyxpQkFBMkIsU0FBUSxNQUFNLENBQUMsb0JBQW9CO0NBVTFFO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0RUFBNEUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgTWFwcGluZyB9IGZyb20gJ25nMi1yZXN0L3dlYnNxbCc7XG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuaW1wb3J0IHsgRW50aXR5IGFzIFR5cGVvcm1FbnRpdHksIFRyZWUgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJztcblxuXG4vKipcbiAqIEVudGl0eSBkZWNvcmF0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRhb25FbnRpdHk8VCA9IGFueT4ob3B0aW9ucz86IFRhb25FbnRpdHlPcHRpb25zPFQ+KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwgKHt9IGFzIGFueSk7XG4gICAgb3B0aW9ucy51bmlxdWVLZXlQcm9wID0gb3B0aW9ucy51bmlxdWVLZXlQcm9wIHx8ICgnaWQnIGFzIGFueSk7XG4gICAgQ2xhc3NIZWxwZXJzLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7XG5cbiAgICBNYXBwaW5nLkRlZmF1bHRNb2RlbFdpdGhNYXBwaW5nPFQ+KFxuICAgICAgb3B0aW9ucz8uZGVmYXVsdE1vZGVsVmFsdWVzIHx8IHt9LFxuICAgICAgXy5tZXJnZShcbiAgICAgICAgb3B0aW9ucz8uZGVmYXVsdE1vZGVsTWFwcGluZyB8fCB7fSxcbiAgICAgICAgKG9wdGlvbnM/LmRlZmF1bHRNb2RlbE1hcHBpbmdEZWVwIHx8IHt9KSBhcyBhbnksXG4gICAgICApLFxuICAgICkoY29uc3RydWN0b3IpO1xuXG5cbiAgICBNYXBwaW5nLkRlZmF1bHRNb2RlbFdpdGhNYXBwaW5nPFQ+KHZvaWQgMCwge30pKGNvbnN0cnVjdG9yKTtcblxuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLm9wdGlvbnMuZW50aXR5LFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuXG4gICAgVHlwZW9ybUVudGl0eShvcHRpb25zPy5jbGFzc05hbWUpKGNvbnN0cnVjdG9yKTtcblxuICAgIENMQVNTLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7IC8vIFRPRE8gUVVJQ0tfRklYIGZvciBuZzItcmVzdFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgVGFvbkVudGl0eU9wdGlvbnM8VCA9IGFueT4gZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuICAvKipcbiAgICogZGVmYXVsdCB1bmlxdWUgcHJvcGVydHkgaXMgXCJpZFwiXG4gICAqIGZvciB5b3VyIGVudGl0eSBpdCBtYXkgYmUgc29tZXRoaW5nIGVsc2VcbiAgICovXG4gIHVuaXF1ZUtleVByb3A/OiBzdHJpbmc7XG4gIGNyZWF0ZVRhYmxlPzogYm9vbGVhbjtcbiAgZGVmYXVsdE1vZGVsVmFsdWVzPzogTWFwcGluZy5Nb2RlbFZhbHVlPFQ+O1xuICBkZWZhdWx0TW9kZWxNYXBwaW5nPzogTWFwcGluZy5NYXBwaW5nPFQ+O1xuICBkZWZhdWx0TW9kZWxNYXBwaW5nRGVlcD86IHsgW2xvZGFzaFBhdGhlczogc3RyaW5nXTogc3RyaW5nIHwgW3N0cmluZ10gfTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9lbnRpdHktZGVjb3JhdG9yLnRzIl19
@@ -0,0 +1,18 @@
1
+ import { ClassHelpers } from '../../helpers/class-helpers';
2
+ import { Symbols } from '../../symbols';
3
+ import { Models } from '../../models';
4
+ /**
5
+ * Migration decorator
6
+ */
7
+ export function TaonMigration(options) {
8
+ return function (constructor) {
9
+ Reflect.defineMetadata(Symbols.metadata.options.migration, options, constructor);
10
+ Reflect.defineMetadata(Symbols.metadata.className, options?.className || constructor.name, constructor);
11
+ ClassHelpers.setName(constructor, options?.className);
12
+ };
13
+ }
14
+ export class TaonMigrationOptions extends Models.DecoratorAbstractOpt {
15
+ }
16
+ ;
17
+ ({}); // @--end-of-file-for-module=taon lib/decorators/classes/migration-decorator.ts
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLWRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9kZWNvcmF0b3JzL2NsYXNzZXMvbWlncmF0aW9uLWRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3RDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUE2QjtJQUN6RCxPQUFPLFVBQVUsV0FBcUI7UUFDcEMsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUNsQyxPQUFPLEVBQ1AsV0FBVyxDQUNaLENBQUM7UUFDRixPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDMUIsT0FBTyxFQUFFLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUN0QyxXQUFXLENBQ1osQ0FBQztRQUNGLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFRLENBQUM7QUFDWCxDQUFDO0FBRUQsTUFBTSxPQUFPLG9CQUVYLFNBQVEsTUFBTSxDQUFDLG9CQUFvQjtDQUFHO0FBRXZDLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsK0VBQStFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5cbi8qKlxuICogTWlncmF0aW9uIGRlY29yYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFvbk1pZ3JhdGlvbihvcHRpb25zOiBUYW9uTWlncmF0aW9uT3B0aW9ucykge1xuICByZXR1cm4gZnVuY3Rpb24gKGNvbnN0cnVjdG9yOiBGdW5jdGlvbikge1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLm9wdGlvbnMubWlncmF0aW9uLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICAgIENsYXNzSGVscGVycy5zZXROYW1lKGNvbnN0cnVjdG9yLCBvcHRpb25zPy5jbGFzc05hbWUpO1xuICB9IGFzIGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFRhb25NaWdyYXRpb25PcHRpb25zPFxuICBUID0gYW55LFxuPiBleHRlbmRzIE1vZGVscy5EZWNvcmF0b3JBYnN0cmFjdE9wdCB7fVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvZGVjb3JhdG9ycy9jbGFzc2VzL21pZ3JhdGlvbi1kZWNvcmF0b3IudHMiXX0=
@@ -1,6 +1,9 @@
1
1
  import { ClassHelpers } from '../../helpers/class-helpers';
2
2
  import { Symbols } from '../../symbols';
3
3
  import { Models } from '../../models';
4
+ /**
5
+ * Provider decorator
6
+ */
4
7
  export function TaonProvider(options) {
5
8
  return function (constructor) {
6
9
  Reflect.defineMetadata(Symbols.metadata.options.provider, options, constructor);
@@ -12,4 +15,4 @@ export class TaonProviderOptions extends Models.DecoratorAbstractOpt {
12
15
  }
13
16
  ;
14
17
  ({}); // @--end-of-file-for-module=taon lib/decorators/classes/provider-decorator.ts
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9wcm92aWRlci1kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0QyxNQUFNLFVBQVUsWUFBWSxDQUFVLE9BQWdDO0lBQ3BFLE9BQU8sVUFBVSxXQUFxQjtRQUNwQyxPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQ2pDLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztRQUNGLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUMxQixPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQ3RDLFdBQVcsQ0FDWixDQUFDO1FBQ0YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDNUUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sT0FBTyxtQkFFWCxTQUFRLE1BQU0sQ0FBQyxvQkFBb0I7Q0FFcEM7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDhFQUE4RSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgU3ltYm9scyB9IGZyb20gJy4uLy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIFRhb25Qcm92aWRlcjxUID0gYW55PihvcHRpb25zPzogVGFvblByb3ZpZGVyT3B0aW9uczxUPikge1xuICByZXR1cm4gZnVuY3Rpb24gKGNvbnN0cnVjdG9yOiBGdW5jdGlvbikge1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLm9wdGlvbnMucHJvdmlkZXIsXG4gICAgICBvcHRpb25zLFxuICAgICAgY29uc3RydWN0b3IsXG4gICAgKTtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgU3ltYm9scy5tZXRhZGF0YS5jbGFzc05hbWUsXG4gICAgICBvcHRpb25zPy5jbGFzc05hbWUgfHwgY29uc3RydWN0b3IubmFtZSxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgQ2xhc3NIZWxwZXJzLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSB8fCBjb25zdHJ1Y3Rvci5uYW1lKTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFRhb25Qcm92aWRlck9wdGlvbnM8XG4gIFQgPSBhbnksXG4+IGV4dGVuZHMgTW9kZWxzLkRlY29yYXRvckFic3RyYWN0T3B0IHtcblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvZGVjb3JhdG9ycy9jbGFzc2VzL3Byb3ZpZGVyLWRlY29yYXRvci50cyJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9wcm92aWRlci1kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQVUsT0FBZ0M7SUFDcEUsT0FBTyxVQUFVLFdBQXFCO1FBQ3BDLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFDakMsT0FBTyxFQUNQLFdBQVcsQ0FDWixDQUFDO1FBQ0YsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQzFCLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxDQUFDLElBQUksRUFDdEMsV0FBVyxDQUNaLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RSxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxPQUFPLG1CQUVYLFNBQVEsTUFBTSxDQUFDLG9CQUFvQjtDQUVwQztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEVBQThFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG4vKipcbiAqIFByb3ZpZGVyIGRlY29yYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFvblByb3ZpZGVyPFQgPSBhbnk+KG9wdGlvbnM/OiBUYW9uUHJvdmlkZXJPcHRpb25zPFQ+KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5wcm92aWRlcixcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLmNsYXNzTmFtZSxcbiAgICAgIG9wdGlvbnM/LmNsYXNzTmFtZSB8fCBjb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgY29uc3RydWN0b3IsXG4gICAgKTtcbiAgICBDbGFzc0hlbHBlcnMuc2V0TmFtZShjb25zdHJ1Y3Rvciwgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUpO1xuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgVGFvblByb3ZpZGVyT3B0aW9uczxcbiAgVCA9IGFueSxcbj4gZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9kZWNvcmF0b3JzL2NsYXNzZXMvcHJvdmlkZXItZGVjb3JhdG9yLnRzIl19
@@ -1,6 +1,9 @@
1
1
  import { ClassHelpers } from '../../helpers/class-helpers';
2
2
  import { Symbols } from '../../symbols';
3
3
  import { Models } from '../../models';
4
+ /**
5
+ * Repository decorator
6
+ */
4
7
  export function TaonRepository(options) {
5
8
  return function (constructor) {
6
9
  Reflect.defineMetadata(Symbols.metadata.options.repository, options, constructor);
@@ -12,4 +15,4 @@ export class TaonRepositoryOptions extends Models.DecoratorAbstractOpt {
12
15
  }
13
16
  ;
14
17
  ({}); // @--end-of-file-for-module=taon lib/decorators/classes/repository-decorator.ts
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZGVjb3JhdG9ycy9jbGFzc2VzL3JlcG9zaXRvcnktZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFPdEMsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUE4QjtJQUMzRCxPQUFPLFVBQVUsV0FBcUI7UUFDcEMsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUNuQyxPQUFPLEVBQ1AsV0FBVyxDQUNaLENBQUM7UUFDRixPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDMUIsT0FBTyxFQUFFLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUN0QyxXQUFXLENBQ1osQ0FBQztRQUNGLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxPQUFPLHFCQUVYLFNBQVEsTUFBTSxDQUFDLG9CQUFvQjtDQUFHO0FBRXZDLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0ZBQWdGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgICBSZXBvc2l0b3J5IGFzIFR5cGVvcm1SZXBvc2l0b3J5LCAgIEVudGl0eVJlcG9zaXRvcnksIH0gZnJvbSAndGFvbi10eXBlb3JtL3dlYnNxbCc7LyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcblxuZXhwb3J0IGZ1bmN0aW9uIFRhb25SZXBvc2l0b3J5KG9wdGlvbnM6IFRhb25SZXBvc2l0b3J5T3B0aW9ucykge1xuICByZXR1cm4gZnVuY3Rpb24gKGNvbnN0cnVjdG9yOiBGdW5jdGlvbikge1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLm9wdGlvbnMucmVwb3NpdG9yeSxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLmNsYXNzTmFtZSxcbiAgICAgIG9wdGlvbnM/LmNsYXNzTmFtZSB8fCBjb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgY29uc3RydWN0b3IsXG4gICAgKTtcbiAgICBDbGFzc0hlbHBlcnMuc2V0TmFtZShjb25zdHJ1Y3Rvciwgb3B0aW9ucz8uY2xhc3NOYW1lKTtcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIFRhb25SZXBvc2l0b3J5T3B0aW9uczxcbiAgVCA9IGFueSxcbj4gZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge31cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9yZXBvc2l0b3J5LWRlY29yYXRvci50cyJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3NpdG9yeS1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZGVjb3JhdG9ycy9jbGFzc2VzL3JlcG9zaXRvcnktZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFPdEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQThCO0lBQzNELE9BQU8sVUFBVSxXQUFxQjtRQUNwQyxPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQ25DLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztRQUNGLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUMxQixPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQ3RDLFdBQVcsQ0FDWixDQUFDO1FBQ0YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8scUJBRVgsU0FBUSxNQUFNLENBQUMsb0JBQW9CO0NBQUc7QUFFdkMsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnRkFBZ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jbGFzcy1oZWxwZXJzJztcbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyAgIFJlcG9zaXRvcnkgYXMgVHlwZW9ybVJlcG9zaXRvcnksICAgRW50aXR5UmVwb3NpdG9yeSwgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJzsvKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuXG4vKipcbiAqIFJlcG9zaXRvcnkgZGVjb3JhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYW9uUmVwb3NpdG9yeShvcHRpb25zOiBUYW9uUmVwb3NpdG9yeU9wdGlvbnMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChjb25zdHJ1Y3RvcjogRnVuY3Rpb24pIHtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgU3ltYm9scy5tZXRhZGF0YS5vcHRpb25zLnJlcG9zaXRvcnksXG4gICAgICBvcHRpb25zLFxuICAgICAgY29uc3RydWN0b3IsXG4gICAgKTtcbiAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFxuICAgICAgU3ltYm9scy5tZXRhZGF0YS5jbGFzc05hbWUsXG4gICAgICBvcHRpb25zPy5jbGFzc05hbWUgfHwgY29uc3RydWN0b3IubmFtZSxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgQ2xhc3NIZWxwZXJzLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBUYW9uUmVwb3NpdG9yeU9wdGlvbnM8XG4gIFQgPSBhbnksXG4+IGV4dGVuZHMgTW9kZWxzLkRlY29yYXRvckFic3RyYWN0T3B0IHt9XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9kZWNvcmF0b3JzL2NsYXNzZXMvcmVwb3NpdG9yeS1kZWNvcmF0b3IudHMiXX0=
@@ -1,9 +1,12 @@
1
1
  import { ClassHelpers } from '../../helpers/class-helpers';
2
2
  import { Symbols } from '../../symbols';
3
3
  import { Models } from '../../models';
4
+ /**
5
+ * Subscriber decorator
6
+ */
4
7
  export function TaonSubscriber(options) {
5
8
  return function (constructor) {
6
- Reflect.defineMetadata(Symbols.metadata.options.repository, options, constructor);
9
+ Reflect.defineMetadata(Symbols.metadata.options.subscriber, options, constructor);
7
10
  Reflect.defineMetadata(Symbols.metadata.className, options?.className || constructor.name, constructor);
8
11
  ClassHelpers.setName(constructor, options?.className);
9
12
  };
@@ -12,4 +15,4 @@ export class TaonSubscriberOptions extends Models.DecoratorAbstractOpt {
12
15
  }
13
16
  ;
14
17
  ({}); // @--end-of-file-for-module=taon lib/decorators/classes/subscriber-decorator.ts
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaWJlci1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZGVjb3JhdG9ycy9jbGFzc2VzL3N1YnNjcmliZXItZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUE4QjtJQUMzRCxPQUFPLFVBQVUsV0FBcUI7UUFDcEMsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUNuQyxPQUFPLEVBQ1AsV0FBVyxDQUNaLENBQUM7UUFDRixPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDMUIsT0FBTyxFQUFFLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUN0QyxXQUFXLENBQ1osQ0FBQztRQUNGLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RCxDQUFRLENBQUM7QUFDWCxDQUFDO0FBRUQsTUFBTSxPQUFPLHFCQUVYLFNBQVEsTUFBTSxDQUFDLG9CQUFvQjtDQUVwQztBQUdBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0ZBQWdGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5leHBvcnQgZnVuY3Rpb24gVGFvblN1YnNjcmliZXIob3B0aW9uczogVGFvblN1YnNjcmliZXJPcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5yZXBvc2l0b3J5LFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICAgIENsYXNzSGVscGVycy5zZXROYW1lKGNvbnN0cnVjdG9yLCBvcHRpb25zPy5jbGFzc05hbWUpO1xuICB9IGFzIGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFRhb25TdWJzY3JpYmVyT3B0aW9uczxcbiAgVCA9IGFueSxcbj4gZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuICBhbGxvd2VkRXZlbnRzPzogKGtleW9mIFQpW107XG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9zdWJzY3JpYmVyLWRlY29yYXRvci50cyJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaWJlci1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZGVjb3JhdG9ycy9jbGFzc2VzL3N1YnNjcmliZXItZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHdEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQThCO0lBQzNELE9BQU8sVUFBVSxXQUFxQjtRQUNwQyxPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQ25DLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztRQUNGLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUMxQixPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQ3RDLFdBQVcsQ0FDWixDQUFDO1FBQ0YsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQVEsQ0FBQztBQUNYLENBQUM7QUFFRCxNQUFNLE9BQU8scUJBRVgsU0FBUSxNQUFNLENBQUMsb0JBQW9CO0NBRXBDO0FBR0EsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnRkFBZ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQ2xhc3NIZWxwZXJzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9jbGFzcy1oZWxwZXJzJztcbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcblxuLyoqXG4gKiBTdWJzY3JpYmVyIGRlY29yYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFvblN1YnNjcmliZXIob3B0aW9uczogVGFvblN1YnNjcmliZXJPcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5zdWJzY3JpYmVyLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICAgIENsYXNzSGVscGVycy5zZXROYW1lKGNvbnN0cnVjdG9yLCBvcHRpb25zPy5jbGFzc05hbWUpO1xuICB9IGFzIGFueTtcbn1cblxuZXhwb3J0IGNsYXNzIFRhb25TdWJzY3JpYmVyT3B0aW9uczxcbiAgVCA9IGFueSxcbj4gZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuICBhbGxvd2VkRXZlbnRzPzogKGtleW9mIFQpW107XG59XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9zdWJzY3JpYmVyLWRlY29yYXRvci50cyJdfQ==