taon 18.0.34 → 19.0.1

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 (413) hide show
  1. package/README.md +175 -175
  2. package/assets/shared/shared_folder_info.txt +1 -1
  3. package/bin/start.js +279 -279
  4. package/bin/taon +6 -6
  5. package/bin/taon-debug +5 -5
  6. package/bin/taon-debug-brk +5 -5
  7. package/browser/README.md +24 -24
  8. package/browser/fesm2022/taon.mjs +68 -85
  9. package/browser/fesm2022/taon.mjs.map +1 -1
  10. package/browser/lib/base-classes/base-context.d.ts +6 -6
  11. package/browser/lib/base-classes/base.d.ts +6 -6
  12. package/browser/lib/index.d.ts +6 -32
  13. package/browser/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +1 -3
  14. package/browser/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +1 -2
  15. package/cli.js.map +1 -1
  16. package/client/README.md +24 -24
  17. package/client/fesm2022/taon.mjs +68 -85
  18. package/client/fesm2022/taon.mjs.map +1 -1
  19. package/client/lib/base-classes/base-context.d.ts +6 -6
  20. package/client/lib/base-classes/base.d.ts +6 -6
  21. package/client/lib/index.d.ts +6 -32
  22. package/client/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +1 -3
  23. package/client/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +1 -2
  24. package/index.js.map +1 -1
  25. package/lib/base-classes/base-abstract-entity.js.map +1 -1
  26. package/lib/base-classes/base-class.js.map +1 -1
  27. package/lib/base-classes/base-context.d.ts +6 -6
  28. package/lib/base-classes/base-context.js.map +1 -1
  29. package/lib/base-classes/base-controller.js.map +1 -1
  30. package/lib/base-classes/base-crud-controller.js.map +1 -1
  31. package/lib/base-classes/base-entity.js.map +1 -1
  32. package/lib/base-classes/base-injector.js.map +1 -1
  33. package/lib/base-classes/base-migration.js.map +1 -1
  34. package/lib/base-classes/base-provider.js.map +1 -1
  35. package/lib/base-classes/base-repository.js.map +1 -1
  36. package/lib/base-classes/base-subscriber-for-entity.js.map +1 -1
  37. package/lib/base-classes/base-subscriber.d.ts +4 -0
  38. package/lib/base-classes/base-subscriber.js +25 -0
  39. package/lib/base-classes/base-subscriber.js.map +1 -0
  40. package/lib/base-classes/base.d.ts +6 -6
  41. package/lib/base-classes/base.js.map +1 -1
  42. package/lib/build-info._auto-generated_.js.map +1 -1
  43. package/lib/constants.js.map +1 -1
  44. package/lib/context-db-migrations.js.map +1 -1
  45. package/lib/create-context.js.map +1 -1
  46. package/lib/decorators/classes/controller-decorator.js.map +1 -1
  47. package/lib/decorators/classes/entity-decorator.js.map +1 -1
  48. package/lib/decorators/classes/migration-decorator.js.map +1 -1
  49. package/lib/decorators/classes/provider-decorator.js.map +1 -1
  50. package/lib/decorators/classes/repository-decorator.js.map +1 -1
  51. package/lib/decorators/classes/subscriber-decorator.js.map +1 -1
  52. package/lib/decorators/http/http-decorators.js.map +1 -1
  53. package/lib/decorators/http/http-methods-decorators.js.map +1 -1
  54. package/lib/decorators/http/http-params-decorators.js.map +1 -1
  55. package/lib/dependency-injection/di-container.js.map +1 -1
  56. package/lib/endpoint-context.js.map +1 -1
  57. package/lib/entity-process.js.map +1 -1
  58. package/lib/env.js.map +1 -1
  59. package/lib/formly/formly-group-wrapper-component.js +1 -0
  60. package/lib/formly/formly-group-wrapper-component.js.map +1 -1
  61. package/lib/formly/formly-repeat-component.js +1 -0
  62. package/lib/formly/formly-repeat-component.js.map +1 -1
  63. package/lib/formly/formly.models.js.map +1 -1
  64. package/lib/formly/fromly.js.map +1 -1
  65. package/lib/formly/type-from-entity.js.map +1 -1
  66. package/lib/get-response-value.js.map +1 -1
  67. package/lib/helpers/class-helpers.js +2 -2
  68. package/lib/helpers/class-helpers.js.map +1 -1
  69. package/lib/helpers/taon-helpers.js.map +1 -1
  70. package/lib/index._auto-generated_.js.map +1 -1
  71. package/lib/index.d.ts +6 -32
  72. package/lib/index.js.map +1 -1
  73. package/lib/inject.js.map +1 -1
  74. package/lib/models.js.map +1 -1
  75. package/lib/orm.js.map +1 -1
  76. package/lib/realtime/realtime-client.js.map +1 -1
  77. package/lib/realtime/realtime-core.js.map +1 -1
  78. package/lib/realtime/realtime-server.js.map +1 -1
  79. package/lib/realtime/realtime-strategy/index.js.map +1 -1
  80. package/lib/realtime/realtime-strategy/realtime-abstract-mock.d.ts +10 -0
  81. package/lib/realtime/realtime-strategy/realtime-abstract-mock.js +214 -0
  82. package/lib/realtime/realtime-strategy/realtime-abstract-mock.js.map +1 -0
  83. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.d.ts +0 -0
  84. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js +5 -0
  85. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js.map +1 -0
  86. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +22 -0
  87. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js +139 -0
  88. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js.map +1 -0
  89. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +16 -0
  90. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js +68 -0
  91. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js.map +1 -0
  92. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +10 -0
  93. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js +56 -0
  94. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js.map +1 -0
  95. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +10 -0
  96. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js +50 -0
  97. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js.map +1 -0
  98. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +13 -0
  99. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js +3 -0
  100. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js.map +1 -0
  101. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js.map +1 -1
  102. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +2 -0
  103. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js +6 -0
  104. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js.map +1 -0
  105. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +16 -0
  106. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js +54 -0
  107. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js.map +1 -0
  108. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +17 -0
  109. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js +52 -0
  110. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js.map +1 -0
  111. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +11 -0
  112. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js +39 -0
  113. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js.map +1 -0
  114. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +13 -0
  115. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js +46 -0
  116. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js.map +1 -0
  117. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +11 -0
  118. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js +3 -0
  119. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js.map +1 -0
  120. package/lib/realtime/realtime-strategy/realtime-strategy-mock.js.map +1 -1
  121. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js.map +1 -1
  122. package/lib/realtime/realtime-strategy/realtime-strategy.js.map +1 -1
  123. package/lib/realtime/realtime-subs-manager.js.map +1 -1
  124. package/lib/realtime/realtime.models.js.map +1 -1
  125. package/lib/storage.js.map +1 -1
  126. package/lib/symbols.js.map +1 -1
  127. package/lib/ui/directives/firedev-inject-html.directive.d.ts +6 -0
  128. package/lib/ui/directives/firedev-long-press.directive.d.ts +22 -0
  129. package/lib/ui/directives/index.js +2 -2
  130. package/lib/ui/directives/index.js.map +1 -1
  131. package/lib/ui/directives/view-mode.js.map +1 -1
  132. package/lib/ui/index.js +2 -2
  133. package/lib/ui/index.js.map +1 -1
  134. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +2 -0
  135. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +5 -0
  136. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js.map +1 -0
  137. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +29 -0
  138. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +2 -0
  139. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.d.ts +1 -0
  140. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +5 -0
  141. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js.map +1 -0
  142. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/taon-db-admin.component.d.ts +8 -0
  143. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +2 -0
  144. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +5 -0
  145. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js.map +1 -0
  146. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +13 -0
  147. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +2 -0
  148. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  149. package/lib/ui/taon-admin-mode-configuration/index.js.map +1 -1
  150. package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.d.ts +5 -0
  151. package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js +3 -0
  152. package/lib/ui/taon-admin-mode-configuration/models/taon-admin-mode-tabs.js.map +1 -0
  153. package/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.d.ts +14 -0
  154. package/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +2 -0
  155. package/lib/ui/taon-admin-mode-configuration/taon-admin.models.js.map +1 -1
  156. package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
  157. package/lib/ui/taon-github-fork-me-corner/index.js.map +1 -1
  158. package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
  159. package/lib/ui/taon-github-fork-me-ribbon/index.js.map +1 -1
  160. package/lib/ui/taon-notifications/index.js.map +1 -1
  161. package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
  162. package/lib/ui/taon-notifications/taon-notifications.models.js.map +1 -1
  163. package/lib/ui/taon-progress-bar/index.js +2 -2
  164. package/lib/ui/taon-progress-bar/index.js.map +1 -1
  165. package/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +1 -3
  166. package/lib/ui/taon-session-passcode/index.js +2 -2
  167. package/lib/ui/taon-session-passcode/index.js.map +1 -1
  168. package/lib/ui/taon-table/index.js +2 -2
  169. package/lib/ui/taon-table/index.js.map +1 -1
  170. package/lib/ui/taon.models.js.map +1 -1
  171. package/lib/ui/toan-full-material.module.d.ts +2 -0
  172. package/lib/validators.js.map +1 -1
  173. package/migrations/index.js.map +1 -1
  174. package/migrations/migrations_index._auto-generated_.js.map +1 -1
  175. package/old-app .js +1 -0
  176. package/old-app .js.map +1 -1
  177. package/package.json +8 -8
  178. package/playground.js.map +1 -1
  179. package/taon.jsonc +39 -39
  180. package/tmp-environment.json +2 -2
  181. package/websql/README.md +24 -24
  182. package/websql/fesm2022/taon.mjs +68 -85
  183. package/websql/fesm2022/taon.mjs.map +1 -1
  184. package/websql/lib/base-classes/base-context.d.ts +6 -6
  185. package/websql/lib/base-classes/base.d.ts +6 -6
  186. package/websql/lib/index.d.ts +6 -32
  187. package/websql/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +1 -3
  188. package/websql/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +1 -2
  189. package/browser/esm2022/lib/base-classes/base-abstract-entity.mjs +0 -18
  190. package/browser/esm2022/lib/base-classes/base-class.mjs +0 -17
  191. package/browser/esm2022/lib/base-classes/base-context.mjs +0 -14
  192. package/browser/esm2022/lib/base-classes/base-controller.mjs +0 -19
  193. package/browser/esm2022/lib/base-classes/base-crud-controller.mjs +0 -279
  194. package/browser/esm2022/lib/base-classes/base-entity.mjs +0 -18
  195. package/browser/esm2022/lib/base-classes/base-injector.mjs +0 -167
  196. package/browser/esm2022/lib/base-classes/base-migration.mjs +0 -23
  197. package/browser/esm2022/lib/base-classes/base-provider.mjs +0 -6
  198. package/browser/esm2022/lib/base-classes/base-repository.mjs +0 -514
  199. package/browser/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +0 -156
  200. package/browser/esm2022/lib/base-classes/base.mjs +0 -26
  201. package/browser/esm2022/lib/constants.mjs +0 -4
  202. package/browser/esm2022/lib/context-db-migrations.mjs +0 -425
  203. package/browser/esm2022/lib/create-context.mjs +0 -127
  204. package/browser/esm2022/lib/decorators/classes/controller-decorator.mjs +0 -18
  205. package/browser/esm2022/lib/decorators/classes/entity-decorator.mjs +0 -30
  206. package/browser/esm2022/lib/decorators/classes/migration-decorator.mjs +0 -18
  207. package/browser/esm2022/lib/decorators/classes/provider-decorator.mjs +0 -18
  208. package/browser/esm2022/lib/decorators/classes/repository-decorator.mjs +0 -18
  209. package/browser/esm2022/lib/decorators/classes/subscriber-decorator.mjs +0 -18
  210. package/browser/esm2022/lib/decorators/http/http-decorators.mjs +0 -24
  211. package/browser/esm2022/lib/decorators/http/http-methods-decorators.mjs +0 -78
  212. package/browser/esm2022/lib/decorators/http/http-params-decorators.mjs +0 -47
  213. package/browser/esm2022/lib/dependency-injection/di-container.mjs +0 -32
  214. package/browser/esm2022/lib/endpoint-context.mjs +0 -1705
  215. package/browser/esm2022/lib/entity-process.mjs +0 -198
  216. package/browser/esm2022/lib/env.mjs +0 -6
  217. package/browser/esm2022/lib/get-response-value.mjs +0 -27
  218. package/browser/esm2022/lib/helpers/class-helpers.mjs +0 -183
  219. package/browser/esm2022/lib/helpers/taon-helpers.mjs +0 -120
  220. package/browser/esm2022/lib/index.mjs +0 -70
  221. package/browser/esm2022/lib/inject.mjs +0 -36
  222. package/browser/esm2022/lib/models.mjs +0 -106
  223. package/browser/esm2022/lib/orm.mjs +0 -6
  224. package/browser/esm2022/lib/realtime/realtime-client.mjs +0 -141
  225. package/browser/esm2022/lib/realtime/realtime-core.mjs +0 -62
  226. package/browser/esm2022/lib/realtime/realtime-server.mjs +0 -292
  227. package/browser/esm2022/lib/realtime/realtime-strategy/index.mjs +0 -7
  228. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +0 -218
  229. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +0 -224
  230. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +0 -29
  231. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +0 -14
  232. package/browser/esm2022/lib/realtime/realtime-subs-manager.mjs +0 -81
  233. package/browser/esm2022/lib/realtime/realtime.models.mjs +0 -4
  234. package/browser/esm2022/lib/storage.mjs +0 -5
  235. package/browser/esm2022/lib/symbols.mjs +0 -97
  236. package/browser/esm2022/lib/ui/directives/index.mjs +0 -6
  237. package/browser/esm2022/lib/ui/directives/safe.pipe.mjs +0 -43
  238. package/browser/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +0 -24
  239. package/browser/esm2022/lib/ui/directives/taon-long-press.directive.mjs +0 -120
  240. package/browser/esm2022/lib/ui/index.mjs +0 -12
  241. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +0 -4
  242. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +0 -194
  243. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +0 -55
  244. package/browser/esm2022/lib/ui/taon-full-material.module.mjs +0 -179
  245. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +0 -5
  246. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +0 -18
  247. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +0 -21
  248. package/browser/esm2022/lib/ui/taon-notifications/index.mjs +0 -7
  249. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +0 -25
  250. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +0 -5
  251. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +0 -21
  252. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +0 -48
  253. package/browser/esm2022/lib/ui/taon-progress-bar/index.mjs +0 -5
  254. package/browser/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +0 -98
  255. package/browser/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +0 -22
  256. package/browser/esm2022/lib/ui/taon-session-passcode/index.mjs +0 -4
  257. package/browser/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +0 -120
  258. package/browser/esm2022/lib/ui/taon-table/index.mjs +0 -5
  259. package/browser/esm2022/lib/ui/taon-table/taon-table.component.mjs +0 -160
  260. package/browser/esm2022/lib/ui/taon-table/taon-table.module.mjs +0 -57
  261. package/browser/esm2022/lib/validators.mjs +0 -76
  262. package/browser/esm2022/public-api.mjs +0 -2
  263. package/browser/esm2022/taon.mjs +0 -5
  264. package/client/esm2022/lib/base-classes/base-abstract-entity.mjs +0 -18
  265. package/client/esm2022/lib/base-classes/base-class.mjs +0 -17
  266. package/client/esm2022/lib/base-classes/base-context.mjs +0 -14
  267. package/client/esm2022/lib/base-classes/base-controller.mjs +0 -19
  268. package/client/esm2022/lib/base-classes/base-crud-controller.mjs +0 -279
  269. package/client/esm2022/lib/base-classes/base-entity.mjs +0 -18
  270. package/client/esm2022/lib/base-classes/base-injector.mjs +0 -167
  271. package/client/esm2022/lib/base-classes/base-migration.mjs +0 -23
  272. package/client/esm2022/lib/base-classes/base-provider.mjs +0 -6
  273. package/client/esm2022/lib/base-classes/base-repository.mjs +0 -514
  274. package/client/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +0 -156
  275. package/client/esm2022/lib/base-classes/base.mjs +0 -26
  276. package/client/esm2022/lib/constants.mjs +0 -4
  277. package/client/esm2022/lib/context-db-migrations.mjs +0 -425
  278. package/client/esm2022/lib/create-context.mjs +0 -127
  279. package/client/esm2022/lib/decorators/classes/controller-decorator.mjs +0 -18
  280. package/client/esm2022/lib/decorators/classes/entity-decorator.mjs +0 -30
  281. package/client/esm2022/lib/decorators/classes/migration-decorator.mjs +0 -18
  282. package/client/esm2022/lib/decorators/classes/provider-decorator.mjs +0 -18
  283. package/client/esm2022/lib/decorators/classes/repository-decorator.mjs +0 -18
  284. package/client/esm2022/lib/decorators/classes/subscriber-decorator.mjs +0 -18
  285. package/client/esm2022/lib/decorators/http/http-decorators.mjs +0 -24
  286. package/client/esm2022/lib/decorators/http/http-methods-decorators.mjs +0 -78
  287. package/client/esm2022/lib/decorators/http/http-params-decorators.mjs +0 -47
  288. package/client/esm2022/lib/dependency-injection/di-container.mjs +0 -32
  289. package/client/esm2022/lib/endpoint-context.mjs +0 -1705
  290. package/client/esm2022/lib/entity-process.mjs +0 -198
  291. package/client/esm2022/lib/env.mjs +0 -6
  292. package/client/esm2022/lib/get-response-value.mjs +0 -27
  293. package/client/esm2022/lib/helpers/class-helpers.mjs +0 -183
  294. package/client/esm2022/lib/helpers/taon-helpers.mjs +0 -120
  295. package/client/esm2022/lib/index.mjs +0 -70
  296. package/client/esm2022/lib/inject.mjs +0 -36
  297. package/client/esm2022/lib/models.mjs +0 -106
  298. package/client/esm2022/lib/orm.mjs +0 -6
  299. package/client/esm2022/lib/realtime/realtime-client.mjs +0 -141
  300. package/client/esm2022/lib/realtime/realtime-core.mjs +0 -62
  301. package/client/esm2022/lib/realtime/realtime-server.mjs +0 -292
  302. package/client/esm2022/lib/realtime/realtime-strategy/index.mjs +0 -7
  303. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +0 -218
  304. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +0 -224
  305. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +0 -29
  306. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +0 -14
  307. package/client/esm2022/lib/realtime/realtime-subs-manager.mjs +0 -81
  308. package/client/esm2022/lib/realtime/realtime.models.mjs +0 -4
  309. package/client/esm2022/lib/storage.mjs +0 -5
  310. package/client/esm2022/lib/symbols.mjs +0 -97
  311. package/client/esm2022/lib/ui/directives/index.mjs +0 -6
  312. package/client/esm2022/lib/ui/directives/safe.pipe.mjs +0 -43
  313. package/client/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +0 -24
  314. package/client/esm2022/lib/ui/directives/taon-long-press.directive.mjs +0 -120
  315. package/client/esm2022/lib/ui/index.mjs +0 -12
  316. package/client/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +0 -4
  317. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +0 -194
  318. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +0 -55
  319. package/client/esm2022/lib/ui/taon-full-material.module.mjs +0 -179
  320. package/client/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +0 -5
  321. package/client/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +0 -18
  322. package/client/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +0 -21
  323. package/client/esm2022/lib/ui/taon-notifications/index.mjs +0 -7
  324. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +0 -25
  325. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +0 -5
  326. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +0 -21
  327. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +0 -48
  328. package/client/esm2022/lib/ui/taon-progress-bar/index.mjs +0 -5
  329. package/client/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +0 -98
  330. package/client/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +0 -22
  331. package/client/esm2022/lib/ui/taon-session-passcode/index.mjs +0 -4
  332. package/client/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +0 -120
  333. package/client/esm2022/lib/ui/taon-table/index.mjs +0 -5
  334. package/client/esm2022/lib/ui/taon-table/taon-table.component.mjs +0 -160
  335. package/client/esm2022/lib/ui/taon-table/taon-table.module.mjs +0 -57
  336. package/client/esm2022/lib/validators.mjs +0 -76
  337. package/client/esm2022/public-api.mjs +0 -2
  338. package/client/esm2022/taon.mjs +0 -5
  339. package/websql/esm2022/lib/base-classes/base-abstract-entity.mjs +0 -25
  340. package/websql/esm2022/lib/base-classes/base-class.mjs +0 -17
  341. package/websql/esm2022/lib/base-classes/base-context.mjs +0 -14
  342. package/websql/esm2022/lib/base-classes/base-controller.mjs +0 -19
  343. package/websql/esm2022/lib/base-classes/base-crud-controller.mjs +0 -238
  344. package/websql/esm2022/lib/base-classes/base-entity.mjs +0 -16
  345. package/websql/esm2022/lib/base-classes/base-injector.mjs +0 -167
  346. package/websql/esm2022/lib/base-classes/base-migration.mjs +0 -23
  347. package/websql/esm2022/lib/base-classes/base-provider.mjs +0 -6
  348. package/websql/esm2022/lib/base-classes/base-repository.mjs +0 -431
  349. package/websql/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +0 -156
  350. package/websql/esm2022/lib/base-classes/base.mjs +0 -26
  351. package/websql/esm2022/lib/constants.mjs +0 -4
  352. package/websql/esm2022/lib/context-db-migrations.mjs +0 -274
  353. package/websql/esm2022/lib/create-context.mjs +0 -126
  354. package/websql/esm2022/lib/decorators/classes/controller-decorator.mjs +0 -18
  355. package/websql/esm2022/lib/decorators/classes/entity-decorator.mjs +0 -28
  356. package/websql/esm2022/lib/decorators/classes/migration-decorator.mjs +0 -18
  357. package/websql/esm2022/lib/decorators/classes/provider-decorator.mjs +0 -18
  358. package/websql/esm2022/lib/decorators/classes/repository-decorator.mjs +0 -18
  359. package/websql/esm2022/lib/decorators/classes/subscriber-decorator.mjs +0 -18
  360. package/websql/esm2022/lib/decorators/http/http-decorators.mjs +0 -24
  361. package/websql/esm2022/lib/decorators/http/http-methods-decorators.mjs +0 -78
  362. package/websql/esm2022/lib/decorators/http/http-params-decorators.mjs +0 -47
  363. package/websql/esm2022/lib/dependency-injection/di-container.mjs +0 -32
  364. package/websql/esm2022/lib/endpoint-context.mjs +0 -1586
  365. package/websql/esm2022/lib/entity-process.mjs +0 -198
  366. package/websql/esm2022/lib/env.mjs +0 -6
  367. package/websql/esm2022/lib/get-response-value.mjs +0 -25
  368. package/websql/esm2022/lib/helpers/class-helpers.mjs +0 -183
  369. package/websql/esm2022/lib/helpers/taon-helpers.mjs +0 -120
  370. package/websql/esm2022/lib/index.mjs +0 -72
  371. package/websql/esm2022/lib/inject.mjs +0 -36
  372. package/websql/esm2022/lib/models.mjs +0 -97
  373. package/websql/esm2022/lib/orm.mjs +0 -65
  374. package/websql/esm2022/lib/realtime/realtime-client.mjs +0 -141
  375. package/websql/esm2022/lib/realtime/realtime-core.mjs +0 -62
  376. package/websql/esm2022/lib/realtime/realtime-server.mjs +0 -176
  377. package/websql/esm2022/lib/realtime/realtime-strategy/index.mjs +0 -7
  378. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +0 -218
  379. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +0 -224
  380. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +0 -29
  381. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +0 -14
  382. package/websql/esm2022/lib/realtime/realtime-subs-manager.mjs +0 -81
  383. package/websql/esm2022/lib/realtime/realtime.models.mjs +0 -4
  384. package/websql/esm2022/lib/storage.mjs +0 -5
  385. package/websql/esm2022/lib/symbols.mjs +0 -97
  386. package/websql/esm2022/lib/ui/directives/index.mjs +0 -6
  387. package/websql/esm2022/lib/ui/directives/safe.pipe.mjs +0 -43
  388. package/websql/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +0 -24
  389. package/websql/esm2022/lib/ui/directives/taon-long-press.directive.mjs +0 -120
  390. package/websql/esm2022/lib/ui/index.mjs +0 -12
  391. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +0 -4
  392. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +0 -194
  393. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin.service.mjs +0 -55
  394. package/websql/esm2022/lib/ui/taon-full-material.module.mjs +0 -179
  395. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +0 -5
  396. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +0 -18
  397. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +0 -21
  398. package/websql/esm2022/lib/ui/taon-notifications/index.mjs +0 -7
  399. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +0 -25
  400. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +0 -5
  401. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +0 -21
  402. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +0 -48
  403. package/websql/esm2022/lib/ui/taon-progress-bar/index.mjs +0 -5
  404. package/websql/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +0 -50
  405. package/websql/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +0 -22
  406. package/websql/esm2022/lib/ui/taon-session-passcode/index.mjs +0 -4
  407. package/websql/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +0 -120
  408. package/websql/esm2022/lib/ui/taon-table/index.mjs +0 -5
  409. package/websql/esm2022/lib/ui/taon-table/taon-table.component.mjs +0 -160
  410. package/websql/esm2022/lib/ui/taon-table/taon-table.module.mjs +0 -57
  411. package/websql/esm2022/lib/validators.mjs +0 -76
  412. package/websql/esm2022/public-api.mjs +0 -2
  413. package/websql/esm2022/taon.mjs +0 -5
