taon 18.0.17 → 18.0.18

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 (298) 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-subscriber-for-entity.mjs +39 -20
  4. package/browser/esm2022/lib/base-classes/base.mjs +1 -3
  5. package/browser/esm2022/lib/create-context.mjs +20 -1
  6. package/browser/esm2022/lib/decorators/classes/subscriber-decorator.mjs +3 -29
  7. package/browser/esm2022/lib/endpoint-context.mjs +10 -136
  8. package/browser/esm2022/lib/entity-process.mjs +3 -3
  9. package/browser/esm2022/lib/helpers/class-helpers.mjs +2 -2
  10. package/browser/esm2022/lib/index.mjs +1 -14
  11. package/browser/esm2022/lib/inject.mjs +4 -38
  12. package/browser/esm2022/lib/models.mjs +1 -1
  13. package/browser/esm2022/lib/realtime/realtime-client.mjs +32 -20
  14. package/browser/esm2022/lib/realtime/realtime-core.mjs +15 -7
  15. package/browser/esm2022/lib/realtime/realtime-server.mjs +34 -16
  16. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +198 -29
  17. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +206 -10
  18. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +3 -7
  19. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +6 -2
  20. package/browser/esm2022/lib/realtime/realtime-subs-manager.mjs +10 -8
  21. package/browser/esm2022/lib/realtime/realtime.models.mjs +1 -1
  22. package/browser/esm2022/lib/symbols.mjs +45 -38
  23. package/browser/fesm2022/taon.mjs +557 -559
  24. package/browser/fesm2022/taon.mjs.map +1 -1
  25. package/browser/lib/base-classes/base-context.d.ts +4 -0
  26. package/browser/lib/base-classes/base.d.ts +4 -2
  27. package/browser/lib/create-context.d.ts +13 -0
  28. package/browser/lib/decorators/classes/subscriber-decorator.d.ts +2 -2
  29. package/browser/lib/helpers/class-helpers.d.ts +1 -1
  30. package/browser/lib/index.d.ts +12 -13
  31. package/browser/lib/inject.d.ts +1 -8
  32. package/browser/lib/models.d.ts +17 -9
  33. package/browser/lib/realtime/realtime-client.d.ts +8 -2
  34. package/browser/lib/realtime/realtime-core.d.ts +6 -6
  35. package/browser/lib/realtime/realtime-server.d.ts +9 -4
  36. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -12
  37. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  38. package/browser/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +2 -3
  39. package/browser/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  40. package/browser/lib/realtime/realtime.models.d.ts +1 -0
  41. package/browser/lib/symbols.d.ts +30 -36
  42. package/client/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +39 -20
  43. package/client/esm2022/lib/base-classes/base.mjs +1 -3
  44. package/client/esm2022/lib/create-context.mjs +20 -1
  45. package/client/esm2022/lib/decorators/classes/subscriber-decorator.mjs +3 -29
  46. package/client/esm2022/lib/endpoint-context.mjs +10 -136
  47. package/client/esm2022/lib/entity-process.mjs +3 -3
  48. package/client/esm2022/lib/helpers/class-helpers.mjs +2 -2
  49. package/client/esm2022/lib/index.mjs +1 -14
  50. package/client/esm2022/lib/inject.mjs +4 -38
  51. package/client/esm2022/lib/models.mjs +1 -1
  52. package/client/esm2022/lib/realtime/realtime-client.mjs +32 -20
  53. package/client/esm2022/lib/realtime/realtime-core.mjs +15 -7
  54. package/client/esm2022/lib/realtime/realtime-server.mjs +34 -16
  55. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +198 -29
  56. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +206 -10
  57. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +3 -7
  58. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +6 -2
  59. package/client/esm2022/lib/realtime/realtime-subs-manager.mjs +10 -8
  60. package/client/esm2022/lib/realtime/realtime.models.mjs +1 -1
  61. package/client/esm2022/lib/symbols.mjs +45 -38
  62. package/client/fesm2022/taon.mjs +557 -559
  63. package/client/fesm2022/taon.mjs.map +1 -1
  64. package/client/lib/base-classes/base-context.d.ts +4 -0
  65. package/client/lib/base-classes/base.d.ts +4 -2
  66. package/client/lib/create-context.d.ts +13 -0
  67. package/client/lib/decorators/classes/subscriber-decorator.d.ts +2 -2
  68. package/client/lib/helpers/class-helpers.d.ts +1 -1
  69. package/client/lib/index.d.ts +12 -13
  70. package/client/lib/inject.d.ts +1 -8
  71. package/client/lib/models.d.ts +17 -9
  72. package/client/lib/realtime/realtime-client.d.ts +8 -2
  73. package/client/lib/realtime/realtime-core.d.ts +6 -6
  74. package/client/lib/realtime/realtime-server.d.ts +9 -4
  75. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -12
  76. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  77. package/client/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +2 -3
  78. package/client/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  79. package/client/lib/realtime/realtime.models.d.ts +1 -0
  80. package/client/lib/symbols.d.ts +30 -36
  81. package/lib/base-classes/base-context.d.ts +4 -0
  82. package/lib/base-classes/base-subscriber-for-entity.js +38 -19
  83. package/lib/base-classes/base-subscriber-for-entity.js.map +1 -1
  84. package/lib/base-classes/base.d.ts +4 -2
  85. package/lib/base-classes/base.js +0 -2
  86. package/lib/base-classes/base.js.map +1 -1
  87. package/lib/create-context.d.ts +13 -0
  88. package/lib/create-context.js +19 -8
  89. package/lib/create-context.js.map +1 -1
  90. package/lib/decorators/classes/subscriber-decorator.d.ts +1 -1
  91. package/lib/decorators/classes/subscriber-decorator.js +7 -58
  92. package/lib/decorators/classes/subscriber-decorator.js.map +1 -1
  93. package/lib/endpoint-context.js +33 -9
  94. package/lib/endpoint-context.js.map +1 -1
  95. package/lib/entity-process.js +2 -2
  96. package/lib/entity-process.js.map +1 -1
  97. package/lib/formly/formly-repeat-component.js +1 -1
  98. package/lib/formly/formly-repeat-component.js.map +1 -1
  99. package/lib/helpers/class-helpers.d.ts +1 -1
  100. package/lib/helpers/class-helpers.js +2 -2
  101. package/lib/helpers/class-helpers.js.map +1 -1
  102. package/lib/index.d.ts +12 -13
  103. package/lib/index.js +1 -17
  104. package/lib/index.js.map +1 -1
  105. package/lib/inject.d.ts +3 -7
  106. package/lib/inject.js +57 -42
  107. package/lib/inject.js.map +1 -1
  108. package/lib/models.d.ts +17 -9
  109. package/lib/models.js.map +1 -1
  110. package/lib/realtime/realtime-client.d.ts +8 -2
  111. package/lib/realtime/realtime-client.js +36 -21
  112. package/lib/realtime/realtime-client.js.map +1 -1
  113. package/lib/realtime/realtime-core.d.ts +6 -6
  114. package/lib/realtime/realtime-core.js +17 -6
  115. package/lib/realtime/realtime-core.js.map +1 -1
  116. package/lib/realtime/realtime-server.d.ts +9 -4
  117. package/lib/realtime/realtime-server.js +98 -76
  118. package/lib/realtime/realtime-server.js.map +1 -1
  119. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -11
  120. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js +301 -40
  121. package/lib/realtime/realtime-strategy/realtime-strategy-ipc.js.map +1 -1
  122. package/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  123. package/lib/realtime/realtime-strategy/realtime-strategy-mock.js +358 -14
  124. package/lib/realtime/realtime-strategy/realtime-strategy-mock.js.map +1 -1
  125. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +3 -3
  126. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js +10 -14
  127. package/lib/realtime/realtime-strategy/realtime-strategy-socket-io.js.map +1 -1
  128. package/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  129. package/lib/realtime/realtime-strategy/realtime-strategy.js +9 -2
  130. package/lib/realtime/realtime-strategy/realtime-strategy.js.map +1 -1
  131. package/lib/realtime/realtime-subs-manager.js +10 -8
  132. package/lib/realtime/realtime-subs-manager.js.map +1 -1
  133. package/lib/realtime/realtime.models.d.ts +1 -0
  134. package/lib/symbols.d.ts +30 -36
  135. package/lib/symbols.js +63 -39
  136. package/lib/symbols.js.map +1 -1
  137. package/lib/ui/directives/index.js +2 -2
  138. package/lib/ui/taon-admin-mode-configuration/components/taon-admin-edit-mode/index.js +2 -2
  139. package/lib/ui/taon-admin-mode-configuration/components/taon-db-admin/index.js +2 -2
  140. package/lib/ui/taon-admin-mode-configuration/components/taon-file-general-opt/index.js +2 -2
  141. package/lib/ui/taon-admin-mode-configuration/index.js +2 -2
  142. package/lib/ui/taon-github-fork-me-corner/index.js +2 -2
  143. package/lib/ui/taon-github-fork-me-ribbon/index.js +2 -2
  144. package/lib/ui/taon-notifications/taon-notifications.models.js +2 -2
  145. package/lib/ui/taon-progress-bar/index.js +2 -2
  146. package/lib/ui/taon-session-passcode/index.js +2 -2
  147. package/package.json +10 -8
  148. package/tmp-environment.json +33 -30
  149. package/websql/esm2022/lib/base-classes/base-subscriber-for-entity.mjs +39 -20
  150. package/websql/esm2022/lib/base-classes/base.mjs +1 -3
  151. package/websql/esm2022/lib/create-context.mjs +20 -1
  152. package/websql/esm2022/lib/decorators/classes/subscriber-decorator.mjs +3 -29
  153. package/websql/esm2022/lib/endpoint-context.mjs +16 -18
  154. package/websql/esm2022/lib/entity-process.mjs +3 -3
  155. package/websql/esm2022/lib/helpers/class-helpers.mjs +2 -2
  156. package/websql/esm2022/lib/index.mjs +1 -14
  157. package/websql/esm2022/lib/inject.mjs +4 -38
  158. package/websql/esm2022/lib/models.mjs +1 -1
  159. package/websql/esm2022/lib/realtime/realtime-client.mjs +32 -20
  160. package/websql/esm2022/lib/realtime/realtime-core.mjs +15 -7
  161. package/websql/esm2022/lib/realtime/realtime-server.mjs +90 -72
  162. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc.mjs +200 -30
  163. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock.mjs +206 -10
  164. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-socket-io.mjs +3 -7
  165. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy.mjs +6 -2
  166. package/websql/esm2022/lib/realtime/realtime-subs-manager.mjs +10 -8
  167. package/websql/esm2022/lib/realtime/realtime.models.mjs +1 -1
  168. package/websql/esm2022/lib/symbols.mjs +45 -38
  169. package/websql/fesm2022/taon.mjs +669 -687
  170. package/websql/fesm2022/taon.mjs.map +1 -1
  171. package/websql/lib/base-classes/base-context.d.ts +4 -0
  172. package/websql/lib/base-classes/base.d.ts +4 -2
  173. package/websql/lib/create-context.d.ts +13 -0
  174. package/websql/lib/decorators/classes/subscriber-decorator.d.ts +2 -2
  175. package/websql/lib/helpers/class-helpers.d.ts +1 -1
  176. package/websql/lib/index.d.ts +12 -13
  177. package/websql/lib/inject.d.ts +1 -8
  178. package/websql/lib/models.d.ts +17 -9
  179. package/websql/lib/realtime/realtime-client.d.ts +8 -2
  180. package/websql/lib/realtime/realtime-core.d.ts +6 -6
  181. package/websql/lib/realtime/realtime-server.d.ts +9 -4
  182. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc.d.ts +71 -12
  183. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock.d.ts +4 -4
  184. package/websql/lib/realtime/realtime-strategy/realtime-strategy-socket-io.d.ts +2 -3
  185. package/websql/lib/realtime/realtime-strategy/realtime-strategy.d.ts +4 -5
  186. package/websql/lib/realtime/realtime.models.d.ts +1 -0
  187. package/websql/lib/symbols.d.ts +30 -36
  188. package/browser/esm2022/lib/base-classes/base-subscriber.mjs +0 -27
  189. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +0 -98
  190. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +0 -45
  191. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +0 -40
  192. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +0 -25
  193. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +0 -4
  194. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +0 -5
  195. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +0 -50
  196. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +0 -48
  197. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +0 -35
  198. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +0 -43
  199. package/browser/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +0 -4
  200. package/browser/lib/base-classes/base-subscriber.d.ts +0 -5
  201. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  202. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -17
  203. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -11
  204. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -11
  205. package/browser/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -14
  206. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -3
  207. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -17
  208. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -18
  209. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -12
  210. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -14
  211. package/browser/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -12
  212. package/client/esm2022/lib/base-classes/base-subscriber.mjs +0 -27
  213. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +0 -98
  214. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +0 -45
  215. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +0 -40
  216. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +0 -25
  217. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +0 -4
  218. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +0 -5
  219. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +0 -50
  220. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +0 -48
  221. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +0 -35
  222. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +0 -43
  223. package/client/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +0 -4
  224. package/client/lib/base-classes/base-subscriber.d.ts +0 -5
  225. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  226. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -17
  227. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -11
  228. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -11
  229. package/client/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -14
  230. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -3
  231. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -17
  232. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -18
  233. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -12
  234. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -14
  235. package/client/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -12
  236. package/lib/base-classes/base-subscriber.d.ts +0 -4
  237. package/lib/base-classes/base-subscriber.js +0 -25
  238. package/lib/base-classes/base-subscriber.js.map +0 -1
  239. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.d.ts +0 -0
  240. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js +0 -5
  241. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/index.js.map +0 -1
  242. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  243. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js +0 -139
  244. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.js.map +0 -1
  245. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -16
  246. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js +0 -68
  247. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.js.map +0 -1
  248. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -10
  249. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js +0 -56
  250. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.js.map +0 -1
  251. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -10
  252. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js +0 -50
  253. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.js.map +0 -1
  254. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -13
  255. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js +0 -3
  256. package/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.js.map +0 -1
  257. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -2
  258. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js +0 -6
  259. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.js.map +0 -1
  260. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -16
  261. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js +0 -54
  262. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.js.map +0 -1
  263. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -17
  264. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js +0 -52
  265. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.js.map +0 -1
  266. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -11
  267. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js +0 -39
  268. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.js.map +0 -1
  269. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -13
  270. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js +0 -46
  271. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.js.map +0 -1
  272. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -11
  273. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js +0 -3
  274. package/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.js.map +0 -1
  275. package/websql/esm2022/lib/base-classes/base-subscriber.mjs +0 -27
  276. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.mjs +0 -98
  277. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.mjs +0 -45
  278. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.mjs +0 -40
  279. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.mjs +0 -25
  280. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.mjs +0 -4
  281. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.mjs +0 -5
  282. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.mjs +0 -50
  283. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.mjs +0 -48
  284. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.mjs +0 -35
  285. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.mjs +0 -43
  286. package/websql/esm2022/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.mjs +0 -4
  287. package/websql/lib/base-classes/base-subscriber.d.ts +0 -5
  288. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-namespace.d.ts +0 -22
  289. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-main-wrapper.d.ts +0 -17
  290. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-namespace.d.ts +0 -11
  291. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper.d.ts +0 -11
  292. package/websql/lib/realtime/realtime-strategy/realtime-strategy-ipc-models/realtime-strategy-ipc.models.d.ts +0 -14
  293. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/index.d.ts +0 -3
  294. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-client.d.ts +0 -17
  295. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-namespaces.d.ts +0 -18
  296. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-server.d.ts +0 -12
  297. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock-socket.d.ts +0 -14
  298. package/websql/lib/realtime/realtime-strategy/realtime-strategy-mock-models/realtime-strategy-mock.models.d.ts +0 -12
