taon 18.0.34 → 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 (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 +3 -3
  178. package/playground.js.map +1 -1
  179. package/taon.jsonc +39 -39
  180. package/tmp-environment.json +3 -3
  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,198 +0,0 @@
1
- import { _ } from 'tnp-core/websql';
2
- import { Symbols } from './symbols';
3
- import { walk } from 'lodash-walk-object/websql';
4
- import { config } from 'tnp-config/websql';
5
- import { JSON10 } from 'json10/websql';
6
- import { ClassHelpers } from './helpers/class-helpers';
7
- import { Mapping } from 'ng2-rest/websql';
8
- /**
9
- * @deprecated
10
- */
11
- export const getTransformFunction = (target) => {
12
- if (!target) {
13
- return;
14
- }
15
- if (!target) {
16
- return void 0;
17
- }
18
- const configs = ClassHelpers.getControllerConfigs(target);
19
- const functions = configs
20
- .map(c => {
21
- if (_.isFunction(c.browserTransformFn)) {
22
- return c.browserTransformFn;
23
- }
24
- })
25
- .filter(f => _.isFunction(f));
26
- return functions.length === 0
27
- ? void 0
28
- : function (entity) {
29
- for (let index = functions.length - 1; index >= 0; index--) {
30
- const transformFun = functions[index];
31
- transformFun(entity);
32
- }
33
- return entity;
34
- };
35
- };
36
- /**
37
- * @deprecated
38
- */
39
- export const singleTransform = (json) => {
40
- let ptarget = ClassHelpers.getClassFnFromObject(json);
41
- let pbrowserTransformFn = getTransformFunction(ptarget);
42
- if (pbrowserTransformFn) {
43
- const newValue = pbrowserTransformFn(json);
44
- if (!_.isObject(newValue)) {
45
- console.error(`Please return object in transform function for class: ` +
46
- `${ClassHelpers.getName(json)}`);
47
- }
48
- else {
49
- json = newValue;
50
- }
51
- }
52
- return json;
53
- };
54
- export class EntityProcess {
55
- static async init(result, response) {
56
- return await new EntityProcess(result, response).run();
57
- }
58
- constructor(
59
- /**
60
- * Data from backend
61
- */
62
- result, response) {
63
- this.result = result;
64
- this.response = response;
65
- /**
66
- * Say yes to:
67
- * - circural object
68
- * - transform browser fn in decorator
69
- */
70
- this.advancedManipulation = false;
71
- this.circural = [];
72
- }
73
- checkAdvancedManiupulation() {
74
- if (_.isFunction(this.result)) {
75
- this.advancedManipulation = true;
76
- this.result = this.result();
77
- }
78
- }
79
- async run() {
80
- this.checkAdvancedManiupulation();
81
- this.data = this.result;
82
- if (_.isObject(this.result)) {
83
- if (this.advancedManipulation) {
84
- this.applayTransformFn();
85
- }
86
- this.setHeaders();
87
- }
88
- this.send();
89
- }
90
- applayTransformFn() {
91
- if (_.isObject(this.data) && !_.isArray(this.data)) {
92
- this.data = singleTransform(this.data);
93
- }
94
- const { include } = { include: [] };
95
- walk.Object(this.data, (value, lodashPath, changeValue, { skipObject, isCircural }) => {
96
- if (!isCircural) {
97
- if (!_.isArray(value) && _.isObject(value)) {
98
- changeValue(singleTransform(value));
99
- }
100
- }
101
- }, { checkCircural: true, breadthWalk: true, include });
102
- const { circs } = walk.Object(this.data, void 0, {
103
- checkCircural: true,
104
- breadthWalk: true,
105
- include,
106
- });
107
- this.circural = circs;
108
- }
109
- setHeaders() {
110
- const { include } = { include: [] };
111
- const className = ClassHelpers.getName(this.data);
112
- const doNothing = _.isNil(this.data) ||
113
- [
114
- 'Object',
115
- '',
116
- ].includes(className);
117
- if (!doNothing) {
118
- const cleaned = JSON10.cleaned(this.data, void 0, {
119
- breadthWalk: true,
120
- include,
121
- });
122
- this.entityMapping = Mapping.decode(cleaned, !this.advancedManipulation);
123
- this.response.set(Symbols.old.MAPPING_CONFIG_HEADER, JSON.stringify(this.entityMapping));
124
- if (this.advancedManipulation) {
125
- this.response.set(Symbols.old.CIRCURAL_OBJECTS_MAP_BODY, JSON.stringify(this.circural));
126
- }
127
- }
128
- }
129
- send() {
130
- if (this.advancedManipulation) {
131
- const browserKey = config.folder.browser;
132
- let toSend = _.isArray(this.data) ? [] : {};
133
- const { include = [], exclude = [] } = { include: [], exclude: [] };
134
- walk.Object(this.data, (value, lodashPath, changeVAlue, { isCircural, skipObject }) => {
135
- if (isCircural) {
136
- _.set(toSend, lodashPath, null);
137
- }
138
- else {
139
- const fun = getTransformFunction(ClassHelpers.getClassFnFromObject(value));
140
- if (_.isFunction(fun)) {
141
- _.set(toSend, `${lodashPath}.${browserKey}`, value[browserKey]);
142
- const indexProp = ClassHelpers.getUniqueKey(value);
143
- _.set(toSend, `${lodashPath}.${indexProp}`, value[indexProp]);
144
- }
145
- else {
146
- _.set(toSend, lodashPath, value);
147
- }
148
- }
149
- }, { checkCircural: true, breadthWalk: true, include });
150
- if (!_.isArray(this.data)) {
151
- let funParent = getTransformFunction(ClassHelpers.getClassFnFromObject(this.data));
152
- if (_.isFunction(funParent)) {
153
- toSend = {
154
- [browserKey]: toSend[browserKey],
155
- };
156
- }
157
- Object.keys(this.data).forEach(prop => {
158
- if (prop !== browserKey) {
159
- const v = this.data[prop];
160
- if (!((include.length > 0 && !include.includes(prop)) ||
161
- (exclude.length > 0 && exclude.includes(prop)))) {
162
- if (ClassHelpers.isContextClassObject(v) &&
163
- _.isFunction(getTransformFunction(ClassHelpers.getClassFnFromObject(v)))) {
164
- toSend[prop] = {
165
- [browserKey]: v[browserKey],
166
- };
167
- const indexProp = ClassHelpers.getUniqueKey(v);
168
- toSend[prop][indexProp] = this.data[prop][indexProp];
169
- for (const key in v) {
170
- if (_.isObject(v) &&
171
- v.hasOwnProperty(key) &&
172
- ![indexProp, config.folder.browser].includes(key) &&
173
- (_.isString(v[key]) ||
174
- _.isNumber(v[key]) ||
175
- _.isDate(v[key]) ||
176
- _.isNull(v[key]) ||
177
- _.isBoolean(v[key]))) {
178
- toSend[prop][key] = v[key];
179
- }
180
- }
181
- }
182
- else {
183
- toSend[prop] = v;
184
- }
185
- }
186
- }
187
- });
188
- }
189
- this.response.json(toSend);
190
- }
191
- else {
192
- this.response.json(this.data);
193
- }
194
- }
195
- }
196
- ;
197
- ({}); // @--end-of-file-for-module=taon lib/entity-process.ts
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXByb2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC13ZWJzcWwvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvZW50aXR5LXByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLMUM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQWdCLEVBQUUsRUFBRTtJQUN2RCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWixPQUFPO0lBQ1QsQ0FBQztJQUtELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUxRCxNQUFNLFNBQVMsR0FBRyxPQUFPO1NBQ3RCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUNQLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDLENBQUM7U0FDRCxNQUFNLENB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LENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO0NBRUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHVEQUF1RCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgU3ltYm9scyB9IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgeyB3YWxrIH0gZnJvbSAnbG9kYXNoLXdhbGstb2JqZWN0L3dlYnNxbCc7XG5pbXBvcnQgeyBjb25maWcgfSBmcm9tICd0bnAtY29uZmlnL3dlYnNxbCc7XG5pbXBvcnQgeyBKU09OMTAgfSBmcm9tICdqc29uMTAvd2Vic3FsJztcbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4vaGVscGVycy9jbGFzcy1oZWxwZXJzJztcbmltcG9ydCB7IE1hcHBpbmcgfSBmcm9tICduZzItcmVzdC93ZWJzcWwnO1xuaW1wb3J0IHsgUmVzcG9uc2UgfSBmcm9tICdleHByZXNzJztcblxuXG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFRyYW5zZm9ybUZ1bmN0aW9uID0gKHRhcmdldDogRnVuY3Rpb24pID0+IHtcbiAgaWYgKCF0YXJnZXQpIHtcbiAgICByZXR1cm47XG4gIH1cblxuXG5cblxuICBpZiAoIXRhcmdldCkge1xuICAgIHJldHVybiB2b2lkIDA7XG4gIH1cbiAgY29uc3QgY29uZmlncyA9IENsYXNzSGVscGVycy5nZXRDb250cm9sbGVyQ29uZmlncyh0YXJnZXQpO1xuXG4gIGNvbnN0IGZ1bmN0aW9ucyA9IGNvbmZpZ3NcbiAgICAubWFwKGMgPT4ge1xuICAgICAgaWYgKF8uaXNGdW5jdGlvbihjLmJyb3dzZXJUcmFuc2Zvcm1GbikpIHtcbiAgICAgICAgcmV0dXJuIGMuYnJvd3NlclRyYW5zZm9ybUZuO1xuICAgICAgfVxuICAgIH0pXG4gICAgLmZpbHRlcihmID0+IF8uaXNGdW5jdGlvbihmKSk7XG4gIHJldHVybiBmdW5jdGlvbnMubGVuZ3RoID09PSAwXG4gICAgPyB2b2lkIDBcbiAgICA6IGZ1bmN0aW9uIChlbnRpdHkpIHtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSBmdW5jdGlvbnMubGVuZ3RoIC0gMTsgaW5kZXggPj0gMDsgaW5kZXgtLSkge1xuICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybUZ1biA9IGZ1bmN0aW9uc1tpbmRleF07XG4gICAgICAgICAgdHJhbnNmb3JtRnVuKGVudGl0eSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVudGl0eTtcbiAgICAgIH07XG59O1xuXG5cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY29uc3Qgc2luZ2xlVHJhbnNmb3JtID0gKGpzb246IGFueSkgPT4ge1xuICBsZXQgcHRhcmdldCA9IENsYXNzSGVscGVycy5nZXRDbGFzc0ZuRnJvbU9iamVjdChqc29uKTtcbiAgbGV0IHBicm93c2VyVHJhbnNmb3JtRm4gPSBnZXRUcmFuc2Zvcm1GdW5jdGlvbihwdGFyZ2V0KTtcbiAgaWYgKHBicm93c2VyVHJhbnNmb3JtRm4pIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHBicm93c2VyVHJhbnNmb3JtRm4oanNvbik7XG4gICAgaWYgKCFfLmlzT2JqZWN0KG5ld1ZhbHVlKSkge1xuICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgYFBsZWFzZSByZXR1cm4gb2JqZWN0IGluIHRyYW5zZm9ybSBmdW5jdGlvbiBmb3IgY2xhc3M6IGAgK1xuICAgICAgICAgIGAke0NsYXNzSGVscGVycy5nZXROYW1lKGpzb24pfWAsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBqc29uID0gbmV3VmFsdWU7XG4gICAgfVxuICB9XG4gIHJldHVybiBqc29uO1xufTtcblxuXG5leHBvcnQgY2xhc3MgRW50aXR5UHJvY2VzcyB7XG5cbiAgc3RhdGljIGFzeW5jIGluaXQocmVzdWx0OiBhbnksIHJlc3BvbnNlOiBSZXNwb25zZSkge1xuICAgIHJldHVybiBhd2FpdCBuZXcgRW50aXR5UHJvY2VzcyhyZXN1bHQsIHJlc3BvbnNlKS5ydW4oKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogRGF0YSB0byBzZW5kXG4gICAqL1xuICBkYXRhOiBhbnk7XG5cbiAgLyoqXG4gICAqIFNheSB5ZXMgdG86XG4gICAqIC0gY2lyY3VyYWwgb2JqZWN0XG4gICAqIC0gdHJhbnNmb3JtIGJyb3dzZXIgZm4gaW4gZGVjb3JhdG9yXG4gICAqL1xuICBwcml2YXRlIGFkdmFuY2VkTWFuaXB1bGF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgZW50aXR5TWFwcGluZzogYW55O1xuICBwcml2YXRlIGNpcmN1cmFsID0gW107XG5cblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIERhdGEgZnJvbSBiYWNrZW5kXG4gICAgICovXG4gICAgcHJpdmF0ZSByZXN1bHQ6IGFueSxcbiAgICBwcml2YXRlIHJlc3BvbnNlOiBSZXNwb25zZSxcbiAgKSB7fVxuXG5cblxuICBwcml2YXRlIGNoZWNrQWR2YW5jZWRNYW5pdXB1bGF0aW9uKCkge1xuICAgIGlmIChfLmlzRnVuY3Rpb24odGhpcy5yZXN1bHQpKSB7XG4gICAgICB0aGlzLmFkdmFuY2VkTWFuaXB1bGF0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMucmVzdWx0ID0gdGhpcy5yZXN1bHQoKTtcbiAgICB9XG4gIH1cblxuXG5cbiAgcHVibGljIGFzeW5jIHJ1bigpIHtcbiAgICB0aGlzLmNoZWNrQWR2YW5jZWRNYW5pdXB1bGF0aW9uKCk7XG4gICAgdGhpcy5kYXRhID0gdGhpcy5yZXN1bHQ7XG5cbiAgICBpZiAoXy5pc09iamVjdCh0aGlzLnJlc3VsdCkpIHtcbiAgICAgIGlmICh0aGlzLmFkdmFuY2VkTWFuaXB1bGF0aW9uKSB7XG4gICAgICAgIHRoaXMuYXBwbGF5VHJhbnNmb3JtRm4oKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXRIZWFkZXJzKCk7XG4gICAgfVxuICAgIHRoaXMuc2VuZCgpO1xuICB9XG5cblxuXG4gIGFwcGxheVRyYW5zZm9ybUZuKCkge1xuICAgIGlmIChfLmlzT2JqZWN0KHRoaXMuZGF0YSkgJiYgIV8uaXNBcnJheSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aGlzLmRhdGEgPSBzaW5nbGVUcmFuc2Zvcm0odGhpcy5kYXRhKTtcbiAgICB9XG4gICAgY29uc3QgeyBpbmNsdWRlIH0gPSB7IGluY2x1ZGU6IFtdIH07XG4gICAgd2Fsay5PYmplY3QoXG4gICAgICB0aGlzLmRhdGEsXG4gICAgICAodmFsdWUsIGxvZGFzaFBhdGgsIGNoYW5nZVZhbHVlLCB7IHNraXBPYmplY3QsIGlzQ2lyY3VyYWwgfSkgPT4ge1xuXG4gICAgICAgIGlmICghaXNDaXJjdXJhbCkge1xuICAgICAgICAgIGlmICghXy5pc0FycmF5KHZhbHVlKSAmJiBfLmlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgICAgY2hhbmdlVmFsdWUoc2luZ2xlVHJhbnNmb3JtKHZhbHVlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBjaGVja0NpcmN1cmFsOiB0cnVlLCBicmVhZHRoV2FsazogdHJ1ZSwgaW5jbHVkZSB9LFxuICAgICk7XG5cbiAgICBjb25zdCB7IGNpcmNzIH0gPSB3YWxrLk9iamVjdCh0aGlzLmRhdGEsIHZvaWQgMCwge1xuICAgICAgY2hlY2tDaXJjdXJhbDogdHJ1ZSxcbiAgICAgIGJyZWFkdGhXYWxrOiB0cnVlLFxuICAgICAgaW5jbHVkZSxcbiAgICB9KTtcbiAgICB0aGlzLmNpcmN1cmFsID0gY2lyY3M7XG4gIH1cblxuXG5cbiAgc2V0SGVhZGVycygpOiB2b2lkIHtcbiAgICBjb25zdCB7IGluY2x1ZGUgfSA9IHsgaW5jbHVkZTogW10gfTtcblxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IENsYXNzSGVscGVycy5nZXROYW1lKHRoaXMuZGF0YSk7XG4gICAgY29uc3QgZG9Ob3RoaW5nID1cbiAgICAgIF8uaXNOaWwodGhpcy5kYXRhKSB8fFxuICAgICAgW1xuICAgICAgICAnT2JqZWN0JyxcbiAgICAgICAgJycsXG5cbiAgICAgIF0uaW5jbHVkZXMoY2xhc3NOYW1lKTtcblxuICAgIGlmICghZG9Ob3RoaW5nKSB7XG4gICAgICBjb25zdCBjbGVhbmVkID0gSlNPTjEwLmNsZWFuZWQodGhpcy5kYXRhLCB2b2lkIDAsIHtcbiAgICAgICAgYnJlYWR0aFdhbGs6IHRydWUsXG4gICAgICAgIGluY2x1ZGUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZW50aXR5TWFwcGluZyA9IE1hcHBpbmcuZGVjb2RlKGNsZWFuZWQsICF0aGlzLmFkdmFuY2VkTWFuaXB1bGF0aW9uKTtcblxuICAgICAgdGhpcy5yZXNwb25zZS5zZXQoXG4gICAgICAgIFN5bWJvbHMub2xkLk1BUFBJTkdfQ09ORklHX0hFQURFUixcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5lbnRpdHlNYXBwaW5nKSxcbiAgICAgICk7XG4gICAgICBpZiAodGhpcy5hZHZhbmNlZE1hbmlwdWxhdGlvbikge1xuICAgICAgICB0aGlzLnJlc3BvbnNlLnNldChcbiAgICAgICAgICBTeW1ib2xzLm9sZC5DSVJDVVJBTF9PQkpFQ1RTX01BUF9CT0RZLFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuY2lyY3VyYWwpLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cblxuICBzZW5kKCkge1xuICAgIGlmICh0aGlzLmFkdmFuY2VkTWFuaXB1bGF0aW9uKSB7XG4gICAgICBjb25zdCBicm93c2VyS2V5ID0gY29uZmlnLmZvbGRlci5icm93c2VyO1xuICAgICAgbGV0IHRvU2VuZCA9IF8uaXNBcnJheSh0aGlzLmRhdGEpID8gW10gOiB7fTtcblxuICAgICAgY29uc3QgeyBpbmNsdWRlID0gW10sIGV4Y2x1ZGUgPSBbXSB9ID0geyBpbmNsdWRlOiBbXSwgZXhjbHVkZTogW10gfTtcblxuICAgICAgd2Fsay5PYmplY3QoXG4gICAgICAgIHRoaXMuZGF0YSxcbiAgICAgICAgKHZhbHVlLCBsb2Rhc2hQYXRoLCBjaGFuZ2VWQWx1ZSwgeyBpc0NpcmN1cmFsLCBza2lwT2JqZWN0IH0pID0+IHtcblxuICAgICAgICAgIGlmIChpc0NpcmN1cmFsKSB7XG4gICAgICAgICAgICBfLnNldCh0b1NlbmQsIGxvZGFzaFBhdGgsIG51bGwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBmdW4gPSBnZXRUcmFuc2Zvcm1GdW5jdGlvbihcbiAgICAgICAgICAgICAgQ2xhc3NIZWxwZXJzLmdldENsYXNzRm5Gcm9tT2JqZWN0KHZhbHVlKSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChfLmlzRnVuY3Rpb24oZnVuKSkge1xuICAgICAgICAgICAgICBfLnNldCh0b1NlbmQsIGAke2xvZGFzaFBhdGh9LiR7YnJvd3NlcktleX1gLCB2YWx1ZVticm93c2VyS2V5XSk7XG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4UHJvcCA9IENsYXNzSGVscGVycy5nZXRVbmlxdWVLZXkodmFsdWUpO1xuICAgICAgICAgICAgICBfLnNldCh0b1NlbmQsIGAke2xvZGFzaFBhdGh9LiR7aW5kZXhQcm9wfWAsIHZhbHVlW2luZGV4UHJvcF0pO1xuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBfLnNldCh0b1NlbmQsIGxvZGFzaFBhdGgsIHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgY2hlY2tDaXJjdXJhbDogdHJ1ZSwgYnJlYWR0aFdhbGs6IHRydWUsIGluY2x1ZGUgfSxcbiAgICAgICk7XG5cbiAgICAgIGlmICghXy5pc0FycmF5KHRoaXMuZGF0YSkpIHtcbiAgICAgICAgbGV0IGZ1blBhcmVudCA9IGdldFRyYW5zZm9ybUZ1bmN0aW9uKFxuICAgICAgICAgIENsYXNzSGVscGVycy5nZXRDbGFzc0ZuRnJvbU9iamVjdCh0aGlzLmRhdGEpLFxuICAgICAgICApO1xuXG5cblxuICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGZ1blBhcmVudCkpIHtcbiAgICAgICAgICB0b1NlbmQgPSB7XG4gICAgICAgICAgICBbYnJvd3NlcktleV06IHRvU2VuZFticm93c2VyS2V5XSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMuZGF0YSkuZm9yRWFjaChwcm9wID0+IHtcbiAgICAgICAgICBpZiAocHJvcCAhPT0gYnJvd3NlcktleSkge1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZGF0YVtwcm9wXTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICAoaW5jbHVkZS5sZW5ndGggPiAwICYmICFpbmNsdWRlLmluY2x1ZGVzKHByb3ApKSB8fFxuICAgICAgICAgICAgICAgIChleGNsdWRlLmxlbmd0aCA+IDAgJiYgZXhjbHVkZS5pbmNsdWRlcyhwcm9wKSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBDbGFzc0hlbHBlcnMuaXNDb250ZXh0Q2xhc3NPYmplY3QodikgJiZcbiAgICAgICAgICAgICAgICBfLmlzRnVuY3Rpb24oXG4gICAgICAgICAgICAgICAgICBnZXRUcmFuc2Zvcm1GdW5jdGlvbihDbGFzc0hlbHBlcnMuZ2V0Q2xhc3NGbkZyb21PYmplY3QodikpLFxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdG9TZW5kW3Byb3BdID0ge1xuICAgICAgICAgICAgICAgICAgW2Jyb3dzZXJLZXldOiB2W2Jyb3dzZXJLZXldLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXhQcm9wID0gQ2xhc3NIZWxwZXJzLmdldFVuaXF1ZUtleSh2KTtcbiAgICAgICAgICAgICAgICB0b1NlbmRbcHJvcF1baW5kZXhQcm9wXSA9IHRoaXMuZGF0YVtwcm9wXVtpbmRleFByb3BdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHYpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgXy5pc09iamVjdCh2KSAmJlxuICAgICAgICAgICAgICAgICAgICB2Lmhhc093blByb3BlcnR5KGtleSkgJiZcbiAgICAgICAgICAgICAgICAgICAgIVtpbmRleFByb3AsIGNvbmZpZy5mb2xkZXIuYnJvd3Nlcl0uaW5jbHVkZXMoa2V5KSAmJlxuICAgICAgICAgICAgICAgICAgICAoXy5pc1N0cmluZyh2W2tleV0pIHx8XG4gICAgICAgICAgICAgICAgICAgICAgXy5pc051bWJlcih2W2tleV0pIHx8XG4gICAgICAgICAgICAgICAgICAgICAgXy5pc0RhdGUodltrZXldKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIF8uaXNOdWxsKHZba2V5XSkgfHxcbiAgICAgICAgICAgICAgICAgICAgICBfLmlzQm9vbGVhbih2W2tleV0pKVxuICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvU2VuZFtwcm9wXVtrZXldID0gdltrZXldO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0b1NlbmRbcHJvcF0gPSB2O1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuXG4gICAgICB0aGlzLnJlc3BvbnNlLmpzb24odG9TZW5kKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNwb25zZS5qc29uKHRoaXMuZGF0YSk7XG4gICAgfVxuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL2VudGl0eS1wcm9jZXNzLnRzIl19
@@ -1,6 +0,0 @@
1
- import { Helpers } from 'tnp-core/websql';
2
- const ENV = Helpers.isBrowser ? window['ENV'] : global['ENV'];
3
- export { ENV };
4
- ;
5
- ({}); // @--end-of-file-for-module=taon lib/env.ts
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2Vudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO0FBRWQsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJ3RucC1jb3JlL3dlYnNxbCc7XG5cbmNvbnN0IEVOViA9IEhlbHBlcnMuaXNCcm93c2VyID8gd2luZG93WydFTlYnXSA6IGdsb2JhbFsnRU5WJ107XG5cbmV4cG9ydCB7IEVOViB9O1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvZW52LnRzIl19
@@ -1,25 +0,0 @@
1
- import { Helpers } from 'tnp-core/websql';
2
- export const getResponseValue = (response, options) => {
3
- const { req, res } = options || {};
4
- return new Promise(async (resolve, reject) => {
5
- if (typeof response === 'function') {
6
- const asyncResponse = response;
7
- try {
8
- const result = await asyncResponse(req, res);
9
- resolve(result);
10
- }
11
- catch (e) {
12
- console.error(e);
13
- console.error('[taon] Error during function call inside controller');
14
- Helpers.renderError(e);
15
- reject(e);
16
- }
17
- }
18
- else {
19
- reject(`[taon] Not recognized type of response ${response}`);
20
- }
21
- });
22
- };
23
- ;
24
- ({}); // @--end-of-file-for-module=taon lib/get-response-value.ts
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXJlc3BvbnNlLXZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2dldC1yZXNwb25zZS12YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FDOUIsUUFBaUMsRUFDakMsT0FBdUQsRUFDM0MsRUFBRTtJQUVkLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUNuQyxPQUFPLElBQUksT0FBTyxDQUFJLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFHOUMsSUFBSSxPQUFPLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNuQyxNQUFNLGFBQWEsR0FBaUMsUUFBZSxDQUFDO1lBQ3BFLElBQUksQ0FBQztnQkFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzdDLE9BQU8sQ0FBQyxNQUFhLENBQUMsQ0FBQztZQUN6QixDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7Z0JBQ3JFLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNaLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQywwQ0FBMEMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBRUgsQ0FBQyxDQUFDLENBQUM7QUFFTCxDQUFDLENBQUM7QUFFRCxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLDJEQUEyRCIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBNb2RlbHMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyAgIFJlc3BvbnNlIGFzIEV4cHJlc3NSZXNwb25zZSwgICBSZXF1ZXN0IGFzIEV4cHJlc3NSZXF1ZXN0LCB9IGZyb20gJ2V4cHJlc3MnOy8qICovXG4vKiAqL1xuLyogKi9cblxuaW1wb3J0IHsgVGFvbkhlbHBlcnMgfSBmcm9tICcuL2hlbHBlcnMvdGFvbi1oZWxwZXJzJztcbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuXG5leHBvcnQgY29uc3QgZ2V0UmVzcG9uc2VWYWx1ZSA9IDxUPihcbiAgcmVzcG9uc2U6IE1vZGVscy5IdHRwLlJlc3BvbnNlPFQ+LFxuICBvcHRpb25zPzogeyByZXE6IEV4cHJlc3NSZXF1ZXN0OyByZXM6IEV4cHJlc3NSZXNwb25zZSB9LFxuKTogUHJvbWlzZTxUPiA9PiB7XG5cbiAgY29uc3QgeyByZXEsIHJlcyB9ID0gb3B0aW9ucyB8fCB7fTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlPFQ+KGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuXG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgYXN5bmNSZXNwb25zZTogTW9kZWxzLkh0dHAuQXN5bmNSZXNwb25zZTxUPiA9IHJlc3BvbnNlIGFzIGFueTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGFzeW5jUmVzcG9uc2UocmVxLCByZXMpO1xuICAgICAgICByZXNvbHZlKHJlc3VsdCBhcyBhbnkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbdGFvbl0gRXJyb3IgZHVyaW5nIGZ1bmN0aW9uIGNhbGwgaW5zaWRlIGNvbnRyb2xsZXInKTtcbiAgICAgICAgSGVscGVycy5yZW5kZXJFcnJvcihlKTtcbiAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZWplY3QoYFt0YW9uXSBOb3QgcmVjb2duaXplZCB0eXBlIG9mIHJlc3BvbnNlICR7cmVzcG9uc2V9YCk7XG4gICAgfVxuXG4gIH0pO1xuXG59O1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvZ2V0LXJlc3BvbnNlLXZhbHVlLnRzIl19
@@ -1,183 +0,0 @@
1
- import { Symbols } from '../symbols';
2
- import { Validators } from '../validators';
3
- import { _ } from 'tnp-core/websql';
4
- import { Models } from '../models';
5
- import { TaonHelpers } from './taon-helpers';
6
- import { CLASS } from 'typescript-class-helpers/websql';
7
- /* */
8
- /* */
9
- export var ClassHelpers;
10
- (function (ClassHelpers) {
11
- /**
12
- * TODO - repalce in every place when getting class fn from object
13
- */
14
- ClassHelpers.getClassFnFromObject = (json) => {
15
- if (_.isUndefined(json) || _.isNull(json)) {
16
- return;
17
- }
18
- if (json.constructor) {
19
- return json.constructor;
20
- }
21
- const p = Object.getPrototypeOf(json);
22
- return p && p.constructor && p.constructor.name !== 'Object'
23
- ? p.constructor
24
- : void 0;
25
- };
26
- ClassHelpers.getName = (classFnOrObject) => {
27
- if (classFnOrObject instanceof FormData) {
28
- return 'FormData';
29
- }
30
- if (!classFnOrObject) {
31
- console.error('OBJECT OR CLASS', classFnOrObject);
32
- throw new Error(`Cannot get name from this object or class.`);
33
- }
34
- return ((classFnOrObject[Symbols.classNameStaticProperty]
35
- ? classFnOrObject[Symbols.classNameStaticProperty]
36
- : classFnOrObject?.constructor[Symbols.classNameStaticProperty]) ||
37
- CLASS.getName(classFnOrObject));
38
- };
39
- ClassHelpers.getOrginalClass = (classFnOrObject) => {
40
- const org = classFnOrObject[Symbols.orignalClass];
41
- if (!org) {
42
- return classFnOrObject;
43
- }
44
- return ClassHelpers.getOrginalClass(org);
45
- };
46
- ClassHelpers.getFullInternalName = (classFnOrObject) => {
47
- if (!classFnOrObject) {
48
- throw new Error(`Cannot get name from: ${classFnOrObject}`);
49
- }
50
- return ((classFnOrObject[Symbols.fullClassNameStaticProperty]
51
- ? classFnOrObject[Symbols.fullClassNameStaticProperty]
52
- : classFnOrObject?.constructor[Symbols.fullClassNameStaticProperty]) ||
53
- void 0);
54
- };
55
- ClassHelpers.getUniqueKey = (classFnOrObject) => {
56
- const classFn = _.isFunction(classFnOrObject)
57
- ? classFnOrObject
58
- : classFnOrObject.constructor;
59
- const config = Reflect.getMetadata(Symbols.metadata.options.controller, classFn);
60
- return config.uniqueKeyProp;
61
- };
62
- ClassHelpers.isContextClassObject = (obj) => {
63
- if (!_.isObject(obj) ||
64
- _.isArray(obj) ||
65
- _.isRegExp(obj) ||
66
- _.isBuffer(obj) ||
67
- _.isArrayBuffer(obj)) {
68
- return false;
69
- }
70
- if (_.isDate(obj)) {
71
- return true;
72
- }
73
- const className = ClassHelpers.getName(obj);
74
- return _.isString(className) && className !== 'Object';
75
- };
76
- ClassHelpers.setName = (target, className) => {
77
- Validators.classNameVlidation(className, target);
78
- target[Symbols.classNameStaticProperty] = className;
79
- };
80
- ClassHelpers.hasParentClassWithName = (target, className, targets = []) => {
81
- if (!target) {
82
- return false;
83
- }
84
- targets.push(target);
85
- let targetProto = Object.getPrototypeOf(target);
86
- if (_.isFunction(targetProto) &&
87
- ClassHelpers.getName(targetProto) === className) {
88
- return true;
89
- }
90
- return ClassHelpers.hasParentClassWithName(targetProto, className, targets);
91
- };
92
- ClassHelpers.getControllerConfig = (target) => {
93
- const classMetadataOptions = Reflect.getMetadata(Symbols.metadata.options.controller, target);
94
- const classMetadata = _.merge(new Models.ControllerConfig(), classMetadataOptions);
95
- const methodNames = ClassHelpers.getMethodsNames(target); // Object.getOwnPropertyNames(target.prototype);
96
- for (const methodName of methodNames) {
97
- const methodMetadata = Reflect.getMetadata(Symbols.metadata.options.controllerMethod, target, methodName);
98
- if (methodMetadata) {
99
- classMetadata.methods[methodName] = methodMetadata;
100
- }
101
- }
102
- return classMetadata;
103
- };
104
- const notAllowedAsMethodName = [
105
- 'length',
106
- 'name',
107
- 'arguments',
108
- 'caller',
109
- 'constructor',
110
- 'apply',
111
- 'bind',
112
- 'call',
113
- 'toString',
114
- '__defineGetter__',
115
- '__defineSetter__',
116
- 'hasOwnProperty',
117
- '__lookupGetter__',
118
- '__lookupSetter__',
119
- 'isPrototypeOf',
120
- 'propertyIsEnumerable',
121
- 'valueOf',
122
- '__proto__',
123
- 'toLocaleString',
124
- ];
125
- ClassHelpers.getMethodsNames = (classOrClassInstance, allMethodsNames = []) => {
126
- if (!classOrClassInstance) {
127
- return allMethodsNames;
128
- }
129
- const isClassFunction = _.isFunction(classOrClassInstance);
130
- const classFun = isClassFunction
131
- ? classOrClassInstance
132
- : Object.getPrototypeOf(classOrClassInstance);
133
- const objectToCheck = isClassFunction
134
- ? classOrClassInstance?.prototype
135
- : classOrClassInstance;
136
- const prototypeObj = Object.getPrototypeOf(objectToCheck || {});
137
- const properties = _.uniq([
138
- ...Object.getOwnPropertyNames(objectToCheck || {}),
139
- ...Object.getOwnPropertyNames(prototypeObj || {}),
140
- ...Object.keys(objectToCheck || {}),
141
- ...Object.keys(prototypeObj || {}),
142
- ]).filter(f => !!f && !notAllowedAsMethodName.includes(f));
143
- properties
144
- .filter(methodName => typeof objectToCheck[methodName] === 'function')
145
- .forEach(p => allMethodsNames.push(p));
146
- if (!classFun ||
147
- !classFun.constructor ||
148
- classFun?.constructor?.name === 'Object') {
149
- return allMethodsNames;
150
- }
151
- return ClassHelpers.getMethodsNames(Object.getPrototypeOf(classFun), allMethodsNames);
152
- };
153
- ClassHelpers.getControllerConfigs = (target, configs = [], callerTarget) => {
154
- if (!_.isFunction(target)) {
155
- throw `[typescript-class-helper][getClassConfig] Cannot get class config from: ${target}`;
156
- }
157
- let config;
158
- const parentClass = Object.getPrototypeOf(target);
159
- const parentName = parentClass ? ClassHelpers.getName(parentClass) : void 0;
160
- const isValidParent = _.isFunction(parentClass) && parentName !== '';
161
- config = ClassHelpers.getControllerConfig(target);
162
- configs.push(config);
163
- return isValidParent
164
- ? ClassHelpers.getControllerConfigs(parentClass, configs, target)
165
- : configs;
166
- };
167
- ClassHelpers.getCalculatedPathFor = (target) => {
168
- const configs = ClassHelpers.getControllerConfigs(target);
169
- const parentscalculatedPath = _.slice(configs, 1)
170
- .reverse()
171
- .map(bc => {
172
- if (TaonHelpers.isGoodPath(bc.path)) {
173
- return bc.path;
174
- }
175
- return bc.className;
176
- })
177
- .join('/');
178
- return `/${parentscalculatedPath}/${ClassHelpers.getName(target)}`;
179
- };
180
- })(ClassHelpers || (ClassHelpers = {}));
181
- ;
182
- ({}); // @--end-of-file-for-module=taon lib/helpers/class-helpers.ts
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0LXdlYnNxbC90YW9uL3Byb2plY3RzL3Rhb24vc3JjL2xpYi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRW5DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEQsS0FBSztBQUNMLEtBQUs7QUFHTCxNQUFNLEtBQVcsWUFBWSxDQXdRNUI7QUF4UUQsV0FBaUIsWUFBWTtJQUUzQjs7T0FFRztJQUNVLGlDQUFvQixHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDbkQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMxQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBQ0QsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVE7WUFDMUQsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXO1lBQ2Ys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QztRQUN0QixDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFYixPQUFPLElBQUkscUJBQXFCLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQ3JFLENBQUMsQ0FBQztBQUVKLENBQUMsRUF4UWdCLFlBQVksS0FBWixZQUFZLFFBd1E1QjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOERBQThEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IFZhbGlkYXRvcnMgfSBmcm9tICcuLi92YWxpZGF0b3JzJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IFRhb25Db250cm9sbGVyT3B0aW9ucyB9IGZyb20gJy4uL2RlY29yYXRvcnMvY2xhc3Nlcy9jb250cm9sbGVyLWRlY29yYXRvcic7XG5pbXBvcnQgeyBUYW9uSGVscGVycyB9IGZyb20gJy4vdGFvbi1oZWxwZXJzJztcbmltcG9ydCB7IFRhb25FbnRpdHlPcHRpb25zIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9jbGFzc2VzL2VudGl0eS1kZWNvcmF0b3InO1xuaW1wb3J0IHsgQ0xBU1MgfSBmcm9tICd0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcnMvd2Vic3FsJztcbi8qICovXG4vKiAqL1xuICBcblxuZXhwb3J0IG5hbWVzcGFjZSBDbGFzc0hlbHBlcnMge1xuXG4gIC8qKlxuICAgKiBUT0RPIC0gcmVwYWxjZSBpbiBldmVyeSBwbGFjZSB3aGVuIGdldHRpbmcgY2xhc3MgZm4gZnJvbSBvYmplY3RcbiAgICovXG4gIGV4cG9ydCBjb25zdCBnZXRDbGFzc0ZuRnJvbU9iamVjdCA9IChqc29uOiBPYmplY3QpID0+IHtcbiAgICBpZiAoXy5pc1VuZGVmaW5lZChqc29uKSB8fCBfLmlzTnVsbChqc29uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoanNvbi5jb25zdHJ1Y3Rvcikge1xuICAgICAgcmV0dXJuIGpzb24uY29uc3RydWN0b3I7XG4gICAgfVxuICAgIGNvbnN0IHAgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoanNvbik7XG4gICAgcmV0dXJuIHAgJiYgcC5jb25zdHJ1Y3RvciAmJiBwLmNvbnN0cnVjdG9yLm5hbWUgIT09ICdPYmplY3QnXG4gICAgICA/IHAuY29uc3RydWN0b3JcbiAgICAgIDogdm9pZCAwO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgZ2V0TmFtZSA9IChjbGFzc0ZuT3JPYmplY3Q6IGFueSk6IHN0cmluZyA9PiB7XG5cbiAgICBpZiAoY2xhc3NGbk9yT2JqZWN0IGluc3RhbmNlb2YgRm9ybURhdGEpIHtcbiAgICAgIHJldHVybiAnRm9ybURhdGEnO1xuICAgIH1cbiAgICBpZiAoIWNsYXNzRm5Pck9iamVjdCkge1xuICAgICAgY29uc29sZS5lcnJvcignT0JKRUNUIE9SIENMQVNTJywgY2xhc3NGbk9yT2JqZWN0KTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGdldCBuYW1lIGZyb20gdGhpcyBvYmplY3Qgb3IgY2xhc3MuYCk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICAoY2xhc3NGbk9yT2JqZWN0W1N5bWJvbHMuY2xhc3NOYW1lU3RhdGljUHJvcGVydHldXG4gICAgICAgID8gY2xhc3NGbk9yT2JqZWN0W1N5bWJvbHMuY2xhc3NOYW1lU3RhdGljUHJvcGVydHldXG4gICAgICAgIDogY2xhc3NGbk9yT2JqZWN0Py5jb25zdHJ1Y3RvcltTeW1ib2xzLmNsYXNzTmFtZVN0YXRpY1Byb3BlcnR5XSkgfHxcbiAgICAgIENMQVNTLmdldE5hbWUoY2xhc3NGbk9yT2JqZWN0KVxuICAgICk7XG4gIH07XG5cblxuICBleHBvcnQgY29uc3QgZ2V0T3JnaW5hbENsYXNzID0gKGNsYXNzRm5Pck9iamVjdDogYW55KTogYW55ID0+IHtcbiAgICBjb25zdCBvcmcgPSBjbGFzc0ZuT3JPYmplY3RbU3ltYm9scy5vcmlnbmFsQ2xhc3NdO1xuICAgIGlmICghb3JnKSB7XG4gICAgICByZXR1cm4gY2xhc3NGbk9yT2JqZWN0O1xuICAgIH1cbiAgICByZXR1cm4gZ2V0T3JnaW5hbENsYXNzKG9yZyk7XG4gIH07XG5cblxuICBleHBvcnQgY29uc3QgZ2V0RnVsbEludGVybmFsTmFtZSA9IChjbGFzc0ZuT3JPYmplY3Q6IGFueSk6IHN0cmluZyA9PiB7XG5cblxuICAgIGlmICghY2xhc3NGbk9yT2JqZWN0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBnZXQgbmFtZSBmcm9tOiAke2NsYXNzRm5Pck9iamVjdH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIChjbGFzc0ZuT3JPYmplY3RbU3ltYm9scy5mdWxsQ2xhc3NOYW1lU3RhdGljUHJvcGVydHldXG4gICAgICAgID8gY2xhc3NGbk9yT2JqZWN0W1N5bWJvbHMuZnVsbENsYXNzTmFtZVN0YXRpY1Byb3BlcnR5XVxuICAgICAgICA6IGNsYXNzRm5Pck9iamVjdD8uY29uc3RydWN0b3JbU3ltYm9scy5mdWxsQ2xhc3NOYW1lU3RhdGljUHJvcGVydHldKSB8fFxuICAgICAgdm9pZCAwXG4gICAgKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGdldFVuaXF1ZUtleSA9IChjbGFzc0ZuT3JPYmplY3Q6IGFueSk6IHN0cmluZyA9PiB7XG4gICAgY29uc3QgY2xhc3NGbiA9IF8uaXNGdW5jdGlvbihjbGFzc0ZuT3JPYmplY3QpXG4gICAgICA/IGNsYXNzRm5Pck9iamVjdFxuICAgICAgOiBjbGFzc0ZuT3JPYmplY3QuY29uc3RydWN0b3I7XG4gICAgY29uc3QgY29uZmlnID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcbiAgICAgIFN5bWJvbHMubWV0YWRhdGEub3B0aW9ucy5jb250cm9sbGVyLFxuICAgICAgY2xhc3NGbixcbiAgICApIGFzIFRhb25FbnRpdHlPcHRpb25zO1xuICAgIHJldHVybiBjb25maWcudW5pcXVlS2V5UHJvcDtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGlzQ29udGV4dENsYXNzT2JqZWN0ID0gKG9iajogYW55KTogYm9vbGVhbiA9PiB7XG4gICAgaWYgKFxuICAgICAgIV8uaXNPYmplY3Qob2JqKSB8fFxuICAgICAgXy5pc0FycmF5KG9iaikgfHxcbiAgICAgIF8uaXNSZWdFeHAob2JqKSB8fFxuICAgICAgXy5pc0J1ZmZlcihvYmopIHx8XG4gICAgICBfLmlzQXJyYXlCdWZmZXIob2JqKVxuICAgICkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoXy5pc0RhdGUob2JqKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGNsYXNzTmFtZSA9IGdldE5hbWUob2JqKTtcbiAgICByZXR1cm4gXy5pc1N0cmluZyhjbGFzc05hbWUpICYmIGNsYXNzTmFtZSAhPT0gJ09iamVjdCc7XG4gIH07XG5cblxuXG5cbiAgZXhwb3J0IGNvbnN0IHNldE5hbWUgPSAodGFyZ2V0OiBGdW5jdGlvbiwgY2xhc3NOYW1lOiBzdHJpbmcpOiB2b2lkID0+IHtcblxuICAgIFZhbGlkYXRvcnMuY2xhc3NOYW1lVmxpZGF0aW9uKGNsYXNzTmFtZSwgdGFyZ2V0KTtcbiAgICB0YXJnZXRbU3ltYm9scy5jbGFzc05hbWVTdGF0aWNQcm9wZXJ0eV0gPSBjbGFzc05hbWU7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBoYXNQYXJlbnRDbGFzc1dpdGhOYW1lID0gKFxuICAgIHRhcmdldDogRnVuY3Rpb24sXG4gICAgY2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgdGFyZ2V0cyA9IFtdLFxuICApOiBib29sZWFuID0+IHtcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0YXJnZXRzLnB1c2godGFyZ2V0KTtcbiAgICBsZXQgdGFyZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YodGFyZ2V0KTtcblxuICAgIGlmIChcbiAgICAgIF8uaXNGdW5jdGlvbih0YXJnZXRQcm90bykgJiZcbiAgICAgIENsYXNzSGVscGVycy5nZXROYW1lKHRhcmdldFByb3RvKSA9PT0gY2xhc3NOYW1lXG4gICAgKSB7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gaGFzUGFyZW50Q2xhc3NXaXRoTmFtZSh0YXJnZXRQcm90bywgY2xhc3NOYW1lLCB0YXJnZXRzKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGdldENvbnRyb2xsZXJDb25maWcgPSAoXG4gICAgdGFyZ2V0OiBGdW5jdGlvbixcbiAgKTogTW9kZWxzLkNvbnRyb2xsZXJDb25maWcgfCB1bmRlZmluZWQgPT4ge1xuICAgIGNvbnN0IGNsYXNzTWV0YWRhdGFPcHRpb25zOiBUYW9uQ29udHJvbGxlck9wdGlvbnMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFxuICAgICAgU3ltYm9scy5tZXRhZGF0YS5vcHRpb25zLmNvbnRyb2xsZXIsXG4gICAgICB0YXJnZXQsXG4gICAgKTtcbiAgICBjb25zdCBjbGFzc01ldGFkYXRhOiBNb2RlbHMuQ29udHJvbGxlckNvbmZpZyA9IF8ubWVyZ2UoXG4gICAgICBuZXcgTW9kZWxzLkNvbnRyb2xsZXJDb25maWcoKSxcbiAgICAgIGNsYXNzTWV0YWRhdGFPcHRpb25zLFxuICAgICk7XG5cblxuICAgIGNvbnN0IG1ldGhvZE5hbWVzID0gQ2xhc3NIZWxwZXJzLmdldE1ldGhvZHNOYW1lcyh0YXJnZXQpOyAvLyAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0LnByb3RvdHlwZSk7XG5cbiAgICBmb3IgKGNvbnN0IG1ldGhvZE5hbWUgb2YgbWV0aG9kTmFtZXMpIHtcbiAgICAgIGNvbnN0IG1ldGhvZE1ldGFkYXRhOiBNb2RlbHMuTWV0aG9kQ29uZmlnID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcbiAgICAgICAgU3ltYm9scy5tZXRhZGF0YS5vcHRpb25zLmNvbnRyb2xsZXJNZXRob2QsXG4gICAgICAgIHRhcmdldCxcbiAgICAgICAgbWV0aG9kTmFtZSxcbiAgICAgICk7XG5cbiAgICAgIGlmIChtZXRob2RNZXRhZGF0YSkge1xuICAgICAgICBjbGFzc01ldGFkYXRhLm1ldGhvZHNbbWV0aG9kTmFtZV0gPSBtZXRob2RNZXRhZGF0YTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNsYXNzTWV0YWRhdGE7XG4gIH07XG5cblxuXG5cblxuICBjb25zdCBub3RBbGxvd2VkQXNNZXRob2ROYW1lID0gW1xuICAgICdsZW5ndGgnLFxuICAgICduYW1lJyxcbiAgICAnYXJndW1lbnRzJyxcbiAgICAnY2FsbGVyJyxcbiAgICAnY29uc3RydWN0b3InLFxuICAgICdhcHBseScsXG4gICAgJ2JpbmQnLFxuICAgICdjYWxsJyxcbiAgICAndG9TdHJpbmcnLFxuICAgICdfX2RlZmluZUdldHRlcl9fJyxcbiAgICAnX19kZWZpbmVTZXR0ZXJfXycsXG4gICAgJ2hhc093blByb3BlcnR5JyxcbiAgICAnX19sb29rdXBHZXR0ZXJfXycsXG4gICAgJ19fbG9va3VwU2V0dGVyX18nLFxuICAgICdpc1Byb3RvdHlwZU9mJyxcbiAgICAncHJvcGVydHlJc0VudW1lcmFibGUnLFxuICAgICd2YWx1ZU9mJyxcbiAgICAnX19wcm90b19fJyxcbiAgICAndG9Mb2NhbGVTdHJpbmcnLFxuICBdO1xuXG5cbiAgZXhwb3J0IGNvbnN0IGdldE1ldGhvZHNOYW1lcyA9IChcbiAgICBjbGFzc09yQ2xhc3NJbnN0YW5jZTogYW55LFxuICAgIGFsbE1ldGhvZHNOYW1lcyA9IFtdLFxuICApOiBzdHJpbmdbXSA9PiB7XG4gICAgaWYgKCFjbGFzc09yQ2xhc3NJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuIGFsbE1ldGhvZHNOYW1lcztcbiAgICB9XG5cbiAgICBjb25zdCBpc0NsYXNzRnVuY3Rpb24gPSBfLmlzRnVuY3Rpb24oY2xhc3NPckNsYXNzSW5zdGFuY2UpO1xuICAgIGNvbnN0IGNsYXNzRnVuID0gaXNDbGFzc0Z1bmN0aW9uXG4gICAgICA/IGNsYXNzT3JDbGFzc0luc3RhbmNlXG4gICAgICA6IE9iamVjdC5nZXRQcm90b3R5cGVPZihjbGFzc09yQ2xhc3NJbnN0YW5jZSk7XG4gICAgY29uc3Qgb2JqZWN0VG9DaGVjayA9IGlzQ2xhc3NGdW5jdGlvblxuICAgICAgPyAoY2xhc3NPckNsYXNzSW5zdGFuY2UgYXMgRnVuY3Rpb24pPy5wcm90b3R5cGVcbiAgICAgIDogY2xhc3NPckNsYXNzSW5zdGFuY2U7XG4gICAgY29uc3QgcHJvdG90eXBlT2JqID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iamVjdFRvQ2hlY2sgfHwge30pO1xuXG4gICAgY29uc3QgcHJvcGVydGllcyA9IF8udW5pcShbXG4gICAgICAuLi5PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3RUb0NoZWNrIHx8IHt9KSxcbiAgICAgIC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHByb3RvdHlwZU9iaiB8fCB7fSksXG4gICAgICAuLi5PYmplY3Qua2V5cyhvYmplY3RUb0NoZWNrIHx8IHt9KSxcbiAgICAgIC4uLk9iamVjdC5rZXlzKHByb3RvdHlwZU9iaiB8fCB7fSksXG4gICAgXSkuZmlsdGVyKGYgPT4gISFmICYmICFub3RBbGxvd2VkQXNNZXRob2ROYW1lLmluY2x1ZGVzKGYpKTtcblxuICAgIHByb3BlcnRpZXNcbiAgICAgIC5maWx0ZXIobWV0aG9kTmFtZSA9PiB0eXBlb2Ygb2JqZWN0VG9DaGVja1ttZXRob2ROYW1lXSA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgIC5mb3JFYWNoKHAgPT4gYWxsTWV0aG9kc05hbWVzLnB1c2gocCkpO1xuXG4gICAgaWYgKFxuICAgICAgIWNsYXNzRnVuIHx8XG4gICAgICAhY2xhc3NGdW4uY29uc3RydWN0b3IgfHxcbiAgICAgIGNsYXNzRnVuPy5jb25zdHJ1Y3Rvcj8ubmFtZSA9PT0gJ09iamVjdCdcbiAgICApIHtcbiAgICAgIHJldHVybiBhbGxNZXRob2RzTmFtZXM7XG4gICAgfVxuICAgIHJldHVybiBnZXRNZXRob2RzTmFtZXMoT2JqZWN0LmdldFByb3RvdHlwZU9mKGNsYXNzRnVuKSwgYWxsTWV0aG9kc05hbWVzKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGdldENvbnRyb2xsZXJDb25maWdzID0gKFxuICAgIHRhcmdldDogRnVuY3Rpb24sXG4gICAgY29uZmlnczogTW9kZWxzLkNvbnRyb2xsZXJDb25maWdbXSA9IFtdLFxuICAgIGNhbGxlclRhcmdldD86IEZ1bmN0aW9uLFxuICApOiBNb2RlbHMuUnVudGltZUNvbnRyb2xsZXJDb25maWdbXSA9PiB7XG4gICAgaWYgKCFfLmlzRnVuY3Rpb24odGFyZ2V0KSkge1xuICAgICAgdGhyb3cgYFt0eXBlc2NyaXB0LWNsYXNzLWhlbHBlcl1bZ2V0Q2xhc3NDb25maWddIENhbm5vdCBnZXQgY2xhc3MgY29uZmlnIGZyb206ICR7dGFyZ2V0fWA7XG4gICAgfVxuXG4gICAgbGV0IGNvbmZpZzogTW9kZWxzLlJ1bnRpbWVDb250cm9sbGVyQ29uZmlnO1xuICAgIGNvbnN0IHBhcmVudENsYXNzID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHRhcmdldCk7XG4gICAgY29uc3QgcGFyZW50TmFtZSA9IHBhcmVudENsYXNzID8gQ2xhc3NIZWxwZXJzLmdldE5hbWUocGFyZW50Q2xhc3MpIDogdm9pZCAwO1xuICAgIGNvbnN0IGlzVmFsaWRQYXJlbnQgPSBfLmlzRnVuY3Rpb24ocGFyZW50Q2xhc3MpICYmIHBhcmVudE5hbWUgIT09ICcnO1xuXG4gICAgY29uZmlnID0gZ2V0Q29udHJvbGxlckNvbmZpZyh0YXJnZXQpO1xuXG4gICAgY29uZmlncy5wdXNoKGNvbmZpZyk7XG5cbiAgICByZXR1cm4gaXNWYWxpZFBhcmVudFxuICAgICAgPyBnZXRDb250cm9sbGVyQ29uZmlncyhwYXJlbnRDbGFzcywgY29uZmlncywgdGFyZ2V0KVxuICAgICAgOiBjb25maWdzO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgZ2V0Q2FsY3VsYXRlZFBhdGhGb3IgPSAodGFyZ2V0OiBGdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IGNvbmZpZ3MgPSBnZXRDb250cm9sbGVyQ29uZmlncyh0YXJnZXQpO1xuXG4gICAgY29uc3QgcGFyZW50c2NhbGN1bGF0ZWRQYXRoID0gXy5zbGljZShjb25maWdzLCAxKVxuICAgICAgLnJldmVyc2UoKVxuICAgICAgLm1hcChiYyA9PiB7XG4gICAgICAgIGlmIChUYW9uSGVscGVycy5pc0dvb2RQYXRoKGJjLnBhdGgpKSB7XG4gICAgICAgICAgcmV0dXJuIGJjLnBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJjLmNsYXNzTmFtZTtcbiAgICAgIH0pXG4gICAgICAuam9pbignLycpO1xuXG4gICAgcmV0dXJuIGAvJHtwYXJlbnRzY2FsY3VsYXRlZFBhdGh9LyR7Q2xhc3NIZWxwZXJzLmdldE5hbWUodGFyZ2V0KX1gO1xuICB9O1xuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMudHMiXX0=
@@ -1,120 +0,0 @@
1
- import { _ } from 'tnp-core/websql';
2
- import * as JSON5 from 'json5';
3
- import { ClassHelpers } from './class-helpers';
4
- export var TaonHelpers;
5
- (function (TaonHelpers) {
6
- TaonHelpers.fillUpTo = (s, nCharacters) => {
7
- return _.times(nCharacters, n => {
8
- if (s.charAt(n)) {
9
- return s.charAt(n);
10
- }
11
- return ' ';
12
- }).join('');
13
- };
14
- TaonHelpers.isGoodPath = (p) => {
15
- return p && typeof p === 'string' && p.trim() !== '';
16
- };
17
- TaonHelpers.tryTransformParam = param => {
18
- if (typeof param === 'string') {
19
- let n = Number(param);
20
- if (!isNaN(n))
21
- return n;
22
- const bool = param.trim().toLowerCase();
23
- if (bool === 'true') {
24
- return true;
25
- }
26
- if (bool === 'false') {
27
- return false;
28
- }
29
- try {
30
- const t = JSON5.parse(param);
31
- return t;
32
- }
33
- catch (e) {
34
- return param;
35
- }
36
- }
37
- return param;
38
- };
39
- TaonHelpers.getExpressPath = (c, pathOrClassConfig) => {
40
- if (typeof pathOrClassConfig === 'string')
41
- return `${c.calculatedPath}${pathOrClassConfig}`.replace(/\/$/, '');
42
- return `${c.calculatedPath}${pathOrClassConfig.path}`.replace(/\/$/, '');
43
- };
44
- TaonHelpers.defaultType = value => {
45
- if (typeof value === 'string')
46
- return '';
47
- if (typeof value === 'boolean')
48
- return false;
49
- if (Array.isArray(value))
50
- return {};
51
- if (typeof value === 'object')
52
- return {};
53
- };
54
- TaonHelpers.parseJSONwithStringJSONs = (object, waring = false) => {
55
- if (!_.isObject(object)) {
56
- if (waring) {
57
- console.error(`
58
- parseJSONwithStringJSONs(...)
59
- Parameter should be a object, but is ${typeof object}
60
- `, object);
61
- }
62
- return object;
63
- }
64
- let res = _.cloneDeep(object);
65
- Object.keys(res).forEach(key => {
66
- let isJson = false;
67
- try {
68
- const possibleJSON = JSON.parse(res[key]);
69
- res[key] = possibleJSON;
70
- isJson = true;
71
- }
72
- catch (e) {
73
- isJson = false;
74
- }
75
- if (isJson) {
76
- res[key] = TaonHelpers.parseJSONwithStringJSONs(res[key], false);
77
- }
78
- });
79
- return res;
80
- };
81
- TaonHelpers.isPlainFileOrFolder = filePath => {
82
- return /^([a-zA-Z]|\-|\_|\@|\#|\$|\!|\^|\&|\*|\(|\))+$/.test(filePath);
83
- };
84
- TaonHelpers.ipcKeyNameResponse = (target, methodConfig, expressPath) => {
85
- return [
86
- 'response',
87
- ClassHelpers.getName(target),
88
- methodConfig.methodName,
89
- methodConfig.type,
90
- expressPath,
91
- ].join('--');
92
- };
93
- TaonHelpers.ipcKeyNameRequest = (target, methodConfig, expressPath) => {
94
- return [
95
- 'request',
96
- ClassHelpers.getName(target),
97
- methodConfig.methodName,
98
- methodConfig.type,
99
- expressPath,
100
- ].join('--');
101
- };
102
- TaonHelpers.websqlMocks = headers => {
103
- const response = {
104
- status(status) {
105
- return {
106
- send(send) {
107
- },
108
- };
109
- },
110
- setHeader(key, value) {
111
- headers[key] = value;
112
- },
113
- };
114
- const request = {};
115
- return { request, response };
116
- };
117
- })(TaonHelpers || (TaonHelpers = {}));
118
- ;
119
- ({}); // @--end-of-file-for-module=taon lib/helpers/taon-helpers.ts
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFvbi1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3Qtd2Vic3FsL3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL2hlbHBlcnMvdGFvbi1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsTUFBTSxLQUFXLFdBQVcsQ0FnSzNCO0FBaEtELFdBQWlCLFdBQVc7SUFFYixvQkFBUSxHQUFHLENBQUMsQ0FBUyxFQUFFLFdBQW1CLEVBQUUsRUFBRTtRQUN6RCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNoQixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBSVcsc0JBQVUsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3ZELENBQUMsQ0FBQztJQUlXLDZCQUFpQixHQUFHLEtBQUssQ0FBQyxFQUFFO1FBQ3ZDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RCLElB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Z0szQjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNkRBQTZEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS93ZWJzcWwnO1xuaW1wb3J0ICogYXMgSlNPTjUgZnJvbSAnanNvbjUnO1xuaW1wb3J0IHsgTW9kZWxzIH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4vY2xhc3MtaGVscGVycyc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgVGFvbkhlbHBlcnMge1xuXG4gIGV4cG9ydCBjb25zdCBmaWxsVXBUbyA9IChzOiBzdHJpbmcsIG5DaGFyYWN0ZXJzOiBudW1iZXIpID0+IHtcbiAgICByZXR1cm4gXy50aW1lcyhuQ2hhcmFjdGVycywgbiA9PiB7XG4gICAgICBpZiAocy5jaGFyQXQobikpIHtcbiAgICAgICAgcmV0dXJuIHMuY2hhckF0KG4pO1xuICAgICAgfVxuICAgICAgcmV0dXJuICcgJztcbiAgICB9KS5qb2luKCcnKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGlzR29vZFBhdGggPSAocDogc3RyaW5nKSA9PiB7XG4gICAgcmV0dXJuIHAgJiYgdHlwZW9mIHAgPT09ICdzdHJpbmcnICYmIHAudHJpbSgpICE9PSAnJztcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IHRyeVRyYW5zZm9ybVBhcmFtID0gcGFyYW0gPT4ge1xuICAgIGlmICh0eXBlb2YgcGFyYW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgbiA9IE51bWJlcihwYXJhbSk7XG4gICAgICBpZiAoIWlzTmFOKG4pKSByZXR1cm4gbjtcbiAgICAgIGNvbnN0IGJvb2wgPSBwYXJhbS50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGlmIChib29sID09PSAndHJ1ZScpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAoYm9vbCA9PT0gJ2ZhbHNlJykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB0ID0gSlNPTjUucGFyc2UocGFyYW0pO1xuICAgICAgICByZXR1cm4gdDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgcmV0dXJuIHBhcmFtO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcGFyYW07XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBnZXRFeHByZXNzUGF0aCA9IChcbiAgICBjOiBNb2RlbHMuUnVudGltZUNvbnRyb2xsZXJDb25maWcsXG4gICAgcGF0aE9yQ2xhc3NDb25maWc6IE1vZGVscy5NZXRob2RDb25maWcsXG4gICkgPT4ge1xuICAgIGlmICh0eXBlb2YgcGF0aE9yQ2xhc3NDb25maWcgPT09ICdzdHJpbmcnKVxuICAgICAgcmV0dXJuIGAke2MuY2FsY3VsYXRlZFBhdGh9JHtwYXRoT3JDbGFzc0NvbmZpZ31gLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG4gICAgcmV0dXJuIGAke2MuY2FsY3VsYXRlZFBhdGh9JHtwYXRoT3JDbGFzc0NvbmZpZy5wYXRofWAucmVwbGFjZSgvXFwvJC8sICcnKTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGRlZmF1bHRUeXBlID0gdmFsdWUgPT4ge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gJyc7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSByZXR1cm4ge307XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHJldHVybiB7fTtcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IHBhcnNlSlNPTndpdGhTdHJpbmdKU09OcyA9IChcbiAgICBvYmplY3Q6IE9iamVjdCxcbiAgICB3YXJpbmcgPSBmYWxzZSxcbiAgKTogT2JqZWN0ID0+IHtcblxuICAgIGlmICghXy5pc09iamVjdChvYmplY3QpKSB7XG4gICAgICBpZiAod2FyaW5nKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgYFxuICAgICAgICBwYXJzZUpTT053aXRoU3RyaW5nSlNPTnMoLi4uKVxuICAgICAgICBQYXJhbWV0ZXIgc2hvdWxkIGJlIGEgb2JqZWN0LCBidXQgaXMgJHt0eXBlb2Ygb2JqZWN0fVxuICAgICAgICBgLFxuICAgICAgICAgIG9iamVjdCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG5cbiAgICBsZXQgcmVzID0gXy5jbG9uZURlZXAob2JqZWN0KTtcblxuICAgIE9iamVjdC5rZXlzKHJlcykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgbGV0IGlzSnNvbiA9IGZhbHNlO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcG9zc2libGVKU09OID0gSlNPTi5wYXJzZShyZXNba2V5XSk7XG4gICAgICAgIHJlc1trZXldID0gcG9zc2libGVKU09OO1xuICAgICAgICBpc0pzb24gPSB0cnVlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpc0pzb24gPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGlzSnNvbikge1xuICAgICAgICByZXNba2V5XSA9IHBhcnNlSlNPTndpdGhTdHJpbmdKU09OcyhyZXNba2V5XSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlcztcbiAgfTtcblxuXG5cbiAgZXhwb3J0IGNvbnN0IGlzUGxhaW5GaWxlT3JGb2xkZXIgPSBmaWxlUGF0aCA9PiB7XG4gICAgcmV0dXJuIC9eKFthLXpBLVpdfFxcLXxcXF98XFxAfFxcI3xcXCR8XFwhfFxcXnxcXCZ8XFwqfFxcKHxcXCkpKyQvLnRlc3QoZmlsZVBhdGgpO1xuICB9O1xuXG5cblxuICBleHBvcnQgY29uc3QgaXBjS2V5TmFtZVJlc3BvbnNlID0gKFxuICAgIHRhcmdldDogRnVuY3Rpb24sXG4gICAgbWV0aG9kQ29uZmlnOiBNb2RlbHMuTWV0aG9kQ29uZmlnLFxuICAgIGV4cHJlc3NQYXRoOiBzdHJpbmcsXG4gICkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICAncmVzcG9uc2UnLFxuICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUodGFyZ2V0KSxcbiAgICAgIG1ldGhvZENvbmZpZy5tZXRob2ROYW1lLFxuICAgICAgbWV0aG9kQ29uZmlnLnR5cGUsXG4gICAgICBleHByZXNzUGF0aCxcbiAgICBdLmpvaW4oJy0tJyk7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCBpcGNLZXlOYW1lUmVxdWVzdCA9IChcbiAgICB0YXJnZXQ6IEZ1bmN0aW9uLFxuICAgIG1ldGhvZENvbmZpZzogTW9kZWxzLk1ldGhvZENvbmZpZyxcbiAgICBleHByZXNzUGF0aDogc3RyaW5nLFxuICApID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAgJ3JlcXVlc3QnLFxuICAgICAgQ2xhc3NIZWxwZXJzLmdldE5hbWUodGFyZ2V0KSxcbiAgICAgIG1ldGhvZENvbmZpZy5tZXRob2ROYW1lLFxuICAgICAgbWV0aG9kQ29uZmlnLnR5cGUsXG4gICAgICBleHByZXNzUGF0aCxcbiAgICBdLmpvaW4oJy0tJyk7XG4gIH07XG5cblxuXG4gIGV4cG9ydCBjb25zdCB3ZWJzcWxNb2NrcyA9IGhlYWRlcnMgPT4ge1xuICAgIGNvbnN0IHJlc3BvbnNlOiBFeHByZXNzLlJlc3BvbnNlID0ge1xuICAgICAgc3RhdHVzKHN0YXR1czogYW55KSB7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzZW5kKHNlbmQ6IGFueSkge1xuXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgICBzZXRIZWFkZXIoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcblxuICAgICAgICBoZWFkZXJzW2tleV0gPSB2YWx1ZTtcbiAgICAgIH0sXG4gICAgfTtcbiAgICBjb25zdCByZXF1ZXN0OiBFeHByZXNzLlJlcXVlc3QgPSB7fTtcbiAgICByZXR1cm4geyByZXF1ZXN0LCByZXNwb25zZSB9O1xuICB9O1xuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9oZWxwZXJzL3Rhb24taGVscGVycy50cyJdfQ==