taon 18.0.33 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/fesm2022/taon.mjs +67 -84
  3. package/browser/fesm2022/taon.mjs.map +1 -1
  4. package/browser/lib/base-classes/base-context.d.ts +6 -6
  5. package/browser/lib/base-classes/base.d.ts +6 -6
  6. package/browser/lib/index.d.ts +6 -32
  7. package/browser/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +1 -3
  8. package/browser/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +1 -2
  9. package/client/fesm2022/taon.mjs +67 -84
  10. package/client/fesm2022/taon.mjs.map +1 -1
  11. package/client/lib/base-classes/base-context.d.ts +6 -6
  12. package/client/lib/base-classes/base.d.ts +6 -6
  13. package/client/lib/index.d.ts +6 -32
  14. package/client/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +1 -3
  15. package/client/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +1 -2
  16. package/lib/base-classes/base-context.d.ts +6 -6
  17. package/lib/base-classes/base-subscriber.d.ts +4 -0
  18. package/lib/base-classes/base-subscriber.js +25 -0
  19. package/lib/base-classes/base-subscriber.js.map +1 -0
  20. package/lib/base-classes/base.d.ts +6 -6
  21. package/lib/formly/formly-group-wrapper-component.js +1 -0
  22. package/lib/formly/formly-group-wrapper-component.js.map +1 -1
  23. package/lib/formly/formly-repeat-component.js +1 -0
  24. package/lib/formly/formly-repeat-component.js.map +1 -1
  25. package/lib/helpers/class-helpers.js +2 -2
  26. package/lib/helpers/class-helpers.js.map +1 -1
  27. package/lib/index.d.ts +6 -32
  28. package/lib/realtime/realtime-strategy/realtime-abstract-mock.d.ts +10 -0
  29. package/lib/realtime/realtime-strategy/realtime-abstract-mock.js +214 -0
  30. package/lib/realtime/realtime-strategy/realtime-abstract-mock.js.map +1 -0
  31. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.d.ts +0 -0
  32. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js +5 -0
  33. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js.map +1 -0
  34. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
  35. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js +139 -0
  36. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js.map +1 -0
  37. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +16 -0
  38. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js +68 -0
  39. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js.map +1 -0
  40. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +10 -0
  41. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js +56 -0
  42. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js.map +1 -0
  43. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +10 -0
  44. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js +50 -0
  45. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js.map +1 -0
  46. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +13 -0
  47. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js +3 -0
  48. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js.map +1 -0
  49. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +2 -0
  50. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js +6 -0
  51. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js.map +1 -0
  52. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +16 -0
  53. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js +54 -0
  54. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js.map +1 -0
  55. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +17 -0
  56. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js +52 -0
  57. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js.map +1 -0
  58. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +11 -0
  59. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js +39 -0
  60. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js.map +1 -0
  61. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +13 -0
  62. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js +46 -0
  63. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js.map +1 -0
  64. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +11 -0
  65. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js +3 -0
  66. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js.map +1 -0
  67. package/lib/ui/directives/firedev-inject-html.directive.d.ts +6 -0
  68. package/lib/ui/directives/firedev-long-press.directive.d.ts +22 -0
  69. package/lib/ui/directives/index.js +2 -2
  70. package/lib/ui/index.js +2 -2
  71. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +2 -0
  72. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +5 -0
  73. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js.map +1 -0
  74. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +29 -0
  75. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +2 -0
  76. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.d.ts +1 -0
  77. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +5 -0
  78. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js.map +1 -0
  79. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/taon-db-admin.component.d.ts +8 -0
  80. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +2 -0
  81. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +5 -0
  82. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js.map +1 -0
  83. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +13 -0
  84. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +2 -0
  85. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  86. package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +5 -0
  87. package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js +3 -0
  88. package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js.map +1 -0
  89. package/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +14 -0
  90. package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +2 -0
  91. package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
  92. package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
  93. package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
  94. package/lib/ui/taon-progress-bar/index.js +2 -2
  95. package/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +1 -3
  96. package/lib/ui/taon-session-passcode/index.js +2 -2
  97. package/lib/ui/taon-table/index.js +2 -2
  98. package/lib/ui/toan-full-material.module.d.ts +2 -0
  99. package/old-app .js +1 -0
  100. package/old-app .js.map +1 -1
  101. package/package.json +3 -3
  102. package/taon.jsonc +0 -5
  103. package/tmp-environment.json +24 -3
  104. package/websql/fesm2022/taon.mjs +67 -84
  105. package/websql/fesm2022/taon.mjs.map +1 -1
  106. package/websql/lib/base-classes/base-context.d.ts +6 -6
  107. package/websql/lib/base-classes/base.d.ts +6 -6
  108. package/websql/lib/index.d.ts +6 -32
  109. package/websql/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +1 -3
  110. package/websql/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +1 -2
  111. package/browser/esm2022/lib/base-classes/base-abstract-entity.mjs +0 -18
  112. package/browser/esm2022/lib/base-classes/base-class.mjs +0 -17
  113. package/browser/esm2022/lib/base-classes/base-context.mjs +0 -14
  114. package/browser/esm2022/lib/base-classes/base-controller.mjs +0 -19
  115. package/browser/esm2022/lib/base-classes/base-crud-controller.mjs +0 -279
  116. package/browser/esm2022/lib/base-classes/base-entity.mjs +0 -18
  117. package/browser/esm2022/lib/base-classes/base-injector.mjs +0 -167
  118. package/browser/esm2022/lib/base-classes/base-migration.mjs +0 -23
  119. package/browser/esm2022/lib/base-classes/base-provider.mjs +0 -6
  120. package/browser/esm2022/lib/base-classes/base-repository.mjs +0 -514
  121. package/browser/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +0 -156
  122. package/browser/esm2022/lib/base-classes/base.mjs +0 -26
  123. package/browser/esm2022/lib/constants.mjs +0 -4
  124. package/browser/esm2022/lib/context-db-migrations.mjs +0 -425
  125. package/browser/esm2022/lib/create-context.mjs +0 -127
  126. package/browser/esm2022/lib/decorators/classes/controller-decorator.mjs +0 -18
  127. package/browser/esm2022/lib/decorators/classes/entity-decorator.mjs +0 -30
  128. package/browser/esm2022/lib/decorators/classes/migration-decorator.mjs +0 -18
  129. package/browser/esm2022/lib/decorators/classes/provider-decorator.mjs +0 -18
  130. package/browser/esm2022/lib/decorators/classes/repository-decorator.mjs +0 -18
  131. package/browser/esm2022/lib/decorators/classes/subscriber-decorator.mjs +0 -18
  132. package/browser/esm2022/lib/decorators/http/http-decorators.mjs +0 -24
  133. package/browser/esm2022/lib/decorators/http/http-methods-decorators.mjs +0 -78
  134. package/browser/esm2022/lib/decorators/http/http-params-decorators.mjs +0 -47
  135. package/browser/esm2022/lib/dependency-injection/di-container.mjs +0 -32
  136. package/browser/esm2022/lib/endpoint-context.mjs +0 -1705
  137. package/browser/esm2022/lib/entity-process.mjs +0 -198
  138. package/browser/esm2022/lib/env.mjs +0 -6
  139. package/browser/esm2022/lib/get-response-value.mjs +0 -27
  140. package/browser/esm2022/lib/helpers/class-helpers.mjs +0 -183
  141. package/browser/esm2022/lib/helpers/taon-helpers.mjs +0 -120
  142. package/browser/esm2022/lib/index.mjs +0 -70
  143. package/browser/esm2022/lib/inject.mjs +0 -36
  144. package/browser/esm2022/lib/models.mjs +0 -106
  145. package/browser/esm2022/lib/orm.mjs +0 -6
  146. package/browser/esm2022/lib/realtime/realtime-client.mjs +0 -141
  147. package/browser/esm2022/lib/realtime/realtime-core.mjs +0 -62
  148. package/browser/esm2022/lib/realtime/realtime-server.mjs +0 -292
  149. package/browser/esm2022/lib/realtime/realtime-strategy/index.mjs +0 -7
  150. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +0 -218
  151. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +0 -224
  152. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +0 -29
  153. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +0 -14
  154. package/browser/esm2022/lib/realtime/realtime-subs-manager.mjs +0 -81
  155. package/browser/esm2022/lib/realtime/realtime.models.mjs +0 -4
  156. package/browser/esm2022/lib/storage.mjs +0 -5
  157. package/browser/esm2022/lib/symbols.mjs +0 -97
  158. package/browser/esm2022/lib/ui/directives/index.mjs +0 -6
  159. package/browser/esm2022/lib/ui/directives/safe.pipe.mjs +0 -43
  160. package/browser/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +0 -24
  161. package/browser/esm2022/lib/ui/directives/taon-long-press.directive.mjs +0 -120
  162. package/browser/esm2022/lib/ui/index.mjs +0 -12
  163. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +0 -4
  164. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +0 -194
  165. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +0 -55
  166. package/browser/esm2022/lib/ui/taon-full-material.module.mjs +0 -179
  167. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +0 -5
  168. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +0 -18
  169. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +0 -21
  170. package/browser/esm2022/lib/ui/taon-notifications/index.mjs +0 -7
  171. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +0 -25
  172. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +0 -5
  173. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +0 -21
  174. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +0 -48
  175. package/browser/esm2022/lib/ui/taon-progress-bar/index.mjs +0 -5
  176. package/browser/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +0 -98
  177. package/browser/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +0 -22
  178. package/browser/esm2022/lib/ui/taon-session-passcode/index.mjs +0 -4
  179. package/browser/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +0 -120
  180. package/browser/esm2022/lib/ui/taon-table/index.mjs +0 -5
  181. package/browser/esm2022/lib/ui/taon-table/taon-table.component.mjs +0 -160
  182. package/browser/esm2022/lib/ui/taon-table/taon-table.module.mjs +0 -57
  183. package/browser/esm2022/lib/validators.mjs +0 -76
  184. package/browser/esm2022/public-api.mjs +0 -2
  185. package/browser/esm2022/taon.mjs +0 -5
  186. package/client/esm2022/lib/base-classes/base-abstract-entity.mjs +0 -18
  187. package/client/esm2022/lib/base-classes/base-class.mjs +0 -17
  188. package/client/esm2022/lib/base-classes/base-context.mjs +0 -14
  189. package/client/esm2022/lib/base-classes/base-controller.mjs +0 -19
  190. package/client/esm2022/lib/base-classes/base-crud-controller.mjs +0 -279
  191. package/client/esm2022/lib/base-classes/base-entity.mjs +0 -18
  192. package/client/esm2022/lib/base-classes/base-injector.mjs +0 -167
  193. package/client/esm2022/lib/base-classes/base-migration.mjs +0 -23
  194. package/client/esm2022/lib/base-classes/base-provider.mjs +0 -6
  195. package/client/esm2022/lib/base-classes/base-repository.mjs +0 -514
  196. package/client/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +0 -156
  197. package/client/esm2022/lib/base-classes/base.mjs +0 -26
  198. package/client/esm2022/lib/constants.mjs +0 -4
  199. package/client/esm2022/lib/context-db-migrations.mjs +0 -425
  200. package/client/esm2022/lib/create-context.mjs +0 -127
  201. package/client/esm2022/lib/decorators/classes/controller-decorator.mjs +0 -18
  202. package/client/esm2022/lib/decorators/classes/entity-decorator.mjs +0 -30
  203. package/client/esm2022/lib/decorators/classes/migration-decorator.mjs +0 -18
  204. package/client/esm2022/lib/decorators/classes/provider-decorator.mjs +0 -18
  205. package/client/esm2022/lib/decorators/classes/repository-decorator.mjs +0 -18
  206. package/client/esm2022/lib/decorators/classes/subscriber-decorator.mjs +0 -18
  207. package/client/esm2022/lib/decorators/http/http-decorators.mjs +0 -24
  208. package/client/esm2022/lib/decorators/http/http-methods-decorators.mjs +0 -78
  209. package/client/esm2022/lib/decorators/http/http-params-decorators.mjs +0 -47
  210. package/client/esm2022/lib/dependency-injection/di-container.mjs +0 -32
  211. package/client/esm2022/lib/endpoint-context.mjs +0 -1705
  212. package/client/esm2022/lib/entity-process.mjs +0 -198
  213. package/client/esm2022/lib/env.mjs +0 -6
  214. package/client/esm2022/lib/get-response-value.mjs +0 -27
  215. package/client/esm2022/lib/helpers/class-helpers.mjs +0 -183
  216. package/client/esm2022/lib/helpers/taon-helpers.mjs +0 -120
  217. package/client/esm2022/lib/index.mjs +0 -70
  218. package/client/esm2022/lib/inject.mjs +0 -36
  219. package/client/esm2022/lib/models.mjs +0 -106
  220. package/client/esm2022/lib/orm.mjs +0 -6
  221. package/client/esm2022/lib/realtime/realtime-client.mjs +0 -141
  222. package/client/esm2022/lib/realtime/realtime-core.mjs +0 -62
  223. package/client/esm2022/lib/realtime/realtime-server.mjs +0 -292
  224. package/client/esm2022/lib/realtime/realtime-strategy/index.mjs +0 -7
  225. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +0 -218
  226. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +0 -224
  227. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +0 -29
  228. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +0 -14
  229. package/client/esm2022/lib/realtime/realtime-subs-manager.mjs +0 -81
  230. package/client/esm2022/lib/realtime/realtime.models.mjs +0 -4
  231. package/client/esm2022/lib/storage.mjs +0 -5
  232. package/client/esm2022/lib/symbols.mjs +0 -97
  233. package/client/esm2022/lib/ui/directives/index.mjs +0 -6
  234. package/client/esm2022/lib/ui/directives/safe.pipe.mjs +0 -43
  235. package/client/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +0 -24
  236. package/client/esm2022/lib/ui/directives/taon-long-press.directive.mjs +0 -120
  237. package/client/esm2022/lib/ui/index.mjs +0 -12
  238. package/client/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +0 -4
  239. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +0 -194
  240. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +0 -55
  241. package/client/esm2022/lib/ui/taon-full-material.module.mjs +0 -179
  242. package/client/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +0 -5
  243. package/client/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +0 -18
  244. package/client/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +0 -21
  245. package/client/esm2022/lib/ui/taon-notifications/index.mjs +0 -7
  246. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +0 -25
  247. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +0 -5
  248. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +0 -21
  249. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +0 -48
  250. package/client/esm2022/lib/ui/taon-progress-bar/index.mjs +0 -5
  251. package/client/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +0 -98
  252. package/client/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +0 -22
  253. package/client/esm2022/lib/ui/taon-session-passcode/index.mjs +0 -4
  254. package/client/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +0 -120
  255. package/client/esm2022/lib/ui/taon-table/index.mjs +0 -5
  256. package/client/esm2022/lib/ui/taon-table/taon-table.component.mjs +0 -160
  257. package/client/esm2022/lib/ui/taon-table/taon-table.module.mjs +0 -57
  258. package/client/esm2022/lib/validators.mjs +0 -76
  259. package/client/esm2022/public-api.mjs +0 -2
  260. package/client/esm2022/taon.mjs +0 -5
  261. package/websql/esm2022/lib/base-classes/base-abstract-entity.mjs +0 -25
  262. package/websql/esm2022/lib/base-classes/base-class.mjs +0 -17
  263. package/websql/esm2022/lib/base-classes/base-context.mjs +0 -14
  264. package/websql/esm2022/lib/base-classes/base-controller.mjs +0 -19
  265. package/websql/esm2022/lib/base-classes/base-crud-controller.mjs +0 -238
  266. package/websql/esm2022/lib/base-classes/base-entity.mjs +0 -16
  267. package/websql/esm2022/lib/base-classes/base-injector.mjs +0 -167
  268. package/websql/esm2022/lib/base-classes/base-migration.mjs +0 -23
  269. package/websql/esm2022/lib/base-classes/base-provider.mjs +0 -6
  270. package/websql/esm2022/lib/base-classes/base-repository.mjs +0 -431
  271. package/websql/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +0 -156
  272. package/websql/esm2022/lib/base-classes/base.mjs +0 -26
  273. package/websql/esm2022/lib/constants.mjs +0 -4
  274. package/websql/esm2022/lib/context-db-migrations.mjs +0 -274
  275. package/websql/esm2022/lib/create-context.mjs +0 -126
  276. package/websql/esm2022/lib/decorators/classes/controller-decorator.mjs +0 -18
  277. package/websql/esm2022/lib/decorators/classes/entity-decorator.mjs +0 -28
  278. package/websql/esm2022/lib/decorators/classes/migration-decorator.mjs +0 -18
  279. package/websql/esm2022/lib/decorators/classes/provider-decorator.mjs +0 -18
  280. package/websql/esm2022/lib/decorators/classes/repository-decorator.mjs +0 -18
  281. package/websql/esm2022/lib/decorators/classes/subscriber-decorator.mjs +0 -18
  282. package/websql/esm2022/lib/decorators/http/http-decorators.mjs +0 -24
  283. package/websql/esm2022/lib/decorators/http/http-methods-decorators.mjs +0 -78
  284. package/websql/esm2022/lib/decorators/http/http-params-decorators.mjs +0 -47
  285. package/websql/esm2022/lib/dependency-injection/di-container.mjs +0 -32
  286. package/websql/esm2022/lib/endpoint-context.mjs +0 -1586
  287. package/websql/esm2022/lib/entity-process.mjs +0 -198
  288. package/websql/esm2022/lib/env.mjs +0 -6
  289. package/websql/esm2022/lib/get-response-value.mjs +0 -25
  290. package/websql/esm2022/lib/helpers/class-helpers.mjs +0 -183
  291. package/websql/esm2022/lib/helpers/taon-helpers.mjs +0 -120
  292. package/websql/esm2022/lib/index.mjs +0 -72
  293. package/websql/esm2022/lib/inject.mjs +0 -36
  294. package/websql/esm2022/lib/models.mjs +0 -97
  295. package/websql/esm2022/lib/orm.mjs +0 -65
  296. package/websql/esm2022/lib/realtime/realtime-client.mjs +0 -141
  297. package/websql/esm2022/lib/realtime/realtime-core.mjs +0 -62
  298. package/websql/esm2022/lib/realtime/realtime-server.mjs +0 -176
  299. package/websql/esm2022/lib/realtime/realtime-strategy/index.mjs +0 -7
  300. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +0 -218
  301. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +0 -224
  302. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +0 -29
  303. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +0 -14
  304. package/websql/esm2022/lib/realtime/realtime-subs-manager.mjs +0 -81
  305. package/websql/esm2022/lib/realtime/realtime.models.mjs +0 -4
  306. package/websql/esm2022/lib/storage.mjs +0 -5
  307. package/websql/esm2022/lib/symbols.mjs +0 -97
  308. package/websql/esm2022/lib/ui/directives/index.mjs +0 -6
  309. package/websql/esm2022/lib/ui/directives/safe.pipe.mjs +0 -43
  310. package/websql/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +0 -24
  311. package/websql/esm2022/lib/ui/directives/taon-long-press.directive.mjs +0 -120
  312. package/websql/esm2022/lib/ui/index.mjs +0 -12
  313. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +0 -4
  314. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +0 -194
  315. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +0 -55
  316. package/websql/esm2022/lib/ui/taon-full-material.module.mjs +0 -179
  317. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +0 -5
  318. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +0 -18
  319. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +0 -21
  320. package/websql/esm2022/lib/ui/taon-notifications/index.mjs +0 -7
  321. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +0 -25
  322. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +0 -5
  323. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +0 -21
  324. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +0 -48
  325. package/websql/esm2022/lib/ui/taon-progress-bar/index.mjs +0 -5
  326. package/websql/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +0 -50
  327. package/websql/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +0 -22
  328. package/websql/esm2022/lib/ui/taon-session-passcode/index.mjs +0 -4
  329. package/websql/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +0 -120
  330. package/websql/esm2022/lib/ui/taon-table/index.mjs +0 -5
  331. package/websql/esm2022/lib/ui/taon-table/taon-table.component.mjs +0 -160
  332. package/websql/esm2022/lib/ui/taon-table/taon-table.module.mjs +0 -57
  333. package/websql/esm2022/lib/validators.mjs +0 -76
  334. package/websql/esm2022/public-api.mjs +0 -2
  335. package/websql/esm2022/taon.mjs +0 -5