@@ -21,14 +21,22 @@ export class RealtimeCore {
21
21
  'OPTIONS',
22
22
  'HEAD',
23
23
  ];
24
+ this.ctx = ctx;
24
25
  this.strategy = this.resolveStrategy();
25
- ctx.logFramework &&
26
+ this.ctx.logRealtime &&
26
27
  console.log(`[taon] realtime strategy: ${this.strategy}`);
27
- this.client = new RealtimeClient(this);
28
- this.server = new RealtimeServer(this);
28
+ if (Helpers.isWebSQL) {
29
+ this.server = new RealtimeServer(this);
30
+ this.client = new RealtimeClient(this);
31
+ }
32
+ else {
33
+ this.client = new RealtimeClient(this);
34
+ this.server = new RealtimeServer(this);
35
+ }
29
36
  }
30
37
  resolveStrategy() {
31
- if (this.ctx.mode === 'backend-frontend(websql)') {
38
+ if (this.ctx.mode === 'backend-frontend(websql)' ||
39
+ this.ctx.mode === 'backend-frontend(websql-electron)') {
32
40
  return new RealtimeStrategyMock(this.ctx);
33
41
  }
34
42
  if (this.ctx.mode === 'backend-frontend(ipc-electron)') {
@@ -41,14 +49,14 @@ export class RealtimeCore {
41
49
  let nsp = namespace ? namespace : '';
42
50
  nsp = nsp === '/' ? '' : nsp;
43
51
  const pathname = uri.pathname !== '/' ? uri.pathname : '';
44
- let prefix = `taonContext-`;
52
+ let prefix = `taonContext`;
45
53
  if (Helpers.isElectron) {
46
54
  prefix = ``;
47
55
  }
48
- const href = `${uri.origin}${pathname}/${prefix}${nsp}`;
56
+ const href = `${uri.origin}${pathname}/${prefix}${prefix && nsp ? '-' + nsp : nsp}`;
49
57
  return new URL(href);
50
58
  }
51
59
  }
52
60
  ;
53
61
  ({}); // @--end-of-file-for-module=taon lib/realtime/realtime-core.ts
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbHRpbWUtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL3JlYWx0aW1lL3JlYWx0aW1lLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxPQUFPLEVBQUksbUJBQW1CLEVBQUksb0JBQW9CLEVBQUksd0JBQXdCLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxDQUFBLEtBQUs7QUFPdEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzNDOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBc0N2QixZQUFtQixHQUFvQjtRQUFwQixRQUFHLEdBQUgsR0FBRyxDQUFpQjtRQXBDOUIsbUJBQWMsR0FBRztZQUN4QixLQUFLO1lBQ0wsTUFBTTtZQUNOLEtBQUs7WUFDTCxRQUFRO1lBQ1IsT0FBTztZQUNQLFNBQVM7WUFDVCxNQUFNO1NBQ1AsQ0FBQztRQTZCQSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QyxHQUFHLENBQUMsWUFBWTtZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBSU8sZUFBZTtRQUNyQixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLDBCQUEwQixFQUFFLENBQUM7WUFDakQsT0FBTyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxnQ0FBZ0MsRUFBRSxDQUFDO1lBQ3ZELE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQU9ELE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUlNLE9BQU8sQ0FBQyxTQUFrQjtRQUMvQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUN6QixJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JDLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFELElBQUksTUFBTSxHQUFHLGNBQWMsQ0FBQztRQUM1QixJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QixNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxRQUFRLElBQUksTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBRXhELE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFRLENBQUM7SUFDOUIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrREFBK0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBTb2NrZXQgYXMgU29ja2V0Q2xpZW50IH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5pbXBvcnQgdHlwZSB7IEVuZHBvaW50Q29udGV4dCB9IGZyb20gJy4uL2VuZHBvaW50LWNvbnRleHQnO1xuaW1wb3J0IHsgUmVhbHRpbWVDbGllbnQgfSBmcm9tICcuL3JlYWx0aW1lLWNsaWVudCc7XG5pbXBvcnQgeyBSZWFsdGltZVNlcnZlciB9IGZyb20gJy4vcmVhbHRpbWUtc2VydmVyJztcbmltcG9ydCB0eXBlIHsgUmVhbHRpbWVTdHJhdGVneSB9IGZyb20gJy4vcmVhbHRpbWUtc3RyYXRlZ3knO1xuaW1wb3J0IHsgICBSZWFsdGltZVN0cmF0ZWd5SXBjLCAgIFJlYWx0aW1lU3RyYXRlZ3lNb2NrLCAgIFJlYWx0aW1lU3RyYXRlZ3lTb2NrZXRJTywgfSBmcm9tICcuL3JlYWx0aW1lLXN0cmF0ZWd5JzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBEZWZhdWx0RXZlbnRzTWFwIH0gZnJvbSAnc29ja2V0LmlvL2Rpc3QvdHlwZWQtZXZlbnRzJztcbmltcG9ydCB7IFNlcnZlciB9IGZyb20gJ3NvY2tldC5pbyc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cblxuLyoqXG4gKiBSZWFsdGltZSBjbGFzc1xuICogLSBtb2NrICh3aGVuIGJyb3dzZXItYnJvd3NlcilcbiAqIC0gc29ja2V0cyAoZnJvbSBzb2NrZXQgaW8gd2hlbiBiYWNrZW5kLWJyb3dzZXIpXG4gKiAtIGlwYyAod2hlbiBlbGVjdHJvbiBpcyB1c2VkIG9yIGJldHdlZW4gcHJvY2Vzc2VzKVxuICogLSB3ZWJ3b3JrZXIgKHdoZW4gd2Vid29ya2VyIGlzIHVzZWQgaW4gYnJvd3NlciBvciBub2RlanMpXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWFsdGltZUNvcmUge1xuXG4gIHJlYWRvbmx5IGFsbEh0dHBNZXRob2RzID0gW1xuICAgICdHRVQnLFxuICAgICdQT1NUJyxcbiAgICAnUFVUJyxcbiAgICAnREVMRVRFJyxcbiAgICAnUEFUQ0gnLFxuICAgICdPUFRJT05TJyxcbiAgICAnSEVBRCcsXG4gIF07XG4gIHB1YmxpYyByZWFkb25seSBjbGllbnQ6IFJlYWx0aW1lQ2xpZW50O1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmVyOiBSZWFsdGltZVNlcnZlcjtcbiAgcHVibGljIHJlYWRvbmx5IHN0cmF0ZWd5OiBSZWFsdGltZVN0cmF0ZWd5O1xuICAvKipcbiAgICogZ2xvYmFsIEZFIHNvY2tldFxuICAgKi9cbiAgcHVibGljIEZFOiBTb2NrZXRDbGllbnQ8RGVmYXVsdEV2ZW50c01hcCwgRGVmYXVsdEV2ZW50c01hcD47XG4gIC8qKlxuICAgKiBzb2NrZXQgZm9yIG5hbWVzcGFjZXMgYW5kIHJvb21zXG4gICAqL1xuICBwdWJsaWMgRkVfUkVBTFRJTUU6IFNvY2tldENsaWVudDxEZWZhdWx0RXZlbnRzTWFwLCBEZWZhdWx0RXZlbnRzTWFwPjtcbiAgLyoqXG4gICAqIGdsb2JhbCBCRSBzb2NrZXRcbiAgICovXG4gIHB1YmxpYyBCRTogU2VydmVyPERlZmF1bHRFdmVudHNNYXAsIERlZmF1bHRFdmVudHNNYXAsIERlZmF1bHRFdmVudHNNYXAsIGFueT47XG4gIC8qKlxuICAgKiBzb2NrZXQgZm9yIG5hbWVzcGFjZXMgYW5kIHJvb21zXG4gICAqL1xuICBwdWJsaWMgQkVfUkVBTFRJTUU6IFNlcnZlcjxcbiAgICBEZWZhdWx0RXZlbnRzTWFwLFxuICAgIERlZmF1bHRFdmVudHNNYXAsXG4gICAgRGVmYXVsdEV2ZW50c01hcCxcbiAgICBhbnlcbiAgPjtcblxuXG5cbiAgY29uc3RydWN0b3IocHVibGljIGN0eDogRW5kcG9pbnRDb250ZXh0KSB7XG4gICAgdGhpcy5zdHJhdGVneSA9IHRoaXMucmVzb2x2ZVN0cmF0ZWd5KCk7XG4gICAgY3R4LmxvZ0ZyYW1ld29yayAmJlxuICAgICAgY29uc29sZS5sb2coYFt0YW9uXSByZWFsdGltZSBzdHJhdGVneTogJHt0aGlzLnN0cmF0ZWd5fWApO1xuICAgIHRoaXMuY2xpZW50ID0gbmV3IFJlYWx0aW1lQ2xpZW50KHRoaXMpO1xuICAgIHRoaXMuc2VydmVyID0gbmV3IFJlYWx0aW1lU2VydmVyKHRoaXMpO1xuICB9XG5cblxuXG4gIHByaXZhdGUgcmVzb2x2ZVN0cmF0ZWd5KCk6IFJlYWx0aW1lU3RyYXRlZ3kge1xuICAgIGlmICh0aGlzLmN0eC5tb2RlID09PSAnYmFja2VuZC1mcm9udGVuZCh3ZWJzcWwpJykge1xuICAgICAgcmV0dXJuIG5ldyBSZWFsdGltZVN0cmF0ZWd5TW9jayh0aGlzLmN0eCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmN0eC5tb2RlID09PSAnYmFja2VuZC1mcm9udGVuZChpcGMtZWxlY3Ryb24pJykge1xuICAgICAgcmV0dXJuIG5ldyBSZWFsdGltZVN0cmF0ZWd5SXBjKHRoaXMuY3R4KTtcbiAgICB9XG5cblxuXG5cblxuXG4gICAgcmV0dXJuIG5ldyBSZWFsdGltZVN0cmF0ZWd5U29ja2V0SU8odGhpcy5jdHgpO1xuICB9XG5cblxuXG4gIHB1YmxpYyBwYXRoRm9yKG5hbWVzcGFjZT86IHN0cmluZykge1xuICAgIGNvbnN0IHVyaSA9IHRoaXMuY3R4LnVyaTtcbiAgICBsZXQgbnNwID0gbmFtZXNwYWNlID8gbmFtZXNwYWNlIDogJyc7XG4gICAgbnNwID0gbnNwID09PSAnLycgPyAnJyA6IG5zcDtcbiAgICBjb25zdCBwYXRobmFtZSA9IHVyaS5wYXRobmFtZSAhPT0gJy8nID8gdXJpLnBhdGhuYW1lIDogJyc7XG4gICAgbGV0IHByZWZpeCA9IGB0YW9uQ29udGV4dC1gO1xuICAgIGlmIChIZWxwZXJzLmlzRWxlY3Ryb24pIHtcbiAgICAgIHByZWZpeCA9IGBgO1xuICAgIH1cbiAgICBjb25zdCBocmVmID0gYCR7dXJpLm9yaWdpbn0ke3BhdGhuYW1lfS8ke3ByZWZpeH0ke25zcH1gO1xuXG4gICAgcmV0dXJuIG5ldyBVUkwoaHJlZikgYXMgVVJMO1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL3JlYWx0aW1lL3JlYWx0aW1lLWNvcmUudHMiXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbHRpbWUtY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RtcC1saWJzLWZvci1kaXN0L3Rhb24vcHJvamVjdHMvdGFvbi9zcmMvbGliL3JlYWx0aW1lL3JlYWx0aW1lLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxPQUFPLEVBQUksbUJBQW1CLEVBQUksb0JBQW9CLEVBQUksd0JBQXdCLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxDQUFBLEtBQUs7QUFPdEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRzNDOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBNEN2QixZQUFtQixHQUFvQjtRQUFwQixRQUFHLEdBQUgsR0FBRyxDQUFpQjtRQTFDOUIsbUJBQWMsR0FBRztZQUN4QixLQUFLO1lBQ0wsTUFBTTtZQUNOLEtBQUs7WUFDTCxRQUFRO1lBQ1IsT0FBTztZQUNQLFNBQVM7WUFDVCxNQUFNO1NBQ1AsQ0FBQztRQW1DQSxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZDLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVztZQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXZDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFJTyxlQUFlO1FBQ3JCLElBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssMEJBQTBCO1lBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLG1DQUFtQyxFQUNyRCxDQUFDO1lBRUQsT0FBTyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxnQ0FBZ0MsRUFBRSxDQUFDO1lBQ3ZELE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQU9ELE9BQU8sSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUlNLE9BQU8sQ0FBQyxTQUFrQjtRQUMvQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUV6QixJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JDLEdBQUcsR0FBRyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM3QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFELElBQUksTUFBTSxHQUFHLGFBQWEsQ0FBQztRQUMzQixJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QixNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLE1BQU0sR0FBRyxRQUFRLElBQUksTUFBTSxHQUFHLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXBGLE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFRLENBQUM7SUFDOUIsQ0FBQztDQUVGO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywrREFBK0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuXG5pbXBvcnQgeyBTb2NrZXQgYXMgU29ja2V0Q2xpZW50IH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5pbXBvcnQgdHlwZSB7IEVuZHBvaW50Q29udGV4dCB9IGZyb20gJy4uL2VuZHBvaW50LWNvbnRleHQnO1xuaW1wb3J0IHsgUmVhbHRpbWVDbGllbnQgfSBmcm9tICcuL3JlYWx0aW1lLWNsaWVudCc7XG5pbXBvcnQgeyBSZWFsdGltZVNlcnZlciB9IGZyb20gJy4vcmVhbHRpbWUtc2VydmVyJztcbmltcG9ydCB0eXBlIHsgUmVhbHRpbWVTdHJhdGVneSB9IGZyb20gJy4vcmVhbHRpbWUtc3RyYXRlZ3knO1xuaW1wb3J0IHsgICBSZWFsdGltZVN0cmF0ZWd5SXBjLCAgIFJlYWx0aW1lU3RyYXRlZ3lNb2NrLCAgIFJlYWx0aW1lU3RyYXRlZ3lTb2NrZXRJTywgfSBmcm9tICcuL3JlYWx0aW1lLXN0cmF0ZWd5JzsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBEZWZhdWx0RXZlbnRzTWFwIH0gZnJvbSAnc29ja2V0LmlvL2Rpc3QvdHlwZWQtZXZlbnRzJztcbmltcG9ydCB7IFNlcnZlciB9IGZyb20gJ3NvY2tldC5pbyc7XG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5cblxuLyoqXG4gKiBSZWFsdGltZSBjbGFzc1xuICogLSBtb2NrICh3aGVuIGJyb3dzZXItYnJvd3NlcilcbiAqIC0gc29ja2V0cyAoZnJvbSBzb2NrZXQgaW8gd2hlbiBiYWNrZW5kLWJyb3dzZXIpXG4gKiAtIGlwYyAod2hlbiBlbGVjdHJvbiBpcyB1c2VkIG9yIGJldHdlZW4gcHJvY2Vzc2VzKVxuICogLSB3ZWJ3b3JrZXIgKHdoZW4gd2Vid29ya2VyIGlzIHVzZWQgaW4gYnJvd3NlciBvciBub2RlanMpXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWFsdGltZUNvcmUge1xuXG4gIHJlYWRvbmx5IGFsbEh0dHBNZXRob2RzID0gW1xuICAgICdHRVQnLFxuICAgICdQT1NUJyxcbiAgICAnUFVUJyxcbiAgICAnREVMRVRFJyxcbiAgICAnUEFUQ0gnLFxuICAgICdPUFRJT05TJyxcbiAgICAnSEVBRCcsXG4gIF07XG4gIHB1YmxpYyByZWFkb25seSBjbGllbnQ6IFJlYWx0aW1lQ2xpZW50O1xuICBwdWJsaWMgcmVhZG9ubHkgc2VydmVyOiBSZWFsdGltZVNlcnZlcjtcbiAgcHVibGljIHJlYWRvbmx5IHN0cmF0ZWd5OiBSZWFsdGltZVN0cmF0ZWd5O1xuXG4gIC8qKlxuICAgKiBnbG9iYWwgRkUgc29ja2V0IC0gb25seSBmb3IgZXN0YWJsaXNoZWQgY29ubmVjdGlvblxuICAgKi9cbiAgcHVibGljIGNvbmVjdFNvY2tldEZFOiBTb2NrZXRDbGllbnQ8RGVmYXVsdEV2ZW50c01hcCwgRGVmYXVsdEV2ZW50c01hcD47XG4gIC8qKlxuICAgKiBzb2NrZXQgZm9yIG5hbWVzcGFjZXMgYW5kIHJvb21zXG4gICAqL1xuICBwdWJsaWMgc29ja2V0RkU6IFNvY2tldENsaWVudDxEZWZhdWx0RXZlbnRzTWFwLCBEZWZhdWx0RXZlbnRzTWFwPjtcbiAgLyoqXG4gICAqIGdsb2JhbCBCRSBzb2NrZXQgLSBvbmx5IGZvciBlc3RhYmxpc2hlZCBjb25uZWN0aW9uXG4gICAqL1xuICBwdWJsaWMgY29ubmVjdFNvY2tldEJFOiBTZXJ2ZXI8XG4gICAgRGVmYXVsdEV2ZW50c01hcCxcbiAgICBEZWZhdWx0RXZlbnRzTWFwLFxuICAgIERlZmF1bHRFdmVudHNNYXAsXG4gICAgYW55XG4gID47XG4gIC8qKlxuICAgKiBzb2NrZXQgZm9yIG5hbWVzcGFjZXMgYW5kIHJvb21zXG4gICAqL1xuICBwdWJsaWMgc29ja2V0QkU6IFNlcnZlcjxcbiAgICBEZWZhdWx0RXZlbnRzTWFwLFxuICAgIERlZmF1bHRFdmVudHNNYXAsXG4gICAgRGVmYXVsdEV2ZW50c01hcCxcbiAgICBhbnlcbiAgPjtcblxuXG5cbiAgY29uc3RydWN0b3IocHVibGljIGN0eDogRW5kcG9pbnRDb250ZXh0KSB7XG4gICAgdGhpcy5jdHggPSBjdHg7XG4gICAgdGhpcy5zdHJhdGVneSA9IHRoaXMucmVzb2x2ZVN0cmF0ZWd5KCk7XG5cbiAgICB0aGlzLmN0eC5sb2dSZWFsdGltZSAmJlxuICAgICAgY29uc29sZS5sb2coYFt0YW9uXSByZWFsdGltZSBzdHJhdGVneTogJHt0aGlzLnN0cmF0ZWd5fWApO1xuICAgIGlmIChIZWxwZXJzLmlzV2ViU1FMKSB7XG4gICAgICB0aGlzLnNlcnZlciA9IG5ldyBSZWFsdGltZVNlcnZlcih0aGlzKTtcblxuICAgICAgdGhpcy5jbGllbnQgPSBuZXcgUmVhbHRpbWVDbGllbnQodGhpcyk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbGllbnQgPSBuZXcgUmVhbHRpbWVDbGllbnQodGhpcyk7XG4gICAgICB0aGlzLnNlcnZlciA9IG5ldyBSZWFsdGltZVNlcnZlcih0aGlzKTtcbiAgICB9XG4gIH1cblxuXG5cbiAgcHJpdmF0ZSByZXNvbHZlU3RyYXRlZ3koKTogUmVhbHRpbWVTdHJhdGVneSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jdHgubW9kZSA9PT0gJ2JhY2tlbmQtZnJvbnRlbmQod2Vic3FsKScgfHxcbiAgICAgIHRoaXMuY3R4Lm1vZGUgPT09ICdiYWNrZW5kLWZyb250ZW5kKHdlYnNxbC1lbGVjdHJvbiknXG4gICAgKSB7XG5cbiAgICAgIHJldHVybiBuZXcgUmVhbHRpbWVTdHJhdGVneU1vY2sodGhpcy5jdHgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jdHgubW9kZSA9PT0gJ2JhY2tlbmQtZnJvbnRlbmQoaXBjLWVsZWN0cm9uKScpIHtcbiAgICAgIHJldHVybiBuZXcgUmVhbHRpbWVTdHJhdGVneUlwYyh0aGlzLmN0eCk7XG4gICAgfVxuXG5cblxuXG5cblxuICAgIHJldHVybiBuZXcgUmVhbHRpbWVTdHJhdGVneVNvY2tldElPKHRoaXMuY3R4KTtcbiAgfVxuXG5cblxuICBwdWJsaWMgcGF0aEZvcihuYW1lc3BhY2U/OiBzdHJpbmcpIHtcbiAgICBjb25zdCB1cmkgPSB0aGlzLmN0eC51cmk7XG5cbiAgICBsZXQgbnNwID0gbmFtZXNwYWNlID8gbmFtZXNwYWNlIDogJyc7XG4gICAgbnNwID0gbnNwID09PSAnLycgPyAnJyA6IG5zcDtcbiAgICBjb25zdCBwYXRobmFtZSA9IHVyaS5wYXRobmFtZSAhPT0gJy8nID8gdXJpLnBhdGhuYW1lIDogJyc7XG4gICAgbGV0IHByZWZpeCA9IGB0YW9uQ29udGV4dGA7XG4gICAgaWYgKEhlbHBlcnMuaXNFbGVjdHJvbikge1xuICAgICAgcHJlZml4ID0gYGA7XG4gICAgfVxuICAgIGNvbnN0IGhyZWYgPSBgJHt1cmkub3JpZ2lufSR7cGF0aG5hbWV9LyR7cHJlZml4fSR7cHJlZml4ICYmIG5zcCA/ICctJyArIG5zcCA6IG5zcH1gO1xuXG4gICAgcmV0dXJuIG5ldyBVUkwoaHJlZikgYXMgVVJMO1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL3JlYWx0aW1lL3JlYWx0aW1lLWNvcmUudHMiXX0=
@@ -1,11 +1,9 @@
1
1
  import { Symbols } from '../symbols';
2
2
  import { _ } from 'tnp-core/browser';
3
3
  import { ClassHelpers } from '../helpers/class-helpers';
4
- const SOCKET_EVENT_DEBOUNCE = 500;
5
4
  export class RealtimeServer {
6
5
  constructor(core) {
7
6
  this.core = core;
8
- this.jobs = {};
9
7
  this.core = core;
10
8
  if (!core.ctx.disabledRealtime) {
11
9
  /* */
@@ -163,8 +161,6 @@ export class RealtimeServer {
163
161
  /* */
164
162
  /* */
165
163
  /* */
166
- }
167
- triggerChanges(entityObjOrClass, property, valueOfUniquPropery, customEvent, customEventData) {
168
164
  /* */
169
165
  /* */
170
166
  /* */
@@ -179,6 +175,11 @@ export class RealtimeServer {
179
175
  /* */
180
176
  /* */
181
177
  /* */
178
+ }
179
+ triggerChanges(entityObjOrClass, property, valueOfUniqueProperty, customEvent, customEventData) {
180
+ /* */
181
+ /* */
182
+ /* */
182
183
  /* */
183
184
  /* */
184
185
  /* */
@@ -234,18 +235,18 @@ export class RealtimeServer {
234
235
  /* */
235
236
  /* */
236
237
  }
237
- trigggerEntityChanges(entityObjOrClass, idToTrigger) {
238
+ triggerEntityChanges(entityObjOrClass, idToTrigger) {
238
239
  if (this.core.ctx.disabledRealtime) {
239
240
  const className = ClassHelpers.getName(entityObjOrClass);
240
- console.warn(`[Taon][TrigggerEntityChanges] Entity "${className}' is not realtime`);
241
+ console.warn(`[Taon][TriggerEntityChanges] Entity "${className}' is not realtime`);
241
242
  return;
242
243
  }
243
244
  this.triggerChanges(entityObjOrClass, void 0, idToTrigger);
244
245
  }
245
- trigggerEntityPropertyChanges(entityObjOrClass, property, idToTrigger) {
246
+ triggerEntityPropertyChanges(entityObjOrClass, property, idToTrigger) {
246
247
  if (this.core.ctx.disabledRealtime) {
247
248
  const className = ClassHelpers.getName(entityObjOrClass);
248
- console.warn(`[Taon][TrigggerEntityPropertyChanges][property=${property}] Entity "${className}' is not realtime`);
249
+ console.warn(`[Taon][TriggerEntityPropertyChanges][property=${property}] Entity "${className}' is not realtime`);
249
250
  return;
250
251
  }
251
252
  if (_.isArray(property)) {
@@ -257,18 +258,35 @@ export class RealtimeServer {
257
258
  this.triggerChanges(entityObjOrClass, property, idToTrigger);
258
259
  }
259
260
  }
260
- triggerCustomEvent(customEvent, dataToPush) {
261
- this.triggerChanges(void 0, void 0, void 0, customEvent, dataToPush);
262
- }
263
- trigggerEntityTableChanges(entityClass) {
264
- const className = ClassHelpers.getName(entityClass);
261
+ triggerEntityTableChanges(entityClassOrInstance) {
262
+ const className = ClassHelpers.getName(entityClassOrInstance);
265
263
  if (this.core.ctx.disabledRealtime) {
266
- console.warn(`[Taon][TrigggerEntityTableChanges] Entity "${className}' is not realtime`);
264
+ console.warn(`[Taon][TriggerEntityTableChanges] Entity "${className}' is not realtime`);
267
265
  return;
268
266
  }
269
- this.triggerChanges(entityClass, void 0, void 0, Symbols.REALTIME.TABLE_CHANGE(this.core.ctx.contextName, className));
267
+ this.triggerChanges(entityClassOrInstance, void 0, void 0, Symbols.REALTIME.TABLE_CHANGE(this.core.ctx.contextName, className));
268
+ }
269
+ triggerCustomEvent(customEvent, dataToPush) {
270
+ this.triggerChanges(void 0, void 0, void 0, customEvent, dataToPush);
271
+ }
272
+ /**
273
+ * Listen to custom events from users
274
+ * @param customEvent global event name
275
+ */
276
+ listenChangesCustomEvent(customEvent) {
277
+ /* */
278
+ /* */
279
+ /* */
280
+ /* */
281
+ /* */
282
+ /* */
283
+ /* */
284
+ /* */
285
+ /* */
286
+ /* */
287
+ return (void 0);
270
288
  }
271
289
  }
272
290
  ;
273
291
  ({}); // @--end-of-file-for-module=taon lib/realtime/realtime-server.ts
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbHRpbWUtc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvcmVhbHRpbWUvcmVhbHRpbWUtc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFXLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl4RCxNQUFNLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztBQUVsQyxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixJQUFrQjtRQUFsQixTQUFJLEdBQUosSUFBSSxDQUFjO1FBRDlCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFaEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQyxLQUFLO1lBQ0wsS0FBSztRQUVELENBQUM7SUFDSCxDQUFDO0lBR08sSUFBSTtRQUNkLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFLTyxjQUFjLENBQ3BCLGdCQUEwQixFQUMxQixRQUFpQixFQUNqQixtQkFBcUMsRUFDckMsV0FBb0IsRUFDcEIsZUFBcUI7UUFHekIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7SUFFSCxDQUFDO0lBSU0scUJBQXFCLENBQzFCLGdCQUEwQixFQUMxQixXQUE2QjtRQUU3QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDbkMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRXpELE9BQU8sQ0FBQyxJQUFJLENBQ1YseUNBQXlDLFNBQVMsbUJBQW1CLENBQ3RFLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQXVCLEVBQUUsS0FBSyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUlNLDZCQUE2QixDQUNsQyxnQkFBeUMsRUFDekMsUUFBeUMsRUFDekMsV0FBNkI7UUFFN0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25DLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUV6RCxPQUFPLENBQUMsSUFBSSxDQUNWLGtEQUNFLFFBQ0YsYUFBYSxTQUFTLG1CQUFtQixDQUMxQyxDQUFDO1lBQ0YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUN4QixRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFO2dCQUNqQyxJQUFJLENBQUMsY0FBYyxDQUNqQixnQkFBZ0IsRUFDaEIsZUFBc0IsRUFDdEIsV0FBVyxDQUNaLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFlLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEUsQ0FBQztJQUNILENBQUM7SUFJTSxrQkFBa0IsQ0FBQyxXQUFtQixFQUFFLFVBQWU7UUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUlNLDBCQUEwQixDQUFDLFdBQXFCO1FBQ3JELE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQ1YsOENBQThDLFNBQVMsbUJBQW1CLENBQzNFLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLENBQ2pCLFdBQWtCLEVBQ2xCLEtBQUssQ0FBQyxFQUNOLEtBQUssQ0FBQyxFQUNOLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FDcEUsQ0FBQztJQUNKLENBQUM7Q0FFRjtBQUVBLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgU3ltYm9scyB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgSGVscGVycywgXyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgUmVhbHRpbWVDb3JlIH0gZnJvbSAnLi9yZWFsdGltZS1jb3JlJztcbmltcG9ydCB7IENsYXNzSGVscGVycyB9IGZyb20gJy4uL2hlbHBlcnMvY2xhc3MtaGVscGVycyc7XG5pbXBvcnQgdHlwZSB7IEJhc2VFbnRpdHkgfSBmcm9tICcuLi9iYXNlLWNsYXNzZXMvYmFzZS1lbnRpdHknO1xuXG5cbmNvbnN0IFNPQ0tFVF9FVkVOVF9ERUJPVU5DRSA9IDUwMDtcblxuZXhwb3J0IGNsYXNzIFJlYWx0aW1lU2VydmVyIHtcbiAgcHJpdmF0ZSBqb2JzID0ge307XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29yZTogUmVhbHRpbWVDb3JlKSB7XG4gICAgdGhpcy5jb3JlID0gY29yZTtcbiAgICBpZiAoIWNvcmUuY3R4LmRpc2FibGVkUmVhbHRpbWUpIHtcbi8qICovXG4vKiAqL1xuICBcbiAgICB9XG4gIH1cblxuXG4gIHByaXZhdGUgaW5pdCgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cblxuICBwcml2YXRlIHRyaWdnZXJDaGFuZ2VzKFxuICAgIGVudGl0eU9iak9yQ2xhc3M6IEZ1bmN0aW9uLFxuICAgIHByb3BlcnR5Pzogc3RyaW5nLFxuICAgIHZhbHVlT2ZVbmlxdVByb3Blcnk/OiBudW1iZXIgfCBzdHJpbmcsXG4gICAgY3VzdG9tRXZlbnQ/OiBzdHJpbmcsXG4gICAgY3VzdG9tRXZlbnREYXRhPzogYW55LFxuICApIHtcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHB1YmxpYyB0cmlnZ2dlckVudGl0eUNoYW5nZXMoXG4gICAgZW50aXR5T2JqT3JDbGFzczogRnVuY3Rpb24sXG4gICAgaWRUb1RyaWdnZXI/OiBudW1iZXIgfCBzdHJpbmcsXG4gICkge1xuICAgIGlmICh0aGlzLmNvcmUuY3R4LmRpc2FibGVkUmVhbHRpbWUpIHtcbiAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IENsYXNzSGVscGVycy5nZXROYW1lKGVudGl0eU9iak9yQ2xhc3MpO1xuXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBbVGFvbl1bVHJpZ2dnZXJFbnRpdHlDaGFuZ2VzXSBFbnRpdHkgXCIke2NsYXNzTmFtZX0nIGlzIG5vdCByZWFsdGltZWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRyaWdnZXJDaGFuZ2VzKGVudGl0eU9iak9yQ2xhc3MgYXMgYW55LCB2b2lkIDAsIGlkVG9UcmlnZ2VyKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgdHJpZ2dnZXJFbnRpdHlQcm9wZXJ0eUNoYW5nZXM8RU5USVRZIGV4dGVuZHMgQmFzZUVudGl0eT4oXG4gICAgZW50aXR5T2JqT3JDbGFzczogbmV3ICguLi5hcmdzKSA9PiBFTlRJVFksXG4gICAgcHJvcGVydHk6IGtleW9mIEVOVElUWSB8IChrZXlvZiBFTlRJVFkpW10sXG4gICAgaWRUb1RyaWdnZXI/OiBudW1iZXIgfCBzdHJpbmcsXG4gICkge1xuICAgIGlmICh0aGlzLmNvcmUuY3R4LmRpc2FibGVkUmVhbHRpbWUpIHtcbiAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IENsYXNzSGVscGVycy5nZXROYW1lKGVudGl0eU9iak9yQ2xhc3MpO1xuXG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBbVGFvbl1bVHJpZ2dnZXJFbnRpdHlQcm9wZXJ0eUNoYW5nZXNdW3Byb3BlcnR5PSR7XG4gICAgICAgICAgcHJvcGVydHkgYXMgc3RyaW5nXG4gICAgICAgIH1dIEVudGl0eSBcIiR7Y2xhc3NOYW1lfScgaXMgbm90IHJlYWx0aW1lYCxcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKF8uaXNBcnJheShwcm9wZXJ0eSkpIHtcbiAgICAgIHByb3BlcnR5LmZvckVhY2gocHJvcGVydHlGcm9tQXJyID0+IHtcbiAgICAgICAgdGhpcy50cmlnZ2VyQ2hhbmdlcyhcbiAgICAgICAgICBlbnRpdHlPYmpPckNsYXNzLFxuICAgICAgICAgIHByb3BlcnR5RnJvbUFyciBhcyBhbnksXG4gICAgICAgICAgaWRUb1RyaWdnZXIsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50cmlnZ2VyQ2hhbmdlcyhlbnRpdHlPYmpPckNsYXNzLCBwcm9wZXJ0eSBhcyBhbnksIGlkVG9UcmlnZ2VyKTtcbiAgICB9XG4gIH1cblxuXG5cbiAgcHVibGljIHRyaWdnZXJDdXN0b21FdmVudChjdXN0b21FdmVudDogc3RyaW5nLCBkYXRhVG9QdXNoOiBhbnkpIHtcbiAgICB0aGlzLnRyaWdnZXJDaGFuZ2VzKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGN1c3RvbUV2ZW50LCBkYXRhVG9QdXNoKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgdHJpZ2dnZXJFbnRpdHlUYWJsZUNoYW5nZXMoZW50aXR5Q2xhc3M6IEZ1bmN0aW9uKSB7XG4gICAgY29uc3QgY2xhc3NOYW1lID0gQ2xhc3NIZWxwZXJzLmdldE5hbWUoZW50aXR5Q2xhc3MpO1xuICAgIGlmICh0aGlzLmNvcmUuY3R4LmRpc2FibGVkUmVhbHRpbWUpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFtUYW9uXVtUcmlnZ2dlckVudGl0eVRhYmxlQ2hhbmdlc10gRW50aXR5IFwiJHtjbGFzc05hbWV9JyBpcyBub3QgcmVhbHRpbWVgLFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRyaWdnZXJDaGFuZ2VzKFxuICAgICAgZW50aXR5Q2xhc3MgYXMgYW55LFxuICAgICAgdm9pZCAwLFxuICAgICAgdm9pZCAwLFxuICAgICAgU3ltYm9scy5SRUFMVElNRS5UQUJMRV9DSEFOR0UodGhpcy5jb3JlLmN0eC5jb250ZXh0TmFtZSwgY2xhc3NOYW1lKSxcbiAgICApO1xuICB9XG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRhb24gbGliL3JlYWx0aW1lL3JlYWx0aW1lLXNlcnZlci50cyJdfQ==
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbHRpbWUtc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvcmVhbHRpbWUvcmVhbHRpbWUtc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckMsT0FBTyxFQUFXLENBQUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUt4RCxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixJQUFrQjtRQUFsQixTQUFJLEdBQUosSUFBSSxDQUFjO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDckMsS0FBSztZQUNMLEtBQUs7UUFFRCxDQUFDO0lBQ0gsQ0FBQztJQUdPLElBQUk7UUFDZCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFLTyxjQUFjLENBQ3BCLGdCQUEwQixFQUMxQixRQUFpQixFQUNqQixxQkFBdUMsRUFDdkMsV0FBb0IsRUFDcEIsZUFBcUI7UUFJekIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO0lBRUgsQ0FBQztJQU1NLG9CQUFvQixDQUN6QixnQkFBMEIsRUFDMUIsV0FBNkI7UUFFN0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ25DLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUV6RCxPQUFPLENBQUMsSUFBSSxDQUNWLHdDQUF3QyxTQUFTLG1CQUFtQixDQUNyRSxDQUFDO1lBQ0YsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUF1QixFQUFFLEtBQUssQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFJTSw0QkFBNEIsQ0FDakMsZ0JBQXlDLEVBQ3pDLFFBQXlDLEVBQ3pDLFdBQTZCO1FBRTdCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFFekQsT0FBTyxDQUFDLElBQUksQ0FDVixpREFDRSxRQUNGLGFBQWEsU0FBUyxtQkFBbUIsQ0FDMUMsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDeEIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRTtnQkFDakMsSUFBSSxDQUFDLGNBQWMsQ0FDakIsZ0JBQWdCLEVBQ2hCLGVBQXNCLEVBQ3RCLFdBQVcsQ0FDWixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsUUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBSU0seUJBQXlCLENBQUMscUJBQXdDO1FBQ3ZFLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUU5RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDbkMsT0FBTyxDQUFDLElBQUksQ0FDViw2Q0FBNkMsU0FBUyxtQkFBbUIsQ0FDMUUsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FDakIscUJBQTRCLEVBQzVCLEtBQUssQ0FBQyxFQUNOLEtBQUssQ0FBQyxFQUNOLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FDcEUsQ0FBQztJQUNKLENBQUM7SUFRTSxrQkFBa0IsQ0FBQyxXQUFtQixFQUFFLFVBQWU7UUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUlEOzs7T0FHRztJQUNILHdCQUF3QixDQUFDLFdBQW1CO1FBQzlDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBSUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlFQUFpRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IFN5bWJvbHMgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IEhlbHBlcnMsIF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IFJlYWx0aW1lQ29yZSB9IGZyb20gJy4vcmVhbHRpbWUtY29yZSc7XG5pbXBvcnQgeyBDbGFzc0hlbHBlcnMgfSBmcm9tICcuLi9oZWxwZXJzL2NsYXNzLWhlbHBlcnMnO1xuaW1wb3J0IHR5cGUgeyBCYXNlRW50aXR5IH0gZnJvbSAnLi4vYmFzZS1jbGFzc2VzL2Jhc2UtZW50aXR5JztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuXG5leHBvcnQgY2xhc3MgUmVhbHRpbWVTZXJ2ZXIge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29yZTogUmVhbHRpbWVDb3JlKSB7XG4gICAgdGhpcy5jb3JlID0gY29yZTtcbiAgICBpZiAoIWNvcmUuY3R4LmRpc2FibGVkUmVhbHRpbWUpIHtcbi8qICovXG4vKiAqL1xuICBcbiAgICB9XG4gIH1cblxuXG4gIHByaXZhdGUgaW5pdCgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuXG4gIHByaXZhdGUgdHJpZ2dlckNoYW5nZXMoXG4gICAgZW50aXR5T2JqT3JDbGFzczogRnVuY3Rpb24sXG4gICAgcHJvcGVydHk/OiBzdHJpbmcsXG4gICAgdmFsdWVPZlVuaXF1ZVByb3BlcnR5PzogbnVtYmVyIHwgc3RyaW5nLFxuICAgIGN1c3RvbUV2ZW50Pzogc3RyaW5nLFxuICAgIGN1c3RvbUV2ZW50RGF0YT86IGFueSxcbiAgKSB7XG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuXG5cbiAgcHVibGljIHRyaWdnZXJFbnRpdHlDaGFuZ2VzKFxuICAgIGVudGl0eU9iak9yQ2xhc3M6IEZ1bmN0aW9uLFxuICAgIGlkVG9UcmlnZ2VyPzogbnVtYmVyIHwgc3RyaW5nLFxuICApIHtcbiAgICBpZiAodGhpcy5jb3JlLmN0eC5kaXNhYmxlZFJlYWx0aW1lKSB7XG4gICAgICBjb25zdCBjbGFzc05hbWUgPSBDbGFzc0hlbHBlcnMuZ2V0TmFtZShlbnRpdHlPYmpPckNsYXNzKTtcblxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgW1Rhb25dW1RyaWdnZXJFbnRpdHlDaGFuZ2VzXSBFbnRpdHkgXCIke2NsYXNzTmFtZX0nIGlzIG5vdCByZWFsdGltZWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRyaWdnZXJDaGFuZ2VzKGVudGl0eU9iak9yQ2xhc3MgYXMgYW55LCB2b2lkIDAsIGlkVG9UcmlnZ2VyKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgdHJpZ2dlckVudGl0eVByb3BlcnR5Q2hhbmdlczxFTlRJVFkgZXh0ZW5kcyBCYXNlRW50aXR5PihcbiAgICBlbnRpdHlPYmpPckNsYXNzOiBuZXcgKC4uLmFyZ3MpID0+IEVOVElUWSxcbiAgICBwcm9wZXJ0eToga2V5b2YgRU5USVRZIHwgKGtleW9mIEVOVElUWSlbXSxcbiAgICBpZFRvVHJpZ2dlcj86IG51bWJlciB8IHN0cmluZyxcbiAgKSB7XG4gICAgaWYgKHRoaXMuY29yZS5jdHguZGlzYWJsZWRSZWFsdGltZSkge1xuICAgICAgY29uc3QgY2xhc3NOYW1lID0gQ2xhc3NIZWxwZXJzLmdldE5hbWUoZW50aXR5T2JqT3JDbGFzcyk7XG5cbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFtUYW9uXVtUcmlnZ2VyRW50aXR5UHJvcGVydHlDaGFuZ2VzXVtwcm9wZXJ0eT0ke1xuICAgICAgICAgIHByb3BlcnR5IGFzIHN0cmluZ1xuICAgICAgICB9XSBFbnRpdHkgXCIke2NsYXNzTmFtZX0nIGlzIG5vdCByZWFsdGltZWAsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChfLmlzQXJyYXkocHJvcGVydHkpKSB7XG4gICAgICBwcm9wZXJ0eS5mb3JFYWNoKHByb3BlcnR5RnJvbUFyciA9PiB7XG4gICAgICAgIHRoaXMudHJpZ2dlckNoYW5nZXMoXG4gICAgICAgICAgZW50aXR5T2JqT3JDbGFzcyxcbiAgICAgICAgICBwcm9wZXJ0eUZyb21BcnIgYXMgYW55LFxuICAgICAgICAgIGlkVG9UcmlnZ2VyLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJpZ2dlckNoYW5nZXMoZW50aXR5T2JqT3JDbGFzcywgcHJvcGVydHkgYXMgYW55LCBpZFRvVHJpZ2dlcik7XG4gICAgfVxuICB9XG5cblxuXG4gIHB1YmxpYyB0cmlnZ2VyRW50aXR5VGFibGVDaGFuZ2VzKGVudGl0eUNsYXNzT3JJbnN0YW5jZTogRnVuY3Rpb24gfCBvYmplY3QpIHtcbiAgICBjb25zdCBjbGFzc05hbWUgPSBDbGFzc0hlbHBlcnMuZ2V0TmFtZShlbnRpdHlDbGFzc09ySW5zdGFuY2UpO1xuXG4gICAgaWYgKHRoaXMuY29yZS5jdHguZGlzYWJsZWRSZWFsdGltZSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgW1Rhb25dW1RyaWdnZXJFbnRpdHlUYWJsZUNoYW5nZXNdIEVudGl0eSBcIiR7Y2xhc3NOYW1lfScgaXMgbm90IHJlYWx0aW1lYCxcbiAgICAgICk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50cmlnZ2VyQ2hhbmdlcyhcbiAgICAgIGVudGl0eUNsYXNzT3JJbnN0YW5jZSBhcyBhbnksXG4gICAgICB2b2lkIDAsXG4gICAgICB2b2lkIDAsXG4gICAgICBTeW1ib2xzLlJFQUxUSU1FLlRBQkxFX0NIQU5HRSh0aGlzLmNvcmUuY3R4LmNvbnRleHROYW1lLCBjbGFzc05hbWUpLFxuICAgICk7XG4gIH1cblxuXG5cblxuXG5cblxuICBwdWJsaWMgdHJpZ2dlckN1c3RvbUV2ZW50KGN1c3RvbUV2ZW50OiBzdHJpbmcsIGRhdGFUb1B1c2g6IGFueSkge1xuICAgIHRoaXMudHJpZ2dlckNoYW5nZXModm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgY3VzdG9tRXZlbnQsIGRhdGFUb1B1c2gpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gY3VzdG9tIGV2ZW50cyBmcm9tIHVzZXJzXG4gICAqIEBwYXJhbSBjdXN0b21FdmVudCAgZ2xvYmFsIGV2ZW50IG5hbWVcbiAgICovXG4gIGxpc3RlbkNoYW5nZXNDdXN0b21FdmVudChjdXN0b21FdmVudDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9yZWFsdGltZS9yZWFsdGltZS1zZXJ2ZXIudHMiXX0=
@@ -1,35 +1,70 @@
1
1
  import { RealtimeStrategy } from './realtime-strategy';
2
- import { IpcRendererWrapper } from './realtime-strategy-ipc-models/realtime-strategy-ipc-renderer-wrapper';
3
- /**
4
- * Purpose:
5
- * - backend-browser communication between 2 processes in electron mode
6
- */
7
- export class RealtimeStrategyIpc extends RealtimeStrategy {
8
- toString() {
9
- return 'ipc';
2
+ export class MockServerIpc {
3
+ static { this.serverByContextName = new Map(); }
4
+ static from(contextName) {
5
+ if (!MockServerIpc.serverByContextName.has(contextName)) {
6
+ MockServerIpc.serverByContextName.set(contextName, new MockServerIpc(contextName));
7
+ }
8
+ return MockServerIpc.serverByContextName.get(contextName);
10
9
  }
11
- establishConnection() {
12
- throw new Error('Method not implemented.');
10
+ constructor(contextName) {
11
+ this.contextName = contextName;
12
+ this.namespacesByName = new Map();
13
+ MockServerIpc.serverByContextName.set(contextName, this);
13
14
  }
14
- constructor(ctx) {
15
- super(ctx);
16
- this.ctx = ctx;
17
- this.contextsServers = {};
18
- this.contextsIO = {};
15
+ of(namespace) {
16
+ if (!this.namespacesByName.has(namespace)) {
17
+ this.namespacesByName.set(namespace, new MockNamespaceIpc(namespace, this));
18
+ }
19
+ return this.namespacesByName.get(namespace);
19
20
  }
20
- get io() {
21
- return ((__, { path: namespacePath }) => {
22
- if (this.contextsIO[namespacePath]) {
23
- return this.contextsIO[namespacePath];
24
- }
25
- const wrap = new IpcRendererWrapper(this.ctx.contextName);
26
- const nsp = wrap.of(namespacePath);
27
- this.contextsIO[namespacePath] = nsp;
28
- return nsp;
29
- });
30
- return void 0;
21
+ }
22
+ export class MockNamespaceIpc {
23
+ constructor(
24
+ /**
25
+ * Namespace name
26
+ */
27
+ name, server) {
28
+ this.name = name;
29
+ this.server = server;
30
+ this.electronClients = new Set();
31
+ this.roomsByRoomName = {};
32
+ this.namespaceEventHandlers = {};
33
+ }
34
+ on(eventName, callback) {
35
+ /* */
36
+ /* */
37
+ /* */
38
+ /* */
39
+ /* */
40
+ /* */
41
+ /* */
42
+ /* */
43
+ /* */
44
+ /* */
45
+ /* */
46
+ /* */
47
+ /* */
48
+ /* */
49
+ /* */
50
+ /* */
51
+ /* */
52
+ /* */
53
+ /* */
54
+ /* */
55
+ /* */
56
+ /* */
57
+ /* */
58
+ /* */
59
+ /* */
60
+ /* */
61
+ /* */
62
+ /* */
63
+ /* */
64
+ return (void 0);
31
65
  }
32
- get Server() {
66
+ off(event, callback) {
67
+ /* */
33
68
  /* */
34
69
  /* */
35
70
  /* */
@@ -41,9 +76,143 @@ export class RealtimeStrategyIpc extends RealtimeStrategy {
41
76
  /* */
42
77
  /* */
43
78
  /* */
44
- return void 0;
79
+ return (void 0);
80
+ }
81
+ emit(eventName, ...args) {
82
+ /* */
83
+ /* */
84
+ /* */
85
+ /* */
86
+ /* */
87
+ /* */
88
+ /* */
89
+ /* */
90
+ /* */
91
+ return (void 0);
92
+ }
93
+ to(roomName) {
94
+ const electronClientsInroom = this.roomsByRoomName[roomName];
95
+ return new RoomEmitterIpc(electronClientsInroom, this.name, true);
96
+ }
97
+ in(roomName) {
98
+ const electronClientsInroom = this.roomsByRoomName[roomName];
99
+ return new RoomEmitterIpc(electronClientsInroom, this.name, false);
100
+ }
101
+ join(webContents, roomName) {
102
+ if (!this.roomsByRoomName[roomName]) {
103
+ this.roomsByRoomName[roomName] = new Set();
104
+ }
105
+ this.roomsByRoomName[roomName].add(webContents);
106
+ }
107
+ leave(webContents, roomName) {
108
+ if (this.roomsByRoomName[roomName]) {
109
+ this.roomsByRoomName[roomName].delete(webContents);
110
+ if (this.roomsByRoomName[roomName].size === 0) {
111
+ delete this.roomsByRoomName[roomName];
112
+ }
113
+ }
114
+ }
115
+ path() {
116
+ return this.name;
117
+ }
118
+ get nsp() {
119
+ const self = this;
120
+ return {
121
+ get name() {
122
+ return self.name;
123
+ },
124
+ };
125
+ }
126
+ }
127
+ class RoomEmitterIpc {
128
+ constructor(electronClients,
129
+ /**
130
+ * namespace name
131
+ */
132
+ name, includeSender = false, sender = null) {
133
+ this.electronClients = electronClients;
134
+ this.name = name;
135
+ this.includeSender = includeSender;
136
+ this.sender = sender;
137
+ }
138
+ emit(eventName, ...args) {
139
+ const emitEvent = `(${this.name}) "${eventName}"`;
140
+ this.electronClients?.forEach(webContents => {
141
+ webContents.send(emitEvent, ...args);
142
+ });
143
+ }
144
+ }
145
+ export class MockSocketIpc {
146
+ get name() {
147
+ return this.namespaceName;
148
+ }
149
+ /**
150
+ * @param namespaceName instead url for ipc
151
+ */
152
+ constructor(namespaceName) {
153
+ this.namespaceName = namespaceName;
154
+ this.socketEventHandlers = {};
155
+ this.ipcRenderer = window.require('electron').ipcRenderer;
156
+ }
157
+ on(eventName, callback) {
158
+ if (!this.socketEventHandlers[eventName]) {
159
+ this.socketEventHandlers[eventName] = new Set();
160
+ }
161
+ this.socketEventHandlers[eventName].add(callback);
162
+ const listenToEvent = `(${this.name}) "${eventName}"`;
163
+ this.ipcRenderer.on(listenToEvent, (rendereEvent, data) => {
164
+ callback(data);
165
+ });
166
+ if (eventName === 'connect') {
167
+ const connectionEventKey = `(${this.name}) "connection"`;
168
+ this.ipcRenderer.send(connectionEventKey, this.name);
169
+ }
170
+ }
171
+ off(event, callback) {
172
+ if (!this.socketEventHandlers[event]) {
173
+ return;
174
+ }
175
+ if (callback) {
176
+ this.socketEventHandlers[event].delete(callback);
177
+ }
178
+ else {
179
+ delete this.socketEventHandlers[event];
180
+ }
181
+ const removeListener = `(${this.name}) "${event}"`;
182
+ this.ipcRenderer.removeListener(removeListener, data => {
183
+ callback(data);
184
+ });
185
+ }
186
+ emit(event, ...args) {
187
+ const emitEvent = `(${this.name}) "${event}"`;
188
+ this.ipcRenderer.send(emitEvent, ...args);
189
+ }
190
+ }
191
+ /**
192
+ * Purpose:
193
+ * - backend-browser communication between 2 processes in electron mode
194
+ */
195
+ export class RealtimeStrategyIpc extends RealtimeStrategy {
196
+ toString() {
197
+ return 'ipc';
198
+ }
199
+ constructor(ctx) {
200
+ super(ctx);
201
+ this.ctx = ctx;
202
+ }
203
+ ioServer(__, opt) {
204
+ const namespace = opt?.path || '/';
205
+ const server = MockServerIpc.from(this.ctx.contextName);
206
+ return server.of(namespace);
207
+ }
208
+ get ioClient() {
209
+ const clientIo = (__, opt) => {
210
+ const namespace = opt?.path || '/';
211
+ return new MockSocketIpc(namespace);
212
+ };
213
+ return clientIo;
45
214
  }
46
215
  }
47
216
  ;
48
217
  ({}); // @--end-of-file-for-module=taon lib/realtime/realtime-strategy/realtime-strategy-ipc.ts
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbHRpbWUtc3RyYXRlZ3ktaXBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvcmVhbHRpbWUvcmVhbHRpbWUtc3RyYXRlZ3kvcmVhbHRpbWUtc3RyYXRlZ3ktaXBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBRzNHOzs7R0FHRztBQUNILE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQkFBZ0I7SUFDdkQsUUFBUTtRQUNOLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELG1CQUFtQjtRQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELFlBQXNCLEdBQW9CO1FBQ3hDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURTLFFBQUcsR0FBSCxHQUFHLENBQWlCO1FBSTFDLG9CQUFlLEdBQXNDLEVBQUUsQ0FBQztRQUN4RCxlQUFVLEdBQXlDLEVBQUUsQ0FBQztJQUh0RCxDQUFDO0lBS0QsSUFBSSxFQUFFO1FBRUosT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN4QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBRTFELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFVLENBQUM7WUFDNUMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQVEsQ0FBQztRQUVWLE9BQU8sS0FBSyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUNELElBQUksTUFBTTtRQUNaLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBRUQsT0FBTyxLQUFLLENBQUMsQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlGQUF5RiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyBTZXJ2ZXIgfSBmcm9tICdzb2NrZXQuaW8nO1xuaW1wb3J0IHsgRW5kcG9pbnRDb250ZXh0IH0gZnJvbSAnLi4vLi4vZW5kcG9pbnQtY29udGV4dCc7XG5pbXBvcnQgeyBSZWFsdGltZVN0cmF0ZWd5IH0gZnJvbSAnLi9yZWFsdGltZS1zdHJhdGVneSc7XG5pbXBvcnQgeyBpb0lwY1N0cmF0ZWd5IGFzIElvSXBjU3RyYXRlZ3kgfSBmcm9tICcuL3JlYWx0aW1lLXN0cmF0ZWd5LWlwYy1tb2RlbHMvcmVhbHRpbWUtc3RyYXRlZ3ktaXBjLW1haW4td3JhcHBlcic7XG5pbXBvcnQgeyBJcGNSZW5kZXJlcldyYXBwZXIgfSBmcm9tICcuL3JlYWx0aW1lLXN0cmF0ZWd5LWlwYy1tb2RlbHMvcmVhbHRpbWUtc3RyYXRlZ3ktaXBjLXJlbmRlcmVyLXdyYXBwZXInO1xuaW1wb3J0IHR5cGUgeyBpbyB9IGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuXG4vKipcbiAqIFB1cnBvc2U6XG4gKiAtIGJhY2tlbmQtYnJvd3NlciBjb21tdW5pY2F0aW9uIGJldHdlZW4gMiBwcm9jZXNzZXMgaW4gZWxlY3Ryb24gbW9kZVxuICovXG5leHBvcnQgY2xhc3MgUmVhbHRpbWVTdHJhdGVneUlwYyBleHRlbmRzIFJlYWx0aW1lU3RyYXRlZ3kge1xuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnaXBjJztcbiAgfVxuICBlc3RhYmxpc2hDb25uZWN0aW9uKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY3R4OiBFbmRwb2ludENvbnRleHQpIHtcbiAgICBzdXBlcihjdHgpO1xuICB9XG5cbiAgY29udGV4dHNTZXJ2ZXJzOiB7IFtjb250ZXh0TmFtZTogc3RyaW5nXTogU2VydmVyIH0gPSB7fTtcbiAgY29udGV4dHNJTzogeyBbY29udGV4dE5hbWU6IHN0cmluZ106IHR5cGVvZiBpbyB9ID0ge307XG5cbiAgZ2V0IGlvKCkge1xuXG4gICAgcmV0dXJuICgoX18sIHsgcGF0aDogbmFtZXNwYWNlUGF0aCB9KSA9PiB7XG4gICAgICBpZiAodGhpcy5jb250ZXh0c0lPW25hbWVzcGFjZVBhdGhdKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHRzSU9bbmFtZXNwYWNlUGF0aF07XG4gICAgICB9XG4gICAgICBjb25zdCB3cmFwID0gbmV3IElwY1JlbmRlcmVyV3JhcHBlcih0aGlzLmN0eC5jb250ZXh0TmFtZSk7XG5cbiAgICAgIGNvbnN0IG5zcCA9IHdyYXAub2YobmFtZXNwYWNlUGF0aCk7XG4gICAgICB0aGlzLmNvbnRleHRzSU9bbmFtZXNwYWNlUGF0aF0gPSBuc3AgYXMgYW55O1xuICAgICAgcmV0dXJuIG5zcDtcbiAgICB9KSBhcyBhbnk7XG5cbiAgICByZXR1cm4gdm9pZCAwO1xuICB9XG4gIGdldCBTZXJ2ZXIoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxufVxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dGFvbiBsaWIvcmVhbHRpbWUvcmVhbHRpbWUtc3RyYXRlZ3kvcmVhbHRpbWUtc3RyYXRlZ3ktaXBjLnRzIl19
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbHRpbWUtc3RyYXRlZ3ktaXBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdGFvbi9wcm9qZWN0cy90YW9uL3NyYy9saWIvcmVhbHRpbWUvcmVhbHRpbWUtc3RyYXRlZ3kvcmVhbHRpbWUtc3RyYXRlZ3ktaXBjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBWXZELE1BQU0sT0FBTyxhQUFhO2FBQ2pCLHdCQUFtQixHQUFHLElBQUksR0FBRyxFQUF5QixBQUFuQyxDQUFvQztJQUU5RCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQW1CO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDeEQsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FDbkMsV0FBVyxFQUNYLElBQUksYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUMvQixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBS0QsWUFBbUIsV0FBbUI7UUFBbkIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFIdEMscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7UUFJckQsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUlELEVBQUUsQ0FBQyxTQUFpQjtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQ3ZCLFNBQVMsRUFDVCxJQUFJLGdCQUFnQixDQUFD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LEVBQUU7WUFDakIsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUM7WUFDbkMsT0FBTyxJQUFJLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUM7UUFDRixPQUFPLFFBQWUsQ0FBQztJQUN6QixDQUFDO0NBRUY7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHlGQUF5RiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IFNlcnZlciwgU2VydmVyT3B0aW9ucyB9IGZyb20gJ3NvY2tldC5pbyc7XG5pbXBvcnQgeyBFbmRwb2ludENvbnRleHQgfSBmcm9tICcuLi8uLi9lbmRwb2ludC1jb250ZXh0JztcbmltcG9ydCB7IFJlYWx0aW1lU3RyYXRlZ3kgfSBmcm9tICcuL3JlYWx0aW1lLXN0cmF0ZWd5JztcbmltcG9ydCB0eXBlIHsgaW8sIE1hbmFnZXJPcHRpb25zLCBTb2NrZXRPcHRpb25zIH0gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XG5pbXBvcnQgdHlwZSB7IGlwY1JlbmRlcmVyIH0gZnJvbSAnZWxlY3Ryb24nO1xuaW1wb3J0IHsgU3ltYm9scyB9IGZyb20gJy4uLy4uL3N5bWJvbHMnO1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbmltcG9ydCB7IFJlYWx0aW1lTW9kZWxzIH0gZnJvbSAnLi4vcmVhbHRpbWUubW9kZWxzJztcblxuXG5cbmV4cG9ydCBjbGFzcyBNb2NrU2VydmVySXBjIHtcbiAgc3RhdGljIHNlcnZlckJ5Q29udGV4dE5hbWUgPSBuZXcgTWFwPHN0cmluZywgTW9ja1NlcnZlcklwYz4oKTtcblxuICBzdGF0aWMgZnJvbShjb250ZXh0TmFtZTogc3RyaW5nKTogTW9ja1NlcnZlcklwYyB7XG4gICAgaWYgKCFNb2NrU2VydmVySXBjLnNlcnZlckJ5Q29udGV4dE5hbWUuaGFzKGNvbnRleHROYW1lKSkge1xuICAgICAgTW9ja1NlcnZlcklwYy5zZXJ2ZXJCeUNvbnRleHROYW1lLnNldChcbiAgICAgICAgY29udGV4dE5hbWUsXG4gICAgICAgIG5ldyBNb2NrU2VydmVySXBjKGNvbnRleHROYW1lKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBNb2NrU2VydmVySXBjLnNlcnZlckJ5Q29udGV4dE5hbWUuZ2V0KGNvbnRleHROYW1lKTtcbiAgfVxuXG4gIG5hbWVzcGFjZXNCeU5hbWUgPSBuZXcgTWFwPHN0cmluZywgTW9ja05hbWVzcGFjZUlwYz4oKTtcblxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjb250ZXh0TmFtZTogc3RyaW5nKSB7XG4gICAgTW9ja1NlcnZlcklwYy5zZXJ2ZXJCeUNvbnRleHROYW1lLnNldChjb250ZXh0TmFtZSwgdGhpcyk7XG4gIH1cblxuXG5cbiAgb2YobmFtZXNwYWNlOiBzdHJpbmcpOiBNb2NrTmFtZXNwYWNlSXBjIHtcbiAgICBpZiAoIXRoaXMubmFtZXNwYWNlc0J5TmFtZS5oYXMobmFtZXNwYWNlKSkge1xuICAgICAgdGhpcy5uYW1lc3BhY2VzQnlOYW1lLnNldChcbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgICBuZXcgTW9ja05hbWVzcGFjZUlwYyhuYW1lc3BhY2UsIHRoaXMpLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMubmFtZXNwYWNlc0J5TmFtZS5nZXQobmFtZXNwYWNlKTtcbiAgfVxuXG59XG5cblxuXG5leHBvcnQgY2xhc3MgTW9ja05hbWVzcGFjZUlwYyB7XG5cbiAgZWxlY3Ryb25DbGllbnRzID0gbmV3IFNldDxFbGVjdHJvbi5XZWJDb250ZW50cz4oKTtcbiAgcm9vbXNCeVJvb21OYW1lOiB7XG4gICAgW3Jvb21OYW1lOiBzdHJpbmddOiBTZXQ8RWxlY3Ryb24uV2ViQ29udGVudHM+O1xuICB9ID0ge307XG5cbiAgcHJpdmF0ZSBuYW1lc3BhY2VFdmVudEhhbmRsZXJzOiB7XG4gICAgW2V2ZW50TmFtZTogc3RyaW5nXTogU2V0PFJlYWx0aW1lTW9kZWxzLkV2ZW50SGFuZGxlcj47XG4gIH0gPSB7fTtcblxuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogTmFtZXNwYWNlIG5hbWVcbiAgICAgKi9cbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyBzZXJ2ZXI6IE1vY2tTZXJ2ZXJJcGMsXG4gICkge31cblxuXG5cbiAgb24oZXZlbnROYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiBSZWFsdGltZU1vZGVscy5FdmVudEhhbmRsZXIpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBvZmYoZXZlbnQ6IHN0cmluZywgY2FsbGJhY2s/OiBSZWFsdGltZU1vZGVscy5FdmVudEhhbmRsZXIpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZW1pdChldmVudE5hbWU6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgdG8ocm9vbU5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGVsZWN0cm9uQ2xpZW50c0lucm9vbSA9IHRoaXMucm9vbXNCeVJvb21OYW1lW3Jvb21OYW1lXTtcbiAgICByZXR1cm4gbmV3IFJvb21FbWl0dGVySXBjKGVsZWN0cm9uQ2xpZW50c0lucm9vbSwgdGhpcy5uYW1lLCB0cnVlKTtcbiAgfVxuXG5cblxuICBpbihyb29tTmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgZWxlY3Ryb25DbGllbnRzSW5yb29tID0gdGhpcy5yb29tc0J5Um9vbU5hbWVbcm9vbU5hbWVdO1xuICAgIHJldHVybiBuZXcgUm9vbUVtaXR0ZXJJcGMoZWxlY3Ryb25DbGllbnRzSW5yb29tLCB0aGlzLm5hbWUsIGZhbHNlKTtcbiAgfVxuXG5cblxuICBqb2luKHdlYkNvbnRlbnRzOiBFbGVjdHJvbi5XZWJDb250ZW50cywgcm9vbU5hbWU6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5yb29tc0J5Um9vbU5hbWVbcm9vbU5hbWVdKSB7XG4gICAgICB0aGlzLnJvb21zQnlSb29tTmFtZVtyb29tTmFtZV0gPSBuZXcgU2V0KCk7XG4gICAgfVxuICAgIHRoaXMucm9vbXNCeVJvb21OYW1lW3Jvb21OYW1lXS5hZGQod2ViQ29udGVudHMpO1xuICB9XG5cblxuXG4gIGxlYXZlKHdlYkNvbnRlbnRzOiBFbGVjdHJvbi5XZWJDb250ZW50cywgcm9vbU5hbWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnJvb21zQnlSb29tTmFtZVtyb29tTmFtZV0pIHtcbiAgICAgIHRoaXMucm9vbXNCeVJvb21OYW1lW3Jvb21OYW1lXS5kZWxldGUod2ViQ29udGVudHMpO1xuICAgICAgaWYgKHRoaXMucm9vbXNCeVJvb21OYW1lW3Jvb21OYW1lXS5zaXplID09PSAwKSB7XG4gICAgICAgIGRlbGV0ZSB0aGlzLnJvb21zQnlSb29tTmFtZVtyb29tTmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG5cblxuXG4gIHBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG5cblxuICBnZXQgbnNwKCkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiB7XG4gICAgICBnZXQgbmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHNlbGYubmFtZTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG59XG5cblxuXG5cbmNsYXNzIFJvb21FbWl0dGVySXBjIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZWN0cm9uQ2xpZW50czogU2V0PEVsZWN0cm9uLldlYkNvbnRlbnRzPixcbiAgICAvKipcbiAgICAgKiBuYW1lc3BhY2UgbmFtZVxuICAgICAqL1xuICAgIHByaXZhdGUgbmFtZTogc3RyaW5nLFxuICAgIHByaXZhdGUgaW5jbHVkZVNlbmRlcjogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHByaXZhdGUgc2VuZGVyOiBNb2NrU29ja2V0SXBjID0gbnVsbCwgLy8gVE9ETyBRVUlDSyBGSVggaG93IHRvIGluY2x1ZGUgc2VuZGVyXG4gICkge31cblxuXG5cbiAgZW1pdChldmVudE5hbWU6IHN0cmluZywgLi4uYXJnczogYW55W10pOiB2b2lkIHtcbiAgICBjb25zdCBlbWl0RXZlbnQgPSBgKCR7dGhpcy5uYW1lfSkgXCIke2V2ZW50TmFtZX1cImA7XG4gICAgdGhpcy5lbGVjdHJvbkNsaWVudHM/LmZvckVhY2god2ViQ29udGVudHMgPT4ge1xuICAgICAgd2ViQ29udGVudHMuc2VuZChlbWl0RXZlbnQsIC4uLmFyZ3MpO1xuICAgIH0pO1xuICB9XG5cbn1cblxuXG5cbmV4cG9ydCBjbGFzcyBNb2NrU29ja2V0SXBjIHtcblxuXG5cbiAgaXBjUmVuZGVyZXIhOiB0eXBlb2YgaXBjUmVuZGVyZXI7XG5cblxuXG4gIHByaXZhdGUgc29ja2V0RXZlbnRIYW5kbGVycyA9IHt9IGFzIHtcbiAgICBbZXZlbnROYW1lOiBzdHJpbmddOiBTZXQ8UmVhbHRpbWVNb2RlbHMuRXZlbnRIYW5kbGVyPjtcbiAgfTtcblxuXG5cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZXNwYWNlTmFtZTtcbiAgfVxuXG5cblxuXG5cbiAgLyoqXG4gICAqIEBwYXJhbSBuYW1lc3BhY2VOYW1lIGluc3RlYWQgdXJsIGZvciBpcGNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBuYW1lc3BhY2VOYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlwY1JlbmRlcmVyID0gKHdpbmRvdyBhcyBhbnkpLnJlcXVpcmUoJ2VsZWN0cm9uJykuaXBjUmVuZGVyZXI7XG4gIH1cblxuXG5cbiAgb24oZXZlbnROYW1lOiBzdHJpbmcsIGNhbGxiYWNrOiAoZXZlbnQ6IGFueSwgLi4uYXJnczogYW55W10pID0+IHZvaWQpIHtcbiAgICBpZiAoIXRoaXMuc29ja2V0RXZlbnRIYW5kbGVyc1tldmVudE5hbWVdKSB7XG4gICAgICB0aGlzLnNvY2tldEV2ZW50SGFuZGxlcnNbZXZlbnROYW1lXSA9IG5ldyBTZXQoKTtcbiAgICB9XG4gICAgdGhpcy5zb2NrZXRFdmVudEhhbmRsZXJzW2V2ZW50TmFtZV0uYWRkKGNhbGxiYWNrKTtcblxuICAgIGNvbnN0IGxpc3RlblRvRXZlbnQgPSBgKCR7dGhpcy5uYW1lfSkgXCIke2V2ZW50TmFtZX1cImA7XG4gICAgdGhpcy5pcGNSZW5kZXJlci5vbihsaXN0ZW5Ub0V2ZW50LCAocmVuZGVyZUV2ZW50LCBkYXRhKSA9PiB7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcblxuICAgIGlmIChldmVudE5hbWUgPT09ICdjb25uZWN0Jykge1xuICAgICAgY29uc3QgY29ubmVjdGlvbkV2ZW50S2V5ID0gYCgke3RoaXMubmFtZX0pIFwiY29ubmVjdGlvblwiYDtcbiAgICAgIHRoaXMuaXBjUmVuZGVyZXIuc2VuZChjb25uZWN0aW9uRXZlbnRLZXksIHRoaXMubmFtZSk7XG4gICAgfVxuICB9XG5cblxuXG4gIG9mZihldmVudDogc3RyaW5nLCBjYWxsYmFjaz86IChldmVudDogYW55LCAuLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCkge1xuICAgIGlmICghdGhpcy5zb2NrZXRFdmVudEhhbmRsZXJzW2V2ZW50XSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgdGhpcy5zb2NrZXRFdmVudEhhbmRsZXJzW2V2ZW50XS5kZWxldGUoY2FsbGJhY2spO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxldGUgdGhpcy5zb2NrZXRFdmVudEhhbmRsZXJzW2V2ZW50XTtcbiAgICB9XG4gICAgY29uc3QgcmVtb3ZlTGlzdGVuZXIgPSBgKCR7dGhpcy5uYW1lfSkgXCIke2V2ZW50fVwiYDtcblxuICAgIHRoaXMuaXBjUmVuZGVyZXIucmVtb3ZlTGlzdGVuZXIocmVtb3ZlTGlzdGVuZXIsIGRhdGEgPT4ge1xuICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuXG5cbiAgZW1pdChldmVudDogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuICAgIGNvbnN0IGVtaXRFdmVudCA9IGAoJHt0aGlzLm5hbWV9KSBcIiR7ZXZlbnR9XCJgO1xuICAgIHRoaXMuaXBjUmVuZGVyZXIuc2VuZChlbWl0RXZlbnQsIC4uLmFyZ3MpO1xuICB9XG5cbn1cblxuXG4vKipcbiAqIFB1cnBvc2U6XG4gKiAtIGJhY2tlbmQtYnJvd3NlciBjb21tdW5pY2F0aW9uIGJldHdlZW4gMiBwcm9jZXNzZXMgaW4gZWxlY3Ryb24gbW9kZVxuICovXG5leHBvcnQgY2xhc3MgUmVhbHRpbWVTdHJhdGVneUlwYyBleHRlbmRzIFJlYWx0aW1lU3RyYXRlZ3kge1xuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdpcGMnO1xuICB9XG5cblxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjdHg6IEVuZHBvaW50Q29udGV4dCkge1xuICAgIHN1cGVyKGN0eCk7XG4gIH1cblxuXG5cbiAgaW9TZXJ2ZXIoX186IHN0cmluZywgb3B0OiBTZXJ2ZXJPcHRpb25zKSB7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gb3B0Py5wYXRoIHx8ICcvJztcbiAgICBjb25zdCBzZXJ2ZXIgPSBNb2NrU2VydmVySXBjLmZyb20odGhpcy5jdHguY29udGV4dE5hbWUpO1xuICAgIHJldHVybiBzZXJ2ZXIub2YobmFtZXNwYWNlKSBhcyBhbnk7XG4gIH1cblxuICBnZXQgaW9DbGllbnQoKSB7XG4gICAgY29uc3QgY2xpZW50SW8gPSAoXG4gICAgICBfXzogc3RyaW5nLFxuICAgICAgb3B0PzogUGFydGlhbDxNYW5hZ2VyT3B0aW9ucyAmIFNvY2tldE9wdGlvbnM+LFxuICAgICk6IE1vY2tTb2NrZXRJcGMgPT4ge1xuICAgICAgY29uc3QgbmFtZXNwYWNlID0gb3B0Py5wYXRoIHx8ICcvJztcbiAgICAgIHJldHVybiBuZXcgTW9ja1NvY2tldElwYyhuYW1lc3BhY2UpO1xuICAgIH07XG4gICAgcmV0dXJuIGNsaWVudElvIGFzIGFueTtcbiAgfVxuXG59XG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10YW9uIGxpYi9yZWFsdGltZS9yZWFsdGltZS1zdHJhdGVneS9yZWFsdGltZS1zdHJhdGVneS1pcGMudHMiXX0=