taon 18.0.17 → 18.0.19

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 (519) hide show
  1. package/README.md +6 -3
  2. package/assets/shared/shared_folder_info.txt +1 -1
  3. package/browser/esm2022/lib/base-classes/base-injector.mjs +8 -1
  4. package/browser/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +39 -20
  5. package/browser/esm2022/lib/base-classes/base.mjs +1 -3
  6. package/browser/esm2022/lib/create-context.mjs +24 -3
  7. package/browser/esm2022/lib/decorators/classes/subscriber-decorator.mjs +3 -29
  8. package/browser/esm2022/lib/decorators/http/http-decorators.mjs +3 -1
  9. package/browser/esm2022/lib/endpoint-context.mjs +36 -136
  10. package/browser/esm2022/lib/entity-process.mjs +3 -3
  11. package/browser/esm2022/lib/helpers/class-helpers.mjs +2 -2
  12. package/browser/esm2022/lib/index.mjs +2 -14
  13. package/browser/esm2022/lib/inject.mjs +4 -38
  14. package/browser/esm2022/lib/models.mjs +1 -1
  15. package/browser/esm2022/lib/realtime/realtime-client.mjs +32 -20
  16. package/browser/esm2022/lib/realtime/realtime-core.mjs +15 -7
  17. package/browser/esm2022/lib/realtime/realtime-server.mjs +34 -16
  18. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +198 -29
  19. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +206 -10
  20. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +3 -7
  21. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +6 -2
  22. package/browser/esm2022/lib/realtime/realtime-subs-manager.mjs +10 -8
  23. package/browser/esm2022/lib/realtime/realtime.models.mjs +1 -1
  24. package/browser/esm2022/lib/symbols.mjs +45 -38
  25. package/browser/esm2022/lib/ui/directives/index.mjs +6 -0
  26. package/browser/esm2022/lib/ui/directives/safe.pipe.mjs +43 -0
  27. package/browser/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +24 -0
  28. package/browser/esm2022/lib/ui/directives/taon-long-press.directive.mjs +120 -0
  29. package/browser/esm2022/lib/ui/index.mjs +12 -0
  30. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +5 -0
  31. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +115 -0
  32. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +50 -0
  33. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +5 -0
  34. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +61 -0
  35. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +21 -0
  36. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +6 -0
  37. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +14 -3
  38. package/browser/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +54 -0
  39. package/browser/esm2022/lib/ui/taon-full-material.module.mjs +179 -0
  40. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +5 -0
  41. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +18 -0
  42. package/browser/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +21 -0
  43. package/browser/esm2022/lib/ui/taon-notifications/index.mjs +7 -0
  44. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +25 -0
  45. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +5 -0
  46. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +21 -0
  47. package/browser/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +48 -0
  48. package/browser/esm2022/lib/ui/taon-progress-bar/index.mjs +5 -0
  49. package/browser/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +98 -0
  50. package/browser/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +22 -0
  51. package/browser/esm2022/lib/ui/taon-session-passcode/index.mjs +4 -0
  52. package/browser/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +120 -0
  53. package/browser/esm2022/lib/ui/taon-table/index.mjs +5 -0
  54. package/browser/esm2022/lib/ui/taon-table/taon-table.component.mjs +161 -0
  55. package/browser/esm2022/lib/ui/taon-table/taon-table.module.mjs +57 -0
  56. package/browser/fesm2022/taon.mjs +2004 -636
  57. package/browser/fesm2022/taon.mjs.map +1 -1
  58. package/browser/lib/base-classes/base-context.d.ts +8 -1
  59. package/browser/lib/base-classes/base-injector.d.ts +5 -0
  60. package/browser/lib/base-classes/base.d.ts +8 -3
  61. package/browser/lib/create-context.d.ts +17 -1
  62. package/browser/lib/decorators/classes/subscriber-decorator.d.ts +2 -2
  63. package/browser/lib/decorators/http/http-decorators.d.ts +2 -0
  64. package/browser/lib/endpoint-context.d.ts +3 -2
  65. package/browser/lib/helpers/class-helpers.d.ts +1 -1
  66. package/browser/lib/index.d.ts +25 -16
  67. package/browser/lib/inject.d.ts +1 -8
  68. package/browser/lib/models.d.ts +17 -9
  69. package/browser/lib/realtime/realtime-client.d.ts +8 -2
  70. package/browser/lib/realtime/realtime-core.d.ts +6 -6
  71. package/browser/lib/realtime/realtime-server.d.ts +9 -4
  72. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -12
  73. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  74. package/browser/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +2 -3
  75. package/browser/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  76. package/browser/lib/realtime/realtime.models.d.ts +1 -0
  77. package/browser/lib/symbols.d.ts +30 -36
  78. package/browser/lib/ui/directives/index.d.ts +4 -0
  79. package/browser/lib/ui/directives/safe.pipe.d.ts +11 -0
  80. package/browser/lib/ui/directives/taon-inject-html.directive.d.ts +10 -0
  81. package/browser/lib/ui/directives/taon-long-press.directive.d.ts +26 -0
  82. package/browser/lib/ui/index.d.ts +10 -0
  83. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +3 -0
  84. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +33 -0
  85. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +16 -0
  86. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +3 -0
  87. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +17 -0
  88. package/browser/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +10 -0
  89. package/browser/lib/ui/taon-admin-mode-configuration/index.d.ts +4 -0
  90. package/browser/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +17 -0
  91. package/browser/lib/ui/taon-full-material.module.d.ts +47 -0
  92. package/browser/lib/ui/taon-github-fork-me-corner/index.d.ts +3 -0
  93. package/browser/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.d.ts +7 -0
  94. package/browser/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.d.ts +9 -0
  95. package/browser/lib/ui/taon-notifications/index.d.ts +5 -0
  96. package/browser/lib/ui/taon-notifications/taon-notifications.component.d.ts +13 -0
  97. package/browser/lib/ui/taon-notifications/taon-notifications.models.d.ts +7 -0
  98. package/browser/lib/ui/taon-notifications/taon-notifications.module.d.ts +8 -0
  99. package/browser/lib/ui/taon-notifications/taon-notifications.service.d.ts +15 -0
  100. package/browser/lib/ui/taon-progress-bar/index.d.ts +3 -0
  101. package/browser/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +19 -0
  102. package/browser/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +10 -0
  103. package/browser/lib/ui/taon-session-passcode/index.d.ts +2 -0
  104. package/browser/lib/ui/taon-session-passcode/taon-session-passcode.component.d.ts +39 -0
  105. package/browser/lib/ui/taon-table/index.d.ts +3 -0
  106. package/browser/lib/ui/taon-table/taon-table.component.d.ts +37 -0
  107. package/browser/lib/ui/taon-table/taon-table.module.d.ts +17 -0
  108. package/client/esm2022/lib/base-classes/base-injector.mjs +8 -1
  109. package/client/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +39 -20
  110. package/client/esm2022/lib/base-classes/base.mjs +1 -3
  111. package/client/esm2022/lib/create-context.mjs +24 -3
  112. package/client/esm2022/lib/decorators/classes/subscriber-decorator.mjs +3 -29
  113. package/client/esm2022/lib/decorators/http/http-decorators.mjs +3 -1
  114. package/client/esm2022/lib/endpoint-context.mjs +36 -136
  115. package/client/esm2022/lib/entity-process.mjs +3 -3
  116. package/client/esm2022/lib/helpers/class-helpers.mjs +2 -2
  117. package/client/esm2022/lib/index.mjs +2 -14
  118. package/client/esm2022/lib/inject.mjs +4 -38
  119. package/client/esm2022/lib/models.mjs +1 -1
  120. package/client/esm2022/lib/realtime/realtime-client.mjs +32 -20
  121. package/client/esm2022/lib/realtime/realtime-core.mjs +15 -7
  122. package/client/esm2022/lib/realtime/realtime-server.mjs +34 -16
  123. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +198 -29
  124. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +206 -10
  125. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +3 -7
  126. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +6 -2
  127. package/client/esm2022/lib/realtime/realtime-subs-manager.mjs +10 -8
  128. package/client/esm2022/lib/realtime/realtime.models.mjs +1 -1
  129. package/client/esm2022/lib/symbols.mjs +45 -38
  130. package/client/esm2022/lib/ui/directives/index.mjs +6 -0
  131. package/client/esm2022/lib/ui/directives/safe.pipe.mjs +43 -0
  132. package/client/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +24 -0
  133. package/client/esm2022/lib/ui/directives/taon-long-press.directive.mjs +120 -0
  134. package/client/esm2022/lib/ui/index.mjs +12 -0
  135. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +5 -0
  136. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +115 -0
  137. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +50 -0
  138. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +5 -0
  139. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +61 -0
  140. package/client/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +21 -0
  141. package/client/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +6 -0
  142. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +14 -3
  143. package/client/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +54 -0
  144. package/client/esm2022/lib/ui/taon-full-material.module.mjs +179 -0
  145. package/client/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +5 -0
  146. package/client/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +18 -0
  147. package/client/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +21 -0
  148. package/client/esm2022/lib/ui/taon-notifications/index.mjs +7 -0
  149. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +25 -0
  150. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +5 -0
  151. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +21 -0
  152. package/client/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +48 -0
  153. package/client/esm2022/lib/ui/taon-progress-bar/index.mjs +5 -0
  154. package/client/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +98 -0
  155. package/client/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +22 -0
  156. package/client/esm2022/lib/ui/taon-session-passcode/index.mjs +4 -0
  157. package/client/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +120 -0
  158. package/client/esm2022/lib/ui/taon-table/index.mjs +5 -0
  159. package/client/esm2022/lib/ui/taon-table/taon-table.component.mjs +161 -0
  160. package/client/esm2022/lib/ui/taon-table/taon-table.module.mjs +57 -0
  161. package/client/fesm2022/taon.mjs +2004 -636
  162. package/client/fesm2022/taon.mjs.map +1 -1
  163. package/client/lib/base-classes/base-context.d.ts +8 -1
  164. package/client/lib/base-classes/base-injector.d.ts +5 -0
  165. package/client/lib/base-classes/base.d.ts +8 -3
  166. package/client/lib/create-context.d.ts +17 -1
  167. package/client/lib/decorators/classes/subscriber-decorator.d.ts +2 -2
  168. package/client/lib/decorators/http/http-decorators.d.ts +2 -0
  169. package/client/lib/endpoint-context.d.ts +3 -2
  170. package/client/lib/helpers/class-helpers.d.ts +1 -1
  171. package/client/lib/index.d.ts +25 -16
  172. package/client/lib/inject.d.ts +1 -8
  173. package/client/lib/models.d.ts +17 -9
  174. package/client/lib/realtime/realtime-client.d.ts +8 -2
  175. package/client/lib/realtime/realtime-core.d.ts +6 -6
  176. package/client/lib/realtime/realtime-server.d.ts +9 -4
  177. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -12
  178. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  179. package/client/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +2 -3
  180. package/client/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  181. package/client/lib/realtime/realtime.models.d.ts +1 -0
  182. package/client/lib/symbols.d.ts +30 -36
  183. package/client/lib/ui/directives/index.d.ts +4 -0
  184. package/client/lib/ui/directives/safe.pipe.d.ts +11 -0
  185. package/client/lib/ui/directives/taon-inject-html.directive.d.ts +10 -0
  186. package/client/lib/ui/directives/taon-long-press.directive.d.ts +26 -0
  187. package/client/lib/ui/index.d.ts +10 -0
  188. package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +3 -0
  189. package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +33 -0
  190. package/client/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +16 -0
  191. package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +3 -0
  192. package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +17 -0
  193. package/client/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +10 -0
  194. package/client/lib/ui/taon-admin-mode-configuration/index.d.ts +4 -0
  195. package/client/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +17 -0
  196. package/client/lib/ui/taon-full-material.module.d.ts +47 -0
  197. package/client/lib/ui/taon-github-fork-me-corner/index.d.ts +3 -0
  198. package/client/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.d.ts +7 -0
  199. package/client/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.d.ts +9 -0
  200. package/client/lib/ui/taon-notifications/index.d.ts +5 -0
  201. package/client/lib/ui/taon-notifications/taon-notifications.component.d.ts +13 -0
  202. package/client/lib/ui/taon-notifications/taon-notifications.models.d.ts +7 -0
  203. package/client/lib/ui/taon-notifications/taon-notifications.module.d.ts +8 -0
  204. package/client/lib/ui/taon-notifications/taon-notifications.service.d.ts +15 -0
  205. package/client/lib/ui/taon-progress-bar/index.d.ts +3 -0
  206. package/client/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +19 -0
  207. package/client/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +10 -0
  208. package/client/lib/ui/taon-session-passcode/index.d.ts +2 -0
  209. package/client/lib/ui/taon-session-passcode/taon-session-passcode.component.d.ts +39 -0
  210. package/client/lib/ui/taon-table/index.d.ts +3 -0
  211. package/client/lib/ui/taon-table/taon-table.component.d.ts +37 -0
  212. package/client/lib/ui/taon-table/taon-table.module.d.ts +17 -0
  213. package/lib/base-classes/base-context.d.ts +8 -1
  214. package/lib/base-classes/base-injector.d.ts +5 -0
  215. package/lib/base-classes/base-injector.js +11 -0
  216. package/lib/base-classes/base-injector.js.map +1 -1
  217. package/lib/base-classes/base-subscriber-for-entity.js +38 -19
  218. package/lib/base-classes/base-subscriber-for-entity.js.map +1 -1
  219. package/lib/base-classes/base.d.ts +8 -3
  220. package/lib/base-classes/base.js +0 -2
  221. package/lib/base-classes/base.js.map +1 -1
  222. package/lib/create-context.d.ts +17 -1
  223. package/lib/create-context.js +21 -10
  224. package/lib/create-context.js.map +1 -1
  225. package/lib/decorators/classes/subscriber-decorator.d.ts +1 -1
  226. package/lib/decorators/classes/subscriber-decorator.js +7 -58
  227. package/lib/decorators/classes/subscriber-decorator.js.map +1 -1
  228. package/lib/decorators/http/http-decorators.d.ts +3 -1
  229. package/lib/decorators/http/http-decorators.js +2 -0
  230. package/lib/decorators/http/http-decorators.js.map +1 -1
  231. package/lib/endpoint-context.d.ts +3 -2
  232. package/lib/endpoint-context.js +169 -106
  233. package/lib/endpoint-context.js.map +1 -1
  234. package/lib/entity-process.js +2 -2
  235. package/lib/entity-process.js.map +1 -1
  236. package/lib/formly/formly-repeat-component.js +1 -1
  237. package/lib/formly/formly-repeat-component.js.map +1 -1
  238. package/lib/helpers/class-helpers.d.ts +1 -1
  239. package/lib/helpers/class-helpers.js +2 -2
  240. package/lib/helpers/class-helpers.js.map +1 -1
  241. package/lib/index.d.ts +25 -16
  242. package/lib/index.js +1 -17
  243. package/lib/index.js.map +1 -1
  244. package/lib/inject.d.ts +3 -7
  245. package/lib/inject.js +57 -42
  246. package/lib/inject.js.map +1 -1
  247. package/lib/models.d.ts +17 -9
  248. package/lib/models.js.map +1 -1
  249. package/lib/realtime/realtime-client.d.ts +8 -2
  250. package/lib/realtime/realtime-client.js +36 -21
  251. package/lib/realtime/realtime-client.js.map +1 -1
  252. package/lib/realtime/realtime-core.d.ts +6 -6
  253. package/lib/realtime/realtime-core.js +17 -6
  254. package/lib/realtime/realtime-core.js.map +1 -1
  255. package/lib/realtime/realtime-server.d.ts +9 -4
  256. package/lib/realtime/realtime-server.js +98 -76
  257. package/lib/realtime/realtime-server.js.map +1 -1
  258. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -11
  259. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js +301 -40
  260. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js.map +1 -1
  261. package/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  262. package/lib/realtime/realtime-strategy/realtime-strategy-mock.js +358 -14
  263. package/lib/realtime/realtime-strategy/realtime-strategy-mock.js.map +1 -1
  264. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +3 -3
  265. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js +10 -14
  266. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js.map +1 -1
  267. package/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  268. package/lib/realtime/realtime-strategy/realtime-strategy.js +9 -2
  269. package/lib/realtime/realtime-strategy/realtime-strategy.js.map +1 -1
  270. package/lib/realtime/realtime-subs-manager.js +10 -8
  271. package/lib/realtime/realtime-subs-manager.js.map +1 -1
  272. package/lib/realtime/realtime.models.d.ts +1 -0
  273. package/lib/symbols.d.ts +30 -36
  274. package/lib/symbols.js +63 -39
  275. package/lib/symbols.js.map +1 -1
  276. package/lib/ui/directives/index.d.ts +3 -4
  277. package/lib/ui/directives/index.js +2 -2
  278. package/lib/ui/index.d.ts +9 -0
  279. package/lib/ui/index.js +5 -0
  280. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +2 -2
  281. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +3 -5
  282. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +2 -2
  283. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/taon-db-admin.component.d.ts +2 -3
  284. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +2 -2
  285. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +1 -2
  286. package/lib/ui/taon-admin-mode-configuration/index.d.ts +0 -1
  287. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  288. package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
  289. package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
  290. package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
  291. package/lib/ui/taon-progress-bar/index.js +2 -2
  292. package/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +1 -0
  293. package/lib/ui/taon-session-passcode/index.js +2 -2
  294. package/lib/ui/taon-table/index.d.ts +2 -0
  295. package/lib/ui/taon-table/index.js +5 -0
  296. package/lib/ui/taon-table/index.js.map +1 -0
  297. package/lib/ui/taon-table/taon-table.component.d.ts +33 -0
  298. package/lib/ui/taon-table/taon-table.module.d.ts +2 -0
  299. package/package.json +10 -8
  300. package/tmp-environment.json +34 -30
  301. package/websql/esm2022/lib/base-classes/base-injector.mjs +8 -1
  302. package/websql/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +39 -20
  303. package/websql/esm2022/lib/base-classes/base.mjs +1 -3
  304. package/websql/esm2022/lib/create-context.mjs +24 -3
  305. package/websql/esm2022/lib/decorators/classes/subscriber-decorator.mjs +3 -29
  306. package/websql/esm2022/lib/decorators/http/http-decorators.mjs +3 -1
  307. package/websql/esm2022/lib/endpoint-context.mjs +48 -24
  308. package/websql/esm2022/lib/entity-process.mjs +3 -3
  309. package/websql/esm2022/lib/helpers/class-helpers.mjs +2 -2
  310. package/websql/esm2022/lib/index.mjs +2 -14
  311. package/websql/esm2022/lib/inject.mjs +4 -38
  312. package/websql/esm2022/lib/models.mjs +1 -1
  313. package/websql/esm2022/lib/realtime/realtime-client.mjs +32 -20
  314. package/websql/esm2022/lib/realtime/realtime-core.mjs +15 -7
  315. package/websql/esm2022/lib/realtime/realtime-server.mjs +90 -72
  316. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +200 -30
  317. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +206 -10
  318. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +3 -7
  319. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +6 -2
  320. package/websql/esm2022/lib/realtime/realtime-subs-manager.mjs +10 -8
  321. package/websql/esm2022/lib/realtime/realtime.models.mjs +1 -1
  322. package/websql/esm2022/lib/symbols.mjs +45 -38
  323. package/websql/esm2022/lib/ui/directives/index.mjs +6 -0
  324. package/websql/esm2022/lib/ui/directives/safe.pipe.mjs +43 -0
  325. package/websql/esm2022/lib/ui/directives/taon-inject-html.directive.mjs +24 -0
  326. package/websql/esm2022/lib/ui/directives/taon-long-press.directive.mjs +120 -0
  327. package/websql/esm2022/lib/ui/index.mjs +12 -0
  328. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.mjs +5 -0
  329. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.mjs +115 -0
  330. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.mjs +50 -0
  331. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.mjs +5 -0
  332. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.mjs +61 -0
  333. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.mjs +21 -0
  334. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/index.mjs +6 -0
  335. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.mjs +14 -3
  336. package/websql/esm2022/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.mjs +54 -0
  337. package/websql/esm2022/lib/ui/taon-full-material.module.mjs +179 -0
  338. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/index.mjs +5 -0
  339. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.mjs +18 -0
  340. package/websql/esm2022/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.mjs +21 -0
  341. package/websql/esm2022/lib/ui/taon-notifications/index.mjs +7 -0
  342. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.component.mjs +25 -0
  343. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.models.mjs +5 -0
  344. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.module.mjs +21 -0
  345. package/websql/esm2022/lib/ui/taon-notifications/taon-notifications.service.mjs +48 -0
  346. package/websql/esm2022/lib/ui/taon-progress-bar/index.mjs +5 -0
  347. package/websql/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.component.mjs +50 -0
  348. package/websql/esm2022/lib/ui/taon-progress-bar/taon-progress-bar.module.mjs +22 -0
  349. package/websql/esm2022/lib/ui/taon-session-passcode/index.mjs +4 -0
  350. package/websql/esm2022/lib/ui/taon-session-passcode/taon-session-passcode.component.mjs +120 -0
  351. package/websql/esm2022/lib/ui/taon-table/index.mjs +5 -0
  352. package/websql/esm2022/lib/ui/taon-table/taon-table.component.mjs +161 -0
  353. package/websql/esm2022/lib/ui/taon-table/taon-table.module.mjs +57 -0
  354. package/websql/fesm2022/taon.mjs +2140 -836
  355. package/websql/fesm2022/taon.mjs.map +1 -1
  356. package/websql/lib/base-classes/base-context.d.ts +8 -1
  357. package/websql/lib/base-classes/base-injector.d.ts +5 -0
  358. package/websql/lib/base-classes/base.d.ts +8 -3
  359. package/websql/lib/create-context.d.ts +17 -1
  360. package/websql/lib/decorators/classes/subscriber-decorator.d.ts +2 -2
  361. package/websql/lib/decorators/http/http-decorators.d.ts +2 -0
  362. package/websql/lib/endpoint-context.d.ts +3 -2
  363. package/websql/lib/helpers/class-helpers.d.ts +1 -1
  364. package/websql/lib/index.d.ts +25 -16
  365. package/websql/lib/inject.d.ts +1 -8
  366. package/websql/lib/models.d.ts +17 -9
  367. package/websql/lib/realtime/realtime-client.d.ts +8 -2
  368. package/websql/lib/realtime/realtime-core.d.ts +6 -6
  369. package/websql/lib/realtime/realtime-server.d.ts +9 -4
  370. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -12
  371. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  372. package/websql/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +2 -3
  373. package/websql/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  374. package/websql/lib/realtime/realtime.models.d.ts +1 -0
  375. package/websql/lib/symbols.d.ts +30 -36
  376. package/websql/lib/ui/directives/index.d.ts +4 -0
  377. package/websql/lib/ui/directives/safe.pipe.d.ts +11 -0
  378. package/websql/lib/ui/directives/taon-inject-html.directive.d.ts +10 -0
  379. package/websql/lib/ui/directives/taon-long-press.directive.d.ts +26 -0
  380. package/websql/lib/ui/index.d.ts +10 -0
  381. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.d.ts +3 -0
  382. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.d.ts +33 -0
  383. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.d.ts +16 -0
  384. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.d.ts +3 -0
  385. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.d.ts +17 -0
  386. package/websql/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.d.ts +10 -0
  387. package/websql/lib/ui/taon-admin-mode-configuration/index.d.ts +4 -0
  388. package/websql/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.d.ts +17 -0
  389. package/websql/lib/ui/taon-full-material.module.d.ts +47 -0
  390. package/websql/lib/ui/taon-github-fork-me-corner/index.d.ts +3 -0
  391. package/websql/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.d.ts +7 -0
  392. package/websql/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.d.ts +9 -0
  393. package/websql/lib/ui/taon-notifications/index.d.ts +5 -0
  394. package/websql/lib/ui/taon-notifications/taon-notifications.component.d.ts +13 -0
  395. package/websql/lib/ui/taon-notifications/taon-notifications.models.d.ts +7 -0
  396. package/websql/lib/ui/taon-notifications/taon-notifications.module.d.ts +8 -0
  397. package/websql/lib/ui/taon-notifications/taon-notifications.service.d.ts +15 -0
  398. package/websql/lib/ui/taon-progress-bar/index.d.ts +3 -0
  399. package/websql/lib/ui/taon-progress-bar/taon-progress-bar.component.d.ts +19 -0
  400. package/websql/lib/ui/taon-progress-bar/taon-progress-bar.module.d.ts +10 -0
  401. package/websql/lib/ui/taon-session-passcode/index.d.ts +2 -0
  402. package/websql/lib/ui/taon-session-passcode/taon-session-passcode.component.d.ts +39 -0
  403. package/websql/lib/ui/taon-table/index.d.ts +3 -0
  404. package/websql/lib/ui/taon-table/taon-table.component.d.ts +37 -0
  405. package/websql/lib/ui/taon-table/taon-table.module.d.ts +17 -0
  406. package/browser/esm2022/lib/base-classes/base-subscriber.mjs +0 -27
  407. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +0 -98
  408. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +0 -45
  409. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +0 -40
  410. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +0 -25
  411. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +0 -4
  412. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +0 -5
  413. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +0 -50
  414. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +0 -48
  415. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +0 -35
  416. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +0 -43
  417. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +0 -4
  418. package/browser/lib/base-classes/base-subscriber.d.ts +0 -5
  419. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  420. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -17
  421. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -11
  422. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -11
  423. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -14
  424. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -3
  425. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -17
  426. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -18
  427. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -12
  428. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -14
  429. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -12
  430. package/client/esm2022/lib/base-classes/base-subscriber.mjs +0 -27
  431. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +0 -98
  432. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +0 -45
  433. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +0 -40
  434. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +0 -25
  435. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +0 -4
  436. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +0 -5
  437. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +0 -50
  438. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +0 -48
  439. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +0 -35
  440. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +0 -43
  441. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +0 -4
  442. package/client/lib/base-classes/base-subscriber.d.ts +0 -5
  443. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  444. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -17
  445. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -11
  446. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -11
  447. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -14
  448. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -3
  449. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -17
  450. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -18
  451. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -12
  452. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -14
  453. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -12
  454. package/lib/base-classes/base-subscriber.d.ts +0 -4
  455. package/lib/base-classes/base-subscriber.js +0 -25
  456. package/lib/base-classes/base-subscriber.js.map +0 -1
  457. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.d.ts +0 -0
  458. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js +0 -5
  459. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  460. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js +0 -139
  461. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js.map +0 -1
  462. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -16
  463. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js +0 -68
  464. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js.map +0 -1
  465. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -10
  466. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js +0 -56
  467. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js.map +0 -1
  468. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -10
  469. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js +0 -50
  470. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js.map +0 -1
  471. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -13
  472. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js +0 -3
  473. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js.map +0 -1
  474. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -2
  475. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js +0 -6
  476. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js.map +0 -1
  477. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -16
  478. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js +0 -54
  479. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js.map +0 -1
  480. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -17
  481. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js +0 -52
  482. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js.map +0 -1
  483. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -11
  484. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js +0 -39
  485. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js.map +0 -1
  486. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -13
  487. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js +0 -46
  488. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js.map +0 -1
  489. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -11
  490. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js +0 -3
  491. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js.map +0 -1
  492. package/websql/esm2022/lib/base-classes/base-subscriber.mjs +0 -27
  493. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +0 -98
  494. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +0 -45
  495. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +0 -40
  496. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +0 -25
  497. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +0 -4
  498. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +0 -5
  499. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +0 -50
  500. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +0 -48
  501. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +0 -35
  502. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +0 -43
  503. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +0 -4
  504. package/websql/lib/base-classes/base-subscriber.d.ts +0 -5
  505. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  506. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -17
  507. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -11
  508. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -11
  509. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -14
  510. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -3
  511. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -17
  512. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -18
  513. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -12
  514. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -14
  515. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -12
  516. /package/lib/ui/directives/{firedev-inject-html.directive.d.ts → taon-inject-html.directive.d.ts} +0 -0
  517. /package/lib/ui/directives/{firedev-long-press.directive.d.ts → taon-long-press.directive.d.ts} +0 -0
  518. /package/lib/{realtime/realtime-strategy/realtime-strategy-ipc-models → ui}/index.js.map +0 -0
  519. /package/lib/ui/{toan-full-material.module.d.ts → taon-full-material.module.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"taon.mjs","sources":["../../../tmp-libs-for-dist/taon/projects/taon/src/lib/symbols.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/validators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/helpers/taon-helpers.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/helpers/class-helpers.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/models.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/http/http-methods-decorators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/http/http-params-decorators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/http/http-decorators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/controller-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-injector.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-controller.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-crud-controller.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-class.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-entity.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-abstract-entity.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/repository-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-repository.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-provider.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/dependency-injection/di-container.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/get-response-value.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/env.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-subs-manager.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-client.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-server.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-ipc.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-socket-io.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-core.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/endpoint-context.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/storage.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/taon-admin.service.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/create-context.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-context.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/subscriber-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-subscriber.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-subscriber-for-entity.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/entity-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/provider-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/inject.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/constants.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/taon.ts"],"sourcesContent":["\n\nimport { _ } from 'tnp-core/browser';\nimport { OrignalClassKey } from 'taon-typeorm/browser';\nimport { SYMBOL } from 'typescript-class-helpers/browser';\n\nexport namespace Symbols {\n export const ctxInClassOrClassObj = Symbol();\n export const classNameStaticProperty: string = SYMBOL.ClassNameStaticProperty;\n export const fullClassNameStaticProperty: string = `$$fullclassName$$`;\n export const orignalClass: string = OrignalClassKey;\n export const orignalClassClonesObj: string = `$$originalClassClonesObj$$`;\n export const classMethodsNames: string = `$$classMethodsNames$$`;\n\n export const REALTIME = {\n NAMESPACE: (contextName: string) => `${contextName}:taonRealtimeNsp`,\n TABLE_CHANGE(contextName: string, tableName: string) {\n return `${contextName}:listentablename${tableName}`;\n },\n /**\n * for backendSocket.in(ROOM_NAME).emit(EVENT)\n *\n * Room names are uniqe..\n * here I am limiting number of event for clients.\n */\n ROOM_NAME: {\n\n CUSTOM(contextName: string, customEvent: string) {\n return `${contextName}:roomcustomevnet${customEvent}`;\n },\n /**\n * @LAST TODO\n */\n SUBSCRIBER_EVENT(\n contextName: string,\n className: string,\n propertyName: string,\n ) {\n return `${contextName}:room${_.camelCase(className)}${propertyName}`.toLowerCase();\n },\n UPDATE_ENTITY(\n contextName: string,\n className: string,\n entityId: number | string,\n ) {\n return `${contextName}:room${_.camelCase(className)}${entityId}`.toLowerCase();\n },\n UPDATE_ENTITY_PROPERTY(\n contextName: string,\n className: string,\n property: string,\n entityId: number | string,\n ) {\n return `${contextName}:room${_.camelCase(className)}${_.camelCase(property)}${entityId}`.toLowerCase();\n },\n\n SUBSCRIBE: {\n CUSTOM: (contextName:string) => `${contextName}:roomSubscribeCustomRoomEvent`,\n ENTITY_UPDATE_EVENTS:(contextName:string) => `${contextName}:roomSubscribeEntityEvents`,\n ENTITY_PROPERTY_UPDATE_EVENTS:(contextName:string) => `${contextName}:roomSubscribeEntityPropertyEvents`,\n },\n UNSUBSCRIBE: {\n CUSTOM:(contextName:string) => `${contextName}:roomUnsubscribeCustomRoomEvent`,\n ENTITY_UPDATE_EVENTS:(contextName:string) => `${contextName}:roomUnsubscribeEntityEvents`,\n ENTITY_PROPERTY_UPDATE_EVENTS:(contextName:string) => `${contextName}:roomUnsubscribeEntityPropertyEvents`,\n },\n },\n };\n\n export const metadata = {\n className: `class:realname`,\n options: {\n runtimeController: `runtime:controller:options`,\n controller: `controller:options`,\n controllerMethod: `controller:method:options`,\n entity: `entity:options`,\n repository: `repository:options`,\n provider: `provider:options`,\n subscriber: `subscriber:options`,\n },\n };\n\n export const old = {\n HAS_TABLE_IN_DB: Symbol(),\n MDC_KEY: `modeldataconfig`,\n WEBSQL_REST_PROGRESS_FUN: Symbol(),\n WEBSQL_REST_PROGRESS_FUN_START: Symbol(),\n WEBSQL_REST_PROGRESS_FUN_DONE: Symbol(),\n WEBSQL_REST_PROGRESS_TIMEOUT: Symbol(),\n\n X_TOTAL_COUNT: `x-total-count`,\n CIRCURAL_OBJECTS_MAP_BODY: `circuralmapbody`,\n CIRCURAL_OBJECTS_MAP_QUERY_PARAM: `circuralmapbody`,\n MAPPING_CONFIG_HEADER: `mappingheader`,\n MAPPING_CONFIG_HEADER_BODY_PARAMS: `mhbodyparams`,\n MAPPING_CONFIG_HEADER_QUERY_PARAMS: `mhqueryparams`,\n ENDPOINT_META_CONFIG: `ng2_rest_endpoint_config`,\n CLASS_DECORATOR_CONTEXT: `$$ng2_rest_class_context`,\n SOCKET_MSG: `socketmessageng2rest`,\n ANGULAR: {\n INPUT_NAMES: Symbol(),\n },\n ERROR_MESSAGES: {\n CLASS_NAME_MATCH: `Please check if your \"class name\" matches @Controller( className ) or @Entity( className )`,\n },\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/symbols.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { Models } from './models';\n\nexport namespace Validators {\n\n export const classNameVlidation = (className, target: Function) => {\n setTimeout(() => {\n\n if (_.isUndefined(className)) {\n throw `[Taon]\n Please provide \"className\" property for each Controller and Entity:\n\n @Taon.Controller({ className: 'MyExampleCtrl' })\n class MyExampleCtrl {\n ...\n }\n\n @Taon.Entity({ className: 'MyExampleEntity' })\n class MyExampleEntity {\n ...\n }\n\n Notice that minified javascript code does not preserve\n Functions/Classes names -this is only solution to preserve classes names.\n\n `;\n }\n });\n\n return _.isUndefined(className) ? target.name : className;\n };\n\n\n\n export const checkIfMethodsWithReponseTYpeAlowed = (\n methods: Models.MethodConfig[],\n current: Models.MethodConfig,\n ) => {\n const defaultResponseType = 'text or JSON';\n if (!current.responseType) {\n return;\n }\n for (let index = 0; index < methods.length; index++) {\n const m = methods[index];\n if (m.path === current.path && m.responseType !== current.responseType) {\n throw new Error(`\n [taon] you can have 2 methods with same path but differetn reponseType-s\n\n ${m.methodName}( ... path: ${m.path} ) -> responseType: ${m.responseType || defaultResponseType}\n ${current.methodName}( ... path: ${current.path} ) -> responseType: ${current.responseType}\n\n Please change path name on of the methods.\n\n `);\n }\n }\n };\n\n\n\n\n export const validateClassFunctions = (\n controllers: any[],\n entities: any[],\n proviers: any[],\n repositories: any[],\n ) => {\n if (\n _.isArray(controllers) &&\n controllers.filter(f => !_.isFunction(f)).length > 0\n ) {\n console.error('controllers', controllers);\n throw `\n\n Incorect value for property \"controllers\" inside Taon.Init(...)\n\n `;\n }\n\n if (\n _.isArray(entities) &&\n entities.filter(f => !_.isFunction(f)).length > 0\n ) {\n console.error('entites', entities);\n throw `\n\n Incorect value for property \"entities\" inside Taon.Init(...)\n\n `;\n }\n };\n\n\n export const preventUndefinedModel = (model, id) => {\n if (_.isUndefined(model)) {\n throw `Bad update by id, config, id: ${id}`;\n }\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/validators.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport * as JSON5 from 'json5';\nimport { Models } from '../models';\nimport { ClassHelpers } from './class-helpers';\n\nexport namespace TaonHelpers {\n\n export const fillUpTo = (s: string, nCharacters: number) => {\n return _.times(nCharacters, n => {\n if (s.charAt(n)) {\n return s.charAt(n);\n }\n return ' ';\n }).join('');\n };\n\n\n\n export const isGoodPath = (p: string) => {\n return p && typeof p === 'string' && p.trim() !== '';\n };\n\n\n\n export const tryTransformParam = param => {\n if (typeof param === 'string') {\n let n = Number(param);\n if (!isNaN(n)) return n;\n const bool = param.trim().toLowerCase();\n if (bool === 'true') {\n return true;\n }\n if (bool === 'false') {\n return false;\n }\n try {\n const t = JSON5.parse(param);\n return t;\n } catch (e) {\n return param;\n }\n }\n return param;\n };\n\n\n\n export const getExpressPath = (\n c: Models.RuntimeControllerConfig,\n pathOrClassConfig: Models.MethodConfig,\n ) => {\n if (typeof pathOrClassConfig === 'string')\n return `${c.calculatedPath}${pathOrClassConfig}`.replace(/\\/$/, '');\n return `${c.calculatedPath}${pathOrClassConfig.path}`.replace(/\\/$/, '');\n };\n\n\n\n export const defaultType = value => {\n if (typeof value === 'string') return '';\n if (typeof value === 'boolean') return false;\n if (Array.isArray(value)) return {};\n if (typeof value === 'object') return {};\n };\n\n\n\n export const parseJSONwithStringJSONs = (\n object: Object,\n waring = false,\n ): Object => {\n\n if (!_.isObject(object)) {\n if (waring) {\n console.error(\n `\n parseJSONwithStringJSONs(...)\n Parameter should be a object, but is ${typeof object}\n `,\n object,\n );\n }\n\n return object;\n }\n\n let res = _.cloneDeep(object);\n\n Object.keys(res).forEach(key => {\n let isJson = false;\n try {\n const possibleJSON = JSON.parse(res[key]);\n res[key] = possibleJSON;\n isJson = true;\n } catch (e) {\n isJson = false;\n }\n\n if (isJson) {\n res[key] = parseJSONwithStringJSONs(res[key], false);\n }\n });\n\n return res;\n };\n\n\n\n export const isPlainFileOrFolder = filePath => {\n return /^([a-zA-Z]|\\-|\\_|\\@|\\#|\\$|\\!|\\^|\\&|\\*|\\(|\\))+$/.test(filePath);\n };\n\n\n\n export const ipcKeyNameResponse = (\n target: Function,\n methodConfig: Models.MethodConfig,\n expressPath: string,\n ) => {\n return [\n 'response',\n ClassHelpers.getName(target),\n methodConfig.methodName,\n methodConfig.type,\n expressPath,\n ].join('--');\n };\n\n\n\n export const ipcKeyNameRequest = (\n target: Function,\n methodConfig: Models.MethodConfig,\n expressPath: string,\n ) => {\n return [\n 'request',\n ClassHelpers.getName(target),\n methodConfig.methodName,\n methodConfig.type,\n expressPath,\n ].join('--');\n };\n\n\n\n export const websqlMocks = headers => {\n const response: Express.Response = {\n status(status: any) {\n\n return {\n send(send: any) {\n\n },\n };\n },\n setHeader(key: string, value: any) {\n\n headers[key] = value;\n },\n };\n const request: Express.Request = {};\n return { request, response };\n };\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/helpers/taon-helpers.ts","\n\nimport { Symbols } from '../symbols';\nimport { Validators } from '../validators';\nimport { _ } from 'tnp-core/browser';\nimport { Models } from '../models';\nimport { TaonControllerOptions } from '../decorators/classes/controller-decorator';\nimport { TaonHelpers } from './taon-helpers';\nimport { TaonEntityOptions } from '../decorators/classes/entity-decorator';\nimport { CLASS } from 'typescript-class-helpers/browser';\n/* */\n/* */\n \n\nexport namespace ClassHelpers {\n\n /**\n * TODO - repalce in every place when getting class fn from object\n */\n export const getClassFnFromObject = (json: Object) => {\n if (_.isUndefined(json) || _.isNull(json)) {\n return;\n }\n if (json.constructor) {\n return json.constructor;\n }\n const p = Object.getPrototypeOf(json);\n return p && p.constructor && p.constructor.name !== 'Object'\n ? p.constructor\n : void 0;\n };\n\n\n\n export const getName = (classFnOrObject: any): string => {\n\n if (classFnOrObject instanceof FormData) {\n return 'FormData';\n }\n if (!classFnOrObject) {\n console.error('OBJECT OR CLASS', classFnOrObject);\n throw new Error(`Cannot get name from this object or class.`);\n }\n return (\n (classFnOrObject[Symbols.classNameStaticProperty]\n ? classFnOrObject[Symbols.classNameStaticProperty]\n : classFnOrObject?.constructor[Symbols.classNameStaticProperty]) ||\n CLASS.getName(classFnOrObject)\n );\n };\n\n\n export const getOrginalClass = (classFnOrObject: any): any => {\n const org = classFnOrObject[Symbols.orignalClass];\n if (!org) {\n return classFnOrObject;\n }\n return getOrginalClass(org);\n };\n\n\n export const getFullInternalName = (classFnOrObject: any): string => {\n\n\n if (!classFnOrObject) {\n throw new Error(`Cannot get name from: ${classFnOrObject}`);\n }\n return (\n (classFnOrObject[Symbols.fullClassNameStaticProperty]\n ? classFnOrObject[Symbols.fullClassNameStaticProperty]\n : classFnOrObject?.constructor[Symbols.fullClassNameStaticProperty]) ||\n void 0\n );\n };\n\n\n\n export const getUniquKey = (classFnOrObject: any): string => {\n const classFn = _.isFunction(classFnOrObject)\n ? classFnOrObject\n : classFnOrObject.constructor;\n const config = Reflect.getMetadata(\n Symbols.metadata.options.controller,\n classFn,\n ) as TaonEntityOptions;\n return config.uniqueKeyProp;\n };\n\n\n\n export const isContextClassObject = (obj: any): boolean => {\n if (\n !_.isObject(obj) ||\n _.isArray(obj) ||\n _.isRegExp(obj) ||\n _.isBuffer(obj) ||\n _.isArrayBuffer(obj)\n ) {\n return false;\n }\n if (_.isDate(obj)) {\n return true;\n }\n const className = getName(obj);\n return _.isString(className) && className !== 'Object';\n };\n\n\n\n\n export const setName = (target: Function, className: string): void => {\n\n Validators.classNameVlidation(className, target);\n target[Symbols.classNameStaticProperty] = className;\n };\n\n\n\n export const hasParentClassWithName = (\n target: Function,\n className: string,\n targets = [],\n ): boolean => {\n if (!target) {\n return false;\n }\n targets.push(target);\n let targetProto = Object.getPrototypeOf(target);\n\n if (\n _.isFunction(targetProto) &&\n ClassHelpers.getName(targetProto) === className\n ) {\n\n return true;\n }\n return hasParentClassWithName(targetProto, className, targets);\n };\n\n\n\n export const getControllerConfig = (\n target: Function,\n ): Models.ControllerConfig | undefined => {\n const classMetadataOptions: TaonControllerOptions = Reflect.getMetadata(\n Symbols.metadata.options.controller,\n target,\n );\n const classMetadata: Models.ControllerConfig = _.merge(\n new Models.ControllerConfig(),\n classMetadataOptions,\n );\n\n\n const methodNames = ClassHelpers.getMethodsNames(target); // Object.getOwnPropertyNames(target.prototype);\n\n for (const methodName of methodNames) {\n const methodMetadata: Models.MethodConfig = Reflect.getMetadata(\n Symbols.metadata.options.controllerMethod,\n target,\n methodName,\n );\n\n if (methodMetadata) {\n classMetadata.methods[methodName] = methodMetadata;\n }\n }\n return classMetadata;\n };\n\n\n\n\n\n const notAllowedAsMethodName = [\n 'length',\n 'name',\n 'arguments',\n 'caller',\n 'constructor',\n 'apply',\n 'bind',\n 'call',\n 'toString',\n '__defineGetter__',\n '__defineSetter__',\n 'hasOwnProperty',\n '__lookupGetter__',\n '__lookupSetter__',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'valueOf',\n '__proto__',\n 'toLocaleString',\n ];\n\n\n export const getMethodsNames = (\n classOrClassInstance: any,\n allMethodsNames = [],\n ): string[] => {\n if (!classOrClassInstance) {\n return allMethodsNames;\n }\n\n const isClassFunction = _.isFunction(classOrClassInstance);\n const classFun = isClassFunction\n ? classOrClassInstance\n : Object.getPrototypeOf(classOrClassInstance);\n const objectToCheck = isClassFunction\n ? (classOrClassInstance as Function)?.prototype\n : classOrClassInstance;\n const prototypeObj = Object.getPrototypeOf(objectToCheck || {});\n\n const properties = _.uniq([\n ...Object.getOwnPropertyNames(objectToCheck || {}),\n ...Object.getOwnPropertyNames(prototypeObj || {}),\n ...Object.keys(objectToCheck || {}),\n ...Object.keys(prototypeObj || {}),\n ]).filter(f => !!f && !notAllowedAsMethodName.includes(f));\n\n properties\n .filter(methodName => typeof objectToCheck[methodName] === 'function')\n .forEach(p => allMethodsNames.push(p));\n\n if (\n !classFun ||\n !classFun.constructor ||\n classFun?.constructor?.name === 'Object'\n ) {\n return allMethodsNames;\n }\n return getMethodsNames(Object.getPrototypeOf(classFun), allMethodsNames);\n };\n\n\n\n export const getControllerConfigs = (\n target: Function,\n configs: Models.ControllerConfig[] = [],\n callerTarget?: Function,\n ): Models.RuntimeControllerConfig[] => {\n if (!_.isFunction(target)) {\n throw `[typescript-class-helper][getClassConfig] Cannot get class config from: ${target}`;\n }\n\n let config: Models.RuntimeControllerConfig;\n const parentClass = Object.getPrototypeOf(target);\n const parentName = parentClass ? ClassHelpers.getName(parentClass) : void 0;\n const isValidParent = _.isFunction(parentClass) && parentName !== '';\n\n config = getControllerConfig(target);\n\n configs.push(config);\n\n return isValidParent\n ? getControllerConfigs(parentClass, configs, target)\n : configs;\n };\n\n\n\n export const getCalculatedPathFor = (target: Function) => {\n const configs = getControllerConfigs(target);\n\n const parentscalculatedPath = _.slice(configs, 1)\n .reverse()\n .map(bc => {\n if (TaonHelpers.isGoodPath(bc.path)) {\n return bc.path;\n }\n return bc.className;\n })\n .join('/');\n\n return `/${parentscalculatedPath}/${ClassHelpers.getName(target)}`;\n };\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/helpers/class-helpers.ts","\n\nimport { CoreModels } from 'tnp-core/browser';\nimport { Response, RequestHandler } from 'express';\nimport { Response as ExpressResponse, Request as ExpressRequest, } from 'express';/* */\n/* */\n/* */\n\nimport { Models as ModelsNg2Rest } from 'ng2-rest/browser';\nimport { ClassHelpers } from './helpers/class-helpers';\nimport type { TaonControllerOptions } from './decorators/classes/controller-decorator';\nimport type { TaonEntityOptions } from './decorators/classes/entity-decorator';\n\nexport namespace Models {\n export type FrameworkMode =\n | 'backend-frontend(tcp+udp)'\n | 'remote-backend(tcp+udp)'\n | 'backend-frontend(ipc-electron)'\n | 'backend-frontend(websql)';\n\n\n export enum ClassType {\n ENTITY = 'ENTITY',\n CONTROLLER = 'CONTROLLER',\n REPOSITORY = 'REPOSITORY',\n PROVIDER = 'PROVIDER',\n SUBSCRIBER = 'SUBSCRIBER',\n }\n\n export const ClassTypeKey = {\n [ClassType.ENTITY]: 'entities',\n [ClassType.CONTROLLER]: 'controllers',\n [ClassType.REPOSITORY]: 'repositories',\n [ClassType.PROVIDER]: 'providers',\n [ClassType.SUBSCRIBER]: 'subscribers',\n } as {\n [key in ClassType]: keyof ContextOptions<any, any, any, any, any, any>;\n };\n\n\n\n\n export type MiddlewareType = [Function, any[]];\n\n\n\n export interface DatabaseConfig {\n /**\n * database name\n */\n database?: string;\n /**\n * only for file base db: sqlite, sqljs\n */\n location?: string;\n synchronize: boolean;\n dropSchema: boolean;\n type?: CoreModels.DatabaseType;\n\n autoSave: boolean; // TODO what is this ?\n /**\n * for websql db mode\n */\n useLocalForage?: boolean;\n logging: boolean;\n\n databasePort?: number;\n databaseHost?: string;\n databaseUsername?: string;\n databasePassword?: string;\n }\n\n\n\n\n export type ISession = {\n secret?: string;\n saveUninitialized?: boolean;\n /**\n * max age of session\n */\n cookieMaxAge?: number;\n secure?: boolean;\n resave?: boolean;\n };\n\n\n\n export type ContectionOptionsLogs = {\n http: boolean;\n realtime: boolean;\n framework: boolean;\n db: boolean;\n };\n export interface ContextOptions<\n CONTEXTS,\n CONTROLLERS,\n ENTITIES,\n REPOSITORIES,\n PROVIDERS,\n SUBSCRIBERS,\n > {\n contextName: string;\n host?: string;\n /**\n * frontend host only needed when we are using\n * withCredentials for axios\n * and session cookie\n */\n frontendHost?: string;\n remoteHost?: string;\n useIpcWhenElectron?: boolean;\n contexts?: CONTEXTS;\n controllers?: CONTROLLERS;\n entities?: ENTITIES;\n repositories?: REPOSITORIES;\n providers?: PROVIDERS;\n subscribers?: SUBSCRIBERS;\n session?: ISession;\n productionMode?: boolean;\n abstract?: boolean;\n logs?: boolean | ContectionOptionsLogs;\n database?: boolean | DatabaseConfig;\n disabledRealtime?: boolean;\n https?: {\n key: string;\n cert: string;\n };\n publicAssets?: { serverPath: string; locationOnDisk: string }[];\n middlewares?: MiddlewareType[];\n /**\n * @deprecated\n * only for debugging purpose\n */\n override?: {\n entities?: Function[];\n controllers?: Function[];\n repositories?: Function[];\n providers?: Function[];\n subscribers?: Function[];\n };\n }\n\n\n\n export class DecoratorAbstractOpt {\n className: string;\n }\n\n\n\n export class ParamConfig {\n paramName: string;\n paramType: CoreModels.ParamType;\n index: number;\n defaultType: any;\n expireInSeconds?: number;\n }\n\n\n\n export class MethodConfig {\n methodName: string;\n /**\n * path is global in express app\n */\n global?: boolean;\n /**\n * override default content type\n */\n contentType?: any;\n /**\n * override default axiso response type\n */\n responseType?: any;\n path: string;\n descriptor: PropertyDescriptor;\n type: CoreModels.HttpMethod;\n/* */\n/* */\n \n parameters: { [paramName: string]: ParamConfig } = {};\n }\n\n\n\n export class ControllerConfig extends DecoratorAbstractOpt {\n realtime?: boolean;\n path: string;\n uniqueKey?: string;\n methods: { [methodName: string]: MethodConfig } = {};\n }\n\n\n\n export class RuntimeControllerConfig extends ControllerConfig {\n calculatedPath?: string;\n browserTransformFn?: (entity: any) => any;\n }\n\n\n\n export namespace Http {\n export import Rest = ModelsNg2Rest;\n\n export type ContextENDPOINT = { target: Function; initFN: Function };\n\n export type FormlyFromType = 'material' | 'bootstrap';\n\n export type ExpressContext<T> = (\n req: ExpressRequest,\n res: ExpressResponse,\n ) => T;\n\n export type SyncResponse<T> = string | T;\n\n export type ResponseFuncOpt<T> = {\n limitSize?: (\n enties: Function | Function[],\n include: string[],\n exclude: string[],\n ) => void;\n };\n\n export type SyncResponseFunc<T> = (\n options?: ResponseFuncOpt<T>,\n ) => SyncResponse<T>;\n export type MixResponse<T> = SyncResponse<T> | ExpressContext<T>;\n\n export interface ClientAction<T> {\n received?: Rest.PromiseObservableMix<Rest.HttpResponse<T>>;\n }\n\n export interface __Response<T> {\n/* */\n/* */\n \n }\n\n export interface AsyncResponse<T> {\n (\n req?: ExpressRequest,\n res?: ExpressResponse,\n ): Promise<SyncResponse<T> | SyncResponseFunc<T>>;\n }\n\n export type Response<T = string> = (__Response<T> | AsyncResponse<T>) &\n ClientAction<T> &\n __Response<T>;\n\n export class Errors {\n public toString = (): string => {\n return this.message;\n };\n\n private constructor(\n public message: string,\n private code: ModelsNg2Rest.HttpCode = 400,\n ) {}\n\n private static create(\n message: string,\n code: ModelsNg2Rest.HttpCode = 400,\n ) {\n return new Errors(message, code);\n }\n\n public static entityNotFound(entity?: Function) {\n return Errors.create(\n `Entity ${ClassHelpers.getName(entity)} not found`,\n );\n }\n\n public static custom(\n message: string,\n code: ModelsNg2Rest.HttpCode = 400,\n ) {\n return Errors.create(message, code);\n }\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/models.ts","\n\nimport { CoreModels, _ } from 'tnp-core/browser';\nimport { Models } from '../../models';\nimport { Symbols } from '../../symbols';\nimport { Models as ModelsNg2Rest } from 'ng2-rest/browser';\nconst metaReq = (\n method: Models.Http.Rest.HttpMethod,\n path: string,\n target: Function,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n pathOrOptions: string | TaonHttpDecoratorOptions,\n pathIsGlobal: boolean,\n) => {\n let options: TaonHttpDecoratorOptions;\n if (typeof pathOrOptions === 'object') {\n options = pathOrOptions;\n pathOrOptions = options.path as any;\n pathIsGlobal = !!options.pathIsGlobal;\n path = options.path;\n } else {\n options = { pathOrOptions, pathIsGlobal } as any;\n }\n\n const { overrideContentType, overridResponseType } = options;\n\n let methodConfig: Models.MethodConfig = Reflect.getMetadata(\n Symbols.metadata.options.controllerMethod,\n target.constructor,\n propertyKey,\n );\n if (!methodConfig) {\n methodConfig = new Models.MethodConfig();\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n }\n\n methodConfig.methodName = propertyKey;\n methodConfig.type = method;\n if (!path) {\n let paramsPathConcatedPath = '';\n for (const key in methodConfig.parameters) {\n if (methodConfig.parameters.hasOwnProperty(key)) {\n const element = methodConfig.parameters[key];\n if (\n element.paramType === 'Path' &&\n _.isString(element.paramName) &&\n element.paramName.trim().length > 0\n ) {\n paramsPathConcatedPath += `/${element.paramName}/:${element.paramName}`;\n }\n }\n }\n methodConfig.path = `/${propertyKey}${paramsPathConcatedPath}`;\n } else {\n methodConfig.path = path;\n }\n\n methodConfig.descriptor = descriptor;\n methodConfig.global = pathIsGlobal;\n methodConfig.contentType = overrideContentType;\n methodConfig.responseType = overridResponseType;\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n\n};\n\nexport interface TaonHttpDecoratorOptions {\n path?: string;\n pathIsGlobal?: boolean;\n overrideContentType?: CoreModels.ContentType;\n overridResponseType?: ModelsNg2Rest.ResponseTypeAxios;\n}\n\nexport function GET(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'get',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function HEAD(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'head',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function POST(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'post',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function PUT(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'put',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function PATCH(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'patch',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function DELETE(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'delete',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/http/http-methods-decorators.ts","\n\nimport { Models } from '../../models';\nimport { Symbols } from '../../symbols';\n\nfunction metaParam(\n param: Models.Http.Rest.ParamType,\n name: string,\n expire: number,\n defaultValue = undefined,\n target: Function,\n propertyKey: string | symbol,\n parameterIndex: number,\n) {\n let methodConfig: Models.MethodConfig = Reflect.getMetadata(\n Symbols.metadata.options.controllerMethod,\n target.constructor,\n propertyKey,\n );\n if (!methodConfig) {\n methodConfig = new Models.MethodConfig();\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n }\n\n const nameKey = name ? name : param;\n const p = (methodConfig.parameters[nameKey] = !methodConfig.parameters[\n nameKey\n ]\n ? new Models.ParamConfig()\n : methodConfig.parameters[nameKey]);\n p.index = parameterIndex;\n p.paramName = name;\n p.paramType = param;\n p.defaultType = defaultValue;\n p.expireInSeconds = expire;\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n\n}\n\nexport function Path(name: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam('Path', name, undefined, {}, target, propertyKey, parameterIndex);\n };\n}\n\nexport function Query(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Query',\n name,\n undefined,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Cookie(name: string, expireInSecond: number = 3600) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Cookie',\n name,\n expireInSecond,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Header(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Header',\n name,\n undefined,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Body(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam('Body', name, undefined, {}, target, propertyKey, parameterIndex);\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/http/http-params-decorators.ts","\n\nimport * as methods from './http-methods-decorators';\nimport * as params from './http-params-decorators';\n\nexport namespace Http {\n export import GET = methods.GET;\n export import POST = methods.POST;\n export import PUT = methods.PUT;\n export import DELETE = methods.DELETE;\n export import PATCH = methods.PATCH;\n export import HEAD = methods.HEAD;\n export namespace Param {\n export import Query = params.Query;\n export import Path = params.Path;\n export import Body = params.Body;\n export import Cookie = params.Cookie;\n export import Header = params.Header;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/http/http-decorators.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\n\nexport function TaonController(options?: TaonControllerOptions) {\n return function (constructor: Function) {\n ClassHelpers.setName(constructor, options?.className);\n Reflect.defineMetadata(\n Symbols.metadata.options.controller,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n };\n}\n\nexport class TaonControllerOptions extends Models.DecoratorAbstractOpt {\n /**\n * typeorm realtime subscribtion // TODO disabled for now, does not make sense ?s\n */\n realtime?: boolean;\n /**\n * override default path for controller api\n */\n path?: string;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/controller-decorator.ts","\n\n\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { EndpointContext } from '../endpoint-context';\nimport { Symbols } from '../symbols';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport type { BaseRepository } from './base-repository';\nimport { BaseClass } from './base-class';\n\n\nexport class BaseInjector<CloneT extends BaseClass = any> {\n /**\n * for proxy purposes\n */\n getOriginalPrototype: () => any;\n /**\n * for proxy purposes\n */\n getOriginalConstructor: () => any;\n\n\n /**\n * class initialization hook\n * taon after class instace creation\n */\n async _() {\n const reposToInit = this.__repositories_to_init__;\n for (const repo of reposToInit) {\n await repo.__init(this);\n }\n }\n\n\n\n /**\n * Current endpoint context\n */\n get __endpoint_context__() {\n return this[Symbols.ctxInClassOrClassObj] as EndpointContext;\n }\n\n\n\n\n\n /**\n * inject crud repo for entity\n */\n injectRepo<T>(entityForCrud: new (...args: any[]) => T): BaseRepository<T> {\n const repoProxy = this.__inject(void 0, {\n localInstance: true,\n resolveClassFromContext: 'BaseRepository',\n locaInstanceConstructorArgs: [() => entityForCrud],\n });\n this.__repositories_to_init__.push(repoProxy as any);\n return repoProxy as any;\n }\n\n\n\n injectCustomRepository<T>(\n cutomRepositoryClass: new (...args: any[]) => T,\n ): T {\n const repoProxy = this.__inject<T>(cutomRepositoryClass, {\n localInstance: true,\n locaInstanceConstructorArgs: [\n () => cutomRepositoryClass.prototype.entityClassResolveFn(),\n ],\n });\n this.__repositories_to_init__.push(repoProxy as any);\n return repoProxy;\n }\n\n\n\n /**\n * aliast to .injectRepository()\n */\n injectCustomRepo<T>(cutomRepositoryClass: new (...args: any[]) => T): T {\n const repoProxy = this.injectCustomRepository<T>(cutomRepositoryClass);\n this.__repositories_to_init__.push(repoProxy as any);\n return repoProxy;\n }\n\n\n\n injectController<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n\n\n /**\n * aliast to .injectController()\n */\n injectSubscriber<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n\n /**\n * aliast to .injectController()\n */\n injectCtrl<T>(ctor: new (...args: any[]) => T): T {\n return this.injectController<T>(ctor);\n }\n\n\n\n /**\n * global provider available in every context\n */\n injectGlobalProvider<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n\n /**\n * context scoped provider\n * TODO\n */\n injectContextProvider<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n /**\n * Repositories to init (by controller)\n */\n protected __repositories_to_init__ = [] as BaseRepository<any>[];\n\n\n /**\n * Inject: Controllers, Providers, Repositories, Services, etc.\n * TODO addd nest js injecting\n */\n private __inject<T>(\n ctor: new (...args: any[]) => T,\n options?: {\n /**\n * (repositories are ONLY/ALWAYS local instances)\n * If true, then local instance will be created\n * controllers, providers can be local or global\n */\n localInstance: boolean;\n resolveClassFromContext?: string;\n locaInstanceConstructorArgs?: ConstructorParameters<typeof ctor>;\n },\n ): T {\n if (!options) {\n options = {} as any;\n }\n\n const contextClassInstance = this;\n return new Proxy(\n {},\n {\n get: (__, propName) => {\n const contextFromClass: EndpointContext =\n ctor && ctor[Symbols.ctxInClassOrClassObj];\n\n const resultContext: EndpointContext = contextFromClass\n ? contextFromClass\n : this.__endpoint_context__;\n\n if (options.resolveClassFromContext) {\n const resolvedClass = resultContext.getClassFunByClassName(\n options.resolveClassFromContext,\n );\n ctor = resolvedClass as any;\n }\n\n if (resultContext) {\n var instance: T = resultContext.inject(ctor, {\n ...options,\n contextClassInstance,\n });\n if (!instance) {\n throw new Error(\n `Not able to inject \"${\n ClassHelpers.getName(ctor) || ctor.name\n }\" inside ` +\n `property \"${propName?.toString()}\" on class \"${ClassHelpers.getName(\n this,\n )}\".\n\n Please add \"${\n ClassHelpers.getName(ctor) || ctor.name\n }\" to (entites or contorllers or providers or repositories)\n\n `,\n );\n }\n\n const result =\n typeof instance[propName] === 'function'\n ? instance[propName].bind(instance)\n : instance[propName];\n\n\n return result;\n }\n\n\n\n },\n set: (__, propName, value) => {\n const contextFromClass = ctor && ctor[Symbols.ctxInClassOrClassObj];\n const resultContext: EndpointContext = contextFromClass\n ? contextFromClass\n : this.__endpoint_context__;\n\n if (options.resolveClassFromContext) {\n const resolvedClass = resultContext.getClassFunByClassName(\n options.resolveClassFromContext,\n );\n ctor = resolvedClass as any;\n }\n\n if (resultContext) {\n var instance: T = resultContext.inject(ctor, {\n ...options,\n contextClassInstance,\n });\n if (!instance) {\n const classNameNotResolved =\n ClassHelpers.getName(ctor) || ctor.name;\n throw new Error(\n `Not able to inject \"${classNameNotResolved}\" inside ` +\n `property \"${propName?.toString()}\" on class \"${ClassHelpers.getName(\n this,\n )}\".\n\n Please add \"${\n ClassHelpers.getName(ctor) || ctor.name\n }\" to (entites or contorllers or providers or repositories)\n\n `,\n );\n }\n instance[propName] = value;\n }\n return true;\n },\n },\n ) as T;\n }\n\n\n\n\n\n public clone(override: Partial<CloneT>): CloneT {\n const classFn = ClassHelpers.getClassFnFromObject(this);\n const result = _.merge(new classFn(), _.merge(_.cloneDeep(this), override));\n\n return result;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-injector.ts","\n\nimport { TaonController } from '../decorators/classes/controller-decorator';\nimport { BaseInjector } from './base-injector';\n\n@TaonController({ className: 'BaseController' })\nexport class BaseController extends BaseInjector {\n /**\n * init example data for db\n */\n initExampleDbData(): Promise<any> {\n return void 0;\n }\n\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-controller.ts","\n\n\nimport { Symbols } from '../symbols';\nimport { BaseController } from './base-controller';\nimport { BaseRepository } from './base-repository';\nimport { GET, PUT, DELETE, POST, HEAD, PATCH, } from '../decorators/http/http-methods-decorators';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { Query, Path, Body } from '../decorators/http/http-params-decorators';\nimport { MySqlQuerySource } from 'taon-type-sql/browser';\nimport { Models } from '../models';\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { TaonController, TaonControllerOptions, } from '../decorators/classes/controller-decorator';/* */\n/* */\n/* */\n\nimport { ClassHelpers } from '../helpers/class-helpers';\n\nimport { Validators } from '../validators';\nimport { TaonEntityOptions } from '../decorators/classes/entity-decorator';\n\n\n/**\n * Please override property entityClassFn with entity class.\n */\n@TaonController({ className: 'BaseCrudController' })\nexport abstract class BaseCrudController<Entity> extends BaseController {\n\n protected db?: BaseRepository<Entity>;\n\n /**\n * Please provide entity as class propery entityClassFn:\n * @returns class function\n *\n */\n abstract entityClassResolveFn: () => any;\n\n\n\n async _() {\n if (!_.isFunction(this.entityClassResolveFn)) {\n Helpers.warn(\n `Skipping initing CRUD controller ${ClassHelpers.getName(\n this,\n )} because entityClassResolveFn is not provided.`,\n );\n return;\n }\n\n let entityClassFn = this.entityClassResolveFn();\n this.db = this.injectRepo(entityClassFn);\n\n if (entityClassFn) {\n const configEntity = Reflect.getMetadata(\n Symbols.metadata.options.entity,\n ClassHelpers.getClassFnFromObject(this),\n ) as TaonEntityOptions;\n if (configEntity?.createTable === false) {\n Helpers.warn(\n `Table for entity ${ClassHelpers.getName(\n entityClassFn,\n )} will not be created. Crud will not work properly.`,\n );\n }\n } else {\n Helpers.error(`Entity class not provided for controller ${ClassHelpers.getName(\n this,\n )}.\n\n Please provide entity as class propery entityClassFn:\n\n class ${ClassHelpers.getName(this)} extends BaseCrudController<Entity> {\n\n entityClassResolveFn = ()=> MyEntityClass;\n\n }\n\n `);\n }\n await super._();\n }\n\n\n\n @GET(`/:id/property/:property`)\n bufforedChanges(\n @Path(`id`) id: number | string,\n @Path(`property`) property: string,\n @Query('alreadyLength') alreadyLength?: number,\n ): Models.Http.Response<string | any[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @GET()\n pagination(\n @Query('pageNumber') pageNumber: number = 1,\n @Query('pageSize') pageSize: number = 10,\n @Query('search') search: string = '',\n ): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @GET()\n getAll(): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @GET(`/:id`)\n getBy(@Path(`id`) id: number | string): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @PUT(`/:id`)\n updateById(\n @Path(`id`) id: number | string,\n @Body() item: Entity,\n ): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @PATCH(`/:id`)\n patchById(\n @Path(`id`) id: number | string,\n @Body() item: Entity,\n ): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @PUT()\n bulkUpdate(@Body() items: Entity[]): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @DELETE(`/:id`)\n deleteById(@Path(`id`) id: number): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @DELETE(`/bulkDelete/:ids`)\n bulkDelete(\n @Path(`ids`) ids: (number | string)[],\n ): Models.Http.Response<(number | string | Entity)[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @POST()\n create(@Body() item: Entity): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @POST()\n bulkCreate(@Body() items: Entity): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-crud-controller.ts","\n\n\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { EndpointContext } from '../endpoint-context';\nimport { Symbols } from '../symbols';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport type { BaseRepository } from './base-repository';\n\nimport { inject } from '@angular/core';\n\n\n\nexport class BaseClass<CloneT extends BaseClass = any> {\n\n /**\n * class initialization hook\n * taon after class instace creation\n */\n async _() {}\n\n\n\n public clone(override: Partial<CloneT>): CloneT {\n const classFn = ClassHelpers.getClassFnFromObject(this);\n const result = _.merge(new classFn(), _.merge(_.cloneDeep(this), override));\n\n return result;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-class.ts","\n\n/* */\n/* */\n \nimport { EndpointContext } from '../endpoint-context';\nimport { Symbols } from '../symbols';\nimport { BaseClass } from './base-class';\n\nlet EntityDecorator = () => {\n return (target: any) => {};\n};\n\n/* */\n/* */\n \n\n@EntityDecorator()\nexport abstract class BaseEntity<\n /**\n * type for cloning\n */\n CloneT extends BaseClass = any,\n> extends BaseClass<CloneT> {}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-entity.ts","\n\n/* */\n/* */\n \nimport { Orm } from '../orm';\nimport { BaseEntity } from './base-entity';\nimport type { BaseClass } from './base-class';\n\n\nlet EntityDecorator = () => {\n return (target: any) => {};\n};\n\n/* */\n/* */\n \n\n@EntityDecorator()\nexport abstract class BaseAbstractEntity<\n CloneT extends BaseClass = any,\n> extends BaseEntity<CloneT> {\n/* */\n/* */\n \n id: string;\n\n/* */\n/* */\n \n version: number;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-abstract-entity.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\nimport { Repository as TypeormRepository, EntityRepository, } from 'taon-typeorm/browser';/* */\n/* */\n/* */\n\nimport { _ } from 'tnp-core/browser';\n\nexport function TaonRepository(options: TaonRepositoryOptions) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols.metadata.options.repository,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers.setName(constructor, options?.className);\n };\n}\n\nexport class TaonRepositoryOptions<\n T = any,\n> extends Models.DecoratorAbstractOpt {}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/repository-decorator.ts","\n\n\nimport type {\n DataSource,\n DeepPartial,\n DeleteResult,\n FindManyOptions,\n FindOneOptions,\n FindOptionsWhere,\n InsertResult,\n\n RemoveOptions,\n Repository,\n SaveOptions,\n UpdateResult,\n} from 'taon-typeorm';\n\nimport type { QueryDeepPartialEntity } from 'taon-typeorm/lib/typeorm/query-builder/QueryPartialEntity';\n\nimport type { UpsertOptions } from 'taon-typeorm/lib/typeorm/repository/UpsertOptions';\n\n\n\nimport type { DataSource as DataSourceType } from 'taon-typeorm/browser';\nimport { EndpointContext } from '../endpoint-context';\nimport { Helpers } from 'tnp-core/browser';\nimport { _ } from 'tnp-core/browser';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport { MySqlQuerySource } from 'taon-type-sql/browser';\nimport { TaonRepository } from '../decorators/classes/repository-decorator';\nimport { BaseInjector } from './base-injector';\n\n\nconst INDEX_KEYS_NO_FOR_UPDATE = ['id'];\n\n@TaonRepository({ className: 'BaseRepository' })\nexport abstract class BaseRepository<\n Entity extends { id?: any },\n> extends BaseInjector {\n\n\n\n\n\n\n abstract entityClassResolveFn: () => any;\n constructor(\n\n private __entityClassResolveFn: () => any,\n ) {\n super();\n // @ts-ignore\n this.entityClassResolveFn = __entityClassResolveFn;\n }\n\n\n\n private __dbQuery: MySqlQuerySource;\n\n public get dbQuery(): MySqlQuerySource {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n public get connection(): DataSourceType {\n/* */\n/* */\n return (void 0);\n }\n\n\n\n/* */\n/* */\n \n protected get repository() {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * target for repository\n */\n public get target(): Function {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to repository\n */\n protected get repo() {\n/* */\n/* */\n return (void 0);\n }\n\n public get repositoryExists(): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n\n\n\n\n async __init(context?: any) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n /**\n * Checks if entity has an id.\n * If entity composite compose ids, it will check them all.\n */\n hasId(entity: Entity): boolean {\n return this.repo.hasId(entity);\n }\n\n\n\n /**\n * Gets entity mixed id.\n */\n getId(entity: Entity): any {\n return this.repo.getId(entity);\n }\n\n\n\n /**\n Saves a given entity in the database.\n * If entity does not exist in the database then inserts, otherwise updates.\n */\n async save(\n item: Entity,\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to save\n * -> it will actuall create new entity in db\n * in oposite to typeorm create method\n */\n async create(\n item: Entity,\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity> {\n return this.save(item, options);\n }\n\n async bulkSave(\n items: Entity[],\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async bulkCreate(\n items: Entity[],\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity[]> {\n return this.bulkSave(items, options);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Saves all given entities in the database.\n * If entities do not exist in the database then inserts, otherwise updates.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Merges multiple entities (or entity-like objects) into a given entity.\n */\n merge(mergeIntoEntity: Entity, ...entityLikes: Entity[]): Entity {\n return this.repo.merge(mergeIntoEntity, ...entityLikes);\n }\n\n\n\n /**\n * Creates a new entity from the given plain javascript object. If entity already exist in the database, then\n * it loads it (and everything related to it), replaces all values with the new ones from the given object\n * and returns this new entity. This new entity is actually a loaded from the db entity with all properties\n * replaced from the new object.\n *\n * Note that given entity-like object must have an entity id / primary key to find entity by.\n * Returns undefined if entity with given id was not found.\n */\n preload(entityLike: Entity): Promise<Entity | undefined> {\n return this.repo.preload(entityLike);\n }\n\n\n\n\n /**\n * Removes a given entities from the database.\n */\n async remove(idOrEntity: number | string | Entity): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to remove\n */\n async delete(idOrEntity: number | string | Entity): Promise<Entity> {\n return this.remove(idOrEntity);\n }\n\n /**\n * alias to removeById\n */\n async deleteById(id: number | string): Promise<Entity> {\n return this.remove(id);\n }\n async bulkRemove(\n idsOrEntities: (number | string | Entity)[],\n ): Promise<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async bulkDelete(ids: (number | string | Entity)[]): Promise<Entity[]> {\n return this.bulkRemove(ids);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends Entity>(\n entities: T[],\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T[]>;\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends Entity>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>;\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends Entity>(\n entity: T,\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T>;\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends Entity>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity> {\n return this.repo.softRemove(entity, options);\n }\n\n\n\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends Entity>(\n entities: T[],\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T[]>;\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends Entity>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>;\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends Entity>(\n entity: T,\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T>;\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends Entity>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity> {\n return this.repo.recover(entity, options);\n }\n\n\n\n /**\n * Inserts a given entity into the database.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT query.\n * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted.\n */\n insert(\n entity: QueryDeepPartialEntity<Entity> | QueryDeepPartialEntity<Entity>[],\n ): Promise<InsertResult> {\n return this.repo.insert(entity);\n }\n\n\n\n async update(item: Entity) {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async updateById(id: number | string, item: Entity) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n async bulkUpdate(items: Entity[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Inserts a given entity into the database, unless a unique constraint conflicts then updates the entity\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT ... ON CONFLICT DO UPDATE/ON DUPLICATE KEY UPDATE query.\n */\n upsert(\n entityOrEntities:\n | QueryDeepPartialEntity<Entity>\n | QueryDeepPartialEntity<Entity>[],\n conflictPathsOrOptions: string[] | UpsertOptions<Entity>,\n ): Promise<InsertResult> {\n return this.repo.upsert(entityOrEntities, conflictPathsOrOptions);\n }\n\n\n\n /**\n * Records the delete date of entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n softDelete(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n\n\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.repo.softDelete(criteria);\n }\n\n\n\n /**\n * Restores entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n restore(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n\n\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.repo.restore(criteria);\n }\n\n\n\n /**\n * Counts entities that match given options.\n * Useful for pagination.\n */\n count(options?: FindManyOptions<Entity>): Promise<number> {\n return this.repo.count(options);\n }\n\n\n\n /**\n * Counts entities that match given conditions.\n * Useful for pagination.\n */\n countBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number> {\n return this.repo.countBy(where);\n }\n\n\n\n /**\n * Finds entities that match given find options.\n */\n find(options?: FindManyOptions<Entity>): Promise<Entity[]> {\n return this.repo.find(options);\n }\n\n\n\n /**\n * Finds entities that match given find options.\n */\n findBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity[]> {\n return this.repo.findBy(where);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n //\n /**\n * Finds entities that match given find options.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCount(options?: FindManyOptions<Entity>): Promise<[Entity[], number]> {\n return this.repo.findAndCount(options);\n }\n\n\n\n /**\n * Finds entities that match given WHERE conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCountBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<[Entity[], number]> {\n return this.repo.findAndCountBy(where);\n }\n\n\n\n /**\n * Finds entities with ids.\n * Optionally find options or conditions can be applied.\n *\n * @deprecated use `findBy` method instead in conjunction with `In` operator, for example:\n *\n * .findBy({\n * id: In([1, 2, 3])\n * })\n */\n findByIds(ids: any[]): Promise<Entity[]> {\n return this.repo.findByIds(ids);\n }\n\n\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - returns null.\n */\n findOne(options: FindOneOptions<Entity>): Promise<Entity | null> {\n return this.repo.findOne(options);\n }\n\n\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - returns null.\n */\n findOneBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity | null> {\n return this.repo.findOneBy(where);\n }\n\n\n\n /**\n * Finds first entity that matches given id.\n * If entity was not found in the database - returns null.\n *\n * @deprecated use `findOneBy` method instead in conjunction with `In` operator, for example:\n *\n * .findOneBy({\n * id: 1 // where \"id\" is your primary column name\n * })\n */\n findOneById(\n id: number | string | Date,\n\n ): Promise<Entity | null> {\n return this.repo.findOneById(id);\n }\n\n\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - rejects with error.\n */\n findOneOrFail(options: FindOneOptions<Entity>): Promise<Entity> {\n return this.repo.findOneOrFail(options);\n }\n\n\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - rejects with error.\n */\n findOneByOrFail(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity> {\n return this.repo.findOneByOrFail(where);\n }\n\n\n\n /**\n * Executes a raw SQL query and returns a raw database results.\n * Raw query execution is supported only by relational databases (MongoDB is not supported).\n */\n query(query: string, parameters?: any[]): Promise<any> {\n return this.repo.query(query, parameters);\n }\n\n\n\n /**\n * Clears all the data from the given table/collection (truncates/drops it).\n *\n * Note: this method uses TRUNCATE and may not work as you expect in transactions on some platforms.\n * @see https://stackoverflow.com/a/5972738/925151\n */\n clear(): Promise<void> {\n return this.repo.clear();\n }\n\n\n\n /**\n * Increments some column by provided value of the entities matched given conditions.\n */\n increment(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.repo.increment(conditions, propertyPath, value);\n }\n\n\n\n /**\n * Decrements some column by provided value of the entities matched given conditions.\n */\n decrement(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.repo.decrement(conditions, propertyPath, value);\n }\n\n\n\n /**\n * @deprecated use findAndCount instead\n */\n async getAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n async getBy(id: number | string): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-repository.ts","\n\nimport { BaseInjector } from './base-injector';\n\nexport class BaseProvider extends BaseInjector {}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-provider.ts","\n\nexport class DITaonContainer {\n private static instances = new Map();\n\n static resolve<T>(target: Function): T {\n if (DITaonContainer.instances.has(target)) {\n return DITaonContainer.instances.get(target);\n }\n\n\n const injections = []; // tokens.map(token => Container.inject<any>(token));\n\n const instance = new (target as any)(...injections);\n DITaonContainer.instances.set(target, instance);\n return instance;\n }\n\n static inject<T>(target: new (...args: any[]) => T): T {\n return new Proxy(\n {},\n {\n get: (_, propName) => {\n let instance: T =\n DITaonContainer.instances.get(target) ||\n DITaonContainer.resolve(target);\n return typeof instance[propName] === 'function'\n ? instance[propName].bind(instance)\n : instance[propName];\n },\n set: (_, propName, value) => {\n let instance: T =\n DITaonContainer.instances.get(target) ||\n DITaonContainer.resolve(target);\n instance[propName] = value;\n return true;\n },\n },\n ) as T;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/dependency-injection/di-container.ts","\n\nimport { Models } from './models';\nimport { Response as ExpressResponse, Request as ExpressRequest, } from 'express';/* */\n/* */\n/* */\n\nimport { TaonHelpers } from './helpers/taon-helpers';\nimport { Helpers } from 'tnp-core/browser';\n\nexport const getResponseValue = <T>(\n response: Models.Http.Response<T>,\n options?: { req: ExpressRequest; res: ExpressResponse },\n): Promise<T> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n};\n\n ;({}); // @--end-of-file-for-module=taon lib/get-response-value.ts","\n\nimport { Helpers } from 'tnp-core/browser';\n\nconst ENV = Helpers.isBrowser ? window['ENV'] : global['ENV'];\n\nexport { ENV };\n\n ;({}); // @--end-of-file-for-module=taon lib/env.ts","\n\n\n/* */\n/* */\n \nimport { _ } from 'tnp-core/browser';\nimport { Subscriber } from 'rxjs';\nimport { Symbols } from '../symbols';\nimport { Socket as SocketClient } from 'socket.io-client';\nimport { DefaultEventsMap } from 'socket.io/dist/typed-events';\nimport { RealtimeModels } from './realtime.models';\n\n\nexport class RealtimeSubsManager {\n private isListening = false;\n private observers: Subscriber<any>[] = [];\n constructor(private options: RealtimeModels.SubsManagerOpt) {}\n\n\n startListenIfNotStarted(\n realtime: SocketClient<DefaultEventsMap, DefaultEventsMap>,\n ) {\n if (this.options.core.ctx.disabledRealtime) {\n console.warn(`[Taon][startListenIfNotStarted] sockets are disabled`);\n return;\n }\n\n if (!realtime) {\n console.warn(\n `[Taon][startListenIfNotStarted] invalid socket connection`,\n );\n return;\n }\n\n if (!this.isListening) {\n const subscribeEvent = Symbols.REALTIME.ROOM_NAME.SUBSCRIBE.CUSTOM(\n this.options.core.ctx.contextName,\n );\n\n this.isListening = true;\n\n if (this.options.customEvent) {\n\n realtime.emit(\n subscribeEvent,\n this.options.roomName,\n );\n } else {\n if (_.isString(this.options.property)) {\n\n realtime.emit(\n Symbols.REALTIME.ROOM_NAME.SUBSCRIBE.ENTITY_PROPERTY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n this.options.roomName,\n );\n } else {\n\n realtime.emit(\n Symbols.REALTIME.ROOM_NAME.SUBSCRIBE.ENTITY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n this.options.roomName,\n );\n }\n }\n\n\n realtime.on(this.options.roomName, data => {\n this.update(data);\n });\n }\n }\n\n\n\n add(observer: Subscriber<any>) {\n\n this.observers.push(observer);\n }\n\n\n\n remove(observer: Subscriber<any>) {\n\n this.observers = this.observers.filter(obs => obs !== observer);\n if (this.observers.length === 0) {\n\n this.isListening = false;\n const { core, customEvent, roomName, property } = this.options;\n\n const realtime = core.FE_REALTIME;\n\n if (customEvent) {\n realtime.emit(\n Symbols.REALTIME.ROOM_NAME.UNSUBSCRIBE.CUSTOM(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n } else {\n if (_.isString(property)) {\n realtime.emit(\n Symbols.REALTIME.ROOM_NAME.UNSUBSCRIBE.ENTITY_PROPERTY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n } else {\n realtime.emit(\n Symbols.REALTIME.ROOM_NAME.UNSUBSCRIBE.ENTITY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n }\n }\n }\n }\n\n\n\n private update(data: any) {\n\n const ngZone = this.options.core.ctx.ngZone;\n\n\n this.observers.forEach(observer => {\n\n if (!observer.closed) {\n if (ngZone) {\n ngZone.run(() => {\n observer.next(data);\n });\n } else {\n observer.next(data);\n }\n }\n });\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-subs-manager.ts","\n\n\nimport { _ } from 'tnp-core/browser';\nimport { RealtimeCore } from './realtime-core';\nimport { Symbols } from '../symbols';\nimport { Observable } from 'rxjs';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport { RealtimeSubsManager } from './realtime-subs-manager';\nimport { RealtimeModels } from './realtime.models';\nimport type { BaseEntity } from '../base-classes/base-entity';\nimport { Helpers } from 'tnp-core/browser';\n\n\nexport class RealtimeClient {\n private subsmanagers: { [path: string]: RealtimeSubsManager } = {};\n constructor(private core: RealtimeCore) {\n this.core = core;\n if (!core.ctx.disabledRealtime) {\n\n this.init();\n\n }\n }\n\n\n private init() {\n\n const nspPath = {\n global: this.core.pathFor(),\n realtime: this.core.pathFor(\n Symbols.REALTIME.NAMESPACE(this.core.ctx.contextName),\n ),\n };\n\n this.core.ctx.logRealtime &&\n console.info(\n '[CLIENT] NAMESPACE GLOBAL ',\n nspPath.global.href + ` host: ${this.core.ctx.host}`,\n );\n\n this.core.ctx.logRealtime &&\n console.info(\n '[CLIENT] NAMESPACE REALTIME',\n nspPath.realtime.href + ` host: ${this.core.ctx.host}`,\n );\n\n\n\n this.core.FE = this.core.strategy.io(nspPath.global.origin, {\n path: nspPath.global.pathname,\n });\n\n if (this.core.FE.on) {\n this.core.FE.on('connect', () => {\n\n\n\n console.info(\n `[CLIENT] conented to GLOBAL namespace ${this.core.FE.id} of host: ${this.core.ctx.host}`,\n );\n });\n }\n\n\n\n\n this.core.FE_REALTIME = this.core.strategy.io(nspPath.realtime.origin, {\n path: nspPath.realtime.pathname,\n });\n\n if (this.core.FE_REALTIME.on) {\n this.core.FE_REALTIME.on('connect', () => {\n\n\n\n console.info(\n `[CLIENT] conented to REALTIME namespace ${this.core.FE_REALTIME.id} host: ${this.core.ctx.host}`,\n );\n });\n }\n\n\n }\n\n\n\n /**\n * Changes trigger on backend needs to be done manually.. example code:\n *\n * ...\n * Context.Realtime.Server.TrigggerEntityChanges(myEntityInstance);\n * ...\n */\n listenChangesEntity(\n entityClassFn: Function,\n idOrUniqValue: any,\n options: RealtimeModels.ChangeOption,\n ) {\n options = options || ({} as any);\n\n\n const { property, customEvent } = options;\n const className = !customEvent && ClassHelpers.getName(entityClassFn);\n\n if (_.isString(property)) {\n if (property.trim() === '') {\n throw new Error(\n `[Taon][listenChangesEntity.. incorect property '' for ${className}`,\n );\n }\n }\n\n\n return new Observable(observer => {\n\n\n if (this.core.ctx.disabledRealtime) {\n console.error(`[Taon][realtime rxjs] remove taon config flag:\n\n ...\n disabledRealtime: true\n ...\n\nto use socket realtime connection;\n `);\n return () => {\n\n };\n }\n\n let roomName: string;\n\n if (customEvent) {\n roomName = Symbols.REALTIME.ROOM_NAME.CUSTOM(\n this.core.ctx.contextName,\n customEvent,\n );\n } else {\n roomName = _.isString(property)\n ? Symbols.REALTIME.ROOM_NAME.UPDATE_ENTITY_PROPERTY(\n this.core.ctx.contextName,\n className,\n property,\n idOrUniqValue,\n )\n : Symbols.REALTIME.ROOM_NAME.UPDATE_ENTITY(\n this.core.ctx.contextName,\n className,\n idOrUniqValue,\n );\n }\n\n const roomSubOptions: RealtimeModels.SubsManagerOpt = {\n core: this.core,\n property,\n roomName,\n customEvent,\n };\n\n\n const subManagerId = this.getRoomIdFrom(roomSubOptions);\n if (!this.subsmanagers[subManagerId]) {\n this.subsmanagers[subManagerId] = new RealtimeSubsManager(\n roomSubOptions,\n );\n }\n const inst = this.subsmanagers[subManagerId];\n inst.add(observer);\n\n inst.startListenIfNotStarted(this.core.FE_REALTIME);\n\n return () => {\n inst.remove(observer);\n };\n });\n }\n\n\n\n\n listenChangesEntityTable(entityClassFn: Function) {\n const className = ClassHelpers.getName(entityClassFn);\n return this.listenChangesEntity(entityClassFn, void 0, {\n customEvent: Symbols.REALTIME.TABLE_CHANGE(\n this.core.ctx.contextName,\n className,\n ),\n });\n }\n\n\n\n\n /**\n * Changes trigger on backend needs to be done manually.. example code:\n *\n * ...\n * Context.Realtime.Server.TrigggerEntityChanges(myEntityInstance);\n * // or\n * Context.Realtime.Server.TrigggerEntityPropertyChanges(myEntityInstance,{ property: 'geolocationX' });\n * ...\n */\n listenChangesEntityObj<T extends BaseEntity>(\n entity: T,\n options?: RealtimeModels.ChangeOption,\n ) {\n const classFn = ClassHelpers.getClassFnFromObject(entity);\n const uniqueKey = ClassHelpers.getUniquKey(classFn);\n return this.listenChangesEntity(classFn, entity[uniqueKey], options);\n }\n\n\n\n listenChangesCustomEvent(customEvent: string) {\n return this.listenChangesEntity(void 0, void 0, {\n customEvent,\n });\n }\n\n\n\n private getRoomIdFrom(options: RealtimeModels.SubsManagerOpt) {\n const url = new URL(options.core.ctx.host);\n return `${this.core.ctx.contextName}:${url.origin}|${options.roomName}|${options.property}|${options.customEvent}`;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-client.ts","\n\n\nimport { Symbols } from '../symbols';\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { RealtimeCore } from './realtime-core';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport type { BaseEntity } from '../base-classes/base-entity';\n\n\nconst SOCKET_EVENT_DEBOUNCE = 500;\n\nexport class RealtimeServer {\n private jobs = {};\n constructor(private core: RealtimeCore) {\n this.core = core;\n if (!core.ctx.disabledRealtime) {\n/* */\n/* */\n \n }\n }\n\n\n private init() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n\n private triggerChanges(\n entityObjOrClass: Function,\n property?: string,\n valueOfUniquPropery?: number | string,\n customEvent?: string,\n customEventData?: any,\n ) {\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n public trigggerEntityChanges(\n entityObjOrClass: Function,\n idToTrigger?: number | string,\n ) {\n if (this.core.ctx.disabledRealtime) {\n const className = ClassHelpers.getName(entityObjOrClass);\n\n console.warn(\n `[Taon][TrigggerEntityChanges] Entity \"${className}' is not realtime`,\n );\n return;\n }\n this.triggerChanges(entityObjOrClass as any, void 0, idToTrigger);\n }\n\n\n\n public trigggerEntityPropertyChanges<ENTITY extends BaseEntity>(\n entityObjOrClass: new (...args) => ENTITY,\n property: keyof ENTITY | (keyof ENTITY)[],\n idToTrigger?: number | string,\n ) {\n if (this.core.ctx.disabledRealtime) {\n const className = ClassHelpers.getName(entityObjOrClass);\n\n console.warn(\n `[Taon][TrigggerEntityPropertyChanges][property=${\n property as string\n }] Entity \"${className}' is not realtime`,\n );\n return;\n }\n\n if (_.isArray(property)) {\n property.forEach(propertyFromArr => {\n this.triggerChanges(\n entityObjOrClass,\n propertyFromArr as any,\n idToTrigger,\n );\n });\n } else {\n this.triggerChanges(entityObjOrClass, property as any, idToTrigger);\n }\n }\n\n\n\n public triggerCustomEvent(customEvent: string, dataToPush: any) {\n this.triggerChanges(void 0, void 0, void 0, customEvent, dataToPush);\n }\n\n\n\n public trigggerEntityTableChanges(entityClass: Function) {\n const className = ClassHelpers.getName(entityClass);\n if (this.core.ctx.disabledRealtime) {\n console.warn(\n `[Taon][TrigggerEntityTableChanges] Entity \"${className}' is not realtime`,\n );\n return;\n }\n\n this.triggerChanges(\n entityClass as any,\n void 0,\n void 0,\n Symbols.REALTIME.TABLE_CHANGE(this.core.ctx.contextName, className),\n );\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-server.ts","\n\nimport { EndpointContext } from '../../endpoint-context';\nimport type { Server } from 'socket.io';\nimport type { io } from 'socket.io-client';\n\nexport abstract class RealtimeStrategy {\n constructor(protected ctx: EndpointContext) {}\n\n private testTypes() {\n\n }\n\n abstract establishConnection(): void;\n\n abstract readonly io: typeof io;\n abstract readonly Server: typeof Server;\n abstract toString(): string;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy.ts","\n\nimport { ipcRenderer } from 'electron';\n\nimport { RendererEventListeners } from './realtime-strategy-ipc.models';\nimport { Helpers } from 'tnp-core/browser';\n\nexport class IpcRendererNamespace {\n ipcRenderer!: typeof ipcRenderer;\n private listeners: RendererEventListeners = {};\n\n constructor(public name: string) {\n this.ipcRenderer = (window as any).require('electron').ipcRenderer;\n }\n\n on(eventName: string, callback: (event: any, ...args: any[]) => void) {\n if (!this.listeners[eventName]) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push(callback);\n const listenToEvent = `(${this.name}) \"${eventName}\"`;\n\n this.ipcRenderer.on(listenToEvent, callback);\n if (eventName === 'connect') {\n this.emit('connection');\n } else {\n this.emit(eventName);\n }\n }\n\n off(event: string, callback?: (event: any, ...args: any[]) => void) {\n if (!this.listeners[event]) return;\n\n if (callback) {\n this.listeners[event] = this.listeners[event].filter(\n listener => listener !== callback,\n );\n } else {\n delete this.listeners[event];\n }\n const removeListener = `(${this.name}) \"${event}\"`;\n\n\n\n\n this.ipcRenderer.removeListener(removeListener, callback);\n }\n\n emit(event: string, ...args: any[]) {\n const emitEvent = `(${this.name}) \"${event}\"`;\n\n\n this.ipcRenderer.send(emitEvent, ...args);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.ts","\n\nimport { IpcRendererNamespace } from './realtime-strategy-ipc-renderer-namespace';\n\nexport class IpcRendererWrapper {\n private namespaces: { [namespace: string]: IpcRendererNamespace } = {\n '/': new IpcRendererNamespace('/'),\n };\n private connected = false;\n\n constructor(public contextName: string) {\n\n }\n\n of(namespace: string): IpcRendererNamespace {\n\n\n\n if (!this.namespaces[namespace]) {\n this.namespaces[namespace] = new IpcRendererNamespace(\n namespace\n );\n }\n return this.namespaces[namespace];\n }\n\n on(event: string, callback: (event: any, ...args: any[]) => void) {\n\n\n\n\n\n\n\n\n\n this.namespaces['/'].on(event, callback);\n }\n\n emit(event: string, ...args: any[]) {\n\n\n\n this.namespaces['/'].emit(event, ...args);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.ts","\n\nimport { Server } from 'socket.io';\nimport { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\nimport { ioIpcStrategy as IoIpcStrategy } from './realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper';\nimport { IpcRendererWrapper } from './realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper';\nimport type { io } from 'socket.io-client';\n\n/**\n * Purpose:\n * - backend-browser communication between 2 processes in electron mode\n */\nexport class RealtimeStrategyIpc extends RealtimeStrategy {\n toString(): string {\n return 'ipc';\n }\n establishConnection(): void {\n throw new Error('Method not implemented.');\n }\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n\n contextsServers: { [contextName: string]: Server } = {};\n contextsIO: { [contextName: string]: typeof io } = {};\n\n get io() {\n\n return ((__, { path: namespacePath }) => {\n if (this.contextsIO[namespacePath]) {\n return this.contextsIO[namespacePath];\n }\n const wrap = new IpcRendererWrapper(this.ctx.contextName);\n\n const nsp = wrap.of(namespacePath);\n this.contextsIO[namespacePath] = nsp as any;\n return nsp;\n }) as any;\n\n return void 0;\n }\n get Server() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n return void 0;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-ipc.ts","\n\nimport { MockSocket } from \"./realtime-strategy-mock-socket\";\nimport { Rooms } from \"./realtime-strategy-mock.models\";\nexport class MockNamespace {\n private rooms: Rooms = {};\n private sockets: Set<MockSocket> = new Set();\n\n constructor(public name: string, public contextName: string) {}\n\n on(event: string, callback: (socket: MockSocket) => void) {\n if (event === 'connection') {\n this.sockets.forEach(socket => callback(socket));\n }\n }\n\n emit(event: string, data?: any) {\n this.sockets.forEach(socket => socket.emit(event, data));\n }\n\n to(room: string) {\n return {\n emit: (event: string, data?: any) => {\n if (this.rooms[room]) {\n this.rooms[room].forEach(socket => socket.emit(event, data));\n }\n }\n };\n }\n\n joinRoom(socket: MockSocket, room: string) {\n if (!this.rooms[room]) {\n this.rooms[room] = new Set();\n }\n this.rooms[room].add(socket);\n }\n\n leaveRoom(socket: MockSocket, room: string) {\n if (this.rooms[room]) {\n this.rooms[room].delete(socket);\n if (this.rooms[room].size === 0) {\n delete this.rooms[room];\n }\n }\n }\n\n addSocket(socket: MockSocket) {\n this.sockets.add(socket);\n }\n\n removeSocket(socket: MockSocket) {\n this.sockets.delete(socket);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.ts","\n\nimport { MockNamespace } from \"./realtime-strategy-mock-namespaces\";\nimport { EventListeners } from \"./realtime-strategy-mock.models\";\n\n\nexport class MockSocket {\n private listeners: EventListeners = {};\n\n constructor(public id: string, private namespace: MockNamespace) {\n this.namespace.addSocket(this);\n }\n\n on(event: string, callback: (data?: any) => void) {\n if (!this.listeners[event]) {\n this.listeners[event] = [];\n }\n this.listeners[event].push(callback);\n }\n\n off(event: string, callback?: (data?: any) => void) {\n if (!this.listeners[event]) return;\n\n if (callback) {\n this.listeners[event] = this.listeners[event].filter(listener => listener !== callback);\n } else {\n delete this.listeners[event];\n }\n }\n\n emit(event: string, data?: any) {\n if (this.listeners[event]) {\n this.listeners[event].forEach(listener => listener(data));\n }\n }\n\n join(room: string) {\n this.namespace.joinRoom(this, room);\n }\n\n leave(room: string) {\n this.namespace.leaveRoom(this, room);\n }\n\n disconnect() {\n this.emit('disconnect');\n this.namespace.removeSocket(this);\n this.listeners = {};\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.ts","\n\nimport { MockNamespace } from \"./realtime-strategy-mock-namespaces\";\nimport { MockSocket } from \"./realtime-strategy-mock-socket\";\nimport { Namespaces } from \"./realtime-strategy-mock.models\";\n\nexport class MockServer {\n private namespaces: Namespaces = {\n '/': new MockNamespace('/', this.contextName)\n };\n\n constructor(public contextName: string) {}\n\n of(namespace: string): MockNamespace {\n if (!this.namespaces[namespace]) {\n this.namespaces[namespace] = new MockNamespace(namespace, this.contextName);\n }\n return this.namespaces[namespace];\n }\n\n on(event: string, callback: (socket: MockSocket) => void) {\n if (event === 'connection') {\n this.namespaces['/'].on('connection', callback);\n }\n }\n\n emit(event: string, data?: any) {\n this.namespaces['/'].emit(event, data);\n }\n\n connect(id: string, namespace: string = '/'): MockSocket {\n const ns = this.of(namespace);\n const socket = new MockSocket(id, ns);\n ns.on('connection', (socket: MockSocket) => {\n socket.emit('connect');\n });\n return socket;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.ts","\n\nimport { MockServer } from \"./realtime-strategy-mock-server\";\nimport { MockSocket } from \"./realtime-strategy-mock-socket\";\nimport { EventListeners } from \"./realtime-strategy-mock.models\";\n\n\nclass MockClientSocket {\n private listeners: EventListeners = {};\n\n constructor(private serverSocket: MockSocket, public contextName: string) {\n serverSocket.on('message', (data) => this.emit('message', data));\n }\n\n on(event: string, callback: (data?: any) => void) {\n if (!this.listeners[event]) {\n this.listeners[event] = [];\n }\n this.listeners[event].push(callback);\n }\n\n off(event: string, callback?: (data?: any) => void) {\n if (!this.listeners[event]) return;\n\n if (callback) {\n this.listeners[event] = this.listeners[event].filter(listener => listener !== callback);\n } else {\n delete this.listeners[event];\n }\n }\n\n emit(event: string, data?: any) {\n this.serverSocket.emit(event, data);\n if (this.listeners[event]) {\n this.listeners[event].forEach(listener => listener(data));\n }\n }\n\n disconnect() {\n this.serverSocket.disconnect();\n this.listeners = {};\n }\n\n join(room: string) {\n this.serverSocket.join(room);\n }\n\n leave(room: string) {\n this.serverSocket.leave(room);\n }\n}\n\nexport function mockIo(server: MockServer) {\n return (namespace: string = '/'): MockClientSocket => {\n const socketId = Math.random().toString(36).substring(2);\n const serverSocket = server.connect(socketId, namespace);\n return new MockClientSocket(serverSocket, server.contextName);\n };\n}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.ts","\n\nexport * from './realtime-strategy-mock-server';\nexport * from './realtime-strategy-mock-client';\n\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.ts","\n\nimport { Server } from 'socket.io';\nimport { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\nimport { MockServer, mockIo } from './realtime-strategy-mock-models'\n\n/**\n * Purpose:\n * - browser-browser communication mock (in websql mode)\n */\nexport class RealtimeStrategyMock extends RealtimeStrategy {\n toString(): string {\n return 'mock';\n }\n\n\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n\n get Server() {\n return MockServer as any;\n };\n\n get io() {\n return mockIo as any;\n }\n\n establishConnection(): void {\n throw new Error('Method not implemented.');\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock.ts","\n\nimport { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\n/* */\n/* */\n \nimport { io } from 'socket.io-client';\n\n/**\n * Purpose:\n * - backend-browser communication\n * - backend-backend communication\n */\nexport class RealtimeStrategySocketIO extends RealtimeStrategy {\n toString(): string {\n return 'socket-io';\n }\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n\n get Server() {\n/* */\n/* */\n return (void 0);\n };\n\n get io() {\n return io;\n }\n\n establishConnection(): void {\n throw new Error('Method not implemented.');\n }\n}\n\n\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-socket-io.ts","\n\nexport * from './realtime-strategy';\nexport * from './realtime-strategy-ipc';\nexport * from './realtime-strategy-mock';\nexport * from './realtime-strategy-socket-io';\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/index.ts","\n\n\nimport { Socket as SocketClient } from 'socket.io-client';\nimport type { EndpointContext } from '../endpoint-context';\nimport { RealtimeClient } from './realtime-client';\nimport { RealtimeServer } from './realtime-server';\nimport type { RealtimeStrategy } from './realtime-strategy';\nimport { RealtimeStrategyIpc, RealtimeStrategyMock, RealtimeStrategySocketIO, } from './realtime-strategy';/* */\n/* */\n/* */\n/* */\n\nimport { DefaultEventsMap } from 'socket.io/dist/typed-events';\nimport { Server } from 'socket.io';\nimport { Helpers } from 'tnp-core/browser';\n\n\n/**\n * Realtime class\n * - mock (when browser-browser)\n * - sockets (from socket io when backend-browser)\n * - ipc (when electron is used or between processes)\n * - webworker (when webworker is used in browser or nodejs)\n */\nexport class RealtimeCore {\n\n readonly allHttpMethods = [\n 'GET',\n 'POST',\n 'PUT',\n 'DELETE',\n 'PATCH',\n 'OPTIONS',\n 'HEAD',\n ];\n public readonly client: RealtimeClient;\n public readonly server: RealtimeServer;\n public readonly strategy: RealtimeStrategy;\n /**\n * global FE socket\n */\n public FE: SocketClient<DefaultEventsMap, DefaultEventsMap>;\n /**\n * socket for namespaces and rooms\n */\n public FE_REALTIME: SocketClient<DefaultEventsMap, DefaultEventsMap>;\n /**\n * global BE socket\n */\n public BE: Server<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap, any>;\n /**\n * socket for namespaces and rooms\n */\n public BE_REALTIME: Server<\n DefaultEventsMap,\n DefaultEventsMap,\n DefaultEventsMap,\n any\n >;\n\n\n\n constructor(public ctx: EndpointContext) {\n this.strategy = this.resolveStrategy();\n ctx.logFramework &&\n console.log(`[taon] realtime strategy: ${this.strategy}`);\n this.client = new RealtimeClient(this);\n this.server = new RealtimeServer(this);\n }\n\n\n\n private resolveStrategy(): RealtimeStrategy {\n if (this.ctx.mode === 'backend-frontend(websql)') {\n return new RealtimeStrategyMock(this.ctx);\n }\n if (this.ctx.mode === 'backend-frontend(ipc-electron)') {\n return new RealtimeStrategyIpc(this.ctx);\n }\n\n\n\n\n\n\n return new RealtimeStrategySocketIO(this.ctx);\n }\n\n\n\n public pathFor(namespace?: string) {\n const uri = this.ctx.uri;\n let nsp = namespace ? namespace : '';\n nsp = nsp === '/' ? '' : nsp;\n const pathname = uri.pathname !== '/' ? uri.pathname : '';\n let prefix = `taonContext-`;\n if (Helpers.isElectron) {\n prefix = ``;\n }\n const href = `${uri.origin}${pathname}/${prefix}${nsp}`;\n\n return new URL(href) as URL;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-core.ts","\n\n/* eslint-disable @typescript-eslint/typedef */\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\nimport { TaonAdmin } from './ui/taon-admin-mode-configuration/taon-admin.service';\n\nimport { Models } from './models';\nimport { ClassHelpers } from './helpers/class-helpers';\nimport { Symbols } from './symbols';\nimport { _, Helpers } from 'tnp-core/browser';\nimport type { createContext } from './create-context';\nimport { DITaonContainer } from './dependency-injection/di-container';\nimport { TaonControllerOptions } from './decorators/classes/controller-decorator';\nimport { TaonHelpers } from './helpers/taon-helpers';\nimport { Mapping, Models as ModelsNg2Rest, Resource, RestHeaders, } from 'ng2-rest/browser';/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { JSON10 } from 'json10/browser';\nimport { path } from 'tnp-core/browser';\nimport { from, Subject } from 'rxjs';\nimport { EntityProcess } from './entity-process';\nimport { getResponseValue } from './get-response-value';\nimport type { Application } from 'express';\nimport axios from 'axios';\nimport type { NgZone } from '@angular/core';\n\nimport { DataSource, DataSourceOptions, getMetadataArgsStorage, } from 'taon-typeorm/browser';/* */\n/* */\n/* */\n/* */\n\nimport { TaonEntityOptions } from './decorators/classes/entity-decorator';\nimport type { Server } from 'http';\nimport { ENV } from './env';\nimport type { BaseClass } from './base-classes/base-class';\nimport { RealtimeCore } from './realtime/realtime-core';\nimport { TaonSubscriberOptions } from './decorators/classes/subscriber-decorator';\nimport { BaseSubscriberForEntity } from './base-classes/base-subscriber-for-entity';\n\n\nexport class EndpointContext {\n\n\n\n private static ngZone: NgZone;\n\n static initNgZone(ngZone: NgZone) {\n\n this.ngZone = ngZone;\n\n }\n public static findForTraget(classFnOrObject: any): EndpointContext {\n const obj = ClassHelpers.getClassFnFromObject(classFnOrObject) || {};\n return (\n classFnOrObject[Symbols.ctxInClassOrClassObj] ||\n obj[Symbols.ctxInClassOrClassObj]\n );\n }\n\n\n\n\n\n disabledRealtime: boolean = false;\n /**\n * check whether context is inited\n * (with init() function )\n */\n public inited: boolean = false;\n\n\n private readonly localInstaceObjSymbol = Symbol('localInstaceObjSymbol');\n\n\n /**\n * all instances of classes from context\n * key is class name\n */\n public readonly allClassesInstances = {};\n\n\n\n private readonly classInstancesByNameObj = {};\n\n\n\n private readonly objWithClassesInstancesArr = {};\n\n\n\n public readonly activeRoutes: {\n routePath: string;\n method: Models.Http.Rest.HttpMethod;\n }[] = [];\n\n\n\n private injectableTypesfromContexts = [\n Models.ClassType.CONTROLLER,\n Models.ClassType.PROVIDER,\n Models.ClassType.REPOSITORY,\n Models.ClassType.SUBSCRIBER,\n ];\n\n\n private allTypesfromContexts = [\n ...this.injectableTypesfromContexts,\n Models.ClassType.ENTITY,\n ];\n\n\n public expressApp: Application = {} as any;\n\n\n\n public serverTcpUdp: Server;\n\n\n\n databaseConfig?: Models.DatabaseConfig;\n private autoGeneratedConfig?: Models.DatabaseConfig;\n\n\n\n mode: Models.FrameworkMode;\n\n\n\n session?: Models.ISession;\n\n\n\n public connection: DataSource;\n\n\n\n private entitiesTriggers = {};\n\n\n\n private realtime: RealtimeCore;\n get realtimeClient() {\n return this.realtime.client;\n }\n get realtimeServer() {\n return this.realtime.server;\n }\n\n\n\n /**\n * available after init()\n */\n public config: Models.ContextOptions<any, any, any, any, any, any>;\n\n\n\n get logHttp(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).http;\n }\n return this.config?.logs === true;\n }\n\n get logRealtime(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).realtime;\n }\n return this.config?.logs === true;\n }\n\n get logFramework(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).framework;\n }\n return this.config?.logs === true;\n }\n\n get logDb(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).db;\n }\n return this.config?.logs === true;\n }\n\n\n\n\n\n constructor(\n private originalConfig: Models.ContextOptions<any, any, any, any, any, any>,\n private configFn: (\n env: any,\n ) => Models.ContextOptions<any, any, any, any, any, any>,\n ) {}\n\n\n\n public async init(options?: { initFromRecrusiveContextResovle?: boolean }) {\n const { initFromRecrusiveContextResovle } = options || {}; // TODO use it ?\n\n this.inited = true;\n this.config = this.configFn(ENV);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n if (this.config.host) {\n this.mode = 'backend-frontend(tcp+udp)';\n/* */\n/* */\n \n }\n if (this.config.remoteHost) {\n if (this.config.host) {\n Helpers.error(\n `[taon] You can't have remoteHost and host at the same time`,\n false,\n true,\n );\n }\n this.mode = 'remote-backend(tcp+udp)';\n }\n\n if (this.config.useIpcWhenElectron && Helpers.isElectron) {\n this.mode = 'backend-frontend(ipc-electron)';\n }\n\n if (!this.mode && !this.config.abstract) {\n Helpers.error(\n `[taon] Context \"${this.contextName}\": You need to provide host or remoteHost or useIpcWhenElectron`,\n false,\n true,\n );\n/* */\n/* */\n \n }\n\n\n\n if (this.config.database === true) {\n this.databaseConfig = this.getAutoGeneratedConfig();\n } else if (_.isObject(this.config.database)) {\n this.databaseConfig = _.cloneDeep(\n this.config.database,\n ) as Models.DatabaseConfig;\n }\n\n\n\n if (this.config.session) {\n this.session = _.cloneDeep(this.config.session);\n const oneHour = 1000 * 60 * 60 * 1; // 24;\n if (!this.session.cookieMaxAge) {\n this.session.cookieMaxAge = oneHour;\n }\n\n axios.defaults.withCredentials = true;\n }\n\n\n\n this.config.contexts = this.config.contexts || {};\n this.config.entities = this.config.entities || {};\n this.config.controllers = this.config.controllers || {};\n this.config.repositories = this.config.repositories || {};\n this.config.providers = this.config.providers || {};\n this.config.subscribers = this.config.subscribers || {};\n\n this.config.entities = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.ENTITY,\n )),\n ...this.config.entities,\n };\n\n this.config.controllers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.CONTROLLER,\n )),\n ...this.config.controllers,\n };\n\n this.config.providers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.PROVIDER,\n )),\n ...this.config.providers,\n };\n\n this.config.subscribers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.SUBSCRIBER,\n )),\n ...this.config.subscribers,\n };\n\n this.config.repositories = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.REPOSITORY,\n )),\n ...this.config.repositories,\n };\n\n\n\n\n\n this.config.controllers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.controllers,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.CONTROLLER,\n });\n this.config.repositories = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.repositories,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.REPOSITORY,\n });\n this.config.providers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.providers,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.PROVIDER,\n });\n this.config.subscribers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.subscribers,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.SUBSCRIBER,\n });\n\n\n\n for (const classTypeName of this.injectableTypesfromContexts) {\n this.classInstancesByNameObj[classTypeName] = {};\n this.objWithClassesInstancesArr[classTypeName] = [];\n }\n\n for (const classTypeName of this.injectableTypesfromContexts) {\n await this.createInstances(\n this.config[Models.ClassTypeKey[classTypeName]],\n classTypeName,\n );\n }\n\n\n\n if (this.mode === 'backend-frontend(tcp+udp)' && !this.config.abstract) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n if (!this.config.abstract) {\n this.disabledRealtime = !!this.config.disabledRealtime;\n/* */\n/* */\n/* */\n/* */\n/* */\n \n this.realtime = new RealtimeCore(this);\n }\n\n\n\n\n if (this.config.abstract) {\n this.logFramework &&\n Helpers.info(\n `[taon] Create abstract context: ${this.config.contextName}`,\n );\n } else {\n if (this.config.remoteHost) {\n this.logFramework &&\n Helpers.info(\n `[taon] Create context for remote host: ${this.config.remoteHost}`,\n );\n } else {\n this.logFramework &&\n Helpers.info(\n `[taon] Create context for host: ${this.config.host}`,\n );\n }\n }\n\n\n\n Object.keys(this.config).forEach(key => {\n this.originalConfig[key] = this.config[key];\n });\n }\n\n\n\n private getAutoGeneratedConfig(): Models.DatabaseConfig {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n get ngZone(): any {\n\n return EndpointContext.ngZone;\n\n return;\n }\n\n\n\n startServer() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n displayRoutes(app) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n get modeAllowsDatabaseCreation() {\n return (\n this.mode === 'backend-frontend(tcp+udp)' ||\n this.mode === 'backend-frontend(websql)' ||\n this.mode === 'backend-frontend(ipc-electron)'\n );\n }\n\n\n\n\n private cloneClassWithNewMetadata = <\n T extends { new (...args: any[]): any },\n >({\n BaseClass,\n className,\n config,\n ctx,\n classType,\n }: {\n BaseClass: T;\n className: string;\n config: Models.ContextOptions<any, any, any, any, any, any>;\n ctx: EndpointContext;\n classType: Models.ClassType;\n }): T => {\n\n const cloneClass = () => {\n if (\n BaseClass[Symbols.fullClassNameStaticProperty] ===\n `${ctx.contextName}.${className}`\n ) {\n return BaseClass;\n }\n return class extends BaseClass {\n\n\n // @ts-ignore\n static [Symbols.orignalClass] = BaseClass;\n\n // @ts-ignore\n static [Symbols.fullClassNameStaticProperty] = `${ctx.contextName}.${className}`;\n\n // @ts-ignore\n static [Symbols.classNameStaticProperty] = className;\n\n static [Symbols.ctxInClassOrClassObj] = ctx;\n\n static __getFullPathForClass__(arr = []) {\n const name = this[Symbols.fullClassNameStaticProperty];\n arr.push(name);\n // @ts-ignore\n if (\n this[Symbols.orignalClass] && // @ts-ignore\n this[Symbols.orignalClass].__getFullPathForClass__\n ) {\n // @ts-ignore\n this[Symbols.orignalClass].__getFullPathForClass__(arr);\n }\n return arr.join('/');\n }\n static get fullPathForClass(): string {\n return this.__getFullPathForClass__();\n }\n [Symbols.ctxInClassOrClassObj] = ctx;\n\n\n };\n };\n\n const cloneClassFunction = cloneClass();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n return cloneClassFunction;\n };\n\n\n\n\n\n private cloneClassesObjWithNewMetadata = ({\n classesInput,\n config,\n ctx,\n classType,\n }: {\n classesInput: any;\n config: Models.ContextOptions<any, any, any, any, any, any>;\n ctx: EndpointContext;\n classType: Models.ClassType;\n }) => {\n const classes = {};\n\n for (const key of Object.keys(classesInput || {})) {\n const BaseClass = classesInput[key];\n\n if (!BaseClass) {\n Helpers.error(`Class ${key} is not defined in context ${ctx.contextName}\n\n Please check if you have correct import in context file\n\n `);\n }\n\n var className = Reflect.getMetadata(\n Symbols.metadata.className,\n BaseClass,\n );\n\n\n\n\n\n className = className || key;\n BaseClass[Symbols.classNameStaticProperty] = className;\n\n const clonedClass = this.cloneClassWithNewMetadata({\n BaseClass,\n className,\n config,\n ctx,\n classType,\n });\n classes[className] = clonedClass;\n }\n return classes;\n };\n\n\n\n private async getRecrusiveClassesfromContextsObj(\n classType: Models.ClassType,\n ) {\n const arr = await this.getRecrusiveClassesfromContexts(classType);\n return arr.reduce((acc, c) => {\n acc[ClassHelpers.getName(c)] = c;\n return acc;\n }, {});\n }\n\n private async getRecrusiveClassesfromContexts(\n classType: Models.ClassType,\n arr = [],\n ) {\n const contexts = Object.values(this.config.contexts || {}) as ReturnType<\n typeof createContext\n >[];\n\n\n\n for (const ctx of contexts) {\n\n const ref = await ctx.__ref();\n\n const classesInput = ref.getClassFunBy(classType);\n\n\n const clonedClasses = Object.values(\n this.cloneClassesObjWithNewMetadata({\n classesInput,\n config: this.config,\n ctx: this,\n classType,\n }),\n );\n\n clonedClasses.forEach(c => arr.push(c));\n\n await ref.getRecrusiveClassesfromContexts(classType, arr);\n }\n return arr as Function[];\n }\n\n\n\n getClassInstanceObjBy(classType: Models.ClassType): any {\n return this.classInstancesByNameObj[classType];\n }\n\n\n\n private getClassesInstancesArrBy(classType: Models.ClassType): any[] {\n return this.objWithClassesInstancesArr[classType];\n }\n\n\n\n inject<T>(\n ctor: new (...args: any[]) => T,\n options?: {\n localInstance?: boolean;\n contextClassInstance?: BaseClass;\n locaInstanceConstructorArgs?: ConstructorParameters<typeof ctor>;\n },\n ): T {\n if (!options) {\n options = {} as any;\n }\n const className = ClassHelpers.getName(ctor);\n\n const locaInstanceConstructorArgs =\n options.locaInstanceConstructorArgs || [];\n\n if (this.isCLassType(Models.ClassType.REPOSITORY, ctor)) {\n options.localInstance = true;\n }\n\n if (options?.localInstance) {\n const ctxClassFn = this.getClassFunByClassName(className);\n let entityName: string = '';\n\n if (className === 'BaseRepository') {\n const entityFn = locaInstanceConstructorArgs[0];\n const entity = entityFn && entityFn();\n entityName = entity && ClassHelpers.getName(entity);\n }\n\n if (!options.contextClassInstance[this.localInstaceObjSymbol]) {\n options.contextClassInstance[this.localInstaceObjSymbol] = {};\n }\n const instanceKey = className + (entityName ? `.${entityName}` : '');\n const existed =\n options.contextClassInstance[this.localInstaceObjSymbol][instanceKey];\n if (existed) {\n\n return existed;\n }\n\n if (!ctxClassFn) {\n throw new Error(`Not able to inject \"${className}\" inside context \"${this.contextName}\"\n\n Make sure they share the same context or import context where \"${className}\" is defined.\n\n `);\n }\n\n const injectedInstance = new (ctxClassFn as any)(\n ...locaInstanceConstructorArgs,\n );\n options.contextClassInstance[this.localInstaceObjSymbol][instanceKey] =\n injectedInstance;\n\n return injectedInstance;\n }\n\n const contextScopeInstance = this.allClassesInstances[className];\n\n\n\n return contextScopeInstance;\n }\n\n /**\n * alias for inject\n */\n getInstanceBy<T>(ctor: new (...args: any[]) => T): T {\n return this.inject(ctor, { localInstance: false });\n }\n\n\n checkIfContextInitialized() {\n if (_.isUndefined(this.config)) {\n throw new Error(`Please check if your context has been initilized.\n\n\n await Context.initialize();\n\n\n\n `);\n }\n }\n\n\n getClassFunBy(classType: Models.ClassType) {\n this.checkIfContextInitialized();\n switch (classType) {\n case Models.ClassType.CONTROLLER:\n return this.config.controllers;\n case Models.ClassType.ENTITY:\n return this.config.entities;\n case Models.ClassType.PROVIDER:\n return this.config.providers;\n case Models.ClassType.REPOSITORY:\n return this.config.repositories;\n case Models.ClassType.SUBSCRIBER:\n return this.config.subscribers;\n }\n }\n\n isCLassType(classType: Models.ClassType, classFn: Function): boolean {\n return !!this.getClassFunBy(classType)[ClassHelpers.getName(classFn)];\n }\n\n /**\n * Only for injectable types\n * Only for classType: CONTROLLER, REPOSITORY, PROVIDER\n */\n getClassFunByClassName(className: string): Function {\n for (const classTypeName of this.allTypesfromContexts) {\n const classesForInjectableType =\n this.config[Models.ClassTypeKey[classTypeName]];\n\n if (classesForInjectableType[className]) {\n return classesForInjectableType[className];\n }\n }\n }\n\n getClassFunByClass(classFunction: Function): Function {\n const className = ClassHelpers.getName(classFunction);\n return this.getClassFunByClassName(className);\n }\n\n getClassFunByArr(classType: Models.ClassType) {\n return Object.values(this.getClassFunBy(classType) || {}) as Function[];\n }\n\n\n\n private async createInstances(classes: any, classType: Models.ClassType) {\n\n\n\n\n\n for (const classFn of [\n\n ...Object.values(classes),\n ]) {\n const instance = DITaonContainer.resolve(classFn as any) as any;\n const classInstancesByNameObj = this.classInstancesByNameObj[classType];\n const className = ClassHelpers.getName(classFn);\n\n classInstancesByNameObj[className] = instance;\n\n this.config[Models.ClassTypeKey[classType]][className] = classFn;\n this.objWithClassesInstancesArr[classType].push(instance);\n this.allClassesInstances[className] = instance;\n }\n }\n\n\n\n async reinitControllers() {\n\n\n\n const controllers = this.getClassesInstancesArrBy(\n Models.ClassType.CONTROLLER,\n );\n\n for (const ctrl of controllers) {\n if (_.isFunction(ctrl.initExampleDbData)) {\n await Helpers.runSyncOrAsync({\n functionFn: ctrl.initExampleDbData,\n context: ctrl,\n });\n }\n }\n\n\n\n }\n async initClasses() {\n for (const classTypeName of [\n Models.ClassType.PROVIDER,\n Models.ClassType.REPOSITORY,\n Models.ClassType.CONTROLLER,\n Models.ClassType.ENTITY,\n ]) {\n\n\n\n\n for (const classFun of this.getClassFunByArr(classTypeName) as any[]) {\n if (_.isFunction(classFun._)) {\n await Helpers.runSyncOrAsync({\n functionFn: classFun._,\n context: classFun,\n });\n\n\n\n\n\n\n }\n }\n\n\n\n\n }\n\n for (const classTypeName of [\n Models.ClassType.PROVIDER,\n Models.ClassType.REPOSITORY,\n Models.ClassType.CONTROLLER,\n ]) {\n\n\n\n\n for (const ctrl of this.getClassesInstancesArrBy(classTypeName)) {\n if (_.isFunction(ctrl._)) {\n await Helpers.runSyncOrAsync({\n functionFn: ctrl._,\n context: ctrl,\n });\n }\n }\n\n\n\n\n }\n }\n\n\n\n isActiveOn(classInstance: object): boolean {\n let contextRef: EndpointContext =\n classInstance[Symbols.ctxInClassOrClassObj];\n return this === contextRef;\n }\n\n\n\n get uri() {\n const url = this.host\n ? new URL(this.host)\n : this.remoteHost\n ? new URL(this.remoteHost)\n : void 0;\n return url;\n }\n\n\n\n get isHttpServer() {\n return this.uri.protocol === 'https:';\n }\n\n\n\n /**\n * ipc/udp needs this\n */\n public get contextName() {\n return this.config.contextName;\n }\n\n\n\n public get publicAssets() {\n return this.config?.publicAssets || [];\n }\n\n\n\n get isProductionMode() {\n return this.config.productionMode;\n }\n\n\n\n get remoteHost() {\n return this.config.remoteHost;\n }\n\n\n\n get host() {\n return this.config.host;\n }\n\n\n\n get orgin() {\n return this.uri?.origin;\n }\n\n\n\n async initSubscribers() {\n return; // TODO\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n async initEntities() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n\n async initDatabaseConnection() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n\n initMetadata() {\n const allControllers = this.getClassFunByArr(Models.ClassType.CONTROLLER);\n\n for (const controllerClassFn of allControllers) {\n controllerClassFn[Symbols.classMethodsNames] =\n ClassHelpers.getMethodsNames(controllerClassFn);\n const configs = ClassHelpers.getControllerConfigs(controllerClassFn);\n\n const classConfig: Models.RuntimeControllerConfig = configs[0];\n\n const parentscalculatedPath = _.slice(configs, 1)\n .reverse()\n .map(bc => {\n if (TaonHelpers.isGoodPath(bc.path)) {\n return bc.path;\n }\n return bc.className;\n })\n .join('/');\n\n if (TaonHelpers.isGoodPath(classConfig.path)) {\n classConfig.calculatedPath = classConfig.path;\n } else {\n classConfig.calculatedPath =\n `${parentscalculatedPath}/${ClassHelpers.getName(controllerClassFn)}`\n .replace(/\\/\\//g, '/')\n .split('/')\n .reduce((acc, bc) => {\n return _.last(acc) === bc ? acc : [...acc, bc];\n }, [])\n .join('/');\n }\n\n _.slice(configs, 1).forEach(bc => {\n const alreadyIs = classConfig.methods;\n const toMerge = _.cloneDeep(bc.methods);\n for (const key in toMerge) {\n if (toMerge.hasOwnProperty(key) && !alreadyIs[key]) {\n const element = toMerge[key];\n alreadyIs[key] = element;\n }\n }\n });\n\n/* */\n/* */\n \n this.logHttp &&\n console.groupCollapsed(\n `[taon][express-server] routes [${classConfig.className}]`,\n );\n/* */\n/* */\n \n\n\n Object.keys(classConfig.methods).forEach(methodName => {\n const methodConfig: Models.MethodConfig =\n classConfig.methods[methodName];\n\n const type: Models.Http.Rest.HttpMethod = methodConfig.type;\n const expressPath = methodConfig.global\n ? `/${methodConfig.path?.replace(/\\//, '')}`\n : TaonHelpers.getExpressPath(classConfig, methodConfig);\n\n\n if (Helpers.isNode || Helpers.isWebSQL) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n const shouldInitClient =\n Helpers.isBrowser || this.remoteHost || Helpers.isWebSQL;\n\n if (shouldInitClient) {\n\n\n\n\n\n\n\n this.initClient(controllerClassFn, type, methodConfig, expressPath);\n }\n });\n\n/* */\n/* */\n \n this.logHttp && console.groupEnd();\n/* */\n/* */\n \n }\n }\n\n\n\n public writeActiveRoutes() {\n const contexts: EndpointContext[] = [this];\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n public get middlewares(): Models.MiddlewareType[] {\n/* */\n/* */\n return (void 0);\n }\n\n\n\n private initMidleware() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n private initServer(\n\n type: Models.Http.Rest.HttpMethod,\n methodConfig: Models.MethodConfig,\n classConfig: Models.RuntimeControllerConfig,\n expressPath: string,\n target: Function,\n\n ): any {\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n const url = this.uri;\n\n\n const getResult = async (resolvedParams, req, res) => {\n const response: Models.Http.Response<any> =\n methodConfig.descriptor.value.apply(\n /**\n * Context for method @GET,@PUT etc.\n */\n this.getInstanceBy(target as any),\n /**\n * Params for metjod @GET, @PUT etc.\n */\n resolvedParams,\n );\n let result = await getResponseValue(response, { req, res });\n return result;\n };\n\n\n url.pathname = url.pathname.replace(/\\/$/, '');\n expressPath = url.pathname.startsWith('/')\n ? `${url.pathname}${expressPath}`\n : expressPath;\n expressPath = expressPath.replace(/\\/\\//g, '/');\n\n\n\n if (Helpers.isElectron) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n if (!this.remoteHost) {\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n return {\n routePath: expressPath,\n method: methodConfig.type,\n };\n }\n\n\n\n /**\n * client can be browser or nodejs (when remote host)\n */\n private initClient(\n\n target: Function,\n type: Models.Http.Rest.HttpMethod,\n methodConfig: Models.Http.Rest.MethodConfig,\n expressPath: string,\n\n ): void {\n const ctx = this;\n\n this.logHttp && console.log(`${type?.toUpperCase()} ${expressPath} `);\n\n\n let storage: any;\n if (Helpers.isBrowser) {\n storage = window;\n }\n/* */\n/* */\n/* */\n/* */\n \n\n\n const orgMethods = target.prototype[methodConfig.methodName];\n\n\n\n if (Helpers.isElectron) {\n target.prototype[methodConfig.methodName] = function (...args) {\n const received = new Promise(async (resolve, reject) => {\n const headers = {};\n const { request, response } = TaonHelpers.websqlMocks(headers);\n\n Helpers.ipcRenderer.once(\n TaonHelpers.ipcKeyNameResponse(\n target,\n methodConfig,\n expressPath,\n ),\n (event, responseData) => {\n let res: any = responseData;\n console.log({ responseData });\n try {\n const body = res;\n res = new ModelsNg2Rest.HttpResponse(\n {\n body: void 0,\n isArray: void 0 as any,\n method: methodConfig.type,\n url: `${ctx.uri.origin}${\n '' // TODO express path\n }${methodConfig.path} `,\n },\n Helpers.isBlob(body) || _.isString(body)\n ? body\n : JSON.stringify(body),\n RestHeaders.from(headers),\n void 0,\n () => body,\n );\n\n resolve(res);\n } catch (error) {\n console.error(error);\n reject(error);\n }\n },\n );\n Helpers.ipcRenderer.send(\n TaonHelpers.ipcKeyNameRequest(target, methodConfig, expressPath),\n args,\n );\n });\n received['observable'] = from(received);\n return {\n received,\n };\n };\n return;\n }\n\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n\n\n\n target.prototype[methodConfig.methodName] = function (this: {}, ...args) {\n\n\n\n\n\n if (!storage[Symbols.old.ENDPOINT_META_CONFIG])\n storage[Symbols.old.ENDPOINT_META_CONFIG] = {};\n if (!storage[Symbols.old.ENDPOINT_META_CONFIG][ctx.uri.href])\n storage[Symbols.old.ENDPOINT_META_CONFIG][ctx.uri.href] = {};\n const endpoints = storage[Symbols.old.ENDPOINT_META_CONFIG];\n let rest: ModelsNg2Rest.ResourceModel<any, any>;\n if (!endpoints[ctx.uri.href][expressPath]) {\n let headers = {};\n if (methodConfig.contentType && !methodConfig.responseType) {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n RestHeaders.from({\n 'Content-Type': methodConfig.contentType,\n Accept: methodConfig.contentType,\n }),\n );\n } else if (methodConfig.contentType && methodConfig.responseType) {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n RestHeaders.from({\n 'Content-Type': methodConfig.contentType,\n Accept: methodConfig.contentType,\n responsetypeaxios: methodConfig.responseType,\n }),\n );\n } else if (!methodConfig.contentType && methodConfig.responseType) {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n RestHeaders.from({\n responsetypeaxios: methodConfig.responseType,\n }),\n );\n } else {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n );\n }\n\n endpoints[ctx.uri.href][expressPath] = rest;\n } else {\n rest = endpoints[ctx.uri.href][expressPath] as any;\n }\n\n const method = type.toLowerCase();\n const isWithBody = method === 'put' || method === 'post';\n const pathPrams = {};\n let queryParams = {};\n let bodyObject = {};\n args.forEach((param, i) => {\n let currentParam: Models.Http.Rest.ParamConfig = void 0 as any;\n\n for (let pp in methodConfig.parameters) {\n let v = methodConfig.parameters[pp];\n if (v.index === i) {\n currentParam = v;\n break;\n }\n }\n\n if (currentParam.paramType === 'Path') {\n pathPrams[currentParam.paramName] = param;\n }\n if (currentParam.paramType === 'Query') {\n if (currentParam.paramName) {\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n `${Symbols.old.MAPPING_CONFIG_HEADER_QUERY_PARAMS}${currentParam.paramName} `,\n JSON.stringify(mapping),\n );\n }\n queryParams[currentParam.paramName] = param;\n } else {\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n Symbols.old.MAPPING_CONFIG_HEADER_QUERY_PARAMS,\n JSON.stringify(mapping),\n );\n }\n queryParams = _.cloneDeep(param);\n }\n }\n if (currentParam.paramType === 'Header') {\n if (currentParam.paramName) {\n if (currentParam.paramName === Symbols.old.MDC_KEY) {\n\n rest.headers.set(\n currentParam.paramName,\n encodeURIComponent(JSON.stringify(param)),\n );\n } else {\n rest.headers.set(currentParam.paramName, param);\n }\n } else {\n for (let header in param) {\n rest.headers.set(header, param[header]);\n }\n }\n }\n if (currentParam.paramType === 'Cookie') {\n Resource.Cookies.write(\n currentParam.paramName,\n param,\n currentParam.expireInSeconds,\n );\n }\n if (currentParam.paramType === 'Body') {\n if (currentParam.paramName) {\n if (ClassHelpers.getName(bodyObject) === 'FormData') {\n throw new Error(`[taon - framework] Don use param names when posting / putting FormData.\n Use this:\n\n(@Taon.Http.Param.Body() formData: FormData) ...\n\n\ninstead\n\n (@Taon.Http.Param.Body('${currentParam.paramName}') formData: FormData) ...\n\n`);\n }\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n `${Symbols.old.MAPPING_CONFIG_HEADER_BODY_PARAMS}${currentParam.paramName} `,\n JSON.stringify(mapping),\n );\n }\n bodyObject[currentParam.paramName] = param;\n } else {\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n Symbols.old.MAPPING_CONFIG_HEADER_BODY_PARAMS,\n JSON.stringify(mapping),\n );\n }\n bodyObject = param;\n }\n }\n });\n\n if (\n typeof bodyObject === 'object' &&\n ClassHelpers.getName(bodyObject) !== 'FormData'\n ) {\n let circuralFromItem = [];\n bodyObject = JSON10.parse(\n JSON10.stringify(bodyObject, void 0, void 0, circs => {\n circuralFromItem = circs;\n }),\n );\n rest.headers.set(\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY,\n JSON10.stringify(circuralFromItem),\n );\n }\n\n if (typeof queryParams === 'object') {\n let circuralFromQueryParams = [];\n queryParams = JSON10.parse(\n JSON10.stringify(queryParams, void 0, void 0, circs => {\n circuralFromQueryParams = circs;\n }),\n );\n\n rest.headers.set(\n Symbols.old.CIRCURAL_OBJECTS_MAP_QUERY_PARAM,\n JSON10.stringify(circuralFromQueryParams),\n );\n }\n\n\n const httpResultObj = {\n received: isWithBody\n ? rest.model(pathPrams)[method](bodyObject, [queryParams])\n : rest.model(pathPrams)[method]([queryParams]),\n };\n return httpResultObj;\n };\n\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/endpoint-context.ts","\n\nimport { Helpers } from 'tnp-core/browser';\n\nexport const globalPublicStorage = Helpers.isBrowser ? window : global;\n\n ;({}); // @--end-of-file-for-module=taon lib/storage.ts","\n\n\n\nimport { Stor } from 'taon-storage/browser';\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { Subject, take, takeUntil, tap } from 'rxjs';\nimport type { TaonAdminModeConfigurationComponent } from './taon-admin-mode-configuration.component';\nimport { globalPublicStorage } from '../../storage';\nimport { config } from 'tnp-config/browser';\nimport { Injectable } from '@angular/core';\n\n\nconst ENV = Helpers.isBrowser ? window['ENV'] : global['ENV'];\n\n@Injectable({ providedIn: 'root' })\nexport class TaonAdmin {\n public scrollableEnabled = false; // TOOD false by default\n\n\n private constructor() {\n\n this.scrollableEnabled = !!ENV?.useGlobalNgxScrollbar;\n }\n public static get Instance(): TaonAdmin {\n if (!globalPublicStorage[config.frameworkNames.productionFrameworkName]) {\n globalPublicStorage[config.frameworkNames.productionFrameworkName] = new TaonAdmin();\n }\n return globalPublicStorage[config.frameworkNames.productionFrameworkName];\n }\n\n\n\n public cmp: TaonAdminModeConfigurationComponent;\n private onEditMode = new Subject();\n onEditMode$ = this.onEditMode.asObservable();\n\n\n\n // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public adminPanelIsOpen: boolean;\n\n\n\n // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public draggablePopupMode: boolean;\n\n\n\n // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public draggablePopupModeFullScreen: boolean;\n\n\n\n /**\n * Property used in taon\n */ // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public keepWebsqlDbDataAfterReload: boolean;\n\n\n\n setEditMode(value: boolean) {\n this.onEditMode.next(value);\n }\n\n setKeepWebsqlDbDataAfterReload(value: boolean) {\n\n\n\n this.keepWebsqlDbDataAfterReload = value;\n }\n\n enabledTabs = [];\n\n hide() {\n this.draggablePopupMode = false;\n this.adminPanelIsOpen = false;\n }\n\n show() {\n this.draggablePopupMode = false;\n this.adminPanelIsOpen = true;\n }\n\n logout() {}\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin.service.ts","\n\n\nimport { Helpers } from 'tnp-core/browser';\nimport { EndpointContext } from './endpoint-context';\nimport { Models } from './models';\n\nimport { ENV } from './env';\n\nimport { TaonAdmin } from './ui/taon-admin-mode-configuration/taon-admin.service';\n\n\n\n\n\n\nexport const createContext = <\n\n CTX extends Record<string, object>,\n CTRL extends Record<string, new (...args: any[]) => any>,\n ENTITY extends Record<string, new (...args: any[]) => any>,\n REPO extends Record<string, new (...args: any[]) => any>,\n PROVIDER extends Record<string, new (...args: any[]) => any>,\n SUBSCRIBER extends Record<string, new (...args: any[]) => any>,\n\n>(\n configFn: (\n env: any,\n ) => Models.ContextOptions<CTX, CTRL, ENTITY, REPO, PROVIDER, SUBSCRIBER>,\n) => {\n let config = configFn(ENV);\n\n\n\n\n\n const endpointContextRef = new EndpointContext(config, configFn);\n\n\n\n\n\n const res = {\n\n types: {\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n get controllers() {\n return config.controllers;\n },\n get repositories() {\n return config.repositories;\n },\n get providers() {\n return config.providers;\n },\n get subscribers() {\n return config.subscribers;\n },\n },\n\n\n get contexts() {\n return config.contexts;\n },\n get contextName() {\n return config.contextName;\n },\n\n\n /**\n * - get reference to internal context\n */\n async __ref() {\n if (!endpointContextRef.inited) {\n await endpointContextRef.init({\n initFromRecrusiveContextResovle: true,\n });\n }\n return endpointContextRef;\n },\n get __refSync() {\n return endpointContextRef;\n },\n getClassInstance<T>(ctor: new (...args: any[]) => T): T {\n return endpointContextRef.getInstanceBy(ctor);\n },\n\n getClass<T>(ctor: new (...args: any[]) => T): new (...args: any[]) => T {\n const classFun = endpointContextRef.getClassFunByClass(ctor);\n return classFun as any;\n\n\n\n\n\n\n\n\n\n\n\n\n\n },\n\n\n /**\n * - create controller instances for context\n * - init database (if enable) + migation scripts\n */\n initialize: async (): Promise<EndpointContext> => {\n return await new Promise(async (resolve, reject) => {\n setTimeout(async () => {\n await endpointContextRef.init();\n if (config.abstract) {\n throw new Error(`Abstract context can not be initialized`);\n }\n await endpointContextRef.initEntities();\n await endpointContextRef.initSubscribers();\n await endpointContextRef.initDatabaseConnection();\n\n\n\n\n\n endpointContextRef.initMetadata();\n endpointContextRef.startServer();\n/* */\n/* */\n \n\n await endpointContextRef.initClasses();\n let keepWebsqlDbDataAfterReload = false;\n\n keepWebsqlDbDataAfterReload =\n TaonAdmin.Instance.keepWebsqlDbDataAfterReload;\n\n if (!Helpers.isNode && keepWebsqlDbDataAfterReload) {\n Helpers.info(`[taon] Keep websql data after reload`);\n } else {\n await endpointContextRef.reinitControllers();\n }\n resolve(endpointContextRef);\n });\n });\n },\n\n };\n return res;\n};\n\n\n ;({}); // @--end-of-file-for-module=taon lib/create-context.ts","\n\nimport { createContext } from '../create-context';\nimport { BaseRepository } from './base-repository';\n\nconst BaseContext = createContext(() => ({\n contextName: 'BaseContext',\n abstract: true,\n repositories: {\n // @ts-ignore\n BaseRepository,\n },\n}));\n\nexport { BaseContext };\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-context.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\nimport { _ } from 'tnp-core/browser';\nimport type { BaseSubscriber } from '../../base-classes/base-subscriber';\n\nexport class TaonSubscriberOptions<\n T = any,\n> extends Models.DecoratorAbstractOpt {\n allowedEvents?: (keyof T)[];\n}\n\nexport function TaonSubscriber(options: TaonSubscriberOptions) {\n return function <T extends { new (...args: any[]): {} }>(constructor: T) {\n Reflect.defineMetadata(\n Symbols.metadata.options.repository,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers.setName(constructor, options?.className);\n return class extends constructor {\n constructor(...args: any[]) {\n super(...args);\n\n\n const methodNamesAll = ClassHelpers.getMethodsNames(\n constructor.prototype,\n );\n\n const methodNames = methodNamesAll.filter(m => {\n return (\n !['__trigger_event__', 'clone'].includes(m) &&\n !m.startsWith('_') &&\n !m.startsWith('inject')\n );\n });\n\n\n methodNames.forEach(methodName => {\n const originalMethod = (this as any)[methodName];\n\n (this as any)[methodName] = async (...methodArgs: any[]) => {\n const result = originalMethod.apply(this, methodArgs);\n\n\n if (result instanceof Promise) {\n await result;\n }\n\n\n if (\n options.allowedEvents === undefined ||\n options.allowedEvents.includes(methodName)\n ) {\n // @ts-ignore\n (this as BaseSubscriber).__trigger_event__(methodName as any);\n }\n\n return result;\n };\n });\n }\n } as any;\n } as any;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/subscriber-decorator.ts","\n\nimport { EntitySubscriberInterface, RecoverEvent, SoftRemoveEvent, InsertEvent, TransactionStartEvent, TransactionCommitEvent, TransactionRollbackEvent, RemoveEvent, UpdateEvent, } from 'taon-typeorm/browser';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { BaseInjector } from './base-injector';\nimport { TaonSubscriber } from '../decorators/classes/subscriber-decorator';\n\n@TaonSubscriber({\n className: 'BaseSubscriber',\n})\nexport abstract class BaseSubscriber<Entity = any> extends BaseInjector {\n protected __trigger_event__(eventName: keyof Entity) {\n const ctx = this.__endpoint_context__;\n console.log('Trigger event', eventName, ctx);\n\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-subscriber.ts","\n\nimport { EntitySubscriberInterface, RecoverEvent, SoftRemoveEvent, InsertEvent, TransactionStartEvent, TransactionCommitEvent, TransactionRollbackEvent, RemoveEvent, UpdateEvent, } from 'taon-typeorm/browser';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { BaseInjector } from './base-injector';\nimport { TaonSubscriber } from '../decorators/classes/subscriber-decorator';\n\n@TaonSubscriber({\n className: 'BaseSubscriberForEntity',\n})\nexport abstract class BaseSubscriberForEntity<Entity = any>\n extends BaseInjector\n implements EntitySubscriberInterface\n{\n abstract listenTo(): new (...args) => Entity;\n\n /**\n * Called after entity is loaded.\n */\n afterLoad(entity: any) {\n console.log(`AFTER ENTITY LOADED: `, entity);\n }\n\n /**\n * Called before query execution.\n */\n beforeQuery(event: any) {\n\n console.log(`BEFORE QUERY: `, event.query);\n }\n\n /**\n * Called after query execution.\n */\n afterQuery(event: any) {\n\n console.log(`AFTER QUERY: `, event.query);\n }\n\n /**\n * Called before entity insertion.\n */\n beforeInsert(event: InsertEvent<any>) {\n console.log(`BEFORE ENTITY INSERTED: `, event.entity);\n }\n\n /**\n * Called after entity insertion.\n */\n afterInsert(event: InsertEvent<any>) {\n console.log(`AFTER ENTITY INSERTED: `, event.entity);\n }\n\n /**\n * Called before entity update.\n */\n beforeUpdate(event: UpdateEvent<any>) {\n console.log(`BEFORE ENTITY UPDATED: `, event.entity);\n }\n\n /**\n * Called after entity update.\n */\n afterUpdate(event: UpdateEvent<any>) {\n console.log(`AFTER ENTITY UPDATED: `, event.entity);\n }\n\n /**\n * Called before entity removal.\n */\n beforeRemove(event: RemoveEvent<any>) {\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity removal.\n */\n afterRemove(event: RemoveEvent<any>) {\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called before entity removal.\n */\n beforeSoftRemove(event: SoftRemoveEvent<any>) {\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} SOFT REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity removal.\n */\n afterSoftRemove(event: SoftRemoveEvent<any>) {\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} SOFT REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called before entity recovery.\n */\n beforeRecover(event: RecoverEvent<any>) {\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} RECOVERED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity recovery.\n */\n afterRecover(event: RecoverEvent<any>) {\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} RECOVERED: `,\n event.entity,\n );\n }\n\n /**\n * Called before transaction start.\n */\n beforeTransactionStart(event: TransactionStartEvent) {\n console.log(`BEFORE TRANSACTION STARTED: `, event);\n }\n\n /**\n * Called after transaction start.\n */\n afterTransactionStart(event: TransactionStartEvent) {\n console.log(`AFTER TRANSACTION STARTED: `, event);\n }\n\n /**\n * Called before transaction commit.\n */\n beforeTransactionCommit(event: TransactionCommitEvent) {\n console.log(`BEFORE TRANSACTION COMMITTED: `, event);\n }\n\n /**\n * Called after transaction commit.\n */\n afterTransactionCommit(event: TransactionCommitEvent) {\n console.log(`AFTER TRANSACTION COMMITTED: `, event);\n }\n\n /**\n * Called before transaction rollback.\n */\n beforeTransactionRollback(event: TransactionRollbackEvent) {\n console.log(`BEFORE TRANSACTION ROLLBACK: `, event);\n }\n\n /**\n * Called after transaction rollback.\n */\n afterTransactionRollback(event: TransactionRollbackEvent) {\n console.log(`AFTER TRANSACTION ROLLBACK: `, event);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-subscriber-for-entity.ts","\n\nimport * as controller from './base-controller';\nimport * as crudController from './base-crud-controller';\nimport * as entity from './base-entity';\nimport * as abstractEntity from './base-abstract-entity';\nimport * as repository from './base-repository';\nimport * as provider from './base-provider';\nimport * as baseclass from './base-class';\nimport * as baseContext from './base-context';\nimport * as baseSubscriber from './base-subscriber';\nimport * as baseSubscriberEntity from './base-subscriber-for-entity';\nexport namespace Base {\n export import Controller = controller.BaseController;\n export import CrudController = crudController.BaseCrudController;\n export import Entity = entity.BaseEntity;\n export import AbstractEntity = abstractEntity.BaseAbstractEntity;\n export import Provider = provider.BaseProvider;\n export import Class = baseclass.BaseClass;\n export import Repository = repository.BaseRepository;\n export import Subscriber = baseSubscriber.BaseSubscriber;\n export import SubscriberForEntity = baseSubscriberEntity.BaseSubscriberForEntity;\n export const Context = baseContext.BaseContext;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base.ts","\n\nimport { Mapping } from 'ng2-rest/browser';\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { Symbols } from '../../symbols';\nimport { _ } from 'tnp-core/browser';\nimport { Models } from '../../models';\n/* */\n/* */\n \n\nexport function TaonEntity<T = any>(options?: TaonEntityOptions<T>) {\n return function (constructor: Function) {\n options = options || ({} as any);\n options.uniqueKeyProp = options.uniqueKeyProp || ('id' as any);\n ClassHelpers.setName(constructor, options?.className);\n\n Mapping.DefaultModelWithMapping<T>(\n options?.defaultModelValues || {},\n _.merge(\n options?.defaultModelMapping || {},\n (options?.defaultModelMappingDeep || {}) as any,\n ),\n )(constructor);\n\n\n Mapping.DefaultModelWithMapping<T>(void 0, {})(constructor);\n\n Reflect.defineMetadata(\n Symbols.metadata.options.entity,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n/* */\n/* */\n \n CLASS.setName(constructor, options?.className); // TODO QUICK_FIX for ng2-rest\n };\n}\n\nexport class TaonEntityOptions<T = any> extends Models.DecoratorAbstractOpt {\n /**\n * default unique property is \"id\"\n * for your entity it may be something else\n */\n uniqueKeyProp?: string;\n createTable?: boolean;\n defaultModelValues?: Mapping.ModelValue<T>;\n defaultModelMapping?: Mapping.Mapping<T>;\n defaultModelMappingDeep?: { [lodashPathes: string]: string | [string] };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/entity-decorator.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\n\nexport function TaonProvider<T = any>(options?: TaonProviderOptions<T>) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols.metadata.options.provider,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers.setName(constructor, options?.className || constructor.name);\n };\n}\n\nexport class TaonProviderOptions<\n T = any,\n> extends Models.DecoratorAbstractOpt {\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/provider-decorator.ts","\n\n\nimport { inject as angularInject } from '@angular/core';\n\nimport { Symbols } from './symbols';\nimport type { EndpointContext } from './endpoint-context';\nimport type { BaseInjector } from './base-classes/base-injector';\nimport { Observable, Subject } from 'rxjs';\nimport type { BaseClass } from './base-classes/base-class';\n\nexport const inject = <T>(entity: () => new (...args: any[]) => T): T => {\n return new Proxy(\n {},\n {\n get: (_, propName) => {\n if (propName === 'hasOwnProperty') {\n return () => false;\n }\n\n const ctor = entity();\n const contextFromClass = ctor[\n Symbols.ctxInClassOrClassObj\n ] as EndpointContext;\n const resultContext = contextFromClass;\n if (resultContext) {\n let instance = resultContext.inject(ctor) as BaseInjector;\n\n\n if (propName === 'getOriginalPrototype') {\n return () => Object.getPrototypeOf(instance);\n }\n if (propName === 'getOriginalConstructor') {\n return () => instance.constructor;\n }\n\n const methods = ctor[Symbols.classMethodsNames] || [];\n const isMethods = methods.includes(propName);\n\n const methodOrProperty = isMethods\n ? instance[propName].bind(instance)\n : instance[propName];\n\n\n\n\n\n return methodOrProperty;\n }\n\n\n return angularInject(ctor)[propName];\n\n },\n },\n ) as T;\n};\n\nexport const injectController = inject;\n\nexport type SubscbtionEvent<T> = {\n name: keyof T;\n data: any;\n};\n\nexport const injectSubscriberEvents = <T>(\n subscriberClassResolveFn: () => new (...args: any[]) => T,\n eventName: keyof T,\n): Observable<SubscbtionEvent<T>> => {\n const eventsSrc = new Subject<SubscbtionEvent<T>>();\n const obs = eventsSrc.asObservable();\n\n let isFirstSubscription = true;\n\n const proxiedObservable = new Proxy(obs, {\n get(target, prop, receiver) {\n if (prop === 'subscribe') {\n return (...args: any[]) => {\n if (isFirstSubscription) {\n isFirstSubscription = false;\n const subscriberClassFN: typeof BaseClass =\n subscriberClassResolveFn() as any;\n const ctx = subscriberClassFN[\n Symbols.ctxInClassOrClassObj\n ] as EndpointContext;\n if (!ctx) {\n throw new Error(\n `You are trying to inject class without context. Use context like this;\n\n Taon.injectSubscriberEvents( ()=> ` +\n `MyContext.getInstance(${subscriberClassFN?.name}), '${eventName as any}' )\n\n\n `,\n );\n }\n const subscriberInstance = ctx.getInstanceBy(subscriberClassFN);\n\n\n console.log('First subscription, you can access arguments here:', {\n subscriberClassFN,\n eventName,\n });\n\n }\n return target.subscribe(...args);\n };\n }\n return Reflect.get(target, prop, receiver);\n },\n });\n\n return proxiedObservable as Observable<SubscbtionEvent<T>>;\n};\n\n ;({}); // @--end-of-file-for-module=taon lib/inject.ts","\n\nexport type TaonEntityKeysToOmit =\n | 'ctrl'\n | 'clone'\n | '__endpoint_context__'\n | 'inject'\n | '_';\n\n ;({}); // @--end-of-file-for-module=taon lib/constants.ts","\n\nimport 'reflect-metadata';\nimport * as http from './decorators/http/http-decorators';\nimport * as base from './base-classes/base';\nimport * as controllerDecorator from './decorators/classes/controller-decorator';\nimport * as entityDecorator from './decorators/classes/entity-decorator';\nimport * as providerDecorator from './decorators/classes/provider-decorator';\nimport * as repositoryDecorator from './decorators/classes/repository-decorator';\nimport * as subscriberDecorator from './decorators/classes/subscriber-decorator';\nimport * as createContextFn from './create-context';\nimport * as orm from './orm';\nimport * as models from './models';\nimport * as coreHelpers from 'tnp-core/browser';\nimport * as injectFn from './inject';\nimport * as endpointContext from './endpoint-context';\nimport * as allSymbols from './symbols';\nimport * as getResponse from './get-response-value';\n\nimport { NgZone } from '@angular/core';\n\n\n\nexport { BaseRepository } from './base-classes/base-repository';\nexport { BaseController } from './base-classes/base-controller';\nexport { BaseProvider } from './base-classes/base-provider';\nexport { BaseSubscriber } from './base-classes/base-subscriber';\nexport { BaseEntity } from './base-classes/base-entity';\nexport { BaseContext } from './base-classes/base-context';\nexport { createContext } from './create-context';\nexport { inject } from './inject';\nexport { Models } from './models';\nexport * from './constants';\nexport { ClassHelpers } from './helpers/class-helpers';\n\n\nexport namespace Taon {\n export import Response = models.Models.Http.Response;\n export import Http = http.Http;\n export import Base = base.Base;\n export import Orm = orm.Orm;\n\n export const getResponseValue = getResponse.getResponseValue;\n\n\n export import Controller = controllerDecorator.TaonController;\n export import Entity = entityDecorator.TaonEntity;\n export import Provider = providerDecorator.TaonProvider;\n export import Repository = repositoryDecorator.TaonRepository;\n export import Subscriber = subscriberDecorator.TaonSubscriber;\n\n\n /**\n * @deprecated\n */\n export const isBrowser = coreHelpers.Helpers.isBrowser;\n /**\n * @deprecated\n */\n export const isNode = coreHelpers.Helpers.isNode;\n /**\n * @deprecated\n */\n export const isWebSQL = coreHelpers.Helpers.isWebSQL;\n /**\n * @deprecated\n */\n export const isElectron = coreHelpers.Helpers.isElectron;\n\n export const createContext = createContextFn.createContext;\n\n export const inject = injectFn.inject;\n\n\n\n\n export const initNgZone = (ngZone: NgZone) => {\n endpointContext.EndpointContext.initNgZone(ngZone);\n };\n\n\n export const symbols = allSymbols.Symbols;\n\n /**\n * @deprecated\n * use createContext instead\n */\n export const init = async (options: {\n host: string;\n entities: Function[];\n controllers: Function[];\n }) => {\n const BaseContext = (await import('./base-classes/base-context'))\n .BaseContext;\n const context = createContext(() => ({\n contextName: 'default',\n host: options.host,\n contexts: { BaseContext },\n database: true,\n entities: Array.from(options.entities) as any,\n controllers: Array.from(options.controllers) as any,\n }));\n\n await context.initialize();\n return context;\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ModelsNg2Rest","methods.GET","methods.POST","methods.PUT","methods.DELETE","methods.PATCH","methods.HEAD","params.Query","params.Path","params.Body","params.Cookie","params.Header","EntityDecorator","ENV","controller.BaseController","crudController.BaseCrudController","entity.BaseEntity","abstractEntity.BaseAbstractEntity","provider.BaseProvider","baseclass.BaseClass","repository.BaseRepository","baseSubscriber.BaseSubscriber","baseSubscriberEntity.BaseSubscriberForEntity","baseContext.BaseContext","angularInject","http.Http","base.Base","getResponse.getResponseValue","controllerDecorator.TaonController","entityDecorator.TaonEntity","providerDecorator.TaonProvider","repositoryDecorator.TaonRepository","subscriberDecorator.TaonSubscriber","createContextFn.createContext","injectFn.inject","endpointContext.EndpointContext","allSymbols.Symbols"],"mappings":";;;;;;;;;;;;;;;;;AAMM,IAAW,OAAO,CAoGvB;AApGD,CAAA,UAAiB,OAAO,EAAA;IACT,OAAoB,CAAA,oBAAA,GAAG,MAAM,EAAE,CAAC;AAChC,IAAA,OAAA,CAAA,uBAAuB,GAAW,MAAM,CAAC,uBAAuB,CAAC;IACjE,OAA2B,CAAA,2BAAA,GAAW,mBAAmB,CAAC;IAC1D,OAAY,CAAA,YAAA,GAAW,eAAe,CAAC;IACvC,OAAqB,CAAA,qBAAA,GAAW,4BAA4B,CAAC;IAC7D,OAAiB,CAAA,iBAAA,GAAW,uBAAuB,CAAC;AAEpD,IAAA,OAAA,CAAA,QAAQ,GAAG;QACtB,SAAS,EAAE,CAAC,WAAmB,KAAK,CAAA,EAAG,WAAW,CAAkB,gBAAA,CAAA;QACpE,YAAY,CAAC,WAAmB,EAAE,SAAiB,EAAA;AACjD,YAAA,OAAO,CAAG,EAAA,WAAW,CAAmB,gBAAA,EAAA,SAAS,EAAE,CAAC;SACrD;AACD;;;;;AAKG;AACH,QAAA,SAAS,EAAE;YAET,MAAM,CAAC,WAAmB,EAAE,WAAmB,EAAA;AAC7C,gBAAA,OAAO,CAAG,EAAA,WAAW,CAAmB,gBAAA,EAAA,WAAW,EAAE,CAAC;aACvD;AACD;;AAEG;AACH,YAAA,gBAAgB,CACd,WAAmB,EACnB,SAAiB,EACjB,YAAoB,EAAA;AAEpB,gBAAA,OAAO,CAAG,EAAA,WAAW,CAAQ,KAAA,EAAA,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY,CAAA,CAAE,CAAC,WAAW,EAAE,CAAC;aACpF;AACD,YAAA,aAAa,CACX,WAAmB,EACnB,SAAiB,EACjB,QAAyB,EAAA;AAEzB,gBAAA,OAAO,CAAG,EAAA,WAAW,CAAQ,KAAA,EAAA,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAA,CAAE,CAAC,WAAW,EAAE,CAAC;aAChF;AACD,YAAA,sBAAsB,CACpB,WAAmB,EACnB,SAAiB,EACjB,QAAgB,EAChB,QAAyB,EAAA;gBAEzB,OAAO,CAAA,EAAG,WAAW,CAAQ,KAAA,EAAA,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAG,EAAA,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA,EAAG,QAAQ,CAAE,CAAA,CAAC,WAAW,EAAE,CAAC;aACxG;AAED,YAAA,SAAS,EAAE;gBACT,MAAM,EAAE,CAAC,WAAkB,KAAK,CAAA,EAAG,WAAW,CAA+B,6BAAA,CAAA;gBAC7E,oBAAoB,EAAC,CAAC,WAAkB,KAAK,CAAA,EAAG,WAAW,CAA4B,0BAAA,CAAA;gBACvF,6BAA6B,EAAC,CAAC,WAAkB,KAAK,CAAA,EAAG,WAAW,CAAoC,kCAAA,CAAA;AACzG,aAAA;AACD,YAAA,WAAW,EAAE;gBACX,MAAM,EAAC,CAAC,WAAkB,KAAK,CAAA,EAAG,WAAW,CAAiC,+BAAA,CAAA;gBAC9E,oBAAoB,EAAC,CAAC,WAAkB,KAAK,CAAA,EAAG,WAAW,CAA8B,4BAAA,CAAA;gBACzF,6BAA6B,EAAC,CAAC,WAAkB,KAAK,CAAA,EAAG,WAAW,CAAsC,oCAAA,CAAA;AAC3G,aAAA;AACF,SAAA;KACF,CAAC;AAEW,IAAA,OAAA,CAAA,QAAQ,GAAG;AACtB,QAAA,SAAS,EAAE,CAAgB,cAAA,CAAA;AAC3B,QAAA,OAAO,EAAE;AACP,YAAA,iBAAiB,EAAE,CAA4B,0BAAA,CAAA;AAC/C,YAAA,UAAU,EAAE,CAAoB,kBAAA,CAAA;AAChC,YAAA,gBAAgB,EAAE,CAA2B,yBAAA,CAAA;AAC7C,YAAA,MAAM,EAAE,CAAgB,cAAA,CAAA;AACxB,YAAA,UAAU,EAAE,CAAoB,kBAAA,CAAA;AAChC,YAAA,QAAQ,EAAE,CAAkB,gBAAA,CAAA;AAC5B,YAAA,UAAU,EAAE,CAAoB,kBAAA,CAAA;AACjC,SAAA;KACF,CAAC;AAEW,IAAA,OAAA,CAAA,GAAG,GAAG;QACjB,eAAe,EAAE,MAAM,EAAE;AACzB,QAAA,OAAO,EAAE,CAAiB,eAAA,CAAA;QAC1B,wBAAwB,EAAE,MAAM,EAAE;QAClC,8BAA8B,EAAE,MAAM,EAAE;QACxC,6BAA6B,EAAE,MAAM,EAAE;QACvC,4BAA4B,EAAE,MAAM,EAAE;AAEtC,QAAA,aAAa,EAAE,CAAe,aAAA,CAAA;AAC9B,QAAA,yBAAyB,EAAE,CAAiB,eAAA,CAAA;AAC5C,QAAA,gCAAgC,EAAE,CAAiB,eAAA,CAAA;AACnD,QAAA,qBAAqB,EAAE,CAAe,aAAA,CAAA;AACtC,QAAA,iCAAiC,EAAE,CAAc,YAAA,CAAA;AACjD,QAAA,kCAAkC,EAAE,CAAe,aAAA,CAAA;AACnD,QAAA,oBAAoB,EAAE,CAA0B,wBAAA,CAAA;AAChD,QAAA,uBAAuB,EAAE,CAA0B,wBAAA,CAAA;AACnD,QAAA,UAAU,EAAE,CAAsB,oBAAA,CAAA;AAClC,QAAA,OAAO,EAAE;YACP,WAAW,EAAE,MAAM,EAAE;AACtB,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,gBAAgB,EAAE,CAA6F,2FAAA,CAAA;AAChH,SAAA;KACF,CAAC;AACJ,CAAC,EApGgB,OAAO,KAAP,OAAO,GAoGvB,EAAA,CAAA,CAAA,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACvGD,IAAW,UAAU,CA+F1B;AA/FD,CAAA,UAAiB,UAAU,EAAA;AAEZ,IAAA,UAAA,CAAA,kBAAkB,GAAG,CAAC,SAAS,EAAE,MAAgB,KAAI;QAChE,UAAU,CAAC,MAAK;AAEd,YAAA,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;gBAC5B,MAAM,CAAA;;;;;;;;;;;;;;;;SAgBL,CAAC;aACH;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;AAC5D,KAAC,CAAC;AAIW,IAAA,UAAA,CAAA,mCAAmC,GAAG,CACjD,OAA8B,EAC9B,OAA4B,KAC1B;QACF,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAC3C,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;YACzB,OAAO;SACR;AACD,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACnD,YAAA,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,YAAY,EAAE;gBACtE,MAAM,IAAI,KAAK,CAAC,CAAA;;;YAGZ,CAAC,CAAC,UAAU,CAAA,YAAA,EAAe,CAAC,CAAC,IAAI,CAAA,qBAAA,EAAwB,CAAC,CAAC,YAAY,IAAI,mBAAmB,CAAA;YAC9F,OAAO,CAAC,UAAU,CAAe,YAAA,EAAA,OAAO,CAAC,IAAI,CAAA,oBAAA,EAAuB,OAAO,CAAC,YAAY,CAAA;;;;AAI3F,QAAA,CAAA,CAAC,CAAC;aACJ;SACF;AACH,KAAC,CAAC;IAKW,UAAsB,CAAA,sBAAA,GAAG,CACpC,WAAkB,EAClB,QAAe,EACf,QAAe,EACf,YAAmB,KACjB;AACF,QAAA,IACE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;YACtB,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EACpD;AACA,YAAA,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAC1C,MAAM,CAAA;;;;GAIT,CAAC;SACC;AAED,QAAA,IACE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;YACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EACjD;AACA,YAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACnC,MAAM,CAAA;;;;GAIT,CAAC;SACC;AACH,KAAC,CAAC;AAGW,IAAA,UAAA,CAAA,qBAAqB,GAAG,CAAC,KAAK,EAAE,EAAE,KAAI;AACjD,QAAA,IAAI,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YACxB,MAAM,CAAA,8BAAA,EAAiC,EAAE,CAAA,CAAE,CAAC;SAC7C;AACH,KAAC,CAAC;AACJ,CAAC,EA/FgB,UAAU,KAAV,UAAU,GA+F1B,EAAA,CAAA,CAAA,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;AC/FD,IAAW,WAAW,CAgK3B;AAhKD,CAAA,UAAiB,WAAW,EAAA;AAEb,IAAA,WAAA,CAAA,QAAQ,GAAG,CAAC,CAAS,EAAE,WAAmB,KAAI;QACzD,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAG;AAC9B,YAAA,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AACf,gBAAA,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aACpB;AACD,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,KAAC,CAAC;AAIW,IAAA,WAAA,CAAA,UAAU,GAAG,CAAC,CAAS,KAAI;AACtC,QAAA,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AACvD,KAAC,CAAC;IAIW,WAAiB,CAAA,iBAAA,GAAG,KAAK,IAAG;AACvC,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAAE,gBAAA,OAAO,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACxC,YAAA,IAAI,IAAI,KAAK,MAAM,EAAE;AACnB,gBAAA,OAAO,IAAI,CAAC;aACb;AACD,YAAA,IAAI,IAAI,KAAK,OAAO,EAAE;AACpB,gBAAA,OAAO,KAAK,CAAC;aACd;AACD,YAAA,IAAI;gBACF,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7B,gBAAA,OAAO,CAAC,CAAC;aACV;YAAC,OAAO,CAAC,EAAE;AACV,gBAAA,OAAO,KAAK,CAAC;aACd;SACF;AACD,QAAA,OAAO,KAAK,CAAC;AACf,KAAC,CAAC;AAIW,IAAA,WAAA,CAAA,cAAc,GAAG,CAC5B,CAAiC,EACjC,iBAAsC,KACpC;QACF,IAAI,OAAO,iBAAiB,KAAK,QAAQ;AACvC,YAAA,OAAO,CAAG,EAAA,CAAC,CAAC,cAAc,GAAG,iBAAiB,CAAA,CAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACtE,QAAA,OAAO,GAAG,CAAC,CAAC,cAAc,CAAA,EAAG,iBAAiB,CAAC,IAAI,CAAE,CAAA,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC3E,KAAC,CAAC;IAIW,WAAW,CAAA,WAAA,GAAG,KAAK,IAAG;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,YAAA,OAAO,EAAE,CAAC;QACzC,IAAI,OAAO,KAAK,KAAK,SAAS;AAAE,YAAA,OAAO,KAAK,CAAC;AAC7C,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;QACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,YAAA,OAAO,EAAE,CAAC;AAC3C,KAAC,CAAC;IAIW,WAAwB,CAAA,wBAAA,GAAG,CACtC,MAAc,EACd,MAAM,GAAG,KAAK,KACJ;QAEV,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACvB,IAAI,MAAM,EAAE;gBACV,OAAO,CAAC,KAAK,CACX,CAAA;;AAEqC,6CAAA,EAAA,OAAO,MAAM,CAAA;SACnD,EACC,MAAM,CACP,CAAC;aACH;AAED,YAAA,OAAO,MAAM,CAAC;SACf;QAED,IAAI,GAAG,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAE9B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;YAC7B,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI;gBACF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;gBACxB,MAAM,GAAG,IAAI,CAAC;aACf;YAAC,OAAO,CAAC,EAAE;gBACV,MAAM,GAAG,KAAK,CAAC;aAChB;YAED,IAAI,MAAM,EAAE;AACV,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,YAAA,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;aACtD;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,GAAG,CAAC;AACb,KAAC,CAAC;IAIW,WAAmB,CAAA,mBAAA,GAAG,QAAQ,IAAG;AAC5C,QAAA,OAAO,gDAAgD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzE,KAAC,CAAC;IAIW,WAAkB,CAAA,kBAAA,GAAG,CAChC,MAAgB,EAChB,YAAiC,EACjC,WAAmB,KACjB;QACF,OAAO;YACL,UAAU;AACV,YAAA,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;AAC5B,YAAA,YAAY,CAAC,UAAU;AACvB,YAAA,YAAY,CAAC,IAAI;YACjB,WAAW;AACZ,SAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,KAAC,CAAC;IAIW,WAAiB,CAAA,iBAAA,GAAG,CAC/B,MAAgB,EAChB,YAAiC,EACjC,WAAmB,KACjB;QACF,OAAO;YACL,SAAS;AACT,YAAA,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;AAC5B,YAAA,YAAY,CAAC,UAAU;AACvB,YAAA,YAAY,CAAC,IAAI;YACjB,WAAW;AACZ,SAAA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,KAAC,CAAC;IAIW,WAAW,CAAA,WAAA,GAAG,OAAO,IAAG;AACnC,QAAA,MAAM,QAAQ,GAAqB;AACjC,YAAA,MAAM,CAAC,MAAW,EAAA;gBAEhB,OAAO;AACL,oBAAA,IAAI,CAAC,IAAS,EAAA;qBAEb;iBACF,CAAC;aACH;YACD,SAAS,CAAC,GAAW,EAAE,KAAU,EAAA;AAE/B,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;aACtB;SACF,CAAC;QACF,MAAM,OAAO,GAAoB,EAAE,CAAC;AACpC,QAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,KAAC,CAAC;AAEJ,CAAC,EAhKgB,WAAW,KAAX,WAAW,GAgK3B,EAAA,CAAA,CAAA,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;AC/JP;AACA;AAGM,IAAW,aAwQhB;AAxQD,CAAA,UAAiB,YAAY,EAAA;AAE3B;;AAEG;AACU,IAAA,YAAA,CAAA,oBAAoB,GAAG,CAAC,IAAY,KAAI;AACnD,QAAA,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACzC,OAAO;SACR;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QACD,MAAM,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AACtC,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ;cACxD,CAAC,CAAC,WAAW;cACb,KAAK,CAAC,CAAC;AACb,KAAC,CAAC;AAIW,IAAA,YAAA,CAAA,OAAO,GAAG,CAAC,eAAoB,KAAY;AAEtD,QAAA,IAAI,eAAe,YAAY,QAAQ,EAAE;AACvC,YAAA,OAAO,UAAU,CAAC;SACnB;QACD,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;AAClD,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,0CAAA,CAA4C,CAAC,CAAC;SAC/D;AACD,QAAA,QACE,CAAC,eAAe,CAAC,OAAO,CAAC,uBAAuB,CAAC;AAC/C,cAAE,eAAe,CAAC,OAAO,CAAC,uBAAuB,CAAC;cAChD,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,uBAAuB,CAAC;AACjE,YAAA,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAC9B;AACJ,KAAC,CAAC;AAGW,IAAA,YAAA,CAAA,eAAe,GAAG,CAAC,eAAoB,KAAS;QAC3D,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,OAAO,eAAe,CAAC;SACxB;AACD,QAAA,OAAO,YAAA,CAAA,eAAe,CAAC,GAAG,CAAC,CAAC;AAC9B,KAAC,CAAC;AAGW,IAAA,YAAA,CAAA,mBAAmB,GAAG,CAAC,eAAoB,KAAY;QAGlE,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,eAAe,CAAA,CAAE,CAAC,CAAC;SAC7D;AACD,QAAA,QACE,CAAC,eAAe,CAAC,OAAO,CAAC,2BAA2B,CAAC;AACnD,cAAE,eAAe,CAAC,OAAO,CAAC,2BAA2B,CAAC;cACpD,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,2BAA2B,CAAC;YACrE,KAAK,CAAC,EACN;AACJ,KAAC,CAAC;AAIW,IAAA,YAAA,CAAA,WAAW,GAAG,CAAC,eAAoB,KAAY;AAC1D,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC;AAC3C,cAAE,eAAe;AACjB,cAAE,eAAe,CAAC,WAAW,CAAC;AAChC,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EACnC,OAAO,CACa,CAAC;QACvB,OAAO,MAAM,CAAC,aAAa,CAAC;AAC9B,KAAC,CAAC;AAIW,IAAA,YAAA,CAAA,oBAAoB,GAAG,CAAC,GAAQ,KAAa;AACxD,QAAA,IACE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChB,YAAA,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;AACd,YAAA,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACf,YAAA,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;AACf,YAAA,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,EACpB;AACA,YAAA,OAAO,KAAK,CAAC;SACd;AACD,QAAA,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AACjB,YAAA,OAAO,IAAI,CAAC;SACb;AACD,QAAA,MAAM,SAAS,GAAG,YAAA,CAAA,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,KAAK,QAAQ,CAAC;AACzD,KAAC,CAAC;AAKW,IAAA,YAAA,CAAA,OAAO,GAAG,CAAC,MAAgB,EAAE,SAAiB,KAAU;AAEnE,QAAA,UAAU,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACjD,QAAA,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,SAAS,CAAC;AACtD,KAAC,CAAC;IAIW,YAAsB,CAAA,sBAAA,GAAG,CACpC,MAAgB,EAChB,SAAiB,EACjB,OAAO,GAAG,EAAE,KACD;QACX,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,KAAK,CAAC;SACd;AACD,QAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,IAAI,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAEhD,QAAA,IACE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC;YACzB,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,SAAS,EAC/C;AAEA,YAAA,OAAO,IAAI,CAAC;SACb;QACD,OAAO,YAAA,CAAA,sBAAsB,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACjE,KAAC,CAAC;AAIW,IAAA,YAAA,CAAA,mBAAmB,GAAG,CACjC,MAAgB,KACuB;AACvC,QAAA,MAAM,oBAAoB,GAA0B,OAAO,CAAC,WAAW,CACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EACnC,MAAM,CACP,CAAC;AACF,QAAA,MAAM,aAAa,GAA4B,CAAC,CAAC,KAAK,CACpD,IAAI,MAAM,CAAC,gBAAgB,EAAE,EAC7B,oBAAoB,CACrB,CAAC;QAGF,MAAM,WAAW,GAAG,YAAY,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAEzD,QAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AACpC,YAAA,MAAM,cAAc,GAAwB,OAAO,CAAC,WAAW,CAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EACzC,MAAM,EACN,UAAU,CACX,CAAC;YAEF,IAAI,cAAc,EAAE;AAClB,gBAAA,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC;aACpD;SACF;AACD,QAAA,OAAO,aAAa,CAAC;AACvB,KAAC,CAAC;AAMF,IAAA,MAAM,sBAAsB,GAAG;QAC7B,QAAQ;QACR,MAAM;QACN,WAAW;QACX,QAAQ;QACR,aAAa;QACb,OAAO;QACP,MAAM;QACN,MAAM;QACN,UAAU;QACV,kBAAkB;QAClB,kBAAkB;QAClB,gBAAgB;QAChB,kBAAkB;QAClB,kBAAkB;QAClB,eAAe;QACf,sBAAsB;QACtB,SAAS;QACT,WAAW;QACX,gBAAgB;KACjB,CAAC;IAGW,YAAe,CAAA,eAAA,GAAG,CAC7B,oBAAyB,EACzB,eAAe,GAAG,EAAE,KACR;QACZ,IAAI,CAAC,oBAAoB,EAAE;AACzB,YAAA,OAAO,eAAe,CAAC;SACxB;QAED,MAAM,eAAe,GAAG,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,eAAe;AAC9B,cAAE,oBAAoB;AACtB,cAAE,MAAM,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAChD,MAAM,aAAa,GAAG,eAAe;cAChC,oBAAiC,EAAE,SAAS;cAC7C,oBAAoB,CAAC;QACzB,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;AAEhE,QAAA,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC;AACxB,YAAA,GAAG,MAAM,CAAC,mBAAmB,CAAC,aAAa,IAAI,EAAE,CAAC;AAClD,YAAA,GAAG,MAAM,CAAC,mBAAmB,CAAC,YAAY,IAAI,EAAE,CAAC;AACjD,YAAA,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;AACnC,YAAA,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;AACnC,SAAA,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAE3D,UAAU;AACP,aAAA,MAAM,CAAC,UAAU,IAAI,OAAO,aAAa,CAAC,UAAU,CAAC,KAAK,UAAU,CAAC;AACrE,aAAA,OAAO,CAAC,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzC,QAAA,IACE,CAAC,QAAQ;YACT,CAAC,QAAQ,CAAC,WAAW;AACrB,YAAA,QAAQ,EAAE,WAAW,EAAE,IAAI,KAAK,QAAQ,EACxC;AACA,YAAA,OAAO,eAAe,CAAC;SACxB;AACD,QAAA,OAAO,YAAA,CAAA,eAAe,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;AAC3E,KAAC,CAAC;IAIW,YAAoB,CAAA,oBAAA,GAAG,CAClC,MAAgB,EAChB,UAAqC,EAAE,EACvC,YAAuB,KACa;QACpC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAA,wEAAA,EAA2E,MAAM,CAAA,CAAE,CAAC;SAC3F;AAED,QAAA,IAAI,MAAsC,CAAC;QAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAClD,QAAA,MAAM,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,CAAC;AAC5E,QAAA,MAAM,aAAa,GAAG,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,UAAU,KAAK,EAAE,CAAC;AAErE,QAAA,MAAM,GAAG,YAAA,CAAA,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAErC,QAAA,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAErB,QAAA,OAAO,aAAa;cAChB,aAAA,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC;cAClD,OAAO,CAAC;AACd,KAAC,CAAC;AAIW,IAAA,YAAA,CAAA,oBAAoB,GAAG,CAAC,MAAgB,KAAI;AACvD,QAAA,MAAM,OAAO,GAAG,YAAA,CAAA,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9C,aAAA,OAAO,EAAE;aACT,GAAG,CAAC,EAAE,IAAG;YACR,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;gBACnC,OAAO,EAAE,CAAC,IAAI,CAAC;aAChB;YACD,OAAO,EAAE,CAAC,SAAS,CAAC;AACtB,SAAC,CAAC;aACD,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,OAAO,CAAA,CAAA,EAAI,qBAAqB,CAAA,CAAA,EAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA,CAAE,CAAC;AACrE,KAAC,CAAC;AAEJ,CAAC,EAxQgB,YAAY,KAAZ,YAAY,GAwQ5B,EAAA,CAAA,CAAA,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACnRP;AACA;AAOM,IAAW,OAoRhB;AApRD,CAAA,UAAiB,MAAM,EAAA;AAQrB,IAAA,IAAY,SAMX,CAAA;AAND,IAAA,CAAA,UAAY,SAAS,EAAA;AACnB,QAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,QAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,QAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,QAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,QAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC3B,KAAC,EANW,SAAS,GAAT,MAAS,CAAA,SAAA,KAAT,gBAAS,GAMpB,EAAA,CAAA,CAAA,CAAA;AAEY,IAAA,MAAA,CAAA,YAAY,GAAG;AAC1B,QAAA,CAAC,SAAS,CAAC,MAAM,GAAG,UAAU;AAC9B,QAAA,CAAC,SAAS,CAAC,UAAU,GAAG,aAAa;AACrC,QAAA,CAAC,SAAS,CAAC,UAAU,GAAG,cAAc;AACtC,QAAA,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;AACjC,QAAA,CAAC,SAAS,CAAC,UAAU,GAAG,aAAa;KAGtC,CAAC;AA4GF,IAAA,MAAa,oBAAoB,CAAA;AAEhC,KAAA;AAFY,IAAA,MAAA,CAAA,oBAAoB,uBAEhC,CAAA;AAID,IAAA,MAAa,WAAW,CAAA;AAMvB,KAAA;AANY,IAAA,MAAA,CAAA,WAAW,cAMvB,CAAA;AAID,IAAA,MAAa,YAAY,CAAA;AAAzB,QAAA,WAAA,GAAA;;;YAoBE,IAAU,CAAA,UAAA,GAAyC,EAAE,CAAC;SACvD;AAAA,KAAA;AArBY,IAAA,MAAA,CAAA,YAAY,eAqBxB,CAAA;IAID,MAAa,gBAAiB,SAAQ,oBAAoB,CAAA;AAA1D,QAAA,WAAA,GAAA;;YAIE,IAAO,CAAA,OAAA,GAA2C,EAAE,CAAC;SACtD;AAAA,KAAA;AALY,IAAA,MAAA,CAAA,gBAAgB,mBAK5B,CAAA;IAID,MAAa,uBAAwB,SAAQ,gBAAgB,CAAA;AAG5D,KAAA;AAHY,IAAA,MAAA,CAAA,uBAAuB,0BAGnC,CAAA;AAID,IAAA,IAAiB,IAAI,CAqFpB;AArFD,IAAA,CAAA,UAAiB,IAAI,EAAA;QACL,IAAI,CAAA,IAAA,GAAGA,QAAa,CAAC;AA+CnC,QAAA,MAAa,MAAM,CAAA;YAKjB,WACS,CAAA,OAAe,EACd,IAAA,GAA+B,GAAG,EAAA;gBADnC,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;gBACd,IAAI,CAAA,IAAA,GAAJ,IAAI,CAA8B;gBANrC,IAAQ,CAAA,QAAA,GAAG,MAAa;oBAC7B,OAAO,IAAI,CAAC,OAAO,CAAC;AACtB,iBAAC,CAAC;aAKE;AAEI,YAAA,OAAO,MAAM,CACnB,OAAe,EACf,OAA+B,GAAG,EAAA;AAElC,gBAAA,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAClC;YAEM,OAAO,cAAc,CAAC,MAAiB,EAAA;AAC5C,gBAAA,OAAO,MAAM,CAAC,MAAM,CAClB,CAAU,OAAA,EAAA,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA,UAAA,CAAY,CACnD,CAAC;aACH;AAEM,YAAA,OAAO,MAAM,CAClB,OAAe,EACf,OAA+B,GAAG,EAAA;gBAElC,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACrC;AACF,SAAA;AA7BY,QAAA,IAAA,CAAA,MAAM,SA6BlB,CAAA;;;;;;AAQH,KAAC,EArFgB,IAAI,GAAJ,MAAI,CAAA,IAAA,KAAJ,WAAI,GAqFpB,EAAA,CAAA,CAAA,CAAA;AAEH,CAAC,EApRgB,MAAM,KAAN,MAAM,GAoRtB,EAAA,CAAA,CAAA,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;AC7RP,MAAM,OAAO,GAAG,CACd,MAAmC,EACnC,IAAY,EACZ,MAAgB,EAChB,WAAmB,EACnB,UAA8B,EAC9B,aAAgD,EAChD,YAAqB,KACnB;AACF,IAAA,IAAI,OAAiC,CAAC;AACtC,IAAA,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;QACrC,OAAO,GAAG,aAAa,CAAC;AACxB,QAAA,aAAa,GAAG,OAAO,CAAC,IAAW,CAAC;AACpC,QAAA,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;AACtC,QAAA,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;KACrB;SAAM;AACL,QAAA,OAAO,GAAG,EAAE,aAAa,EAAE,YAAY,EAAS,CAAC;KAClD;AAED,IAAA,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAE7D,IAAI,YAAY,GAAwB,OAAO,CAAC,WAAW,CACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EACzC,MAAM,CAAC,WAAW,EAClB,WAAW,CACZ,CAAC;IACF,IAAI,CAAC,YAAY,EAAE;AACjB,QAAA,YAAY,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;AACzC,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EACzC,YAAY,EACZ,MAAM,CAAC,WAAW,EAClB,WAAW,CACZ,CAAC;KACH;AAED,IAAA,YAAY,CAAC,UAAU,GAAG,WAAW,CAAC;AACtC,IAAA,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE;QACT,IAAI,sBAAsB,GAAG,EAAE,CAAC;AAChC,QAAA,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE;YACzC,IAAI,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAC/C,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC7C,gBAAA,IACE,OAAO,CAAC,SAAS,KAAK,MAAM;AAC5B,oBAAA,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC;oBAC7B,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EACnC;oBACA,sBAAsB,IAAI,CAAI,CAAA,EAAA,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS,CAAA,CAAE,CAAC;iBACzE;aACF;SACF;QACD,YAAY,CAAC,IAAI,GAAG,CAAA,CAAA,EAAI,WAAW,CAAG,EAAA,sBAAsB,EAAE,CAAC;KAChE;SAAM;AACL,QAAA,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;KAC1B;AAED,IAAA,YAAY,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,IAAA,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC;AACnC,IAAA,YAAY,CAAC,WAAW,GAAG,mBAAmB,CAAC;AAC/C,IAAA,YAAY,CAAC,YAAY,GAAG,mBAAmB,CAAC;AAChD,IAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EACzC,YAAY,EACZ,MAAM,CAAC,WAAW,EAClB,WAAW,CACZ,CAAC;AAEJ,CAAC,CAAC;SASc,GAAG,CACjB,aAAiD,EACjD,YAAY,GAAG,KAAK,EAAA;AAEpB,IAAA,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA8B,EAAA;AAE9B,QAAA,OAAO,CACL,KAAK,EACL,aAAuB,EACvB,MAAM,EACN,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,CACb,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;SAEe,IAAI,CAClB,aAAiD,EACjD,YAAY,GAAG,KAAK,EAAA;AAEpB,IAAA,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA8B,EAAA;AAE9B,QAAA,OAAO,CACL,MAAM,EACN,aAAuB,EACvB,MAAM,EACN,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,CACb,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;SAEe,IAAI,CAClB,aAAiD,EACjD,YAAY,GAAG,KAAK,EAAA;AAEpB,IAAA,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA8B,EAAA;AAE9B,QAAA,OAAO,CACL,MAAM,EACN,aAAuB,EACvB,MAAM,EACN,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,CACb,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;SAEe,GAAG,CACjB,aAAiD,EACjD,YAAY,GAAG,KAAK,EAAA;AAEpB,IAAA,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA8B,EAAA;AAE9B,QAAA,OAAO,CACL,KAAK,EACL,aAAuB,EACvB,MAAM,EACN,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,CACb,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;SAEe,KAAK,CACnB,aAAiD,EACjD,YAAY,GAAG,KAAK,EAAA;AAEpB,IAAA,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA8B,EAAA;AAE9B,QAAA,OAAO,CACL,OAAO,EACP,aAAuB,EACvB,MAAM,EACN,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,CACb,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;SAEe,MAAM,CACpB,aAAiD,EACjD,YAAY,GAAG,KAAK,EAAA;AAEpB,IAAA,OAAO,UACL,MAAW,EACX,WAAmB,EACnB,UAA8B,EAAA;AAE9B,QAAA,OAAO,CACL,QAAQ,EACR,aAAuB,EACvB,MAAM,EACN,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,CACb,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;AC5MP,SAAS,SAAS,CAChB,KAAiC,EACjC,IAAY,EACZ,MAAc,EACd,YAAY,GAAG,SAAS,EACxB,MAAgB,EAChB,WAA4B,EAC5B,cAAsB,EAAA;IAEtB,IAAI,YAAY,GAAwB,OAAO,CAAC,WAAW,CACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EACzC,MAAM,CAAC,WAAW,EAClB,WAAW,CACZ,CAAC;IACF,IAAI,CAAC,YAAY,EAAE;AACjB,QAAA,YAAY,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;AACzC,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EACzC,YAAY,EACZ,MAAM,CAAC,WAAW,EAClB,WAAW,CACZ,CAAC;KACH;IAED,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AACpC,IAAA,MAAM,CAAC,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CACpE,OAAO,CACR;AACC,UAAE,IAAI,MAAM,CAAC,WAAW,EAAE;UACxB,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACtC,IAAA,CAAC,CAAC,KAAK,GAAG,cAAc,CAAC;AACzB,IAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;AACnB,IAAA,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;AACpB,IAAA,CAAC,CAAC,WAAW,GAAG,YAAY,CAAC;AAC7B,IAAA,CAAC,CAAC,eAAe,GAAG,MAAM,CAAC;AAC3B,IAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EACzC,YAAY,EACZ,MAAM,CAAC,WAAW,EAClB,WAAW,CACZ,CAAC;AAEJ,CAAC;AAEK,SAAU,IAAI,CAAC,IAAY,EAAA;AAC/B,IAAA,OAAO,UACL,MAAW,EACX,WAA4B,EAC5B,cAAsB,EAAA;AAEtB,QAAA,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AAC9E,KAAC,CAAC;AACJ,CAAC;AAEK,SAAU,KAAK,CAAC,IAAa,EAAA;AACjC,IAAA,OAAO,UACL,MAAW,EACX,WAA4B,EAC5B,cAAsB,EAAA;AAEtB,QAAA,SAAS,CACP,OAAO,EACP,IAAI,EACJ,SAAS,EACT,EAAE,EACF,MAAM,EACN,WAAW,EACX,cAAc,CACf,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;SAEe,MAAM,CAAC,IAAY,EAAE,iBAAyB,IAAI,EAAA;AAChE,IAAA,OAAO,UACL,MAAW,EACX,WAA4B,EAC5B,cAAsB,EAAA;AAEtB,QAAA,SAAS,CACP,QAAQ,EACR,IAAI,EACJ,cAAc,EACd,EAAE,EACF,MAAM,EACN,WAAW,EACX,cAAc,CACf,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;AAEK,SAAU,MAAM,CAAC,IAAa,EAAA;AAClC,IAAA,OAAO,UACL,MAAW,EACX,WAA4B,EAC5B,cAAsB,EAAA;AAEtB,QAAA,SAAS,CACP,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,EAAE,EACF,MAAM,EACN,WAAW,EACX,cAAc,CACf,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;AAEK,SAAU,IAAI,CAAC,IAAa,EAAA;AAChC,IAAA,OAAO,UACL,MAAW,EACX,WAA4B,EAC5B,cAAsB,EAAA;AAEtB,QAAA,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AAC9E,KAAC,CAAC;AACJ,CAAC;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACtHD,IAAW,IAAI,CAcpB;AAdD,CAAA,UAAiB,IAAI,EAAA;AACL,IAAA,IAAA,CAAA,GAAG,GAAGC,GAAW,CAAC;AAClB,IAAA,IAAA,CAAA,IAAI,GAAGC,IAAY,CAAC;AACpB,IAAA,IAAA,CAAA,GAAG,GAAGC,GAAW,CAAC;AAClB,IAAA,IAAA,CAAA,MAAM,GAAGC,MAAc,CAAC;AACxB,IAAA,IAAA,CAAA,KAAK,GAAGC,KAAa,CAAC;AACtB,IAAA,IAAA,CAAA,IAAI,GAAGC,IAAY,CAAC;AAClC,IAAA,IAAiB,KAAK,CAMrB;AAND,IAAA,CAAA,UAAiB,KAAK,EAAA;AACN,QAAA,KAAA,CAAA,KAAK,GAAGC,KAAY,CAAC;AACrB,QAAA,KAAA,CAAA,IAAI,GAAGC,IAAW,CAAC;AACnB,QAAA,KAAA,CAAA,IAAI,GAAGC,IAAW,CAAC;AACnB,QAAA,KAAA,CAAA,MAAM,GAAGC,MAAa,CAAC;AACvB,QAAA,KAAA,CAAA,MAAM,GAAGC,MAAa,CAAC;AACvC,KAAC,EANgB,KAAK,GAAL,IAAK,CAAA,KAAA,KAAL,UAAK,GAMrB,EAAA,CAAA,CAAA,CAAA;AACH,CAAC,EAdgB,IAAI,KAAJ,IAAI,GAcpB,EAAA,CAAA,CAAA,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACfD,SAAU,cAAc,CAAC,OAA+B,EAAA;AAC5D,IAAA,OAAO,UAAU,WAAqB,EAAA;QACpC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACtD,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EACnC,OAAO,EACP,WAAW,CACZ,CAAC;AACF,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,EAC1B,OAAO,EAAE,SAAS,IAAI,WAAW,CAAC,IAAI,EACtC,WAAW,CACZ,CAAC;AACJ,KAAC,CAAC;AACJ,CAAC;AAEY,MAAA,qBAAsB,SAAQ,MAAM,CAAC,oBAAoB,CAAA;AASrE,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;MCtBM,YAAY,CAAA;AAAzB,IAAA,WAAA,GAAA;AAuHE;;AAEG;QACO,IAAwB,CAAA,wBAAA,GAAG,EAA2B,CAAC;KAkIlE;AAjPC;;;AAGG;AACH,IAAA,MAAM,CAAC,GAAA;AACL,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC;AAClD,QAAA,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;AAC9B,YAAA,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACzB;KACF;AAID;;AAEG;AACH,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAoB,CAAC;KAC9D;AAMD;;AAEG;AACH,IAAA,UAAU,CAAI,aAAwC,EAAA;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACtC,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,uBAAuB,EAAE,gBAAgB;AACzC,YAAA,2BAA2B,EAAE,CAAC,MAAM,aAAa,CAAC;AACnD,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAgB,CAAC,CAAC;AACrD,QAAA,OAAO,SAAgB,CAAC;KACzB;AAID,IAAA,sBAAsB,CACpB,oBAA+C,EAAA;AAE/C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAI,oBAAoB,EAAE;AACvD,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,2BAA2B,EAAE;AAC3B,gBAAA,MAAM,oBAAoB,CAAC,SAAS,CAAC,oBAAoB,EAAE;AAC5D,aAAA;AACF,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAgB,CAAC,CAAC;AACrD,QAAA,OAAO,SAAS,CAAC;KAClB;AAID;;AAEG;AACH,IAAA,gBAAgB,CAAI,oBAA+C,EAAA;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAI,oBAAoB,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAgB,CAAC,CAAC;AACrD,QAAA,OAAO,SAAS,CAAC;KAClB;AAID,IAAA,gBAAgB,CAAI,IAA+B,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAI,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;KACzD;AAKD;;AAEG;AACH,IAAA,gBAAgB,CAAI,IAA+B,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAI,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;KACzD;AAID;;AAEG;AACH,IAAA,UAAU,CAAI,IAA+B,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAI,IAAI,CAAC,CAAC;KACvC;AAID;;AAEG;AACH,IAAA,oBAAoB,CAAI,IAA+B,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAI,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;KACzD;AAID;;;AAGG;AACH,IAAA,qBAAqB,CAAI,IAA+B,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAI,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;KACzD;AASD;;;AAGG;IACK,QAAQ,CACd,IAA+B,EAC/B,OASC,EAAA;QAED,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,EAAS,CAAC;SACrB;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,QAAA,OAAO,IAAI,KAAK,CACd,EAAE,EACF;AACE,YAAA,GAAG,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAI;gBACpB,MAAM,gBAAgB,GACpB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBAE7C,MAAM,aAAa,GAAoB,gBAAgB;AACrD,sBAAE,gBAAgB;AAClB,sBAAE,IAAI,CAAC,oBAAoB,CAAC;AAE9B,gBAAA,IAAI,OAAO,CAAC,uBAAuB,EAAE;oBACnC,MAAM,aAAa,GAAG,aAAa,CAAC,sBAAsB,CACxD,OAAO,CAAC,uBAAuB,CAChC,CAAC;oBACF,IAAI,GAAG,aAAoB,CAAC;iBAC7B;gBAED,IAAI,aAAa,EAAE;AACjB,oBAAA,IAAI,QAAQ,GAAM,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE;AAC3C,wBAAA,GAAG,OAAO;wBACV,oBAAoB;AACrB,qBAAA,CAAC,CAAC;oBACH,IAAI,CAAC,QAAQ,EAAE;AACb,wBAAA,MAAM,IAAI,KAAK,CACb,CAAA,oBAAA,EACE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IACrC,CAAW,SAAA,CAAA;4BACT,CAAa,UAAA,EAAA,QAAQ,EAAE,QAAQ,EAAE,CAAA,aAAA,EAAgB,YAAY,CAAC,OAAO,CACnE,IAAI,CACL,CAAA;;4BAGH,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IACrC,CAAA;;AAEC,cAAA,CAAA,CACA,CAAC;qBACH;oBAED,MAAM,MAAM,GACV,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU;0BACpC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnC,0BAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAGzB,oBAAA,OAAO,MAAM,CAAC;iBACf;aAIF;YACD,GAAG,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,KAAI;gBAC3B,MAAM,gBAAgB,GAAG,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBACpE,MAAM,aAAa,GAAoB,gBAAgB;AACrD,sBAAE,gBAAgB;AAClB,sBAAE,IAAI,CAAC,oBAAoB,CAAC;AAE9B,gBAAA,IAAI,OAAO,CAAC,uBAAuB,EAAE;oBACnC,MAAM,aAAa,GAAG,aAAa,CAAC,sBAAsB,CACxD,OAAO,CAAC,uBAAuB,CAChC,CAAC;oBACF,IAAI,GAAG,aAAoB,CAAC;iBAC7B;gBAED,IAAI,aAAa,EAAE;AACjB,oBAAA,IAAI,QAAQ,GAAM,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE;AAC3C,wBAAA,GAAG,OAAO;wBACV,oBAAoB;AACrB,qBAAA,CAAC,CAAC;oBACH,IAAI,CAAC,QAAQ,EAAE;AACb,wBAAA,MAAM,oBAAoB,GACxB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;AAC1C,wBAAA,MAAM,IAAI,KAAK,CACb,CAAA,oBAAA,EAAuB,oBAAoB,CAAW,SAAA,CAAA;4BACpD,CAAa,UAAA,EAAA,QAAQ,EAAE,QAAQ,EAAE,CAAA,aAAA,EAAgB,YAAY,CAAC,OAAO,CACnE,IAAI,CACL,CAAA;;4BAGH,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IACrC,CAAA;;AAEC,cAAA,CAAA,CACA,CAAC;qBACH;AACD,oBAAA,QAAQ,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;iBAC5B;AACD,gBAAA,OAAO,IAAI,CAAC;aACb;AACF,SAAA,CACG,CAAC;KACR;AAMM,IAAA,KAAK,CAAC,QAAyB,EAAA;QACpC,MAAM,OAAO,GAAG,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE5E,QAAA,OAAO,MAAM,CAAC;KACf;AAEF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACnQA,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,YAAY,CAAA;AAC9C;;AAEG;IACH,iBAAiB,GAAA;QACf,OAAO,KAAK,CAAC,CAAC;KACf;EAGF;AATY,cAAc,GAAA,UAAA,CAAA;AAD1B,IAAA,cAAc,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AACnC,CAAA,EAAA,cAAc,CAS1B,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACWP;;AAEG;AAEI,IAAe,kBAAkB,GAAjC,MAAe,kBAA2B,SAAQ,cAAc,CAAA;AAarE,IAAA,MAAM,CAAC,GAAA;QACL,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE;AAC5C,YAAA,OAAO,CAAC,IAAI,CACV,CAAA,iCAAA,EAAoC,YAAY,CAAC,OAAO,CACtD,IAAI,CACL,CAAgD,8CAAA,CAAA,CAClD,CAAC;YACF,OAAO;SACR;AAED,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChD,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAEzC,IAAI,aAAa,EAAE;YACjB,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAC/B,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,CACnB,CAAC;AACvB,YAAA,IAAI,YAAY,EAAE,WAAW,KAAK,KAAK,EAAE;AACvC,gBAAA,OAAO,CAAC,IAAI,CACV,CAAA,iBAAA,EAAoB,YAAY,CAAC,OAAO,CACtC,aAAa,CACd,CAAoD,kDAAA,CAAA,CACtD,CAAC;aACH;SACF;aAAM;YACL,OAAO,CAAC,KAAK,CAAC,CAAA,yCAAA,EAA4C,YAAY,CAAC,OAAO,CAC5E,IAAI,CACL,CAAA;;;;AAIO,YAAA,EAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;;;;;;AAMjC,MAAA,CAAA,CAAC,CAAC;SACJ;AACD,QAAA,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;KACjB;AAKD,IAAA,eAAe,CACD,EAAmB,EACb,QAAgB,EACV,aAAsB,EAAA;;;;;;;;;;;;;;;;AAiB9C,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;IAKD,UAAU,CACa,aAAqB,CAAC,EACxB,WAAmB,EAAE,EACvB,SAAiB,EAAE,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwCpC,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;IAKD,MAAM,GAAA;;;;;;;;;;AAUJ,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAKD,IAAA,KAAK,CAAa,EAAmB,EAAA;;;;;;AAMnC,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;IAKD,UAAU,CACI,EAAmB,EACvB,IAAY,EAAA;;;;;;;AAQpB,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;IAKD,SAAS,CACK,EAAmB,EACvB,IAAY,EAAA;;;;;;;AAQpB,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAKD,IAAA,UAAU,CAAS,KAAe,EAAA;;;;;;;;;AAShC,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAKD,IAAA,UAAU,CAAa,EAAU,EAAA;;;;;;AAM/B,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAKD,IAAA,UAAU,CACK,GAAwB,EAAA;;;;;;AAOrC,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAKD,IAAA,MAAM,CAAS,IAAY,EAAA;;;;;;AAMzB,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAKD,IAAA,UAAU,CAAS,KAAa,EAAA;;;;;;AAM9B,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;CAEF,CAAA;AArMC,UAAA,CAAA;IADC,GAAG,CAAC,yBAAyB,CAAC;AAE5B,IAAA,OAAA,CAAA,CAAA,EAAA,IAAI,CAAC,CAAI,EAAA,CAAA,CAAC,CAAA;AACV,IAAA,OAAA,CAAA,CAAA,EAAA,IAAI,CAAC,CAAU,QAAA,CAAA,CAAC,CAAA;AAChB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,eAAe,CAAC,CAAA;;;;AAkBxB,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;AAEH,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,YAAY,CAAC,CAAA;AACnB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,UAAU,CAAC,CAAA;AACjB,IAAA,OAAA,CAAA,CAAA,EAAA,KAAK,CAAC,QAAQ,CAAC,CAAA;;;;AAyCjB,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;;;;AAYL,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA,CAAA;AAKD,UAAA,CAAA;IADC,GAAG,CAAC,MAAM,CAAC;AACL,IAAA,OAAA,CAAA,CAAA,EAAA,IAAI,CAAC,CAAI,EAAA,CAAA,CAAC,CAAA;;;;AAOhB,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,OAAA,EAAA,IAAA,CAAA,CAAA;AAKD,UAAA,CAAA;IADC,GAAG,CAAC,MAAM,CAAC;AAET,IAAA,OAAA,CAAA,CAAA,EAAA,IAAI,CAAC,CAAI,EAAA,CAAA,CAAC,CAAA;IACV,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AASR,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;AAKD,UAAA,CAAA;IADC,KAAK,CAAC,MAAM,CAAC;AAEX,IAAA,OAAA,CAAA,CAAA,EAAA,IAAI,CAAC,CAAI,EAAA,CAAA,CAAC,CAAA;IACV,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AASR,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,GAAG,EAAE;IACM,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAUjB,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;AAKD,UAAA,CAAA;IADC,MAAM,CAAC,MAAM,CAAC;AACH,IAAA,OAAA,CAAA,CAAA,EAAA,IAAI,CAAC,CAAI,EAAA,CAAA,CAAC,CAAA;;;;AAOrB,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;AAKD,UAAA,CAAA;IADC,MAAM,CAAC,kBAAkB,CAAC;AAExB,IAAA,OAAA,CAAA,CAAA,EAAA,IAAI,CAAC,CAAK,GAAA,CAAA,CAAC,CAAA;;;;AAQb,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;IACC,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAOb,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA,CAAA;AAKD,UAAA,CAAA;AADC,IAAA,IAAI,EAAE;IACK,OAAA,CAAA,CAAA,EAAA,IAAI,EAAE,CAAA;;;;AAOjB,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;AA9PmB,kBAAkB,GAAA,UAAA,CAAA;AADvC,IAAA,cAAc,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC;AAC9B,CAAA,EAAA,kBAAkB,CAgQvC,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;MCrRM,SAAS,CAAA;AAEpB;;;AAGG;IACH,MAAM,CAAC,GAAA,GAAK;AAIL,IAAA,KAAK,CAAC,QAAyB,EAAA;QACpC,MAAM,OAAO,GAAG,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE5E,QAAA,OAAO,MAAM,CAAC;KACf;AAEF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;AC9BP;AACA;AAMA,IAAIC,iBAAe,GAAG,MAAK;AACzB,IAAA,OAAO,CAAC,MAAW,KAAI,GAAG,CAAC;AAC7B,CAAC,CAAC;AAEF;AACA;AAIO,IAAe,UAAU,GAAzB,MAAe,UAKpB,SAAQ,SAAiB,CAAA;EAAG;AALR,UAAU,GAAA,UAAA,CAAA;AAD/B,IAAAA,iBAAe,EAAE;AACI,CAAA,EAAA,UAAU,CAKF,CAAA;AAE7B,CAAC;AAAA,CAAC,EAAE,EAAE;;ACvBP;AACA;AAOA,IAAI,eAAe,GAAG,MAAK;AACzB,IAAA,OAAO,CAAC,MAAW,KAAI,GAAG,CAAC;AAC7B,CAAC,CAAC;AAEF;AACA;AAIO,IAAe,kBAAkB,GAAjC,MAAe,kBAEpB,SAAQ,UAAkB,CAAA;CAU3B,CAAA;AAZqB,kBAAkB,GAAA,UAAA,CAAA;AADvC,IAAA,eAAe,EAAE;AACI,CAAA,EAAA,kBAAkB,CAYvC,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACtBD,SAAU,cAAc,CAAC,OAA8B,EAAA;AAC3D,IAAA,OAAO,UAAU,WAAqB,EAAA;AACpC,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EACnC,OAAO,EACP,WAAW,CACZ,CAAC;AACF,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,EAC1B,OAAO,EAAE,SAAS,IAAI,WAAW,CAAC,IAAI,EACtC,WAAW,CACZ,CAAC;QACF,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACxD,KAAC,CAAC;AACJ,CAAC;AAEY,MAAA,qBAEX,SAAQ,MAAM,CAAC,oBAAoB,CAAA;AAAG,CAAA;AAEvC,CAAC;AAAA,CAAC,EAAE,EAAE;;ACGP,MAAM,wBAAwB,GAAG,CAAC,IAAI,CAAC,CAAC;AAGjC,IAAe,cAAc,GAA7B,MAAe,cAEpB,SAAQ,YAAY,CAAA;AAQpB,IAAA,WAAA,CAEU,sBAAiC,EAAA;AAEzC,QAAA,KAAK,EAAE,CAAC;QAFA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAW;;AAIzC,QAAA,IAAI,CAAC,oBAAoB,GAAG,sBAAsB,CAAC;KACpD;AAMD,IAAA,IAAW,OAAO,GAAA;;;;;;;;;;;;;;;;;;;;AAoBhB,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAID,IAAA,IAAW,UAAU,GAAA;;;AAGnB,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;;;AAOD,IAAA,IAAc,UAAU,GAAA;;;AAGtB,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAED;;AAEG;AACH,IAAA,IAAW,MAAM,GAAA;;;AAGf,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAED;;AAEG;AACH,IAAA,IAAc,IAAI,GAAA;;;AAGhB,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAED,IAAA,IAAW,gBAAgB,GAAA;;;AAGzB,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;IAMD,MAAM,MAAM,CAAC,OAAa,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqDzB;AAID;;;AAGG;AACH,IAAA,KAAK,CAAC,MAAc,EAAA;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAChC;AAID;;AAEG;AACH,IAAA,KAAK,CAAC,MAAc,EAAA;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAChC;AAID;;;AAGG;AACH,IAAA,MAAM,IAAI,CACR,IAAY,EACZ,OAEC,EAAA;;;;;;;;;;;;AAaD,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAED;;;;AAIG;AACH,IAAA,MAAM,MAAM,CACV,IAAY,EACZ,OAEC,EAAA;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACjC;AAED,IAAA,MAAM,QAAQ,CACZ,KAAe,EACf,OAEC,EAAA;;;;;;;;;;AAWD,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAED,IAAA,MAAM,UAAU,CACd,KAAe,EACf,OAEC,EAAA;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACtC;AAiBD;;;AAGG;AAwCH;;AAEG;AACH,IAAA,KAAK,CAAC,eAAuB,EAAE,GAAG,WAAqB,EAAA;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,WAAW,CAAC,CAAC;KACzD;AAID;;;;;;;;AAQG;AACH,IAAA,OAAO,CAAC,UAAkB,EAAA;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KACtC;AAKD;;AAEG;IACH,MAAM,MAAM,CAAC,UAAoC,EAAA;;;;;;;;;;;;;;AAc/C,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAED;;AAEG;IACH,MAAM,MAAM,CAAC,UAAoC,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAChC;AAED;;AAEG;IACH,MAAM,UAAU,CAAC,EAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACxB;IACD,MAAM,UAAU,CACd,aAA2C,EAAA;;;;;;;;;;;;;AAc3C,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;IAED,MAAM,UAAU,CAAC,GAAiC,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC7B;AAgED;;AAEG;IACH,UAAU,CACR,MAAS,EACT,OAAqB,EAAA;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC9C;AA6BD;;AAEG;IACH,OAAO,CACL,MAAS,EACT,OAAqB,EAAA;QAErB,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC3C;AAID;;;;;AAKG;AACH,IAAA,MAAM,CACJ,MAAyE,EAAA;QAEzE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACjC;IAID,MAAM,MAAM,CAAC,IAAY,EAAA;;;;AAIvB,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAED,IAAA,MAAM,UAAU,CAAC,EAAmB,EAAE,IAAY,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2ChD,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;IACD,MAAM,UAAU,CAAC,KAAe,EAAA;;;;;;;;;;AAU9B,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AA8BD;;;;AAIG;IACH,MAAM,CACJ,gBAEoC,EACpC,sBAAwD,EAAA;QAExD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;KACnE;AAID;;;;;AAKG;AACH,IAAA,UAAU,CACR,QAS4B,EAAA;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KACvC;AAID;;;;;AAKG;AACH,IAAA,OAAO,CACL,QAS4B,EAAA;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KACpC;AAID;;;AAGG;AACH,IAAA,KAAK,CAAC,OAAiC,EAAA;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KACjC;AAID;;;AAGG;AACH,IAAA,OAAO,CACL,KAA4D,EAAA;QAE5D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACjC;AAID;;AAEG;AACH,IAAA,IAAI,CAAC,OAAiC,EAAA;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAChC;AAID;;AAEG;AACH,IAAA,MAAM,CACJ,KAA4D,EAAA;QAE5D,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAChC;;AAgBD;;;;AAIG;AACH,IAAA,YAAY,CAAC,OAAiC,EAAA;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;KACxC;AAID;;;;AAIG;AACH,IAAA,cAAc,CACZ,KAA4D,EAAA;QAE5D,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KACxC;AAID;;;;;;;;;AASG;AACH,IAAA,SAAS,CAAC,GAAU,EAAA;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KACjC;AAID;;;AAGG;AACH,IAAA,OAAO,CAAC,OAA+B,EAAA;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACnC;AAID;;;AAGG;AACH,IAAA,SAAS,CACP,KAA4D,EAAA;QAE5D,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KACnC;AAID;;;;;;;;;AASG;AACH,IAAA,WAAW,CACT,EAA0B,EAAA;QAG1B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAClC;AAID;;;AAGG;AACH,IAAA,aAAa,CAAC,OAA+B,EAAA;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KACzC;AAID;;;AAGG;AACH,IAAA,eAAe,CACb,KAA4D,EAAA;QAE5D,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KACzC;AAID;;;AAGG;IACH,KAAK,CAAC,KAAa,EAAE,UAAkB,EAAA;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;KAC3C;AAID;;;;;AAKG;IACH,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;KAC1B;AAID;;AAEG;AACH,IAAA,SAAS,CACP,UAAoC,EACpC,YAAoB,EACpB,KAAsB,EAAA;AAEtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;KAC7D;AAID;;AAEG;AACH,IAAA,SAAS,CACP,UAAoC,EACpC,YAAoB,EACpB,KAAsB,EAAA;AAEtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;KAC7D;AAID;;AAEG;AACH,IAAA,MAAM,MAAM,GAAA;;;;;;;;;;;;AAYV,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;IAID,MAAM,KAAK,CAAC,EAAmB,EAAA;;;;;;;AAO7B,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;EAEF;AAv3BqB,cAAc,GAAA,UAAA,CAAA;AADnC,IAAA,cAAc,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;;AAC1B,CAAA,EAAA,cAAc,CAu3BnC,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;AC15BD,MAAO,YAAa,SAAQ,YAAY,CAAA;AAAG,CAAA;AAEhD,CAAC;AAAA,CAAC,EAAE,EAAE;;MCJM,eAAe,CAAA;AACX,IAAA,SAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAE,CAAC,EAAA;IAErC,OAAO,OAAO,CAAI,MAAgB,EAAA;QAChC,IAAI,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACzC,OAAO,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SAC9C;AAGD,QAAA,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,MAAM,QAAQ,GAAG,IAAK,MAAc,CAAC,GAAG,UAAU,CAAC,CAAC;QACpD,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAChD,QAAA,OAAO,QAAQ,CAAC;KACjB;IAED,OAAO,MAAM,CAAI,MAAiC,EAAA;AAChD,QAAA,OAAO,IAAI,KAAK,CACd,EAAE,EACF;AACE,YAAA,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAI;gBACnB,IAAI,QAAQ,GACV,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AACrC,oBAAA,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAClC,gBAAA,OAAO,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,UAAU;sBAC3C,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnC,sBAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;aACxB;YACD,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,KAAI;gBAC1B,IAAI,QAAQ,GACV,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AACrC,oBAAA,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAClC,gBAAA,QAAQ,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;AAC3B,gBAAA,OAAO,IAAI,CAAC;aACb;AACF,SAAA,CACG,CAAC;KACR;;AAGF,CAAC;AAAA,CAAC,EAAE,EAAE;;AChCA,MAAM,gBAAgB,GAAG,CAC9B,QAAiC,EACjC,OAAuD,KACzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCd,IAAA,QAAQ,KAAK,CAAC,EAAE;AAClB,CAAC,CAAC;AAED,CAAC;AAAA,CAAC,EAAE,EAAE;;AChDP,MAAMC,KAAG,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAI7D,CAAC;AAAA,CAAC,EAAE,EAAE;;ACLP;AACA;MAUa,mBAAmB,CAAA;AAG9B,IAAA,WAAA,CAAoB,OAAsC,EAAA;QAAtC,IAAO,CAAA,OAAA,GAAP,OAAO,CAA+B;QAFlD,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAS,CAAA,SAAA,GAAsB,EAAE,CAAC;KACoB;AAG9D,IAAA,uBAAuB,CACrB,QAA0D,EAAA;QAE1D,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;AAC1C,YAAA,OAAO,CAAC,IAAI,CAAC,CAAA,oDAAA,CAAsD,CAAC,CAAC;YACrE,OAAO;SACR;QAED,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,CAAC,IAAI,CACV,CAAA,yDAAA,CAA2D,CAC5D,CAAC;YACF,OAAO;SACR;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAClC,CAAC;AAEF,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAExB,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBAE5B,QAAQ,CAAC,IAAI,CACX,cAAc,EACd,IAAI,CAAC,OAAO,CAAC,QAAQ,CACtB,CAAC;aACH;iBAAM;gBACL,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAErC,oBAAA,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,6BAA6B,CAChE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAClC,EACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CACtB,CAAC;iBACH;qBAAM;AAEL,oBAAA,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CACvD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAClC,EACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CACtB,CAAC;iBACH;aACF;YAGD,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAG;AACxC,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpB,aAAC,CAAC,CAAC;SACJ;KACF;AAID,IAAA,GAAG,CAAC,QAAyB,EAAA;AAE3B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC/B;AAID,IAAA,MAAM,CAAC,QAAyB,EAAA;AAE9B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,QAAQ,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;AAE/B,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,YAAA,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;AAE/D,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;YAElC,IAAI,WAAW,EAAE;gBACf,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAClC,EACD,QAAQ,CACT,CAAC;aACH;iBAAM;AACL,gBAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBACxB,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,6BAA6B,CAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAClC,EACD,QAAQ,CACT,CAAC;iBACH;qBAAM;oBACL,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,oBAAoB,CACzD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAClC,EACD,QAAQ,CACT,CAAC;iBACH;aACF;SACF;KACF;AAIO,IAAA,MAAM,CAAC,IAAS,EAAA;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AAG5C,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAG;AAEhC,YAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACpB,IAAI,MAAM,EAAE;AACV,oBAAA,MAAM,CAAC,GAAG,CAAC,MAAK;AACd,wBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,qBAAC,CAAC,CAAC;iBACJ;qBAAM;AACL,oBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACrB;aACF;AACH,SAAC,CAAC,CAAC;KACJ;AAEF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;MClIM,cAAc,CAAA;AAEzB,IAAA,WAAA,CAAoB,IAAkB,EAAA;QAAlB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAc;QAD9B,IAAY,CAAA,YAAA,GAA4C,EAAE,CAAC;AAEjE,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;YAE9B,IAAI,CAAC,IAAI,EAAE,CAAC;SAEb;KACF;IAGO,IAAI,GAAA;AAEV,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAC3B,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CACtD;SACF,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW;YACvB,OAAO,CAAC,IAAI,CACV,4BAA4B,EAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,CAAU,OAAA,EAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA,CACrD,CAAC;AAEJ,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW;YACvB,OAAO,CAAC,IAAI,CACV,6BAA6B,EAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAU,OAAA,EAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA,CACvD,CAAC;AAIJ,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AAC1D,YAAA,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;AAC9B,SAAA,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,MAAK;gBAI9B,OAAO,CAAC,IAAI,CACV,CAAA,sCAAA,EAAyC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAa,UAAA,EAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA,CAC1F,CAAC;AACJ,aAAC,CAAC,CAAC;SACJ;AAKD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;AACrE,YAAA,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ;AAChC,SAAA,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAK;gBAIvC,OAAO,CAAC,IAAI,CACV,CAAA,wCAAA,EAA2C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAU,OAAA,EAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,CAAA,CAClG,CAAC;AACJ,aAAC,CAAC,CAAC;SACJ;KAGF;AAID;;;;;;AAMG;AACH,IAAA,mBAAmB,CACjB,aAAuB,EACvB,aAAkB,EAClB,OAAoC,EAAA;AAEpC,QAAA,OAAO,GAAG,OAAO,IAAK,EAAU,CAAC;AAGjC,QAAA,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAC1C,MAAM,SAAS,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAEtE,QAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACxB,YAAA,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAC1B,gBAAA,MAAM,IAAI,KAAK,CACb,yDAAyD,SAAS,CAAA,CAAE,CACrE,CAAC;aACH;SACF;AAGD,QAAA,OAAO,IAAI,UAAU,CAAC,QAAQ,IAAG;YAG/B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;gBAClC,OAAO,CAAC,KAAK,CAAC,CAAA;;;;;;;AAOb,QAAA,CAAA,CAAC,CAAC;AACH,gBAAA,OAAO,MAAK;AAEZ,iBAAC,CAAC;aACH;AAED,YAAA,IAAI,QAAgB,CAAC;YAErB,IAAI,WAAW,EAAE;AACf,gBAAA,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EACzB,WAAW,CACZ,CAAC;aACH;iBAAM;AACL,gBAAA,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;sBAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,sBAAsB,CAC/C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EACzB,SAAS,EACT,QAAQ,EACR,aAAa,CACd;sBACD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EACzB,SAAS,EACT,aAAa,CACd,CAAC;aACP;AAED,YAAA,MAAM,cAAc,GAAkC;gBACpD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ;gBACR,QAAQ;gBACR,WAAW;aACZ,CAAC;YAGF,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;gBACpC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,IAAI,mBAAmB,CACvD,cAAc,CACf,CAAC;aACH;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEnB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAEpD,YAAA,OAAO,MAAK;AACV,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACxB,aAAC,CAAC;AACJ,SAAC,CAAC,CAAC;KACJ;AAKD,IAAA,wBAAwB,CAAC,aAAuB,EAAA;QAC9C,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE;AACrD,YAAA,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,YAAY,CACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EACzB,SAAS,CACV;AACF,SAAA,CAAC,CAAC;KACJ;AAKD;;;;;;;;AAQG;IACH,sBAAsB,CACpB,MAAS,EACT,OAAqC,EAAA;QAErC,MAAM,OAAO,GAAG,YAAY,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACpD,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;KACtE;AAID,IAAA,wBAAwB,CAAC,WAAmB,EAAA;QAC1C,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE;YAC9C,WAAW;AACZ,SAAA,CAAC,CAAC;KACJ;AAIO,IAAA,aAAa,CAAC,OAAsC,EAAA;AAC1D,QAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,CAAA,EAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAI,CAAA,EAAA,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAA,CAAA,EAAI,OAAO,CAAC,QAAQ,CAAA,CAAA,EAAI,OAAO,CAAC,WAAW,CAAA,CAAE,CAAC;KACpH;AAEF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;AC3NP,MAAM,qBAAqB,GAAG,GAAG,CAAC;MAErB,cAAc,CAAA;AAEzB,IAAA,WAAA,CAAoB,IAAkB,EAAA;QAAlB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAc;QAD9B,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAEhB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;;;SAI/B;KACF;IAGO,IAAI,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwJX;IAKO,cAAc,CACpB,gBAA0B,EAC1B,QAAiB,EACjB,mBAAqC,EACrC,WAAoB,EACpB,eAAqB,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwEtB;IAIM,qBAAqB,CAC1B,gBAA0B,EAC1B,WAA6B,EAAA;QAE7B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;YAClC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAEzD,YAAA,OAAO,CAAC,IAAI,CACV,yCAAyC,SAAS,CAAA,iBAAA,CAAmB,CACtE,CAAC;YACF,OAAO;SACR;QACD,IAAI,CAAC,cAAc,CAAC,gBAAuB,EAAE,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;KACnE;AAIM,IAAA,6BAA6B,CAClC,gBAAyC,EACzC,QAAyC,EACzC,WAA6B,EAAA;QAE7B,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;YAClC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAEzD,OAAO,CAAC,IAAI,CACV,CAAA,+CAAA,EACE,QACF,CAAa,UAAA,EAAA,SAAS,CAAmB,iBAAA,CAAA,CAC1C,CAAC;YACF,OAAO;SACR;AAED,QAAA,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACvB,YAAA,QAAQ,CAAC,OAAO,CAAC,eAAe,IAAG;gBACjC,IAAI,CAAC,cAAc,CACjB,gBAAgB,EAChB,eAAsB,EACtB,WAAW,CACZ,CAAC;AACJ,aAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,QAAe,EAAE,WAAW,CAAC,CAAC;SACrE;KACF;IAIM,kBAAkB,CAAC,WAAmB,EAAE,UAAe,EAAA;AAC5D,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;KACtE;AAIM,IAAA,0BAA0B,CAAC,WAAqB,EAAA;QACrD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE;AAClC,YAAA,OAAO,CAAC,IAAI,CACV,8CAA8C,SAAS,CAAA,iBAAA,CAAmB,CAC3E,CAAC;YACF,OAAO;SACR;AAED,QAAA,IAAI,CAAC,cAAc,CACjB,WAAkB,EAClB,KAAK,CAAC,EACN,KAAK,CAAC,EACN,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CACpE,CAAC;KACH;AAEF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;MCzUe,gBAAgB,CAAA;AACpC,IAAA,WAAA,CAAsB,GAAoB,EAAA;QAApB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAiB;KAAI;IAEtC,SAAS,GAAA;KAEhB;AAOF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;MCbM,oBAAoB,CAAA;AAI/B,IAAA,WAAA,CAAmB,IAAY,EAAA;QAAZ,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAFvB,IAAS,CAAA,SAAA,GAA2B,EAAE,CAAC;QAG7C,IAAI,CAAC,WAAW,GAAI,MAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC;KACpE;IAED,EAAE,CAAC,SAAiB,EAAE,QAA8C,EAAA;QAClE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AAC9B,YAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SAChC;QACD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,CAAA,GAAA,EAAM,SAAS,CAAA,CAAA,CAAG,CAAC;QAEtD,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAC7C,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACzB;aAAM;AACL,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACtB;KACF;IAED,GAAG,CAAC,KAAa,EAAE,QAA+C,EAAA;AAChE,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QAEnC,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAClD,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAClC,CAAC;SACH;aAAM;AACL,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC9B;QACD,MAAM,cAAc,GAAG,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,CAAA,GAAA,EAAM,KAAK,CAAA,CAAA,CAAG,CAAC;QAKnD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;KAC3D;AAED,IAAA,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW,EAAA;QAChC,MAAM,SAAS,GAAG,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,CAAA,GAAA,EAAM,KAAK,CAAA,CAAA,CAAG,CAAC;QAG9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;KAC3C;AACF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;MCpDM,kBAAkB,CAAA;AAM7B,IAAA,WAAA,CAAmB,WAAmB,EAAA;QAAnB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;AAL9B,QAAA,IAAA,CAAA,UAAU,GAAkD;AAClE,YAAA,GAAG,EAAE,IAAI,oBAAoB,CAAC,GAAG,CAAC;SACnC,CAAC;QACM,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;KAIzB;AAED,IAAA,EAAE,CAAC,SAAiB,EAAA;QAIlB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;YAC/B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,oBAAoB,CACnD,SAAS,CACV,CAAC;SACH;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;KACnC;IAED,EAAE,CAAC,KAAa,EAAE,QAA8C,EAAA;AAU9D,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KAC1C;AAED,IAAA,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW,EAAA;AAIhC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;KAC3C;AACF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACtCP;;;AAGG;AACG,MAAO,mBAAoB,SAAQ,gBAAgB,CAAA;IACvD,QAAQ,GAAA;AACN,QAAA,OAAO,KAAK,CAAC;KACd;IACD,mBAAmB,GAAA;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;AACD,IAAA,WAAA,CAAsB,GAAoB,EAAA;QACxC,KAAK,CAAC,GAAG,CAAC,CAAC;QADS,IAAG,CAAA,GAAA,GAAH,GAAG,CAAiB;QAI1C,IAAe,CAAA,eAAA,GAAsC,EAAE,CAAC;QACxD,IAAU,CAAA,UAAA,GAAyC,EAAE,CAAC;KAHrD;AAKD,IAAA,IAAI,EAAE,GAAA;QAEJ,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAI;AACtC,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;AAClC,gBAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;aACvC;YACD,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAE1D,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,GAAU,CAAC;AAC5C,YAAA,OAAO,GAAG,CAAC;AACb,SAAC,EAAS;QAEV,OAAO,KAAK,CAAC,CAAC;KACf;AACD,IAAA,IAAI,MAAM,GAAA;;;;;;;;;;;;QAaR,OAAO,KAAK,CAAC,CAAC;KACf;AACF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;MCvDM,aAAa,CAAA;IAIxB,WAAmB,CAAA,IAAY,EAAS,WAAmB,EAAA;QAAxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QAAS,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QAHnD,IAAK,CAAA,KAAA,GAAU,EAAE,CAAC;AAClB,QAAA,IAAA,CAAA,OAAO,GAAoB,IAAI,GAAG,EAAE,CAAC;KAEkB;IAE/D,EAAE,CAAC,KAAa,EAAE,QAAsC,EAAA;AACtD,QAAA,IAAI,KAAK,KAAK,YAAY,EAAE;AAC1B,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;SAClD;KACF;IAED,IAAI,CAAC,KAAa,EAAE,IAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KAC1D;AAED,IAAA,EAAE,CAAC,IAAY,EAAA;QACb,OAAO;AACL,YAAA,IAAI,EAAE,CAAC,KAAa,EAAE,IAAU,KAAI;AAClC,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;iBAC9D;aACF;SACF,CAAC;KACH;IAED,QAAQ,CAAC,MAAkB,EAAE,IAAY,EAAA;QACvC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;SAC9B;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC9B;IAED,SAAS,CAAC,MAAkB,EAAE,IAAY,EAAA;AACxC,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACpB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE;AAC/B,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACzB;SACF;KACF;AAED,IAAA,SAAS,CAAC,MAAkB,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC1B;AAED,IAAA,YAAY,CAAC,MAAkB,EAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC7B;AACF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;MCjDM,UAAU,CAAA;IAGrB,WAAmB,CAAA,EAAU,EAAU,SAAwB,EAAA;QAA5C,IAAE,CAAA,EAAA,GAAF,EAAE,CAAQ;QAAU,IAAS,CAAA,SAAA,GAAT,SAAS,CAAe;QAFvD,IAAS,CAAA,SAAA,GAAmB,EAAE,CAAC;AAGrC,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAChC;IAED,EAAE,CAAC,KAAa,EAAE,QAA8B,EAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtC;IAED,GAAG,CAAC,KAAa,EAAE,QAA+B,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QAEnC,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,CAAC;SACzF;aAAM;AACL,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;IAED,IAAI,CAAC,KAAa,EAAE,IAAU,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3D;KACF;AAED,IAAA,IAAI,CAAC,IAAY,EAAA;QACf,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACrC;AAED,IAAA,KAAK,CAAC,IAAY,EAAA;QAChB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACtC;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AACF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;MC7CM,UAAU,CAAA;AAKrB,IAAA,WAAA,CAAmB,WAAmB,EAAA;QAAnB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;AAJ9B,QAAA,IAAA,CAAA,UAAU,GAAe;YAC/B,GAAG,EAAE,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC;SAC9C,CAAC;KAEwC;AAE1C,IAAA,EAAE,CAAC,SAAiB,EAAA;QAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SAC7E;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;KACnC;IAED,EAAE,CAAC,KAAa,EAAE,QAAsC,EAAA;AACtD,QAAA,IAAI,KAAK,KAAK,YAAY,EAAE;AAC1B,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;SACjD;KACF;IAED,IAAI,CAAC,KAAa,EAAE,IAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACxC;AAED,IAAA,OAAO,CAAC,EAAU,EAAE,SAAA,GAAoB,GAAG,EAAA;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACtC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAkB,KAAI;AACzC,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzB,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,MAAM,CAAC;KACf;AACF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACjCP,MAAM,gBAAgB,CAAA;IAGpB,WAAoB,CAAA,YAAwB,EAAS,WAAmB,EAAA;QAApD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAY;QAAS,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QAFhE,IAAS,CAAA,SAAA,GAAmB,EAAE,CAAC;AAGrC,QAAA,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;KAClE;IAED,EAAE,CAAC,KAAa,EAAE,QAA8B,EAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AAC1B,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtC;IAED,GAAG,CAAC,KAAa,EAAE,QAA+B,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QAEnC,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC,CAAC;SACzF;aAAM;AACL,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;IAED,IAAI,CAAC,KAAa,EAAE,IAAU,EAAA;QAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpC,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3D;KACF;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,IAAI,CAAC,IAAY,EAAA;AACf,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;AAED,IAAA,KAAK,CAAC,IAAY,EAAA;AAChB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC/B;AACF,CAAA;AAEK,SAAU,MAAM,CAAC,MAAkB,EAAA;AACvC,IAAA,OAAO,CAAC,SAAA,GAAoB,GAAG,KAAsB;AACnD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACzD,OAAO,IAAI,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAChE,KAAC,CAAC;AACJ,CAAC;AAGA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACvDN,CAAC;AAAA,CAAC,EAAE,EAAE;;ACCP;;;AAGG;AACG,MAAO,oBAAqB,SAAQ,gBAAgB,CAAA;IACxD,QAAQ,GAAA;AACN,QAAA,OAAO,MAAM,CAAC;KACf;AAGD,IAAA,WAAA,CAAsB,GAAoB,EAAA;QACxC,KAAK,CAAC,GAAG,CAAC,CAAC;QADS,IAAG,CAAA,GAAA,GAAH,GAAG,CAAiB;KAEzC;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,UAAiB,CAAC;KAC1B;;AAED,IAAA,IAAI,EAAE,GAAA;AACJ,QAAA,OAAO,MAAa,CAAC;KACtB;IAED,mBAAmB,GAAA;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;AAEF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;AC1BP;;;;AAIG;AACG,MAAO,wBAAyB,SAAQ,gBAAgB,CAAA;IAC5D,QAAQ,GAAA;AACN,QAAA,OAAO,WAAW,CAAC;KACpB;AACD,IAAA,WAAA,CAAsB,GAAoB,EAAA;QACxC,KAAK,CAAC,GAAG,CAAC,CAAC;QADS,IAAG,CAAA,GAAA,GAAH,GAAG,CAAiB;KAEzC;AAED,IAAA,IAAI,MAAM,GAAA;;;AAGR,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;;AAED,IAAA,IAAI,EAAE,GAAA;AACJ,QAAA,OAAO,EAAE,CAAC;KACX;IAED,mBAAmB,GAAA;AACjB,QAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;AACF,CAAA;AAIA,CAAC;AAAA,CAAC,EAAE,EAAE;;AChCN,CAAC;AAAA,CAAC,EAAE,EAAE;;ACWP;;;;;;AAMG;MACU,YAAY,CAAA;AAsCvB,IAAA,WAAA,CAAmB,GAAoB,EAAA;QAApB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAiB;AApC9B,QAAA,IAAA,CAAA,cAAc,GAAG;YACxB,KAAK;YACL,MAAM;YACN,KAAK;YACL,QAAQ;YACR,OAAO;YACP,SAAS;YACT,MAAM;SACP,CAAC;AA6BA,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AACvC,QAAA,GAAG,CAAC,YAAY;YACd,OAAO,CAAC,GAAG,CAAC,CAAA,0BAAA,EAA6B,IAAI,CAAC,QAAQ,CAAE,CAAA,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;KACxC;IAIO,eAAe,GAAA;QACrB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,0BAA0B,EAAE;AAChD,YAAA,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC3C;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,gCAAgC,EAAE;AACtD,YAAA,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1C;AAOD,QAAA,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC/C;AAIM,IAAA,OAAO,CAAC,SAAkB,EAAA;AAC/B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;QACzB,IAAI,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,EAAE,CAAC;AACrC,QAAA,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC;AAC7B,QAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC1D,IAAI,MAAM,GAAG,CAAA,YAAA,CAAc,CAAC;AAC5B,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,MAAM,GAAG,EAAE,CAAC;SACb;AACD,QAAA,MAAM,IAAI,GAAG,CAAG,EAAA,GAAG,CAAC,MAAM,CAAG,EAAA,QAAQ,CAAI,CAAA,EAAA,MAAM,CAAG,EAAA,GAAG,EAAE,CAAC;AAExD,QAAA,OAAO,IAAI,GAAG,CAAC,IAAI,CAAQ,CAAC;KAC7B;AAEF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACzGP;MAoEa,eAAe,CAAA;IAM1B,OAAO,UAAU,CAAC,MAAc,EAAA;AAE9B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;KAEtB;IACM,OAAO,aAAa,CAAC,eAAoB,EAAA;QAC9C,MAAM,GAAG,GAAG,YAAY,CAAC,oBAAoB,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AACrE,QAAA,QACE,eAAe,CAAC,OAAO,CAAC,oBAAoB,CAAC;AAC7C,YAAA,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,EACjC;KACH;AAoFD,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC7B;AACD,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;KAC7B;AAWD,IAAA,IAAI,OAAO,GAAA;QACT,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YACjC,OAAO,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,IAAqC,CAAC,IAAI,CAAC;SAClE;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC;KACnC;AAED,IAAA,IAAI,WAAW,GAAA;QACb,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YACjC,OAAO,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,IAAqC,CAAC,QAAQ,CAAC;SACtE;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC;KACnC;AAED,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YACjC,OAAO,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,IAAqC,CAAC,SAAS,CAAC;SACvE;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC;KACnC;AAED,IAAA,IAAI,KAAK,GAAA;QACP,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;YACjC,OAAO,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,IAAqC,CAAC,EAAE,CAAC;SAChE;AACD,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI,CAAC;KACnC;IAMD,WACU,CAAA,cAAmE,EACnE,QAEgD,EAAA;QAHhD,IAAc,CAAA,cAAA,GAAd,cAAc,CAAqD;QACnE,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAEwC;QAlI1D,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;AAClC;;;AAGG;QACI,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAGd,QAAA,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAGzE;;;AAGG;QACa,IAAmB,CAAA,mBAAA,GAAG,EAAE,CAAC;QAIxB,IAAuB,CAAA,uBAAA,GAAG,EAAE,CAAC;QAI7B,IAA0B,CAAA,0BAAA,GAAG,EAAE,CAAC;QAIjC,IAAY,CAAA,YAAA,GAGtB,EAAE,CAAC;AAID,QAAA,IAAA,CAAA,2BAA2B,GAAG;YACpC,MAAM,CAAC,SAAS,CAAC,UAAU;YAC3B,MAAM,CAAC,SAAS,CAAC,QAAQ;YACzB,MAAM,CAAC,SAAS,CAAC,UAAU;YAC3B,MAAM,CAAC,SAAS,CAAC,UAAU;SAC5B,CAAC;AAGM,QAAA,IAAA,CAAA,oBAAoB,GAAG;YAC7B,GAAG,IAAI,CAAC,2BAA2B;YACnC,MAAM,CAAC,SAAS,CAAC,MAAM;SACxB,CAAC;QAGK,IAAU,CAAA,UAAA,GAAgB,EAAS,CAAC;QAyBnC,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;AAmdtB,QAAA,IAAA,CAAA,yBAAyB,GAAG,CAElC,EACA,SAAS,EACT,SAAS,EACT,MAAM,EACN,GAAG,EACH,SAAS,GAOV,KAAO;YAEN,MAAM,UAAU,GAAG,MAAK;;AACtB,gBAAA,IACE,SAAS,CAAC,OAAO,CAAC,2BAA2B,CAAC;AAC9C,oBAAA,CAAA,EAAG,GAAG,CAAC,WAAW,IAAI,SAAS,CAAA,CAAE,EACjC;AACA,oBAAA,OAAO,SAAS,CAAC;iBAClB;gBACD,OAAO,cAAc,SAAS,CAAA;AAAvB,oBAAA,WAAA,GAAA;;wBA8BL,IAA8B,CAAA,EAAA,CAAA,GAAG,GAAG,CAAC;qBAGtC;AA7BS,oBAAA,SAAA,EAAA,GAAA,OAAO,CAAC,YAAY,EAAA,EAAA,GAGpB,OAAO,CAAC,2BAA2B,EAGnC,EAAA,GAAA,OAAO,CAAC,uBAAuB,OAE/B,OAAO,CAAC,oBAAoB,EAkBnC,EAAA,GAAA,OAAO,CAAC,oBAAoB,CAAA,EAAA;;6BA1BtB,IAAsB,CAAA,EAAA,CAAA,GAAG,SAAH,CAAa,EAAA;;6BAGnC,IAAqC,CAAA,EAAA,CAAA,GAAG,GAAG,GAAG,CAAC,WAAW,CAAI,CAAA,EAAA,SAAS,CAAE,CAApC,CAAqC,EAAA;;6BAG1E,IAAiC,CAAA,EAAA,CAAA,GAAG,SAAH,CAAa,EAAA;6BAE9C,IAA8B,CAAA,EAAA,CAAA,GAAG,GAAH,CAAO,EAAA;AAE5C,oBAAA,OAAO,uBAAuB,CAAC,GAAG,GAAG,EAAE,EAAA;wBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;AACvD,wBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAEf,wBAAA,IACE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;4BAC1B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,uBAAuB,EAClD;;4BAEA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;yBACzD;AACD,wBAAA,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;qBACtB;AACD,oBAAA,WAAW,gBAAgB,GAAA;AACzB,wBAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;qBACvC;iBAIF,CAAC;AACJ,aAAC,CAAC;AAEF,YAAA,MAAM,kBAAkB,GAAG,UAAU,EAAE,CAAC;AAoBxC,YAAA,OAAO,kBAAkB,CAAC;AAC5B,SAAC,CAAC;AAMM,QAAA,IAAA,CAAA,8BAA8B,GAAG,CAAC,EACxC,YAAY,EACZ,MAAM,EACN,GAAG,EACH,SAAS,GAMV,KAAI;YACH,MAAM,OAAO,GAAG,EAAE,CAAC;AAEnB,YAAA,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;AACjD,gBAAA,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;gBAEpC,IAAI,CAAC,SAAS,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,CAAA,MAAA,EAAS,GAAG,CAA8B,2BAAA,EAAA,GAAG,CAAC,WAAW,CAAA;;;;AAItE,QAAA,CAAA,CAAC,CAAC;iBACJ;AAED,gBAAA,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAC1B,SAAS,CACV,CAAC;AAMF,gBAAA,SAAS,GAAG,SAAS,IAAI,GAAG,CAAC;AAC7B,gBAAA,SAAS,CAAC,OAAO,CAAC,uBAAuB,CAAC,GAAG,SAAS,CAAC;AAEvD,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,yBAAyB,CAAC;oBACjD,SAAS;oBACT,SAAS;oBACT,MAAM;oBACN,GAAG;oBACH,SAAS;AACV,iBAAA,CAAC,CAAC;AACH,gBAAA,OAAO,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;aAClC;AACD,YAAA,OAAO,OAAO,CAAC;AACjB,SAAC,CAAC;KA7hBE;IAIG,MAAM,IAAI,CAAC,OAAuD,EAAA;QACvE,MAAM,EAAE,+BAA+B,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;AAE1D,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAACA,KAAG,CAAC,CAAC;AA+BjC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;;;SAIzC;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;gBACpB,OAAO,CAAC,KAAK,CACX,CAAA,0DAAA,CAA4D,EAC5D,KAAK,EACL,IAAI,CACL,CAAC;aACH;AACD,YAAA,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;SACvC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE;AACxD,YAAA,IAAI,CAAC,IAAI,GAAG,gCAAgC,CAAC;SAC9C;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACvC,YAAA,OAAO,CAAC,KAAK,CACX,CAAA,gBAAA,EAAmB,IAAI,CAAC,WAAW,CAAA,+DAAA,CAAiE,EACpG,KAAK,EACL,IAAI,CACL,CAAC;;;SAIH;QAID,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE;AACjC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACrD;aAAM,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AAC3C,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,SAAS,CAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CACI,CAAC;SAC5B;AAID,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACnC,YAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AAC9B,gBAAA,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;aACrC;AAED,YAAA,KAAK,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC;SACvC;AAID,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;AAClD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;AAClD,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;AACxD,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;AAC1D,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;AAExD,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG;AACrB,YAAA,IAAI,MAAM,IAAI,CAAC,kCAAkC,CAC/C,MAAM,CAAC,SAAS,CAAC,MAAM,CACxB,CAAC;AACF,YAAA,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;SACxB,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG;AACxB,YAAA,IAAI,MAAM,IAAI,CAAC,kCAAkC,CAC/C,MAAM,CAAC,SAAS,CAAC,UAAU,CAC5B,CAAC;AACF,YAAA,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;SAC3B,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG;AACtB,YAAA,IAAI,MAAM,IAAI,CAAC,kCAAkC,CAC/C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAC1B,CAAC;AACF,YAAA,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS;SACzB,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG;AACxB,YAAA,IAAI,MAAM,IAAI,CAAC,kCAAkC,CAC/C,MAAM,CAAC,SAAS,CAAC,UAAU,CAC5B,CAAC;AACF,YAAA,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;SAC3B,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG;AACzB,YAAA,IAAI,MAAM,IAAI,CAAC,kCAAkC,CAC/C,MAAM,CAAC,SAAS,CAAC,UAAU,CAC5B,CAAC;AACF,YAAA,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY;SAC5B,CAAC;QAMF,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,8BAA8B,CAAC;AAC5D,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;AACvC,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,8BAA8B,CAAC;AAC7D,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;YACtC,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;AACvC,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,8BAA8B,CAAC;AAC1D,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YACnC,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ;AACrC,SAAA,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,8BAA8B,CAAC;AAC5D,YAAA,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,UAAU;AACvC,SAAA,CAAC,CAAC;AAIH,QAAA,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,2BAA2B,EAAE;AAC5D,YAAA,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;AACjD,YAAA,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;SACrD;AAED,QAAA,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,2BAA2B,EAAE;AAC5D,YAAA,MAAM,IAAI,CAAC,eAAe,CACxB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,EAC/C,aAAa,CACd,CAAC;SACH;AAID,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,2BAA2B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;SAqBvE;AAID,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YACzB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;;;;;;YAOvD,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;SACxC;AAKD,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY;gBACf,OAAO,CAAC,IAAI,CACV,CAAmC,gCAAA,EAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAE,CAAA,CAC7D,CAAC;SACL;aAAM;AACL,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;AAC1B,gBAAA,IAAI,CAAC,YAAY;oBACf,OAAO,CAAC,IAAI,CACV,CAA0C,uCAAA,EAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAE,CAAA,CACnE,CAAC;aACL;iBAAM;AACL,gBAAA,IAAI,CAAC,YAAY;oBACf,OAAO,CAAC,IAAI,CACV,CAAmC,gCAAA,EAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAE,CAAA,CACtD,CAAC;aACL;SACF;AAID,QAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;AACrC,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9C,SAAC,CAAC,CAAC;KACJ;IAIO,sBAAsB,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkF5B,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAID,IAAA,IAAI,MAAM,GAAA;QAER,OAAO,eAAe,CAAC,MAAM,CAAC;QAE9B,OAAO;KACR;IAID,WAAW,GAAA;;;;;;;;;;;;;;AAcT,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;AAID,IAAA,aAAa,CAAC,GAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA8BhB;AAID,IAAA,IAAI,0BAA0B,GAAA;AAC5B,QAAA,QACE,IAAI,CAAC,IAAI,KAAK,2BAA2B;YACzC,IAAI,CAAC,IAAI,KAAK,0BAA0B;AACxC,YAAA,IAAI,CAAC,IAAI,KAAK,gCAAgC,EAC9C;KACH;IA6IO,MAAM,kCAAkC,CAC9C,SAA2B,EAAA;QAE3B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;QAClE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;YAC3B,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACjC,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;KACR;AAEO,IAAA,MAAM,+BAA+B,CAC3C,SAA2B,EAC3B,GAAG,GAAG,EAAE,EAAA;AAER,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAEtD,CAAC;AAIJ,QAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAE1B,YAAA,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAE9B,MAAM,YAAY,GAAG,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAGlD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CACjC,IAAI,CAAC,8BAA8B,CAAC;gBAClC,YAAY;gBACZ,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,GAAG,EAAE,IAAI;gBACT,SAAS;AACV,aAAA,CAAC,CACH,CAAC;AAEF,YAAA,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAExC,MAAM,GAAG,CAAC,+BAA+B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;SAC3D;AACD,QAAA,OAAO,GAAiB,CAAC;KAC1B;AAID,IAAA,qBAAqB,CAAC,SAA2B,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;KAChD;AAIO,IAAA,wBAAwB,CAAC,SAA2B,EAAA;AAC1D,QAAA,OAAO,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;KACnD;IAID,MAAM,CACJ,IAA+B,EAC/B,OAIC,EAAA;QAED,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,EAAS,CAAC;SACrB;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE7C,QAAA,MAAM,2BAA2B,GAC/B,OAAO,CAAC,2BAA2B,IAAI,EAAE,CAAC;AAE5C,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;AACvD,YAAA,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;SAC9B;AAED,QAAA,IAAI,OAAO,EAAE,aAAa,EAAE;YAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,UAAU,GAAW,EAAE,CAAC;AAE5B,YAAA,IAAI,SAAS,KAAK,gBAAgB,EAAE;AAClC,gBAAA,MAAM,QAAQ,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;AAChD,gBAAA,MAAM,MAAM,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACtC,UAAU,GAAG,MAAM,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aACrD;YAED,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE;gBAC7D,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC;aAC/D;AACD,YAAA,MAAM,WAAW,GAAG,SAAS,IAAI,UAAU,GAAG,CAAA,CAAA,EAAI,UAAU,CAAE,CAAA,GAAG,EAAE,CAAC,CAAC;AACrE,YAAA,MAAM,OAAO,GACX,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,CAAC;YACxE,IAAI,OAAO,EAAE;AAEX,gBAAA,OAAO,OAAO,CAAC;aAChB;YAED,IAAI,CAAC,UAAU,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,CAAA,oBAAA,EAAuB,SAAS,CAAqB,kBAAA,EAAA,IAAI,CAAC,WAAW,CAAA;;yEAEpB,SAAS,CAAA;;AAEzE,QAAA,CAAA,CAAC,CAAC;aACJ;YAED,MAAM,gBAAgB,GAAG,IAAK,UAAkB,CAC9C,GAAG,2BAA2B,CAC/B,CAAC;YACF,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC;AACnE,gBAAA,gBAAgB,CAAC;AAEnB,YAAA,OAAO,gBAAgB,CAAC;SACzB;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;AAIjE,QAAA,OAAO,oBAAoB,CAAC;KAC7B;AAED;;AAEG;AACH,IAAA,aAAa,CAAI,IAA+B,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;KACpD;IAGD,yBAAyB,GAAA;QACvB,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,CAAA;;;;;;;AAOf,MAAA,CAAA,CAAC,CAAC;SACJ;KACF;AAGD,IAAA,aAAa,CAAC,SAA2B,EAAA;QACvC,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACjC,QAAQ,SAAS;AACf,YAAA,KAAK,MAAM,CAAC,SAAS,CAAC,UAAU;AAC9B,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;AACjC,YAAA,KAAK,MAAM,CAAC,SAAS,CAAC,MAAM;AAC1B,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC9B,YAAA,KAAK,MAAM,CAAC,SAAS,CAAC,QAAQ;AAC5B,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC/B,YAAA,KAAK,MAAM,CAAC,SAAS,CAAC,UAAU;AAC9B,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AAClC,YAAA,KAAK,MAAM,CAAC,SAAS,CAAC,UAAU;AAC9B,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;SAClC;KACF;IAED,WAAW,CAAC,SAA2B,EAAE,OAAiB,EAAA;AACxD,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;KACvE;AAED;;;AAGG;AACH,IAAA,sBAAsB,CAAC,SAAiB,EAAA;AACtC,QAAA,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,oBAAoB,EAAE;AACrD,YAAA,MAAM,wBAAwB,GAC5B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;AAElD,YAAA,IAAI,wBAAwB,CAAC,SAAS,CAAC,EAAE;AACvC,gBAAA,OAAO,wBAAwB,CAAC,SAAS,CAAC,CAAC;aAC5C;SACF;KACF;AAED,IAAA,kBAAkB,CAAC,aAAuB,EAAA;QACxC,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AACtD,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;KAC/C;AAED,IAAA,gBAAgB,CAAC,SAA2B,EAAA;AAC1C,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,CAAe,CAAC;KACzE;AAIO,IAAA,MAAM,eAAe,CAAC,OAAY,EAAE,SAA2B,EAAA;QAMrE,KAAK,MAAM,OAAO,IAAI;AAEpB,YAAA,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;AAC1B,SAAA,EAAE;YACD,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,OAAc,CAAQ,CAAC;YAChE,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACxE,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhD,YAAA,uBAAuB,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;AAE9C,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;YACjE,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1D,YAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;SAChD;KACF;AAID,IAAA,MAAM,iBAAiB,GAAA;AAIrB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAC/C,MAAM,CAAC,SAAS,CAAC,UAAU,CAC5B,CAAC;AAEF,QAAA,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;YAC9B,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;gBACxC,MAAM,OAAO,CAAC,cAAc,CAAC;oBAC3B,UAAU,EAAE,IAAI,CAAC,iBAAiB;AAClC,oBAAA,OAAO,EAAE,IAAI;AACd,iBAAA,CAAC,CAAC;aACJ;SACF;KAIF;AACD,IAAA,MAAM,WAAW,GAAA;QACf,KAAK,MAAM,aAAa,IAAI;YAC1B,MAAM,CAAC,SAAS,CAAC,QAAQ;YACzB,MAAM,CAAC,SAAS,CAAC,UAAU;YAC3B,MAAM,CAAC,SAAS,CAAC,UAAU;YAC3B,MAAM,CAAC,SAAS,CAAC,MAAM;AACxB,SAAA,EAAE;YAKD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAU,EAAE;gBACpE,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oBAC5B,MAAM,OAAO,CAAC,cAAc,CAAC;wBAC3B,UAAU,EAAE,QAAQ,CAAC,CAAC;AACtB,wBAAA,OAAO,EAAE,QAAQ;AAClB,qBAAA,CAAC,CAAC;iBAOJ;aACF;SAKF;QAED,KAAK,MAAM,aAAa,IAAI;YAC1B,MAAM,CAAC,SAAS,CAAC,QAAQ;YACzB,MAAM,CAAC,SAAS,CAAC,UAAU;YAC3B,MAAM,CAAC,SAAS,CAAC,UAAU;AAC5B,SAAA,EAAE;YAKD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,wBAAwB,CAAC,aAAa,CAAC,EAAE;gBAC/D,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;oBACxB,MAAM,OAAO,CAAC,cAAc,CAAC;wBAC3B,UAAU,EAAE,IAAI,CAAC,CAAC;AAClB,wBAAA,OAAO,EAAE,IAAI;AACd,qBAAA,CAAC,CAAC;iBACJ;aACF;SAKF;KACF;AAID,IAAA,UAAU,CAAC,aAAqB,EAAA;QAC9B,IAAI,UAAU,GACZ,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC9C,OAAO,IAAI,KAAK,UAAU,CAAC;KAC5B;AAID,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI;AACnB,cAAE,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;cAClB,IAAI,CAAC,UAAU;AACf,kBAAE,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;kBACxB,KAAK,CAAC,CAAC;AACb,QAAA,OAAO,GAAG,CAAC;KACZ;AAID,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC;KACvC;AAID;;AAEG;AACH,IAAA,IAAW,WAAW,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;KAChC;AAID,IAAA,IAAW,YAAY,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,YAAY,IAAI,EAAE,CAAC;KACxC;AAID,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;KACnC;AAID,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;KAC/B;AAID,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;KACzB;AAID,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;KACzB;AAID,IAAA,MAAM,eAAe,GAAA;AACnB,QAAA,OAAO;;;;;;;;;;;;;;;;;;;;;AAqBL,QAAA,QAAQ,KAAK,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgInB;AAID,IAAA,MAAM,YAAY,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4BjB;AAKD,IAAA,MAAM,sBAAsB,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmF1B,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;IAKD,YAAY,GAAA;AACV,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAE1E,QAAA,KAAK,MAAM,iBAAiB,IAAI,cAAc,EAAE;AAC9C,YAAA,iBAAiB,CAAC,OAAO,CAAC,iBAAiB,CAAC;AAC1C,gBAAA,YAAY,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAClD,MAAM,OAAO,GAAG,YAAY,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;AAErE,YAAA,MAAM,WAAW,GAAmC,OAAO,CAAC,CAAC,CAAC,CAAC;YAE/D,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9C,iBAAA,OAAO,EAAE;iBACT,GAAG,CAAC,EAAE,IAAG;gBACR,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;oBACnC,OAAO,EAAE,CAAC,IAAI,CAAC;iBAChB;gBACD,OAAO,EAAE,CAAC,SAAS,CAAC;AACtB,aAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,CAAC;YAEb,IAAI,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AAC5C,gBAAA,WAAW,CAAC,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC;aAC/C;iBAAM;AACL,gBAAA,WAAW,CAAC,cAAc;oBACxB,CAAG,EAAA,qBAAqB,IAAI,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAE,CAAA;AAClE,yBAAA,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;yBACrB,KAAK,CAAC,GAAG,CAAC;AACV,yBAAA,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,KAAI;wBAClB,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;qBAChD,EAAE,EAAE,CAAC;yBACL,IAAI,CAAC,GAAG,CAAC,CAAC;aAChB;AAED,YAAA,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAG;AAC/B,gBAAA,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC;gBACtC,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACxC,gBAAA,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACzB,oBAAA,IAAI,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;AAClD,wBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7B,wBAAA,SAAS,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;qBAC1B;iBACF;AACH,aAAC,CAAC,CAAC;;;AAKD,YAAA,IAAI,CAAC,OAAO;gBACV,OAAO,CAAC,cAAc,CACpB,CAAA,+BAAA,EAAkC,WAAW,CAAC,SAAS,CAAG,CAAA,CAAA,CAC3D,CAAC;;;AAMN,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAU,IAAG;gBACpD,MAAM,YAAY,GAChB,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAElC,gBAAA,MAAM,IAAI,GAAgC,YAAY,CAAC,IAAI,CAAC;AAC5D,gBAAA,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM;AACrC,sBAAE,CAAA,CAAA,EAAI,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAA;sBAC1C,WAAW,CAAC,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gBAG1D,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE;;;;;;;;;;;;;;;iBAgBvC;AAED,gBAAA,MAAM,gBAAgB,GACpB,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,QAAQ,CAAC;gBAE3D,IAAI,gBAAgB,EAAE;oBAQpB,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;iBACrE;AACH,aAAC,CAAC,CAAC;;;AAKD,YAAA,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;;;SAItC;KACF;IAIM,iBAAiB,GAAA;AACtB,QAAA,MAAM,QAAQ,GAAsB,CAAC,IAAI,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAiC5C;AAID,IAAA,IAAW,WAAW,GAAA;;;AAGpB,QAAA,QAAQ,KAAK,CAAC,EAAE;KACjB;IAIO,aAAa,GAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwGpB;IAIO,UAAU,CAEhB,IAAiC,EACjC,YAAiC,EACjC,WAA2C,EAC3C,WAAmB,EACnB,MAAgB,EAAA;;;;;;;;;AAchB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QAGrB,MAAM,SAAS,GAAG,OAAO,cAAc,EAAE,GAAG,EAAE,GAAG,KAAI;YACnD,MAAM,QAAQ,GACZ,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK;AACjC;;AAEG;AACH,YAAA,IAAI,CAAC,aAAa,CAAC,MAAa,CAAC;AACjC;;AAEG;AACH,YAAA,cAAc,CACf,CAAC;AACJ,YAAA,IAAI,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC5D,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AAGF,QAAA,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/C,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;AACxC,cAAE,CAAG,EAAA,GAAG,CAAC,QAAQ,CAAA,EAAG,WAAW,CAAE,CAAA;cAC/B,WAAW,CAAC;QAChB,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAIhD,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;SAuBvB;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAkOrB;QAED,OAAO;AACL,YAAA,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,YAAY,CAAC,IAAI;SAC1B,CAAC;KACH;AAID;;AAEG;AACK,IAAA,UAAU,CAEhB,MAAgB,EAChB,IAAiC,EACjC,YAA2C,EAC3C,WAAmB,EAAA;QAGnB,MAAM,GAAG,GAAG,IAAI,CAAC;AAEjB,QAAA,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,EAAE,WAAW,EAAE,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,CAAG,CAAC,CAAC;AAGtE,QAAA,IAAI,OAAY,CAAC;AACjB,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;YACrB,OAAO,GAAG,MAAM,CAAC;SAClB;;;;;QAQD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;AAI7D,QAAA,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,IAAI,EAAA;gBAC3D,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,OAAO,EAAE,MAAM,KAAI;oBACrD,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,oBAAA,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oBAE/D,OAAO,CAAC,WAAW,CAAC,IAAI,CACtB,WAAW,CAAC,kBAAkB,CAC5B,MAAM,EACN,YAAY,EACZ,WAAW,CACZ,EACD,CAAC,KAAK,EAAE,YAAY,KAAI;wBACtB,IAAI,GAAG,GAAQ,YAAY,CAAC;AAC5B,wBAAA,OAAO,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;AAC9B,wBAAA,IAAI;4BACF,MAAM,IAAI,GAAG,GAAG,CAAC;AACjB,4BAAA,GAAG,GAAG,IAAIb,QAAa,CAAC,YAAY,CAClC;gCACE,IAAI,EAAE,KAAK,CAAC;gCACZ,OAAO,EAAE,KAAK,CAAQ;gCACtB,MAAM,EAAE,YAAY,CAAC,IAAI;gCACzB,GAAG,EAAE,CAAG,EAAA,GAAG,CAAC,GAAG,CAAC,MAAM,CAAA,EACpB,EAAE;iCACD,EAAA,YAAY,CAAC,IAAI,CAAG,CAAA,CAAA;AACxB,6BAAA,EACD,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AACtC,kCAAE,IAAI;kCACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EACxB,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EACzB,KAAK,CAAC,EACN,MAAM,IAAI,CACX,CAAC;4BAEF,OAAO,CAAC,GAAG,CAAC,CAAC;yBACd;wBAAC,OAAO,KAAK,EAAE;AACd,4BAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;4BACrB,MAAM,CAAC,KAAK,CAAC,CAAC;yBACf;AACH,qBAAC,CACF,CAAC;AACF,oBAAA,OAAO,CAAC,WAAW,CAAC,IAAI,CACtB,WAAW,CAAC,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,EAChE,IAAI,CACL,CAAC;AACJ,iBAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxC,OAAO;oBACL,QAAQ;iBACT,CAAC;AACJ,aAAC,CAAC;YACF,OAAO;SACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAuJD,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,UAAoB,GAAG,IAAI,EAAA;YAMrE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;gBAC5C,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;AACjD,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAC1D,gBAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AAC5D,YAAA,IAAI,IAA2C,CAAC;AAChD,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EAAE;gBACzC,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,IAAI,YAAY,CAAC,WAAW,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;AAC1D,oBAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,CACpB,GAAG,CAAC,GAAG,CAAC,IAAI,EACZ,WAAW,EACX,OAAO,CAAC,GAAG,CAAC,qBAA4B,EACxC,OAAO,CAAC,GAAG,CAAC,yBAAgC,EAC5C,WAAW,CAAC,IAAI,CAAC;wBACf,cAAc,EAAE,YAAY,CAAC,WAAW;wBACxC,MAAM,EAAE,YAAY,CAAC,WAAW;AACjC,qBAAA,CAAC,CACH,CAAC;iBACH;qBAAM,IAAI,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,YAAY,EAAE;AAChE,oBAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,CACpB,GAAG,CAAC,GAAG,CAAC,IAAI,EACZ,WAAW,EACX,OAAO,CAAC,GAAG,CAAC,qBAA4B,EACxC,OAAO,CAAC,GAAG,CAAC,yBAAgC,EAC5C,WAAW,CAAC,IAAI,CAAC;wBACf,cAAc,EAAE,YAAY,CAAC,WAAW;wBACxC,MAAM,EAAE,YAAY,CAAC,WAAW;wBAChC,iBAAiB,EAAE,YAAY,CAAC,YAAY;AAC7C,qBAAA,CAAC,CACH,CAAC;iBACH;qBAAM,IAAI,CAAC,YAAY,CAAC,WAAW,IAAI,YAAY,CAAC,YAAY,EAAE;AACjE,oBAAA,IAAI,GAAG,QAAQ,CAAC,MAAM,CACpB,GAAG,CAAC,GAAG,CAAC,IAAI,EACZ,WAAW,EACX,OAAO,CAAC,GAAG,CAAC,qBAA4B,EACxC,OAAO,CAAC,GAAG,CAAC,yBAAgC,EAC5C,WAAW,CAAC,IAAI,CAAC;wBACf,iBAAiB,EAAE,YAAY,CAAC,YAAY;AAC7C,qBAAA,CAAC,CACH,CAAC;iBACH;qBAAM;oBACL,IAAI,GAAG,QAAQ,CAAC,MAAM,CACpB,GAAG,CAAC,GAAG,CAAC,IAAI,EACZ,WAAW,EACX,OAAO,CAAC,GAAG,CAAC,qBAA4B,EACxC,OAAO,CAAC,GAAG,CAAC,yBAAgC,CAC7C,CAAC;iBACH;AAED,gBAAA,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;aAC7C;iBAAM;AACL,gBAAA,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,CAAQ,CAAC;aACpD;AAED,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,CAAC;YACzD,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,KAAI;AACxB,gBAAA,IAAI,YAAY,GAAiC,KAAK,CAAQ,CAAC;AAE/D,gBAAA,KAAK,IAAI,EAAE,IAAI,YAAY,CAAC,UAAU,EAAE;oBACtC,IAAI,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;AACpC,oBAAA,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,EAAE;wBACjB,YAAY,GAAG,CAAC,CAAC;wBACjB,MAAM;qBACP;iBACF;AAED,gBAAA,IAAI,YAAY,CAAC,SAAS,KAAK,MAAM,EAAE;AACrC,oBAAA,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;iBAC3C;AACD,gBAAA,IAAI,YAAY,CAAC,SAAS,KAAK,OAAO,EAAE;AACtC,oBAAA,IAAI,YAAY,CAAC,SAAS,EAAE;AAC1B,wBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;wBAC7D,IAAI,OAAO,EAAE;4BACX,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,GAAG,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAA,EAAG,YAAY,CAAC,SAAS,CAAG,CAAA,CAAA,EAC7E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;yBACH;AACD,wBAAA,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;qBAC7C;yBAAM;AACL,wBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;wBAC7D,IAAI,OAAO,EAAE;AACX,4BAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAC9C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;yBACH;AACD,wBAAA,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;qBAClC;iBACF;AACD,gBAAA,IAAI,YAAY,CAAC,SAAS,KAAK,QAAQ,EAAE;AACvC,oBAAA,IAAI,YAAY,CAAC,SAAS,EAAE;wBAC1B,IAAI,YAAY,CAAC,SAAS,KAAK,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE;AAElD,4BAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,YAAY,CAAC,SAAS,EACtB,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAC1C,CAAC;yBACH;6BAAM;4BACL,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;yBACjD;qBACF;yBAAM;AACL,wBAAA,KAAK,IAAI,MAAM,IAAI,KAAK,EAAE;AACxB,4BAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;yBACzC;qBACF;iBACF;AACD,gBAAA,IAAI,YAAY,CAAC,SAAS,KAAK,QAAQ,EAAE;AACvC,oBAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,CACpB,YAAY,CAAC,SAAS,EACtB,KAAK,EACL,YAAY,CAAC,eAAe,CAC7B,CAAC;iBACH;AACD,gBAAA,IAAI,YAAY,CAAC,SAAS,KAAK,MAAM,EAAE;AACrC,oBAAA,IAAI,YAAY,CAAC,SAAS,EAAE;wBAC1B,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,UAAU,EAAE;4BACnD,MAAM,IAAI,KAAK,CAAC,CAAA;;;;;;;;AAQF,0BAAA,EAAA,YAAY,CAAC,SAAS,CAAA;;AAEjD,CAAA,CAAC,CAAC;yBACU;AACD,wBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;wBAC7D,IAAI,OAAO,EAAE;4BACX,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,GAAG,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAA,EAAG,YAAY,CAAC,SAAS,CAAG,CAAA,CAAA,EAC5E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;yBACH;AACD,wBAAA,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;qBAC5C;yBAAM;AACL,wBAAA,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;wBAC7D,IAAI,OAAO,EAAE;AACX,4BAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAC7C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC;yBACH;wBACD,UAAU,GAAG,KAAK,CAAC;qBACpB;iBACF;AACH,aAAC,CAAC,CAAC;YAEH,IACE,OAAO,UAAU,KAAK,QAAQ;gBAC9B,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,UAAU,EAC/C;gBACA,IAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B,gBAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CACvB,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,IAAG;oBACnD,gBAAgB,GAAG,KAAK,CAAC;iBAC1B,CAAC,CACH,CAAC;AACF,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,OAAO,CAAC,GAAG,CAAC,yBAAyB,EACrC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CACnC,CAAC;aACH;AAED,YAAA,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;gBACnC,IAAI,uBAAuB,GAAG,EAAE,CAAC;AACjC,gBAAA,WAAW,GAAG,MAAM,CAAC,KAAK,CACxB,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,IAAG;oBACpD,uBAAuB,GAAG,KAAK,CAAC;iBACjC,CAAC,CACH,CAAC;AAEF,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAC5C,MAAM,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAC1C,CAAC;aACH;AAGD,YAAA,MAAM,aAAa,GAAG;AACpB,gBAAA,QAAQ,EAAE,UAAU;AAClB,sBAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC;AAC1D,sBAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aACjD,CAAC;AACF,YAAA,OAAO,aAAa,CAAC;AACvB,SAAC,CAAC;KAEH;AAEF,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACx2EA,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtE,CAAC;AAAA,CAAC,EAAE,EAAE;;ACOP,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;MAGjD,SAAS,CAAA;AAIpB,IAAA,WAAA,GAAA;AAHO,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC;AAiBzB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;AACnC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAyC7C,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QAtDf,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,EAAE,qBAAqB,CAAC;KACvD;AACM,IAAA,WAAW,QAAQ,GAAA;QACxB,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,uBAAuB,CAAC,EAAE;YACvE,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,uBAAuB,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC;SACtF;QACD,OAAO,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;KAC3E;AAoCD,IAAA,WAAW,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;AAED,IAAA,8BAA8B,CAAC,KAAc,EAAA;AAI3C,QAAA,IAAI,CAAC,2BAA2B,GAAG,KAAK,CAAC;KAC1C;IAID,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;KAC/B;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAC9B;AAED,IAAA,MAAM,MAAK;8GAxEA,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,cADI,MAAM,EAAA,CAAA,CAAA,EAAA;;AA0BvB,UAAA,CAAA;AADN,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;;AACpC,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,kBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAM1B,UAAA,CAAA;AADN,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;;AAClC,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAM5B,UAAA,CAAA;AADN,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;;AACxB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,8BAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AAQtC,UAAA,CAAA;AADN,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;;AACzB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,6BAAA,EAAA,KAAA,CAAA,CAAA,CAAA;2FA7CjC,SAAS,EAAA,UAAA,EAAA,CAAA;kBADrB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;AA6EjC,CAAC;AAAA,CAAC,EAAE,EAAE;;AC5EM,MAAA,aAAa,GAAG,CAU3B,QAEyE,KACvE;AACF,IAAA,IAAI,MAAM,GAAG,QAAQ,CAACa,KAAG,CAAC,CAAC;IAM3B,MAAM,kBAAkB,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAMjE,IAAA,MAAM,GAAG,GAAG;AAEV,QAAA,KAAK,EAAE;AAmBL,YAAA,IAAI,WAAW,GAAA;gBACb,OAAO,MAAM,CAAC,WAAW,CAAC;aAC3B;AACD,YAAA,IAAI,YAAY,GAAA;gBACd,OAAO,MAAM,CAAC,YAAY,CAAC;aAC5B;AACD,YAAA,IAAI,SAAS,GAAA;gBACX,OAAO,MAAM,CAAC,SAAS,CAAC;aACzB;AACD,YAAA,IAAI,WAAW,GAAA;gBACb,OAAO,MAAM,CAAC,WAAW,CAAC;aAC3B;AACF,SAAA;AAGD,QAAA,IAAI,QAAQ,GAAA;YACV,OAAO,MAAM,CAAC,QAAQ,CAAC;SACxB;AACD,QAAA,IAAI,WAAW,GAAA;YACb,OAAO,MAAM,CAAC,WAAW,CAAC;SAC3B;AAGD;;AAEG;AACH,QAAA,MAAM,KAAK,GAAA;AACT,YAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE;gBAC9B,MAAM,kBAAkB,CAAC,IAAI,CAAC;AAC5B,oBAAA,+BAA+B,EAAE,IAAI;AACtC,iBAAA,CAAC,CAAC;aACJ;AACD,YAAA,OAAO,kBAAkB,CAAC;SAC3B;AACD,QAAA,IAAI,SAAS,GAAA;AACX,YAAA,OAAO,kBAAkB,CAAC;SAC3B;AACD,QAAA,gBAAgB,CAAI,IAA+B,EAAA;AACjD,YAAA,OAAO,kBAAkB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SAC/C;AAED,QAAA,QAAQ,CAAI,IAA+B,EAAA;YACzC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC7D,YAAA,OAAO,QAAe,CAAC;SAcxB;AAGD;;;AAGG;QACH,UAAU,EAAE,YAAqC;YAC/C,OAAO,MAAM,IAAI,OAAO,CAAC,OAAO,OAAO,EAAE,MAAM,KAAI;gBACjD,UAAU,CAAC,YAAW;AACpB,oBAAA,MAAM,kBAAkB,CAAC,IAAI,EAAE,CAAC;AAChC,oBAAA,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnB,wBAAA,MAAM,IAAI,KAAK,CAAC,CAAA,uCAAA,CAAyC,CAAC,CAAC;qBAC5D;AACD,oBAAA,MAAM,kBAAkB,CAAC,YAAY,EAAE,CAAC;AACxC,oBAAA,MAAM,kBAAkB,CAAC,eAAe,EAAE,CAAC;AAC3C,oBAAA,MAAM,kBAAkB,CAAC,sBAAsB,EAAE,CAAC;oBAMlD,kBAAkB,CAAC,YAAY,EAAE,CAAC;oBAClC,kBAAkB,CAAC,WAAW,EAAE,CAAC;;;AAKjC,oBAAA,MAAM,kBAAkB,CAAC,WAAW,EAAE,CAAC;oBACvC,IAAI,2BAA2B,GAAG,KAAK,CAAC;oBAExC,2BAA2B;AACzB,wBAAA,SAAS,CAAC,QAAQ,CAAC,2BAA2B,CAAC;AAEjD,oBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,2BAA2B,EAAE;AAClD,wBAAA,OAAO,CAAC,IAAI,CAAC,CAAA,oCAAA,CAAsC,CAAC,CAAC;qBACtD;yBAAM;AACL,wBAAA,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,CAAC;qBAC9C;oBACD,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC9B,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;SACJ;KAEF,CAAC;AACF,IAAA,OAAO,GAAG,CAAC;AACb,EAAE;AAGD,CAAC;AAAA,CAAC,EAAE,EAAE;;ACpKP,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO;AACvC,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,YAAY,EAAE;;QAEZ,cAAc;AACf,KAAA;AACF,CAAA,CAAC,EAAE;AAIH,CAAC;AAAA,CAAC,EAAE,EAAE;;;;;;;ACRM,MAAA,qBAEX,SAAQ,MAAM,CAAC,oBAAoB,CAAA;AAEpC,CAAA;AAEK,SAAU,cAAc,CAAC,OAA8B,EAAA;AAC3D,IAAA,OAAO,UAAkD,WAAc,EAAA;AACrE,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EACnC,OAAO,EACP,WAAW,CACZ,CAAC;AACF,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,EAC1B,OAAO,EAAE,SAAS,IAAI,WAAW,CAAC,IAAI,EACtC,WAAW,CACZ,CAAC;QACF,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACtD,OAAO,cAAc,WAAW,CAAA;AAC9B,YAAA,WAAA,CAAY,GAAG,IAAW,EAAA;AACxB,gBAAA,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gBAGf,MAAM,cAAc,GAAG,YAAY,CAAC,eAAe,CACjD,WAAW,CAAC,SAAS,CACtB,CAAC;gBAEF,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAG;oBAC5C,QACE,CAAC,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3C,wBAAA,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;AAClB,wBAAA,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EACvB;AACJ,iBAAC,CAAC,CAAC;AAGH,gBAAA,WAAW,CAAC,OAAO,CAAC,UAAU,IAAG;AAC/B,oBAAA,MAAM,cAAc,GAAI,IAAY,CAAC,UAAU,CAAC,CAAC;oBAEhD,IAAY,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,UAAiB,KAAI;wBACzD,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAGtD,wBAAA,IAAI,MAAM,YAAY,OAAO,EAAE;AAC7B,4BAAA,MAAM,MAAM,CAAC;yBACd;AAGD,wBAAA,IACE,OAAO,CAAC,aAAa,KAAK,SAAS;4BACnC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC1C;;AAEC,4BAAA,IAAuB,CAAC,iBAAiB,CAAC,UAAiB,CAAC,CAAC;yBAC/D;AAED,wBAAA,OAAO,MAAM,CAAC;AAChB,qBAAC,CAAC;AACJ,iBAAC,CAAC,CAAC;aACJ;SACK,CAAC;AACX,KAAQ,CAAC;AACX,CAAC;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACtDA,IAAe,cAAc,GAA7B,MAAe,cAA6B,SAAQ,YAAY,CAAA;AAC3D,IAAA,iBAAiB,CAAC,SAAuB,EAAA;AACjD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;KAE9C;EACF;AANqB,cAAc,GAAA,UAAA,CAAA;AAHnC,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,gBAAgB;KAC5B,CAAC;AACoB,CAAA,EAAA,cAAc,CAMnC,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACRA,IAAe,uBAAuB,GAAtC,MAAe,uBACpB,SAAQ,YAAY,CAAA;AAKpB;;AAEG;AACH,IAAA,SAAS,CAAC,MAAW,EAAA;AACnB,QAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;KAC9C;AAED;;AAEG;AACH,IAAA,WAAW,CAAC,KAAU,EAAA;QAEpB,OAAO,CAAC,GAAG,CAAC,CAAA,cAAA,CAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;KAC5C;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;QAEnB,OAAO,CAAC,GAAG,CAAC,CAAA,aAAA,CAAe,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;KAC3C;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,KAAuB,EAAA;QAClC,OAAO,CAAC,GAAG,CAAC,CAAA,wBAAA,CAA0B,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KACvD;AAED;;AAEG;AACH,IAAA,WAAW,CAAC,KAAuB,EAAA;QACjC,OAAO,CAAC,GAAG,CAAC,CAAA,uBAAA,CAAyB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KACtD;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,KAAuB,EAAA;QAClC,OAAO,CAAC,GAAG,CAAC,CAAA,uBAAA,CAAyB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KACtD;AAED;;AAEG;AACH,IAAA,WAAW,CAAC,KAAuB,EAAA;QACjC,OAAO,CAAC,GAAG,CAAC,CAAA,sBAAA,CAAwB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;KACrD;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,KAAuB,EAAA;AAClC,QAAA,OAAO,CAAC,GAAG,CACT,CAAA,sBAAA,EAAyB,KAAK,CAAC,QAAQ,CAAA,UAAA,CAAY,EACnD,KAAK,CAAC,MAAM,CACb,CAAC;KACH;AAED;;AAEG;AACH,IAAA,WAAW,CAAC,KAAuB,EAAA;AACjC,QAAA,OAAO,CAAC,GAAG,CACT,CAAA,qBAAA,EAAwB,KAAK,CAAC,QAAQ,CAAA,UAAA,CAAY,EAClD,KAAK,CAAC,MAAM,CACb,CAAC;KACH;AAED;;AAEG;AACH,IAAA,gBAAgB,CAAC,KAA2B,EAAA;AAC1C,QAAA,OAAO,CAAC,GAAG,CACT,CAAA,sBAAA,EAAyB,KAAK,CAAC,QAAQ,CAAA,eAAA,CAAiB,EACxD,KAAK,CAAC,MAAM,CACb,CAAC;KACH;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,KAA2B,EAAA;AACzC,QAAA,OAAO,CAAC,GAAG,CACT,CAAA,qBAAA,EAAwB,KAAK,CAAC,QAAQ,CAAA,eAAA,CAAiB,EACvD,KAAK,CAAC,MAAM,CACb,CAAC;KACH;AAED;;AAEG;AACH,IAAA,aAAa,CAAC,KAAwB,EAAA;AACpC,QAAA,OAAO,CAAC,GAAG,CACT,CAAA,sBAAA,EAAyB,KAAK,CAAC,QAAQ,CAAA,YAAA,CAAc,EACrD,KAAK,CAAC,MAAM,CACb,CAAC;KACH;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,KAAwB,EAAA;AACnC,QAAA,OAAO,CAAC,GAAG,CACT,CAAA,qBAAA,EAAwB,KAAK,CAAC,QAAQ,CAAA,YAAA,CAAc,EACpD,KAAK,CAAC,MAAM,CACb,CAAC;KACH;AAED;;AAEG;AACH,IAAA,sBAAsB,CAAC,KAA4B,EAAA;AACjD,QAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;KACpD;AAED;;AAEG;AACH,IAAA,qBAAqB,CAAC,KAA4B,EAAA;AAChD,QAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;KACnD;AAED;;AAEG;AACH,IAAA,uBAAuB,CAAC,KAA6B,EAAA;AACnD,QAAA,OAAO,CAAC,GAAG,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;KACtD;AAED;;AAEG;AACH,IAAA,sBAAsB,CAAC,KAA6B,EAAA;AAClD,QAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;KACrD;AAED;;AAEG;AACH,IAAA,yBAAyB,CAAC,KAA+B,EAAA;AACvD,QAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;KACrD;AAED;;AAEG;AACH,IAAA,wBAAwB,CAAC,KAA+B,EAAA;AACtD,QAAA,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;KACpD;CACF,CAAA;AA9JqB,uBAAuB,GAAA,UAAA,CAAA;AAH5C,IAAA,cAAc,CAAC;AACd,QAAA,SAAS,EAAE,yBAAyB;KACrC,CAAC;AACoB,CAAA,EAAA,uBAAuB,CA8J5C,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACvKD,IAAW,IAAI,CAWpB;AAXD,CAAA,UAAiB,IAAI,EAAA;AACL,IAAA,IAAA,CAAA,UAAU,GAAGC,cAAyB,CAAC;AACvC,IAAA,IAAA,CAAA,cAAc,GAAGC,kBAAiC,CAAC;AACnD,IAAA,IAAA,CAAA,MAAM,GAAGC,UAAiB,CAAC;AAC3B,IAAA,IAAA,CAAA,cAAc,GAAGC,kBAAiC,CAAC;AACnD,IAAA,IAAA,CAAA,QAAQ,GAAGC,YAAqB,CAAC;AACjC,IAAA,IAAA,CAAA,KAAK,GAAGC,SAAmB,CAAC;AAC5B,IAAA,IAAA,CAAA,UAAU,GAAGC,cAAyB,CAAC;AACvC,IAAA,IAAA,CAAA,UAAU,GAAGC,cAA6B,CAAC;AAC3C,IAAA,IAAA,CAAA,mBAAmB,GAAGC,uBAA4C,CAAC;AACpE,IAAA,IAAA,CAAA,OAAO,GAAGC,WAAuB,CAAC;AACjD,CAAC,EAXgB,IAAI,KAAJ,IAAI,GAWpB,EAAA,CAAA,CAAA,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACjBP;AACA;AAGM,SAAU,UAAU,CAAU,OAA8B,EAAA;AAChE,IAAA,OAAO,UAAU,WAAqB,EAAA;AACpC,QAAA,OAAO,GAAG,OAAO,IAAK,EAAU,CAAC;QACjC,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAK,IAAY,CAAC;QAC/D,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAEtD,QAAA,OAAO,CAAC,uBAAuB,CAC7B,OAAO,EAAE,kBAAkB,IAAI,EAAE,EACjC,CAAC,CAAC,KAAK,CACL,OAAO,EAAE,mBAAmB,IAAI,EAAE,GACjC,OAAO,EAAE,uBAAuB,IAAI,EAAE,EACxC,CACF,CAAC,WAAW,CAAC,CAAC;QAGf,OAAO,CAAC,uBAAuB,CAAI,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;AAE5D,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAC/B,OAAO,EACP,WAAW,CACZ,CAAC;AACF,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,EAC1B,OAAO,EAAE,SAAS,IAAI,WAAW,CAAC,IAAI,EACtC,WAAW,CACZ,CAAC;;;QAIF,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACjD,KAAC,CAAC;AACJ,CAAC;AAEY,MAAA,iBAA2B,SAAQ,MAAM,CAAC,oBAAoB,CAAA;AAU1E,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACpDD,SAAU,YAAY,CAAU,OAAgC,EAAA;AACpE,IAAA,OAAO,UAAU,WAAqB,EAAA;AACpC,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EACjC,OAAO,EACP,WAAW,CACZ,CAAC;AACF,QAAA,OAAO,CAAC,cAAc,CACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,EAC1B,OAAO,EAAE,SAAS,IAAI,WAAW,CAAC,IAAI,EACtC,WAAW,CACZ,CAAC;AACF,QAAA,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;AAC5E,KAAC,CAAC;AACJ,CAAC;AAEY,MAAA,mBAEX,SAAQ,MAAM,CAAC,oBAAoB,CAAA;AAEpC,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;ACjBM,MAAA,MAAM,GAAG,CAAI,MAAuC,KAAO;AACtE,IAAA,OAAO,IAAI,KAAK,CACd,EAAE,EACF;AACE,QAAA,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAI;AACnB,YAAA,IAAI,QAAQ,KAAK,gBAAgB,EAAE;AACjC,gBAAA,OAAO,MAAM,KAAK,CAAC;aACpB;AAED,YAAA,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;YACtB,MAAM,gBAAgB,GAAG,IAAI,CAC3B,OAAO,CAAC,oBAAoB,CACV,CAAC;YACrB,MAAM,aAAa,GAAG,gBAAgB,CAAC;YACvC,IAAI,aAAa,EAAE;gBACjB,IAAI,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAiB,CAAC;AAG1D,gBAAA,IAAI,QAAQ,KAAK,sBAAsB,EAAE;oBACvC,OAAO,MAAM,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;iBAC9C;AACD,gBAAA,IAAI,QAAQ,KAAK,wBAAwB,EAAE;AACzC,oBAAA,OAAO,MAAM,QAAQ,CAAC,WAAW,CAAC;iBACnC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;gBACtD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAE7C,MAAM,gBAAgB,GAAG,SAAS;sBAC9B,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;AACnC,sBAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAMvB,gBAAA,OAAO,gBAAgB,CAAC;aACzB;AAGD,YAAA,OAAOC,QAAa,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;SAEtC;AACF,KAAA,CACG,CAAC;AACT,EAAE;AAEK,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAOhC,MAAM,sBAAsB,GAAG,CACpC,wBAAyD,EACzD,SAAkB,KACgB;AAClC,IAAA,MAAM,SAAS,GAAG,IAAI,OAAO,EAAsB,CAAC;AACpD,IAAA,MAAM,GAAG,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;IAErC,IAAI,mBAAmB,GAAG,IAAI,CAAC;AAE/B,IAAA,MAAM,iBAAiB,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE;AACvC,QAAA,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAA;AACxB,YAAA,IAAI,IAAI,KAAK,WAAW,EAAE;AACxB,gBAAA,OAAO,CAAC,GAAG,IAAW,KAAI;oBACxB,IAAI,mBAAmB,EAAE;wBACvB,mBAAmB,GAAG,KAAK,CAAC;AAC5B,wBAAA,MAAM,iBAAiB,GACrB,wBAAwB,EAAS,CAAC;wBACpC,MAAM,GAAG,GAAG,iBAAiB,CAC3B,OAAO,CAAC,oBAAoB,CACV,CAAC;wBACrB,IAAI,CAAC,GAAG,EAAE;4BACR,MAAM,IAAI,KAAK,CACb,CAAA;;AAEiC,gDAAA,CAAA;AAC/B,gCAAA,CAAA,sBAAA,EAAyB,iBAAiB,EAAE,IAAI,CAAA,IAAA,EAAO,SAAgB,CAAA;;;AAG1E,cAAA,CAAA,CACA,CAAC;yBACH;wBACD,MAAM,kBAAkB,GAAG,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAGhE,wBAAA,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE;4BAChE,iBAAiB;4BACjB,SAAS;AACV,yBAAA,CAAC,CAAC;qBAEJ;AACD,oBAAA,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;AACnC,iBAAC,CAAC;aACH;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;SAC5C;AACF,KAAA,CAAC,CAAC;AAEH,IAAA,OAAO,iBAAmD,CAAC;AAC7D,CAAC,CAAC;AAED,CAAC;AAAA,CAAC,EAAE,EAAE;;AC1GN,CAAC;AAAA,CAAC,EAAE,EAAE;;AC2BD,IAAW,KAsEhB;AAtED,CAAA,UAAiB,IAAI,EAAA;AAEL,IAAA,IAAA,CAAA,IAAI,GAAGC,IAAS,CAAC;AACjB,IAAA,IAAA,CAAA,IAAI,GAAGC,IAAS,CAAC;AAGlB,IAAA,IAAA,CAAA,gBAAgB,GAAGC,gBAA4B,CAAC;AAG/C,IAAA,IAAA,CAAA,UAAU,GAAGC,cAAkC,CAAC;AAChD,IAAA,IAAA,CAAA,MAAM,GAAGC,UAA0B,CAAC;AACpC,IAAA,IAAA,CAAA,QAAQ,GAAGC,YAA8B,CAAC;AAC1C,IAAA,IAAA,CAAA,UAAU,GAAGC,cAAkC,CAAC;AAChD,IAAA,IAAA,CAAA,UAAU,GAAGC,cAAkC,CAAC;AAG9D;;AAEG;AACU,IAAA,IAAA,CAAA,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;AACvD;;AAEG;AACU,IAAA,IAAA,CAAA,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;AACjD;;AAEG;AACU,IAAA,IAAA,CAAA,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;AACrD;;AAEG;AACU,IAAA,IAAA,CAAA,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC;AAE5C,IAAA,IAAA,CAAA,aAAa,GAAGC,aAA6B,CAAC;AAE9C,IAAA,IAAA,CAAA,MAAM,GAAGC,MAAe,CAAC;AAKzB,IAAA,IAAA,CAAA,UAAU,GAAG,CAAC,MAAc,KAAI;AAC3C,QAAAC,eAA+B,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACrD,KAAC,CAAC;AAGW,IAAA,IAAA,CAAA,OAAO,GAAGC,OAAkB,CAAC;AAE1C;;;AAGG;AACU,IAAA,IAAA,CAAA,IAAI,GAAG,OAAO,OAI1B,KAAI;QACH,MAAM,WAAW,GAAG,CAAC,MAAM,2DAAqC;AAC7D,aAAA,WAAW,CAAC;QACf,MAAM,OAAO,GAAG,IAAA,CAAA,aAAa,CAAC,OAAO;AACnC,YAAA,WAAW,EAAE,SAAS;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,EAAE,WAAW,EAAE;AACzB,YAAA,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAQ;YAC7C,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAQ;AACpD,SAAA,CAAC,CAAC,CAAC;AAEJ,QAAA,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;AAC3B,QAAA,OAAO,OAAO,CAAC;AACjB,KAAC,CAAC;AACJ,CAAC,EAtEgB,IAAI,KAAJ,IAAI,GAsEpB,EAAA,CAAA,CAAA,CAAA;AAEA,CAAC;AAAA,CAAC,EAAE,EAAE;;AC5GP;;AAEG;;;;"}
1
+ {"version":3,"file":"taon.mjs","sources":["../../../tmp-libs-for-dist/taon/projects/taon/src/lib/symbols.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/validators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/helpers/taon-helpers.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/helpers/class-helpers.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/models.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/http/http-methods-decorators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/http/http-params-decorators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/http/http-decorators.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/controller-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-injector.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-controller.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-crud-controller.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-class.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-entity.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-abstract-entity.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/repository-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-repository.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-provider.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/dependency-injection/di-container.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/get-response-value.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/env.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-subs-manager.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-client.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-server.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-ipc.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-mock.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/realtime-strategy-socket-io.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-strategy/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/realtime/realtime-core.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/endpoint-context.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/storage.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/taon-admin.service.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/create-context.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-context.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/subscriber-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base-subscriber-for-entity.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/base-classes/base.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/entity-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/decorators/classes/provider-decorator.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/inject.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/directives/taon-long-press.directive.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/directives/taon-inject-html.directive.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/directives/safe.pipe.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/directives/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-full-material.module.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.html","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-github-fork-me-corner/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-notifications/taon-notifications.service.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-notifications/taon-notifications.component.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-notifications/taon-notifications.component.html","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-notifications/taon-notifications.models.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-notifications/taon-notifications.module.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-notifications/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-session-passcode/taon-session-passcode.component.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-session-passcode/taon-session-passcode.component.html","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-session-passcode/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-progress-bar/taon-progress-bar.component.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-progress-bar/taon-progress-bar.component.html","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-progress-bar/taon-progress-bar.module.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-progress-bar/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-table/taon-table.component.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-table/taon-table.component.html","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-table/taon-table.module.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-table/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/taon-admin-control.service.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.html","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.html","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.html","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/taon-admin-mode-configuration/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/ui/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/constants.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/lib/index.ts","../../../tmp-libs-for-dist/taon/projects/taon/src/taon.ts"],"sourcesContent":["\n\nimport { _ } from 'tnp-core/browser';\nimport { OrignalClassKey } from 'taon-typeorm/browser';\nimport { SYMBOL } from 'typescript-class-helpers/browser';\n\nexport namespace Symbols {\n export const ctxInClassOrClassObj = Symbol();\n export const classNameStaticProperty: string = SYMBOL.ClassNameStaticProperty;\n export const fullClassNameStaticProperty: string = `$$fullclassName$$`;\n export const orignalClass: string = OrignalClassKey;\n export const orignalClassClonesObj: string = `$$originalClassClonesObj$$`;\n export const classMethodsNames: string = `$$classMethodsNames$$`;\n\n /**\n * for backendSocket.in(ROOM_NAME).emit(EVENT)\n *\n * Room names are uniqe..\n * here I am limiting number of event for clients.\n */\n class Realtime {\n NAMESPACE(contextName: string) {\n return `${contextName}-taonRealtimeNsp`;\n }\n TABLE_CHANGE(contextName: string, tableName: string) {\n return `${contextName}:listentablename${tableName}`;\n }\n readonly KEYroomSubscribe = `roomSubscribe`;\n readonly KEYroomUnsubscribe = `roomUnsubscribe`;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ROOM_NAME_CUSTOM(contextName: string, customEvent: string) {\n return `${contextName}:CustomRoomEvent${customEvent}`;\n }\n\n ROOM_SUBSCRIBE_CUSTOM(contextName: string) {\n return `${contextName}:${this.KEYroomSubscribe}CustomRoomEvent`;\n }\n ROOM_UNSUBSCRIBE_CUSTOM(contextName: string) {\n return `${contextName}:${this.KEYroomUnsubscribe}CustomRoomEvent`;\n }\n\n\n\n ROOM_NAME_UPDATE_ENTITY(\n contextName: string,\n className: string,\n entityId: number | string,\n ) {\n return `${contextName}:room${_.camelCase(className)}${entityId}`.toLowerCase();\n }\n ROOM_SUBSCRIBE_ENTITY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomSubscribe}EntityEvents`;\n }\n\n ROOM_UNSUBSCRIBE_ENTITY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomUnsubscribe}EntityEvents`;\n }\n\n\n\n ROOM_NAME_UPDATE_ENTITY_PROPERTY(\n contextName: string,\n className: string,\n property: string,\n entityId: number | string,\n ) {\n return `${contextName}:room${_.camelCase(className)}${_.camelCase(property)}${entityId}`.toLowerCase();\n }\n\n ROOM_SUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomSubscribe}EntityPropertyEvents`;\n }\n\n ROOM_UNSUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(contextName: string) {\n return `${contextName}:${this.KEYroomUnsubscribe}EntityPropertyEvents`;\n }\n\n }\n\n export const REALTIME = new Realtime();\n\n export const metadata = {\n className: `class:realname`,\n options: {\n runtimeController: `runtime:controller:options`,\n controller: `controller:options`,\n controllerMethod: `controller:method:options`,\n entity: `entity:options`,\n repository: `repository:options`,\n provider: `provider:options`,\n subscriber: `subscriber:options`,\n },\n };\n\n export const old = {\n HAS_TABLE_IN_DB: Symbol(),\n MDC_KEY: `modeldataconfig`,\n WEBSQL_REST_PROGRESS_FUN: Symbol(),\n WEBSQL_REST_PROGRESS_FUN_START: Symbol(),\n WEBSQL_REST_PROGRESS_FUN_DONE: Symbol(),\n WEBSQL_REST_PROGRESS_TIMEOUT: Symbol(),\n\n X_TOTAL_COUNT: `x-total-count`,\n CIRCURAL_OBJECTS_MAP_BODY: `circuralmapbody`,\n CIRCURAL_OBJECTS_MAP_QUERY_PARAM: `circuralmapbody`,\n MAPPING_CONFIG_HEADER: `mappingheader`,\n MAPPING_CONFIG_HEADER_BODY_PARAMS: `mhbodyparams`,\n MAPPING_CONFIG_HEADER_QUERY_PARAMS: `mhqueryparams`,\n ENDPOINT_META_CONFIG: `ng2_rest_endpoint_config`,\n CLASS_DECORATOR_CONTEXT: `$$ng2_rest_class_context`,\n SOCKET_MSG: `socketmessageng2rest`,\n ANGULAR: {\n INPUT_NAMES: Symbol(),\n },\n ERROR_MESSAGES: {\n CLASS_NAME_MATCH: `Please check if your \"class name\" matches @Controller( className ) or @Entity( className )`,\n },\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/symbols.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport { Models } from './models';\n\nexport namespace Validators {\n\n export const classNameVlidation = (className, target: Function) => {\n setTimeout(() => {\n\n if (_.isUndefined(className)) {\n throw `[Taon]\n Please provide \"className\" property for each Controller and Entity:\n\n @Taon.Controller({ className: 'MyExampleCtrl' })\n class MyExampleCtrl {\n ...\n }\n\n @Taon.Entity({ className: 'MyExampleEntity' })\n class MyExampleEntity {\n ...\n }\n\n Notice that minified javascript code does not preserve\n Functions/Classes names -this is only solution to preserve classes names.\n\n `;\n }\n });\n\n return _.isUndefined(className) ? target.name : className;\n };\n\n\n\n export const checkIfMethodsWithReponseTYpeAlowed = (\n methods: Models.MethodConfig[],\n current: Models.MethodConfig,\n ) => {\n const defaultResponseType = 'text or JSON';\n if (!current.responseType) {\n return;\n }\n for (let index = 0; index < methods.length; index++) {\n const m = methods[index];\n if (m.path === current.path && m.responseType !== current.responseType) {\n throw new Error(`\n [taon] you can have 2 methods with same path but differetn reponseType-s\n\n ${m.methodName}( ... path: ${m.path} ) -> responseType: ${m.responseType || defaultResponseType}\n ${current.methodName}( ... path: ${current.path} ) -> responseType: ${current.responseType}\n\n Please change path name on of the methods.\n\n `);\n }\n }\n };\n\n\n\n\n export const validateClassFunctions = (\n controllers: any[],\n entities: any[],\n proviers: any[],\n repositories: any[],\n ) => {\n if (\n _.isArray(controllers) &&\n controllers.filter(f => !_.isFunction(f)).length > 0\n ) {\n console.error('controllers', controllers);\n throw `\n\n Incorect value for property \"controllers\" inside Taon.Init(...)\n\n `;\n }\n\n if (\n _.isArray(entities) &&\n entities.filter(f => !_.isFunction(f)).length > 0\n ) {\n console.error('entites', entities);\n throw `\n\n Incorect value for property \"entities\" inside Taon.Init(...)\n\n `;\n }\n };\n\n\n export const preventUndefinedModel = (model, id) => {\n if (_.isUndefined(model)) {\n throw `Bad update by id, config, id: ${id}`;\n }\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/validators.ts","\n\nimport { _ } from 'tnp-core/browser';\nimport * as JSON5 from 'json5';\nimport { Models } from '../models';\nimport { ClassHelpers } from './class-helpers';\n\nexport namespace TaonHelpers {\n\n export const fillUpTo = (s: string, nCharacters: number) => {\n return _.times(nCharacters, n => {\n if (s.charAt(n)) {\n return s.charAt(n);\n }\n return ' ';\n }).join('');\n };\n\n\n\n export const isGoodPath = (p: string) => {\n return p && typeof p === 'string' && p.trim() !== '';\n };\n\n\n\n export const tryTransformParam = param => {\n if (typeof param === 'string') {\n let n = Number(param);\n if (!isNaN(n)) return n;\n const bool = param.trim().toLowerCase();\n if (bool === 'true') {\n return true;\n }\n if (bool === 'false') {\n return false;\n }\n try {\n const t = JSON5.parse(param);\n return t;\n } catch (e) {\n return param;\n }\n }\n return param;\n };\n\n\n\n export const getExpressPath = (\n c: Models.RuntimeControllerConfig,\n pathOrClassConfig: Models.MethodConfig,\n ) => {\n if (typeof pathOrClassConfig === 'string')\n return `${c.calculatedPath}${pathOrClassConfig}`.replace(/\\/$/, '');\n return `${c.calculatedPath}${pathOrClassConfig.path}`.replace(/\\/$/, '');\n };\n\n\n\n export const defaultType = value => {\n if (typeof value === 'string') return '';\n if (typeof value === 'boolean') return false;\n if (Array.isArray(value)) return {};\n if (typeof value === 'object') return {};\n };\n\n\n\n export const parseJSONwithStringJSONs = (\n object: Object,\n waring = false,\n ): Object => {\n\n if (!_.isObject(object)) {\n if (waring) {\n console.error(\n `\n parseJSONwithStringJSONs(...)\n Parameter should be a object, but is ${typeof object}\n `,\n object,\n );\n }\n\n return object;\n }\n\n let res = _.cloneDeep(object);\n\n Object.keys(res).forEach(key => {\n let isJson = false;\n try {\n const possibleJSON = JSON.parse(res[key]);\n res[key] = possibleJSON;\n isJson = true;\n } catch (e) {\n isJson = false;\n }\n\n if (isJson) {\n res[key] = parseJSONwithStringJSONs(res[key], false);\n }\n });\n\n return res;\n };\n\n\n\n export const isPlainFileOrFolder = filePath => {\n return /^([a-zA-Z]|\\-|\\_|\\@|\\#|\\$|\\!|\\^|\\&|\\*|\\(|\\))+$/.test(filePath);\n };\n\n\n\n export const ipcKeyNameResponse = (\n target: Function,\n methodConfig: Models.MethodConfig,\n expressPath: string,\n ) => {\n return [\n 'response',\n ClassHelpers.getName(target),\n methodConfig.methodName,\n methodConfig.type,\n expressPath,\n ].join('--');\n };\n\n\n\n export const ipcKeyNameRequest = (\n target: Function,\n methodConfig: Models.MethodConfig,\n expressPath: string,\n ) => {\n return [\n 'request',\n ClassHelpers.getName(target),\n methodConfig.methodName,\n methodConfig.type,\n expressPath,\n ].join('--');\n };\n\n\n\n export const websqlMocks = headers => {\n const response: Express.Response = {\n status(status: any) {\n\n return {\n send(send: any) {\n\n },\n };\n },\n setHeader(key: string, value: any) {\n\n headers[key] = value;\n },\n };\n const request: Express.Request = {};\n return { request, response };\n };\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/helpers/taon-helpers.ts","\n\nimport { Symbols } from '../symbols';\nimport { Validators } from '../validators';\nimport { _ } from 'tnp-core/browser';\nimport { Models } from '../models';\nimport { TaonControllerOptions } from '../decorators/classes/controller-decorator';\nimport { TaonHelpers } from './taon-helpers';\nimport { TaonEntityOptions } from '../decorators/classes/entity-decorator';\nimport { CLASS } from 'typescript-class-helpers/browser';\n/* */\n/* */\n \n\nexport namespace ClassHelpers {\n\n /**\n * TODO - repalce in every place when getting class fn from object\n */\n export const getClassFnFromObject = (json: Object) => {\n if (_.isUndefined(json) || _.isNull(json)) {\n return;\n }\n if (json.constructor) {\n return json.constructor;\n }\n const p = Object.getPrototypeOf(json);\n return p && p.constructor && p.constructor.name !== 'Object'\n ? p.constructor\n : void 0;\n };\n\n\n\n export const getName = (classFnOrObject: any): string => {\n\n if (classFnOrObject instanceof FormData) {\n return 'FormData';\n }\n if (!classFnOrObject) {\n console.error('OBJECT OR CLASS', classFnOrObject);\n throw new Error(`Cannot get name from this object or class.`);\n }\n return (\n (classFnOrObject[Symbols.classNameStaticProperty]\n ? classFnOrObject[Symbols.classNameStaticProperty]\n : classFnOrObject?.constructor[Symbols.classNameStaticProperty]) ||\n CLASS.getName(classFnOrObject)\n );\n };\n\n\n export const getOrginalClass = (classFnOrObject: any): any => {\n const org = classFnOrObject[Symbols.orignalClass];\n if (!org) {\n return classFnOrObject;\n }\n return getOrginalClass(org);\n };\n\n\n export const getFullInternalName = (classFnOrObject: any): string => {\n\n\n if (!classFnOrObject) {\n throw new Error(`Cannot get name from: ${classFnOrObject}`);\n }\n return (\n (classFnOrObject[Symbols.fullClassNameStaticProperty]\n ? classFnOrObject[Symbols.fullClassNameStaticProperty]\n : classFnOrObject?.constructor[Symbols.fullClassNameStaticProperty]) ||\n void 0\n );\n };\n\n\n\n export const getUniqueKey = (classFnOrObject: any): string => {\n const classFn = _.isFunction(classFnOrObject)\n ? classFnOrObject\n : classFnOrObject.constructor;\n const config = Reflect.getMetadata(\n Symbols.metadata.options.controller,\n classFn,\n ) as TaonEntityOptions;\n return config.uniqueKeyProp;\n };\n\n\n\n export const isContextClassObject = (obj: any): boolean => {\n if (\n !_.isObject(obj) ||\n _.isArray(obj) ||\n _.isRegExp(obj) ||\n _.isBuffer(obj) ||\n _.isArrayBuffer(obj)\n ) {\n return false;\n }\n if (_.isDate(obj)) {\n return true;\n }\n const className = getName(obj);\n return _.isString(className) && className !== 'Object';\n };\n\n\n\n\n export const setName = (target: Function, className: string): void => {\n\n Validators.classNameVlidation(className, target);\n target[Symbols.classNameStaticProperty] = className;\n };\n\n\n\n export const hasParentClassWithName = (\n target: Function,\n className: string,\n targets = [],\n ): boolean => {\n if (!target) {\n return false;\n }\n targets.push(target);\n let targetProto = Object.getPrototypeOf(target);\n\n if (\n _.isFunction(targetProto) &&\n ClassHelpers.getName(targetProto) === className\n ) {\n\n return true;\n }\n return hasParentClassWithName(targetProto, className, targets);\n };\n\n\n\n export const getControllerConfig = (\n target: Function,\n ): Models.ControllerConfig | undefined => {\n const classMetadataOptions: TaonControllerOptions = Reflect.getMetadata(\n Symbols.metadata.options.controller,\n target,\n );\n const classMetadata: Models.ControllerConfig = _.merge(\n new Models.ControllerConfig(),\n classMetadataOptions,\n );\n\n\n const methodNames = ClassHelpers.getMethodsNames(target); // Object.getOwnPropertyNames(target.prototype);\n\n for (const methodName of methodNames) {\n const methodMetadata: Models.MethodConfig = Reflect.getMetadata(\n Symbols.metadata.options.controllerMethod,\n target,\n methodName,\n );\n\n if (methodMetadata) {\n classMetadata.methods[methodName] = methodMetadata;\n }\n }\n return classMetadata;\n };\n\n\n\n\n\n const notAllowedAsMethodName = [\n 'length',\n 'name',\n 'arguments',\n 'caller',\n 'constructor',\n 'apply',\n 'bind',\n 'call',\n 'toString',\n '__defineGetter__',\n '__defineSetter__',\n 'hasOwnProperty',\n '__lookupGetter__',\n '__lookupSetter__',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'valueOf',\n '__proto__',\n 'toLocaleString',\n ];\n\n\n export const getMethodsNames = (\n classOrClassInstance: any,\n allMethodsNames = [],\n ): string[] => {\n if (!classOrClassInstance) {\n return allMethodsNames;\n }\n\n const isClassFunction = _.isFunction(classOrClassInstance);\n const classFun = isClassFunction\n ? classOrClassInstance\n : Object.getPrototypeOf(classOrClassInstance);\n const objectToCheck = isClassFunction\n ? (classOrClassInstance as Function)?.prototype\n : classOrClassInstance;\n const prototypeObj = Object.getPrototypeOf(objectToCheck || {});\n\n const properties = _.uniq([\n ...Object.getOwnPropertyNames(objectToCheck || {}),\n ...Object.getOwnPropertyNames(prototypeObj || {}),\n ...Object.keys(objectToCheck || {}),\n ...Object.keys(prototypeObj || {}),\n ]).filter(f => !!f && !notAllowedAsMethodName.includes(f));\n\n properties\n .filter(methodName => typeof objectToCheck[methodName] === 'function')\n .forEach(p => allMethodsNames.push(p));\n\n if (\n !classFun ||\n !classFun.constructor ||\n classFun?.constructor?.name === 'Object'\n ) {\n return allMethodsNames;\n }\n return getMethodsNames(Object.getPrototypeOf(classFun), allMethodsNames);\n };\n\n\n\n export const getControllerConfigs = (\n target: Function,\n configs: Models.ControllerConfig[] = [],\n callerTarget?: Function,\n ): Models.RuntimeControllerConfig[] => {\n if (!_.isFunction(target)) {\n throw `[typescript-class-helper][getClassConfig] Cannot get class config from: ${target}`;\n }\n\n let config: Models.RuntimeControllerConfig;\n const parentClass = Object.getPrototypeOf(target);\n const parentName = parentClass ? ClassHelpers.getName(parentClass) : void 0;\n const isValidParent = _.isFunction(parentClass) && parentName !== '';\n\n config = getControllerConfig(target);\n\n configs.push(config);\n\n return isValidParent\n ? getControllerConfigs(parentClass, configs, target)\n : configs;\n };\n\n\n\n export const getCalculatedPathFor = (target: Function) => {\n const configs = getControllerConfigs(target);\n\n const parentscalculatedPath = _.slice(configs, 1)\n .reverse()\n .map(bc => {\n if (TaonHelpers.isGoodPath(bc.path)) {\n return bc.path;\n }\n return bc.className;\n })\n .join('/');\n\n return `/${parentscalculatedPath}/${ClassHelpers.getName(target)}`;\n };\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/helpers/class-helpers.ts","\n\nimport { CoreModels } from 'tnp-core/browser';\nimport { Response, RequestHandler } from 'express';\nimport { Response as ExpressResponse, Request as ExpressRequest, } from 'express';/* */\n/* */\n/* */\n\nimport { Models as ModelsNg2Rest } from 'ng2-rest/browser';\nimport { ClassHelpers } from './helpers/class-helpers';\nimport type { TaonControllerOptions } from './decorators/classes/controller-decorator';\nimport type { TaonEntityOptions } from './decorators/classes/entity-decorator';\n\nexport namespace Models {\n export type FrameworkMode =\n | 'backend-frontend(tcp+udp)'\n | 'remote-backend(tcp+udp)'\n | 'backend-frontend(ipc-electron)'\n | 'backend-frontend(websql-electron)'\n | 'backend-frontend(websql)';\n\n\n export enum ClassType {\n ENTITY = 'ENTITY',\n CONTROLLER = 'CONTROLLER',\n REPOSITORY = 'REPOSITORY',\n PROVIDER = 'PROVIDER',\n SUBSCRIBER = 'SUBSCRIBER',\n }\n\n export const ClassTypeKey = {\n [ClassType.ENTITY]: 'entities',\n [ClassType.CONTROLLER]: 'controllers',\n [ClassType.REPOSITORY]: 'repositories',\n [ClassType.PROVIDER]: 'providers',\n [ClassType.SUBSCRIBER]: 'subscribers',\n } as {\n [key in ClassType]: keyof ContextOptions<any, any, any, any, any, any>;\n };\n\n\n\n\n export type MiddlewareType = [Function, any[]];\n\n\n\n export interface DatabaseConfig {\n /**\n * database name\n */\n database?: string;\n /**\n * only for file base db: sqlite, sqljs\n */\n location?: string;\n synchronize: boolean;\n dropSchema: boolean;\n type?: CoreModels.DatabaseType;\n\n autoSave: boolean; // TODO what is this ?\n /**\n * for websql db mode\n */\n useLocalForage?: boolean;\n logging: boolean;\n\n databasePort?: number;\n databaseHost?: string;\n databaseUsername?: string;\n databasePassword?: string;\n }\n\n\n\n\n export type ISession = {\n secret?: string;\n saveUninitialized?: boolean;\n /**\n * max age of session\n */\n cookieMaxAge?: number;\n secure?: boolean;\n resave?: boolean;\n };\n\n\n\n export type ContectionOptionsLogs = {\n http?: boolean;\n realtime?: boolean;\n framework?: boolean;\n db?: boolean;\n };\n export interface ContextOptions<\n CONTEXTS,\n CONTROLLERS,\n ENTITIES,\n REPOSITORIES,\n PROVIDERS,\n SUBSCRIBERS,\n > {\n contextName: string;\n /**\n * host/port for initing backend server\n */\n host?: string;\n /**\n * frontend host only needed when we are\n * using withCredentials for axios\n * and session cookie\n * or realtime communication\n */\n frontendHost?: string;\n /**\n * backend way of communication\n * between taon backends/processes\n */\n remoteHost?: string;\n useIpcWhenElectron?: boolean;\n contexts?: CONTEXTS;\n controllers?: CONTROLLERS;\n entities?: ENTITIES;\n repositories?: REPOSITORIES;\n providers?: PROVIDERS;\n subscribers?: SUBSCRIBERS;\n session?: ISession;\n productionMode?: boolean;\n abstract?: boolean;\n logs?: boolean | ContectionOptionsLogs;\n database?: boolean | DatabaseConfig;\n disabledRealtime?: boolean;\n https?: {\n key: string;\n cert: string;\n };\n publicAssets?: { serverPath: string; locationOnDisk: string }[];\n middlewares?: MiddlewareType[];\n /**\n * @deprecated\n * only for debugging purpose\n */\n override?: {\n entities?: Function[];\n controllers?: Function[];\n repositories?: Function[];\n providers?: Function[];\n subscribers?: Function[];\n };\n }\n\n\n\n export class DecoratorAbstractOpt {\n className: string;\n }\n\n\n\n export class ParamConfig {\n paramName: string;\n paramType: CoreModels.ParamType;\n index: number;\n defaultType: any;\n expireInSeconds?: number;\n }\n\n\n\n export class MethodConfig {\n methodName: string;\n /**\n * path is global in express app\n */\n global?: boolean;\n /**\n * override default content type\n */\n contentType?: any;\n /**\n * override default axiso response type\n */\n responseType?: any;\n path: string;\n descriptor: PropertyDescriptor;\n type: CoreModels.HttpMethod;\n/* */\n/* */\n \n parameters: { [paramName: string]: ParamConfig } = {};\n }\n\n\n\n export class ControllerConfig extends DecoratorAbstractOpt {\n realtime?: boolean;\n path: string;\n uniqueKey?: string;\n methods: { [methodName: string]: MethodConfig } = {};\n }\n\n\n\n export class RuntimeControllerConfig extends ControllerConfig {\n calculatedPath?: string;\n browserTransformFn?: (entity: any) => any;\n }\n\n\n\n export namespace Http {\n export import Rest = ModelsNg2Rest;\n\n export type ContextENDPOINT = { target: Function; initFN: Function };\n\n export type FormlyFromType = 'material' | 'bootstrap';\n\n export type ExpressContext<T> = (\n req: ExpressRequest,\n res: ExpressResponse,\n ) => T;\n\n export type SyncResponse<T> = string | T;\n\n export type ResponseFuncOpt<T> = {\n limitSize?: (\n enties: Function | Function[],\n include: string[],\n exclude: string[],\n ) => void;\n };\n\n export type SyncResponseFunc<T> = (\n options?: ResponseFuncOpt<T>,\n ) => SyncResponse<T>;\n export type MixResponse<T> = SyncResponse<T> | ExpressContext<T>;\n\n export interface ClientAction<T> {\n received?: Rest.PromiseObservableMix<Rest.HttpResponse<T>>;\n }\n\n export interface __Response<T> {\n/* */\n/* */\n \n }\n\n export interface AsyncResponse<T> {\n (\n req?: ExpressRequest,\n res?: ExpressResponse,\n ): Promise<SyncResponse<T> | SyncResponseFunc<T>>;\n }\n\n export type Response<T = string> = (__Response<T> | AsyncResponse<T>) &\n ClientAction<T> &\n __Response<T>;\n\n export class Errors {\n public toString = (): string => {\n return this.message;\n };\n\n private constructor(\n public message: string,\n private code: ModelsNg2Rest.HttpCode = 400,\n ) {}\n\n private static create(\n message: string,\n code: ModelsNg2Rest.HttpCode = 400,\n ) {\n return new Errors(message, code);\n }\n\n public static entityNotFound(entity?: Function) {\n return Errors.create(\n `Entity ${ClassHelpers.getName(entity)} not found`,\n );\n }\n\n public static custom(\n message: string,\n code: ModelsNg2Rest.HttpCode = 400,\n ) {\n return Errors.create(message, code);\n }\n }\n\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/models.ts","\n\nimport { CoreModels, _ } from 'tnp-core/browser';\nimport { Models } from '../../models';\nimport { Symbols } from '../../symbols';\nimport { Models as ModelsNg2Rest } from 'ng2-rest/browser';\nconst metaReq = (\n method: Models.Http.Rest.HttpMethod,\n path: string,\n target: Function,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n pathOrOptions: string | TaonHttpDecoratorOptions,\n pathIsGlobal: boolean,\n) => {\n let options: TaonHttpDecoratorOptions;\n if (typeof pathOrOptions === 'object') {\n options = pathOrOptions;\n pathOrOptions = options.path as any;\n pathIsGlobal = !!options.pathIsGlobal;\n path = options.path;\n } else {\n options = { pathOrOptions, pathIsGlobal } as any;\n }\n\n const { overrideContentType, overridResponseType } = options;\n\n let methodConfig: Models.MethodConfig = Reflect.getMetadata(\n Symbols.metadata.options.controllerMethod,\n target.constructor,\n propertyKey,\n );\n if (!methodConfig) {\n methodConfig = new Models.MethodConfig();\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n }\n\n methodConfig.methodName = propertyKey;\n methodConfig.type = method;\n if (!path) {\n let paramsPathConcatedPath = '';\n for (const key in methodConfig.parameters) {\n if (methodConfig.parameters.hasOwnProperty(key)) {\n const element = methodConfig.parameters[key];\n if (\n element.paramType === 'Path' &&\n _.isString(element.paramName) &&\n element.paramName.trim().length > 0\n ) {\n paramsPathConcatedPath += `/${element.paramName}/:${element.paramName}`;\n }\n }\n }\n methodConfig.path = `/${propertyKey}${paramsPathConcatedPath}`;\n } else {\n methodConfig.path = path;\n }\n\n methodConfig.descriptor = descriptor;\n methodConfig.global = pathIsGlobal;\n methodConfig.contentType = overrideContentType;\n methodConfig.responseType = overridResponseType;\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n\n};\n\nexport interface TaonHttpDecoratorOptions {\n path?: string;\n pathIsGlobal?: boolean;\n overrideContentType?: CoreModels.ContentType;\n overridResponseType?: ModelsNg2Rest.ResponseTypeAxios;\n}\n\nexport function GET(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'get',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function HEAD(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'head',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function POST(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'post',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function PUT(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'put',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function PATCH(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'patch',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\nexport function DELETE(\n pathOrOptions?: string | TaonHttpDecoratorOptions,\n pathIsGlobal = false,\n) {\n return function (\n target: any,\n propertyKey: string,\n descriptor: PropertyDescriptor,\n ) {\n metaReq(\n 'delete',\n pathOrOptions as string,\n target,\n propertyKey,\n descriptor,\n pathOrOptions,\n pathIsGlobal,\n );\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/http/http-methods-decorators.ts","\n\nimport { Models } from '../../models';\nimport { Symbols } from '../../symbols';\n\nfunction metaParam(\n param: Models.Http.Rest.ParamType,\n name: string,\n expire: number,\n defaultValue = undefined,\n target: Function,\n propertyKey: string | symbol,\n parameterIndex: number,\n) {\n let methodConfig: Models.MethodConfig = Reflect.getMetadata(\n Symbols.metadata.options.controllerMethod,\n target.constructor,\n propertyKey,\n );\n if (!methodConfig) {\n methodConfig = new Models.MethodConfig();\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n }\n\n const nameKey = name ? name : param;\n const p = (methodConfig.parameters[nameKey] = !methodConfig.parameters[\n nameKey\n ]\n ? new Models.ParamConfig()\n : methodConfig.parameters[nameKey]);\n p.index = parameterIndex;\n p.paramName = name;\n p.paramType = param;\n p.defaultType = defaultValue;\n p.expireInSeconds = expire;\n Reflect.defineMetadata(\n Symbols.metadata.options.controllerMethod,\n methodConfig,\n target.constructor,\n propertyKey,\n );\n\n}\n\nexport function Path(name: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam('Path', name, undefined, {}, target, propertyKey, parameterIndex);\n };\n}\n\nexport function Query(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Query',\n name,\n undefined,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Cookie(name: string, expireInSecond: number = 3600) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Cookie',\n name,\n expireInSecond,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Header(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam(\n 'Header',\n name,\n undefined,\n {},\n target,\n propertyKey,\n parameterIndex,\n );\n };\n}\n\nexport function Body(name?: string) {\n return function (\n target: any,\n propertyKey: string | symbol,\n parameterIndex: number,\n ) {\n metaParam('Body', name, undefined, {}, target, propertyKey, parameterIndex);\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/http/http-params-decorators.ts","\n\nimport * as methods from './http-methods-decorators';\nimport * as params from './http-params-decorators';\nimport { Models } from 'ng2-rest/browser';\n\nexport namespace Http {\n export import GET = methods.GET;\n export import POST = methods.POST;\n export import PUT = methods.PUT;\n export import DELETE = methods.DELETE;\n export import PATCH = methods.PATCH;\n export import HEAD = methods.HEAD;\n export import Response = Models.HttpResponse;\n export namespace Param {\n export import Query = params.Query;\n export import Path = params.Path;\n export import Body = params.Body;\n export import Cookie = params.Cookie;\n export import Header = params.Header;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/http/http-decorators.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\n\nexport function TaonController(options?: TaonControllerOptions) {\n return function (constructor: Function) {\n ClassHelpers.setName(constructor, options?.className);\n Reflect.defineMetadata(\n Symbols.metadata.options.controller,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n };\n}\n\nexport class TaonControllerOptions extends Models.DecoratorAbstractOpt {\n /**\n * typeorm realtime subscribtion // TODO disabled for now, does not make sense ?s\n */\n realtime?: boolean;\n /**\n * override default path for controller api\n */\n path?: string;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/controller-decorator.ts","\n\n\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { EndpointContext } from '../endpoint-context';\nimport { Symbols } from '../symbols';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport type { BaseRepository } from './base-repository';\nimport { BaseClass } from './base-class';\n\n\nexport class BaseInjector<CloneT extends BaseClass = any> {\n /**\n * for proxy purposes\n */\n getOriginalPrototype: () => any;\n /**\n * for proxy purposes\n */\n getOriginalConstructor: () => any;\n\n\n /**\n * class initialization hook\n * taon after class instace creation\n */\n async _() {\n const reposToInit = this.__repositories_to_init__;\n for (const repo of reposToInit) {\n await repo.__init(this);\n }\n }\n\n\n\n /**\n * @deprecated use ctx instead\n * Current endpoint context\n */\n get __endpoint_context__() {\n return this[Symbols.ctxInClassOrClassObj] as EndpointContext;\n }\n\n /**\n * get current endpoint context\n */\n get ctx() {\n return this.__endpoint_context__;\n }\n\n\n\n\n\n /**\n * inject crud repo for entity\n */\n injectRepo<T>(entityForCrud: new (...args: any[]) => T): BaseRepository<T> {\n const repoProxy = this.__inject(void 0, {\n localInstance: true,\n resolveClassFromContext: 'BaseRepository',\n locaInstanceConstructorArgs: [() => entityForCrud],\n });\n this.__repositories_to_init__.push(repoProxy as any);\n return repoProxy as any;\n }\n\n\n\n injectCustomRepository<T>(\n cutomRepositoryClass: new (...args: any[]) => T,\n ): T {\n const repoProxy = this.__inject<T>(cutomRepositoryClass, {\n localInstance: true,\n locaInstanceConstructorArgs: [\n () => cutomRepositoryClass.prototype.entityClassResolveFn(),\n ],\n });\n this.__repositories_to_init__.push(repoProxy as any);\n return repoProxy;\n }\n\n\n\n /**\n * aliast to .injectRepository()\n */\n injectCustomRepo<T>(cutomRepositoryClass: new (...args: any[]) => T): T {\n const repoProxy = this.injectCustomRepository<T>(cutomRepositoryClass);\n this.__repositories_to_init__.push(repoProxy as any);\n return repoProxy;\n }\n\n\n\n injectController<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n\n /**\n * aliast to .injectController()\n */\n injectSubscriber<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n\n /**\n * aliast to .injectController()\n */\n injectCtrl<T>(ctor: new (...args: any[]) => T): T {\n return this.injectController<T>(ctor);\n }\n\n\n\n /**\n * global provider available in every context\n */\n injectGlobalProvider<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n\n /**\n * context scoped provider\n * TODO\n */\n injectContextProvider<T>(ctor: new (...args: any[]) => T): T {\n return this.__inject<T>(ctor, { localInstance: false });\n }\n\n\n /**\n * Repositories to init (by controller)\n */\n protected __repositories_to_init__ = [] as BaseRepository<any>[];\n\n\n /**\n * Inject: Controllers, Providers, Repositories, Services, etc.\n * TODO addd nest js injecting\n */\n private __inject<T>(\n ctor: new (...args: any[]) => T,\n options?: {\n /**\n * (repositories are ONLY/ALWAYS local instances)\n * If true, then local instance will be created\n * controllers, providers can be local or global\n */\n localInstance: boolean;\n resolveClassFromContext?: string;\n locaInstanceConstructorArgs?: ConstructorParameters<typeof ctor>;\n },\n ): T {\n if (!options) {\n options = {} as any;\n }\n\n const contextClassInstance = this;\n return new Proxy(\n {},\n {\n get: (__, propName) => {\n const contextFromClass: EndpointContext =\n ctor && ctor[Symbols.ctxInClassOrClassObj];\n\n const resultContext: EndpointContext = contextFromClass\n ? contextFromClass\n : this.__endpoint_context__;\n\n if (options.resolveClassFromContext) {\n const resolvedClass = resultContext.getClassFunByClassName(\n options.resolveClassFromContext,\n );\n ctor = resolvedClass as any;\n }\n\n if (resultContext) {\n var instance: T = resultContext.inject(ctor, {\n ...options,\n contextClassInstance,\n });\n if (!instance) {\n throw new Error(\n `Not able to inject \"${\n ClassHelpers.getName(ctor) || ctor.name\n }\" inside ` +\n `property \"${propName?.toString()}\" on class \"${ClassHelpers.getName(\n this,\n )}\".\n\n Please add \"${\n ClassHelpers.getName(ctor) || ctor.name\n }\" to (entites or contorllers or providers or repositories)\n\n `,\n );\n }\n\n const result =\n typeof instance[propName] === 'function'\n ? instance[propName].bind(instance)\n : instance[propName];\n\n\n return result;\n }\n\n\n\n },\n set: (__, propName, value) => {\n const contextFromClass = ctor && ctor[Symbols.ctxInClassOrClassObj];\n const resultContext: EndpointContext = contextFromClass\n ? contextFromClass\n : this.__endpoint_context__;\n\n if (options.resolveClassFromContext) {\n const resolvedClass = resultContext.getClassFunByClassName(\n options.resolveClassFromContext,\n );\n ctor = resolvedClass as any;\n }\n\n if (resultContext) {\n var instance: T = resultContext.inject(ctor, {\n ...options,\n contextClassInstance,\n });\n if (!instance) {\n const classNameNotResolved =\n ClassHelpers.getName(ctor) || ctor.name;\n throw new Error(\n `Not able to inject \"${classNameNotResolved}\" inside ` +\n `property \"${propName?.toString()}\" on class \"${ClassHelpers.getName(\n this,\n )}\".\n\n Please add \"${\n ClassHelpers.getName(ctor) || ctor.name\n }\" to (entites or contorllers or providers or repositories)\n\n `,\n );\n }\n instance[propName] = value;\n }\n return true;\n },\n },\n ) as T;\n }\n\n\n\n\n\n public clone(override: Partial<CloneT>): CloneT {\n const classFn = ClassHelpers.getClassFnFromObject(this);\n const result = _.merge(new classFn(), _.merge(_.cloneDeep(this), override));\n\n return result;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-injector.ts","\n\nimport { TaonController } from '../decorators/classes/controller-decorator';\nimport { BaseInjector } from './base-injector';\n\n@TaonController({ className: 'BaseController' })\nexport class BaseController extends BaseInjector {\n /**\n * init example data for db\n */\n initExampleDbData(): Promise<any> {\n return void 0;\n }\n\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-controller.ts","\n\n\nimport { Symbols } from '../symbols';\nimport { BaseController } from './base-controller';\nimport { BaseRepository } from './base-repository';\nimport { GET, PUT, DELETE, POST, HEAD, PATCH, } from '../decorators/http/http-methods-decorators';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { Query, Path, Body } from '../decorators/http/http-params-decorators';\nimport { MySqlQuerySource } from 'taon-type-sql/browser';\nimport { Models } from '../models';\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { TaonController, TaonControllerOptions, } from '../decorators/classes/controller-decorator';/* */\n/* */\n/* */\n\nimport { ClassHelpers } from '../helpers/class-helpers';\n\nimport { Validators } from '../validators';\nimport { TaonEntityOptions } from '../decorators/classes/entity-decorator';\n\n\n/**\n * Please override property entityClassFn with entity class.\n */\n@TaonController({ className: 'BaseCrudController' })\nexport abstract class BaseCrudController<Entity> extends BaseController {\n\n protected db?: BaseRepository<Entity>;\n\n /**\n * Please provide entity as class propery entityClassFn:\n * @returns class function\n *\n */\n abstract entityClassResolveFn: () => any;\n\n\n\n async _() {\n if (!_.isFunction(this.entityClassResolveFn)) {\n Helpers.warn(\n `Skipping initing CRUD controller ${ClassHelpers.getName(\n this,\n )} because entityClassResolveFn is not provided.`,\n );\n return;\n }\n\n let entityClassFn = this.entityClassResolveFn();\n this.db = this.injectRepo(entityClassFn);\n\n if (entityClassFn) {\n const configEntity = Reflect.getMetadata(\n Symbols.metadata.options.entity,\n ClassHelpers.getClassFnFromObject(this),\n ) as TaonEntityOptions;\n if (configEntity?.createTable === false) {\n Helpers.warn(\n `Table for entity ${ClassHelpers.getName(\n entityClassFn,\n )} will not be created. Crud will not work properly.`,\n );\n }\n } else {\n Helpers.error(`Entity class not provided for controller ${ClassHelpers.getName(\n this,\n )}.\n\n Please provide entity as class propery entityClassFn:\n\n class ${ClassHelpers.getName(this)} extends BaseCrudController<Entity> {\n\n entityClassResolveFn = ()=> MyEntityClass;\n\n }\n\n `);\n }\n await super._();\n }\n\n\n\n @GET(`/:id/property/:property`)\n bufforedChanges(\n @Path(`id`) id: number | string,\n @Path(`property`) property: string,\n @Query('alreadyLength') alreadyLength?: number,\n ): Models.Http.Response<string | any[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @GET()\n pagination(\n @Query('pageNumber') pageNumber: number = 1,\n @Query('pageSize') pageSize: number = 10,\n @Query('search') search: string = '',\n ): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @GET()\n getAll(): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @GET(`/:id`)\n getBy(@Path(`id`) id: number | string): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @PUT(`/:id`)\n updateById(\n @Path(`id`) id: number | string,\n @Body() item: Entity,\n ): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @PATCH(`/:id`)\n patchById(\n @Path(`id`) id: number | string,\n @Body() item: Entity,\n ): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @PUT()\n bulkUpdate(@Body() items: Entity[]): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @DELETE(`/:id`)\n deleteById(@Path(`id`) id: number): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @DELETE(`/bulkDelete/:ids`)\n bulkDelete(\n @Path(`ids`) ids: (number | string)[],\n ): Models.Http.Response<(number | string | Entity)[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @POST()\n create(@Body() item: Entity): Models.Http.Response<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n @POST()\n bulkCreate(@Body() items: Entity): Models.Http.Response<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-crud-controller.ts","\n\n\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { EndpointContext } from '../endpoint-context';\nimport { Symbols } from '../symbols';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport type { BaseRepository } from './base-repository';\n\nimport { inject } from '@angular/core';\n\n\n\nexport class BaseClass<CloneT extends BaseClass = any> {\n\n /**\n * class initialization hook\n * taon after class instace creation\n */\n async _() {}\n\n\n\n public clone(override: Partial<CloneT>): CloneT {\n const classFn = ClassHelpers.getClassFnFromObject(this);\n const result = _.merge(new classFn(), _.merge(_.cloneDeep(this), override));\n\n return result;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-class.ts","\n\n/* */\n/* */\n \nimport { EndpointContext } from '../endpoint-context';\nimport { Symbols } from '../symbols';\nimport { BaseClass } from './base-class';\n\nlet EntityDecorator = () => {\n return (target: any) => {};\n};\n\n/* */\n/* */\n \n\n@EntityDecorator()\nexport abstract class BaseEntity<\n /**\n * type for cloning\n */\n CloneT extends BaseClass = any,\n> extends BaseClass<CloneT> {}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-entity.ts","\n\n/* */\n/* */\n \nimport { Orm } from '../orm';\nimport { BaseEntity } from './base-entity';\nimport type { BaseClass } from './base-class';\n\n\nlet EntityDecorator = () => {\n return (target: any) => {};\n};\n\n/* */\n/* */\n \n\n@EntityDecorator()\nexport abstract class BaseAbstractEntity<\n CloneT extends BaseClass = any,\n> extends BaseEntity<CloneT> {\n/* */\n/* */\n \n id: string;\n\n/* */\n/* */\n \n version: number;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-abstract-entity.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\nimport { Repository as TypeormRepository, EntityRepository, } from 'taon-typeorm/browser';/* */\n/* */\n/* */\n\nimport { _ } from 'tnp-core/browser';\n\nexport function TaonRepository(options: TaonRepositoryOptions) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols.metadata.options.repository,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers.setName(constructor, options?.className);\n };\n}\n\nexport class TaonRepositoryOptions<\n T = any,\n> extends Models.DecoratorAbstractOpt {}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/repository-decorator.ts","\n\n\nimport type {\n DataSource,\n DeepPartial,\n DeleteResult,\n FindManyOptions,\n FindOneOptions,\n FindOptionsWhere,\n InsertResult,\n\n RemoveOptions,\n Repository,\n SaveOptions,\n UpdateResult,\n} from 'taon-typeorm';\n\nimport type { QueryDeepPartialEntity } from 'taon-typeorm/lib/typeorm/query-builder/QueryPartialEntity';\n\nimport type { UpsertOptions } from 'taon-typeorm/lib/typeorm/repository/UpsertOptions';\n\n\n\nimport type { DataSource as DataSourceType } from 'taon-typeorm/browser';\nimport { EndpointContext } from '../endpoint-context';\nimport { Helpers } from 'tnp-core/browser';\nimport { _ } from 'tnp-core/browser';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport { MySqlQuerySource } from 'taon-type-sql/browser';\nimport { TaonRepository } from '../decorators/classes/repository-decorator';\nimport { BaseInjector } from './base-injector';\n\n\nconst INDEX_KEYS_NO_FOR_UPDATE = ['id'];\n\n@TaonRepository({ className: 'BaseRepository' })\nexport abstract class BaseRepository<\n Entity extends { id?: any },\n> extends BaseInjector {\n\n\n\n\n\n\n abstract entityClassResolveFn: () => any;\n constructor(\n\n private __entityClassResolveFn: () => any,\n ) {\n super();\n // @ts-ignore\n this.entityClassResolveFn = __entityClassResolveFn;\n }\n\n\n\n private __dbQuery: MySqlQuerySource;\n\n public get dbQuery(): MySqlQuerySource {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n public get connection(): DataSourceType {\n/* */\n/* */\n return (void 0);\n }\n\n\n\n/* */\n/* */\n \n protected get repository() {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * target for repository\n */\n public get target(): Function {\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to repository\n */\n protected get repo() {\n/* */\n/* */\n return (void 0);\n }\n\n public get repositoryExists(): boolean {\n/* */\n/* */\n return (void 0);\n }\n\n\n\n\n\n async __init(context?: any) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n /**\n * Checks if entity has an id.\n * If entity composite compose ids, it will check them all.\n */\n hasId(entity: Entity): boolean {\n return this.repo.hasId(entity);\n }\n\n\n\n /**\n * Gets entity mixed id.\n */\n getId(entity: Entity): any {\n return this.repo.getId(entity);\n }\n\n\n\n /**\n Saves a given entity in the database.\n * If entity does not exist in the database then inserts, otherwise updates.\n */\n async save(\n item: Entity,\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to save\n * -> it will actuall create new entity in db\n * in oposite to typeorm create method\n */\n async create(\n item: Entity,\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity> {\n return this.save(item, options);\n }\n\n async bulkSave(\n items: Entity[],\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async bulkCreate(\n items: Entity[],\n options?: SaveOptions & {\n reload: false;\n },\n ): Promise<Entity[]> {\n return this.bulkSave(items, options);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Saves all given entities in the database.\n * If entities do not exist in the database then inserts, otherwise updates.\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Merges multiple entities (or entity-like objects) into a given entity.\n */\n merge(mergeIntoEntity: Entity, ...entityLikes: Entity[]): Entity {\n return this.repo.merge(mergeIntoEntity, ...entityLikes);\n }\n\n\n\n /**\n * Creates a new entity from the given plain javascript object. If entity already exist in the database, then\n * it loads it (and everything related to it), replaces all values with the new ones from the given object\n * and returns this new entity. This new entity is actually a loaded from the db entity with all properties\n * replaced from the new object.\n *\n * Note that given entity-like object must have an entity id / primary key to find entity by.\n * Returns undefined if entity with given id was not found.\n */\n preload(entityLike: Entity): Promise<Entity | undefined> {\n return this.repo.preload(entityLike);\n }\n\n\n\n\n /**\n * Removes a given entities from the database.\n */\n async remove(idOrEntity: number | string | Entity): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n /**\n * alias to remove\n */\n async delete(idOrEntity: number | string | Entity): Promise<Entity> {\n return this.remove(idOrEntity);\n }\n\n /**\n * alias to removeById\n */\n async deleteById(id: number | string): Promise<Entity> {\n return this.remove(id);\n }\n async bulkRemove(\n idsOrEntities: (number | string | Entity)[],\n ): Promise<Entity[]> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async bulkDelete(ids: (number | string | Entity)[]): Promise<Entity[]> {\n return this.bulkRemove(ids);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends Entity>(\n entities: T[],\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T[]>;\n /**\n * Records the delete date of all given entities.\n */\n softRemove<T extends Entity>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>;\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends Entity>(\n entity: T,\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T>;\n /**\n * Records the delete date of a given entity.\n */\n softRemove<T extends Entity>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity> {\n return this.repo.softRemove(entity, options);\n }\n\n\n\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends Entity>(\n entities: T[],\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T[]>;\n /**\n * Recovers all given entities in the database.\n */\n recover<T extends Entity>(\n entities: T[],\n options?: SaveOptions,\n ): Promise<(T & Entity)[]>;\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends Entity>(\n entity: T,\n options: SaveOptions & {\n reload: false;\n },\n ): Promise<T>;\n /**\n * Recovers a given entity in the database.\n */\n recover<T extends Entity>(\n entity: T,\n options?: SaveOptions,\n ): Promise<T & Entity> {\n return this.repo.recover(entity, options);\n }\n\n\n\n /**\n * Inserts a given entity into the database.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT query.\n * Does not check if entity exist in the database, so query will fail if duplicate entity is being inserted.\n */\n insert(\n entity: QueryDeepPartialEntity<Entity> | QueryDeepPartialEntity<Entity>[],\n ): Promise<InsertResult> {\n return this.repo.insert(entity);\n }\n\n\n\n async update(item: Entity) {\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n async updateById(id: number | string, item: Entity) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n async bulkUpdate(items: Entity[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n /**\n * Inserts a given entity into the database, unless a unique constraint conflicts then updates the entity\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient INSERT ... ON CONFLICT DO UPDATE/ON DUPLICATE KEY UPDATE query.\n */\n upsert(\n entityOrEntities:\n | QueryDeepPartialEntity<Entity>\n | QueryDeepPartialEntity<Entity>[],\n conflictPathsOrOptions: string[] | UpsertOptions<Entity>,\n ): Promise<InsertResult> {\n return this.repo.upsert(entityOrEntities, conflictPathsOrOptions);\n }\n\n\n\n /**\n * Records the delete date of entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n softDelete(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n\n\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.repo.softDelete(criteria);\n }\n\n\n\n /**\n * Restores entities by a given criteria.\n * Unlike save method executes a primitive operation without cascades, relations and other operations included.\n * Executes fast and efficient SOFT-DELETE query.\n * Does not check if entity exist in the database.\n */\n restore(\n criteria:\n | string\n | string[]\n | number\n | number[]\n | Date\n | Date[]\n\n\n | FindOptionsWhere<Entity>,\n ): Promise<UpdateResult> {\n return this.repo.restore(criteria);\n }\n\n\n\n /**\n * Counts entities that match given options.\n * Useful for pagination.\n */\n count(options?: FindManyOptions<Entity>): Promise<number> {\n return this.repo.count(options);\n }\n\n\n\n /**\n * Counts entities that match given conditions.\n * Useful for pagination.\n */\n countBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<number> {\n return this.repo.countBy(where);\n }\n\n\n\n /**\n * Finds entities that match given find options.\n */\n find(options?: FindManyOptions<Entity>): Promise<Entity[]> {\n return this.repo.find(options);\n }\n\n\n\n /**\n * Finds entities that match given find options.\n */\n findBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity[]> {\n return this.repo.findBy(where);\n }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n //\n /**\n * Finds entities that match given find options.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCount(options?: FindManyOptions<Entity>): Promise<[Entity[], number]> {\n return this.repo.findAndCount(options);\n }\n\n\n\n /**\n * Finds entities that match given WHERE conditions.\n * Also counts all entities that match given conditions,\n * but ignores pagination settings (from and take options).\n */\n findAndCountBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<[Entity[], number]> {\n return this.repo.findAndCountBy(where);\n }\n\n\n\n /**\n * Finds entities with ids.\n * Optionally find options or conditions can be applied.\n *\n * @deprecated use `findBy` method instead in conjunction with `In` operator, for example:\n *\n * .findBy({\n * id: In([1, 2, 3])\n * })\n */\n findByIds(ids: any[]): Promise<Entity[]> {\n return this.repo.findByIds(ids);\n }\n\n\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - returns null.\n */\n findOne(options: FindOneOptions<Entity>): Promise<Entity | null> {\n return this.repo.findOne(options);\n }\n\n\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - returns null.\n */\n findOneBy(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity | null> {\n return this.repo.findOneBy(where);\n }\n\n\n\n /**\n * Finds first entity that matches given id.\n * If entity was not found in the database - returns null.\n *\n * @deprecated use `findOneBy` method instead in conjunction with `In` operator, for example:\n *\n * .findOneBy({\n * id: 1 // where \"id\" is your primary column name\n * })\n */\n findOneById(\n id: number | string | Date,\n\n ): Promise<Entity | null> {\n return this.repo.findOneById(id);\n }\n\n\n\n /**\n * Finds first entity by a given find options.\n * If entity was not found in the database - rejects with error.\n */\n findOneOrFail(options: FindOneOptions<Entity>): Promise<Entity> {\n return this.repo.findOneOrFail(options);\n }\n\n\n\n /**\n * Finds first entity that matches given where condition.\n * If entity was not found in the database - rejects with error.\n */\n findOneByOrFail(\n where: FindOptionsWhere<Entity> | FindOptionsWhere<Entity>[],\n ): Promise<Entity> {\n return this.repo.findOneByOrFail(where);\n }\n\n\n\n /**\n * Executes a raw SQL query and returns a raw database results.\n * Raw query execution is supported only by relational databases (MongoDB is not supported).\n */\n query(query: string, parameters?: any[]): Promise<any> {\n return this.repo.query(query, parameters);\n }\n\n\n\n /**\n * Clears all the data from the given table/collection (truncates/drops it).\n *\n * Note: this method uses TRUNCATE and may not work as you expect in transactions on some platforms.\n * @see https://stackoverflow.com/a/5972738/925151\n */\n clear(): Promise<void> {\n return this.repo.clear();\n }\n\n\n\n /**\n * Increments some column by provided value of the entities matched given conditions.\n */\n increment(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.repo.increment(conditions, propertyPath, value);\n }\n\n\n\n /**\n * Decrements some column by provided value of the entities matched given conditions.\n */\n decrement(\n conditions: FindOptionsWhere<Entity>,\n propertyPath: string,\n value: number | string,\n ): Promise<UpdateResult> {\n return this.repo.decrement(conditions, propertyPath, value);\n }\n\n\n\n /**\n * @deprecated use findAndCount instead\n */\n async getAll() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n async getBy(id: number | string): Promise<Entity> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-repository.ts","\n\nimport { BaseInjector } from './base-injector';\n\nexport class BaseProvider extends BaseInjector {}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-provider.ts","\n\nexport class DITaonContainer {\n private static instances = new Map();\n\n static resolve<T>(target: Function): T {\n if (DITaonContainer.instances.has(target)) {\n return DITaonContainer.instances.get(target);\n }\n\n\n const injections = []; // tokens.map(token => Container.inject<any>(token));\n\n const instance = new (target as any)(...injections);\n DITaonContainer.instances.set(target, instance);\n return instance;\n }\n\n static inject<T>(target: new (...args: any[]) => T): T {\n return new Proxy(\n {},\n {\n get: (_, propName) => {\n let instance: T =\n DITaonContainer.instances.get(target) ||\n DITaonContainer.resolve(target);\n return typeof instance[propName] === 'function'\n ? instance[propName].bind(instance)\n : instance[propName];\n },\n set: (_, propName, value) => {\n let instance: T =\n DITaonContainer.instances.get(target) ||\n DITaonContainer.resolve(target);\n instance[propName] = value;\n return true;\n },\n },\n ) as T;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/dependency-injection/di-container.ts","\n\nimport { Models } from './models';\nimport { Response as ExpressResponse, Request as ExpressRequest, } from 'express';/* */\n/* */\n/* */\n\nimport { TaonHelpers } from './helpers/taon-helpers';\nimport { Helpers } from 'tnp-core/browser';\n\nexport const getResponseValue = <T>(\n response: Models.Http.Response<T>,\n options?: { req: ExpressRequest; res: ExpressResponse },\n): Promise<T> => {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n};\n\n ;({}); // @--end-of-file-for-module=taon lib/get-response-value.ts","\n\nimport { Helpers } from 'tnp-core/browser';\n\nconst ENV = Helpers.isBrowser ? window['ENV'] : global['ENV'];\n\nexport { ENV };\n\n ;({}); // @--end-of-file-for-module=taon lib/env.ts","\n\n\n/* */\n/* */\n \nimport { _ } from 'tnp-core/browser';\nimport { Subscriber } from 'rxjs';\nimport { Symbols } from '../symbols';\nimport { Socket as SocketClient } from 'socket.io-client';\nimport { DefaultEventsMap } from 'socket.io/dist/typed-events';\nimport { RealtimeModels } from './realtime.models';\n\n\nexport class RealtimeSubsManager {\n private isListening = false;\n private observers: Subscriber<any>[] = [];\n constructor(private options: RealtimeModels.SubsManagerOpt) {}\n\n\n startListenIfNotStarted(\n realtime: SocketClient<DefaultEventsMap, DefaultEventsMap>,\n ) {\n if (this.options.core.ctx.disabledRealtime) {\n console.warn(`[Taon][startListenIfNotStarted] sockets are disabled`);\n return;\n }\n\n if (!realtime) {\n console.warn(`[Taon][startListenIfNotStarted] invalid socket connection`);\n return;\n }\n\n if (!this.isListening) {\n\n this.isListening = true;\n\n if (this.options.customEvent) {\n const subscribeEvent = Symbols.REALTIME.ROOM_SUBSCRIBE_CUSTOM(\n this.options.core.ctx.contextName,\n );\n\n realtime.emit(subscribeEvent, this.options.roomName);\n } else {\n if (_.isString(this.options.property)) {\n const subscribeEvent =\n Symbols.REALTIME.ROOM_SUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n );\n\n realtime.emit(subscribeEvent, this.options.roomName);\n } else {\n const subscribeEvent =\n Symbols.REALTIME.ROOM_SUBSCRIBE_ENTITY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n );\n\n realtime.emit(subscribeEvent, this.options.roomName);\n }\n }\n\n\n realtime.on(this.options.roomName, data => {\n this.update(data);\n });\n }\n }\n\n\n\n add(observer: Subscriber<any>) {\n\n this.observers.push(observer);\n }\n\n\n\n remove(observer: Subscriber<any>) {\n\n this.observers = this.observers.filter(obs => obs !== observer);\n if (this.observers.length === 0) {\n\n this.isListening = false;\n const { core, customEvent, roomName, property } = this.options;\n\n const realtime = core.socketFE;\n\n if (customEvent) {\n realtime.emit(\n Symbols.REALTIME.ROOM_UNSUBSCRIBE_CUSTOM(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n } else {\n if (_.isString(property)) {\n realtime.emit(\n Symbols.REALTIME.ROOM_UNSUBSCRIBE_ENTITY_PROPERTY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n } else {\n realtime.emit(\n Symbols.REALTIME.ROOM_UNSUBSCRIBE_ENTITY_UPDATE_EVENTS(\n this.options.core.ctx.contextName,\n ),\n roomName,\n );\n }\n }\n }\n }\n\n\n\n private update(data: any) {\n\n const ngZone = this.options.core.ctx.ngZone;\n\n\n this.observers.forEach(observer => {\n\n if (!observer.closed) {\n if (ngZone) {\n ngZone.run(() => {\n observer.next(data);\n });\n } else {\n observer.next(data);\n }\n }\n });\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-subs-manager.ts","\n\n\nimport { _ } from 'tnp-core/browser';\nimport { RealtimeCore } from './realtime-core';\nimport { Symbols } from '../symbols';\nimport { Observable } from 'rxjs';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport { RealtimeSubsManager } from './realtime-subs-manager';\nimport { RealtimeModels } from './realtime.models';\nimport type { BaseEntity } from '../base-classes/base-entity';\nimport { Helpers } from 'tnp-core/browser';\n\n\nexport class RealtimeClient {\n private subsManagers: { [path: string]: RealtimeSubsManager } = {};\n constructor(private core: RealtimeCore) {\n this.core = core;\n if (!core.ctx.disabledRealtime) {\n\n this.init();\n\n }\n }\n\n\n private init() {\n\n const nspPath = {\n global: this.core.pathFor(),\n realtime: this.core.pathFor(\n Symbols.REALTIME.NAMESPACE(this.core.ctx.contextName),\n ),\n };\n\n\n this.core.ctx.logRealtime &&\n console.info(\n '[CLIENT] NAMESPACE GLOBAL ',\n nspPath.global.href + ` host: ${this.core.ctx.host}`,\n );\n\n this.core.ctx.logRealtime &&\n console.info(\n '[CLIENT] NAMESPACE REALTIME',\n nspPath.realtime.href + ` host: ${this.core.ctx.host}`,\n );\n\n\n\n this.core.conectSocketFE = this.core.strategy.ioClient(\n nspPath.global.origin,\n {\n path: nspPath.global.pathname,\n },\n );\n\n if (this.core.conectSocketFE.on) {\n this.core.conectSocketFE.on('connect', () => {\n\n\n\n this.core.ctx.logRealtime &&\n console.info(\n `[CLIENT] connected to GLOBAL namespace ${nspPath.global.pathname}` +\n ` of host: ${this.core.ctx.host}`,\n );\n });\n }\n\n\n\n\n this.core.socketFE = this.core.strategy.ioClient(nspPath.realtime.origin, {\n path: nspPath.realtime.pathname,\n });\n\n if (this.core.socketFE.on) {\n this.core.socketFE.on('connect', () => {\n\n\n\n this.core.ctx.logRealtime &&\n console.info(\n `[CLIENT] connected to REALTIME namespace ${nspPath.realtime.pathname}` +\n ` host: ${this.core.ctx.host}`,\n );\n });\n }\n\n\n }\n\n\n\n /**\n * Changes trigger on backend needs to be done manually.. example code:\n *\n * ...\n * Context.Realtime.Server.TrigggerEntityChanges(myEntityInstance);\n * ...\n */\n listenChangesEntity(\n entityClassFn: Function,\n idOrUniqValue: any,\n options: RealtimeModels.ChangeOption,\n ) {\n options = options || ({} as any);\n\n\n const { property, customEvent } = options;\n const className = !customEvent && ClassHelpers.getName(entityClassFn);\n\n if (_.isString(property)) {\n if (property.trim() === '') {\n throw new Error(\n `[Taon][listenChangesEntity.. incorect property '' for ${className}`,\n );\n }\n }\n\n\n return new Observable(observer => {\n\n\n if (this.core.ctx.disabledRealtime) {\n console.error(`[Taon][realtime rxjs] remove taon config flag:\n\n ...\n disabledRealtime: true\n ...\n\nto use socket realtime connection;\n `);\n return () => {\n\n };\n }\n\n let roomName: string;\n\n if (customEvent) {\n roomName = Symbols.REALTIME.ROOM_NAME_CUSTOM(\n this.core.ctx.contextName,\n customEvent,\n );\n } else {\n roomName = _.isString(property)\n ? Symbols.REALTIME.ROOM_NAME_UPDATE_ENTITY_PROPERTY(\n this.core.ctx.contextName,\n className,\n property,\n idOrUniqValue,\n )\n : Symbols.REALTIME.ROOM_NAME_UPDATE_ENTITY(\n this.core.ctx.contextName,\n className,\n idOrUniqValue,\n );\n }\n\n const roomSubOptions: RealtimeModels.SubsManagerOpt = {\n core: this.core,\n property,\n roomName,\n customEvent,\n };\n\n\n const subManagerId = this.getUniqueIdentifierForConnection(roomSubOptions);\n if (!this.subsManagers[subManagerId]) {\n this.subsManagers[subManagerId] = new RealtimeSubsManager(\n roomSubOptions,\n );\n }\n const inst = this.subsManagers[subManagerId];\n inst.add(observer);\n\n inst.startListenIfNotStarted(this.core.socketFE);\n\n return () => {\n inst.remove(observer);\n };\n });\n }\n\n\n\n\n listenChangesEntityTable(entityClassFn: Function) {\n const className = ClassHelpers.getName(entityClassFn);\n return this.listenChangesEntity(entityClassFn, void 0, {\n customEvent: Symbols.REALTIME.TABLE_CHANGE(\n this.core.ctx.contextName,\n className,\n ),\n });\n }\n\n\n\n\n /**\n * Changes trigger on backend needs to be done manually.. example code:\n *\n * ...\n * Context.Realtime.Server.TrigggerEntityChanges(myEntityInstance);\n * // or\n * Context.Realtime.Server.TrigggerEntityPropertyChanges(myEntityInstance,{ property: 'geolocationX' });\n * ...\n */\n listenChangesEntityObj<T extends BaseEntity>(\n entity: T,\n options?: RealtimeModels.ChangeOption,\n ) {\n const classFn = ClassHelpers.getClassFnFromObject(entity);\n const uniqueKey = ClassHelpers.getUniqueKey(classFn);\n return this.listenChangesEntity(classFn, entity[uniqueKey], options);\n }\n\n\n\n listenChangesCustomEvent(customEvent: string) {\n return this.listenChangesEntity(void 0, void 0, {\n customEvent,\n });\n }\n\n\n\n /**\n * Trigger custom event on backend\n * @param customEvent global event name\n * @param dataToPush\n */\n public triggerCustomEvent(customEvent: string, dataToPush?: any) {\n this.core.socketFE.emit(customEvent, dataToPush);\n }\n\n\n\n private getUniqueIdentifierForConnection(options: RealtimeModels.SubsManagerOpt) {\n const url = new URL(options.core.ctx.host);\n return `${this.core.ctx.contextName}:${url.origin}|${options.roomName}|${options.property}|${options.customEvent}`;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-client.ts","\n\n\nimport { Symbols } from '../symbols';\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { RealtimeCore } from './realtime-core';\nimport { ClassHelpers } from '../helpers/class-helpers';\nimport type { BaseEntity } from '../base-classes/base-entity';\nimport { Observable, Subject } from 'rxjs';\n\n\nexport class RealtimeServer {\n\n constructor(private core: RealtimeCore) {\n this.core = core;\n if (!core.ctx.disabledRealtime) {\n/* */\n/* */\n \n }\n }\n\n\n private init() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n\n private triggerChanges(\n entityObjOrClass: Function,\n property?: string,\n valueOfUniqueProperty?: number | string,\n customEvent?: string,\n customEventData?: any,\n ) {\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n\n\n public triggerEntityChanges(\n entityObjOrClass: Function,\n idToTrigger?: number | string,\n ) {\n if (this.core.ctx.disabledRealtime) {\n const className = ClassHelpers.getName(entityObjOrClass);\n\n console.warn(\n `[Taon][TriggerEntityChanges] Entity \"${className}' is not realtime`,\n );\n return;\n }\n this.triggerChanges(entityObjOrClass as any, void 0, idToTrigger);\n }\n\n\n\n public triggerEntityPropertyChanges<ENTITY extends BaseEntity>(\n entityObjOrClass: new (...args) => ENTITY,\n property: keyof ENTITY | (keyof ENTITY)[],\n idToTrigger?: number | string,\n ) {\n if (this.core.ctx.disabledRealtime) {\n const className = ClassHelpers.getName(entityObjOrClass);\n\n console.warn(\n `[Taon][TriggerEntityPropertyChanges][property=${\n property as string\n }] Entity \"${className}' is not realtime`,\n );\n return;\n }\n\n if (_.isArray(property)) {\n property.forEach(propertyFromArr => {\n this.triggerChanges(\n entityObjOrClass,\n propertyFromArr as any,\n idToTrigger,\n );\n });\n } else {\n this.triggerChanges(entityObjOrClass, property as any, idToTrigger);\n }\n }\n\n\n\n public triggerEntityTableChanges(entityClassOrInstance: Function | object) {\n const className = ClassHelpers.getName(entityClassOrInstance);\n\n if (this.core.ctx.disabledRealtime) {\n console.warn(\n `[Taon][TriggerEntityTableChanges] Entity \"${className}' is not realtime`,\n );\n return;\n }\n\n this.triggerChanges(\n entityClassOrInstance as any,\n void 0,\n void 0,\n Symbols.REALTIME.TABLE_CHANGE(this.core.ctx.contextName, className),\n );\n }\n\n\n\n\n\n\n\n public triggerCustomEvent(customEvent: string, dataToPush: any) {\n this.triggerChanges(void 0, void 0, void 0, customEvent, dataToPush);\n }\n\n\n\n /**\n * Listen to custom events from users\n * @param customEvent global event name\n */\n listenChangesCustomEvent(customEvent: string): Observable<any> {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-server.ts","\n\nimport { EndpointContext } from '../../endpoint-context';\nimport type { Server, ServerOptions } from 'socket.io';\nimport type { io } from 'socket.io-client';\nimport { DefaultEventsMap } from 'socket.io/dist/typed-events';\n\nexport abstract class RealtimeStrategy {\n constructor(protected ctx: EndpointContext) {}\n\n get ioClient(): typeof io {\n throw new Error('Not implemented');\n }\n\n ioServer(\n url: string,\n opt: ServerOptions,\n ): Server<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap, any> {\n throw new Error('Not implemented');\n }\n\n abstract toString(): string;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy.ts","\n\n\nimport { Server, ServerOptions } from 'socket.io';\nimport { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\nimport type { io, ManagerOptions, SocketOptions } from 'socket.io-client';\nimport type { ipcRenderer } from 'electron';\nimport { Symbols } from '../../symbols';\n/* */\n/* */\n/* */\n \nimport { RealtimeModels } from '../realtime.models';\n\n\n\nexport class MockServerIpc {\n static serverByContextName = new Map<string, MockServerIpc>();\n\n static from(contextName: string): MockServerIpc {\n if (!MockServerIpc.serverByContextName.has(contextName)) {\n MockServerIpc.serverByContextName.set(\n contextName,\n new MockServerIpc(contextName),\n );\n }\n return MockServerIpc.serverByContextName.get(contextName);\n }\n\n namespacesByName = new Map<string, MockNamespaceIpc>();\n\n\n constructor(public contextName: string) {\n MockServerIpc.serverByContextName.set(contextName, this);\n }\n\n\n\n of(namespace: string): MockNamespaceIpc {\n if (!this.namespacesByName.has(namespace)) {\n this.namespacesByName.set(\n namespace,\n new MockNamespaceIpc(namespace, this),\n );\n }\n return this.namespacesByName.get(namespace);\n }\n\n}\n\n\n\nexport class MockNamespaceIpc {\n\n electronClients = new Set<Electron.WebContents>();\n roomsByRoomName: {\n [roomName: string]: Set<Electron.WebContents>;\n } = {};\n\n private namespaceEventHandlers: {\n [eventName: string]: Set<RealtimeModels.EventHandler>;\n } = {};\n\n\n\n constructor(\n /**\n * Namespace name\n */\n public name: string,\n public server: MockServerIpc,\n ) {}\n\n\n\n on(eventName: string, callback: RealtimeModels.EventHandler) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n off(event: string, callback?: RealtimeModels.EventHandler) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n emit(eventName: string, ...args: any[]) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n to(roomName: string) {\n const electronClientsInroom = this.roomsByRoomName[roomName];\n return new RoomEmitterIpc(electronClientsInroom, this.name, true);\n }\n\n\n\n in(roomName: string) {\n const electronClientsInroom = this.roomsByRoomName[roomName];\n return new RoomEmitterIpc(electronClientsInroom, this.name, false);\n }\n\n\n\n join(webContents: Electron.WebContents, roomName: string) {\n if (!this.roomsByRoomName[roomName]) {\n this.roomsByRoomName[roomName] = new Set();\n }\n this.roomsByRoomName[roomName].add(webContents);\n }\n\n\n\n leave(webContents: Electron.WebContents, roomName: string) {\n if (this.roomsByRoomName[roomName]) {\n this.roomsByRoomName[roomName].delete(webContents);\n if (this.roomsByRoomName[roomName].size === 0) {\n delete this.roomsByRoomName[roomName];\n }\n }\n }\n\n\n\n path() {\n return this.name;\n }\n\n\n\n get nsp() {\n const self = this;\n return {\n get name() {\n return self.name;\n },\n };\n }\n\n}\n\n\n\n\nclass RoomEmitterIpc {\n\n constructor(\n private electronClients: Set<Electron.WebContents>,\n /**\n * namespace name\n */\n private name: string,\n private includeSender: boolean = false,\n private sender: MockSocketIpc = null, // TODO QUICK FIX how to include sender\n ) {}\n\n\n\n emit(eventName: string, ...args: any[]): void {\n const emitEvent = `(${this.name}) \"${eventName}\"`;\n this.electronClients?.forEach(webContents => {\n webContents.send(emitEvent, ...args);\n });\n }\n\n}\n\n\n\nexport class MockSocketIpc {\n\n\n\n ipcRenderer!: typeof ipcRenderer;\n\n\n\n private socketEventHandlers = {} as {\n [eventName: string]: Set<RealtimeModels.EventHandler>;\n };\n\n\n\n get name() {\n return this.namespaceName;\n }\n\n\n\n\n\n /**\n * @param namespaceName instead url for ipc\n */\n constructor(public namespaceName: string) {\n this.ipcRenderer = (window as any).require('electron').ipcRenderer;\n }\n\n\n\n on(eventName: string, callback: (event: any, ...args: any[]) => void) {\n if (!this.socketEventHandlers[eventName]) {\n this.socketEventHandlers[eventName] = new Set();\n }\n this.socketEventHandlers[eventName].add(callback);\n\n const listenToEvent = `(${this.name}) \"${eventName}\"`;\n this.ipcRenderer.on(listenToEvent, (rendereEvent, data) => {\n callback(data);\n });\n\n if (eventName === 'connect') {\n const connectionEventKey = `(${this.name}) \"connection\"`;\n this.ipcRenderer.send(connectionEventKey, this.name);\n }\n }\n\n\n\n off(event: string, callback?: (event: any, ...args: any[]) => void) {\n if (!this.socketEventHandlers[event]) {\n return;\n }\n\n if (callback) {\n this.socketEventHandlers[event].delete(callback);\n } else {\n delete this.socketEventHandlers[event];\n }\n const removeListener = `(${this.name}) \"${event}\"`;\n\n this.ipcRenderer.removeListener(removeListener, data => {\n callback(data);\n });\n }\n\n\n\n emit(event: string, ...args: any[]) {\n const emitEvent = `(${this.name}) \"${event}\"`;\n this.ipcRenderer.send(emitEvent, ...args);\n }\n\n}\n\n\n/**\n * Purpose:\n * - backend-browser communication between 2 processes in electron mode\n */\nexport class RealtimeStrategyIpc extends RealtimeStrategy {\n\n toString(): string {\n return 'ipc';\n }\n\n\n\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n\n\n\n ioServer(__: string, opt: ServerOptions) {\n const namespace = opt?.path || '/';\n const server = MockServerIpc.from(this.ctx.contextName);\n return server.of(namespace) as any;\n }\n\n get ioClient() {\n const clientIo = (\n __: string,\n opt?: Partial<ManagerOptions & SocketOptions>,\n ): MockSocketIpc => {\n const namespace = opt?.path || '/';\n return new MockSocketIpc(namespace);\n };\n return clientIo as any;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-ipc.ts","\n\n\nimport type { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\nimport { Symbols } from '../../symbols';\nimport { ManagerOptions, SocketOptions } from 'socket.io-client';\nimport { RealtimeModels } from '../realtime.models';\nimport { ServerOptions } from 'socket.io';\n\n\n\nclass MockServer {\n static serverByUrl = new Map<string, MockServer>();\n static from(url: string): MockServer {\n if (!MockServer.serverByUrl.has(url)) {\n MockServer.serverByUrl.set(url, new MockServer(url));\n }\n return MockServer.serverByUrl.get(url);\n }\n\n get allServers() {\n return Array.from(MockServer.serverByUrl.values());\n }\n\n namespacesByName = new Map<string, MockNamespace>();\n\n\n constructor(public url: string) {\n MockServer.serverByUrl.set(url, this);\n }\n\n\n\n of(namespace: string): MockNamespace {\n if (!this.namespacesByName.has(namespace)) {\n this.namespacesByName.set(namespace, new MockNamespace(namespace, this));\n }\n return this.namespacesByName.get(namespace);\n }\n\n\n\n path() {\n return this.url;\n }\n\n}\n\n\n\nclass MockNamespace {\n /**\n * All sockets connected to this namespace\n */\n public readonly allSocketsForNamespace = new Set<MockSocket>();\n /**\n * Rooms and their sockets\n */\n private socketByRoomName: {\n [roomName: string]: Set<MockSocket>;\n } = {};\n /**\n * Event handlers for this namespace\n */\n public namespaceEventHandlers: {\n [eventName: string]: Set<RealtimeModels.EventHandler>;\n } = {};\n\n\n constructor(\n /**\n * unique namespace name\n */\n public name: string,\n public server: MockServer,\n ) {}\n\n\n\n on(eventName: string, handler: RealtimeModels.EventHandler): void {\n\n if (!this.namespaceEventHandlers[eventName]) {\n this.namespaceEventHandlers[eventName] =\n new Set<RealtimeModels.EventHandler>();\n }\n\n if (!this.namespaceEventHandlers[eventName].has(handler)) {\n this.namespaceEventHandlers[eventName].add(handler);\n }\n\n\n\n if (eventName === 'connection') {\n setTimeout(() => {\n this.emit('connection', this);\n });\n }\n }\n\n\n\n emit(event: string, ...args: any[]): void {\n this.allSocketsForNamespace?.forEach(socket => {\n socket.emit(event, ...args);\n });\n }\n\n\n\n connect(socket: MockSocket): void {\n this.allSocketsForNamespace.add(socket);\n socket.namespaceInstance = this;\n }\n\n\n\n to(roomName: string): RoomEmitter {\n const socketsInRoom = this.socketByRoomName[roomName];\n return new RoomEmitter(socketsInRoom, true);\n }\n\n\n\n in(roomName: string): RoomEmitter {\n const socketsInRoom = this.socketByRoomName[roomName];\n return new RoomEmitter(socketsInRoom, false);\n }\n\n\n\n joinRoom(roomName: string, socket: MockSocket): void {\n if (!this.socketByRoomName[roomName]) {\n this.socketByRoomName[roomName] = new Set<MockSocket>();\n }\n this.socketByRoomName[roomName].add(socket);\n }\n\n\n\n leaveRoom(roomName: string, socket: MockSocket): void {\n const roomSockets = this.socketByRoomName[roomName];\n if (roomSockets) {\n this.socketByRoomName[roomName].delete(socket);\n }\n }\n\n\n\n get nsp() {\n const self = this;\n return {\n get name() {\n return self.name;\n },\n };\n }\n\n\n path() {\n return this.name;\n }\n}\n\n\n\nclass RoomEmitter {\n\n constructor(\n private sockets: Set<MockSocket>,\n private includeSender: boolean = false,\n private sender: MockSocket = null, // TODO QUICK FIX how to include sender\n ) {}\n\n\n\n emit(event: string, ...args: any[]): void {\n\n\n\n this.sockets?.forEach(socket => {\n\n if (this.includeSender || socket !== this.sender) {\n socket.emit(event, ...args);\n }\n });\n }\n\n}\n\n\n\nclass MockSocket {\n public namespaceInstance: MockNamespace;\n private socketEventHandlers = {} as {\n [eventName: string]: Set<RealtimeModels.EventHandler>;\n };\n get id() {\n return this.nsp.name;\n }\n\n\n constructor(\n public url: string,\n opts?: Partial<ManagerOptions & SocketOptions>,\n ) {\n // @ts-ignore\n const [baseUrl, namespace] = [url, opts.path || '/'];\n\n const namespaceName = namespace || '/';\n\n\n const server = MockServer.from(url);\n\n const ns = server.of(namespaceName);\n ns.connect(this);\n }\n\n\n\n get nsp() {\n const self = this;\n return {\n get name() {\n return self.namespaceInstance?.name;\n },\n };\n }\n\n\n\n path() {\n return this.namespaceInstance?.name;\n }\n\n\n\n on(eventName: string, handler: RealtimeModels.EventHandler): void {\n if (!this.socketEventHandlers[eventName]) {\n this.socketEventHandlers[eventName] =\n new Set<RealtimeModels.EventHandler>();\n }\n this.socketEventHandlers[eventName].add(handler);\n\n\n if (eventName === 'connect') {\n setTimeout(() => {\n this.emit('connect');\n\n });\n }\n }\n\n\n\n emit(eventName: string, ...args: any[]): void {\n eventName = eventName || '';\n\n if (eventName.includes(`:${Symbols.REALTIME.KEYroomSubscribe}`)) {\n const room = args[0];\n this.join(room);\n } else if (eventName.includes(`:${Symbols.REALTIME.KEYroomUnsubscribe}`)) {\n const room = args[0];\n this.leave(room);\n } else {\n\n if (this.namespaceInstance) {\n const namespaceEventHandlers =\n this.namespaceInstance.namespaceEventHandlers[eventName] || [];\n\n\n for (const namespaceEventHandler of namespaceEventHandlers) {\n if (namespaceEventHandler) {\n namespaceEventHandler(...args);\n }\n }\n\n const allSocketsForNamespaceExceptCurrent = Array.from(\n this.namespaceInstance.allSocketsForNamespace.values(),\n ).filter(socket => socket !== this);\n\n\n for (const socket of allSocketsForNamespaceExceptCurrent) {\n const socketEventHandlers = socket.socketEventHandlers[eventName];\n for (const socketEventHandler of socketEventHandlers) {\n if (socketEventHandler) {\n socketEventHandler(...args);\n }\n }\n }\n\n\n const socketEventHandlers = this.socketEventHandlers[eventName] || [];\n for (const clientHandler of socketEventHandlers) {\n if (clientHandler) {\n clientHandler(...args);\n }\n }\n }\n }\n }\n\n\n\n join(roomName: string): void {\n this.namespaceInstance.joinRoom(roomName, this);\n }\n\n\n\n leave(roomName: string): void {\n this.namespaceInstance.leaveRoom(roomName, this);\n }\n\n}\n\n\n/**\n * Purpose:\n * - browser-browser communication mock (in websql mode)\n */\nexport class RealtimeStrategyMock extends RealtimeStrategy {\n\n toString(): string {\n return 'mock';\n }\n\n\n\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n\n\n\n ioServer(url: string, opt: ServerOptions) {\n const server = MockServer.from(url || this.ctx.uri.origin);\n return server.of(opt?.path || '/') as any;\n }\n\n get ioClient() {\n const clientIo = (\n uri: string,\n opts?: Partial<ManagerOptions & SocketOptions>,\n ): MockSocket => {\n return new MockSocket(uri || this.ctx.uri.origin, opts as any);\n };\n return clientIo as any;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-mock.ts","\n\nimport { DefaultEventsMap } from 'socket.io/dist/typed-events';\nimport { EndpointContext } from '../../endpoint-context';\nimport { RealtimeStrategy } from './realtime-strategy';\n/* */\n/* */\n \nimport { io, ManagerOptions, Socket, SocketOptions } from 'socket.io-client';\n\n/**\n * Purpose:\n * - backend-browser communication\n * - backend-backend communication\n */\nexport class RealtimeStrategySocketIO extends RealtimeStrategy {\n toString(): string {\n return 'socket-io';\n }\n constructor(protected ctx: EndpointContext) {\n super(ctx);\n }\n\n ioServer(...args) {\n/* */\n/* */\n return (void 0);\n }\n\n get ioClient() {\n return io;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-socket-io.ts","\n\nexport * from './realtime-strategy';\nexport * from './realtime-strategy-ipc';\nexport * from './realtime-strategy-mock';\nexport * from './realtime-strategy-socket-io';\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/index.ts","\n\n\nimport { Socket as SocketClient } from 'socket.io-client';\nimport type { EndpointContext } from '../endpoint-context';\nimport { RealtimeClient } from './realtime-client';\nimport { RealtimeServer } from './realtime-server';\nimport type { RealtimeStrategy } from './realtime-strategy';\nimport { RealtimeStrategyIpc, RealtimeStrategyMock, RealtimeStrategySocketIO, } from './realtime-strategy';/* */\n/* */\n/* */\n/* */\n\nimport { DefaultEventsMap } from 'socket.io/dist/typed-events';\nimport { Server } from 'socket.io';\nimport { Helpers } from 'tnp-core/browser';\n\n\n/**\n * Realtime class\n * - mock (when browser-browser)\n * - sockets (from socket io when backend-browser)\n * - ipc (when electron is used or between processes)\n * - webworker (when webworker is used in browser or nodejs)\n */\nexport class RealtimeCore {\n\n readonly allHttpMethods = [\n 'GET',\n 'POST',\n 'PUT',\n 'DELETE',\n 'PATCH',\n 'OPTIONS',\n 'HEAD',\n ];\n public readonly client: RealtimeClient;\n public readonly server: RealtimeServer;\n public readonly strategy: RealtimeStrategy;\n\n /**\n * global FE socket - only for established connection\n */\n public conectSocketFE: SocketClient<DefaultEventsMap, DefaultEventsMap>;\n /**\n * socket for namespaces and rooms\n */\n public socketFE: SocketClient<DefaultEventsMap, DefaultEventsMap>;\n /**\n * global BE socket - only for established connection\n */\n public connectSocketBE: Server<\n DefaultEventsMap,\n DefaultEventsMap,\n DefaultEventsMap,\n any\n >;\n /**\n * socket for namespaces and rooms\n */\n public socketBE: Server<\n DefaultEventsMap,\n DefaultEventsMap,\n DefaultEventsMap,\n any\n >;\n\n\n\n constructor(public ctx: EndpointContext) {\n this.ctx = ctx;\n this.strategy = this.resolveStrategy();\n\n this.ctx.logRealtime &&\n console.log(`[taon] realtime strategy: ${this.strategy}`);\n if (Helpers.isWebSQL) {\n this.server = new RealtimeServer(this);\n\n this.client = new RealtimeClient(this);\n\n } else {\n this.client = new RealtimeClient(this);\n this.server = new RealtimeServer(this);\n }\n }\n\n\n\n private resolveStrategy(): RealtimeStrategy {\n if (\n this.ctx.mode === 'backend-frontend(websql)' ||\n this.ctx.mode === 'backend-frontend(websql-electron)'\n ) {\n\n return new RealtimeStrategyMock(this.ctx);\n }\n if (this.ctx.mode === 'backend-frontend(ipc-electron)') {\n return new RealtimeStrategyIpc(this.ctx);\n }\n\n\n\n\n\n\n return new RealtimeStrategySocketIO(this.ctx);\n }\n\n\n\n public pathFor(namespace?: string) {\n const uri = this.ctx.uri;\n\n let nsp = namespace ? namespace : '';\n nsp = nsp === '/' ? '' : nsp;\n const pathname = uri.pathname !== '/' ? uri.pathname : '';\n let prefix = `taonContext`;\n if (Helpers.isElectron) {\n prefix = ``;\n }\n const href = `${uri.origin}${pathname}/${prefix}${prefix && nsp ? '-' + nsp : nsp}`;\n\n return new URL(href) as URL;\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/realtime/realtime-core.ts","\n\n/* eslint-disable @typescript-eslint/typedef */\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\nimport { TaonAdmin } from './ui/taon-admin-mode-configuration/taon-admin.service';\n\nimport { Models } from './models';\nimport { ClassHelpers } from './helpers/class-helpers';\nimport { Symbols } from './symbols';\nimport { _, Helpers } from 'tnp-core/browser';\nimport type { createContext } from './create-context';\nimport { DITaonContainer } from './dependency-injection/di-container';\nimport { TaonControllerOptions } from './decorators/classes/controller-decorator';\nimport { TaonHelpers } from './helpers/taon-helpers';\nimport { Mapping, Models as ModelsNg2Rest, Resource, RestHeaders, } from 'ng2-rest/browser';/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { JSON10 } from 'json10/browser';\nimport { path } from 'tnp-core/browser';\nimport { from, Subject } from 'rxjs';\nimport { EntityProcess } from './entity-process';\nimport { getResponseValue } from './get-response-value';\nimport type { Application } from 'express';\nimport axios from 'axios';\nimport type { NgZone } from '@angular/core';\n\nimport { DataSource, DataSourceOptions, getMetadataArgsStorage, } from 'taon-typeorm/browser';/* */\n/* */\n/* */\n/* */\n\nimport { TaonEntityOptions } from './decorators/classes/entity-decorator';\nimport type { Server } from 'http';\nimport { ENV } from './env';\nimport type { BaseClass } from './base-classes/base-class';\nimport { RealtimeCore } from './realtime/realtime-core';\nimport { TaonSubscriberOptions } from './decorators/classes/subscriber-decorator';\nimport { BaseSubscriberForEntity } from './base-classes/base-subscriber-for-entity';\n\n\nexport class EndpointContext {\n\n\n\n private static ngZone: NgZone;\n\n static initNgZone(ngZone: NgZone) {\n\n this.ngZone = ngZone;\n\n }\n\n\n\n\n\n\n\n\n\n\n\n\n disabledRealtime: boolean = false;\n /**\n * check whether context is inited\n * (with init() function )\n */\n public inited: boolean = false;\n\n\n private readonly localInstaceObjSymbol = Symbol('localInstaceObjSymbol');\n\n\n /**\n * all instances of classes from context\n * key is class name\n */\n public readonly allClassesInstances = {};\n\n\n\n private readonly classInstancesByNameObj = {};\n\n\n\n private readonly objWithClassesInstancesArr = {};\n\n\n\n public readonly activeRoutes: {\n routePath: string;\n method: Models.Http.Rest.HttpMethod;\n }[] = [];\n\n\n\n private injectableTypesfromContexts = [\n Models.ClassType.CONTROLLER,\n Models.ClassType.PROVIDER,\n Models.ClassType.REPOSITORY,\n Models.ClassType.SUBSCRIBER,\n ];\n\n\n private allTypesfromContexts = [\n ...this.injectableTypesfromContexts,\n Models.ClassType.ENTITY,\n ];\n\n\n public expressApp: Application = {} as any;\n\n\n\n public serverTcpUdp: Server;\n\n\n\n databaseConfig?: Models.DatabaseConfig;\n private autoGeneratedConfig?: Models.DatabaseConfig;\n\n\n\n mode: Models.FrameworkMode;\n\n\n\n session?: Models.ISession;\n\n\n\n public connection: DataSource;\n\n\n\n private entitiesTriggers = {};\n\n\n\n private realtime: RealtimeCore;\n get realtimeClient() {\n return this.realtime.client;\n }\n get realtimeServer() {\n return this.realtime.server;\n }\n\n\n\n /**\n * available after init()\n */\n public config: Models.ContextOptions<any, any, any, any, any, any>;\n\n\n\n get logHttp(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).http;\n }\n return this.config?.logs === true;\n }\n\n get logRealtime(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).realtime;\n }\n return this.config?.logs === true;\n }\n\n get logFramework(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).framework;\n }\n return this.config?.logs === true;\n }\n\n get logDb(): boolean {\n if (_.isObject(this.config?.logs)) {\n return !!(this.config.logs as Models.ContectionOptionsLogs).db;\n }\n return this.config?.logs === true;\n }\n\n\n\n\n\n constructor(\n private originalConfig: Models.ContextOptions<any, any, any, any, any, any>,\n private configFn: (\n env: any,\n ) => Models.ContextOptions<any, any, any, any, any, any>,\n ) {}\n\n\n\n public async init(options?: { initFromRecrusiveContextResovle?: boolean; overrideHost?: string;overrideRemoteHost?: string }) {\n const { initFromRecrusiveContextResovle, overrideHost, overrideRemoteHost } = options || {}; // TODO use it ?\n\n this.inited = true;\n this.config = this.configFn(ENV);\n if(overrideHost && overrideRemoteHost) {\n if(Helpers.isWebSQL) {\n throw new Error(`You can't have overrideHost and overrideRemoteHost at the same time`)\n }\n Helpers.error(`You can't have overrideHost and overrideRemoteHost at the same time`, false, true);\n/* */\n/* */\n \n }\n this.config.host = overrideHost ? overrideHost : this.config.host;\n this.config.remoteHost = overrideRemoteHost ? overrideRemoteHost : this.config.remoteHost;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n if (this.config.host) {\n this.mode = 'backend-frontend(tcp+udp)';\n/* */\n/* */\n \n }\n if (this.config.remoteHost) {\n if (this.config.host) {\n Helpers.error(\n `[taon] You can't have remoteHost and host at the same time`,\n false,\n true,\n );\n }\n this.mode = 'remote-backend(tcp+udp)';\n }\n\n if (this.config.useIpcWhenElectron && Helpers.isElectron) {\n if (Helpers.isWebSQL) {\n this.mode = 'backend-frontend(websql-electron)';\n } else {\n this.mode = 'backend-frontend(ipc-electron)';\n }\n }\n\n if (!this.mode && !this.config.abstract) {\n Helpers.error(\n `[taon] Context \"${this.contextName}\": You need to provide host or remoteHost or useIpcWhenElectron`,\n false,\n true,\n );\n/* */\n/* */\n \n }\n\n\n\n if (this.config.database === true) {\n this.databaseConfig = this.getAutoGeneratedConfig();\n } else if (_.isObject(this.config.database)) {\n this.databaseConfig = _.cloneDeep(\n this.config.database,\n ) as Models.DatabaseConfig;\n }\n\n\n\n if (this.config.session) {\n this.session = _.cloneDeep(this.config.session);\n const oneHour = 1000 * 60 * 60 * 1; // 24;\n if (!this.session.cookieMaxAge) {\n this.session.cookieMaxAge = oneHour;\n }\n\n axios.defaults.withCredentials = true;\n }\n\n\n\n this.config.contexts = this.config.contexts || {};\n this.config.entities = this.config.entities || {};\n this.config.controllers = this.config.controllers || {};\n this.config.repositories = this.config.repositories || {};\n this.config.providers = this.config.providers || {};\n this.config.subscribers = this.config.subscribers || {};\n\n this.config.entities = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.ENTITY,\n )),\n ...this.config.entities,\n };\n\n this.config.controllers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.CONTROLLER,\n )),\n ...this.config.controllers,\n };\n\n this.config.providers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.PROVIDER,\n )),\n ...this.config.providers,\n };\n\n this.config.subscribers = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.SUBSCRIBER,\n )),\n ...this.config.subscribers,\n };\n\n this.config.repositories = {\n ...(await this.getRecrusiveClassesfromContextsObj(\n Models.ClassType.REPOSITORY,\n )),\n ...this.config.repositories,\n };\n\n\n\n\n\n this.config.controllers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.controllers,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.CONTROLLER,\n });\n this.config.repositories = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.repositories,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.REPOSITORY,\n });\n this.config.providers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.providers,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.PROVIDER,\n });\n this.config.subscribers = this.cloneClassesObjWithNewMetadata({\n classesInput: this.config.subscribers,\n config: this.config,\n ctx: this,\n classType: Models.ClassType.SUBSCRIBER,\n });\n\n\n\n for (const classTypeName of this.injectableTypesfromContexts) {\n this.classInstancesByNameObj[classTypeName] = {};\n this.objWithClassesInstancesArr[classTypeName] = [];\n }\n\n for (const classTypeName of this.injectableTypesfromContexts) {\n await this.createInstances(\n this.config[Models.ClassTypeKey[classTypeName]],\n classTypeName,\n );\n }\n\n\n\n if (this.mode === 'backend-frontend(tcp+udp)' && !this.config.abstract) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n if (!this.config.abstract) {\n this.disabledRealtime = !!this.config.disabledRealtime;\n/* */\n/* */\n/* */\n/* */\n/* */\n \n this.realtime = new RealtimeCore(this);\n }\n\n\n\n\n if (this.config.abstract) {\n this.logFramework &&\n Helpers.info(\n `[taon] Create abstract context: ${this.config.contextName}`,\n );\n } else {\n if (this.config.remoteHost) {\n this.logFramework &&\n Helpers.info(\n `[taon] Create context for remote host: ${this.config.remoteHost}`,\n );\n } else {\n this.logFramework &&\n Helpers.info(`[taon] Create context for host: ${this.config.host}`);\n }\n }\n\n\n\n Object.keys(this.config).forEach(key => {\n this.originalConfig[key] = this.config[key];\n });\n }\n\n\n\n private getAutoGeneratedConfig(): Models.DatabaseConfig {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n get ngZone(): any {\n\n return EndpointContext.ngZone;\n\n return;\n }\n\n\n\n startServer() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n displayRoutes(app) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n get modeAllowsDatabaseCreation() {\n return (\n this.mode === 'backend-frontend(tcp+udp)' ||\n this.mode === 'backend-frontend(websql)' ||\n this.mode === 'backend-frontend(ipc-electron)'\n );\n }\n\n\n\n\n private cloneClassWithNewMetadata = <\n T extends { new (...args: any[]): any },\n >({\n BaseClass,\n className,\n config,\n ctx,\n classType,\n }: {\n BaseClass: T;\n className: string;\n config: Models.ContextOptions<any, any, any, any, any, any>;\n ctx: EndpointContext;\n classType: Models.ClassType;\n }): T => {\n\n const cloneClass = () => {\n if (\n BaseClass[Symbols.fullClassNameStaticProperty] ===\n `${ctx.contextName}.${className}`\n ) {\n return BaseClass;\n }\n return class extends BaseClass {\n\n\n // @ts-ignore\n static [Symbols.orignalClass] = BaseClass;\n\n // @ts-ignore\n static [Symbols.fullClassNameStaticProperty] = `${ctx.contextName}.${className}`;\n\n // @ts-ignore\n static [Symbols.classNameStaticProperty] = className;\n\n static [Symbols.ctxInClassOrClassObj] = ctx;\n\n static __getFullPathForClass__(arr = []) {\n const name = this[Symbols.fullClassNameStaticProperty];\n arr.push(name);\n // @ts-ignore\n if (\n this[Symbols.orignalClass] && // @ts-ignore\n this[Symbols.orignalClass].__getFullPathForClass__\n ) {\n // @ts-ignore\n this[Symbols.orignalClass].__getFullPathForClass__(arr);\n }\n return arr.join('/');\n }\n static get fullPathForClass(): string {\n return this.__getFullPathForClass__();\n }\n [Symbols.ctxInClassOrClassObj] = ctx;\n\n\n };\n };\n\n const cloneClassFunction = cloneClass();\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n return cloneClassFunction;\n };\n\n\n\n\n\n private cloneClassesObjWithNewMetadata = ({\n classesInput,\n config,\n ctx,\n classType,\n }: {\n classesInput: any;\n config: Models.ContextOptions<any, any, any, any, any, any>;\n ctx: EndpointContext;\n classType: Models.ClassType;\n }) => {\n const classes = {};\n\n for (const key of Object.keys(classesInput || {})) {\n const BaseClass = classesInput[key];\n\n if (!BaseClass) {\n Helpers.error(`Class ${key} is not defined in context ${ctx.contextName}\n\n Please check if you have correct import in context file\n\n `);\n }\n\n var className = Reflect.getMetadata(\n Symbols.metadata.className,\n BaseClass,\n );\n\n\n\n\n\n className = className || key;\n BaseClass[Symbols.classNameStaticProperty] = className;\n\n const clonedClass = this.cloneClassWithNewMetadata({\n BaseClass,\n className,\n config,\n ctx,\n classType,\n });\n classes[className] = clonedClass;\n }\n return classes;\n };\n\n\n\n private async getRecrusiveClassesfromContextsObj(\n classType: Models.ClassType,\n ) {\n const arr = await this.getRecrusiveClassesfromContexts(classType);\n return arr.reduce((acc, c) => {\n acc[ClassHelpers.getName(c)] = c;\n return acc;\n }, {});\n }\n\n private async getRecrusiveClassesfromContexts(\n classType: Models.ClassType,\n arr = [],\n ) {\n const contexts = Object.values(this.config.contexts || {}) as ReturnType<\n typeof createContext\n >[];\n\n\n\n for (const ctx of contexts) {\n\n const ref = await ctx.__ref();\n\n const classesInput = ref.getClassFunBy(classType);\n\n\n const clonedClasses = Object.values(\n this.cloneClassesObjWithNewMetadata({\n classesInput,\n config: this.config,\n ctx: this,\n classType,\n }),\n );\n\n clonedClasses.forEach(c => arr.push(c));\n\n await ref.getRecrusiveClassesfromContexts(classType, arr);\n }\n return arr as Function[];\n }\n\n\n\n getClassInstanceObjBy(classType: Models.ClassType): any {\n return this.classInstancesByNameObj[classType];\n }\n\n\n\n private getClassesInstancesArrBy(classType: Models.ClassType): any[] {\n return this.objWithClassesInstancesArr[classType];\n }\n\n\n\n inject<T>(\n ctor: new (...args: any[]) => T,\n options?: {\n localInstance?: boolean;\n contextClassInstance?: BaseClass;\n locaInstanceConstructorArgs?: ConstructorParameters<typeof ctor>;\n },\n ): T {\n if (!options) {\n options = {} as any;\n }\n const className = ClassHelpers.getName(ctor);\n\n const locaInstanceConstructorArgs =\n options.locaInstanceConstructorArgs || [];\n\n if (this.isCLassType(Models.ClassType.REPOSITORY, ctor)) {\n options.localInstance = true;\n }\n\n if (options?.localInstance) {\n const ctxClassFn = this.getClassFunByClassName(className);\n let entityName: string = '';\n\n if (className === 'BaseRepository') {\n const entityFn = locaInstanceConstructorArgs[0];\n const entity = entityFn && entityFn();\n entityName = entity && ClassHelpers.getName(entity);\n }\n\n if (!options.contextClassInstance[this.localInstaceObjSymbol]) {\n options.contextClassInstance[this.localInstaceObjSymbol] = {};\n }\n const instanceKey = className + (entityName ? `.${entityName}` : '');\n const existed =\n options.contextClassInstance[this.localInstaceObjSymbol][instanceKey];\n if (existed) {\n\n return existed;\n }\n\n if (!ctxClassFn) {\n throw new Error(`Not able to inject \"${className}\" inside context \"${this.contextName}\"\n\n Make sure they share the same context or import context where \"${className}\" is defined.\n\n `);\n }\n\n const injectedInstance = new (ctxClassFn as any)(\n ...locaInstanceConstructorArgs,\n );\n options.contextClassInstance[this.localInstaceObjSymbol][instanceKey] =\n injectedInstance;\n\n return injectedInstance;\n }\n\n const contextScopeInstance = this.allClassesInstances[className];\n\n\n\n return contextScopeInstance;\n }\n\n /**\n * alias for inject\n */\n getInstanceBy<T>(ctor: new (...args: any[]) => T): T {\n return this.inject(ctor, { localInstance: false });\n }\n\n\n checkIfContextInitialized() {\n if (_.isUndefined(this.config)) {\n throw new Error(`Please check if your context has been initialized.\n\n\n await Context.initialize();\n\n\n\n `);\n }\n }\n\n\n getClassFunBy(classType: Models.ClassType) {\n this.checkIfContextInitialized();\n switch (classType) {\n case Models.ClassType.CONTROLLER:\n return this.config.controllers;\n case Models.ClassType.ENTITY:\n return this.config.entities;\n case Models.ClassType.PROVIDER:\n return this.config.providers;\n case Models.ClassType.REPOSITORY:\n return this.config.repositories;\n case Models.ClassType.SUBSCRIBER:\n return this.config.subscribers;\n }\n }\n\n isCLassType(classType: Models.ClassType, classFn: Function): boolean {\n return !!this.getClassFunBy(classType)[ClassHelpers.getName(classFn)];\n }\n\n /**\n * Only for injectable types\n * Only for classType: CONTROLLER, REPOSITORY, PROVIDER\n */\n getClassFunByClassName(className: string): Function {\n for (const classTypeName of this.allTypesfromContexts) {\n const classesForInjectableType =\n this.config[Models.ClassTypeKey[classTypeName]];\n\n if (classesForInjectableType[className]) {\n return classesForInjectableType[className];\n }\n }\n }\n\n getClassFunByClass(classFunction: Function): Function {\n const className = ClassHelpers.getName(classFunction);\n return this.getClassFunByClassName(className);\n }\n\n getClassFunByArr(classType: Models.ClassType) {\n return Object.values(this.getClassFunBy(classType) || {}) as Function[];\n }\n\n\n\n private async createInstances(classes: any, classType: Models.ClassType) {\n\n\n\n\n\n for (const classFn of [\n\n ...Object.values(classes),\n ]) {\n const instance = DITaonContainer.resolve(classFn as any) as any;\n const classInstancesByNameObj = this.classInstancesByNameObj[classType];\n const className = ClassHelpers.getName(classFn);\n\n classInstancesByNameObj[className] = instance;\n\n this.config[Models.ClassTypeKey[classType]][className] = classFn;\n this.objWithClassesInstancesArr[classType].push(instance);\n this.allClassesInstances[className] = instance;\n }\n }\n\n\n\n async reinitControllers() {\n if(this.remoteHost) {\n return;\n }\n\n\n\n const controllers = this.getClassesInstancesArrBy(\n Models.ClassType.CONTROLLER,\n );\n\n for (const ctrl of controllers) {\n if (_.isFunction(ctrl.initExampleDbData)) {\n await Helpers.runSyncOrAsync({\n functionFn: ctrl.initExampleDbData,\n context: ctrl,\n });\n }\n }\n\n\n\n }\n async initClasses() {\n if(this.remoteHost) {\n return;\n }\n for (const classTypeName of [\n Models.ClassType.PROVIDER,\n Models.ClassType.REPOSITORY,\n Models.ClassType.CONTROLLER,\n Models.ClassType.ENTITY,\n ]) {\n\n\n\n\n for (const classFun of this.getClassFunByArr(classTypeName) as any[]) {\n if (_.isFunction(classFun._)) {\n await Helpers.runSyncOrAsync({\n functionFn: classFun._,\n context: classFun,\n });\n\n\n\n\n\n\n }\n }\n\n\n\n\n }\n\n for (const classTypeName of [\n Models.ClassType.PROVIDER,\n Models.ClassType.REPOSITORY,\n Models.ClassType.CONTROLLER,\n ]) {\n\n\n\n\n for (const ctrl of this.getClassesInstancesArrBy(classTypeName)) {\n if (_.isFunction(ctrl._)) {\n await Helpers.runSyncOrAsync({\n functionFn: ctrl._,\n context: ctrl,\n });\n }\n }\n\n\n\n\n }\n }\n\n\n\n isActiveOn(classInstance: object): boolean {\n let contextRef: EndpointContext =\n classInstance[Symbols.ctxInClassOrClassObj];\n return this === contextRef;\n }\n\n\n\n get uri() {\n const url = this.host\n ? new URL(this.host)\n : this.remoteHost\n ? new URL(this.remoteHost)\n : void 0;\n return url;\n }\n\n\n\n get isHttpServer() {\n return this.uri.protocol === 'https:';\n }\n\n\n\n /**\n * ipc/udp needs this\n */\n public get contextName() {\n return this.config.contextName;\n }\n\n\n\n public get publicAssets() {\n return this.config?.publicAssets || [];\n }\n\n\n\n get isProductionMode() {\n return this.config.productionMode;\n }\n\n\n\n get remoteHost() {\n return this.config.remoteHost;\n }\n\n\n\n get host() {\n return this.config.host;\n }\n\n\n\n get orgin() {\n return this.uri?.origin;\n }\n\n\n\n async initSubscribers() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n async initEntities() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n\n async initDatabaseConnection() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n return (void 0);\n }\n\n\n\n\n initMetadata() {\n const allControllers = this.getClassFunByArr(Models.ClassType.CONTROLLER);\n\n for (const controllerClassFn of allControllers) {\n controllerClassFn[Symbols.classMethodsNames] =\n ClassHelpers.getMethodsNames(controllerClassFn);\n const configs = ClassHelpers.getControllerConfigs(controllerClassFn);\n\n const classConfig: Models.RuntimeControllerConfig = configs[0];\n\n const parentscalculatedPath = _.slice(configs, 1)\n .reverse()\n .map(bc => {\n if (TaonHelpers.isGoodPath(bc.path)) {\n return bc.path;\n }\n return bc.className;\n })\n .join('/');\n\n if (TaonHelpers.isGoodPath(classConfig.path)) {\n classConfig.calculatedPath = classConfig.path;\n } else {\n classConfig.calculatedPath =\n `${parentscalculatedPath}/${ClassHelpers.getName(controllerClassFn)}`\n .replace(/\\/\\//g, '/')\n .split('/')\n .reduce((acc, bc) => {\n return _.last(acc) === bc ? acc : [...acc, bc];\n }, [])\n .join('/');\n }\n\n _.slice(configs, 1).forEach(bc => {\n const alreadyIs = classConfig.methods;\n const toMerge = _.cloneDeep(bc.methods);\n for (const key in toMerge) {\n if (toMerge.hasOwnProperty(key) && !alreadyIs[key]) {\n const element = toMerge[key];\n alreadyIs[key] = element;\n }\n }\n });\n\n/* */\n/* */\n \n this.logHttp &&\n console.groupCollapsed(\n `[taon][express-server] routes [${classConfig.className}]`,\n );\n/* */\n/* */\n \n\n\n Object.keys(classConfig.methods).forEach(methodName => {\n const methodConfig: Models.MethodConfig =\n classConfig.methods[methodName];\n\n const type: Models.Http.Rest.HttpMethod = methodConfig.type;\n const expressPath = methodConfig.global\n ? `/${methodConfig.path?.replace(/\\//, '')}`\n : TaonHelpers.getExpressPath(classConfig, methodConfig);\n\n\n if (Helpers.isNode || Helpers.isWebSQL) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n const shouldInitClient =\n Helpers.isBrowser || this.remoteHost || Helpers.isWebSQL;\n\n if (shouldInitClient) {\n\n\n\n\n\n\n\n this.initClient(controllerClassFn, type, methodConfig, expressPath);\n }\n });\n\n/* */\n/* */\n \n this.logHttp && console.groupEnd();\n/* */\n/* */\n \n }\n }\n\n\n\n public writeActiveRoutes() {\n if(this.remoteHost) {\n return;\n }\n const contexts: EndpointContext[] = [this];\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n public get middlewares(): Models.MiddlewareType[] {\n/* */\n/* */\n return (void 0);\n }\n\n\n\n private initMiddlewares() {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n\n\n private initServer(\n\n type: Models.Http.Rest.HttpMethod,\n methodConfig: Models.MethodConfig,\n classConfig: Models.RuntimeControllerConfig,\n expressPath: string,\n target: Function,\n\n ): any {\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n const url = this.uri;\n\n\n const getResult = async (resolvedParams, req, res) => {\n const response: Models.Http.Response<any> =\n methodConfig.descriptor.value.apply(\n /**\n * Context for method @GET,@PUT etc.\n */\n this.getInstanceBy(target as any),\n /**\n * Params for metjod @GET, @PUT etc.\n */\n resolvedParams,\n );\n let result = await getResponseValue(response, { req, res });\n return result;\n };\n\n\n url.pathname = url.pathname.replace(/\\/$/, '');\n expressPath = url.pathname.startsWith('/')\n ? `${url.pathname}${expressPath}`\n : expressPath;\n expressPath = expressPath.replace(/\\/\\//g, '/');\n\n\n\n if (Helpers.isElectron) {\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n if (!this.remoteHost) {\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n\n return {\n routePath: expressPath,\n method: methodConfig.type,\n };\n }\n\n\n\n /**\n * client can be browser or nodejs (when remote host)\n */\n private initClient(\n\n target: Function,\n type: Models.Http.Rest.HttpMethod,\n methodConfig: Models.Http.Rest.MethodConfig,\n expressPath: string,\n\n ): void {\n const ctx = this;\n\n this.logHttp && console.log(`${type?.toUpperCase()} ${expressPath} `);\n\n\n let storage: any;\n if (Helpers.isBrowser) {\n storage = window;\n }\n/* */\n/* */\n/* */\n/* */\n \n\n\n const orgMethods = target.prototype[methodConfig.methodName];\n\n\n\n if (Helpers.isElectron) {\n target.prototype[methodConfig.methodName] = function (...args) {\n const received = new Promise(async (resolve, reject) => {\n const headers = {};\n const { request, response } = TaonHelpers.websqlMocks(headers);\n\n Helpers.ipcRenderer.once(\n TaonHelpers.ipcKeyNameResponse(target, methodConfig, expressPath),\n (event, responseData) => {\n let res: any = responseData;\n console.log({ responseData });\n try {\n const body = res;\n res = new ModelsNg2Rest.HttpResponse(\n {\n body: void 0,\n isArray: void 0 as any,\n method: methodConfig.type,\n url: `${ctx.uri.origin}${\n '' // TODO express path\n }${methodConfig.path} `,\n },\n Helpers.isBlob(body) || _.isString(body)\n ? body\n : JSON.stringify(body),\n RestHeaders.from(headers),\n void 0,\n () => body,\n );\n\n resolve(res);\n } catch (error) {\n console.error(error);\n reject(error);\n }\n },\n );\n Helpers.ipcRenderer.send(\n TaonHelpers.ipcKeyNameRequest(target, methodConfig, expressPath),\n args,\n );\n });\n received['observable'] = from(received);\n return {\n received,\n };\n };\n return;\n }\n\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n\n\n\n\n target.prototype[methodConfig.methodName] = function (this: {}, ...args) {\n\n\n\n\n\n if (!storage[Symbols.old.ENDPOINT_META_CONFIG])\n storage[Symbols.old.ENDPOINT_META_CONFIG] = {};\n if (!storage[Symbols.old.ENDPOINT_META_CONFIG][ctx.uri.href])\n storage[Symbols.old.ENDPOINT_META_CONFIG][ctx.uri.href] = {};\n const endpoints = storage[Symbols.old.ENDPOINT_META_CONFIG];\n let rest: ModelsNg2Rest.ResourceModel<any, any>;\n if (!endpoints[ctx.uri.href][expressPath]) {\n let headers = {};\n if (methodConfig.contentType && !methodConfig.responseType) {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n RestHeaders.from({\n 'Content-Type': methodConfig.contentType,\n Accept: methodConfig.contentType,\n }),\n );\n } else if (methodConfig.contentType && methodConfig.responseType) {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n RestHeaders.from({\n 'Content-Type': methodConfig.contentType,\n Accept: methodConfig.contentType,\n responsetypeaxios: methodConfig.responseType,\n }),\n );\n } else if (!methodConfig.contentType && methodConfig.responseType) {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n RestHeaders.from({\n responsetypeaxios: methodConfig.responseType,\n }),\n );\n } else {\n rest = Resource.create(\n ctx.uri.href,\n expressPath,\n Symbols.old.MAPPING_CONFIG_HEADER as any,\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY as any,\n );\n }\n\n endpoints[ctx.uri.href][expressPath] = rest;\n } else {\n rest = endpoints[ctx.uri.href][expressPath] as any;\n }\n\n const method = type.toLowerCase();\n const isWithBody = method === 'put' || method === 'post';\n const pathPrams = {};\n let queryParams = {};\n let bodyObject = {};\n args.forEach((param, i) => {\n let currentParam: Models.Http.Rest.ParamConfig = void 0 as any;\n\n for (let pp in methodConfig.parameters) {\n let v = methodConfig.parameters[pp];\n if (v.index === i) {\n currentParam = v;\n break;\n }\n }\n\n if (currentParam.paramType === 'Path') {\n pathPrams[currentParam.paramName] = param;\n }\n if (currentParam.paramType === 'Query') {\n if (currentParam.paramName) {\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n `${Symbols.old.MAPPING_CONFIG_HEADER_QUERY_PARAMS}${currentParam.paramName} `,\n JSON.stringify(mapping),\n );\n }\n queryParams[currentParam.paramName] = param;\n } else {\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n Symbols.old.MAPPING_CONFIG_HEADER_QUERY_PARAMS,\n JSON.stringify(mapping),\n );\n }\n queryParams = _.cloneDeep(param);\n }\n }\n if (currentParam.paramType === 'Header') {\n if (currentParam.paramName) {\n if (currentParam.paramName === Symbols.old.MDC_KEY) {\n\n rest.headers.set(\n currentParam.paramName,\n encodeURIComponent(JSON.stringify(param)),\n );\n } else {\n rest.headers.set(currentParam.paramName, param);\n }\n } else {\n for (let header in param) {\n rest.headers.set(header, param[header]);\n }\n }\n }\n if (currentParam.paramType === 'Cookie') {\n Resource.Cookies.write(\n currentParam.paramName,\n param,\n currentParam.expireInSeconds,\n );\n }\n if (currentParam.paramType === 'Body') {\n if (currentParam.paramName) {\n if (ClassHelpers.getName(bodyObject) === 'FormData') {\n throw new Error(`[taon - framework] Don use param names when posting / putting FormData.\n Use this:\n\n(@Taon.Http.Param.Body() formData: FormData) ...\n\n\ninstead\n\n (@Taon.Http.Param.Body('${currentParam.paramName}') formData: FormData) ...\n\n`);\n }\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n `${Symbols.old.MAPPING_CONFIG_HEADER_BODY_PARAMS}${currentParam.paramName} `,\n JSON.stringify(mapping),\n );\n }\n bodyObject[currentParam.paramName] = param;\n } else {\n const mapping = Mapping.decode(param, !ctx.isProductionMode);\n if (mapping) {\n rest.headers.set(\n Symbols.old.MAPPING_CONFIG_HEADER_BODY_PARAMS,\n JSON.stringify(mapping),\n );\n }\n bodyObject = param;\n }\n }\n });\n\n if (\n typeof bodyObject === 'object' &&\n ClassHelpers.getName(bodyObject) !== 'FormData'\n ) {\n let circuralFromItem = [];\n bodyObject = JSON10.parse(\n JSON10.stringify(bodyObject, void 0, void 0, circs => {\n circuralFromItem = circs;\n }),\n );\n rest.headers.set(\n Symbols.old.CIRCURAL_OBJECTS_MAP_BODY,\n JSON10.stringify(circuralFromItem),\n );\n }\n\n if (typeof queryParams === 'object') {\n let circuralFromQueryParams = [];\n queryParams = JSON10.parse(\n JSON10.stringify(queryParams, void 0, void 0, circs => {\n circuralFromQueryParams = circs;\n }),\n );\n\n rest.headers.set(\n Symbols.old.CIRCURAL_OBJECTS_MAP_QUERY_PARAM,\n JSON10.stringify(circuralFromQueryParams),\n );\n }\n\n\n const httpResultObj = {\n received: isWithBody\n ? rest.model(pathPrams)[method](bodyObject, [queryParams])\n : rest.model(pathPrams)[method]([queryParams]),\n };\n return httpResultObj;\n };\n\n }\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/endpoint-context.ts","\n\nimport { Helpers } from 'tnp-core/browser';\n\nexport const globalPublicStorage = Helpers.isBrowser ? window : global;\n\n ;({}); // @--end-of-file-for-module=taon lib/storage.ts","\n\n\n\nimport { Stor } from 'taon-storage/browser';\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { Subject, take, takeUntil, tap } from 'rxjs';\nimport type { TaonAdminModeConfigurationComponent } from './taon-admin-mode-configuration.component';\nimport { globalPublicStorage } from '../../storage';\nimport { config } from 'tnp-config/browser';\nimport { Injectable } from '@angular/core';\n\n\nconst ENV = Helpers.isBrowser ? window['ENV'] : global['ENV'];\n\n@Injectable({ providedIn: 'root' })\nexport class TaonAdmin {\n public scrollableEnabled = false; // TOOD false by default\n\n\n private constructor() {\n\n this.scrollableEnabled = !!ENV?.useGlobalNgxScrollbar;\n }\n public static get Instance(): TaonAdmin {\n if (!globalPublicStorage[config.frameworkNames.productionFrameworkName]) {\n globalPublicStorage[config.frameworkNames.productionFrameworkName] = new TaonAdmin();\n }\n return globalPublicStorage[config.frameworkNames.productionFrameworkName];\n }\n\n\n\n public cmp: TaonAdminModeConfigurationComponent;\n private onEditMode = new Subject();\n onEditMode$ = this.onEditMode.asObservable();\n\n\n\n // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public adminPanelIsOpen: boolean;\n\n\n\n // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public draggablePopupMode: boolean;\n\n\n\n // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public draggablePopupModeFullScreen: boolean;\n\n\n\n /**\n * Property used in taon\n */ // @ts-ignore\n @Stor.property.in.localstorage.for(TaonAdmin).withDefaultValue(false)\n public keepWebsqlDbDataAfterReload: boolean;\n\n\n\n setEditMode(value: boolean) {\n this.onEditMode.next(value);\n }\n\n setKeepWebsqlDbDataAfterReload(value: boolean) {\n\n\n\n this.keepWebsqlDbDataAfterReload = value;\n }\n\n enabledTabs = [];\n\n hide() {\n this.draggablePopupMode = false;\n this.adminPanelIsOpen = false;\n }\n\n show() {\n this.draggablePopupMode = false;\n this.adminPanelIsOpen = true;\n }\n\n logout() {}\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin.service.ts","\n\n\nimport { Helpers } from 'tnp-core/browser';\nimport { EndpointContext } from './endpoint-context';\nimport { Models } from './models';\n\nimport { ENV } from './env';\n\nimport { TaonAdmin } from './ui/taon-admin-mode-configuration/taon-admin.service';\n\n\n\n\n\n\nexport const createContext = <\n\n CTX extends Record<string, object>,\n CTRL extends Record<string, new (...args: any[]) => any>,\n ENTITY extends Record<string, new (...args: any[]) => any>,\n REPO extends Record<string, new (...args: any[]) => any>,\n PROVIDER extends Record<string, new (...args: any[]) => any>,\n SUBSCRIBER extends Record<string, new (...args: any[]) => any>,\n\n>(\n configFn: (\n env: any,\n ) => Models.ContextOptions<CTX, CTRL, ENTITY, REPO, PROVIDER, SUBSCRIBER>,\n) => {\n let config = configFn(ENV);\n\n const endpointContextRef = new EndpointContext(config, configFn);\n\n const res = {\n\n types: {\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n get controllers() {\n return config.controllers;\n },\n get repositories() {\n return config.repositories;\n },\n get providers() {\n return config.providers;\n },\n get subscribers() {\n return config.subscribers;\n },\n },\n\n\n get contexts() {\n return config.contexts;\n },\n get contextName() {\n return config.contextName;\n },\n\n\n /**\n * @deprecated\n * - get reference to internal context\n */\n async __ref() {\n if (!endpointContextRef.inited) {\n await endpointContextRef.init({\n initFromRecrusiveContextResovle: true,\n });\n }\n return endpointContextRef;\n },\n /**\n * only for internal use\n * @deprecated\n */\n get __refSync() {\n return endpointContextRef;\n },\n getClassInstance<T>(ctor: new (...args: any[]) => T): T {\n return endpointContextRef.getInstanceBy(ctor);\n },\n\n getClass<T>(ctor: new (...args: any[]) => T): new (...args: any[]) => T {\n const classFun = endpointContextRef.getClassFunByClass(ctor);\n return classFun as any;\n\n\n\n\n\n\n\n\n\n\n\n\n\n },\n\n\n /**\n * - create controller instances for context\n * - init database (if enable) + migation scripts\n */\n initialize: async (overrideOptions?:{\n overrideHost?: string;\n overrideRemoteHost?: string;\n }): Promise<EndpointContext> => {\n return await new Promise(async (resolve, reject) => {\n setTimeout(async () => {\n await endpointContextRef.init({\n ...overrideOptions,\n });\n if (config.abstract) {\n throw new Error(`Abstract context can not be initialized`);\n }\n\n await endpointContextRef.initEntities();\n await endpointContextRef.initSubscribers();\n\n\n await endpointContextRef.initDatabaseConnection();\n\n\n\n\n\n\n endpointContextRef.initMetadata();\n endpointContextRef.startServer();\n/* */\n/* */\n \n\n await endpointContextRef.initClasses();\n let keepWebsqlDbDataAfterReload = false;\n\n keepWebsqlDbDataAfterReload =\n TaonAdmin.Instance.keepWebsqlDbDataAfterReload;\n\n if (!Helpers.isNode && keepWebsqlDbDataAfterReload) {\n Helpers.info(`[taon] Keep websql data after reload`);\n } else {\n await endpointContextRef.reinitControllers();\n }\n resolve(endpointContextRef);\n });\n });\n },\n\n /**\n * realtime communication with server\n * Udp socket.io (or ipc) based.\n */\n get realtime() {\n return {\n get client() {\n return endpointContextRef.realtimeClient;\n },\n get server() {\n return endpointContextRef.realtimeServer;\n }\n }\n },\n };\n return res;\n};\n\n\n ;({}); // @--end-of-file-for-module=taon lib/create-context.ts","\n\nimport { createContext } from '../create-context';\nimport { BaseRepository } from './base-repository';\n\nconst BaseContext = createContext(() => ({\n contextName: 'BaseContext',\n abstract: true,\n repositories: {\n // @ts-ignore\n BaseRepository,\n },\n}));\n\nexport { BaseContext };\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-context.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\nimport { _ } from 'tnp-core/browser';\nexport function TaonSubscriber(options: TaonSubscriberOptions) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols.metadata.options.repository,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers.setName(constructor, options?.className);\n } as any;\n}\n\nexport class TaonSubscriberOptions<\n T = any,\n> extends Models.DecoratorAbstractOpt {\n allowedEvents?: (keyof T)[];\n}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/subscriber-decorator.ts","\n\nimport { EntitySubscriberInterface, RecoverEvent, SoftRemoveEvent, InsertEvent, TransactionStartEvent, TransactionCommitEvent, TransactionRollbackEvent, RemoveEvent, UpdateEvent, } from 'taon-typeorm/browser';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { BaseInjector } from './base-injector';\nimport { TaonSubscriber } from '../decorators/classes/subscriber-decorator';\nimport { _ } from 'tnp-core/browser';\n\n@TaonSubscriber({\n className: 'BaseSubscriberForEntity',\n})\nexport abstract class BaseSubscriberForEntity<Entity = any>\n extends BaseInjector\n implements EntitySubscriberInterface\n{\n abstract listenTo(): new (...args) => Entity;\n\n /**\n * Called after entity is loaded.\n */\n afterLoad(entity: any) {\n this.__endpoint_context__.logDb &&\n console.log(`AFTER ENTITY LOADED: `, entity);\n }\n\n /**\n * Called before query execution.\n */\n beforeQuery(event: any) {\n\n this.__endpoint_context__.logDb &&\n console.log(`BEFORE QUERY: `, event.query);\n }\n\n /**\n * Called after query execution.\n */\n afterQuery(event: any) {\n\n this.__endpoint_context__.logDb &&\n console.log(`AFTER QUERY: `, event.query);\n }\n\n /**\n * Called before entity insertion.\n */\n beforeInsert(event: InsertEvent<any>) {\n this.__endpoint_context__.logDb &&\n console.log(`BEFORE ENTITY INSERTED: `, event.entity);\n }\n\n /**\n * Called after entity insertion.\n */\n afterInsert(event: InsertEvent<any>) {\n this.__endpoint_context__.logDb &&\n console.log(`AFTER ENTITY INSERTED: `, event.entity);\n }\n\n /**\n * Called before entity update.\n */\n beforeUpdate(event: UpdateEvent<any>) {\n this.__endpoint_context__.logDb &&\n console.log(`BEFORE ENTITY UPDATED: `, event.entity);\n }\n\n /**\n * Called after entity update.\n */\n afterUpdate(event: UpdateEvent<any>) {\n this.__endpoint_context__.logDb &&\n console.log(`AFTER ENTITY UPDATED: `, event.entity);\n }\n\n /**\n * Called before entity removal.\n */\n beforeRemove(event: RemoveEvent<any>) {\n this.__endpoint_context__.logDb &&\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity removal.\n */\n afterRemove(event: RemoveEvent<any>) {\n this.__endpoint_context__.logDb &&\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called before entity removal.\n */\n beforeSoftRemove(event: SoftRemoveEvent<any>) {\n this.__endpoint_context__.logDb &&\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} SOFT REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity removal.\n */\n afterSoftRemove(event: SoftRemoveEvent<any>) {\n this.__endpoint_context__.logDb &&\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} SOFT REMOVED: `,\n event.entity,\n );\n }\n\n /**\n * Called before entity recovery.\n */\n beforeRecover(event: RecoverEvent<any>) {\n this.__endpoint_context__.logDb &&\n console.log(\n `BEFORE ENTITY WITH ID ${event.entityId} RECOVERED: `,\n event.entity,\n );\n }\n\n /**\n * Called after entity recovery.\n */\n afterRecover(event: RecoverEvent<any>) {\n this.__endpoint_context__.logDb &&\n console.log(\n `AFTER ENTITY WITH ID ${event.entityId} RECOVERED: `,\n event.entity,\n );\n }\n\n /**\n * Called before transaction start.\n */\n beforeTransactionStart(event: TransactionStartEvent) {\n this.__endpoint_context__.logDb &&\n console.log(`BEFORE TRANSACTION STARTED: `, event);\n }\n\n /**\n * Called after transaction start.\n */\n afterTransactionStart(event: TransactionStartEvent) {\n this.__endpoint_context__.logDb &&\n console.log(`AFTER TRANSACTION STARTED: `, event);\n }\n\n /**\n * Called before transaction commit.\n */\n beforeTransactionCommit(event: TransactionCommitEvent) {\n this.__endpoint_context__.logDb &&\n console.log(`BEFORE TRANSACTION COMMITTED: `, event);\n }\n\n /**\n * Called after transaction commit.\n */\n afterTransactionCommit(event: TransactionCommitEvent) {\n this.__endpoint_context__.logDb &&\n console.log(`AFTER TRANSACTION COMMITTED: `, event);\n }\n\n /**\n * Called before transaction rollback.\n */\n beforeTransactionRollback(event: TransactionRollbackEvent) {\n this.__endpoint_context__.logDb &&\n console.log(`BEFORE TRANSACTION ROLLBACK: `, event);\n }\n\n /**\n * Called after transaction rollback.\n */\n afterTransactionRollback(event: TransactionRollbackEvent) {\n this.__endpoint_context__.logDb &&\n console.log(`AFTER TRANSACTION ROLLBACK: `, event);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base-subscriber-for-entity.ts","\n\nimport * as controller from './base-controller';\nimport * as crudController from './base-crud-controller';\nimport * as entity from './base-entity';\nimport * as abstractEntity from './base-abstract-entity';\nimport * as repository from './base-repository';\nimport * as provider from './base-provider';\nimport * as baseclass from './base-class';\nimport * as baseContext from './base-context';\nimport * as baseSubscriberEntity from './base-subscriber-for-entity';\nexport namespace Base {\n export import Controller = controller.BaseController;\n export import CrudController = crudController.BaseCrudController;\n export import Entity = entity.BaseEntity;\n export import AbstractEntity = abstractEntity.BaseAbstractEntity;\n export import Provider = provider.BaseProvider;\n export import Class = baseclass.BaseClass;\n export import Repository = repository.BaseRepository;\n export import SubscriberForEntity = baseSubscriberEntity.BaseSubscriberForEntity;\n export const Context = baseContext.BaseContext;\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/base-classes/base.ts","\n\nimport { Mapping } from 'ng2-rest/browser';\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { Symbols } from '../../symbols';\nimport { _ } from 'tnp-core/browser';\nimport { Models } from '../../models';\n/* */\n/* */\n \n\nexport function TaonEntity<T = any>(options?: TaonEntityOptions<T>) {\n return function (constructor: Function) {\n options = options || ({} as any);\n options.uniqueKeyProp = options.uniqueKeyProp || ('id' as any);\n ClassHelpers.setName(constructor, options?.className);\n\n Mapping.DefaultModelWithMapping<T>(\n options?.defaultModelValues || {},\n _.merge(\n options?.defaultModelMapping || {},\n (options?.defaultModelMappingDeep || {}) as any,\n ),\n )(constructor);\n\n\n Mapping.DefaultModelWithMapping<T>(void 0, {})(constructor);\n\n Reflect.defineMetadata(\n Symbols.metadata.options.entity,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n/* */\n/* */\n \n CLASS.setName(constructor, options?.className); // TODO QUICK_FIX for ng2-rest\n };\n}\n\nexport class TaonEntityOptions<T = any> extends Models.DecoratorAbstractOpt {\n /**\n * default unique property is \"id\"\n * for your entity it may be something else\n */\n uniqueKeyProp?: string;\n createTable?: boolean;\n defaultModelValues?: Mapping.ModelValue<T>;\n defaultModelMapping?: Mapping.Mapping<T>;\n defaultModelMappingDeep?: { [lodashPathes: string]: string | [string] };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/entity-decorator.ts","\n\nimport { ClassHelpers } from '../../helpers/class-helpers';\nimport { Symbols } from '../../symbols';\nimport { Models } from '../../models';\n\nexport function TaonProvider<T = any>(options?: TaonProviderOptions<T>) {\n return function (constructor: Function) {\n Reflect.defineMetadata(\n Symbols.metadata.options.provider,\n options,\n constructor,\n );\n Reflect.defineMetadata(\n Symbols.metadata.className,\n options?.className || constructor.name,\n constructor,\n );\n ClassHelpers.setName(constructor, options?.className || constructor.name);\n };\n}\n\nexport class TaonProviderOptions<\n T = any,\n> extends Models.DecoratorAbstractOpt {\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/decorators/classes/provider-decorator.ts","\n\n\nimport { inject as angularInject } from '@angular/core';\n\nimport { Symbols } from './symbols';\nimport type { EndpointContext } from './endpoint-context';\nimport type { BaseInjector } from './base-classes/base-injector';\n\nexport const inject = <T>(entity: () => new (...args: any[]) => T): T => {\n return new Proxy(\n {},\n {\n get: (_, propName) => {\n if (propName === 'hasOwnProperty') {\n return () => false;\n }\n\n const ctor = entity();\n const contextFromClass = ctor[\n Symbols.ctxInClassOrClassObj\n ] as EndpointContext;\n const resultContext = contextFromClass;\n if (resultContext) {\n let instance = resultContext.inject(ctor) as BaseInjector;\n\n\n if (propName === 'getOriginalPrototype') {\n return () => Object.getPrototypeOf(instance);\n }\n if (propName === 'getOriginalConstructor') {\n return () => instance.constructor;\n }\n\n const methods = ctor[Symbols.classMethodsNames] || [];\n const isMethods = methods.includes(propName);\n\n const methodOrProperty = isMethods\n ? instance[propName].bind(instance)\n : instance[propName];\n\n\n\n\n\n return methodOrProperty;\n }\n\n\n return angularInject(ctor)[propName];\n\n },\n },\n ) as T;\n};\n\n\n\n\n\n\n\n\n/**\n * TODO\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ;({}); // @--end-of-file-for-module=taon lib/inject.ts","\n\nimport { Directive, Input, Output, EventEmitter, HostBinding, HostListener, } from '@angular/core';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\n\nimport { _ } from 'tnp-core/browser';\nimport { Log, Level } from 'ng2-logger/browser';\nconst log = Log.create(`[taon-helpers] long-press`, Level.__NOTHING);\n\n@Directive({\n selector: '[taonLongPress]',\n standalone: true,\n})\nexport class TaonLongPress {\n @Input() pressDuration: number = 1000;\n\n @Output() onLongPress: EventEmitter<any> = new EventEmitter();\n @Output() onLongPressing: EventEmitter<any> = new EventEmitter();\n @Output() onLongPressEnd: EventEmitter<any> = new EventEmitter();\n\n private pressing: boolean;\n private longPressing: boolean;\n private timeout: any;\n private mouseX: number = 0;\n private mouseY: number = 0;\n\n @HostBinding('class.press')\n get press() {\n return this.pressing;\n }\n\n @HostBinding('class.longpress')\n get longPress() {\n return this.longPressing;\n }\n\n allowTrigger = false;\n triggerEnd = _.debounce(() => {\n this.endPress();\n }, 500);\n\n @HostListener('mousedown', ['$event'])\n onMouseDown(event) {\n\n log.d(`MOUSE DOWN `);\n\n if (event.which !== 1) return;\n this.allowTrigger = true;\n\n this.mouseX = event.clientX;\n this.mouseY = event.clientY;\n\n this.pressing = true;\n this.longPressing = false;\n\n this.timeout = setTimeout(() => {\n if (this.allowTrigger) {\n this.longPressing = true;\n log.d(`long pressing start pressDuration:${this.pressDuration} `);\n this.onLongPress.emit(event);\n this.loop(event);\n }\n }, this.pressDuration);\n\n this.loop(event);\n }\n\n @HostListener('mousemove', ['$event'])\n onMouseMove(event) {\n if (this.pressing && !this.longPressing) {\n const xThres = event.clientX - this.mouseX > 10;\n const yThres = event.clientY - this.mouseY > 10;\n if (xThres || yThres) {\n this.endPress();\n }\n }\n }\n\n loop(event) {\n if (this.longPressing) {\n this.timeout = setTimeout(() => {\n log.d(`emil longpressing`);\n this.triggerEnd();\n this.onLongPressing.emit(event);\n this.loop(event);\n }, 50);\n }\n }\n\n endPress(emit = true) {\n this.allowTrigger = false;\n clearTimeout(this.timeout);\n this.longPressing = false;\n this.pressing = false;\n if (emit) {\n log.d(`EMIT END`);\n this.onLongPressEnd.emit(true);\n } else {\n log.d(`NOT EMIT END`);\n }\n }\n\n @HostListener('mouseup')\n onMouseUp() {\n this.endPress(false);\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/directives/taon-long-press.directive.ts","\n\nimport { Directive, ElementRef, Input } from '@angular/core';\n\n@Directive({\n selector: '[taonInjectHTML]',\n standalone: true,\n})\nexport class TaonInjectHTMLDirective {\n @Input() set taonInjectHTML(content: string) {\n this.host.nativeElement.innerHTML = content;\n }\n\n constructor(private host: ElementRef) {}\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/directives/taon-inject-html.directive.ts","\n\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl, } from '@angular/platform-browser';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\n\n@Pipe({\n name: 'safe',\n standalone: true,\n})\nexport class SafePipe implements PipeTransform {\n constructor(protected sanitizer: DomSanitizer) {}\n\n public transform(\n value: any,\n type: string\n ): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/directives/safe.pipe.ts","\n\n\nexport * from './taon-long-press.directive';\nexport * from './taon-inject-html.directive';\nexport * from './safe.pipe';\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/directives/index.ts","\n\n\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CdkStepperModule } from '@angular/cdk/stepper';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { NgModule } from '@angular/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTreeModule } from '@angular/material/tree';\n\n@NgModule({\n exports: [\n A11yModule,\n CdkStepperModule,\n CdkTableModule,\n CdkTreeModule,\n DragDropModule,\n MatAutocompleteModule,\n MatBadgeModule,\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatStepperModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatTreeModule,\n ScrollingModule,\n ],\n})\nexport class TaonFullMaterialModule {}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-full-material.module.ts","\n\n\nimport { Component, EventEmitter, HostBinding, Input, OnInit, Output, } from '@angular/core';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'taon-github-fork-me-corner',\n templateUrl: './taon-github-fork-me-corner.component.html',\n styleUrls: ['./taon-github-fork-me-corner.component.scss'],\n})\nexport class TaonGithubForkMeCornerComponent {\n @Input() url: string = 'https://github.com';\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.component.ts","<a href=\"{{ url }}\" class=\"github-corner\" aria-label=\"View source on GitHub\"\n ><svg\n width=\"80\"\n height=\"80\"\n viewBox=\"0 0 250 250\"\n style=\"\n fill: #151513;\n color: #fff;\n position: absolute;\n top: 0;\n border: 0;\n right: 0;\n \"\n aria-hidden=\"true\">\n <path d=\"M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z\"></path>\n <path\n d=\"M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2\"\n fill=\"currentColor\"\n style=\"transform-origin: 130px 106px\"\n class=\"octo-arm\"></path>\n <path\n d=\"M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z\"\n fill=\"currentColor\"\n class=\"octo-body\"></path>\n </svg>\n</a>\n","\n\n\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { TaonGithubForkMeCornerComponent } from './taon-github-fork-me-corner.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [TaonGithubForkMeCornerComponent],\n declarations: [TaonGithubForkMeCornerComponent],\n providers: [],\n})\nexport class TaonGithubForkMeCornerModule {}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-github-fork-me-corner/taon-github-fork-me-corner.module.ts","\n\n\nexport * from './taon-github-fork-me-corner.component';\n\n\nexport * from './taon-github-fork-me-corner.module';\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-github-fork-me-corner/index.ts","\n\n\nimport { _ } from 'tnp-core/browser';\nimport { Injectable } from '@angular/core';\nimport { HotToastService } from '@ngneat/hot-toast';\nimport { TaonNotificationOptions, TaonNotificationType, } from './taon-notifications.models';/* */\n/* */\n/* */\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TaonNotificationsService {\n constructor(private toast: HotToastService) {}\n\n private options(\n type: TaonNotificationType,\n options: TaonNotificationOptions | string\n ): TaonNotificationOptions {\n if (_.isString(options)) {\n options = {\n // @ts-ignore\n title: options,\n };\n }\n return options as TaonNotificationOptions;\n }\n\n success(options: TaonNotificationOptions | string) {\n const opt = this.options('success', options);\n return this.toast.success(opt.title);\n }\n\n error(options: TaonNotificationOptions | string) {\n const opt = this.options('error', options);\n return this.toast.error(opt.title);\n }\n\n warn(options: TaonNotificationOptions | string) {\n const opt = this.options('warning', options);\n return this.toast.warning(opt.title);\n }\n\n info(options: TaonNotificationOptions | string) {\n const opt = this.options('info', options);\n return this.toast.info(opt.title);\n }\n}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-notifications/taon-notifications.service.ts","\n\n\nimport { Component, OnInit, TemplateRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { Resource } from 'ng2-rest/browser';\nimport { TaonNotificationsService } from './taon-notifications.service';\n\n@Component({\n selector: 'taon-notifications',\n templateUrl: './taon-notifications.component.html',\n styleUrls: ['./taon-notifications.component.scss'],\n})\nexport class TaonNotificationsComponent implements OnInit {\n constructor(private notification: TaonNotificationsService) {}\n\n ngOnInit() {}\n\n init(\n subscribtionsArray: Subscription[],\n template: TemplateRef<any>,\n callback: (dataToTempalte) => any\n ) {\n subscribtionsArray.push(\n Resource.listenErrors.subscribe(err => {\n this.notification.error(err.msg);\n\n\n\n\n }) as any\n );\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-notifications/taon-notifications.component.ts","<!-- <p>\n notyfications works!\n</p> -->\n","\n\n\nimport { HotToastService } from '@ngneat/hot-toast';\n\nexport class TaonNotificationOptions {\n title: string;\n subtitle?: string;\n}\n\nexport type TaonNotificationType = keyof Omit<\n HotToastService,\n 'defaultConfig' | 'observe'\n>;\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-notifications/taon-notifications.models.ts","\n\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TaonNotificationsComponent } from './taon-notifications.component';\n\n\n\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { TaonNotificationsService } from './taon-notifications.service';\n\n@NgModule({\n imports: [\n\n\n\n\n\n ],\n exports: [TaonNotificationsComponent],\n declarations: [TaonNotificationsComponent],\n providers: [TaonNotificationsService],\n})\nexport class TaonNotificationsModule {}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-notifications/taon-notifications.module.ts","\n\n\nexport * from './taon-notifications.component';\n\nexport * from './taon-notifications.models';\n\nexport * from './taon-notifications.module';\n\n\nexport * from './taon-notifications.service';\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-notifications/index.ts","\n\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, DestroyRef, ElementRef, HostBinding, Input, OnInit, Self, inject, } from '@angular/core';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule, } from '@angular/forms';/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { PasswordModule } from 'primeng/password';\nimport { Stor } from 'taon-storage/browser';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { interval, take, tap } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport interface TaonSessionPasscodeModel {\n passcode: string;\n}\n\nexport type TaonSessionPasscodeForm = {\n [prop in keyof TaonSessionPasscodeModel]: FormControl<\n TaonSessionPasscodeModel[prop]\n >;\n};\n\n@Component({\n selector: 'taon-session-passcode',\n templateUrl: './taon-session-passcode.component.html',\n styleUrls: ['./taon-session-passcode.component.scss'],\n standalone: true,\n imports: [PasswordModule, CommonModule, ReactiveFormsModule, FormsModule],\n})\nexport class TaonSessionPasscodeComponent implements OnInit {\n destroyRef = inject(DestroyRef);\n\n\n @Input() public passcode: string;\n @Input() public message: string;\n public safeMessage: SafeHtml;\n\n @(Stor.property.in.localstorage\n .for(TaonSessionPasscodeComponent)\n .withDefaultValue(''))\n private lastPasscode: string;\n @HostBinding('style.display') public display = 'none';\n public form: FormGroup<TaonSessionPasscodeForm> =\n new FormGroup<TaonSessionPasscodeForm>({\n passcode: new FormControl(),\n });\n constructor(\n @Self() private element: ElementRef<HTMLElement>,\n private domSanitizer: DomSanitizer,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngOnInit() {\n if (!this.passcode) {\n this.passcode = '123456';\n }\n if (!this.message) {\n this.message = `\n This website is only for testing purpose. Please type passcode bellow to see content.\n\n `;\n }\n\n\n\n\n\n\n\n this.safeMessage = this.domSanitizer.bypassSecurityTrustHtml(this.message);\n\n if (this.lastPasscode?.toString() === this.passcode?.toString()) {\n this.hide();\n } else {\n this.show();\n this.focus();\n }\n\n interval(1000)\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n tap(() => {\n this.focus();\n }),\n )\n .subscribe();\n }\n\n submit({ passcode }: Partial<TaonSessionPasscodeModel>) {\n if (this.isPasscodeOK(passcode || '')) {\n this.hide();\n } else {\n this.clear();\n }\n }\n\n private isPasscodeOK(passcode: string) {\n this.lastPasscode = passcode.toString();\n return this.passcode.toString() === passcode;\n }\n\n ngAfterViewInit(): void {}\n\n public focus(): void {\n this.element.nativeElement.querySelector('input')?.focus();\n }\n\n hide() {\n this.display = 'none';\n }\n\n show() {\n this.display = 'block';\n }\n\n clear() {\n this.form.controls.passcode.setValue('');\n }\n\n onKeyup(event: KeyboardEvent & { target: { value: string } }) {\n if (this.isPasscodeOK(event.target.value || '')) {\n this.hide();\n return;\n }\n const key = event.keyCode || event.charCode;\n if (key === 8 || key === 46 || this.lastPasscode?.length > 5) {\n this.clear();\n }\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-session-passcode/taon-session-passcode.component.ts","<form\n [formGroup]=\"form\"\n content=\"notranslate\"\n autocomplete=\"off\"\n (click)=\"focus()\"\n (ngSubmit)=\"submit(form.value)\"\n class=\"flex flex-column align-items-center w-full h-full\">\n <div class=\"flex align-content-center w-full justify-content-center mt-8\">\n <p\n class=\"p-3\"\n style=\"max-width: 400px; min-height: 100px\"\n [innerHtml]=\"safeMessage\"></p>\n </div>\n <input\n type=\"password\"\n class=\"text-5xl md:text-8xl pointer-events-none\"\n #taonpasscode\n (keyup)=\"onKeyup($event)\"\n formControlName=\"passcode\" />\n <!-- placeholder=\"Enter passcode\" -->\n</form>\n","\n\n\nexport * from './taon-session-passcode.component';\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-session-passcode/index.ts","\n\n\nimport { Component, EventEmitter, HostBinding, Input, OnInit, Output, ViewChild, } from '@angular/core';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { _ } from 'tnp-core/browser';\n\nimport axios from 'axios';\nimport { NgProgressConfig, NgProgressModule, NgProgressRef, } from 'ngx-progressbar';/* */\n/* */\n/* */\n/* */\n // @ts-ignore\nimport { Taon } from '../../../lib';\n\n\n\nconst calculatePercentage = (loaded, total) => Math.floor(loaded * 1.0) / total;\ndeclare const ENV: any;\n\n@Component({\n selector: 'taon-progress-bar',\n templateUrl: './taon-progress-bar.component.html',\n styleUrls: ['./taon-progress-bar.component.scss'],\n})\nexport class TaonProgressBarComponent implements OnInit {\n @ViewChild('labProgress') labProgress: NgProgressRef;\n @Input() isDesktop: boolean;\n admin: any; //TODO @LAST\n handlers: Subscription[] = [];\n options: NgProgressConfig = _.merge(\n {\n min: 8,\n max: 100,\n speed: 200,\n trickleSpeed: 300,\n debounceTime: 0,\n ease: 'linear',\n spinnerPosition: 'right',\n direction: 'ltr+',\n color: 'gray',\n fixed: true,\n meteor: true,\n spinner: true,\n thick: false,\n },\n _.get(ENV, `plugins['ngx-progressbar']`),\n );\n\n constructor() {}\n\n ngOnInit() {}\n\n ngOnDestroy(): void {\n this.handlers.forEach(h => h.unsubscribe());\n }\n\n ngAfterViewInit(): void {\n\n this.loadProgressBar(void 0, axios);\n }\n\n loadProgressBar(config, instance = axios) {\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n \n }\n}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-progress-bar/taon-progress-bar.component.ts","<ng-progress\n #labProgress\n id=\"lab\"\n [meteor]=\"options.meteor\"\n [color]=\"options.color\"\n [min]=\"options.min\"\n [max]=\"options.max\"\n [speed]=\"options.speed\"\n [spinner]=\"\n options.spinner &&\n (!admin.adminPanelIsOpen ||\n (admin.adminPanelIsOpen && (admin.draggablePopupMode || !isDesktop)))\n \"\n [spinnerPosition]=\"options.spinnerPosition\"\n [direction]=\"options.direction\"\n [trickleSpeed]=\"options.trickleSpeed\"\n [debounceTime]=\"options.debounceTime\"\n [ease]=\"options.ease\"\n [thick]=\"options.thick\"\n [fixed]=\"options.fixed\">\n</ng-progress>\n<!-- (started)=\"onProgressStarted()\"\n (completed)=\"onProgressCompleted()\" -->\n","\n\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TaonProgressBarComponent } from './taon-progress-bar.component';\nimport { NgProgressConfig, NgProgressModule } from 'ngx-progressbar';\n\n@NgModule({\n imports: [CommonModule, NgProgressModule.withConfig({})],\n declarations: [TaonProgressBarComponent],\n exports: [TaonProgressBarComponent],\n})\nexport class TaonProgressBarModule {}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-progress-bar/taon-progress-bar.module.ts","\n\n\nexport * from './taon-progress-bar.component';\nexport * from './taon-progress-bar.module';\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-progress-bar/index.ts","\n\n\nimport { Component, OnInit, Input, Output, TemplateRef, EventEmitter, ViewChild, ElementRef, } from '@angular/core';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport * as _ from 'lodash';\nimport { Log, Level } from 'ng2-logger/browser'; // @ts-ignore\nimport { Taon } from '../../../lib';\nimport { CLASS } from 'typescript-class-helpers/browser';\nimport { PageEvent } from '@angular/material/paginator';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\nimport { Subscription, debounceTime, defer, distinctUntilChanged, fromEvent, map, share, tap, } from 'rxjs';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { json5 } from 'tnp-core/browser';\n\n\n\nconst log = Log.create('Table wrapper', Level.__NOTHING);\nconst defaultColumns = [\n {\n header: 'ID',\n field: 'id',\n },\n {\n header: 'NAME',\n field: 'name',\n },\n] as MtxGridColumn[];\n\n\n@Component({\n\n selector: 'taon-table',\n templateUrl: './taon-table.component.html',\n styleUrls: ['./taon-table.component.scss'],\n})\nexport class TaonTableComponent {\n\n @Input() public pageNumber: number = 1;\n @Input() public pageSize: number = 5;\n @Input() public allowedColumns: string[] = [];\n @Input() public entity: typeof Taon.Base.Entity | string;\n @Input() public expansionTemplate: TemplateRef<any>;\n @Input() public rows = _.times(20, id => {\n return {\n id,\n name: `Amazing ${id} row `,\n };\n });\n @Input() public columns: MtxGridColumn[] = defaultColumns as MtxGridColumn[];\n @Input() public pageSizeOptions: number[] = [5, 10, 20];\n @Output() public expansionChange = new EventEmitter();\n\n @Output() public addingItem = new EventEmitter<void>();\n @ViewChild('search', { static: true }) search?: ElementRef<HTMLElement>;\n private searchInputChange$ = defer(() =>\n fromEvent<KeyboardEvent>(this.search?.nativeElement as any, 'keyup')\n ).pipe(\n map(c => c.target['value']),\n debounceTime(500),\n distinctUntilChanged(),\n share(),\n tap(data => {\n console.log({ data });\n })\n );\n\n public expandable: boolean = false;\n public showPaginator = true;\n public isLoading = false;\n public totalElements: number = 100;\n private sub: Subscription = new Subscription();\n\n\n constructor() {}\n\n\n\n\n async ngOnInit() {\n if (_.isString(this.entity)) {\n this.entity = CLASS.getBy(this.entity) as any;\n }\n\n this.sub.add(this.searchInputChange$.subscribe());\n if (!!this.entity) {\n this.rows = [];\n }\n this.expandable = !!this.expansionTemplate;\n\n log.i('this.columns,', this.columns);\n const columnsConfigSameAsDefault = _.isEqual(this.columns, defaultColumns);\n\n\n\n\n const entityClass = this.entity;\n if (entityClass && columnsConfigSameAsDefault) {\n log.i(\n 'this.crud.entity',\n CLASS.describeProperites(entityClass as Function)\n );\n\n try {\n const props = CLASS.describeProperites(entityClass as Function);\n let columns = props\n .filter(prop =>\n this.allowedColumns.length > 0\n ? this.allowedColumns.includes(prop)\n : true\n )\n .map(prop => {\n return {\n header: _.upperCase(prop),\n field: prop,\n } as MtxGridColumn;\n });\n\n const extra = this.allowedColumns.filter(f => !props.includes(f));\n columns = [\n ...columns,\n ...extra.map(prop => {\n return {\n header: _.upperCase(prop),\n field: prop,\n } as MtxGridColumn;\n }),\n ];\n\n\n\n\n\n if (!this.expandable) {\n for (let index = 0; index < columns.length; index++) {\n const col = columns[index];\n delete col.showExpand;\n }\n }\n this.columns = columns;\n } catch (error) {\n console.error(error);\n }\n } else {\n }\n\n if (!this.entity) {\n this.showPaginator = false;\n }\n\n await this.retriveData();\n }\n\n\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n }\n\n\n\n\n\n\n\n async getNextPage(e: PageEvent) {\n\n\n\n this.pageNumber = e.pageIndex + 1;\n this.pageSize = e.pageSize;\n await this.retriveData();\n }\n\n\n\n async retriveData() {\n // @ts-ignore\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n }\n\n\n\n expansionRow(e) {\n this.expansionChange.next(e);\n }\n\n\n\n onTableContextMenu(e) {\n\n\n\n log.i('context menu event', e);\n }\n\n\n\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-table/taon-table.component.ts","<br />\n<columns-container>\n <column grow>\n <mat-form-field class=\"search-input\">\n <input matInput placeholder=\"Type to search table...\" #search />\n </mat-form-field>\n </column>\n <column [width]=\"80\">\n <button\n mat-fab\n [ngClass]=\"{ 'half-opacity': !search.value }\"\n class=\"undo-button\"\n color=\"secondary\"\n (click)=\"search.value = ''\">\n <mat-icon>close </mat-icon>\n </button>\n </column>\n\n <column [width]=\"80\">\n <button\n mat-fab\n (click)=\"addingItem.next()\"\n class=\"undo-button\"\n color=\"primary\">\n <mat-icon>add</mat-icon>\n </button>\n </column>\n</columns-container>\n\n<mtx-grid\n *ngIf=\"rows && columns\"\n [data]=\"rows\"\n [columns]=\"columns\"\n [expandable]=\"expandable\"\n [expansionTemplate]=\"expansionTemplate\"\n (expansionChange)=\"expansionRow($event)\"\n [length]=\"totalElements\"\n [loading]=\"isLoading\"\n [pageOnFront]=\"false\"\n [pageIndex]=\"pageNumber - 1\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [showPaginator]=\"showPaginator\"\n (page)=\"getNextPage($event)\">\n</mtx-grid>\n","\n\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TaonTableComponent } from './taon-table.component';\nimport { MtxGridModule } from '@ng-matero/extensions/grid';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { StaticColumnsModule } from 'static-columns/browser';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButton, MatButtonModule } from '@angular/material/button';\n\n@NgModule({\n imports: [\n CommonModule,\n MatSelectModule,\n MtxGridModule,\n MatFormFieldModule,\n MatInputModule,\n StaticColumnsModule,\n MatIconModule,\n MatButtonModule,\n FormsModule,\n ReactiveFormsModule,\n ],\n exports: [TaonTableComponent],\n declarations: [TaonTableComponent],\n})\nexport class TaonTableModule {}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-table/taon-table.module.ts","\n\n\nexport * from './taon-table.component';\n\n\nexport * from './taon-table.module';\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-table/index.ts","\n\nimport { ApplicationRef, ChangeDetectorRef, Injectable, TemplateRef, inject, } from '@angular/core';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport type { TaonAdmin } from './taon-admin.service';\nimport type { TaonAdminModeConfigurationComponent } from './taon-admin-mode-configuration.component';\n\n@Injectable({ providedIn: 'root' })\nexport class TaonAdminService {\n taonAdminModeConfigurationComponent: TaonAdminModeConfigurationComponent;\n\n private readonly admin: TaonAdmin;\n\n /**\n * @deprecated\n */\n disableScroll() {\n\n\n }\n\n constructor(private cdr: ApplicationRef) {\n this.admin = window['taon'] as TaonAdmin;\n }\n\n public addTab(name: string, template: TemplateRef<any>): void {\n this.admin.cmp.tabs.push({\n name,\n template,\n });\n }\n\n init(\n taonAdminModeConfigurationComponent: TaonAdminModeConfigurationComponent\n ) {\n this.taonAdminModeConfigurationComponent =\n taonAdminModeConfigurationComponent;\n }\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-control.service.ts","\n\n\n\n\nimport { ChangeDetectorRef, Component, EventEmitter, HostListener, Injector, Input, OnInit, Output, ViewChild, inject, } from '@angular/core';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { Helpers, _ } from 'tnp-core/browser';\nimport { TaonAdmin } from './taon-admin.service';\nimport { Stor } from 'taon-storage/browser';\nimport { CdkDrag, CdkDragEnd, CdkDragMove, CdkDragRelease, Point, } from '@angular/cdk/drag-drop';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { BreakpointsService } from 'static-columns/browser';\nimport { Subject, takeUntil, tap } from 'rxjs';\nimport { TaonAdminModeTab } from './models/taon-admin-mode-tabs';\nimport { TaonAdminService } from './taon-admin-control.service';\n\ndeclare const ENV: any;\n\n\n@Component({\n\n selector: 'app-taon-admin-mode-configuration',\n templateUrl: './taon-admin-mode-configuration.component.html',\n styleUrls: ['./taon-admin-mode-configuration.component.scss'],\n\n})\nexport class TaonAdminModeConfigurationComponent implements OnInit {\n\n $destroy = new Subject();\n public readonly cdr = inject(ChangeDetectorRef);\n public readonly taonAdminService = inject(TaonAdminService);\n public readonly isDesktop: boolean;\n public tabs: TaonAdminModeTab[] = [];\n public admin: TaonAdmin = window['taon'] as TaonAdmin;\n public isWebSQLMode: boolean = Helpers.isWebSQL;\n public hideTaonToolsInProduction: boolean =\n ENV.hideTaonToolsInProduction && ENV.angularProd;\n public isIframe: boolean = window.location !== window.parent.location;\n public height: number = 100;\n public openedOnce = false;\n public reloading: boolean = false;\n public showPasscode: boolean =\n _.isString(ENV.passcode) || _.isObject(ENV.passcode);\n public passcode: string = _.isString(ENV.passcode)\n ? ENV.passcode\n : _.isObject(ENV.passcode)\n ? ENV.passcode.code\n : '';\n public message: string = _.isObject(ENV.passcode)\n ? ENV.passcode.message\n : void 0;\n\n // @ts-ignore\n @Stor.property.in.localstorage\n .for(TaonAdminModeConfigurationComponent)\n .withDefaultValue(0)\n dragPositionX: number;\n\n // @ts-ignore\n @Stor.property.in.localstorage\n .for(TaonAdminModeConfigurationComponent)\n .withDefaultValue(0)\n dragPositionY: number;\n\n dragPositionZero = { x: 0, y: 0 } as Point;\n dragPosition: Point;\n\n // @ts-ignore\n @Stor.property.in.localstorage\n .for(TaonAdminModeConfigurationComponent)\n .withDefaultValue(0)\n selectedIndex: number;\n\n @ViewChild('tabGroup') tabGroup;\n\n // @ts-ignore\n @Stor.property.in.localstorage\n .for(TaonAdminModeConfigurationComponent)\n .withDefaultValue(false)\n wasOpenDraggablePopup: boolean;\n\n @Output() taonAdminModeConfigurationDataChanged = new EventEmitter();\n @Input() taonAdminModeConfigurationData: any = {};\n public get opened() {\n return !this.isIframe && this.admin.adminPanelIsOpen;\n }\n public set opened(v) {\n if (v && !this.openedOnce) {\n this.openedOnce = true;\n }\n if (this.wasOpenDraggablePopup) {\n this.wasOpenDraggablePopup = false;\n this.admin.draggablePopupMode = true;\n }\n this.admin.adminPanelIsOpen = v;\n }\n\n\n\n constructor(private breakpointsService: BreakpointsService) {\n this.admin.cmp = this;\n this.breakpointsService\n .listenTo()\n .pipe(takeUntil(this.$destroy))\n .subscribe(breakpoint => {\n // @ts-ignore\n this.isDesktop = breakpoint === 'desktop';\n });\n this.taonAdminService.init(this);\n }\n\n\n reloadTabs() {\n this.reloading = true;\n setTimeout(() => {\n this.reloading = false;\n console.log('reloading done');\n });\n }\n\n\n async ngOnInit() {\n await Stor.awaitPendingOperatios();\n\n\n\n this.dragPosition = { x: this.dragPositionX, y: this.dragPositionY };\n this.openedOnce = this.opened;\n\n\n\n\n\n }\n\n ngAfterViewInit(): void {\n //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.\n //Add 'implements AfterViewInit' to the class.\n setTimeout(() => {\n this.height = window.innerHeight;\n\n\n if (this.admin.draggablePopupMode) {\n this.reloadTabs();\n }\n\n\n\n\n\n });\n }\n\n ngOnDestroy(): void {\n this.$destroy.next(void 0);\n this.$destroy.complete();\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event: Event) {\n this.height = window.innerHeight;\n }\n\n\n\n\n async toogle() {\n\n this.opened = !this.opened;\n }\n\n async toogleFullScreen() {\n this.admin.draggablePopupMode = true;\n this.admin.draggablePopupModeFullScreen =\n !this.admin.draggablePopupModeFullScreen;\n this.resetDrag();\n }\n\n resetDrag() {\n this.dragPositionX = 0;\n this.dragPositionY = 0;\n this.dragPosition = { x: this.dragPositionX, y: this.dragPositionY };\n }\n\n moved(c: CdkDragEnd) {\n this.dragPositionX += c.distance.x;\n this.dragPositionY += c.distance.y;\n }\n\n scrollTabs(event) {\n return;\n\n\n\n\n\n\n\n\n\n\n }\n\n\n}\n\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.component.ts","<!-- #region basic global components -->\n<taon-session-passcode\n *ngIf=\"showPasscode\"\n [passcode]=\"passcode\"\n [message]=\"message\" />\n<!-- <taon-progress-bar [isDesktop]=\"isDesktop\"></taon-progress-bar> -->\n<!-- <taon-notifications></taon-notifications> -->\n<button\n mat-fab\n class=\"fab-button\"\n color=\"accent\"\n aria-label=\"Taon Admin Mode\"\n *ngIf=\"\n !admin.draggablePopupMode &&\n isDesktop &&\n !isIframe &&\n !hideTaonToolsInProduction\n \"\n (click)=\"toogle()\">\n <mat-icon>build</mat-icon>\n</button>\n<!-- #endregion -->\n\n<!-- #region small hidden button -->\n<!-- <button class=\"admin-show-button\"\n *ngIf=\"!admin.draggablePopupMode && isDesktop\"\n (click)=\"toogle()\"> Admin </button> -->\n<!-- #endregion -->\n\n<ng-template #contentNoScroll>\n <ng-content> </ng-content>\n</ng-template>\n\n<ng-template #content>\n <ng-scrollbar>\n <ng-container [ngTemplateOutlet]=\"contentNoScroll\"></ng-container>\n </ng-scrollbar>\n</ng-template>\n\n<!-- #region admin tabs -->\n<ng-template #adminTabs>\n <div class=\"taon-header-admin-wrapper\">\n <columns-container\n class=\"taon-header-admin\"\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column width=\"200\" class=\"logo-header\">\n <img\n *ngIf=\"openedOnce\"\n src=\"assets/assets-for/taon/shared/logo-header-admin-mode.png\" />\n </column>\n\n <column grow>\n <!-- <span>Super Admin Mode</span> -->\n </column>\n\n <column\n width=\"40\"\n *ngIf=\"\n !admin.draggablePopupModeFullScreen && !admin.draggablePopupMode\n \">\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupMode\"\n (click)=\"\n admin.draggablePopupMode = false;\n opened = false;\n wasOpenDraggablePopup = true\n \"\n class=\"admin-close-button\">\n <mat-icon>close </mat-icon>\n </button>\n\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupMode\"\n (click)=\"toogle()\"\n class=\"admin-close-button\">\n <mat-icon>close</mat-icon>\n </button>\n </column>\n\n <column width=\"40\">\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupModeFullScreen\"\n class=\"admin-close-button\"\n (click)=\"toogleFullScreen()\">\n <mat-icon>fullscreen</mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupModeFullScreen\"\n class=\"admin-close-button\"\n (click)=\"toogleFullScreen()\">\n <mat-icon>close_fullscreen</mat-icon>\n </button>\n </column>\n\n <column width=\"40\" *ngIf=\"!admin.draggablePopupModeFullScreen\">\n <button\n mat-icon-button\n *ngIf=\"!admin.draggablePopupMode\"\n (click)=\"admin.draggablePopupMode = true\"\n class=\"admin-close-button\">\n <mat-icon>launch</mat-icon>\n </button>\n\n <button\n mat-icon-button\n *ngIf=\"admin.draggablePopupMode\"\n (click)=\"admin.draggablePopupMode = false; resetDrag()\"\n class=\"admin-close-button\">\n <mat-icon style=\"transform: rotate(180deg)\">login</mat-icon>\n </button>\n </column>\n </columns-container>\n </div>\n\n <columns-container\n [ngClass]=\"{ 'draggable-column': admin.draggablePopupMode }\">\n <column grow>\n <mat-tab-group\n dynamicHeight\n (wheel)=\"scrollTabs($event)\"\n #tabGroup\n [selectedIndex]=\"selectedIndex\"\n (selectedIndexChange)=\"selectedIndex = $event\">\n <mat-tab label=\"DB/Cache\">\n <section>\n <mat-card>\n <mat-card-header>\n <mat-card-subtitle>WEBSQL MODE</mat-card-subtitle>\n </mat-card-header>\n <mat-card-content>\n <mat-checkbox\n [disabled]=\"!isWebSQLMode\"\n [ngModel]=\"admin.keepWebsqlDbDataAfterReload\"\n (change)=\"\n admin.setKeepWebsqlDbDataAfterReload($event.checked)\n \">\n Don't remove data when reloading\n </mat-checkbox>\n </mat-card-content>\n </mat-card>\n </section>\n <br />\n <taon-db-admin />\n </mat-tab>\n\n <mat-tab label=\"Files\" *ngIf=\"admin.enabledTabs.includes('files')\">\n <section>\n <mat-checkbox\n [ngModel]=\"admin.filesEditMode\"\n (change)=\"admin.setEditMode($event.checked)\"\n >Edit mode</mat-checkbox\n >\n </section>\n <!-- admin.filesEditMode: {{ admin.filesEditMode }} -->\n <!-- <taon-admin-edit-mode *ngIf=\"admin.filesEditMode\">\n </taon-admin-edit-mode> -->\n <br />\n <hr *ngIf=\"admin.filesEditMode\" />\n <!-- <section>\n <button mat-raised-button>[TODO] Clear Files from browser cache </button> <br>\n <button mat-raised-button>[TODO] Start files export (as zip) </button> <br>\n <button mat-raised-button>[TODO] Import whole database (from zip) </button><br>\n </section> -->\n </mat-tab>\n <mat-tab *ngFor=\"let tab of tabs\" label=\"{{ tab.name }}\">\n <div\n class=\"full-tabs\"\n [style.height.px]=\"height - 150\"\n *ngIf=\"!isIframe\">\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </div>\n <ng-container *ngIf=\"isIframe\">\n <ng-container *ngTemplateOutlet=\"tab.template\"></ng-container>\n </ng-container>\n </mat-tab>\n\n <!-- <mat-tab label=\"Portal\">\n <section>\n <mat-checkbox>[TODO] Maintenance Mode for whole portal</mat-checkbox>\n\n <mat-expansion-panel>\n\n <mat-expansion-panel-header>\n [TODO] Active User: 80432\n </mat-expansion-panel-header>\n <section>\n <button mat-raised-button>[TODO] Send notification to users </button><br>\n <button mat-raised-button>[TODO] Send email to users </button><br>\n </section>\n </mat-expansion-panel>\n <mat-expansion-panel>\n <mat-expansion-panel-header>\n [TODO] Enable features\n </mat-expansion-panel-header>\n <mat-checkbox>[TODO] AB testing</mat-checkbox> <br>\n <mat-checkbox>\n [TODO] Newsletter email question popup\n </mat-checkbox> <br>\n <mat-checkbox>\n [TODO] Promotion popup\n </mat-checkbox> <br>\n </mat-expansion-panel>\n </section>\n </mat-tab>\n <mat-tab label=\"User\">\n Welcome in user managements\n </mat-tab>\n <mat-tab label=\"Translations\">\n Welcome in user managements\n </mat-tab> -->\n </mat-tab-group>\n </column>\n </columns-container>\n</ng-template>\n<!-- #endregion -->\n\n<!-- #region small/mobile draggable popup windows -->\n<div\n class=\"draggable-popup-mode-window\"\n *ngIf=\"\n admin.draggablePopupMode && !admin.draggablePopupModeFullScreen && !isIframe\n \"\n cdkDrag\n [cdkDragFreeDragPosition]=\"dragPosition\"\n (cdkDragEnded)=\"moved($event)\">\n <ng-scrollbar>\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n </ng-scrollbar>\n</div>\n<!-- #endregion -->\n\n<!-- #region fullscreen draggable popup window -->\n<div\n class=\"draggable-popup-mode-window-full\"\n *ngIf=\"\n admin.draggablePopupMode &&\n admin.draggablePopupModeFullScreen &&\n !isIframe &&\n !reloading\n \"\n cdkDrag\n [cdkDragFreeDragPosition]=\"dragPositionZero\">\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n</div>\n<!-- #endregion -->\n\n<!-- #region content when not in draggable (or fullscreen draggable) popup -->\n<div\n [style.height.px]=\"height\"\n *ngIf=\"\n (isIframe ||\n !isDesktop ||\n admin.draggablePopupMode ||\n admin.draggablePopupModeFullScreen) &&\n !reloading\n \"\n style=\"width: 100%; display: block\"\n class=\"content\">\n <ng-container\n [ngTemplateOutlet]=\"\n admin.scrollableEnabled ? content : contentNoScroll\n \"></ng-container>\n</div>\n<!-- #endregion -->\n\n<!-- #region draggable popup window -->\n<mat-drawer-container\n *ngIf=\"!admin.draggablePopupMode && isDesktop && !isIframe\"\n class=\"example-container\"\n [style.height.px]=\"height\"\n style=\"background-color: transparent\"\n (backdropClick)=\"opened = false\"\n [hasBackdrop]=\"false\">\n <mat-drawer #drawer style=\"width: 580px\" [opened]=\"opened\" [mode]=\"'side'\">\n <ng-container [ngTemplateOutlet]=\"adminTabs\"></ng-container>\n </mat-drawer>\n <mat-drawer-content style=\"overflow: hidden\">\n <ng-container\n *ngIf=\"!admin.draggablePopupMode && !reloading\"\n [ngTemplateOutlet]=\"\n admin.scrollableEnabled ? content : contentNoScroll\n \"></ng-container>\n </mat-drawer-content>\n</mat-drawer-container>\n<!-- #endregion -->\n","\n\n\n\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, } from '@angular/core';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { delay, of, Subject, Subscription, takeUntil, tap } from 'rxjs';\n\n\nimport { Router } from '@angular/router';\nimport { Stor } from 'taon-storage/browser';\nimport 'brace';\nimport 'brace/mode/css';\nimport 'brace/mode/typescript';\nimport 'brace/theme/github'; // @ts-ignore\nimport { Taon } from '../../../../../lib';\nimport { MtxGridColumn } from '@ng-matero/extensions/grid';\n\n\n\n\n@Component({\n\n selector: 'taon-admin-edit-mode',\n templateUrl: './taon-admin-edit-mode.component.html',\n styleUrls: ['./taon-admin-edit-mode.component.scss'],\n\n})\nexport class TaonAdminEditModeComponent implements OnInit {\n\n\n inited$ = of(true);\n private destroyed$ = new Subject();\n admin: any; // = window['taon'] as TaonAdmin;\n handlers: Subscription[] = [];\n entity: any; //= TaonFile;\n files: any; // TaonFile[] = [];\n\n @(Stor.property.in.localstorage\n .for(TaonAdminEditModeComponent)\n .withDefaultValue(0))\n selectedTabIndex: number;\n\n @(Stor.property.in.localstorage\n .for(TaonAdminEditModeComponent)\n .withDefaultValue(''))\n fileToSearch: string;\n columns = [\n {\n header: 'ID',\n field: 'id',\n maxWidth: 100,\n showExpand: true,\n },\n {\n header: 'src',\n field: 'src',\n maxWidth: 250,\n },\n {\n header: 'Content Type',\n field: 'contentType',\n maxWidth: 120,\n },\n ] as MtxGridColumn[];\n @Output() taonAdminEditModeDataChanged = new EventEmitter();\n @Input() taonAdminEditModeData: any = {};\n\n\n\n constructor(private router: Router) {}\n\n\n\n ngOnInit() {\n this.files = this.admin.currentFiles;\n this.handlers.push(\n this.admin.onEditMode$.subscribe(() => {\n this.refresFilesList();\n }),\n );\n\n\n\n\n this.admin.onRegisterFile().pipe(\n takeUntil(this.destroyed$),\n tap(() => {\n this.refresFilesList();\n }),\n );\n }\n ngOnDestroy(): void {\n this.handlers.forEach(h => h.unsubscribe());\n this.destroyed$.next(void 0);\n this.destroyed$.unsubscribe();\n }\n\n ngAfterViewInit(): void {\n //Called after ngAfterContentInit when the component's view has been initialized. Applies to components only.\n //Add 'implements AfterViewInit' to the class.\n setTimeout(() => {\n this.refresFilesList();\n }, 500);\n }\n\n\n\n\n\n expansionRow(e) {\n console.log(e);\n }\n refresFilesList() {\n\n this.files = this.admin.currentFiles;\n }\n\n searchFind(file: any): any {\n if (!!this?.fileToSearch) {\n return file?.src?.search(this?.fileToSearch) !== -1;\n }\n return true;\n }\n\n}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.component.ts","<ng-template #expansionTpl let-row>\n hello from expansion {{ row.src }}\n</ng-template>\n\n<mat-card *ngIf=\"inited$ | async\">\n <div *ngIf=\"!admin.selectedFile\">Please select file from portal to edit</div>\n <taon-file\n *ngIf=\"admin.selectedFile\"\n class=\"file-inside-admin\"\n [insideAdmin]=\"true\"\n [file]=\"admin.selectedFile\"></taon-file>\n\n <hr />\n\n <mat-tab-group\n dynamicHeight\n [selectedIndex]=\"selectedTabIndex\"\n (selectedIndexChange)=\"selectedTabIndex = $event; refresFilesList()\">\n <mat-tab label=\"General\">\n <!-- <taon-file-general-opt\n [file]=\"admin.selectedFile\"></taon-file-general-opt> -->\n </mat-tab>\n <!-- <mat-tab label=\"CSS Editing\">\n <ace [mode]=\"'css'\"\n *ngIf=\"admin.selectedFile\"\n [(value)]=\"admin.selectedFile.css\"\n [theme]=\"'github'\"\n style=\"width: 100%; height: 300px;\"></ace>\n </mat-tab> -->\n\n <mat-tab label=\"Files Picker\">\n <!-- <taon-table\n [entity]=\"entity\"\n [allowedColumns]=\"['src', 'contentType']\"\n [columns]=\"columns\"\n [expansionTemplate]=\"expansionTpl\"\n (expansionChange)=\"expansionRow($event)\">\n </taon-table> -->\n </mat-tab>\n <mat-tab label=\"File Version History\">\n <!-- <taon-table\n [entity]=\"entity\"\n [allowedColumns]=\"['src', 'contentType']\"\n [columns]=\"columns\"\n [expansionTemplate]=\"expansionTpl\"\n (expansionChange)=\"expansionRow($event)\">\n </taon-table> -->\n </mat-tab>\n <mat-tab label=\"Current File\">\n <columns-container *ngIf=\"files.length > 0\">\n <column grow>\n <mat-form-field style=\"width: 100%\">\n <input\n matInput\n [(ngModel)]=\"fileToSearch\"\n (focus)=\"refresFilesList()\"\n placeholder=\"Search by name\" />\n </mat-form-field>\n </column>\n <column [width]=\"40\">\n <button\n mat-icon-button\n (click)=\"fileToSearch = ''; refresFilesList()\"\n *ngIf=\"fileToSearch && fileToSearch?.trim() !== ''\">\n <mat-icon>backspace</mat-icon>\n </button>\n </column>\n <!-- <column [width]=\"40\">\n <button mat-icon-button (click)=\"refresFilesList();\" >\n <mat-icon >refresh</mat-icon>\n </button>\n </column> -->\n </columns-container>\n <columns-container *ngIf=\"files.length == 0\">\n <section>\n <code\n >No &lt;taon-file/&gt; - s components detected on this page</code\n >\n </section>\n </columns-container>\n\n <div class=\"scrollable-files-list\" *ngIf=\"files.length > 0\">\n <ng-scrollbar>\n <!-- selected: \"{{ selectedFile?.src }}\" -->\n <!-- {{ filesSelection.selectedOptions | json }} -->\n <mat-selection-list\n [multiple]=\"false\"\n #filesToSelect\n (selectionChange)=\"\n admin.selectedFile = filesToSelect.selectedOptions.hasValue()\n ? filesToSelect.selectedOptions.selected[0].value\n : null\n \">\n <mat-list-option\n *ngFor=\"let file of files | filterBy: ['src'] : fileToSearch\"\n [value]=\"file\">\n <strong *ngIf=\"file?.src === admin.selectedFile?.src\">\n {{ file.src }}\n </strong>\n <span *ngIf=\"file?.src !== admin.selectedFile?.src\">\n {{ file.src }}\n </span>\n </mat-list-option>\n </mat-selection-list>\n </ng-scrollbar>\n </div>\n </mat-tab>\n </mat-tab-group>\n</mat-card>\n","\n\n\nimport { Component, EventEmitter, HostBinding, Input, OnInit, Output, } from '@angular/core';/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n/* */\n\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\n\nimport { _ } from 'tnp-core/browser';\n\n@Component({\n selector: 'taon-file-general-opt',\n templateUrl: './taon-file-general-opt.component.html',\n styleUrls: ['./taon-file-general-opt.component.scss'],\n})\nexport class TaonFileGeneralOptComponent implements OnInit {\n @HostBinding('style.minHeight.px') @Input() height: number = 100;\n handlers: Subscription[] = [];\n fieldsOrder = [];\n fields: FormlyFieldConfig[] = (\n [\n {\n key: 'width',\n },\n {\n key: 'height',\n },\n {\n key: 'display',\n },\n {\n key: 'widthUnit',\n\n\n\n\n\n },\n {\n key: 'heightUnit', // @ts-ignore\n\n\n\n\n\n },\n {\n key: 'action',\n type: 'action',\n templateOptions: {\n label: 'Reset',\n icon: 'cancel',\n raised: true,\n action: () => {\n console.log('reset');\n },\n },\n },\n ] as FormlyFieldConfig[]\n ).map(f => {\n f.className = 'formly-field-half-size';\n return f;\n });\n @Input() file: any;\n\n constructor() {}\n\n ngOnInit() {}\n\n ngOnDestroy(): void {\n this.handlers.forEach(h => h.unsubscribe());\n }\n}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.component.ts","<!-- <taon-formly-form\n *ngIf=\"file\"\n [fields]=\"fields\"\n [fieldsOrder]=\"fieldsOrder\"\n [exclude]=\"['id']\"\n [(model)]=\"file.css\">\n</taon-formly-form> -->\n","\n\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TaonFileGeneralOptComponent } from './taon-file-general-opt.component';\nimport { TaonFullMaterialModule } from '../../../taon-full-material.module';\n\n@NgModule({\n imports: [CommonModule, TaonFullMaterialModule],\n declarations: [TaonFileGeneralOptComponent],\n exports: [TaonFileGeneralOptComponent],\n})\nexport class TaonFileGeneralOptModule {}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/taon-file-general-opt.module.ts","\n\n\nexport * from './taon-file-general-opt.component';\nexport * from './taon-file-general-opt.module';\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.ts","\n\n\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TaonAdminEditModeComponent } from './taon-admin-edit-mode.component';\n\nimport { TaonFullMaterialModule } from '../../../taon-full-material.module';\nimport { StaticColumnsModule } from 'static-columns/browser';\nimport { FormsModule } from '@angular/forms';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\nimport { NgArrayPipesModule } from 'ngx-pipes';\nimport { TaonFileGeneralOptModule } from '../taon-file-general-opt';\nimport { TaonTableModule } from '../../../taon-table';\n\n@NgModule({\n imports: [\n CommonModule,\n StaticColumnsModule,\n NgScrollbarModule,\n TaonFileGeneralOptModule,\n FormsModule,\n\n NgArrayPipesModule,\n TaonTableModule,\n TaonFullMaterialModule, // TODO import only partial things\n ],\n declarations: [TaonAdminEditModeComponent],\n exports: [TaonAdminEditModeComponent],\n})\nexport class TaonAdminEditModeModule {}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/taon-admin-edit-mode.module.ts","\n\n\nexport * from './taon-admin-edit-mode.component';\n\n\nexport * from './taon-admin-edit-mode.module';\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.ts","\n\n\nimport { Injector, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TaonAdminModeConfigurationComponent } from './taon-admin-mode-configuration.component';\nimport { TaonFullMaterialModule } from '../taon-full-material.module';\nimport { StaticColumnsModule } from 'static-columns/browser';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TaonAdminEditModeModule } from './components/taon-admin-edit-mode';\nimport { NgScrollbarModule } from 'ngx-scrollbar';\nimport { TaonProgressBarModule } from '../taon-progress-bar';\nimport { TaonNotificationsModule } from '../taon-notifications';\nimport { createCustomElement } from '@angular/elements';\n\nimport { TaonSessionPasscodeComponent } from '../taon-session-passcode';\n\n@NgModule({\n imports: [\n CommonModule,\n StaticColumnsModule,\n FormsModule,\n NgScrollbarModule,\n TaonAdminEditModeModule,\n TaonProgressBarModule,\n TaonNotificationsModule,\n TaonFullMaterialModule, // TODO import only partial things\n\n TaonSessionPasscodeComponent,\n ],\n declarations: [TaonAdminModeConfigurationComponent],\n exports: [TaonAdminModeConfigurationComponent],\n})\nexport class TaonAdminModeConfigurationModule {}\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/taon-admin-mode-configuration.module.ts","\n\n\nexport * from './taon-admin-mode-configuration.component';\nexport * from './taon-admin-mode-configuration.module';\nexport * from './taon-admin-control.service';\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/taon-admin-mode-configuration/index.ts","\n\n\nexport * from './directives';\nexport * from './taon-full-material.module';\nexport * from './taon-github-fork-me-corner';\nexport * from './taon-github-fork-me-corner';\nexport * from './taon-notifications';\nexport * from './taon-session-passcode';\nexport * from './taon-progress-bar';\nexport * from './taon-table';\nexport * from './taon-admin-mode-configuration';\n\n\n ;({}); // @--end-of-file-for-module=taon lib/ui/index.ts","\n\nexport type TaonEntityKeysToOmit =\n | 'ctrl'\n | 'clone'\n | '__endpoint_context__'\n | 'inject'\n | '_';\n\n ;({}); // @--end-of-file-for-module=taon lib/constants.ts","\n\nimport 'reflect-metadata';\nimport * as http from './decorators/http/http-decorators';\nimport * as base from './base-classes/base';\nimport * as controllerDecorator from './decorators/classes/controller-decorator';\nimport * as entityDecorator from './decorators/classes/entity-decorator';\nimport * as providerDecorator from './decorators/classes/provider-decorator';\nimport * as repositoryDecorator from './decorators/classes/repository-decorator';\nimport * as subscriberDecorator from './decorators/classes/subscriber-decorator';\nimport * as createContextFn from './create-context';\nimport * as orm from './orm';\nimport * as models from './models';\nimport * as coreHelpers from 'tnp-core/browser';\nimport * as injectFn from './inject';\nimport * as endpointContext from './endpoint-context';\nimport * as allSymbols from './symbols';\nimport * as getResponse from './get-response-value';\n\nimport { NgZone } from '@angular/core';\nexport * from './ui';\n\n\nexport { BaseRepository } from './base-classes/base-repository';\nexport { BaseController } from './base-classes/base-controller';\nexport { BaseProvider } from './base-classes/base-provider';\nexport { BaseEntity } from './base-classes/base-entity';\nexport { BaseContext } from './base-classes/base-context';\nexport { createContext } from './create-context';\nexport { inject } from './inject';\nexport { Models } from './models';\nexport * from './constants';\nexport { ClassHelpers } from './helpers/class-helpers';\n\n\nexport namespace Taon {\n export import Response = models.Models.Http.Response;\n export import Http = http.Http;\n export import Base = base.Base;\n export import Orm = orm.Orm;\n\n export const getResponseValue = getResponse.getResponseValue;\n\n\n export import Controller = controllerDecorator.TaonController;\n export import Entity = entityDecorator.TaonEntity;\n export import Provider = providerDecorator.TaonProvider;\n export import Repository = repositoryDecorator.TaonRepository;\n export import Subscriber = subscriberDecorator.TaonSubscriber;\n\n\n export const isBrowser = coreHelpers.Helpers.isBrowser;\n export const isNode = coreHelpers.Helpers.isNode;\n export const isWebSQL = coreHelpers.Helpers.isWebSQL;\n export const isElectron = coreHelpers.Helpers.isElectron;\n\n export const createContext = createContextFn.createContext;\n\n export const inject = injectFn.inject;\n\n\n export const initNgZone = (ngZone: NgZone) => {\n endpointContext.EndpointContext.initNgZone(ngZone);\n };\n\n\n export const symbols = allSymbols.Symbols;\n\n /**\n * @deprecated\n * use createContext instead\n */\n export const init = async (options: {\n host: string;\n entities: Function[];\n controllers: Function[];\n }) => {\n const BaseContext = (await import('./base-classes/base-context'))\n .BaseContext;\n const context = createContext(() => ({\n contextName: 'default',\n host: options.host,\n contexts: { BaseContext },\n database: true,\n entities: Array.from(options.entities) as any,\n controllers: Array.from(options.controllers) as any,\n }));\n\n await context.initialize();\n return context;\n };\n}\n\n ;({}); // @--end-of-file-for-module=taon lib/index.ts","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_","ModelsNg2Rest","methods.GET","methods.POST","methods.PUT","methods.DELETE","methods.PATCH","methods.HEAD","Models","params.Query","params.Path","params.Body","params.Cookie","params.Header","EntityDecorator","ENV","controller.BaseController","crudController.BaseCrudController","entity.BaseEntity","abstractEntity.BaseAbstractEntity","provider.BaseProvider","baseclass.BaseClass","repository.BaseRepository","baseSubscriberEntity.BaseSubscriberForEntity","baseContext.BaseContext","angularInject","log","i1","i1.TaonNotificationsService","inject","i2","i5","i7","i3","i4","i6","i9","i12.TaonSessionPasscodeComponent","i8","i10","i11","i12","http.Http","base.Base","getResponse.getResponseValue","controllerDecorator.TaonController","entityDecorator.TaonEntity","providerDecorator.TaonProvider","repositoryDecorator.TaonRepository","subscriberDecorator.TaonSubscriber","createContextFn.createContext","injectFn.inject","endpointContext.EndpointContext","allSymbols.Symbols"],"mappings":"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"}