@@ -1,238 +0,0 @@
1
- import { __decorate, __metadata, __param } from "tslib";
2
- import { Symbols } from '../symbols';
3
- import { BaseController } from './base-controller';
4
- import { GET, PUT, DELETE, POST, PATCH, } from '../decorators/http/http-methods-decorators'; /* */
5
- /* */
6
- /* */
7
- /* */
8
- /* */
9
- /* */
10
- /* */
11
- import { Query, Path, Body } from '../decorators/http/http-params-decorators';
12
- import { Models } from '../models';
13
- import { Helpers, _ } from 'tnp-core/websql';
14
- import { TaonController, } from '../decorators/classes/controller-decorator'; /* */
15
- /* */
16
- /* */
17
- import { ClassHelpers } from '../helpers/class-helpers';
18
- import { Validators } from '../validators';
19
- /**
20
- * Please override property entityClassFn with entity class.
21
- */
22
- let BaseCrudController = class BaseCrudController extends BaseController {
23
- async _() {
24
- if (!_.isFunction(this.entityClassResolveFn)) {
25
- Helpers.warn(`Skipping initing CRUD controller ${ClassHelpers.getName(this)} because entityClassResolveFn is not provided.`);
26
- return;
27
- }
28
- let entityClassFn = this.entityClassResolveFn();
29
- this.db = this.injectRepo(entityClassFn);
30
- if (entityClassFn) {
31
- const configEntity = Reflect.getMetadata(Symbols.metadata.options.entity, ClassHelpers.getClassFnFromObject(this));
32
- if (configEntity?.createTable === false) {
33
- Helpers.warn(`Table for entity ${ClassHelpers.getName(entityClassFn)} will not be created. Crud will not work properly.`);
34
- }
35
- }
36
- else {
37
- Helpers.error(`Entity class not provided for controller ${ClassHelpers.getName(this)}.
38
-
39
- Please provide entity as class propery entityClassFn:
40
-
41
- class ${ClassHelpers.getName(this)} extends BaseCrudController<Entity> {
42
-
43
- entityClassResolveFn = ()=> MyEntityClass;
44
-
45
- }
46
-
47
- `);
48
- }
49
- await super._();
50
- }
51
- bufforedChanges(id, property, alreadyLength) {
52
- return async (request, response) => {
53
- const model = await this.db.getBy(id);
54
- if (model === void 0) {
55
- return;
56
- }
57
- Validators.preventUndefinedModel(model, id);
58
- let value = model[property];
59
- let result;
60
- if (_.isString(value) || _.isArray(value)) {
61
- result = value.slice(alreadyLength);
62
- }
63
- return result;
64
- };
65
- }
66
- pagination(pageNumber = 1, pageSize = 10, search = '') {
67
- return async (request, response) => {
68
- if (this.db.repositoryExists) {
69
- const query = {
70
- page: pageNumber,
71
- take: pageSize,
72
- keyword: search,
73
- };
74
- const take = query.take || 10;
75
- const page = query.page || 1;
76
- const skip = (page - 1) * take;
77
- const keyword = query.keyword || '';
78
- const [result, total] = await this.db.findAndCount({
79
- take: take,
80
- skip: skip,
81
- });
82
- response?.setHeader(Symbols.old.X_TOTAL_COUNT, total);
83
- return result;
84
- }
85
- return [];
86
- };
87
- }
88
- getAll() {
89
- return async (request, response) => {
90
- if (this.db.repositoryExists) {
91
- const { models, totalCount } = await this.db.getAll();
92
- response?.setHeader(Symbols.old.X_TOTAL_COUNT, totalCount);
93
- return models;
94
- }
95
- return [];
96
- };
97
- }
98
- getBy(id) {
99
- return async () => {
100
- const model = await this.db.getBy(id);
101
- return model;
102
- };
103
- }
104
- updateById(id, item) {
105
- return async () => {
106
- const model = await this.db.updateById(id, item);
107
- return model;
108
- };
109
- }
110
- patchById(id, item) {
111
- return async () => {
112
- const model = await this.db.updateById(id, item);
113
- return model;
114
- };
115
- }
116
- bulkUpdate(items) {
117
- return async () => {
118
- if (!Array.isArray(items) || items?.length === 0) {
119
- return [];
120
- }
121
- const { models } = await this.db.bulkUpdate(items);
122
- return models;
123
- };
124
- }
125
- deleteById(id) {
126
- return async () => {
127
- const model = await this.db.deleteById(id);
128
- return model;
129
- };
130
- }
131
- bulkDelete(ids) {
132
- return async () => {
133
- const models = await this.db.bulkDelete(ids);
134
- return models;
135
- };
136
- }
137
- create(item) {
138
- return async () => {
139
- const model = await this.db.create(item);
140
- return model;
141
- };
142
- }
143
- bulkCreate(items) {
144
- return async () => {
145
- const models = await this.db.bulkCreate(items);
146
- return models;
147
- };
148
- }
149
- };
150
- __decorate([
151
- GET(`/:id/property/:property`),
152
- __param(0, Path(`id`)),
153
- __param(1, Path(`property`)),
154
- __param(2, Query('alreadyLength')),
155
- __metadata("design:type", Function),
156
- __metadata("design:paramtypes", [Object, String, Number]),
157
- __metadata("design:returntype", Object)
158
- ], BaseCrudController.prototype, "bufforedChanges", null);
159
- __decorate([
160
- GET(),
161
- __param(0, Query('pageNumber')),
162
- __param(1, Query('pageSize')),
163
- __param(2, Query('search')),
164
- __metadata("design:type", Function),
165
- __metadata("design:paramtypes", [Number, Number, String]),
166
- __metadata("design:returntype", Object)
167
- ], BaseCrudController.prototype, "pagination", null);
168
- __decorate([
169
- GET(),
170
- __metadata("design:type", Function),
171
- __metadata("design:paramtypes", []),
172
- __metadata("design:returntype", Object)
173
- ], BaseCrudController.prototype, "getAll", null);
174
- __decorate([
175
- GET(`/:id`),
176
- __param(0, Path(`id`)),
177
- __metadata("design:type", Function),
178
- __metadata("design:paramtypes", [Object]),
179
- __metadata("design:returntype", Object)
180
- ], BaseCrudController.prototype, "getBy", null);
181
- __decorate([
182
- PUT(`/:id`),
183
- __param(0, Path(`id`)),
184
- __param(1, Body()),
185
- __metadata("design:type", Function),
186
- __metadata("design:paramtypes", [Object, Object]),
187
- __metadata("design:returntype", Object)
188
- ], BaseCrudController.prototype, "updateById", null);
189
- __decorate([
190
- PATCH(`/:id`),
191
- __param(0, Path(`id`)),
192
- __param(1, Body()),
193
- __metadata("design:type", Function),
194
- __metadata("design:paramtypes", [Object, Object]),
195
- __metadata("design:returntype", Object)
196
- ], BaseCrudController.prototype, "patchById", null);
197
- __decorate([
198
- PUT(),
199
- __param(0, Body()),
200
- __metadata("design:type", Function),
201
- __metadata("design:paramtypes", [Array]),
202
- __metadata("design:returntype", Object)
203
- ], BaseCrudController.prototype, "bulkUpdate", null);
204
- __decorate([
205
- DELETE(`/:id`),
206
- __param(0, Path(`id`)),
207
- __metadata("design:type", Function),
208
- __metadata("design:paramtypes", [Number]),
209
- __metadata("design:returntype", Object)
210
- ], BaseCrudController.prototype, "deleteById", null);
211
- __decorate([
212
- DELETE(`/bulkDelete/:ids`),
213
- __param(0, Path(`ids`)),
214
- __metadata("design:type", Function),
215
- __metadata("design:paramtypes", [Array]),
216
- __metadata("design:returntype", Object)
217
- ], BaseCrudController.prototype, "bulkDelete", null);
218
- __decorate([
219
- POST(),
220
- __param(0, Body()),
221
- __metadata("design:type", Function),
222
- __metadata("design:paramtypes", [Object]),
223
- __metadata("design:returntype", Object)
224
- ], BaseCrudController.prototype, "create", null);
225
- __decorate([
226
- POST(),
227
- __param(0, Body()),
228
- __metadata("design:type", Function),
229
- __metadata("design:paramtypes", [Object]),
230
- __metadata("design:returntype", Object)
231
- ], BaseCrudController.prototype, "bulkCreate", null);
232
- BaseCrudController = __decorate([
233
- TaonController({ className: 'BaseCrudController' })
234
- ], BaseCrudController);
235
- export { BaseCrudController };
236
- ;
237
- ({}); // @--end-of-file-for-module=taon lib/base-classes/base-crud-controller.ts
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jcnVkLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvYmFzZS1jbGFzc2VzL2Jhc2UtY3J1ZC1jb250cm9sbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxPQUFPLEVBQUksR0FBRyxFQUFJLEdBQUcsRUFBSSxNQUFNLEVBQUksSUFBSSxFQUFZLEtBQUssR0FBRyxNQUFNLDRDQUE0QyxDQUFDLENBQUEsS0FBSztBQUNuSCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUU5RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFJLGNBQWMsR0FBNEIsTUFBTSw0Q0FBNEMsQ0FBQyxDQUFBLEtBQUs7QUFDN0csS0FBSztBQUNMLEtBQUs7QUFFTCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQzs7R0FFRztBQUVJLElBQWUsa0JBQWtCLEdBQWpDLE1BQWUsa0JBQTJCLFNBQVEsY0FBYztJQWFyRSxLQUFLLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7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V0FBQSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7Ozs7b0RBT3JCO0FBS0Q7SUFEQyxNQUFNLENBQUMsa0JBQWtCLENBQUM7SUFFeEIsV0FBQSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Ozs7b0RBUWI7QUFLRDtJQURDLElBQUksRUFBRTtJQUNDLFdBQUEsSUFBSSxFQUFFLENBQUE7Ozs7Z0RBT2I7QUFLRDtJQURDLElBQUksRUFBRTtJQUNLLFdBQUEsSUFBSSxFQUFFLENBQUE7Ozs7b0RBT2pCO0FBOVBtQixrQkFBa0I7SUFEdkMsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLENBQUM7R0FDOUIsa0JBQWtCLENBZ1F2Qzs7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDBFQUEwRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IEJhc2VDb250cm9sbGVyIH0gZnJvbSAnLi9iYXNlLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgQmFzZVJlcG9zaXRvcnkgfSBmcm9tICcuL2Jhc2UtcmVwb3NpdG9yeSc7XG5pbXBvcnQgeyAgIEdFVCwgICBQVVQsICAgREVMRVRFLCAgIFBPU1QsICAgSEVBRCwgICBQQVRDSCwgfSBmcm9tICcuLi9kZWNvcmF0b3JzL2h0dHAvaHR0cC1tZXRob2RzLWRlY29yYXRvcnMnOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IFF1ZXJ5LCBQYXRoLCBCb2R5IH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9odHRwL2h0dHAtcGFyYW1zLWRlY29yYXRvcnMnO1xuaW1wb3J0IHsgTXlTcWxRdWVyeVNvdXJjZSB9IGZyb20gJ3Rhb24tdHlwZS1zcWwvd2Vic3FsJztcbmltcG9ydCB7IE1vZGVscyB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBIZWxwZXJzLCBfIH0gZnJvbSAndG5wLWNvcmUvd2Vic3FsJztcbmltcG9ydCB7ICAgVGFvbkNvbnRyb2xsZXIsICAgVGFvbkNvbnRyb2xsZXJPcHRpb25zLCB9IGZyb20gJy4uL2RlY29yYXRvcnMvY2xhc3Nlcy9jb250cm9sbGVyLWRlY29yYXRvcic7LyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuXG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBUYW9uRW50aXR5T3B0aW9ucyB9IGZyb20gJy4uL2RlY29yYXRvcnMvY2xhc3Nlcy9lbnRpdHktZGVjb3JhdG9yJztcblxuXG4vKipcbiAqIFBsZWFzZSBvdmVycmlkZSBwcm9wZXJ0eSBlbnRpdHlDbGFzc0ZuIHdpdGggZW50aXR5IGNsYXNzLlxuICovXG5AVGFvbkNvbnRyb2xsZXIoeyBjbGFzc05hbWU6ICdCYXNlQ3J1ZENvbnRyb2xsZXInIH0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNydWRDb250cm9sbGVyPEVudGl0eT4gZXh0ZW5kcyBCYXNlQ29udHJvbGxlciB7XG5cbiAgcHJvdGVjdGVkIGRiOiBCYXNlUmVwb3NpdG9yeTxFbnRpdHk+O1xuXG4gIC8qKlxuICAgKiBQbGVhc2UgcHJvdmlkZSBlbnRpdHkgYXMgY2xhc3MgcHJvcGVyeSBlbnRpdHlDbGFzc0ZuOlxuICAgKiBAcmV0dXJucyBjbGFzcyBmdW5jdGlvblxuICAgKlxuICAgKi9cbiAgYWJzdHJhY3QgZW50aXR5Q2xhc3NSZXNvbHZlRm46ICgpID0+IGFueTtcblxuXG5cbiAgYXN5bmMgXygpIHtcbiAgICBpZiAoIV8uaXNGdW5jdGlvbih0aGlzLmVudGl0eUNsYXNzUmVzb2x2ZUZuKSkge1xuICAgICAgSGVscGVycy53YXJuKFxuICAgICAgICBgU2tpcHBpbmcgaW5pdGluZyBDUlVEIGNvbnRyb2xsZXIgJHtDbGFzc0hlbHBlcnMuZ2V0TmFtZShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICApfSBiZWNhdXNlIGVudGl0eUNsYXNzUmVzb2x2ZUZuIGlzIG5vdCBwcm92aWRlZC5gLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgZW50aXR5Q2xhc3NGbiA9IHRoaXMuZW50aXR5Q2xhc3NSZXNvbHZlRm4oKTtcbiAgICB0aGlzLmRiID0gdGhpcy5pbmplY3RSZXBvKGVudGl0eUNsYXNzRm4pO1xuXG4gICAgaWYgKGVudGl0eUNsYXNzRm4pIHtcbiAgICAgIGNvbnN0IGNvbmZpZ0VudGl0eSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXG4gICAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5lbnRpdHksXG4gICAgICAgIENsYXNzSGVscGVycy5nZXRDbGFzc0ZuRnJvbU9iamVjdCh0aGlzKSxcbiAgICAgICkgYXMgVGFvbkVudGl0eU9wdGlvbnM7XG4gICAgICBpZiAoY29uZmlnRW50aXR5Py5jcmVhdGVUYWJsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgSGVscGVycy53YXJuKFxuICAgICAgICAgIGBUYWJsZSBmb3IgZW50aXR5ICR7Q2xhc3NIZWxwZXJzLmdldE5hbWUoXG4gICAgICAgICAgICBlbnRpdHlDbGFzc0ZuLFxuICAgICAgICAgICl9IHdpbGwgbm90IGJlIGNyZWF0ZWQuIENydWQgd2lsbCBub3Qgd29yayBwcm9wZXJseS5gLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBIZWxwZXJzLmVycm9yKGBFbnRpdHkgY2xhc3Mgbm90IHByb3ZpZGVkIGZvciBjb250cm9sbGVyICR7Q2xhc3NIZWxwZXJzLmdldE5hbWUoXG4gICAgICAgIHRoaXMsXG4gICAgICApfS5cblxuICAgICAgUGxlYXNlIHByb3ZpZGUgZW50aXR5IGFzIGNsYXNzIHByb3BlcnkgZW50aXR5Q2xhc3NGbjpcblxuICAgICAgY2xhc3MgJHtDbGFzc0hlbHBlcnMuZ2V0TmFtZSh0aGlzKX0gZXh0ZW5kcyBCYXNlQ3J1ZENvbnRyb2xsZXI8RW50aXR5PiB7XG5cbiAgICAgICAgZW50aXR5Q2xhc3NSZXNvbHZlRm4gPSAoKT0+IE15RW50aXR5Q2xhc3M7XG5cbiAgICAgIH1cblxuICAgICAgYCk7XG4gICAgfVxuICAgIGF3YWl0IHN1cGVyLl8oKTtcbiAgfVxuXG5cblxuICBAR0VUKGAvOmlkL3Byb3BlcnR5Lzpwcm9wZXJ0eWApXG4gIGJ1ZmZvcmVkQ2hhbmdlcyhcbiAgICBAUGF0aChgaWRgKSBpZDogbnVtYmVyIHwgc3RyaW5nLFxuICAgIEBQYXRoKGBwcm9wZXJ0eWApIHByb3BlcnR5OiBzdHJpbmcsXG4gICAgQFF1ZXJ5KCdhbHJlYWR5TGVuZ3RoJykgYWxyZWFkeUxlbmd0aD86IG51bWJlcixcbiAgKTogTW9kZWxzLkh0dHAuUmVzcG9uc2U8c3RyaW5nIHwgYW55W10+IHtcblxuICAgIHJldHVybiBhc3luYyAocmVxdWVzdCwgcmVzcG9uc2UpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgdGhpcy5kYi5nZXRCeShpZCk7XG4gICAgICBpZiAobW9kZWwgPT09IHZvaWQgMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBWYWxpZGF0b3JzLnByZXZlbnRVbmRlZmluZWRNb2RlbChtb2RlbCwgaWQpO1xuICAgICAgbGV0IHZhbHVlID0gbW9kZWxbcHJvcGVydHldO1xuICAgICAgbGV0IHJlc3VsdDogYW55O1xuICAgICAgaWYgKF8uaXNTdHJpbmcodmFsdWUpIHx8IF8uaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0ID0gKHZhbHVlIGFzIHN0cmluZykuc2xpY2UoYWxyZWFkeUxlbmd0aCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcblxuICB9XG5cblxuXG4gIEBHRVQoKVxuICBwYWdpbmF0aW9uKFxuICAgIEBRdWVyeSgncGFnZU51bWJlcicpIHBhZ2VOdW1iZXI6IG51bWJlciA9IDEsXG4gICAgQFF1ZXJ5KCdwYWdlU2l6ZScpIHBhZ2VTaXplOiBudW1iZXIgPSAxMCxcbiAgICBAUXVlcnkoJ3NlYXJjaCcpIHNlYXJjaDogc3RyaW5nID0gJycsXG4gICk6IE1vZGVscy5IdHRwLlJlc3BvbnNlPEVudGl0eVtdPiB7XG5cbiAgICByZXR1cm4gYXN5bmMgKHJlcXVlc3QsIHJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAodGhpcy5kYi5yZXBvc2l0b3J5RXhpc3RzKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgICAgIHBhZ2U6IHBhZ2VOdW1iZXIsXG4gICAgICAgICAgdGFrZTogcGFnZVNpemUsXG4gICAgICAgICAga2V5d29yZDogc2VhcmNoLFxuICAgICAgICB9O1xuXG5cblxuXG4gICAgICAgIGNvbnN0IHRha2UgPSBxdWVyeS50YWtlIHx8IDEwO1xuICAgICAgICBjb25zdCBwYWdlID0gcXVlcnkucGFnZSB8fCAxO1xuICAgICAgICBjb25zdCBza2lwID0gKHBhZ2UgLSAxKSAqIHRha2U7XG4gICAgICAgIGNvbnN0IGtleXdvcmQgPSBxdWVyeS5rZXl3b3JkIHx8ICcnO1xuXG4gICAgICAgIGNvbnN0IFtyZXN1bHQsIHRvdGFsXSA9IGF3YWl0IHRoaXMuZGIuZmluZEFuZENvdW50KHtcblxuXG4gICAgICAgICAgdGFrZTogdGFrZSxcbiAgICAgICAgICBza2lwOiBza2lwLFxuICAgICAgICB9KTtcblxuICAgICAgICByZXNwb25zZT8uc2V0SGVhZGVyKFN5bWJvbHMub2xkLlhfVE9UQUxfQ09VTlQsIHRvdGFsKTtcblxuXG5cblxuXG5cblxuXG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBFbnRpdHlbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9O1xuXG4gIH1cblxuXG5cbiAgQEdFVCgpXG4gIGdldEFsbCgpOiBNb2RlbHMuSHR0cC5SZXNwb25zZTxFbnRpdHlbXT4ge1xuXG4gICAgcmV0dXJuIGFzeW5jIChyZXF1ZXN0LCByZXNwb25zZSkgPT4ge1xuICAgICAgaWYgKHRoaXMuZGIucmVwb3NpdG9yeUV4aXN0cykge1xuICAgICAgICBjb25zdCB7IG1vZGVscywgdG90YWxDb3VudCB9ID0gYXdhaXQgdGhpcy5kYi5nZXRBbGwoKTtcbiAgICAgICAgcmVzcG9uc2U/LnNldEhlYWRlcihTeW1ib2xzLm9sZC5YX1RPVEFMX0NPVU5ULCB0b3RhbENvdW50KTtcbiAgICAgICAgcmV0dXJuIG1vZGVscztcbiAgICAgIH1cbiAgICAgIHJldHVybiBbXTtcbiAgICB9O1xuXG4gIH1cblxuXG5cbiAgQEdFVChgLzppZGApXG4gIGdldEJ5KEBQYXRoKGBpZGApIGlkOiBudW1iZXIgfCBzdHJpbmcpOiBNb2RlbHMuSHR0cC5SZXNwb25zZTxFbnRpdHk+IHtcblxuICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbCA9IGF3YWl0IHRoaXMuZGIuZ2V0QnkoaWQpO1xuICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH07XG5cbiAgfVxuXG5cblxuICBAUFVUKGAvOmlkYClcbiAgdXBkYXRlQnlJZChcbiAgICBAUGF0aChgaWRgKSBpZDogbnVtYmVyIHwgc3RyaW5nLFxuICAgIEBCb2R5KCkgaXRlbTogRW50aXR5LFxuICApOiBNb2RlbHMuSHR0cC5SZXNwb25zZTxFbnRpdHk+IHtcblxuXG4gICAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgdGhpcy5kYi51cGRhdGVCeUlkKGlkLCBpdGVtIGFzIGFueSk7XG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfTtcblxuICB9XG5cblxuXG4gIEBQQVRDSChgLzppZGApXG4gIHBhdGNoQnlJZChcbiAgICBAUGF0aChgaWRgKSBpZDogbnVtYmVyIHwgc3RyaW5nLFxuICAgIEBCb2R5KCkgaXRlbTogRW50aXR5LFxuICApOiBNb2RlbHMuSHR0cC5SZXNwb25zZTxFbnRpdHk+IHtcblxuXG4gICAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgdGhpcy5kYi51cGRhdGVCeUlkKGlkLCBpdGVtIGFzIGFueSk7XG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfTtcblxuICB9XG5cblxuXG4gIEBQVVQoKVxuICBidWxrVXBkYXRlKEBCb2R5KCkgaXRlbXM6IEVudGl0eVtdKTogTW9kZWxzLkh0dHAuUmVzcG9uc2U8RW50aXR5W10+IHtcblxuICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpIHx8IGl0ZW1zPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgY29uc3QgeyBtb2RlbHMgfSA9IGF3YWl0IHRoaXMuZGIuYnVsa1VwZGF0ZShpdGVtcyk7XG4gICAgICByZXR1cm4gbW9kZWxzO1xuICAgIH07XG5cbiAgfVxuXG5cblxuICBAREVMRVRFKGAvOmlkYClcbiAgZGVsZXRlQnlJZChAUGF0aChgaWRgKSBpZDogbnVtYmVyKTogTW9kZWxzLkh0dHAuUmVzcG9uc2U8RW50aXR5PiB7XG5cbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWwgPSBhd2FpdCB0aGlzLmRiLmRlbGV0ZUJ5SWQoaWQpO1xuICAgICAgcmV0dXJuIG1vZGVsO1xuICAgIH07XG5cbiAgfVxuXG5cblxuICBAREVMRVRFKGAvYnVsa0RlbGV0ZS86aWRzYClcbiAgYnVsa0RlbGV0ZShcbiAgICBAUGF0aChgaWRzYCkgaWRzOiAobnVtYmVyIHwgc3RyaW5nKVtdLFxuICApOiBNb2RlbHMuSHR0cC5SZXNwb25zZTwobnVtYmVyIHwgc3RyaW5nIHwgRW50aXR5KVtdPiB7XG5cbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWxzID0gYXdhaXQgdGhpcy5kYi5idWxrRGVsZXRlKGlkcyk7XG4gICAgICByZXR1cm4gbW9kZWxzO1xuICAgIH07XG5cbiAgfVxuXG5cblxuICBAUE9TVCgpXG4gIGNyZWF0ZShAQm9keSgpIGl0ZW06IEVudGl0eSk6IE1vZGVscy5IdHRwLlJlc3BvbnNlPEVudGl0eT4ge1xuXG4gICAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG1vZGVsID0gYXdhaXQgdGhpcy5kYi5jcmVhdGUoaXRlbSBhcyBhbnkpO1xuICAgICAgcmV0dXJuIG1vZGVsIGFzIEVudGl0eTtcbiAgICB9O1xuXG4gIH1cblxuXG5cbiAgQFBPU1QoKVxuICBidWxrQ3JlYXRlKEBCb2R5KCkgaXRlbXM6IEVudGl0eSk6IE1vZGVscy5IdHRwLlJlc3BvbnNlPEVudGl0eVtdPiB7XG5cbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbW9kZWxzID0gYXdhaXQgdGhpcy5kYi5idWxrQ3JlYXRlKGl0ZW1zIGFzIGFueSk7XG4gICAgICByZXR1cm4gbW9kZWxzIGFzIEVudGl0eVtdO1xuICAgIH07XG5cbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9iYXNlLWNsYXNzZXMvYmFzZS1jcnVkLWNvbnRyb2xsZXIudHMiXX0=
@@ -1,16 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Entity } from 'taon-typeorm/websql';
3
- import { BaseClass } from './base-class';
4
- let EntityDecorator = () => {
5
- return (target) => { };
6
- };
7
- EntityDecorator = Entity;
8
- let BaseEntity = class BaseEntity extends BaseClass {
9
- };
10
- BaseEntity = __decorate([
11
- EntityDecorator()
12
- ], BaseEntity);
13
- export { BaseEntity };
14
- ;
15
- ({}); // @--end-of-file-for-module=taon lib/base-classes/base-entity.ts
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvYmFzZS1jbGFzc2VzL2Jhc2UtZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFHQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxJQUFJLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFDekIsT0FBTyxDQUFDLE1BQVcsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBQzdCLENBQUMsQ0FBQztBQUdGLGVBQWUsR0FBRyxNQUFNLENBQUM7QUFJbEIsSUFBZSxVQUFVLEdBQXpCLE1BQWUsVUFLcEIsU0FBUSxTQUFpQjtDQUFHLENBQUE7QUFMUixVQUFVO0lBRC9CLGVBQWUsRUFBRTtHQUNJLFVBQVUsQ0FLRjs7QUFFN0IsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxpRUFBaUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJztcblxuaW1wb3J0IHsgRW5kcG9pbnRDb250ZXh0IH0gZnJvbSAnLi4vZW5kcG9pbnQtY29udGV4dCc7XG5pbXBvcnQgeyBTeW1ib2xzIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBCYXNlQ2xhc3MgfSBmcm9tICcuL2Jhc2UtY2xhc3MnO1xuXG5sZXQgRW50aXR5RGVjb3JhdG9yID0gKCkgPT4ge1xuICByZXR1cm4gKHRhcmdldDogYW55KSA9PiB7fTtcbn07XG5cblxuRW50aXR5RGVjb3JhdG9yID0gRW50aXR5O1xuXG5cbkBFbnRpdHlEZWNvcmF0b3IoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VFbnRpdHk8XG4gIC8qKlxuICAgKiB0eXBlIGZvciBjbG9uaW5nXG4gICAqL1xuICBDbG9uZVQgZXh0ZW5kcyBCYXNlQ2xhc3MgPSBhbnksXG4+IGV4dGVuZHMgQmFzZUNsYXNzPENsb25lVD4ge31cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2Jhc2UtY2xhc3Nlcy9iYXNlLWVudGl0eS50cyJdfQ==
@@ -1,167 +0,0 @@
1
- import { _ } from 'tnp-core/websql';
2
- import { Symbols } from '../symbols';
3
- import { ClassHelpers } from '../helpers/class-helpers';
4
- export class BaseInjector {
5
- constructor() {
6
- /**
7
- * Repositories to init (by controller)
8
- */
9
- this.__repositories_to_init__ = [];
10
- }
11
- /**
12
- * class initialization hook
13
- * taon after class instace creation
14
- */
15
- async _() {
16
- const reposToInit = this.__repositories_to_init__;
17
- for (const repo of reposToInit) {
18
- await repo.__init(this);
19
- }
20
- }
21
- /**
22
- * @deprecated use ctx instead
23
- * Current endpoint context
24
- */
25
- get __endpoint_context__() {
26
- return this[Symbols.ctxInClassOrClassObj];
27
- }
28
- /**
29
- * get current endpoint context
30
- */
31
- get ctx() {
32
- return this.__endpoint_context__;
33
- }
34
- /**
35
- * inject crud repo for entity
36
- */
37
- injectRepo(entityForCrud) {
38
- const repoProxy = this.__inject(void 0, {
39
- localInstance: true,
40
- resolveClassFromContext: 'BaseRepository',
41
- locaInstanceConstructorArgs: [() => entityForCrud],
42
- });
43
- this.__repositories_to_init__.push(repoProxy);
44
- return repoProxy;
45
- }
46
- injectCustomRepository(cutomRepositoryClass) {
47
- const repoProxy = this.__inject(cutomRepositoryClass, {
48
- localInstance: true,
49
- locaInstanceConstructorArgs: [
50
- () => cutomRepositoryClass.prototype.entityClassResolveFn(),
51
- ],
52
- });
53
- this.__repositories_to_init__.push(repoProxy);
54
- return repoProxy;
55
- }
56
- /**
57
- * aliast to .injectRepository()
58
- */
59
- injectCustomRepo(cutomRepositoryClass) {
60
- const repoProxy = this.injectCustomRepository(cutomRepositoryClass);
61
- this.__repositories_to_init__.push(repoProxy);
62
- return repoProxy;
63
- }
64
- injectController(ctor) {
65
- return this.__inject(ctor, { localInstance: false });
66
- }
67
- /**
68
- * aliast to .injectController()
69
- */
70
- injectSubscriber(ctor) {
71
- return this.__inject(ctor, { localInstance: false });
72
- }
73
- /**
74
- * aliast to .injectController()
75
- */
76
- injectCtrl(ctor) {
77
- return this.injectController(ctor);
78
- }
79
- /**
80
- * global provider available in every context
81
- */
82
- injectGlobalProvider(ctor) {
83
- return this.__inject(ctor, { localInstance: false });
84
- }
85
- /**
86
- * context scoped provider
87
- * TODO
88
- */
89
- injectContextProvider(ctor) {
90
- return this.__inject(ctor, { localInstance: false });
91
- }
92
- /**
93
- * Inject: Controllers, Providers, Repositories, Services, etc.
94
- * TODO addd nest js injecting
95
- */
96
- __inject(ctor, options) {
97
- if (!options) {
98
- options = {};
99
- }
100
- const contextClassInstance = this;
101
- return new Proxy({}, {
102
- get: (__, propName) => {
103
- const contextFromClass = ctor && ctor[Symbols.ctxInClassOrClassObj];
104
- const resultContext = contextFromClass
105
- ? contextFromClass
106
- : this.__endpoint_context__;
107
- if (options.resolveClassFromContext) {
108
- const resolvedClass = resultContext.getClassFunByClassName(options.resolveClassFromContext);
109
- ctor = resolvedClass;
110
- }
111
- if (resultContext) {
112
- var instance = resultContext.inject(ctor, {
113
- ...options,
114
- contextClassInstance,
115
- });
116
- if (!instance) {
117
- throw new Error(`Not able to inject "${ClassHelpers.getName(ctor) || ctor.name}" inside ` +
118
- `property "${propName?.toString()}" on class "${ClassHelpers.getName(this)}".
119
-
120
- Please add "${ClassHelpers.getName(ctor) || ctor.name}" to (entites or contorllers or providers or repositories)
121
-
122
- `);
123
- }
124
- const result = typeof instance[propName] === 'function'
125
- ? instance[propName].bind(instance)
126
- : instance[propName];
127
- return result;
128
- }
129
- },
130
- set: (__, propName, value) => {
131
- const contextFromClass = ctor && ctor[Symbols.ctxInClassOrClassObj];
132
- const resultContext = contextFromClass
133
- ? contextFromClass
134
- : this.__endpoint_context__;
135
- if (options.resolveClassFromContext) {
136
- const resolvedClass = resultContext.getClassFunByClassName(options.resolveClassFromContext);
137
- ctor = resolvedClass;
138
- }
139
- if (resultContext) {
140
- var instance = resultContext.inject(ctor, {
141
- ...options,
142
- contextClassInstance,
143
- });
144
- if (!instance) {
145
- const classNameNotResolved = ClassHelpers.getName(ctor) || ctor.name;
146
- throw new Error(`Not able to inject "${classNameNotResolved}" inside ` +
147
- `property "${propName?.toString()}" on class "${ClassHelpers.getName(this)}".
148
-
149
- Please add "${ClassHelpers.getName(ctor) || ctor.name}" to (entites or contorllers or providers or repositories)
150
-
151
- `);
152
- }
153
- instance[propName] = value;
154
- }
155
- return true;
156
- },
157
- });
158
- }
159
- clone(override) {
160
- const classFn = ClassHelpers.getClassFnFromObject(this);
161
- const result = _.merge(new classFn(), _.merge(_.cloneDeep(this), override));
162
- return result;
163
- }
164
- }
165
- ;
166
- ({}); // @--end-of-file-for-module=taon lib/base-classes/base-injector.ts
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbmplY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9iYXNlLWNsYXNzZXMvYmFzZS1pbmplY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQVcsQ0FBQyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFLeEQsTUFBTSxPQUFPLFlBQVk7SUFBekI7UUE4SEU7O1dBRUc7UUFDTyw2QkFBd0IsR0FBRyxFQUEyQixDQUFDO0lBa0luRSxDQUFDO0lBeFBDOzs7T0FHRztJQUNILEtBQUssQ0FBQyxDQUFDO1FBQ0wsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ2xELEtBQUssTUFBTSxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7WUFDL0IsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBSUQ7OztPQUdHO0lBQ0gsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFvQixDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFNRDs7T0FFRztJQUNILFVBQVUsQ0FBSSxhQUF3QztRQUNwRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RDLGFBQWEsRUFBRSxJQUFJO1lBQ25CLHVCQUF1QixFQUFFLGdCQUFnQjtZQUN6QywyQkFBMkIsRUFBRSxDQUFDLEdBQUcsRUFB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QU0sYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7d0JBQzNDLEdBQUcsT0FBTzt3QkFDVixvQkFBb0I7cUJBQ3JCLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ2QsTUFBTSxvQkFBb0IsR0FDeEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUMxQyxNQUFNLElBQUksS0FBSyxDQUNiLHVCQUF1QixvQkFBb0IsV0FBVzs0QkFDcEQsYUFBYSxRQUFRLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixZQUFZLENBQUMsT0FBTyxDQUNuRSxJQUFJLENBQ0w7OzRCQUdILFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQ3JDOztlQUVDLENBQ0EsQ0FBQztvQkFDSixDQUFDO29CQUNELFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQzdCLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1NBQ0YsQ0FDRyxDQUFDO0lBQ1QsQ0FBQztJQU1NLEtBQUssQ0FBQyxRQUF5QjtRQUNwQyxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUVBQW1FIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgSGVscGVycywgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBFbmRwb2ludENvbnRleHQgfSBmcm9tICcuLi9lbmRwb2ludC1jb250ZXh0JztcbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgdHlwZSB7IEJhc2VSZXBvc2l0b3J5IH0gZnJvbSAnLi9iYXNlLXJlcG9zaXRvcnknO1xuaW1wb3J0IHsgQmFzZUNsYXNzIH0gZnJvbSAnLi9iYXNlLWNsYXNzJztcblxuXG5leHBvcnQgY2xhc3MgQmFzZUluamVjdG9yPENsb25lVCBleHRlbmRzIEJhc2VDbGFzcyA9IGFueT4ge1xuICAvKipcbiAgICogZm9yIHByb3h5IHB1cnBvc2VzXG4gICAqL1xuICBnZXRPcmlnaW5hbFByb3RvdHlwZTogKCkgPT4gYW55O1xuICAvKipcbiAgICogZm9yIHByb3h5IHB1cnBvc2VzXG4gICAqL1xuICBnZXRPcmlnaW5hbENvbnN0cnVjdG9yOiAoKSA9PiBhbnk7XG5cblxuICAvKipcbiAgICogY2xhc3MgaW5pdGlhbGl6YXRpb24gaG9va1xuICAgKiB0YW9uIGFmdGVyIGNsYXNzIGluc3RhY2UgY3JlYXRpb25cbiAgICovXG4gIGFzeW5jIF8oKSB7XG4gICAgY29uc3QgcmVwb3NUb0luaXQgPSB0aGlzLl9fcmVwb3NpdG9yaWVzX3RvX2luaXRfXztcbiAgICBmb3IgKGNvbnN0IHJlcG8gb2YgcmVwb3NUb0luaXQpIHtcbiAgICAgIGF3YWl0IHJlcG8uX19pbml0KHRoaXMpO1xuICAgIH1cbiAgfVxuXG5cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGN0eCBpbnN0ZWFkXG4gICAqIEN1cnJlbnQgZW5kcG9pbnQgY29udGV4dFxuICAgKi9cbiAgZ2V0IF9fZW5kcG9pbnRfY29udGV4dF9fKCkge1xuICAgIHJldHVybiB0aGlzW1N5bWJvbHMuY3R4SW5DbGFzc09yQ2xhc3NPYmpdIGFzIEVuZHBvaW50Q29udGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgIGN1cnJlbnQgZW5kcG9pbnQgY29udGV4dFxuICAgKi9cbiAgZ2V0IGN0eCgpIHtcbiAgICByZXR1cm4gdGhpcy5fX2VuZHBvaW50X2NvbnRleHRfXztcbiAgfVxuXG5cblxuXG5cbiAgLyoqXG4gICAqIGluamVjdCBjcnVkIHJlcG8gZm9yIGVudGl0eVxuICAgKi9cbiAgaW5qZWN0UmVwbzxUPihlbnRpdHlGb3JDcnVkOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogQmFzZVJlcG9zaXRvcnk8VD4ge1xuICAgIGNvbnN0IHJlcG9Qcm94eSA9IHRoaXMuX19pbmplY3Qodm9pZCAwLCB7XG4gICAgICBsb2NhbEluc3RhbmNlOiB0cnVlLFxuICAgICAgcmVzb2x2ZUNsYXNzRnJvbUNvbnRleHQ6ICdCYXNlUmVwb3NpdG9yeScsXG4gICAgICBsb2NhSW5zdGFuY2VDb25zdHJ1Y3RvckFyZ3M6IFsoKSA9PiBlbnRpdHlGb3JDcnVkXSxcbiAgICB9KTtcbiAgICB0aGlzLl9fcmVwb3NpdG9yaWVzX3RvX2luaXRfXy5wdXNoKHJlcG9Qcm94eSBhcyBhbnkpO1xuICAgIHJldHVybiByZXBvUHJveHkgYXMgYW55O1xuICB9XG5cblxuXG4gIGluamVjdEN1c3RvbVJlcG9zaXRvcnk8VD4oXG4gICAgY3V0b21SZXBvc2l0b3J5Q2xhc3M6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQsXG4gICk6IFQge1xuICAgIGNvbnN0IHJlcG9Qcm94eSA9IHRoaXMuX19pbmplY3Q8VD4oY3V0b21SZXBvc2l0b3J5Q2xhc3MsIHtcbiAgICAgIGxvY2FsSW5zdGFuY2U6IHRydWUsXG4gICAgICBsb2NhSW5zdGFuY2VDb25zdHJ1Y3RvckFyZ3M6IFtcbiAgICAgICAgKCkgPT4gY3V0b21SZXBvc2l0b3J5Q2xhc3MucHJvdG90eXBlLmVudGl0eUNsYXNzUmVzb2x2ZUZuKCksXG4gICAgICBdLFxuICAgIH0pO1xuICAgIHRoaXMuX19yZXBvc2l0b3JpZXNfdG9faW5pdF9fLnB1c2gocmVwb1Byb3h5IGFzIGFueSk7XG4gICAgcmV0dXJuIHJlcG9Qcm94eTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogYWxpYXN0IHRvIC5pbmplY3RSZXBvc2l0b3J5KClcbiAgICovXG4gIGluamVjdEN1c3RvbVJlcG88VD4oY3V0b21SZXBvc2l0b3J5Q2xhc3M6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgICBjb25zdCByZXBvUHJveHkgPSB0aGlzLmluamVjdEN1c3RvbVJlcG9zaXRvcnk8VD4oY3V0b21SZXBvc2l0b3J5Q2xhc3MpO1xuICAgIHRoaXMuX19yZXBvc2l0b3JpZXNfdG9faW5pdF9fLnB1c2gocmVwb1Byb3h5IGFzIGFueSk7XG4gICAgcmV0dXJuIHJlcG9Qcm94eTtcbiAgfVxuXG5cblxuICBpbmplY3RDb250cm9sbGVyPFQ+KGN0b3I6IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5fX2luamVjdDxUPihjdG9yLCB7IGxvY2FsSW5zdGFuY2U6IGZhbHNlIH0pO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBhbGlhc3QgdG8gLmluamVjdENvbnRyb2xsZXIoKVxuICAgKi9cbiAgaW5qZWN0U3Vic2NyaWJlcjxUPihjdG9yOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX19pbmplY3Q8VD4oY3RvciwgeyBsb2NhbEluc3RhbmNlOiBmYWxzZSB9KTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogYWxpYXN0IHRvIC5pbmplY3RDb250cm9sbGVyKClcbiAgICovXG4gIGluamVjdEN0cmw8VD4oY3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICAgIHJldHVybiB0aGlzLmluamVjdENvbnRyb2xsZXI8VD4oY3Rvcik7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGdsb2JhbCBwcm92aWRlciBhdmFpbGFibGUgaW4gZXZlcnkgY29udGV4dFxuICAgKi9cbiAgaW5qZWN0R2xvYmFsUHJvdmlkZXI8VD4oY3RvcjogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICAgIHJldHVybiB0aGlzLl9faW5qZWN0PFQ+KGN0b3IsIHsgbG9jYWxJbnN0YW5jZTogZmFsc2UgfSk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGNvbnRleHQgc2NvcGVkIHByb3ZpZGVyXG4gICAqIFRPRE9cbiAgICovXG4gIGluamVjdENvbnRleHRQcm92aWRlcjxUPihjdG9yOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBUKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX19pbmplY3Q8VD4oY3RvciwgeyBsb2NhbEluc3RhbmNlOiBmYWxzZSB9KTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFJlcG9zaXRvcmllcyB0byBpbml0IChieSBjb250cm9sbGVyKVxuICAgKi9cbiAgcHJvdGVjdGVkIF9fcmVwb3NpdG9yaWVzX3RvX2luaXRfXyA9IFtdIGFzIEJhc2VSZXBvc2l0b3J5PGFueT5bXTtcblxuXG4gIC8qKlxuICAgKiBJbmplY3Q6IENvbnRyb2xsZXJzLCBQcm92aWRlcnMsIFJlcG9zaXRvcmllcywgU2VydmljZXMsIGV0Yy5cbiAgICogVE9ETyAgYWRkZCBuZXN0IGpzIGluamVjdGluZ1xuICAgKi9cbiAgcHJpdmF0ZSBfX2luamVjdDxUPihcbiAgICBjdG9yOiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIChyZXBvc2l0b3JpZXMgYXJlIE9OTFkvQUxXQVlTIGxvY2FsIGluc3RhbmNlcylcbiAgICAgICAqIElmIHRydWUsIHRoZW4gbG9jYWwgaW5zdGFuY2Ugd2lsbCBiZSBjcmVhdGVkXG4gICAgICAgKiBjb250cm9sbGVycywgcHJvdmlkZXJzIGNhbiBiZSBsb2NhbCBvciBnbG9iYWxcbiAgICAgICAqL1xuICAgICAgbG9jYWxJbnN0YW5jZTogYm9vbGVhbjtcbiAgICAgIHJlc29sdmVDbGFzc0Zyb21Db250ZXh0Pzogc3RyaW5nO1xuICAgICAgbG9jYUluc3RhbmNlQ29uc3RydWN0b3JBcmdzPzogQ29uc3RydWN0b3JQYXJhbWV0ZXJzPHR5cGVvZiBjdG9yPjtcbiAgICB9LFxuICApOiBUIHtcbiAgICBpZiAoIW9wdGlvbnMpIHtcbiAgICAgIG9wdGlvbnMgPSB7fSBhcyBhbnk7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dENsYXNzSW5zdGFuY2UgPSB0aGlzO1xuICAgIHJldHVybiBuZXcgUHJveHkoXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgZ2V0OiAoX18sIHByb3BOYW1lKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29udGV4dEZyb21DbGFzczogRW5kcG9pbnRDb250ZXh0ID1cbiAgICAgICAgICAgIGN0b3IgJiYgY3RvcltTeW1ib2xzLmN0eEluQ2xhc3NPckNsYXNzT2JqXTtcblxuICAgICAgICAgIGNvbnN0IHJlc3VsdENvbnRleHQ6IEVuZHBvaW50Q29udGV4dCA9IGNvbnRleHRGcm9tQ2xhc3NcbiAgICAgICAgICAgID8gY29udGV4dEZyb21DbGFzc1xuICAgICAgICAgICAgOiB0aGlzLl9fZW5kcG9pbnRfY29udGV4dF9fO1xuXG4gICAgICAgICAgaWYgKG9wdGlvbnMucmVzb2x2ZUNsYXNzRnJvbUNvbnRleHQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkQ2xhc3MgPSByZXN1bHRDb250ZXh0LmdldENsYXNzRnVuQnlDbGFzc05hbWUoXG4gICAgICAgICAgICAgIG9wdGlvbnMucmVzb2x2ZUNsYXNzRnJvbUNvbnRleHQsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY3RvciA9IHJlc29sdmVkQ2xhc3MgYXMgYW55O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyZXN1bHRDb250ZXh0KSB7XG4gICAgICAgICAgICB2YXIgaW5zdGFuY2U6IFQgPSByZXN1bHRDb250ZXh0LmluamVjdChjdG9yLCB7XG4gICAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICAgIGNvbnRleHRDbGFzc0luc3RhbmNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgTm90IGFibGUgdG8gaW5qZWN0IFwiJHtcbiAgICAgICAgICAgICAgICAgIENsYXNzSGVscGVycy5nZXROYW1lKGN0b3IpIHx8IGN0b3IubmFtZVxuICAgICAgICAgICAgICAgIH1cIiBpbnNpZGUgYCArXG4gICAgICAgICAgICAgICAgICBgcHJvcGVydHkgXCIke3Byb3BOYW1lPy50b1N0cmluZygpfVwiIG9uICBjbGFzcyBcIiR7Q2xhc3NIZWxwZXJzLmdldE5hbWUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAgICAgICApfVwiLlxuXG4gICAgICAgICAgICAgIFBsZWFzZSBhZGQgXCIke1xuICAgICAgICAgICAgICAgIENsYXNzSGVscGVycy5nZXROYW1lKGN0b3IpIHx8IGN0b3IubmFtZVxuICAgICAgICAgICAgICB9XCIgdG8gKGVudGl0ZXMgb3IgY29udG9ybGxlcnMgb3IgcHJvdmlkZXJzIG9yIHJlcG9zaXRvcmllcylcblxuICAgICAgICAgICAgICBgLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPVxuICAgICAgICAgICAgICB0eXBlb2YgaW5zdGFuY2VbcHJvcE5hbWVdID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyBpbnN0YW5jZVtwcm9wTmFtZV0uYmluZChpbnN0YW5jZSlcbiAgICAgICAgICAgICAgICA6IGluc3RhbmNlW3Byb3BOYW1lXTtcblxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH1cblxuXG5cbiAgICAgICAgfSxcbiAgICAgICAgc2V0OiAoX18sIHByb3BOYW1lLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHRGcm9tQ2xhc3MgPSBjdG9yICYmIGN0b3JbU3ltYm9scy5jdHhJbkNsYXNzT3JDbGFzc09ial07XG4gICAgICAgICAgY29uc3QgcmVzdWx0Q29udGV4dDogRW5kcG9pbnRDb250ZXh0ID0gY29udGV4dEZyb21DbGFzc1xuICAgICAgICAgICAgPyBjb250ZXh0RnJvbUNsYXNzXG4gICAgICAgICAgICA6IHRoaXMuX19lbmRwb2ludF9jb250ZXh0X187XG5cbiAgICAgICAgICBpZiAob3B0aW9ucy5yZXNvbHZlQ2xhc3NGcm9tQ29udGV4dCkge1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRDbGFzcyA9IHJlc3VsdENvbnRleHQuZ2V0Q2xhc3NGdW5CeUNsYXNzTmFtZShcbiAgICAgICAgICAgICAgb3B0aW9ucy5yZXNvbHZlQ2xhc3NGcm9tQ29udGV4dCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjdG9yID0gcmVzb2x2ZWRDbGFzcyBhcyBhbnk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHJlc3VsdENvbnRleHQpIHtcbiAgICAgICAgICAgIHZhciBpbnN0YW5jZTogVCA9IHJlc3VsdENvbnRleHQuaW5qZWN0KGN0b3IsIHtcbiAgICAgICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICAgICAgY29udGV4dENsYXNzSW5zdGFuY2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmICghaW5zdGFuY2UpIHtcbiAgICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lTm90UmVzb2x2ZWQgPVxuICAgICAgICAgICAgICAgIENsYXNzSGVscGVycy5nZXROYW1lKGN0b3IpIHx8IGN0b3IubmFtZTtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBOb3QgYWJsZSB0byBpbmplY3QgXCIke2NsYXNzTmFtZU5vdFJlc29sdmVkfVwiIGluc2lkZSBgICtcbiAgICAgICAgICAgICAgICAgIGBwcm9wZXJ0eSBcIiR7cHJvcE5hbWU/LnRvU3RyaW5nKCl9XCIgb24gIGNsYXNzIFwiJHtDbGFzc0hlbHBlcnMuZ2V0TmFtZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgICAgICAgICl9XCIuXG5cbiAgICAgICAgICAgICAgUGxlYXNlIGFkZCBcIiR7XG4gICAgICAgICAgICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUoY3RvcikgfHwgY3Rvci5uYW1lXG4gICAgICAgICAgICAgIH1cIiB0byAoZW50aXRlcyBvciBjb250b3JsbGVycyBvciBwcm92aWRlcnMgb3IgcmVwb3NpdG9yaWVzKVxuXG4gICAgICAgICAgICAgIGAsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnN0YW5jZVtwcm9wTmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICkgYXMgVDtcbiAgfVxuXG5cblxuXG5cbiAgcHVibGljIGNsb25lKG92ZXJyaWRlOiBQYXJ0aWFsPENsb25lVD4pOiBDbG9uZVQge1xuICAgIGNvbnN0IGNsYXNzRm4gPSBDbGFzc0hlbHBlcnMuZ2V0Q2xhc3NGbkZyb21PYmplY3QodGhpcyk7XG4gICAgY29uc3QgcmVzdWx0ID0gXy5tZXJnZShuZXcgY2xhc3NGbigpLCBfLm1lcmdlKF8uY2xvbmVEZWVwKHRoaXMpLCBvdmVycmlkZSkpO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9iYXNlLWNsYXNzZXMvYmFzZS1pbmplY3Rvci50cyJdfQ==
@@ -1,23 +0,0 @@
1
- import { _ } from 'tnp-core/websql';
2
- import { ClassHelpers } from '../helpers/class-helpers';
3
- import { BaseInjector } from './base-injector';
4
- export class BaseMigration extends BaseInjector {
5
- /**
6
- * by default is READY to run
7
- */
8
- isReadyToRun() {
9
- return true;
10
- }
11
- getDescription() {
12
- return _.startCase(ClassHelpers.getName(this));
13
- }
14
- async up(queryRunner) {
15
- console.log(`[BaseMigration] Running migration UP "${ClassHelpers.getName(this)}"`);
16
- }
17
- async down(queryRunner) {
18
- console.log(`[BaseMigration] Running migration DOWN "${ClassHelpers.getName(this)}"`);
19
- }
20
- }
21
- ;
22
- ({}); // @--end-of-file-for-module=taon lib/base-classes/base-migration.ts
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvYmFzZS1jbGFzc2VzL2Jhc2UtbWlncmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE1BQU0sT0FBTyxhQUFjLFNBQVEsWUFBWTtJQUM3Qzs7T0FFRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBd0I7UUFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5Q0FBeUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBd0I7UUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQ0FBMkMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEYsQ0FBQztDQUNGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvRUFBb0UiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgXyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHsgQmFzZUluamVjdG9yIH0gZnJvbSAnLi9iYXNlLWluamVjdG9yJztcbmltcG9ydCB7IE1pZ3JhdGlvbkludGVyZmFjZSwgUXVlcnlSdW5uZXIgfSBmcm9tICd0YW9uLXR5cGVvcm0vd2Vic3FsJztcblxuZXhwb3J0IGNsYXNzIEJhc2VNaWdyYXRpb24gZXh0ZW5kcyBCYXNlSW5qZWN0b3IgaW1wbGVtZW50cyBNaWdyYXRpb25JbnRlcmZhY2Uge1xuICAvKipcbiAgICogYnkgZGVmYXVsdCBpcyBSRUFEWSB0byBydW5cbiAgICovXG4gIHB1YmxpYyBpc1JlYWR5VG9SdW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXREZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBfLnN0YXJ0Q2FzZShDbGFzc0hlbHBlcnMuZ2V0TmFtZSh0aGlzKSk7XG4gIH1cblxuICBhc3luYyB1cChxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnNvbGUubG9nKGBbQmFzZU1pZ3JhdGlvbl0gUnVubmluZyBtaWdyYXRpb24gVVAgXCIke0NsYXNzSGVscGVycy5nZXROYW1lKHRoaXMpfVwiYCk7XG4gIH1cbiAgYXN5bmMgZG93bihxdWVyeVJ1bm5lcjogUXVlcnlSdW5uZXIpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnNvbGUubG9nKGBbQmFzZU1pZ3JhdGlvbl0gUnVubmluZyBtaWdyYXRpb24gRE9XTiBcIiR7Q2xhc3NIZWxwZXJzLmdldE5hbWUodGhpcyl9XCJgKTtcbiAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvYmFzZS1jbGFzc2VzL2Jhc2UtbWlncmF0aW9uLnRzIl19
@@ -1,6 +0,0 @@
1
- import { BaseInjector } from './base-injector';
2
- export class BaseProvider extends BaseInjector {
3
- }
4
- ;
5
- ({}); // @--end-of-file-for-module=taon lib/base-classes/base-provider.ts
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9iYXNlLWNsYXNzZXMvYmFzZS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsTUFBTSxPQUFPLFlBQWEsU0FBUSxZQUFZO0NBQUc7QUFFaEQsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxtRUFBbUUiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQmFzZUluamVjdG9yIH0gZnJvbSAnLi9iYXNlLWluamVjdG9yJztcblxuZXhwb3J0IGNsYXNzIEJhc2VQcm92aWRlciBleHRlbmRzIEJhc2VJbmplY3RvciB7fVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvYmFzZS1jbGFzc2VzL2Jhc2UtcHJvdmlkZXIudHMiXX0=