@@ -1,26 +0,0 @@
1
- import * as controller from './base-controller';
2
- import * as crudController from './base-crud-controller';
3
- import * as entity from './base-entity';
4
- import * as abstractEntity from './base-abstract-entity';
5
- import * as repository from './base-repository';
6
- import * as provider from './base-provider';
7
- import * as baseClass from './base-class';
8
- import * as baseContext from './base-context';
9
- import * as baseSubscriberEntity from './base-subscriber-for-entity';
10
- import * as baseMigration from './base-migration';
11
- export var Base;
12
- (function (Base) {
13
- Base.Controller = controller.BaseController;
14
- Base.CrudController = crudController.BaseCrudController;
15
- Base.Entity = entity.BaseEntity;
16
- Base.AbstractEntity = abstractEntity.BaseAbstractEntity;
17
- Base.Provider = provider.BaseProvider;
18
- Base.Class = baseClass.BaseClass;
19
- Base.Repository = repository.BaseRepository;
20
- Base.SubscriberForEntity = baseSubscriberEntity.BaseSubscriberForEntity;
21
- Base.Migration = baseMigration.BaseMigration;
22
- Base.Context = baseContext.BaseContext;
23
- })(Base || (Base = {}));
24
- ;
25
- ({}); // @--end-of-file-for-module=taon lib/base-classes/base.ts
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9iYXNlLWNsYXNzZXMvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssVUFBVSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxjQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxLQUFLLGNBQWMsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEtBQUssVUFBVSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxRQUFRLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxLQUFLLFNBQVMsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxLQUFLLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEtBQUssb0JBQW9CLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxNQUFNLEtBQVcsSUFBSSxDQVlwQjtBQVpELFdBQWlCLElBQUk7SUFDTCxlQUFVLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQztJQUN2QyxtQkFBYyxHQUFHLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztJQUNuRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUMzQixtQkFBYyxHQUFHLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztJQUVuRCxhQUFRLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztJQUNqQyxVQUFLLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztJQUM1QixlQUFVLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQztJQUN2Qyx3QkFBbUIsR0FBRyxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQztJQUNuRSxjQUFTLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxZQUFPLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQztBQUNqRCxDQUFDLEVBWmdCLElBQUksS0FBSixJQUFJLFFBWXBCO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywwREFBMEQiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0ICogYXMgY29udHJvbGxlciBmcm9tICcuL2Jhc2UtY29udHJvbGxlcic7XG5pbXBvcnQgKiBhcyBjcnVkQ29udHJvbGxlciBmcm9tICcuL2Jhc2UtY3J1ZC1jb250cm9sbGVyJztcbmltcG9ydCAqIGFzIGVudGl0eSBmcm9tICcuL2Jhc2UtZW50aXR5JztcbmltcG9ydCAqIGFzIGFic3RyYWN0RW50aXR5IGZyb20gJy4vYmFzZS1hYnN0cmFjdC1lbnRpdHknO1xuaW1wb3J0ICogYXMgcmVwb3NpdG9yeSBmcm9tICcuL2Jhc2UtcmVwb3NpdG9yeSc7XG5pbXBvcnQgKiBhcyBwcm92aWRlciBmcm9tICcuL2Jhc2UtcHJvdmlkZXInO1xuaW1wb3J0ICogYXMgYmFzZUNsYXNzIGZyb20gJy4vYmFzZS1jbGFzcyc7XG5pbXBvcnQgKiBhcyBiYXNlQ29udGV4dCBmcm9tICcuL2Jhc2UtY29udGV4dCc7XG5pbXBvcnQgKiBhcyBiYXNlU3Vic2NyaWJlckVudGl0eSBmcm9tICcuL2Jhc2Utc3Vic2NyaWJlci1mb3ItZW50aXR5JztcbmltcG9ydCAqIGFzIGJhc2VNaWdyYXRpb24gZnJvbSAnLi9iYXNlLW1pZ3JhdGlvbic7XG5leHBvcnQgbmFtZXNwYWNlIEJhc2Uge1xuICBleHBvcnQgaW1wb3J0IENvbnRyb2xsZXIgPSBjb250cm9sbGVyLkJhc2VDb250cm9sbGVyO1xuICBleHBvcnQgaW1wb3J0IENydWRDb250cm9sbGVyID0gY3J1ZENvbnRyb2xsZXIuQmFzZUNydWRDb250cm9sbGVyO1xuICBleHBvcnQgaW1wb3J0IEVudGl0eSA9IGVudGl0eS5CYXNlRW50aXR5O1xuICBleHBvcnQgaW1wb3J0IEFic3RyYWN0RW50aXR5ID0gYWJzdHJhY3RFbnRpdHkuQmFzZUFic3RyYWN0RW50aXR5O1xuICBleHBvcnQgaW1wb3J0IEFic3RyYWN0RW50aXR5T21pdEtleXMgPSBhYnN0cmFjdEVudGl0eS5BYnN0cmFjdEVudGl0eU9taXRLZXlzO1xuICBleHBvcnQgaW1wb3J0IFByb3ZpZGVyID0gcHJvdmlkZXIuQmFzZVByb3ZpZGVyO1xuICBleHBvcnQgaW1wb3J0IENsYXNzID0gYmFzZUNsYXNzLkJhc2VDbGFzcztcbiAgZXhwb3J0IGltcG9ydCBSZXBvc2l0b3J5ID0gcmVwb3NpdG9yeS5CYXNlUmVwb3NpdG9yeTtcbiAgZXhwb3J0IGltcG9ydCBTdWJzY3JpYmVyRm9yRW50aXR5ID0gYmFzZVN1YnNjcmliZXJFbnRpdHkuQmFzZVN1YnNjcmliZXJGb3JFbnRpdHk7XG4gIGV4cG9ydCBpbXBvcnQgTWlncmF0aW9uID0gYmFzZU1pZ3JhdGlvbi5CYXNlTWlncmF0aW9uO1xuICBleHBvcnQgY29uc3QgQ29udGV4dCA9IGJhc2VDb250ZXh0LkJhc2VDb250ZXh0O1xufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvYmFzZS1jbGFzc2VzL2Jhc2UudHMiXX0=
@@ -1,4 +0,0 @@
1
- ;
2
- ({}); // @--end-of-file-for-module=taon lib/constants.ts
3
- export {};
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQyxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtEQUFrRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgdHlwZSBUYW9uRW50aXR5S2V5c1RvT21pdCA9XG4gIHwgJ2N0cmwnXG4gIHwgJ2Nsb25lJ1xuICB8ICdfX2VuZHBvaW50X2NvbnRleHRfXydcbiAgfCAnaW5qZWN0J1xuICB8ICdfJztcblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2NvbnN0YW50cy50cyJdfQ==
@@ -1,274 +0,0 @@
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.commitTransaction();
62
- await queryRunner.release();
63
- return; // Exit early if the table exists
64
- }
65
- try {
66
- await queryRunner.createTable(this.table);
67
- await queryRunner.createIndex(this.DEFAULT_MIGRATION_TABLE_NAME, new TableIndex({
68
- name: 'IDX_NAME',
69
- columnNames: ['name'],
70
- }));
71
- await queryRunner.commitTransaction();
72
- }
73
- catch (error) {
74
- this.ctx.logMigrations &&
75
- console.error(`Transaction failed [ensureMigrationTableExists]` + `, rolling back:`, error);
76
- await queryRunner.rollbackTransaction();
77
- }
78
- finally {
79
- await queryRunner.release();
80
- }
81
- }
82
- async logSelectALl(name, queryRunner) {
83
- console.log(name, (await queryRunner.query(`SELECT * FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE context = $1`, [this.ctx.contextName])).map(m => m.name));
84
- }
85
- async revertMigrationToTimestamp(timestamp) {
86
- if (this.ctx.remoteHost) {
87
- return;
88
- }
89
- if (!UtilsMigrations.isValidTimestamp(timestamp)) {
90
- Helpers.throw(`Invalid timestamp provided for migration revert: ${timestamp}`);
91
- }
92
- const migrationsClassFns = this.ctx
93
- .getClassFunByArr(Models.ClassType.MIGRATION)
94
- .reverse();
95
- const migrationClassesInstancesToRevert = migrationsClassFns
96
- .map(classFn => {
97
- const timestampFromClassName = Number(UtilsMigrations.getTimestampFromClassName(ClassHelpers.getName(classFn)));
98
- if (timestampFromClassName <= timestamp) {
99
- return null;
100
- }
101
- return this.ctx.getInstanceBy(classFn);
102
- })
103
- .filter(f => !!f)
104
- .map(f => f)
105
- .filter(migrationInstance => migrationInstance.isReadyToRun());
106
- const queryRunner = this.ctx.connection.createQueryRunner();
107
- await queryRunner.connect();
108
- try {
109
- await queryRunner.startTransaction();
110
- const appliedMigrationsForContext = await queryRunner.query(`SELECT name FROM ${this.DEFAULT_MIGRATION_TABLE_NAME}
111
- WHERE status = $1 AND context = $2`, [this.MIGRATION_STATUS_COMPLETED, this.ctx.contextName]);
112
- const appliedMigrationsForContextNames = appliedMigrationsForContext.map(m => m.name);
113
- for (const migrationClassInstance of migrationClassesInstancesToRevert) {
114
- const migrationName = ClassHelpers.getName(migrationClassInstance);
115
- if (!appliedMigrationsForContextNames.includes(migrationName)) {
116
- this.ctx.logMigrations &&
117
- console.warn(`Skipping migration not marked as applied: ${migrationName}`);
118
- continue;
119
- }
120
- this.ctx.logMigrations &&
121
- console.log(`Reverting migration: ${migrationName} , context: ${this.ctx.contextName}`);
122
- await migrationClassInstance.down(queryRunner);
123
- await queryRunner.query(`DELETE FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE name = $1`, [migrationName]);
124
- }
125
- await queryRunner.commitTransaction();
126
- this.ctx.logMigrations &&
127
- console.log(`Migrations successfully reverted ` +
128
- `to the specified timestamp ${timestamp} .`);
129
- }
130
- catch (error) {
131
- this.ctx.logMigrations &&
132
- console.error('Transaction failed, rolling back:', error);
133
- await queryRunner.rollbackTransaction();
134
- }
135
- finally {
136
- await queryRunner.release();
137
- }
138
- }
139
- async clearMigrationTable() {
140
- if (this.ctx.remoteHost) {
141
- return;
142
- }
143
- const queryRunner = this.ctx.connection.createQueryRunner();
144
- await queryRunner.connect();
145
- await queryRunner.startTransaction();
146
- try {
147
- await queryRunner.clearTable(this.DEFAULT_MIGRATION_TABLE_NAME);
148
- await queryRunner.commitTransaction();
149
- }
150
- catch (error) {
151
- this.ctx.logMigrations &&
152
- console.error('Transaction failed, rolling back:', error);
153
- await queryRunner.rollbackTransaction();
154
- }
155
- finally {
156
- await queryRunner.release();
157
- }
158
- }
159
- async markAllMigrationsAsApplied() {
160
- if (this.ctx.remoteHost) {
161
- return;
162
- }
163
- const migrationsClassFns = this.ctx.getClassFunByArr(Models.ClassType.MIGRATION);
164
- const migrationClassesInstances = migrationsClassFns
165
- .map(classFn => this.ctx.getInstanceBy(classFn))
166
- .map(f => f)
167
- .filter(migrationInstance => migrationInstance.isReadyToRun());
168
- const queryRunner = this.ctx.connection.createQueryRunner();
169
- await queryRunner.connect();
170
- try {
171
- await queryRunner.startTransaction();
172
- const allMigrationsInDb = await queryRunner.query(`SELECT name FROM ${this.DEFAULT_MIGRATION_TABLE_NAME}`);
173
- const allMigrationInDBNames = allMigrationsInDb.map(m => m.name);
174
- for (const instance of migrationClassesInstances) {
175
- const migrationName = ClassHelpers.getName(instance);
176
- if (allMigrationInDBNames.includes(migrationName)) {
177
- this.ctx.logMigrations &&
178
- console.log(`Skipping already applied migration: ${migrationName}`);
179
- continue;
180
- }
181
- this.ctx.logMigrations &&
182
- console.log(`Marking migration as applied: ${migrationName}`);
183
- await queryRunner.query(`INSERT INTO ${this.DEFAULT_MIGRATION_TABLE_NAME} (name, status, context, applied_at) ` +
184
- `VALUES ($1, $2, $3, CURRENT_TIMESTAMP)`, [
185
- migrationName,
186
- this.MIGRATION_STATUS_COMPLETED,
187
- instance.ctx.contextName,
188
- ]);
189
- }
190
- await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME}
191
- SET status = $1, applied_at = CURRENT_TIMESTAMP
192
- WHERE status = $2`, [this.MIGRATION_STATUS_COMPLETED, this.MIGRATION_STATUS_PENDING]);
193
- await queryRunner.commitTransaction();
194
- this.ctx.logMigrations &&
195
- console.log('All migrations marked as applied.');
196
- }
197
- catch (error) {
198
- this.ctx.logMigrations &&
199
- console.error('Failed to mark all migrations as applied, rolling back:', error);
200
- await queryRunner.rollbackTransaction();
201
- }
202
- finally {
203
- await queryRunner.release();
204
- }
205
- }
206
- async runAllNotCompletedMigrations() {
207
- if (this.ctx.remoteHost) {
208
- return;
209
- }
210
- const migrationsClassFns = this.ctx.getClassFunByArr(Models.ClassType.MIGRATION);
211
- const migrationClassesInstances = migrationsClassFns
212
- .map(classFn => this.ctx.getInstanceBy(classFn))
213
- .map(f => f)
214
- .filter(migrationInstance => migrationInstance.isReadyToRun());
215
- const queryRunner = this.ctx.connection.createQueryRunner();
216
- await queryRunner.connect();
217
- try {
218
- await queryRunner.startTransaction();
219
- const appliedMigrationsForContext = await queryRunner.query(`SELECT name, status FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} ` +
220
- `WHERE context = $1`, [this.ctx.contextName]);
221
- const pendingMigrationsForContext = appliedMigrationsForContext.filter(m => m.status === this.MIGRATION_STATUS_PENDING);
222
- for (const pendingContextMigration of pendingMigrationsForContext) {
223
- const migrationInstance = migrationClassesInstances.find(instance => ClassHelpers.getName(instance) === pendingContextMigration.name);
224
- if (!migrationInstance) {
225
- this.ctx.logMigrations &&
226
- console.warn(`Pending migration ${pendingContextMigration.name} not found in loaded migrations.`);
227
- continue;
228
- }
229
- this.ctx.logMigrations &&
230
- console.log(`Completing pending migration: ${pendingContextMigration.name}`);
231
- await migrationInstance.up(queryRunner);
232
- await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME}
233
- SET status = $1, applied_at = CURRENT_TIMESTAMP
234
- WHERE name = $2`, [this.MIGRATION_STATUS_COMPLETED, pendingContextMigration.name]);
235
- }
236
- for (const instance of migrationClassesInstances) {
237
- const migrationName = ClassHelpers.getName(instance);
238
- if (appliedMigrationsForContext.some(m => m.name === migrationName)) {
239
- this.ctx.logMigrations &&
240
- console.log(`Skipping already applied migration: ${migrationName}`);
241
- continue;
242
- }
243
- this.ctx.logMigrations &&
244
- console.log(`Applying new migration: ${migrationName}`);
245
- await queryRunner.query(`INSERT INTO ${this.DEFAULT_MIGRATION_TABLE_NAME} (name, status, context, applied_at) ` +
246
- `VALUES ($1, $2, $3, NULL)`, [migrationName, this.MIGRATION_STATUS_PENDING, this.ctx.contextName]);
247
- try {
248
- await instance.up(queryRunner);
249
- await queryRunner.query(`UPDATE ${this.DEFAULT_MIGRATION_TABLE_NAME} ` +
250
- `SET status = '${this.MIGRATION_STATUS_COMPLETED}', applied_at = CURRENT_TIMESTAMP ` +
251
- `WHERE name = $1`, [migrationName]);
252
- }
253
- catch (error) {
254
- this.ctx.logMigrations &&
255
- console.error(`Failed to apply migration: ${migrationName}`, error);
256
- await queryRunner.query(`DELETE FROM ${this.DEFAULT_MIGRATION_TABLE_NAME} WHERE name = $1`, [migrationName]);
257
- throw error; // Rethrow to ensure the transaction is rolled back
258
- }
259
- }
260
- await queryRunner.commitTransaction();
261
- }
262
- catch (error) {
263
- this.ctx.logMigrations &&
264
- console.error('Transaction failed, rolling back:', error);
265
- await queryRunner.rollbackTransaction();
266
- }
267
- finally {
268
- await queryRunner.release();
269
- }
270
- }
271
- }
272
- ;
273
- ({}); // @--end-of-file-for-module=taon lib/context-db-migrations.ts
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1kYi1taWdyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2NvbnRleHQtZGItbWlncmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBSyxNQUFNLGlCQUFpQixDQUFDO0FBRzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBd0csS0FBSyxFQUFtQixVQUFVLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxDQUFBLEtBQUs7QUFpQnJMLE1BQU0sT0FBTyxtQkFBbUI7SUErRDlCLFlBQW9CLEdBQW9CO1FBQXBCLFFBQUcsR0FBSCxHQUFHLENBQWlCO1FBM0QvQixpQ0FBNEIsR0FBRyxxQkFBcUIsQ0FBQztRQUlyRCwrQkFBMEIsR0FBb0IsV0FBVyxDQUFDO1FBQzFELDZCQUF3QixHQUFvQixTQUFTLENBQUM7UUFJdEQsVUFBSyxHQUFHLElBQUksS0FBSyxDQUFDO1lBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsNEJBQTRCO1lBQ3ZDLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsSUFBSTtvQkFDVixJQUFJLEVBQUUsU0FBUztvQkFDZixTQUFTLEVBQUUsSUFBSSxFQUFFLDZCQUE2QjtvQkFDOUMsV0FBVyxFQUFFLElBQUksRUFBRSx5QkFBeUI7b0JBQzVDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSw4QkFBOEI7aUJBQ2hFO2dCQUNEO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLElBQUksRUFBRSxTQUFTO29CQUNmLE1BQU0sRUFBRSxLQUFLO29CQUNiLFFBQVEsRUFBRSxJQUFJLEVBQUUsNEJBQTRCO29CQUM1QyxVQUFV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bHNNaWdyYXRpb25zLCBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7IEJhc2VNaWdyYXRpb24gfSBmcm9tICcuL2Jhc2UtY2xhc3Nlcy9iYXNlLW1pZ3JhdGlvbic7XG5pbXBvcnQgdHlwZSB7IEVuZHBvaW50Q29udGV4dCB9IGZyb20gJy4vZW5kcG9pbnQtY29udGV4dCc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyAgIENvbHVtbiwgICBEYXRhU291cmNlLCAgIEVudGl0eSwgICBFbnRpdHlTY2hlbWEsICAgSW5kZXgsICAgUHJpbWFyeUdlbmVyYXRlZENvbHVtbiwgICBRdWVyeVJ1bm5lciwgICBUYWJsZSwgICBUYWJsZUNvbHVtbiwgICBUYWJsZUluZGV4LCB9IGZyb20gJ3Rhb24tdHlwZW9ybS93ZWJzcWwnOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5cblxuXG5leHBvcnQgdHlwZSBNaWdyYXRpb25TdGF0dXMgPSAnY29tcGxldGVkJyB8ICdwZW5kaW5nJztcblxuZXhwb3J0IGNsYXNzIENvbnRleHREYk1pZ3JhdGlvbnMge1xuXG5cblxuICByZWFkb25seSBERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FID0gJ1RBT05fTUlHUkFUSU9OX01FVEEnO1xuXG5cblxuICByZWFkb25seSBNSUdSQVRJT05fU1RBVFVTX0NPTVBMRVRFRDogTWlncmF0aW9uU3RhdHVzID0gJ2NvbXBsZXRlZCc7XG4gIHJlYWRvbmx5IE1JR1JBVElPTl9TVEFUVVNfUEVORElORzogTWlncmF0aW9uU3RhdHVzID0gJ3BlbmRpbmcnO1xuXG5cblxuICByZWFkb25seSB0YWJsZSA9IG5ldyBUYWJsZSh7XG4gICAgbmFtZTogdGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FLFxuICAgIGNvbHVtbnM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgdHlwZTogJ2ludGVnZXInLFxuICAgICAgICBpc1ByaW1hcnk6IHRydWUsIC8vIE1hcmsgaXQgYXMgdGhlIHByaW1hcnkga2V5XG4gICAgICAgIGlzR2VuZXJhdGVkOiB0cnVlLCAvLyBFbmFibGUgYXV0by1nZW5lcmF0aW9uXG4gICAgICAgIGdlbmVyYXRpb25TdHJhdGVneTogJ2luY3JlbWVudCcsIC8vIFVzZSBhdXRvLWluY3JlbWVudCBzdHJhdGVneVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICB0eXBlOiAndmFyY2hhcicsXG4gICAgICAgIGxlbmd0aDogJzI1NScsXG4gICAgICAgIGlzVW5pcXVlOiB0cnVlLCAvLyBFbnN1cmUgdGhlIG5hbWUgaXMgdW5pcXVlXG4gICAgICAgIGlzTnVsbGFibGU6IGZhbHNlLCAvLyBFbnN1cmUgdGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICAgICAgfSxcbiAgICAgIHtcblxuICAgICAgICBuYW1lOiAnY29udGV4dCcsXG4gICAgICAgIHR5cGU6ICd2YXJjaGFyJyxcbiAgICAgICAgbGVuZ3RoOiAnMjU1JyxcbiAgICAgICAgaXNOdWxsYWJsZTogZmFsc2UsIC8vIE9wdGlvbmFsIGNvbnRleHQgZm9yIG1pZ3JhdGlvbnMgKGUuZy4sIHRlbmFudCBvciBtb2R1bGUgbmFtZSlcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdhcHBsaWVkX2F0JyxcbiAgICAgICAgdHlwZTogJ3RpbWVzdGFtcCcsXG4gICAgICAgIGRlZmF1bHQ6ICdDVVJSRU5UX1RJTUVTVEFNUCcsIC8vIEF1dG9tYXRpY2FsbHkgc2V0IHRoZSB0aW1lc3RhbXBcbiAgICAgICAgaXNOdWxsYWJsZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzdGF0dXMnLFxuICAgICAgICB0eXBlOiAndmFyY2hhcicsXG4gICAgICAgIGxlbmd0aDogJzUwJyxcbiAgICAgICAgZGVmYXVsdDogYCcke3RoaXMuTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUR9J2AsXG4gICAgICAgIGlzTnVsbGFibGU6IGZhbHNlLFxuICAgICAgfSxcblxuXG5cblxuXG5cbiAgICBdLFxuICB9KTtcblxuXG5cblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY3R4OiBFbmRwb2ludENvbnRleHQpIHt9XG5cblxuXG4gIGFzeW5jIGVuc3VyZU1pZ3JhdGlvblRhYmxlRXhpc3RzKCkge1xuXG4gICAgaWYgKHRoaXMuY3R4LnJlbW90ZUhvc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmN0eC5jb25uZWN0aW9uLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcblxuXG4gICAgY29uc3QgaGFzVGFibGUgPSBhd2FpdCBxdWVyeVJ1bm5lci5oYXNUYWJsZShcbiAgICAgIHRoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRSxcbiAgICApO1xuICAgIGlmIChoYXNUYWJsZSkge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICBgVGFibGUgJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9IGFscmVhZHkgZXhpc3RzLmAsXG4gICAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgICAgcmV0dXJuOyAvLyBFeGl0IGVhcmx5IGlmIHRoZSB0YWJsZSBleGlzdHNcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY3JlYXRlVGFibGUodGhpcy50YWJsZSk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jcmVhdGVJbmRleChcbiAgICAgICAgdGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FLFxuICAgICAgICBuZXcgVGFibGVJbmRleCh7XG4gICAgICAgICAgbmFtZTogJ0lEWF9OQU1FJyxcbiAgICAgICAgICBjb2x1bW5OYW1lczogWyduYW1lJ10sXG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBUcmFuc2FjdGlvbiBmYWlsZWQgW2Vuc3VyZU1pZ3JhdGlvblRhYmxlRXhpc3RzXWAgKyBgLCByb2xsaW5nIGJhY2s6YCxcbiAgICAgICAgICBlcnJvcixcbiAgICAgICAgKTtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucmVsZWFzZSgpO1xuICAgIH1cblxuXG4gIH1cblxuXG5cbiAgcHJpdmF0ZSBhc3luYyBsb2dTZWxlY3RBTGwobmFtZTogc3RyaW5nLCBxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIG5hbWUsXG4gICAgICAoXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBTRUxFQ1QgKiBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSBXSEVSRSBjb250ZXh0ID0gJDFgLFxuICAgICAgICAgIFt0aGlzLmN0eC5jb250ZXh0TmFtZV0sXG4gICAgICAgIClcbiAgICAgICkubWFwKG0gPT4gbS5uYW1lKSxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgcmV2ZXJ0TWlncmF0aW9uVG9UaW1lc3RhbXAodGltZXN0YW1wOiBudW1iZXIpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghVXRpbHNNaWdyYXRpb25zLmlzVmFsaWRUaW1lc3RhbXAodGltZXN0YW1wKSkge1xuICAgICAgSGVscGVycy50aHJvdyhcbiAgICAgICAgYEludmFsaWQgdGltZXN0YW1wIHByb3ZpZGVkIGZvciBtaWdyYXRpb24gcmV2ZXJ0OiAke3RpbWVzdGFtcH1gLFxuICAgICAgKTtcbiAgICB9XG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbnNDbGFzc0ZuczogRnVuY3Rpb25bXSA9IHRoaXMuY3R4XG4gICAgICAuZ2V0Q2xhc3NGdW5CeUFycihNb2RlbHMuQ2xhc3NUeXBlLk1JR1JBVElPTilcbiAgICAgIC5yZXZlcnNlKCk7XG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXNUb1JldmVydDogQmFzZU1pZ3JhdGlvbltdID1cbiAgICAgIG1pZ3JhdGlvbnNDbGFzc0Zuc1xuICAgICAgICAubWFwKGNsYXNzRm4gPT4ge1xuICAgICAgICAgIGNvbnN0IHRpbWVzdGFtcEZyb21DbGFzc05hbWUgPSBOdW1iZXIoXG4gICAgICAgICAgICBVdGlsc01pZ3JhdGlvbnMuZ2V0VGltZXN0YW1wRnJvbUNsYXNzTmFtZShcbiAgICAgICAgICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUoY2xhc3NGbiksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAodGltZXN0YW1wRnJvbUNsYXNzTmFtZSA8PSB0aW1lc3RhbXApIHtcblxuXG5cblxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdGhpcy5jdHguZ2V0SW5zdGFuY2VCeShjbGFzc0ZuIGFzIGFueSkgYXMgYW55O1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKGYgPT4gISFmKVxuICAgICAgICAubWFwKGYgPT4gZiBhcyBCYXNlTWlncmF0aW9uKVxuICAgICAgICAuZmlsdGVyKG1pZ3JhdGlvbkluc3RhbmNlID0+IG1pZ3JhdGlvbkluc3RhbmNlLmlzUmVhZHlUb1J1bigpKTtcblxuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5jdHguY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG5cblxuICAgICAgY29uc3QgYXBwbGllZE1pZ3JhdGlvbnNGb3JDb250ZXh0ID0gYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgIGBTRUxFQ1QgbmFtZSBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfVxuICAgICAgICAgV0hFUkUgc3RhdHVzID0gJDEgQU5EIGNvbnRleHQgPSAkMmAsXG4gICAgICAgIFt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELCB0aGlzLmN0eC5jb250ZXh0TmFtZV0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCBhcHBsaWVkTWlncmF0aW9uc0ZvckNvbnRleHROYW1lcyA9IGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dC5tYXAoXG4gICAgICAgIG0gPT4gbS5uYW1lLFxuICAgICAgKTtcblxuXG4gICAgICBmb3IgKGNvbnN0IG1pZ3JhdGlvbkNsYXNzSW5zdGFuY2Ugb2YgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlc1RvUmV2ZXJ0KSB7XG4gICAgICAgIGNvbnN0IG1pZ3JhdGlvbk5hbWUgPSBDbGFzc0hlbHBlcnMuZ2V0TmFtZShtaWdyYXRpb25DbGFzc0luc3RhbmNlKTtcblxuICAgICAgICBpZiAoIWFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dE5hbWVzLmluY2x1ZGVzKG1pZ3JhdGlvbk5hbWUpKSB7XG4gICAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICBgU2tpcHBpbmcgbWlncmF0aW9uIG5vdCBtYXJrZWQgYXMgYXBwbGllZDogJHttaWdyYXRpb25OYW1lfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgYFJldmVydGluZyBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX0gLCBjb250ZXh0OiAke3RoaXMuY3R4LmNvbnRleHROYW1lfWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgbWlncmF0aW9uQ2xhc3NJbnN0YW5jZS5kb3duKHF1ZXJ5UnVubmVyKTtcblxuXG4gICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgIGBERUxFVEUgRlJPTSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gV0hFUkUgbmFtZSA9ICQxYCxcbiAgICAgICAgICBbbWlncmF0aW9uTmFtZV0sXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgIGBNaWdyYXRpb25zIHN1Y2Nlc3NmdWxseSByZXZlcnRlZCBgICtcbiAgICAgICAgICAgIGB0byB0aGUgc3BlY2lmaWVkIHRpbWVzdGFtcCAke3RpbWVzdGFtcH0gLmAsXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcignVHJhbnNhY3Rpb24gZmFpbGVkLCByb2xsaW5nIGJhY2s6JywgZXJyb3IpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuXG4gIH1cblxuXG5cbiAgYXN5bmMgY2xlYXJNaWdyYXRpb25UYWJsZSgpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHF1ZXJ5UnVubmVyID0gdGhpcy5jdHguY29ubmVjdGlvbi5jcmVhdGVRdWVyeVJ1bm5lcigpO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbm5lY3QoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5zdGFydFRyYW5zYWN0aW9uKCk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY2xlYXJUYWJsZSh0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUUpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmVycm9yKCdUcmFuc2FjdGlvbiBmYWlsZWQsIHJvbGxpbmcgYmFjazonLCBlcnJvcik7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG5cbiAgfVxuXG5cblxuICBhc3luYyBtYXJrQWxsTWlncmF0aW9uc0FzQXBwbGllZCgpIHtcblxuICAgIGlmICh0aGlzLmN0eC5yZW1vdGVIb3N0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1pZ3JhdGlvbnNDbGFzc0ZuczogRnVuY3Rpb25bXSA9IHRoaXMuY3R4LmdldENsYXNzRnVuQnlBcnIoXG4gICAgICBNb2RlbHMuQ2xhc3NUeXBlLk1JR1JBVElPTixcbiAgICApO1xuXG4gICAgY29uc3QgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlczogQmFzZU1pZ3JhdGlvbltdID0gbWlncmF0aW9uc0NsYXNzRm5zXG4gICAgICAubWFwKGNsYXNzRm4gPT4gdGhpcy5jdHguZ2V0SW5zdGFuY2VCeShjbGFzc0ZuIGFzIGFueSkpXG4gICAgICAubWFwKGYgPT4gZiBhcyBCYXNlTWlncmF0aW9uKVxuICAgICAgLmZpbHRlcihtaWdyYXRpb25JbnN0YW5jZSA9PiBtaWdyYXRpb25JbnN0YW5jZS5pc1JlYWR5VG9SdW4oKSk7XG5cbiAgICBjb25zdCBxdWVyeVJ1bm5lciA9IHRoaXMuY3R4LmNvbm5lY3Rpb24uY3JlYXRlUXVlcnlSdW5uZXIoKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb25uZWN0KCk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIuc3RhcnRUcmFuc2FjdGlvbigpO1xuXG5cbiAgICAgIGNvbnN0IGFsbE1pZ3JhdGlvbnNJbkRiID0gYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgIGBTRUxFQ1QgbmFtZSBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfWAsXG4gICAgICApO1xuXG4gICAgICBjb25zdCBhbGxNaWdyYXRpb25JbkRCTmFtZXMgPSBhbGxNaWdyYXRpb25zSW5EYi5tYXAobSA9PiBtLm5hbWUpO1xuXG4gICAgICBmb3IgKGNvbnN0IGluc3RhbmNlIG9mIG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXMpIHtcbiAgICAgICAgY29uc3QgbWlncmF0aW9uTmFtZSA9IENsYXNzSGVscGVycy5nZXROYW1lKGluc3RhbmNlKTtcblxuICAgICAgICBpZiAoYWxsTWlncmF0aW9uSW5EQk5hbWVzLmluY2x1ZGVzKG1pZ3JhdGlvbk5hbWUpKSB7XG4gICAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgICAgY29uc29sZS5sb2coYFNraXBwaW5nIGFscmVhZHkgYXBwbGllZCBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX1gKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTWFya2luZyBtaWdyYXRpb24gYXMgYXBwbGllZDogJHttaWdyYXRpb25OYW1lfWApO1xuXG5cbiAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgICAgYElOU0VSVCBJTlRPICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSAobmFtZSwgc3RhdHVzLCBjb250ZXh0LCBhcHBsaWVkX2F0KSBgICtcbiAgICAgICAgICAgIGBWQUxVRVMgKCQxLCAkMiwgJDMsIENVUlJFTlRfVElNRVNUQU1QKWAsXG4gICAgICAgICAgW1xuICAgICAgICAgICAgbWlncmF0aW9uTmFtZSxcbiAgICAgICAgICAgIHRoaXMuTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUQsXG4gICAgICAgICAgICBpbnN0YW5jZS5jdHguY29udGV4dE5hbWUsXG4gICAgICAgICAgXSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuXG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgYFVQREFURSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX1cbiAgICAgICAgIFNFVCBzdGF0dXMgPSAkMSwgYXBwbGllZF9hdCA9IENVUlJFTlRfVElNRVNUQU1QXG4gICAgICAgICBXSEVSRSBzdGF0dXMgPSAkMmAsXG4gICAgICAgIFt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELCB0aGlzLk1JR1JBVElPTl9TVEFUVVNfUEVORElOR10sXG4gICAgICApO1xuXG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5jb21taXRUcmFuc2FjdGlvbigpO1xuICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICBjb25zb2xlLmxvZygnQWxsIG1pZ3JhdGlvbnMgbWFya2VkIGFzIGFwcGxpZWQuJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAnRmFpbGVkIHRvIG1hcmsgYWxsIG1pZ3JhdGlvbnMgYXMgYXBwbGllZCwgcm9sbGluZyBiYWNrOicsXG4gICAgICAgICAgZXJyb3IsXG4gICAgICAgICk7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnJlbGVhc2UoKTtcbiAgICB9XG5cbiAgfVxuXG5cblxuICBhc3luYyBydW5BbGxOb3RDb21wbGV0ZWRNaWdyYXRpb25zKCkge1xuXG4gICAgaWYgKHRoaXMuY3R4LnJlbW90ZUhvc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbWlncmF0aW9uc0NsYXNzRm5zOiBGdW5jdGlvbltdID0gdGhpcy5jdHguZ2V0Q2xhc3NGdW5CeUFycihcbiAgICAgIE1vZGVscy5DbGFzc1R5cGUuTUlHUkFUSU9OLFxuICAgICk7XG5cblxuXG5cblxuICAgIGNvbnN0IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXM6IEJhc2VNaWdyYXRpb25bXSA9IG1pZ3JhdGlvbnNDbGFzc0Zuc1xuICAgICAgLm1hcChjbGFzc0ZuID0+IHRoaXMuY3R4LmdldEluc3RhbmNlQnkoY2xhc3NGbiBhcyBhbnkpKVxuICAgICAgLm1hcChmID0+IGYgYXMgQmFzZU1pZ3JhdGlvbilcbiAgICAgIC5maWx0ZXIobWlncmF0aW9uSW5zdGFuY2UgPT4gbWlncmF0aW9uSW5zdGFuY2UuaXNSZWFkeVRvUnVuKCkpO1xuXG5cblxuXG5cblxuXG4gICAgY29uc3QgcXVlcnlSdW5uZXIgPSB0aGlzLmN0eC5jb25uZWN0aW9uLmNyZWF0ZVF1ZXJ5UnVubmVyKCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIuY29ubmVjdCgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnN0YXJ0VHJhbnNhY3Rpb24oKTtcblxuXG5cblxuXG4gICAgICBjb25zdCBhcHBsaWVkTWlncmF0aW9uc0ZvckNvbnRleHQgPSBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgYFNFTEVDVCBuYW1lLCBzdGF0dXMgRlJPTSAke3RoaXMuREVGQVVMVF9NSUdSQVRJT05fVEFCTEVfTkFNRX0gYCArXG4gICAgICAgICAgYFdIRVJFIGNvbnRleHQgPSAkMWAsXG4gICAgICAgIFt0aGlzLmN0eC5jb250ZXh0TmFtZV0sXG4gICAgICApO1xuXG5cbiAgICAgIGNvbnN0IHBlbmRpbmdNaWdyYXRpb25zRm9yQ29udGV4dCA9IGFwcGxpZWRNaWdyYXRpb25zRm9yQ29udGV4dC5maWx0ZXIoXG4gICAgICAgIG0gPT4gbS5zdGF0dXMgPT09IHRoaXMuTUlHUkFUSU9OX1NUQVRVU19QRU5ESU5HLFxuICAgICAgKTtcblxuXG4gICAgICBmb3IgKGNvbnN0IHBlbmRpbmdDb250ZXh0TWlncmF0aW9uIG9mIHBlbmRpbmdNaWdyYXRpb25zRm9yQ29udGV4dCkge1xuICAgICAgICBjb25zdCBtaWdyYXRpb25JbnN0YW5jZSA9IG1pZ3JhdGlvbkNsYXNzZXNJbnN0YW5jZXMuZmluZChcbiAgICAgICAgICBpbnN0YW5jZSA9PlxuICAgICAgICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUoaW5zdGFuY2UpID09PSBwZW5kaW5nQ29udGV4dE1pZ3JhdGlvbi5uYW1lLFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghbWlncmF0aW9uSW5zdGFuY2UpIHtcbiAgICAgICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgIGBQZW5kaW5nIG1pZ3JhdGlvbiAke3BlbmRpbmdDb250ZXh0TWlncmF0aW9uLm5hbWV9IG5vdCBmb3VuZCBpbiBsb2FkZWQgbWlncmF0aW9ucy5gLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICBjb25zb2xlLmxvZyhcbiAgICAgICAgICAgIGBDb21wbGV0aW5nIHBlbmRpbmcgbWlncmF0aW9uOiAke3BlbmRpbmdDb250ZXh0TWlncmF0aW9uLm5hbWV9YCxcbiAgICAgICAgICApO1xuICAgICAgICBhd2FpdCBtaWdyYXRpb25JbnN0YW5jZS51cChxdWVyeVJ1bm5lcik7XG5cblxuICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgICBgVVBEQVRFICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfVxuICAgICAgICAgICBTRVQgc3RhdHVzID0gJDEsIGFwcGxpZWRfYXQgPSBDVVJSRU5UX1RJTUVTVEFNUFxuICAgICAgICAgICBXSEVSRSBuYW1lID0gJDJgLFxuICAgICAgICAgIFt0aGlzLk1JR1JBVElPTl9TVEFUVVNfQ09NUExFVEVELCBwZW5kaW5nQ29udGV4dE1pZ3JhdGlvbi5uYW1lXSxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuXG5cbiAgICAgIGZvciAoY29uc3QgaW5zdGFuY2Ugb2YgbWlncmF0aW9uQ2xhc3Nlc0luc3RhbmNlcykge1xuICAgICAgICBjb25zdCBtaWdyYXRpb25OYW1lID0gQ2xhc3NIZWxwZXJzLmdldE5hbWUoaW5zdGFuY2UpO1xuXG4gICAgICAgIGlmIChhcHBsaWVkTWlncmF0aW9uc0ZvckNvbnRleHQuc29tZShtID0+IG0ubmFtZSA9PT0gbWlncmF0aW9uTmFtZSkpIHtcbiAgICAgICAgICB0aGlzLmN0eC5sb2dNaWdyYXRpb25zICYmXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgU2tpcHBpbmcgYWxyZWFkeSBhcHBsaWVkIG1pZ3JhdGlvbjogJHttaWdyYXRpb25OYW1lfWApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdHgubG9nTWlncmF0aW9ucyAmJlxuICAgICAgICAgIGNvbnNvbGUubG9nKGBBcHBseWluZyBuZXcgbWlncmF0aW9uOiAke21pZ3JhdGlvbk5hbWV9YCk7XG5cbiAgICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoXG4gICAgICAgICAgYElOU0VSVCBJTlRPICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSAobmFtZSwgc3RhdHVzLCBjb250ZXh0LCBhcHBsaWVkX2F0KSBgICtcbiAgICAgICAgICAgIGBWQUxVRVMgKCQxLCAkMiwgJDMsIE5VTEwpYCxcbiAgICAgICAgICBbbWlncmF0aW9uTmFtZSwgdGhpcy5NSUdSQVRJT05fU1RBVFVTX1BFTkRJTkcsIHRoaXMuY3R4LmNvbnRleHROYW1lXSxcbiAgICAgICAgKTtcblxuICAgICAgICB0cnkge1xuXG4gICAgICAgICAgYXdhaXQgaW5zdGFuY2UudXAocXVlcnlSdW5uZXIpO1xuXG5cbiAgICAgICAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShcbiAgICAgICAgICAgIGBVUERBVEUgJHt0aGlzLkRFRkFVTFRfTUlHUkFUSU9OX1RBQkxFX05BTUV9IGAgK1xuICAgICAgICAgICAgICBgU0VUIHN0YXR1cyA9ICcke3RoaXMuTUlHUkFUSU9OX1NUQVRVU19DT01QTEVURUR9JywgYXBwbGllZF9hdCA9IENVUlJFTlRfVElNRVNUQU1QIGAgK1xuICAgICAgICAgICAgICBgV0hFUkUgbmFtZSA9ICQxYCxcbiAgICAgICAgICAgIFttaWdyYXRpb25OYW1lXSxcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBhcHBseSBtaWdyYXRpb246ICR7bWlncmF0aW9uTmFtZX1gLCBlcnJvcik7XG5cblxuICAgICAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KFxuICAgICAgICAgICAgYERFTEVURSBGUk9NICR7dGhpcy5ERUZBVUxUX01JR1JBVElPTl9UQUJMRV9OQU1FfSBXSEVSRSBuYW1lID0gJDFgLFxuICAgICAgICAgICAgW21pZ3JhdGlvbk5hbWVdLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aHJvdyBlcnJvcjsgLy8gUmV0aHJvdyB0byBlbnN1cmUgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrXG4gICAgICAgIH1cbiAgICAgIH1cblxuXG5cbiAgICAgIGF3YWl0IHF1ZXJ5UnVubmVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuY3R4LmxvZ01pZ3JhdGlvbnMgJiZcbiAgICAgICAgY29uc29sZS5lcnJvcignVHJhbnNhY3Rpb24gZmFpbGVkLCByb2xsaW5nIGJhY2s6JywgZXJyb3IpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyeVJ1bm5lci5yZWxlYXNlKCk7XG4gICAgfVxuXG4gIH1cblxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvY29udGV4dC1kYi1taWdyYXRpb25zLnRzIl19
@@ -1,126 +0,0 @@
1
- import { Helpers, UtilsOs } from 'tnp-core/websql';
2
- import { EndpointContext } from './endpoint-context';
3
- import { ENV } from './env';
4
- import { TaonAdminService } from './ui/taon-admin-mode-configuration/taon-admin.service';
5
- export const createContext = (configFn) => {
6
- let config = configFn(ENV);
7
- const endpointContextRef = new EndpointContext(config, configFn);
8
- const res = {
9
- types: {
10
- get controllers() {
11
- return config.controllers;
12
- },
13
- get repositories() {
14
- return config.repositories;
15
- },
16
- get providers() {
17
- return config.providers;
18
- },
19
- get subscribers() {
20
- return config.subscribers;
21
- },
22
- get migrations() {
23
- return config.migrations;
24
- },
25
- },
26
- get contexts() {
27
- return config.contexts;
28
- },
29
- get contextName() {
30
- return config.contextName;
31
- },
32
- /**
33
- * @deprecated
34
- * - get reference to internal context
35
- */
36
- async __ref() {
37
- if (!endpointContextRef.inited) {
38
- await endpointContextRef.init({
39
- initFromRecrusiveContextResovle: true,
40
- });
41
- }
42
- return endpointContextRef;
43
- },
44
- /**
45
- * only for internal use
46
- * @deprecated
47
- */
48
- get __refSync() {
49
- return endpointContextRef;
50
- },
51
- getClassInstance(ctor) {
52
- return endpointContextRef.getInstanceBy(ctor);
53
- },
54
- getClass(ctor) {
55
- const classFun = endpointContextRef.getClassFunByClass(ctor);
56
- return classFun;
57
- },
58
- /**
59
- * - create controller instances for context
60
- * - init database (if enable) + migation scripts
61
- */
62
- initialize: async (overrideOptions) => {
63
- return await new Promise(async (resolve, reject) => {
64
- setTimeout(async () => {
65
- await endpointContextRef.init({
66
- ...overrideOptions,
67
- });
68
- if (config.abstract) {
69
- throw new Error(`Abstract context can not be initialized`);
70
- }
71
- await endpointContextRef.initEntities();
72
- await endpointContextRef.initSubscribers();
73
- await endpointContextRef.initDatabaseConnection();
74
- await endpointContextRef.dbMigrations.ensureMigrationTableExists();
75
- endpointContextRef.initControllers();
76
- endpointContextRef.startServer();
77
- endpointContextRef.writeActiveRoutes();
78
- await endpointContextRef.initClasses();
79
- let keepWebsqlDbDataAfterReload = false;
80
- keepWebsqlDbDataAfterReload =
81
- TaonAdminService.Instance?.keepWebsqlDbDataAfterReload;
82
- if (!Helpers.isNode && keepWebsqlDbDataAfterReload) {
83
- !UtilsOs.isRunningInCliMode() &&
84
- Helpers.info(`[taon] Keeping websql data after reload ` +
85
- `(context=${endpointContextRef.contextName}).`);
86
- }
87
- else {
88
- !UtilsOs.isRunningInCliMode() &&
89
- Helpers.info(`[taon] Dropping all tables and data ` +
90
- `(context=${endpointContextRef.contextName}).`);
91
- await endpointContextRef.reinitControllers();
92
- }
93
- ///#region TODO this may be usefull but for now
94
- if (endpointContextRef.onlyMigrationRun) {
95
- await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();
96
- }
97
- else if (endpointContextRef.onlyMigrationRevertToTimestamp) {
98
- await endpointContextRef.dbMigrations.revertMigrationToTimestamp(endpointContextRef.onlyMigrationRevertToTimestamp);
99
- }
100
- else {
101
- await endpointContextRef.dbMigrations.runAllNotCompletedMigrations();
102
- }
103
- resolve(endpointContextRef);
104
- });
105
- });
106
- },
107
- /**
108
- * realtime communication with server
109
- * Udp socket.io (or ipc) based.
110
- */
111
- get realtime() {
112
- return {
113
- get client() {
114
- return endpointContextRef.realtimeClient;
115
- },
116
- get server() {
117
- return endpointContextRef.realtimeServer;
118
- },
119
- };
120
- },
121
- };
122
- return res;
123
- };
124
- ;
125
- ({}); // @--end-of-file-for-module=taon lib/create-context.ts
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvY3JlYXRlLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHckQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUU1QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQU96RixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FXM0IsUUFVQyxFQUNELEVBQUU7SUFDRixJQUFJLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFM0IsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFakUsTUFBTSxHQUFHLEdBQUc7UUFFVixLQUFLLEVBQUU7WUFtQkwsSUFBSSxXQUFXO2dCQUNiLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSxZQUFZO2dCQUNkLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQztZQUM3QixDQUFDO1lBQ0QsSUFBSSxTQUFTO2dCQUNYLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztZQUMxQixDQUFDO1lBQ0QsSUFBSSxXQUFXO2dCQUNiLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUM1QixDQUFDO1lBQ0QsSUFBSSxVQUFVO2dCQUNaLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUMzQixDQUFDO1NBQ0Y7UUFHRCxJQUFJLFFBQVE7WUFDVixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksV0FBVztZQUNiLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM1QixDQUFDO1FBR0Q7OztXQUdHO1FBQ0gsS0FBSyxDQUFDLEtBQUs7WUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sa0JBQWtCLENBQUMsSUFBSSxDQUFDO29CQUM1QiwrQkFBK0IsRUFBRSxJQUFJO2lCQUN0QyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsT0FBTyxrQkFBa0IsQ0FBQztRQUM1QixDQUFDO1FBQ0Q7OztXQUdHO1FBQ0gsSUFBSSxTQUFTO1lBQ1gsT0FBTyxrQkFBa0IsQ0FBQztRQUM1QixDQUFDO1FBQ0QsZ0JBQWdCLENBQUksSUFBK0I7WUFDakQsT0FBTyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELFFBQVEsQ0FBSSxJQUErQjtZQUN6QyxNQUFNLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3RCxPQUFPLFFBQWUsQ0FBQztRQWN6QixDQUFDO1FBR0Q7OztXQUdHO1FBQ0gsVUFBVSxFQUFFLEtBQUssRUFBRSxlQUtsQixFQUE0QixFQUFFO1lBQzdCLE9BQU8sTUFBTSxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUNqRCxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ3BCLE1BQU0sa0JBQWtCLENBQUMsSUFBSSxDQUFDO3dCQUM1QixHQUFHLGVBQWU7cUJBQ25CLENBQUMsQ0FBQztvQkFFSCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQzt3QkFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO29CQUM3RCxDQUFDO29CQUVELE1BQU0sa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3hDLE1BQU0sa0JBQWtCLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBRTNDLE1BQU0sa0JBQWtCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFFbEQsTUFBTSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztvQkFPbkUsa0JBQWtCLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3JDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUVqQyxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO29CQUd2QyxNQUFNLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUN2QyxJQUFJLDJCQUEyQixHQUFHLEtBQUssQ0FBQztvQkFFeEMsMkJBQTJCO3dCQUN6QixnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsMkJBQTJCLENBQUM7b0JBR3pELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLDJCQUEyQixFQUFFLENBQUM7d0JBQ25ELENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFOzRCQUMzQixPQUFPLENBQUMsSUFBSSxDQUNWLDBDQUEwQztnQ0FDeEMsWUFBWSxrQkFBa0IsQ0FBQyxXQUFXLElBQUksQ0FDakQsQ0FBQztvQkFDTixDQUFDO3lCQUFNLENBQUM7d0JBQ04sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7NEJBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysc0NBQXNDO2dDQUNwQyxZQUFZLGtCQUFrQixDQUFDLFdBQVcsSUFBSSxDQUNqRCxDQUFDO3dCQUNKLE1BQU0sa0JBQWtCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztvQkFDL0MsQ0FBQztvQkFDRCwrQ0FBK0M7b0JBZS9DLElBQUksa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzt3QkFDeEMsTUFBTSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztvQkFDdkUsQ0FBQzt5QkFBTSxJQUFJLGtCQUFrQixDQUFDLDhCQUE4QixFQUFFLENBQUM7d0JBQzdELE1BQU0sa0JBQWtCLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUM5RCxrQkFBa0IsQ0FBQyw4QkFBOEIsQ0FDbEQsQ0FBQztvQkFDSixDQUFDO3lCQUFNLENBQUM7d0JBQ04sTUFBTSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztvQkFDdkUsQ0FBQztvQkFFRCxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRDs7O1dBR0c7UUFDSCxJQUFJLFFBQVE7WUFDVixPQUFPO2dCQUNMLElBQUksTUFBTTtvQkFDUixPQUFPLGtCQUFrQixDQUFDLGNBQWMsQ0FBQztnQkFDM0MsQ0FBQztnQkFDRCxJQUFJLE1BQU07b0JBQ1IsT0FBTyxrQkFBa0IsQ0FBQyxjQUFjLENBQUM7Z0JBQzNDLENBQUM7YUFDRixDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7SUFDRixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUdELENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsdURBQXVEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgSGVscGVycywgVXRpbHNPcyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBFbmRwb2ludENvbnRleHQgfSBmcm9tICcuL2VuZHBvaW50LWNvbnRleHQnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5pbXBvcnQgeyBFTlYgfSBmcm9tICcuL2Vudic7XG5cbmltcG9ydCB7IFRhb25BZG1pblNlcnZpY2UgfSBmcm9tICcuL3VpL3Rhb24tYWRtaW4tbW9kZS1jb25maWd1cmF0aW9uL3Rhb24tYWRtaW4uc2VydmljZSc7XG5cblxuXG5cblxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ29udGV4dCA9IDxcblxuICBDVFggZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBvYmplY3Q+LFxuICBDVFJMIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgRU5USVRZIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgUkVQTyBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG4gIFBST1ZJREVSIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PixcbiAgU1VCU0NSSUJFUiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG4gIE1JR1JBVElPTiBleHRlbmRzIFJlY29yZDxzdHJpbmcsIG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueT4sXG5cbj4oXG4gIGNvbmZpZ0ZuOiAoXG4gICAgZW52OiBhbnksXG4gICkgPT4gTW9kZWxzLkNvbnRleHRPcHRpb25zPFxuICAgIENUWCxcbiAgICBDVFJMLFxuICAgIEVOVElUWSxcbiAgICBSRVBPLFxuICAgIFBST1ZJREVSLFxuICAgIFNVQlNDUklCRVIsXG4gICAgTUlHUkFUSU9OXG4gID4sXG4pID0+IHtcbiAgbGV0IGNvbmZpZyA9IGNvbmZpZ0ZuKEVOVik7XG5cbiAgY29uc3QgZW5kcG9pbnRDb250ZXh0UmVmID0gbmV3IEVuZHBvaW50Q29udGV4dChjb25maWcsIGNvbmZpZ0ZuKTtcblxuICBjb25zdCByZXMgPSB7XG5cbiAgICB0eXBlczoge1xuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgICAgZ2V0IGNvbnRyb2xsZXJzKCkge1xuICAgICAgICByZXR1cm4gY29uZmlnLmNvbnRyb2xsZXJzO1xuICAgICAgfSxcbiAgICAgIGdldCByZXBvc2l0b3JpZXMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcucmVwb3NpdG9yaWVzO1xuICAgICAgfSxcbiAgICAgIGdldCBwcm92aWRlcnMoKSB7XG4gICAgICAgIHJldHVybiBjb25maWcucHJvdmlkZXJzO1xuICAgICAgfSxcbiAgICAgIGdldCBzdWJzY3JpYmVycygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5zdWJzY3JpYmVycztcbiAgICAgIH0sXG4gICAgICBnZXQgbWlncmF0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5taWdyYXRpb25zO1xuICAgICAgfSxcbiAgICB9LFxuXG5cbiAgICBnZXQgY29udGV4dHMoKSB7XG4gICAgICByZXR1cm4gY29uZmlnLmNvbnRleHRzO1xuICAgIH0sXG4gICAgZ2V0IGNvbnRleHROYW1lKCkge1xuICAgICAgcmV0dXJuIGNvbmZpZy5jb250ZXh0TmFtZTtcbiAgICB9LFxuXG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZFxuICAgICAqIC0gZ2V0IHJlZmVyZW5jZSB0byBpbnRlcm5hbCBjb250ZXh0XG4gICAgICovXG4gICAgYXN5bmMgX19yZWYoKSB7XG4gICAgICBpZiAoIWVuZHBvaW50Q29udGV4dFJlZi5pbml0ZWQpIHtcbiAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXQoe1xuICAgICAgICAgIGluaXRGcm9tUmVjcnVzaXZlQ29udGV4dFJlc292bGU6IHRydWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZjtcbiAgICB9LFxuICAgIC8qKlxuICAgICAqIG9ubHkgZm9yIGludGVybmFsIHVzZVxuICAgICAqIEBkZXByZWNhdGVkXG4gICAgICovXG4gICAgZ2V0IF9fcmVmU3luYygpIHtcbiAgICAgIHJldHVybiBlbmRwb2ludENvbnRleHRSZWY7XG4gICAgfSxcbiAgICBnZXRDbGFzc0luc3RhbmNlPFQ+KGN0b3I6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgICAgIHJldHVybiBlbmRwb2ludENvbnRleHRSZWYuZ2V0SW5zdGFuY2VCeShjdG9yKTtcbiAgICB9LFxuXG4gICAgZ2V0Q2xhc3M8VD4oY3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQge1xuICAgICAgY29uc3QgY2xhc3NGdW4gPSBlbmRwb2ludENvbnRleHRSZWYuZ2V0Q2xhc3NGdW5CeUNsYXNzKGN0b3IpO1xuICAgICAgcmV0dXJuIGNsYXNzRnVuIGFzIGFueTtcblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgIH0sXG5cblxuICAgIC8qKlxuICAgICAqIC0gY3JlYXRlIGNvbnRyb2xsZXIgaW5zdGFuY2VzIGZvciBjb250ZXh0XG4gICAgICogLSBpbml0IGRhdGFiYXNlIChpZiBlbmFibGUpICsgbWlnYXRpb24gc2NyaXB0c1xuICAgICAqL1xuICAgIGluaXRpYWxpemU6IGFzeW5jIChvdmVycmlkZU9wdGlvbnM/OiB7XG4gICAgICBvdmVycmlkZUhvc3Q/OiBzdHJpbmc7XG4gICAgICBvdmVycmlkZVJlbW90ZUhvc3Q/OiBzdHJpbmc7XG4gICAgICBvbmx5TWlncmF0aW9uUnVuPzogYm9vbGVhbjtcbiAgICAgIG9ubHlNaWdyYXRpb25SZXZlcnRUb1RpbWVzdGFtcD86IG51bWJlcjtcbiAgICB9KTogUHJvbWlzZTxFbmRwb2ludENvbnRleHQ+ID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0KHtcbiAgICAgICAgICAgIC4uLm92ZXJyaWRlT3B0aW9ucyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChjb25maWcuYWJzdHJhY3QpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQWJzdHJhY3QgY29udGV4dCBjYW4gbm90IGJlIGluaXRpYWxpemVkYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRFbnRpdGllcygpO1xuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0U3Vic2NyaWJlcnMoKTtcblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0RGF0YWJhc2VDb25uZWN0aW9uKCk7XG5cbiAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLmVuc3VyZU1pZ3JhdGlvblRhYmxlRXhpc3RzKCk7XG5cblxuXG5cblxuXG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLmluaXRDb250cm9sbGVycygpO1xuICAgICAgICAgIGVuZHBvaW50Q29udGV4dFJlZi5zdGFydFNlcnZlcigpO1xuXG4gICAgICAgICAgZW5kcG9pbnRDb250ZXh0UmVmLndyaXRlQWN0aXZlUm91dGVzKCk7XG5cblxuICAgICAgICAgIGF3YWl0IGVuZHBvaW50Q29udGV4dFJlZi5pbml0Q2xhc3NlcygpO1xuICAgICAgICAgIGxldCBrZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQgPSBmYWxzZTtcblxuICAgICAgICAgIGtlZXBXZWJzcWxEYkRhdGFBZnRlclJlbG9hZCA9XG4gICAgICAgICAgICBUYW9uQWRtaW5TZXJ2aWNlLkluc3RhbmNlPy5rZWVwV2Vic3FsRGJEYXRhQWZ0ZXJSZWxvYWQ7XG5cblxuICAgICAgICAgIGlmICghSGVscGVycy5pc05vZGUgJiYga2VlcFdlYnNxbERiRGF0YUFmdGVyUmVsb2FkKSB7XG4gICAgICAgICAgICAhVXRpbHNPcy5pc1J1bm5pbmdJbkNsaU1vZGUoKSAmJlxuICAgICAgICAgICAgICBIZWxwZXJzLmluZm8oXG4gICAgICAgICAgICAgICAgYFt0YW9uXSBLZWVwaW5nIHdlYnNxbCBkYXRhIGFmdGVyIHJlbG9hZCBgICtcbiAgICAgICAgICAgICAgICAgIGAoY29udGV4dD0ke2VuZHBvaW50Q29udGV4dFJlZi5jb250ZXh0TmFtZX0pLmAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICFVdGlsc09zLmlzUnVubmluZ0luQ2xpTW9kZSgpICYmXG4gICAgICAgICAgICAgIEhlbHBlcnMuaW5mbyhcbiAgICAgICAgICAgICAgICBgW3Rhb25dIERyb3BwaW5nIGFsbCB0YWJsZXMgYW5kIGRhdGEgYCArXG4gICAgICAgICAgICAgICAgICBgKGNvbnRleHQ9JHtlbmRwb2ludENvbnRleHRSZWYuY29udGV4dE5hbWV9KS5gLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLnJlaW5pdENvbnRyb2xsZXJzKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vLyNyZWdpb24gVE9ETyB0aGlzIG1heSBiZSB1c2VmdWxsIGJ1dCBmb3Igbm93XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuICAgICAgICAgIGlmIChlbmRwb2ludENvbnRleHRSZWYub25seU1pZ3JhdGlvblJ1bikge1xuICAgICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmRiTWlncmF0aW9ucy5ydW5BbGxOb3RDb21wbGV0ZWRNaWdyYXRpb25zKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChlbmRwb2ludENvbnRleHRSZWYub25seU1pZ3JhdGlvblJldmVydFRvVGltZXN0YW1wKSB7XG4gICAgICAgICAgICBhd2FpdCBlbmRwb2ludENvbnRleHRSZWYuZGJNaWdyYXRpb25zLnJldmVydE1pZ3JhdGlvblRvVGltZXN0YW1wKFxuICAgICAgICAgICAgICBlbmRwb2ludENvbnRleHRSZWYub25seU1pZ3JhdGlvblJldmVydFRvVGltZXN0YW1wLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYXdhaXQgZW5kcG9pbnRDb250ZXh0UmVmLmRiTWlncmF0aW9ucy5ydW5BbGxOb3RDb21wbGV0ZWRNaWdyYXRpb25zKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzb2x2ZShlbmRwb2ludENvbnRleHRSZWYpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiByZWFsdGltZSBjb21tdW5pY2F0aW9uIHdpdGggc2VydmVyXG4gICAgICogVWRwIHNvY2tldC5pbyAob3IgaXBjKSBiYXNlZC5cbiAgICAgKi9cbiAgICBnZXQgcmVhbHRpbWUoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBnZXQgY2xpZW50KCkge1xuICAgICAgICAgIHJldHVybiBlbmRwb2ludENvbnRleHRSZWYucmVhbHRpbWVDbGllbnQ7XG4gICAgICAgIH0sXG4gICAgICAgIGdldCBzZXJ2ZXIoKSB7XG4gICAgICAgICAgcmV0dXJuIGVuZHBvaW50Q29udGV4dFJlZi5yZWFsdGltZVNlcnZlcjtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSxcbiAgfTtcbiAgcmV0dXJuIHJlcztcbn07XG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2NyZWF0ZS1jb250ZXh0LnRzIl19
@@ -1,18 +0,0 @@
1
- import { ClassHelpers } from '../../helpers/class-helpers';
2
- import { Symbols } from '../../symbols';
3
- import { Models } from '../../models';
4
- /**
5
- * Controller decorator
6
- */
7
- export function TaonController(options) {
8
- return function (constructor) {
9
- ClassHelpers.setName(constructor, options?.className);
10
- Reflect.defineMetadata(Symbols.metadata.options.controller, options, constructor);
11
- Reflect.defineMetadata(Symbols.metadata.className, options?.className || constructor.name, constructor);
12
- };
13
- }
14
- export class TaonControllerOptions extends Models.DecoratorAbstractOpt {
15
- }
16
- ;
17
- ({}); // @--end-of-file-for-module=taon lib/decorators/classes/controller-decorator.ts
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlci1kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZGVjb3JhdG9ycy9jbGFzc2VzL2NvbnRyb2xsZXItZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQStCO0lBQzVELE9BQU8sVUFBVSxXQUFxQjtRQUNwQyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEQsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUNuQyxPQUFPLEVBQ1AsV0FBVyxDQUNaLENBQUM7UUFDRixPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDMUIsT0FBTyxFQUFFLFNBQVMsSUFBSSxXQUFXLENBQUMsSUFBSSxFQUN0QyxXQUFXLENBQ1osQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsTUFBTSxDQUFDLG9CQUFvQjtDQVNyRTtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsZ0ZBQWdGIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG4vKipcbiAqIENvbnRyb2xsZXIgZGVjb3JhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBUYW9uQ29udHJvbGxlcihvcHRpb25zPzogVGFvbkNvbnRyb2xsZXJPcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgQ2xhc3NIZWxwZXJzLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5jb250cm9sbGVyLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgVGFvbkNvbnRyb2xsZXJPcHRpb25zIGV4dGVuZHMgTW9kZWxzLkRlY29yYXRvckFic3RyYWN0T3B0IHtcbiAgLyoqXG4gICAqIHR5cGVvcm0gcmVhbHRpbWUgc3Vic2NyaWJ0aW9uIC8vIFRPRE8gZGlzYWJsZWQgZm9yIG5vdywgZG9lcyBub3QgbWFrZSBzZW5zZSA/c1xuICAgKi9cbiAgcmVhbHRpbWU/OiBib29sZWFuO1xuICAvKipcbiAgICogb3ZlcnJpZGUgZGVmYXVsdCBwYXRoIGZvciBjb250cm9sbGVyIGFwaVxuICAgKi9cbiAgcGF0aD86IHN0cmluZztcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9jb250cm9sbGVyLWRlY29yYXRvci50cyJdfQ==
@@ -1,28 +0,0 @@
1
- import { Mapping } from 'ng2-rest/websql';
2
- import { ClassHelpers } from '../../helpers/class-helpers';
3
- import { CLASS } from 'typescript-class-helpers/websql';
4
- import { Symbols } from '../../symbols';
5
- import { _ } from 'tnp-core/websql';
6
- import { Models } from '../../models';
7
- import { Entity as TypeormEntity } from 'taon-typeorm/websql';
8
- /**
9
- * Entity decorator
10
- */
11
- export function TaonEntity(options) {
12
- return function (constructor) {
13
- options = options || {};
14
- options.uniqueKeyProp = options.uniqueKeyProp || 'id';
15
- ClassHelpers.setName(constructor, options?.className);
16
- Mapping.DefaultModelWithMapping(options?.defaultModelValues || {}, _.merge(options?.defaultModelMapping || {}, (options?.defaultModelMappingDeep || {})))(constructor);
17
- Mapping.DefaultModelWithMapping(void 0, {})(constructor);
18
- Reflect.defineMetadata(Symbols.metadata.options.entity, options, constructor);
19
- Reflect.defineMetadata(Symbols.metadata.className, options?.className || constructor.name, constructor);
20
- TypeormEntity(options?.className)(constructor);
21
- CLASS.setName(constructor, options?.className); // TODO QUICK_FIX for ng2-rest
22
- };
23
- }
24
- export class TaonEntityOptions extends Models.DecoratorAbstractOpt {
25
- }
26
- ;
27
- ({}); // @--end-of-file-for-module=taon lib/decorators/classes/entity-decorator.ts
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRlY29yYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9kZWNvcmF0b3JzL2NsYXNzZXMvZW50aXR5LWRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLElBQUksYUFBYSxFQUFRLE1BQU0scUJBQXFCLENBQUM7QUFHcEU7O0dBRUc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFVLE9BQThCO0lBQ2hFLE9BQU8sVUFBVSxXQUFxQjtRQUNwQyxPQUFPLEdBQUcsT0FBTyxJQUFLLEVBQVUsQ0FBQztRQUNqQyxPQUFPLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUssSUFBWSxDQUFDO1FBQy9ELFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV0RCxPQUFPLENBQUMsdUJBQXVCLENBQzdCLE9BQU8sRUFBRSxrQkFBa0IsSUFBSSxFQUFFLEVBQ2pDLENBQUMsQ0FBQyxLQUFLLENBQ0wsT0FBTyxFQUFFLG1CQUFtQixJQUFJLEVBQUUsRUFDbEMsQ0FBQyxPQUFPLEVBQUUsdUJBQXVCLElBQUksRUFBRSxDQUFRLENBQ2hELENBQ0YsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUdmLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBSSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1RCxPQUFPLENBQUMsY0FBYyxDQUNwQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQy9CLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztRQUNGLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUMxQixPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQ3RDLFdBQVcsQ0FDWixDQUFDO1FBRUYsYUFBYSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyw4QkFBOEI7SUFDaEYsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sT0FBTyxpQkFBMkIsU0FBUSxNQUFNLENBQUMsb0JBQW9CO0NBVTFFO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0RUFBNEUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgTWFwcGluZyB9IGZyb20gJ25nMi1yZXN0L3dlYnNxbCc7XG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi8uLi9zeW1ib2xzJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuaW1wb3J0IHsgRW50aXR5IGFzIFR5cGVvcm1FbnRpdHksIFRyZWUgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJztcblxuXG4vKipcbiAqIEVudGl0eSBkZWNvcmF0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRhb25FbnRpdHk8VCA9IGFueT4ob3B0aW9ucz86IFRhb25FbnRpdHlPcHRpb25zPFQ+KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwgKHt9IGFzIGFueSk7XG4gICAgb3B0aW9ucy51bmlxdWVLZXlQcm9wID0gb3B0aW9ucy51bmlxdWVLZXlQcm9wIHx8ICgnaWQnIGFzIGFueSk7XG4gICAgQ2xhc3NIZWxwZXJzLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7XG5cbiAgICBNYXBwaW5nLkRlZmF1bHRNb2RlbFdpdGhNYXBwaW5nPFQ+KFxuICAgICAgb3B0aW9ucz8uZGVmYXVsdE1vZGVsVmFsdWVzIHx8IHt9LFxuICAgICAgXy5tZXJnZShcbiAgICAgICAgb3B0aW9ucz8uZGVmYXVsdE1vZGVsTWFwcGluZyB8fCB7fSxcbiAgICAgICAgKG9wdGlvbnM/LmRlZmF1bHRNb2RlbE1hcHBpbmdEZWVwIHx8IHt9KSBhcyBhbnksXG4gICAgICApLFxuICAgICkoY29uc3RydWN0b3IpO1xuXG5cbiAgICBNYXBwaW5nLkRlZmF1bHRNb2RlbFdpdGhNYXBwaW5nPFQ+KHZvaWQgMCwge30pKGNvbnN0cnVjdG9yKTtcblxuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLm9wdGlvbnMuZW50aXR5LFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNvbnN0cnVjdG9yLFxuICAgICk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEuY2xhc3NOYW1lLFxuICAgICAgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuXG4gICAgVHlwZW9ybUVudGl0eShvcHRpb25zPy5jbGFzc05hbWUpKGNvbnN0cnVjdG9yKTtcblxuICAgIENMQVNTLnNldE5hbWUoY29uc3RydWN0b3IsIG9wdGlvbnM/LmNsYXNzTmFtZSk7IC8vIFRPRE8gUVVJQ0tfRklYIGZvciBuZzItcmVzdFxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgVGFvbkVudGl0eU9wdGlvbnM8VCA9IGFueT4gZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuICAvKipcbiAgICogZGVmYXVsdCB1bmlxdWUgcHJvcGVydHkgaXMgXCJpZFwiXG4gICAqIGZvciB5b3VyIGVudGl0eSBpdCBtYXkgYmUgc29tZXRoaW5nIGVsc2VcbiAgICovXG4gIHVuaXF1ZUtleVByb3A/OiBzdHJpbmc7XG4gIGNyZWF0ZVRhYmxlPzogYm9vbGVhbjtcbiAgZGVmYXVsdE1vZGVsVmFsdWVzPzogTWFwcGluZy5Nb2RlbFZhbHVlPFQ+O1xuICBkZWZhdWx0TW9kZWxNYXBwaW5nPzogTWFwcGluZy5NYXBwaW5nPFQ+O1xuICBkZWZhdWx0TW9kZWxNYXBwaW5nRGVlcD86IHsgW2xvZGFzaFBhdGhlczogc3RyaW5nXTogc3RyaW5nIHwgW3N0cmluZ10gfTtcbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9lbnRpdHktZGVjb3JhdG9yLnRzIl19
@@ -1,18 +0,0 @@
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,18 +0,0 @@
1
- import { ClassHelpers } from '../../helpers/class-helpers';
2
- import { Symbols } from '../../symbols';
3
- import { Models } from '../../models';
4
- /**
5
- * Provider decorator
6
- */
7
- export function TaonProvider(options) {
8
- return function (constructor) {
9
- Reflect.defineMetadata(Symbols.metadata.options.provider, options, constructor);
10
- Reflect.defineMetadata(Symbols.metadata.className, options?.className || constructor.name, constructor);
11
- ClassHelpers.setName(constructor, options?.className || constructor.name);
12
- };
13
- }
14
- export class TaonProviderOptions extends Models.DecoratorAbstractOpt {
15
- }
16
- ;
17
- ({}); // @--end-of-file-for-module=taon lib/decorators/classes/provider-decorator.ts
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2RlY29yYXRvcnMvY2xhc3Nlcy9wcm92aWRlci1kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV0Qzs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQVUsT0FBZ0M7SUFDcEUsT0FBTyxVQUFVLFdBQXFCO1FBQ3BDLE9BQU8sQ0FBQyxjQUFjLENBQ3BCLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFDakMsT0FBTyxFQUNQLFdBQVcsQ0FDWixDQUFDO1FBQ0YsT0FBTyxDQUFDLGNBQWMsQ0FDcEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQzFCLE9BQU8sRUFBRSxTQUFTLElBQUksV0FBVyxDQUFDLElBQUksRUFDdEMsV0FBVyxDQUNaLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1RSxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxPQUFPLG1CQUVYLFNBQVEsTUFBTSxDQUFDLG9CQUFvQjtDQUVwQztBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEVBQThFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG4vKipcbiAqIFByb3ZpZGVyIGRlY29yYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gVGFvblByb3ZpZGVyPFQgPSBhbnk+KG9wdGlvbnM/OiBUYW9uUHJvdmlkZXJPcHRpb25zPFQ+KSB7XG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IEZ1bmN0aW9uKSB7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5wcm92aWRlcixcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjb25zdHJ1Y3RvcixcbiAgICApO1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoXG4gICAgICBTeW1ib2xzLm1ldGFkYXRhLmNsYXNzTmFtZSxcbiAgICAgIG9wdGlvbnM/LmNsYXNzTmFtZSB8fCBjb25zdHJ1Y3Rvci5uYW1lLFxuICAgICAgY29uc3RydWN0b3IsXG4gICAgKTtcbiAgICBDbGFzc0hlbHBlcnMuc2V0TmFtZShjb25zdHJ1Y3Rvciwgb3B0aW9ucz8uY2xhc3NOYW1lIHx8IGNvbnN0cnVjdG9yLm5hbWUpO1xuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgVGFvblByb3ZpZGVyT3B0aW9uczxcbiAgVCA9IGFueSxcbj4gZXh0ZW5kcyBNb2RlbHMuRGVjb3JhdG9yQWJzdHJhY3RPcHQge1xuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9kZWNvcmF0b3JzL2NsYXNzZXMvcHJvdmlkZXItZGVjb3JhdG9yLnRzIl19