sonamu 0.10.11 → 0.10.13

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/dist/ai/agents/agent.d.ts +1 -1
  2. package/dist/ai/agents/agent.d.ts.map +1 -1
  3. package/dist/ai/agents/agent.js +5 -6
  4. package/dist/ai/agents/types.d.ts +1 -1
  5. package/dist/ai/agents/types.d.ts.map +1 -1
  6. package/dist/ai/providers/rtzr/api.js +18 -18
  7. package/dist/ai/providers/rtzr/error.d.ts.map +1 -1
  8. package/dist/ai/providers/rtzr/error.js +17 -15
  9. package/dist/ai/providers/rtzr/model.d.ts.map +1 -1
  10. package/dist/ai/providers/rtzr/model.js +3 -2
  11. package/dist/ai/providers/rtzr/options.d.ts.map +1 -1
  12. package/dist/ai/providers/rtzr/options.js +16 -16
  13. package/dist/ai/providers/rtzr/provider.d.ts.map +1 -1
  14. package/dist/ai/providers/rtzr/provider.js +9 -9
  15. package/dist/ai/providers/rtzr/utils.d.ts.map +1 -1
  16. package/dist/ai/providers/rtzr/utils.js +1 -1
  17. package/dist/api/caster.d.ts.map +1 -1
  18. package/dist/api/caster.js +17 -17
  19. package/dist/api/code-converters.d.ts +4 -2
  20. package/dist/api/code-converters.d.ts.map +1 -1
  21. package/dist/api/code-converters.js +100 -19
  22. package/dist/api/config.d.ts +16 -1
  23. package/dist/api/config.d.ts.map +1 -1
  24. package/dist/api/config.js +28 -21
  25. package/dist/api/context.d.ts +2 -2
  26. package/dist/api/context.d.ts.map +1 -1
  27. package/dist/api/context.js +1 -1
  28. package/dist/api/decorators.d.ts.map +1 -1
  29. package/dist/api/decorators.js +18 -11
  30. package/dist/api/http-validator.d.ts +36 -0
  31. package/dist/api/http-validator.d.ts.map +1 -0
  32. package/dist/api/http-validator.js +72 -0
  33. package/dist/api/index.js +6 -4
  34. package/dist/api/sonamu.d.ts +59 -20
  35. package/dist/api/sonamu.d.ts.map +1 -1
  36. package/dist/api/sonamu.js +250 -106
  37. package/dist/api/websocket-helpers.d.ts +7 -5
  38. package/dist/api/websocket-helpers.d.ts.map +1 -1
  39. package/dist/api/websocket-helpers.js +6 -6
  40. package/dist/auth/audit-log/builders.d.ts.map +1 -1
  41. package/dist/auth/audit-log/builders.js +1 -1
  42. package/dist/auth/audit-log/client-ip.d.ts +1 -1
  43. package/dist/auth/audit-log/client-ip.d.ts.map +1 -1
  44. package/dist/auth/audit-log/client-ip.js +4 -2
  45. package/dist/auth/audit-log/events.d.ts +5 -1
  46. package/dist/auth/audit-log/events.d.ts.map +1 -1
  47. package/dist/auth/audit-log/events.js +1 -1
  48. package/dist/auth/audit-log/plugin.d.ts +0 -8
  49. package/dist/auth/audit-log/plugin.d.ts.map +1 -1
  50. package/dist/auth/audit-log/plugin.js +48 -52
  51. package/dist/auth/audit-log-ingestor.d.ts.map +1 -1
  52. package/dist/auth/audit-log-ingestor.js +16 -12
  53. package/dist/auth/auth-generator.d.ts.map +1 -1
  54. package/dist/auth/auth-generator.js +1 -1
  55. package/dist/auth/better-auth-request.d.ts.map +1 -1
  56. package/dist/auth/better-auth-request.js +6 -5
  57. package/dist/auth/knex-adapter.js +1 -1
  58. package/dist/auth/plugins/entity-definitions/index.d.ts +13 -1
  59. package/dist/auth/plugins/entity-definitions/index.d.ts.map +1 -1
  60. package/dist/auth/plugins/entity-definitions/index.js +1 -1
  61. package/dist/auth/plugins/wrappers/admin.d.ts +1 -1
  62. package/dist/bin/build-config.d.ts +25 -0
  63. package/dist/bin/build-config.d.ts.map +1 -1
  64. package/dist/bin/build-config.js +105 -2
  65. package/dist/bin/cli.js +133 -29
  66. package/dist/bin/compiler-policy.d.ts +3 -0
  67. package/dist/bin/compiler-policy.d.ts.map +1 -0
  68. package/dist/bin/compiler-policy.js +24 -0
  69. package/dist/bin/fixture.d.ts.map +1 -1
  70. package/dist/bin/fixture.js +5 -3
  71. package/dist/bin/test-command.d.ts +22 -1
  72. package/dist/bin/test-command.d.ts.map +1 -1
  73. package/dist/bin/test-command.js +18 -10
  74. package/dist/bin/ts-loader-registration.d.ts +7 -1
  75. package/dist/bin/ts-loader-registration.d.ts.map +1 -1
  76. package/dist/bin/ts-loader-registration.js +13 -4
  77. package/dist/cache/decorator.d.ts.map +1 -1
  78. package/dist/cache/decorator.js +11 -4
  79. package/dist/compress/compress.d.ts.map +1 -1
  80. package/dist/compress/compress.js +1 -1
  81. package/dist/cone/cone-generator.d.ts +14 -1
  82. package/dist/cone/cone-generator.d.ts.map +1 -1
  83. package/dist/cone/cone-generator.js +13 -9
  84. package/dist/database/_batch_update.js +1 -1
  85. package/dist/database/base-model.d.ts +22 -10
  86. package/dist/database/base-model.d.ts.map +1 -1
  87. package/dist/database/base-model.js +26 -16
  88. package/dist/database/base-model.types.d.ts +15 -3
  89. package/dist/database/base-model.types.d.ts.map +1 -1
  90. package/dist/database/db.d.ts +12 -2
  91. package/dist/database/db.d.ts.map +1 -1
  92. package/dist/database/db.js +10 -7
  93. package/dist/database/knex.d.ts.map +1 -1
  94. package/dist/database/knex.js +17 -14
  95. package/dist/database/puri.d.ts +11 -9
  96. package/dist/database/puri.d.ts.map +1 -1
  97. package/dist/database/puri.js +93 -79
  98. package/dist/database/puri.types.d.ts +21 -21
  99. package/dist/database/puri.types.d.ts.map +1 -1
  100. package/dist/database/puri.types.js +1 -1
  101. package/dist/database/upsert-builder.d.ts +12 -10
  102. package/dist/database/upsert-builder.d.ts.map +1 -1
  103. package/dist/database/upsert-builder.js +20 -12
  104. package/dist/dict/sd.d.ts.map +1 -1
  105. package/dist/dict/sd.js +1 -1
  106. package/dist/dict/sonamu-dictionary.d.ts.map +1 -1
  107. package/dist/dict/sonamu-dictionary.js +1 -1
  108. package/dist/dict/utils.d.ts.map +1 -1
  109. package/dist/dict/utils.js +7 -2
  110. package/dist/entity/entity-manager.d.ts +13 -4
  111. package/dist/entity/entity-manager.d.ts.map +1 -1
  112. package/dist/entity/entity-manager.js +19 -11
  113. package/dist/entity/entity-template-cone.d.ts +73 -5
  114. package/dist/entity/entity-template-cone.d.ts.map +1 -1
  115. package/dist/entity/entity-template-cone.js +4 -2
  116. package/dist/entity/entity.d.ts +6 -2
  117. package/dist/entity/entity.d.ts.map +1 -1
  118. package/dist/entity/entity.js +30 -28
  119. package/dist/env.d.ts +3 -1
  120. package/dist/env.d.ts.map +1 -1
  121. package/dist/env.js +1 -1
  122. package/dist/exceptions/error-handler.d.ts.map +1 -1
  123. package/dist/exceptions/error-handler.js +7 -2
  124. package/dist/exceptions/so-exceptions.d.ts +24 -20
  125. package/dist/exceptions/so-exceptions.d.ts.map +1 -1
  126. package/dist/exceptions/so-exceptions.js +4 -2
  127. package/dist/filter/utils.d.ts +7 -2
  128. package/dist/filter/utils.d.ts.map +1 -1
  129. package/dist/filter/utils.js +8 -6
  130. package/dist/index.d.ts +3 -0
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +13 -7
  133. package/dist/logger/configure.d.ts.map +1 -1
  134. package/dist/logger/configure.js +10 -10
  135. package/dist/migration/code-generation.d.ts.map +1 -1
  136. package/dist/migration/code-generation.js +50 -46
  137. package/dist/migration/index-where-predicate.d.ts.map +1 -1
  138. package/dist/migration/index-where-predicate.js +22 -8
  139. package/dist/migration/migration-set.d.ts.map +1 -1
  140. package/dist/migration/migration-set.js +1 -1
  141. package/dist/migration/migrator.d.ts +61 -36
  142. package/dist/migration/migrator.d.ts.map +1 -1
  143. package/dist/migration/migrator.js +276 -167
  144. package/dist/migration/postgresql-schema-reader.d.ts.map +1 -1
  145. package/dist/migration/postgresql-schema-reader.js +51 -36
  146. package/dist/migration/slack-confirm.d.ts.map +1 -1
  147. package/dist/migration/slack-confirm.js +1 -1
  148. package/dist/migration/types.d.ts +54 -0
  149. package/dist/migration/types.d.ts.map +1 -1
  150. package/dist/naite/naite-reporter.js +2 -2
  151. package/dist/naite/naite.d.ts +74 -15
  152. package/dist/naite/naite.d.ts.map +1 -1
  153. package/dist/naite/naite.js +5 -19
  154. package/dist/runtime-type.d.ts +6 -0
  155. package/dist/runtime-type.d.ts.map +1 -0
  156. package/dist/runtime-type.js +26 -0
  157. package/dist/ssr/hmr-opt-out.d.ts +26 -0
  158. package/dist/ssr/hmr-opt-out.d.ts.map +1 -0
  159. package/dist/ssr/hmr-opt-out.js +59 -0
  160. package/dist/ssr/renderer.d.ts.map +1 -1
  161. package/dist/ssr/renderer.js +4 -1
  162. package/dist/storage/base-file.js +14 -14
  163. package/dist/storage/buffered-file.d.ts +2 -2
  164. package/dist/storage/buffered-file.d.ts.map +1 -1
  165. package/dist/storage/buffered-file.js +12 -12
  166. package/dist/storage/s3-driver.d.ts.map +1 -1
  167. package/dist/storage/s3-driver.js +1 -1
  168. package/dist/storage/uploaded-file.d.ts +2 -2
  169. package/dist/storage/uploaded-file.d.ts.map +1 -1
  170. package/dist/storage/uploaded-file.js +8 -8
  171. package/dist/stream/sse.js +11 -11
  172. package/dist/stream/ws-core.d.ts +1 -1
  173. package/dist/stream/ws-core.d.ts.map +1 -1
  174. package/dist/stream/ws-delivery.d.ts +1 -1
  175. package/dist/stream/ws-delivery.d.ts.map +1 -1
  176. package/dist/stream/ws-delivery.js +6 -4
  177. package/dist/stream/ws-local-connection-store.d.ts.map +1 -1
  178. package/dist/stream/ws-local-connection-store.js +4 -2
  179. package/dist/stream/ws-presence-store.js +1 -1
  180. package/dist/stream/ws-registry.d.ts +4 -4
  181. package/dist/stream/ws-registry.d.ts.map +1 -1
  182. package/dist/stream/ws-registry.js +4 -2
  183. package/dist/stream/ws-telemetry.d.ts +16 -12
  184. package/dist/stream/ws-telemetry.d.ts.map +1 -1
  185. package/dist/stream/ws-telemetry.js +22 -18
  186. package/dist/stream/ws.d.ts +18 -12
  187. package/dist/stream/ws.d.ts.map +1 -1
  188. package/dist/stream/ws.js +26 -22
  189. package/dist/syncer/api-parser.js +1 -1
  190. package/dist/syncer/checksum.d.ts.map +1 -1
  191. package/dist/syncer/checksum.js +7 -8
  192. package/dist/syncer/code-generator.d.ts.map +1 -1
  193. package/dist/syncer/code-generator.js +13 -14
  194. package/dist/syncer/entity-operations.d.ts.map +1 -1
  195. package/dist/syncer/entity-operations.js +5 -6
  196. package/dist/syncer/file-copy.d.ts +5 -0
  197. package/dist/syncer/file-copy.d.ts.map +1 -0
  198. package/dist/syncer/file-copy.js +36 -0
  199. package/dist/syncer/file-patterns.d.ts +1 -0
  200. package/dist/syncer/file-patterns.d.ts.map +1 -1
  201. package/dist/syncer/file-patterns.js +5 -2
  202. package/dist/syncer/file-tracking.d.ts.map +1 -1
  203. package/dist/syncer/file-tracking.js +5 -4
  204. package/dist/syncer/filesystem-dependencies.d.ts +15 -0
  205. package/dist/syncer/filesystem-dependencies.d.ts.map +1 -0
  206. package/dist/syncer/filesystem-dependencies.js +53 -0
  207. package/dist/syncer/module-loader.d.ts +1 -1
  208. package/dist/syncer/module-loader.d.ts.map +1 -1
  209. package/dist/syncer/module-loader.js +6 -4
  210. package/dist/syncer/syncer-actions.d.ts +4 -0
  211. package/dist/syncer/syncer-actions.d.ts.map +1 -1
  212. package/dist/syncer/syncer-actions.js +34 -17
  213. package/dist/syncer/syncer.d.ts +17 -6
  214. package/dist/syncer/syncer.d.ts.map +1 -1
  215. package/dist/syncer/syncer.js +71 -29
  216. package/dist/syncer/watcher.d.ts.map +1 -1
  217. package/dist/syncer/watcher.js +3 -3
  218. package/dist/tasks/decorator.d.ts +6 -6
  219. package/dist/tasks/decorator.d.ts.map +1 -1
  220. package/dist/tasks/decorator.js +4 -4
  221. package/dist/tasks/step-wrapper.d.ts +6 -4
  222. package/dist/tasks/step-wrapper.d.ts.map +1 -1
  223. package/dist/tasks/step-wrapper.js +5 -5
  224. package/dist/tasks/workflow-manager.d.ts.map +1 -1
  225. package/dist/tasks/workflow-manager.js +13 -7
  226. package/dist/template/entity-converter.d.ts +1 -1
  227. package/dist/template/entity-converter.d.ts.map +1 -1
  228. package/dist/template/entity-converter.js +2 -2
  229. package/dist/template/helpers.d.ts +8 -6
  230. package/dist/template/helpers.d.ts.map +1 -1
  231. package/dist/template/helpers.js +1 -1
  232. package/dist/template/implementations/generated.template.d.ts.map +1 -1
  233. package/dist/template/implementations/generated.template.js +4 -4
  234. package/dist/template/implementations/generated_http.template.d.ts +7 -4
  235. package/dist/template/implementations/generated_http.template.d.ts.map +1 -1
  236. package/dist/template/implementations/generated_http.template.js +21 -21
  237. package/dist/template/implementations/generated_sso.template.d.ts.map +1 -1
  238. package/dist/template/implementations/generated_sso.template.js +6 -3
  239. package/dist/template/implementations/http_validators.template.d.ts +18 -0
  240. package/dist/template/implementations/http_validators.template.d.ts.map +1 -0
  241. package/dist/template/implementations/http_validators.template.js +127 -0
  242. package/dist/template/implementations/model.template.d.ts.map +1 -1
  243. package/dist/template/implementations/model.template.js +1 -1
  244. package/dist/template/implementations/queries.template.js +1 -1
  245. package/dist/template/implementations/sd.template.d.ts.map +1 -1
  246. package/dist/template/implementations/sd.template.js +79 -39
  247. package/dist/template/implementations/services.template.d.ts.map +1 -1
  248. package/dist/template/implementations/services.template.js +6 -4
  249. package/dist/template/implementations/view_form.template.d.ts +6 -1
  250. package/dist/template/implementations/view_form.template.d.ts.map +1 -1
  251. package/dist/template/implementations/view_form.template.js +23 -15
  252. package/dist/template/implementations/view_list.template.d.ts.map +1 -1
  253. package/dist/template/implementations/view_list.template.js +11 -6
  254. package/dist/template/template-manager.d.ts.map +1 -1
  255. package/dist/template/template-manager.js +9 -7
  256. package/dist/template/template-types.d.ts +12 -5
  257. package/dist/template/template-types.d.ts.map +1 -1
  258. package/dist/template/template-types.js +1 -1
  259. package/dist/template/template.d.ts +2 -2
  260. package/dist/template/template.d.ts.map +1 -1
  261. package/dist/template/template.js +6 -4
  262. package/dist/template/zod-converter.d.ts +0 -19
  263. package/dist/template/zod-converter.d.ts.map +1 -1
  264. package/dist/template/zod-converter.js +100 -84
  265. package/dist/testing/_relation-graph.d.ts.map +1 -1
  266. package/dist/testing/_relation-graph.js +2 -1
  267. package/dist/testing/bootstrap.d.ts.map +1 -1
  268. package/dist/testing/bootstrap.js +9 -6
  269. package/dist/testing/data-explorer.d.ts +32 -7
  270. package/dist/testing/data-explorer.d.ts.map +1 -1
  271. package/dist/testing/data-explorer.js +77 -31
  272. package/dist/testing/dev-test-routes.d.ts +8 -1
  273. package/dist/testing/dev-test-routes.d.ts.map +1 -1
  274. package/dist/testing/dev-test-routes.js +125 -108
  275. package/dist/testing/dev-vitest-manager.d.ts +54 -8
  276. package/dist/testing/dev-vitest-manager.d.ts.map +1 -1
  277. package/dist/testing/dev-vitest-manager.js +24 -9
  278. package/dist/testing/faker-mappings.d.ts +412 -1
  279. package/dist/testing/faker-mappings.d.ts.map +1 -1
  280. package/dist/testing/faker-mappings.js +1 -1
  281. package/dist/testing/filesystem.d.ts +2 -0
  282. package/dist/testing/filesystem.d.ts.map +1 -0
  283. package/dist/testing/filesystem.js +7 -0
  284. package/dist/testing/fixture-generator.d.ts +25 -8
  285. package/dist/testing/fixture-generator.d.ts.map +1 -1
  286. package/dist/testing/fixture-generator.js +132 -73
  287. package/dist/testing/fixture-loader.d.ts +3 -1
  288. package/dist/testing/fixture-loader.d.ts.map +1 -1
  289. package/dist/testing/fixture-loader.js +1 -20
  290. package/dist/testing/fixture-manager.d.ts +8 -7
  291. package/dist/testing/fixture-manager.d.ts.map +1 -1
  292. package/dist/testing/fixture-manager.js +91 -59
  293. package/dist/testing/global-setup.d.ts.map +1 -1
  294. package/dist/testing/global-setup.js +5 -2
  295. package/dist/testing/index.d.ts +2 -0
  296. package/dist/testing/index.d.ts.map +1 -1
  297. package/dist/testing/index.js +6 -3
  298. package/dist/types/types.d.ts +101 -99
  299. package/dist/types/types.d.ts.map +1 -1
  300. package/dist/types/types.js +234 -225
  301. package/dist/ui/ai-api.d.ts.map +1 -1
  302. package/dist/ui/ai-api.js +1 -1
  303. package/dist/ui/ai-client.d.ts.map +1 -1
  304. package/dist/ui/ai-client.js +28 -18
  305. package/dist/ui/api.d.ts.map +1 -1
  306. package/dist/ui/api.js +146 -210
  307. package/dist/ui/async-route.d.ts +3 -0
  308. package/dist/ui/async-route.d.ts.map +1 -0
  309. package/dist/ui/async-route.js +12 -0
  310. package/dist/ui/cdd-service.d.ts +9 -7
  311. package/dist/ui/cdd-service.d.ts.map +1 -1
  312. package/dist/ui/cdd-service.js +7 -5
  313. package/dist/ui/migrations-api.d.ts +3 -0
  314. package/dist/ui/migrations-api.d.ts.map +1 -0
  315. package/dist/ui/migrations-api.js +215 -0
  316. package/dist/ui-web/assets/index-D3QNH-Dv.css +1 -0
  317. package/dist/ui-web/assets/index-DV1AAq6W.js +178 -0
  318. package/dist/ui-web/index.html +2 -2
  319. package/dist/utils/formatter.d.ts.map +1 -1
  320. package/dist/utils/formatter.js +7 -5
  321. package/dist/utils/fs-utils.d.ts +3 -3
  322. package/dist/utils/fs-utils.d.ts.map +1 -1
  323. package/dist/utils/fs-utils.js +6 -6
  324. package/dist/utils/model.d.ts +3 -5
  325. package/dist/utils/model.d.ts.map +1 -1
  326. package/dist/utils/model.js +1 -1
  327. package/dist/utils/object-utils.d.ts +1 -1
  328. package/dist/utils/object-utils.d.ts.map +1 -1
  329. package/dist/utils/object-utils.js +17 -16
  330. package/dist/utils/process-utils.d.ts.map +1 -1
  331. package/dist/utils/process-utils.js +4 -2
  332. package/dist/utils/runtime-value.d.ts +13 -0
  333. package/dist/utils/runtime-value.d.ts.map +1 -0
  334. package/dist/utils/runtime-value.js +40 -0
  335. package/dist/utils/sql-parser.d.ts +8 -1
  336. package/dist/utils/sql-parser.d.ts.map +1 -1
  337. package/dist/utils/sql-parser.js +6 -3
  338. package/dist/utils/type-utils.d.ts.map +1 -1
  339. package/dist/utils/type-utils.js +10 -8
  340. package/dist/utils/utils.d.ts +2 -2
  341. package/dist/utils/utils.d.ts.map +1 -1
  342. package/dist/utils/utils.js +11 -8
  343. package/dist/utils/zod-error.d.ts.map +1 -1
  344. package/dist/utils/zod-error.js +7 -4
  345. package/dist/vector/chunking.d.ts.map +1 -1
  346. package/dist/vector/chunking.js +1 -1
  347. package/dist/vector/embedding.d.ts.map +1 -1
  348. package/dist/vector/embedding.js +1 -1
  349. package/dist/vector/types.d.ts +3 -2
  350. package/dist/vector/types.d.ts.map +1 -1
  351. package/package.json +11 -7
  352. package/src/ai/agents/agent.ts +5 -5
  353. package/src/ai/agents/types.ts +1 -1
  354. package/src/ai/providers/rtzr/__tests__/model.test.ts +2 -2
  355. package/src/ai/providers/rtzr/error.ts +5 -3
  356. package/src/ai/providers/rtzr/model.ts +3 -2
  357. package/src/ai/providers/rtzr/options.ts +10 -5
  358. package/src/ai/providers/rtzr/provider.ts +10 -10
  359. package/src/ai/providers/rtzr/utils.ts +3 -1
  360. package/src/api/__tests__/config.test.ts +11 -21
  361. package/src/api/__tests__/sonamu.http-validator.test.ts +512 -0
  362. package/src/api/__tests__/sonamu.websocket.test.ts +51 -41
  363. package/src/api/__tests__/zod-compiler-policy.test.ts +95 -0
  364. package/src/api/caster.ts +6 -8
  365. package/src/api/code-converters.ts +136 -36
  366. package/src/api/config.ts +62 -4
  367. package/src/api/context.ts +3 -3
  368. package/src/api/decorators.ts +28 -17
  369. package/src/api/http-validator.ts +149 -0
  370. package/src/api/sonamu.ts +459 -152
  371. package/src/api/websocket-helpers.ts +24 -17
  372. package/src/auth/audit-log/builders.ts +3 -2
  373. package/src/auth/audit-log/client-ip.ts +4 -2
  374. package/src/auth/audit-log/events.ts +15 -1
  375. package/src/auth/audit-log/plugin.ts +129 -200
  376. package/src/auth/audit-log-ingestor.ts +19 -15
  377. package/src/auth/auth-generator.ts +10 -5
  378. package/src/auth/better-auth-request.ts +4 -3
  379. package/src/auth/knex-adapter.ts +8 -2
  380. package/src/auth/plugins/entity-definitions/index.ts +6 -5
  381. package/src/bin/__tests__/http-validator-benchmark.test.ts +94 -0
  382. package/src/bin/__tests__/test-command.test.ts +9 -15
  383. package/src/bin/__tests__/ts-loader-register.test.ts +15 -17
  384. package/src/bin/__tests__/zod-compiler-build.test.ts +307 -0
  385. package/src/bin/build-config.ts +167 -0
  386. package/src/bin/cli.ts +155 -38
  387. package/src/bin/compiler-policy.ts +35 -0
  388. package/src/bin/fixture.ts +14 -3
  389. package/src/bin/test-command.ts +74 -29
  390. package/src/bin/ts-loader-registration.ts +22 -4
  391. package/src/cache/decorator.ts +10 -3
  392. package/src/compress/compress.ts +17 -4
  393. package/src/cone/cone-generator.ts +34 -6
  394. package/src/database/__tests__/db.test.ts +1 -0
  395. package/src/database/__tests__/puri.test.ts +16 -15
  396. package/src/database/__tests__/transaction-scope.test.ts +5 -0
  397. package/src/database/_batch_update.ts +1 -0
  398. package/src/database/base-model.ts +81 -50
  399. package/src/database/base-model.types.ts +6 -6
  400. package/src/database/db.ts +29 -19
  401. package/src/database/knex.ts +30 -17
  402. package/src/database/puri-subset.test-d.ts +17 -0
  403. package/src/database/puri.ts +181 -143
  404. package/src/database/puri.types.test-d.ts +31 -1
  405. package/src/database/puri.types.ts +23 -21
  406. package/src/database/upsert-builder.ts +75 -53
  407. package/src/dict/sd.ts +15 -5
  408. package/src/dict/sonamu-dictionary.ts +6 -6
  409. package/src/dict/utils.ts +9 -1
  410. package/src/entity/entity-manager.ts +26 -9
  411. package/src/entity/entity-template-cone.ts +5 -10
  412. package/src/entity/entity.ts +50 -34
  413. package/src/env.ts +7 -3
  414. package/src/exceptions/error-handler.ts +17 -2
  415. package/src/exceptions/so-exceptions.ts +26 -20
  416. package/src/filter/utils.ts +21 -11
  417. package/src/index.ts +3 -0
  418. package/src/logger/configure.ts +26 -18
  419. package/src/migration/__tests__/migrator.test.ts +50 -57
  420. package/src/migration/code-generation.ts +132 -104
  421. package/src/migration/index-where-predicate.ts +51 -24
  422. package/src/migration/migration-set.ts +11 -5
  423. package/src/migration/migrator.ts +392 -244
  424. package/src/migration/postgresql-schema-reader.ts +52 -47
  425. package/src/migration/slack-confirm.ts +17 -15
  426. package/src/migration/types.ts +57 -0
  427. package/src/naite/naite-reporter.ts +1 -1
  428. package/src/naite/naite.ts +97 -24
  429. package/src/runtime-type.ts +34 -0
  430. package/src/ssr/hmr-opt-out.ts +78 -0
  431. package/src/ssr/renderer.ts +6 -0
  432. package/src/storage/base-file.ts +13 -13
  433. package/src/storage/buffered-file.ts +11 -11
  434. package/src/storage/s3-driver.ts +4 -1
  435. package/src/storage/uploaded-file.ts +8 -8
  436. package/src/stream/__tests__/ws-contracts.test.ts +4 -2
  437. package/src/stream/__tests__/ws-telemetry.test.ts +1 -1
  438. package/src/stream/__tests__/ws.test.ts +30 -6
  439. package/src/stream/sse.ts +12 -11
  440. package/src/stream/ws-core.ts +1 -1
  441. package/src/stream/ws-delivery.ts +16 -7
  442. package/src/stream/ws-local-connection-store.ts +2 -3
  443. package/src/stream/ws-presence-store.ts +6 -1
  444. package/src/stream/ws-registry.ts +16 -7
  445. package/src/stream/ws-telemetry.ts +66 -43
  446. package/src/stream/ws.ts +73 -39
  447. package/src/syncer/__tests__/api-parser.websocket-type-ref.test.ts +3 -2
  448. package/src/syncer/__tests__/http-validator-registry.test.ts +137 -0
  449. package/src/syncer/api-parser.ts +67 -27
  450. package/src/syncer/checksum.ts +17 -11
  451. package/src/syncer/code-generator.ts +25 -17
  452. package/src/syncer/entity-operations.ts +3 -5
  453. package/src/syncer/file-copy.ts +46 -0
  454. package/src/syncer/file-patterns.ts +11 -8
  455. package/src/syncer/file-tracking.ts +3 -4
  456. package/src/syncer/filesystem-dependencies.ts +73 -0
  457. package/src/syncer/module-loader.ts +8 -4
  458. package/src/syncer/syncer-actions.ts +56 -18
  459. package/src/syncer/syncer.ts +116 -43
  460. package/src/syncer/watcher.ts +8 -4
  461. package/src/tasks/decorator.ts +20 -12
  462. package/src/tasks/step-wrapper.ts +19 -9
  463. package/src/tasks/workflow-manager.ts +15 -9
  464. package/src/template/__tests__/http_validators.template.test.ts +160 -0
  465. package/src/template/__tests__/services.template.mutation.test.ts +24 -23
  466. package/src/template/__tests__/services.template.websocket.test.ts +21 -25
  467. package/src/template/entity-converter.ts +5 -2
  468. package/src/template/helpers.ts +8 -9
  469. package/src/template/implementations/generated.template.ts +5 -4
  470. package/src/template/implementations/generated_http.template.ts +61 -15
  471. package/src/template/implementations/generated_sso.template.ts +15 -4
  472. package/src/template/implementations/http_validators.template.ts +175 -0
  473. package/src/template/implementations/model.template.ts +3 -1
  474. package/src/template/implementations/sd.template.ts +81 -41
  475. package/src/template/implementations/services.template.ts +2 -2
  476. package/src/template/implementations/view_form.template.ts +56 -39
  477. package/src/template/implementations/view_list.template.ts +31 -23
  478. package/src/template/template-manager.ts +15 -13
  479. package/src/template/template-types.ts +13 -5
  480. package/src/template/template.ts +4 -3
  481. package/src/template/zod-converter.ts +206 -91
  482. package/src/testing/__tests__/dev-test-routes.test.ts +85 -25
  483. package/src/testing/__tests__/dev-vitest-manager.test.ts +15 -15
  484. package/src/testing/_relation-graph.ts +4 -1
  485. package/src/testing/bootstrap.ts +12 -5
  486. package/src/testing/data-explorer.ts +102 -53
  487. package/src/testing/dev-test-routes.ts +87 -50
  488. package/src/testing/dev-vitest-manager.ts +88 -32
  489. package/src/testing/faker-mappings.ts +2 -2
  490. package/src/testing/filesystem.ts +1 -0
  491. package/src/testing/fixture-generator.ts +191 -131
  492. package/src/testing/fixture-loader.ts +5 -1
  493. package/src/testing/fixture-manager.ts +129 -90
  494. package/src/testing/global-setup.ts +7 -3
  495. package/src/testing/index.ts +5 -0
  496. package/src/types/__tests__/entity-json-schema-search-text.test.ts +9 -3
  497. package/src/types/types.ts +184 -158
  498. package/src/ui/ai-api.ts +9 -7
  499. package/src/ui/ai-client.ts +61 -56
  500. package/src/ui/api.ts +726 -770
  501. package/src/ui/async-route.ts +4 -0
  502. package/src/ui/cdd-service.ts +35 -12
  503. package/src/ui/migrations-api.ts +381 -0
  504. package/src/utils/formatter.ts +7 -3
  505. package/src/utils/fs-utils.ts +5 -5
  506. package/src/utils/model.ts +4 -5
  507. package/src/utils/object-utils.ts +32 -22
  508. package/src/utils/process-utils.ts +4 -1
  509. package/src/utils/runtime-value.ts +43 -0
  510. package/src/utils/sql-parser.ts +13 -6
  511. package/src/utils/type-utils.ts +9 -7
  512. package/src/utils/utils.ts +19 -21
  513. package/src/utils/zod-error.ts +4 -2
  514. package/src/vector/chunking.ts +6 -1
  515. package/src/vector/embedding.ts +2 -1
  516. package/src/vector/types.ts +4 -2
  517. package/tsdown.api.config.ts +5 -2
  518. package/dist/ui-web/assets/index-CJf8uJYf.js +0 -176
  519. package/dist/ui-web/assets/index-GMMIVGja.css +0 -1
@@ -179,4 +179,4 @@ var init_ws_presence_store = __esmMin((() => {
179
179
  init_ws_presence_store();
180
180
  export { InMemoryWebSocketPresenceStore, init_ws_presence_store };
181
181
 
182
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtcHJlc2VuY2Utc3RvcmUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmVhbS93cy1wcmVzZW5jZS1zdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFdlYlNvY2tldEF1ZGllbmNlIH0gZnJvbSBcIi4vd3MtYXVkaWVuY2VcIjtcbmltcG9ydCB7IHR5cGUgV2ViU29ja2V0UmVnaXN0cnlTdGF0cywgdHlwZSBXZWJTb2NrZXRSb29tSWQsIHR5cGUgV2ViU29ja2V0VXNlcklkIH0gZnJvbSBcIi4vd3MtY29yZVwiO1xuXG5leHBvcnQgdHlwZSBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2UgPSB7XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICBub2RlSWQ6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgcm9vbXM6IFNldDxXZWJTb2NrZXRSb29tSWQ+O1xuICBjb25uZWN0ZWRBdDogRGF0ZTtcbiAgbGFzdFNlZW5BdDogRGF0ZTtcbiAgdXNlcklkPzogV2ViU29ja2V0VXNlcklkO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBXZWJTb2NrZXRQcmVzZW5jZVN0b3JlIHtcbiAgcmVnaXN0ZXIoaW5wdXQ6IHtcbiAgICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgICBub2RlSWQ6IHN0cmluZztcbiAgICBuYW1lc3BhY2U6IHN0cmluZztcbiAgICBhY3RpdmU/OiBib29sZWFuO1xuICB9KTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlO1xuICBhY3RpdmF0ZShzZXNzaW9uSWQ6IHN0cmluZyk6IHZvaWQ7XG4gIHVucmVnaXN0ZXIoc2Vzc2lvbklkOiBzdHJpbmcpOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2UgfCB1bmRlZmluZWQ7XG4gIHRvdWNoKHNlc3Npb25JZDogc3RyaW5nKTogdm9pZDtcbiAgc2V0VXNlcklkKHNlc3Npb25JZDogc3RyaW5nLCB1c2VySWQ6IFdlYlNvY2tldFVzZXJJZCk6IHZvaWQ7XG4gIGNsZWFyVXNlcklkKHNlc3Npb25JZDogc3RyaW5nKTogdm9pZDtcbiAgam9pbihzZXNzaW9uSWQ6IHN0cmluZywgcm9vbUlkOiBXZWJTb2NrZXRSb29tSWQpOiB2b2lkO1xuICBsZWF2ZShzZXNzaW9uSWQ6IHN0cmluZywgcm9vbUlkOiBXZWJTb2NrZXRSb29tSWQpOiB2b2lkO1xuICBnZXRDb25uZWN0aW9uKHNlc3Npb25JZDogc3RyaW5nKTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlIHwgdW5kZWZpbmVkO1xuICBnZXRDb25uZWN0aW9uQ291bnQobmFtZXNwYWNlPzogc3RyaW5nKTogbnVtYmVyO1xuICBnZXRSb29tTWVtYmVycyhyb29tSWQ6IFdlYlNvY2tldFJvb21JZCwgbmFtZXNwYWNlPzogc3RyaW5nKTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlW107XG4gIGdldFN0YXRzKCk6IFdlYlNvY2tldFJlZ2lzdHJ5U3RhdHM7XG4gIHF1ZXJ5QXVkaWVuY2UoYXVkaWVuY2U6IFdlYlNvY2tldEF1ZGllbmNlKTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlW107XG59XG5cbmV4cG9ydCBjbGFzcyBJbk1lbW9yeVdlYlNvY2tldFByZXNlbmNlU3RvcmUgaW1wbGVtZW50cyBXZWJTb2NrZXRQcmVzZW5jZVN0b3JlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2U+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm9vbXMgPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlcnMgPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCk7XG5cbiAgcmVnaXN0ZXIoaW5wdXQ6IHtcbiAgICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgICBub2RlSWQ6IHN0cmluZztcbiAgICBuYW1lc3BhY2U6IHN0cmluZztcbiAgICBhY3RpdmU/OiBib29sZWFuO1xuICB9KTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlIHtcbiAgICBjb25zdCBtZXRhOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2UgPSB7XG4gICAgICBzZXNzaW9uSWQ6IGlucHV0LnNlc3Npb25JZCxcbiAgICAgIG5vZGVJZDogaW5wdXQubm9kZUlkLFxuICAgICAgbmFtZXNwYWNlOiBpbnB1dC5uYW1lc3BhY2UsXG4gICAgICBhY3RpdmU6IGlucHV0LmFjdGl2ZSA/PyB0cnVlLFxuICAgICAgcm9vbXM6IG5ldyBTZXQoKSxcbiAgICAgIGNvbm5lY3RlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgbGFzdFNlZW5BdDogbmV3IERhdGUoKSxcbiAgICB9O1xuICAgIHRoaXMuY29ubmVjdGlvbnMuc2V0KGlucHV0LnNlc3Npb25JZCwgbWV0YSk7XG4gICAgcmV0dXJuIG1ldGE7XG4gIH1cblxuICBhY3RpdmF0ZShzZXNzaW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLmNvbm5lY3Rpb25zLmdldChzZXNzaW9uSWQpO1xuICAgIGlmICghbWV0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1ldGEuYWN0aXZlID0gdHJ1ZTtcbiAgfVxuXG4gIHVucmVnaXN0ZXIoc2Vzc2lvbklkOiBzdHJpbmcpOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2UgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLmNvbm5lY3Rpb25zLmdldChzZXNzaW9uSWQpO1xuICAgIGlmICghbWV0YSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAobWV0YS51c2VySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZW1vdmVVc2VyQmluZGluZyhtZXRhLm5hbWVzcGFjZSwgbWV0YS51c2VySWQsIHNlc3Npb25JZCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCByb29tSWQgb2YgbWV0YS5yb29tcykge1xuICAgICAgdGhpcy5yZW1vdmVSb29tQmluZGluZyhtZXRhLm5hbWVzcGFjZSwgcm9vbUlkLCBzZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdGlvbnMuZGVsZXRlKHNlc3Npb25JZCk7XG4gICAgcmV0dXJuIG1ldGE7XG4gIH1cblxuICB0b3VjaChzZXNzaW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLmNvbm5lY3Rpb25zLmdldChzZXNzaW9uSWQpO1xuICAgIGlmICghbWV0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1ldGEubGFzdFNlZW5BdCA9IG5ldyBEYXRlKCk7XG4gIH1cblxuICBzZXRVc2VySWQoc2Vzc2lvbklkOiBzdHJpbmcsIHVzZXJJZDogV2ViU29ja2V0VXNlcklkKTogdm9pZCB7XG4gICAgY29uc3QgbWV0YSA9IHRoaXMuY29ubmVjdGlvbnMuZ2V0KHNlc3Npb25JZCk7XG4gICAgaWYgKCFtZXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1ldGEudXNlcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVtb3ZlVXNlckJpbmRpbmcobWV0YS5uYW1lc3BhY2UsIG1ldGEudXNlcklkLCBzZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIG1ldGEudXNlcklkID0gdXNlcklkO1xuICAgIGNvbnN0IGtleSA9IGdldEJpbmRpbmdLZXkobWV0YS5uYW1lc3BhY2UsIFN0cmluZyh1c2VySWQpKTtcbiAgICBjb25zdCBib3VuZCA9IHRoaXMudXNlcnMuZ2V0KGtleSkgPz8gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgYm91bmQuYWRkKHNlc3Npb25JZCk7XG4gICAgdGhpcy51c2Vycy5zZXQoa2V5LCBib3VuZCk7XG4gIH1cblxuICBjbGVhclVzZXJJZChzZXNzaW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLmNvbm5lY3Rpb25zLmdldChzZXNzaW9uSWQpO1xuICAgIGlmICghbWV0YSB8fCBtZXRhLnVzZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVVc2VyQmluZGluZyhtZXRhLm5hbWVzcGFjZSwgbWV0YS51c2VySWQsIHNlc3Npb25JZCk7XG4gICAgZGVsZXRlIG1ldGEudXNlcklkO1xuICB9XG5cbiAgam9pbihzZXNzaW9uSWQ6IHN0cmluZywgcm9vbUlkOiBXZWJTb2NrZXRSb29tSWQpOiB2b2lkIHtcbiAgICBjb25zdCBtZXRhID0gdGhpcy5jb25uZWN0aW9ucy5nZXQoc2Vzc2lvbklkKTtcbiAgICBpZiAoIW1ldGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtZXRhLnJvb21zLmFkZChyb29tSWQpO1xuICAgIGNvbnN0IGtleSA9IGdldEJpbmRpbmdLZXkobWV0YS5uYW1lc3BhY2UsIHJvb21JZCk7XG4gICAgY29uc3QgbWVtYmVycyA9IHRoaXMucm9vbXMuZ2V0KGtleSkgPz8gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgbWVtYmVycy5hZGQoc2Vzc2lvbklkKTtcbiAgICB0aGlzLnJvb21zLnNldChrZXksIG1lbWJlcnMpO1xuICB9XG5cbiAgbGVhdmUoc2Vzc2lvbklkOiBzdHJpbmcsIHJvb21JZDogV2ViU29ja2V0Um9vbUlkKTogdm9pZCB7XG4gICAgY29uc3QgbWV0YSA9IHRoaXMuY29ubmVjdGlvbnMuZ2V0KHNlc3Npb25JZCk7XG4gICAgaWYgKCFtZXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbWV0YS5yb29tcy5kZWxldGUocm9vbUlkKTtcbiAgICB0aGlzLnJlbW92ZVJvb21CaW5kaW5nKG1ldGEubmFtZXNwYWNlLCByb29tSWQsIHNlc3Npb25JZCk7XG4gIH1cblxuICBnZXRDb25uZWN0aW9uKHNlc3Npb25JZDogc3RyaW5nKTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9ucy5nZXQoc2Vzc2lvbklkKTtcbiAgfVxuXG4gIGdldENvbm5lY3Rpb25Db3VudChuYW1lc3BhY2U/OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICBmb3IgKGNvbnN0IG1ldGEgb2YgdGhpcy5jb25uZWN0aW9ucy52YWx1ZXMoKSkge1xuICAgICAgaWYgKCFtZXRhLmFjdGl2ZSB8fCAobmFtZXNwYWNlICYmIG1ldGEubmFtZXNwYWNlICE9PSBuYW1lc3BhY2UpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb3VudCArPSAxO1xuICAgIH1cblxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIGdldFJvb21NZW1iZXJzKHJvb21JZDogV2ViU29ja2V0Um9vbUlkLCBuYW1lc3BhY2U/OiBzdHJpbmcpOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Qm91bmRDb25uZWN0aW9ucyh0aGlzLnJvb21zLCByb29tSWQsIG5hbWVzcGFjZSk7XG4gIH1cblxuICBnZXRTdGF0cygpOiBXZWJTb2NrZXRSZWdpc3RyeVN0YXRzIHtcbiAgICBjb25zdCBieU5hbWVzcGFjZTogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBtZXRhIG9mIHRoaXMuY29ubmVjdGlvbnMudmFsdWVzKCkpIHtcbiAgICAgIGlmICghbWV0YS5hY3RpdmUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBieU5hbWVzcGFjZVttZXRhLm5hbWVzcGFjZV0gPSAoYnlOYW1lc3BhY2VbbWV0YS5uYW1lc3BhY2VdID8/IDApICsgMTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdG90YWxDb25uZWN0aW9uczogT2JqZWN0LnZhbHVlcyhieU5hbWVzcGFjZSkucmVkdWNlKChzdW0sIGNvdW50KSA9PiBzdW0gKyBjb3VudCwgMCksXG4gICAgICB0b3RhbFJvb21zOiB0aGlzLnJvb21zLnNpemUsXG4gICAgICBieU5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG5cbiAgcXVlcnlBdWRpZW5jZShhdWRpZW5jZTogV2ViU29ja2V0QXVkaWVuY2UpOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2VbXSB7XG4gICAgc3dpdGNoIChhdWRpZW5jZS50eXBlKSB7XG4gICAgICBjYXNlIFwiYWxsXCI6XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZUNvbm5lY3Rpb25zKGF1ZGllbmNlLm5hbWVzcGFjZSk7XG4gICAgICBjYXNlIFwicm9vbVwiOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRCb3VuZENvbm5lY3Rpb25zKHRoaXMucm9vbXMsIGF1ZGllbmNlLnJvb21JZCwgYXVkaWVuY2UubmFtZXNwYWNlKTtcbiAgICAgIGNhc2UgXCJ1c2VyXCI6XG4gICAgICAgIHJldHVybiB0aGlzLmdldEJvdW5kQ29ubmVjdGlvbnModGhpcy51c2VycywgU3RyaW5nKGF1ZGllbmNlLnVzZXJJZCksIGF1ZGllbmNlLm5hbWVzcGFjZSk7XG4gICAgICBjYXNlIFwiY29ubmVjdGlvbnNcIjoge1xuICAgICAgICBjb25zdCBtZXRhczogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvbm5lY3Rpb25JZCBvZiBhdWRpZW5jZS5jb25uZWN0aW9uSWRzKSB7XG4gICAgICAgICAgY29uc3QgbWV0YSA9IHRoaXMuY29ubmVjdGlvbnMuZ2V0KGNvbm5lY3Rpb25JZCk7XG4gICAgICAgICAgaWYgKCFtZXRhPy5hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYXVkaWVuY2UubmFtZXNwYWNlICYmIG1ldGEubmFtZXNwYWNlICE9PSBhdWRpZW5jZS5uYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtZXRhcy5wdXNoKG1ldGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1ldGFzO1xuICAgICAgfVxuICAgICAgY2FzZSBcInVuaW9uXCI6IHtcbiAgICAgICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICBjb25zdCBtZXRhczogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXVkaWVuY2UuYXVkaWVuY2VzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBtZXRhIG9mIHRoaXMucXVlcnlBdWRpZW5jZShpdGVtKSkge1xuICAgICAgICAgICAgaWYgKHNlZW4uaGFzKG1ldGEuc2Vzc2lvbklkKSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2Vlbi5hZGQobWV0YS5zZXNzaW9uSWQpO1xuICAgICAgICAgICAgbWV0YXMucHVzaChtZXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWV0YXM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVDb25uZWN0aW9ucyhuYW1lc3BhY2U/OiBzdHJpbmcpOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2VbXSB7XG4gICAgY29uc3QgbWV0YXM6IFdlYlNvY2tldFNlc3Npb25QcmVzZW5jZVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG1ldGEgb2YgdGhpcy5jb25uZWN0aW9ucy52YWx1ZXMoKSkge1xuICAgICAgaWYgKCFtZXRhLmFjdGl2ZSB8fCAobmFtZXNwYWNlICYmIG1ldGEubmFtZXNwYWNlICE9PSBuYW1lc3BhY2UpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBtZXRhcy5wdXNoKG1ldGEpO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Qm91bmRDb25uZWN0aW9ucyhcbiAgICBiaW5kaW5nczogTWFwPHN0cmluZywgU2V0PHN0cmluZz4+LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlPzogc3RyaW5nLFxuICApOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2VbXSB7XG4gICAgY29uc3QgbWV0YXM6IFdlYlNvY2tldFNlc3Npb25QcmVzZW5jZVtdID0gW107XG4gICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgZm9yIChjb25zdCBtZW1iZXJzIG9mIHRoaXMuZ2V0U2NvcGVkQmluZGluZ3MoYmluZGluZ3MsIGlkLCBuYW1lc3BhY2UpKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbm5lY3Rpb25JZCBvZiBtZW1iZXJzKSB7XG4gICAgICAgIGlmIChzZWVuLmhhcyhjb25uZWN0aW9uSWQpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgc2Vlbi5hZGQoY29ubmVjdGlvbklkKTtcblxuICAgICAgICBjb25zdCBtZXRhID0gdGhpcy5jb25uZWN0aW9ucy5nZXQoY29ubmVjdGlvbklkKTtcbiAgICAgICAgaWYgKG1ldGE/LmFjdGl2ZSkge1xuICAgICAgICAgIG1ldGFzLnB1c2gobWV0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXM7XG4gIH1cblxuICBwcml2YXRlIGdldFNjb3BlZEJpbmRpbmdzKFxuICAgIGJpbmRpbmdzOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4sXG4gICAgaWQ6IHN0cmluZyxcbiAgICBuYW1lc3BhY2U/OiBzdHJpbmcsXG4gICk6IFNldDxzdHJpbmc+W10ge1xuICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgIGNvbnN0IGV4YWN0ID0gYmluZGluZ3MuZ2V0KGdldEJpbmRpbmdLZXkobmFtZXNwYWNlLCBpZCkpO1xuICAgICAgcmV0dXJuIGV4YWN0ID8gW2V4YWN0XSA6IFtdO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoZXM6IFNldDxzdHJpbmc+W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIG1lbWJlcnNdIG9mIGJpbmRpbmdzKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUJpbmRpbmdLZXkoa2V5KTtcbiAgICAgIGlmIChwYXJzZWQuaWQgPT09IGlkKSB7XG4gICAgICAgIG1hdGNoZXMucHVzaChtZW1iZXJzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUm9vbUJpbmRpbmcobmFtZXNwYWNlOiBzdHJpbmcsIHJvb21JZDogV2ViU29ja2V0Um9vbUlkLCBzZXNzaW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGtleSA9IGdldEJpbmRpbmdLZXkobmFtZXNwYWNlLCByb29tSWQpO1xuICAgIGNvbnN0IG1lbWJlcnMgPSB0aGlzLnJvb21zLmdldChrZXkpO1xuICAgIGlmICghbWVtYmVycykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1lbWJlcnMuZGVsZXRlKHNlc3Npb25JZCk7XG4gICAgaWYgKG1lbWJlcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgdGhpcy5yb29tcy5kZWxldGUoa2V5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVVzZXJCaW5kaW5nKG5hbWVzcGFjZTogc3RyaW5nLCB1c2VySWQ6IFdlYlNvY2tldFVzZXJJZCwgc2Vzc2lvbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSBnZXRCaW5kaW5nS2V5KG5hbWVzcGFjZSwgU3RyaW5nKHVzZXJJZCkpO1xuICAgIGNvbnN0IG1lbWJlcnMgPSB0aGlzLnVzZXJzLmdldChrZXkpO1xuICAgIGlmICghbWVtYmVycykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1lbWJlcnMuZGVsZXRlKHNlc3Npb25JZCk7XG4gICAgaWYgKG1lbWJlcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgdGhpcy51c2Vycy5kZWxldGUoa2V5KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0QmluZGluZ0tleShuYW1lc3BhY2U6IHN0cmluZywgaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtuYW1lc3BhY2V9Ojoke2lkfWA7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQmluZGluZ0tleShrZXk6IHN0cmluZyk6IHsgbmFtZXNwYWNlOiBzdHJpbmc7IGlkOiBzdHJpbmcgfSB7XG4gIGNvbnN0IFtuYW1lc3BhY2UsIC4uLnJlc3RdID0ga2V5LnNwbGl0KFwiOjpcIik7XG4gIHJldHVybiB7XG4gICAgbmFtZXNwYWNlLFxuICAgIGlkOiByZXN0LmpvaW4oXCI6OlwiKSxcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUEyVEEsU0FBUyxjQUFjLFdBQW1CLElBQW9CO0NBQzVELE9BQU8sR0FBRyxVQUFVLElBQUk7QUFDMUI7QUFFQSxTQUFTLGdCQUFnQixLQUFnRDtDQUN2RSxNQUFNLENBQUMsV0FBVyxHQUFHLFFBQVEsSUFBSSxNQUFNLElBQUk7Q0FDM0MsT0FBTztFQUNMO0VBQ0EsSUFBSSxLQUFLLEtBQUssSUFBSTtDQUNwQjtBQUNGOzs7Q0FsU2EsaUNBQWIsTUFBOEU7RUFDNUUsOEJBQStCLElBQUksSUFBc0M7RUFDekUsd0JBQXlCLElBQUksSUFBeUI7RUFDdEQsd0JBQXlCLElBQUksSUFBeUI7RUFFdEQsU0FBUyxPQUtvQjtHQUMzQixNQUFNLE9BQWlDO0lBQ3JDLFdBQVcsTUFBTTtJQUNqQixRQUFRLE1BQU07SUFDZCxXQUFXLE1BQU07SUFDakIsUUFBUSxNQUFNLFVBQVU7SUFDeEIsdUJBQU8sSUFBSSxJQUFJO0lBQ2YsNkJBQWEsSUFBSSxLQUFLO0lBQ3RCLDRCQUFZLElBQUksS0FBSztHQUN2QjtHQUNBLEtBQUssWUFBWSxJQUFJLE1BQU0sV0FBVyxJQUFJO0dBQzFDLE9BQU87RUFDVDtFQUVBLFNBQVMsV0FBeUI7R0FDaEMsTUFBTSxPQUFPLEtBQUssWUFBWSxJQUFJLFNBQVM7R0FDM0MsSUFBSSxDQUFDLE1BQ0g7R0FHRixLQUFLLFNBQVM7RUFDaEI7RUFFQSxXQUFXLFdBQXlEO0dBQ2xFLE1BQU0sT0FBTyxLQUFLLFlBQVksSUFBSSxTQUFTO0dBQzNDLElBQUksQ0FBQyxNQUNIO0dBR0YsSUFBSSxLQUFLLFdBQVcsUUFDbEIsS0FBSyxrQkFBa0IsS0FBSyxXQUFXLEtBQUssUUFBUSxTQUFTO0dBRy9ELEtBQUssTUFBTSxVQUFVLEtBQUssT0FDeEIsS0FBSyxrQkFBa0IsS0FBSyxXQUFXLFFBQVEsU0FBUztHQUcxRCxLQUFLLFlBQVksT0FBTyxTQUFTO0dBQ2pDLE9BQU87RUFDVDtFQUVBLE1BQU0sV0FBeUI7R0FDN0IsTUFBTSxPQUFPLEtBQUssWUFBWSxJQUFJLFNBQVM7R0FDM0MsSUFBSSxDQUFDLE1BQ0g7R0FHRixLQUFLLDZCQUFhLElBQUksS0FBSztFQUM3QjtFQUVBLFVBQVUsV0FBbUIsUUFBK0I7R0FDMUQsTUFBTSxPQUFPLEtBQUssWUFBWSxJQUFJLFNBQVM7R0FDM0MsSUFBSSxDQUFDLE1BQ0g7R0FHRixJQUFJLEtBQUssV0FBVyxRQUNsQixLQUFLLGtCQUFrQixLQUFLLFdBQVcsS0FBSyxRQUFRLFNBQVM7R0FHL0QsS0FBSyxTQUFTO0dBQ2QsTUFBTSxNQUFNLGNBQWMsS0FBSyxXQUFXLE9BQU8sTUFBTSxDQUFDO0dBQ3hELE1BQU0sUUFBUSxLQUFLLE1BQU0sSUFBSSxHQUFHLHFCQUFLLElBQUksSUFBWTtHQUNyRCxNQUFNLElBQUksU0FBUztHQUNuQixLQUFLLE1BQU0sSUFBSSxLQUFLLEtBQUs7RUFDM0I7RUFFQSxZQUFZLFdBQXlCO0dBQ25DLE1BQU0sT0FBTyxLQUFLLFlBQVksSUFBSSxTQUFTO0dBQzNDLElBQUksQ0FBQyxRQUFRLEtBQUssV0FBVyxRQUMzQjtHQUdGLEtBQUssa0JBQWtCLEtBQUssV0FBVyxLQUFLLFFBQVEsU0FBUztHQUM3RCxPQUFPLEtBQUs7RUFDZDtFQUVBLEtBQUssV0FBbUIsUUFBK0I7R0FDckQsTUFBTSxPQUFPLEtBQUssWUFBWSxJQUFJLFNBQVM7R0FDM0MsSUFBSSxDQUFDLE1BQ0g7R0FHRixLQUFLLE1BQU0sSUFBSSxNQUFNO0dBQ3JCLE1BQU0sTUFBTSxjQUFjLEtBQUssV0FBVyxNQUFNO0dBQ2hELE1BQU0sVUFBVSxLQUFLLE1BQU0sSUFBSSxHQUFHLHFCQUFLLElBQUksSUFBWTtHQUN2RCxRQUFRLElBQUksU0FBUztHQUNyQixLQUFLLE1BQU0sSUFBSSxLQUFLLE9BQU87RUFDN0I7RUFFQSxNQUFNLFdBQW1CLFFBQStCO0dBQ3RELE1BQU0sT0FBTyxLQUFLLFlBQVksSUFBSSxTQUFTO0dBQzNDLElBQUksQ0FBQyxNQUNIO0dBR0YsS0FBSyxNQUFNLE9BQU8sTUFBTTtHQUN4QixLQUFLLGtCQUFrQixLQUFLLFdBQVcsUUFBUSxTQUFTO0VBQzFEO0VBRUEsY0FBYyxXQUF5RDtHQUNyRSxPQUFPLEtBQUssWUFBWSxJQUFJLFNBQVM7RUFDdkM7RUFFQSxtQkFBbUIsV0FBNEI7R0FDN0MsSUFBSSxRQUFRO0dBRVosS0FBSyxNQUFNLFFBQVEsS0FBSyxZQUFZLE9BQU8sR0FBRztJQUM1QyxJQUFJLENBQUMsS0FBSyxVQUFXLGFBQWEsS0FBSyxjQUFjLFdBQ25EO0lBR0YsU0FBUztHQUNYO0dBRUEsT0FBTztFQUNUO0VBRUEsZUFBZSxRQUF5QixXQUFnRDtHQUN0RixPQUFPLEtBQUssb0JBQW9CLEtBQUssT0FBTyxRQUFRLFNBQVM7RUFDL0Q7RUFFQSxXQUFtQztHQUNqQyxNQUFNLGNBQXNDLENBQUM7R0FFN0MsS0FBSyxNQUFNLFFBQVEsS0FBSyxZQUFZLE9BQU8sR0FBRztJQUM1QyxJQUFJLENBQUMsS0FBSyxRQUNSO0lBRUYsWUFBWSxLQUFLLGNBQWMsWUFBWSxLQUFLLGNBQWMsS0FBSztHQUNyRTtHQUVBLE9BQU87SUFDTCxrQkFBa0IsT0FBTyxPQUFPLFdBQVcsQ0FBQyxDQUFDLFFBQVEsS0FBSyxVQUFVLE1BQU0sT0FBTyxDQUFDO0lBQ2xGLFlBQVksS0FBSyxNQUFNO0lBQ3ZCO0dBQ0Y7RUFDRjtFQUVBLGNBQWMsVUFBeUQ7R0FDckUsUUFBUSxTQUFTLE1BQWpCO0lBQ0UsS0FBSyxPQUNILE9BQU8sS0FBSyxxQkFBcUIsU0FBUyxTQUFTO0lBQ3JELEtBQUssUUFDSCxPQUFPLEtBQUssb0JBQW9CLEtBQUssT0FBTyxTQUFTLFFBQVEsU0FBUyxTQUFTO0lBQ2pGLEtBQUssUUFDSCxPQUFPLEtBQUssb0JBQW9CLEtBQUssT0FBTyxPQUFPLFNBQVMsTUFBTSxHQUFHLFNBQVMsU0FBUztJQUN6RixLQUFLLGVBQWU7S0FDbEIsTUFBTSxRQUFvQyxDQUFDO0tBRTNDLEtBQUssTUFBTSxnQkFBZ0IsU0FBUyxlQUFlO01BQ2pELE1BQU0sT0FBTyxLQUFLLFlBQVksSUFBSSxZQUFZO01BQzlDLElBQUksQ0FBQyxNQUFNLFFBQ1Q7TUFFRixJQUFJLFNBQVMsYUFBYSxLQUFLLGNBQWMsU0FBUyxXQUNwRDtNQUVGLE1BQU0sS0FBSyxJQUFJO0tBQ2pCO0tBRUEsT0FBTztJQUNUO0lBQ0EsS0FBSyxTQUFTO0tBQ1osTUFBTSx1QkFBTyxJQUFJLElBQVk7S0FDN0IsTUFBTSxRQUFvQyxDQUFDO0tBRTNDLEtBQUssTUFBTSxRQUFRLFNBQVMsV0FDMUIsS0FBSyxNQUFNLFFBQVEsS0FBSyxjQUFjLElBQUksR0FBRztNQUMzQyxJQUFJLEtBQUssSUFBSSxLQUFLLFNBQVMsR0FDekI7TUFHRixLQUFLLElBQUksS0FBSyxTQUFTO01BQ3ZCLE1BQU0sS0FBSyxJQUFJO0tBQ2pCO0tBR0YsT0FBTztJQUNUO0dBQ0Y7RUFDRjtFQUVBLHFCQUE2QixXQUFnRDtHQUMzRSxNQUFNLFFBQW9DLENBQUM7R0FFM0MsS0FBSyxNQUFNLFFBQVEsS0FBSyxZQUFZLE9BQU8sR0FBRztJQUM1QyxJQUFJLENBQUMsS0FBSyxVQUFXLGFBQWEsS0FBSyxjQUFjLFdBQ25EO0lBR0YsTUFBTSxLQUFLLElBQUk7R0FDakI7R0FFQSxPQUFPO0VBQ1Q7RUFFQSxvQkFDRSxVQUNBLElBQ0EsV0FDNEI7R0FDNUIsTUFBTSxRQUFvQyxDQUFDO0dBQzNDLE1BQU0sdUJBQU8sSUFBSSxJQUFZO0dBRTdCLEtBQUssTUFBTSxXQUFXLEtBQUssa0JBQWtCLFVBQVUsSUFBSSxTQUFTLEdBQ2xFLEtBQUssTUFBTSxnQkFBZ0IsU0FBUztJQUNsQyxJQUFJLEtBQUssSUFBSSxZQUFZLEdBQ3ZCO0lBRUYsS0FBSyxJQUFJLFlBQVk7SUFFckIsTUFBTSxPQUFPLEtBQUssWUFBWSxJQUFJLFlBQVk7SUFDOUMsSUFBSSxNQUFNLFFBQ1IsTUFBTSxLQUFLLElBQUk7R0FFbkI7R0FHRixPQUFPO0VBQ1Q7RUFFQSxrQkFDRSxVQUNBLElBQ0EsV0FDZTtHQUNmLElBQUksV0FBVztJQUNiLE1BQU0sUUFBUSxTQUFTLElBQUksY0FBYyxXQUFXLEVBQUUsQ0FBQztJQUN2RCxPQUFPLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQztHQUM1QjtHQUVBLE1BQU0sVUFBeUIsQ0FBQztHQUNoQyxLQUFLLE1BQU0sQ0FBQyxLQUFLLFlBQVksVUFFM0IsSUFEZSxnQkFBZ0IsR0FDM0IsQ0FBQSxDQUFPLE9BQU8sSUFDaEIsUUFBUSxLQUFLLE9BQU87R0FJeEIsT0FBTztFQUNUO0VBRUEsa0JBQTBCLFdBQW1CLFFBQXlCLFdBQXlCO0dBQzdGLE1BQU0sTUFBTSxjQUFjLFdBQVcsTUFBTTtHQUMzQyxNQUFNLFVBQVUsS0FBSyxNQUFNLElBQUksR0FBRztHQUNsQyxJQUFJLENBQUMsU0FDSDtHQUdGLFFBQVEsT0FBTyxTQUFTO0dBQ3hCLElBQUksUUFBUSxTQUFTLEdBQ25CLEtBQUssTUFBTSxPQUFPLEdBQUc7RUFFekI7RUFFQSxrQkFBMEIsV0FBbUIsUUFBeUIsV0FBeUI7R0FDN0YsTUFBTSxNQUFNLGNBQWMsV0FBVyxPQUFPLE1BQU0sQ0FBQztHQUNuRCxNQUFNLFVBQVUsS0FBSyxNQUFNLElBQUksR0FBRztHQUNsQyxJQUFJLENBQUMsU0FDSDtHQUdGLFFBQVEsT0FBTyxTQUFTO0dBQ3hCLElBQUksUUFBUSxTQUFTLEdBQ25CLEtBQUssTUFBTSxPQUFPLEdBQUc7RUFFekI7Q0FDRiJ9
182
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtcHJlc2VuY2Utc3RvcmUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmVhbS93cy1wcmVzZW5jZS1zdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFdlYlNvY2tldEF1ZGllbmNlIH0gZnJvbSBcIi4vd3MtYXVkaWVuY2VcIjtcbmltcG9ydCB7IHR5cGUgV2ViU29ja2V0UmVnaXN0cnlTdGF0cywgdHlwZSBXZWJTb2NrZXRSb29tSWQsIHR5cGUgV2ViU29ja2V0VXNlcklkIH0gZnJvbSBcIi4vd3MtY29yZVwiO1xuXG5leHBvcnQgdHlwZSBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2UgPSB7XG4gIHNlc3Npb25JZDogc3RyaW5nO1xuICBub2RlSWQ6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgcm9vbXM6IFNldDxXZWJTb2NrZXRSb29tSWQ+O1xuICBjb25uZWN0ZWRBdDogRGF0ZTtcbiAgbGFzdFNlZW5BdDogRGF0ZTtcbiAgdXNlcklkPzogV2ViU29ja2V0VXNlcklkO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBXZWJTb2NrZXRQcmVzZW5jZVN0b3JlIHtcbiAgcmVnaXN0ZXIoaW5wdXQ6IHtcbiAgICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgICBub2RlSWQ6IHN0cmluZztcbiAgICBuYW1lc3BhY2U6IHN0cmluZztcbiAgICBhY3RpdmU/OiBib29sZWFuO1xuICB9KTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlO1xuICBhY3RpdmF0ZShzZXNzaW9uSWQ6IHN0cmluZyk6IHZvaWQ7XG4gIHVucmVnaXN0ZXIoc2Vzc2lvbklkOiBzdHJpbmcpOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2UgfCB1bmRlZmluZWQ7XG4gIHRvdWNoKHNlc3Npb25JZDogc3RyaW5nKTogdm9pZDtcbiAgc2V0VXNlcklkKHNlc3Npb25JZDogc3RyaW5nLCB1c2VySWQ6IFdlYlNvY2tldFVzZXJJZCk6IHZvaWQ7XG4gIGNsZWFyVXNlcklkKHNlc3Npb25JZDogc3RyaW5nKTogdm9pZDtcbiAgam9pbihzZXNzaW9uSWQ6IHN0cmluZywgcm9vbUlkOiBXZWJTb2NrZXRSb29tSWQpOiB2b2lkO1xuICBsZWF2ZShzZXNzaW9uSWQ6IHN0cmluZywgcm9vbUlkOiBXZWJTb2NrZXRSb29tSWQpOiB2b2lkO1xuICBnZXRDb25uZWN0aW9uKHNlc3Npb25JZDogc3RyaW5nKTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlIHwgdW5kZWZpbmVkO1xuICBnZXRDb25uZWN0aW9uQ291bnQobmFtZXNwYWNlPzogc3RyaW5nKTogbnVtYmVyO1xuICBnZXRSb29tTWVtYmVycyhyb29tSWQ6IFdlYlNvY2tldFJvb21JZCwgbmFtZXNwYWNlPzogc3RyaW5nKTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlW107XG4gIGdldFN0YXRzKCk6IFdlYlNvY2tldFJlZ2lzdHJ5U3RhdHM7XG4gIHF1ZXJ5QXVkaWVuY2UoYXVkaWVuY2U6IFdlYlNvY2tldEF1ZGllbmNlKTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlW107XG59XG5cbmV4cG9ydCBjbGFzcyBJbk1lbW9yeVdlYlNvY2tldFByZXNlbmNlU3RvcmUgaW1wbGVtZW50cyBXZWJTb2NrZXRQcmVzZW5jZVN0b3JlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2U+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm9vbXMgPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlcnMgPSBuZXcgTWFwPHN0cmluZywgU2V0PHN0cmluZz4+KCk7XG5cbiAgcmVnaXN0ZXIoaW5wdXQ6IHtcbiAgICBzZXNzaW9uSWQ6IHN0cmluZztcbiAgICBub2RlSWQ6IHN0cmluZztcbiAgICBuYW1lc3BhY2U6IHN0cmluZztcbiAgICBhY3RpdmU/OiBib29sZWFuO1xuICB9KTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlIHtcbiAgICBjb25zdCBtZXRhOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2UgPSB7XG4gICAgICBzZXNzaW9uSWQ6IGlucHV0LnNlc3Npb25JZCxcbiAgICAgIG5vZGVJZDogaW5wdXQubm9kZUlkLFxuICAgICAgbmFtZXNwYWNlOiBpbnB1dC5uYW1lc3BhY2UsXG4gICAgICBhY3RpdmU6IGlucHV0LmFjdGl2ZSA/PyB0cnVlLFxuICAgICAgcm9vbXM6IG5ldyBTZXQoKSxcbiAgICAgIGNvbm5lY3RlZEF0OiBuZXcgRGF0ZSgpLFxuICAgICAgbGFzdFNlZW5BdDogbmV3IERhdGUoKSxcbiAgICB9O1xuICAgIHRoaXMuY29ubmVjdGlvbnMuc2V0KGlucHV0LnNlc3Npb25JZCwgbWV0YSk7XG4gICAgcmV0dXJuIG1ldGE7XG4gIH1cblxuICBhY3RpdmF0ZShzZXNzaW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLmNvbm5lY3Rpb25zLmdldChzZXNzaW9uSWQpO1xuICAgIGlmICghbWV0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1ldGEuYWN0aXZlID0gdHJ1ZTtcbiAgfVxuXG4gIHVucmVnaXN0ZXIoc2Vzc2lvbklkOiBzdHJpbmcpOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2UgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLmNvbm5lY3Rpb25zLmdldChzZXNzaW9uSWQpO1xuICAgIGlmICghbWV0YSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAobWV0YS51c2VySWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5yZW1vdmVVc2VyQmluZGluZyhtZXRhLm5hbWVzcGFjZSwgbWV0YS51c2VySWQsIHNlc3Npb25JZCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCByb29tSWQgb2YgbWV0YS5yb29tcykge1xuICAgICAgdGhpcy5yZW1vdmVSb29tQmluZGluZyhtZXRhLm5hbWVzcGFjZSwgcm9vbUlkLCBzZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIHRoaXMuY29ubmVjdGlvbnMuZGVsZXRlKHNlc3Npb25JZCk7XG4gICAgcmV0dXJuIG1ldGE7XG4gIH1cblxuICB0b3VjaChzZXNzaW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLmNvbm5lY3Rpb25zLmdldChzZXNzaW9uSWQpO1xuICAgIGlmICghbWV0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1ldGEubGFzdFNlZW5BdCA9IG5ldyBEYXRlKCk7XG4gIH1cblxuICBzZXRVc2VySWQoc2Vzc2lvbklkOiBzdHJpbmcsIHVzZXJJZDogV2ViU29ja2V0VXNlcklkKTogdm9pZCB7XG4gICAgY29uc3QgbWV0YSA9IHRoaXMuY29ubmVjdGlvbnMuZ2V0KHNlc3Npb25JZCk7XG4gICAgaWYgKCFtZXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG1ldGEudXNlcklkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVtb3ZlVXNlckJpbmRpbmcobWV0YS5uYW1lc3BhY2UsIG1ldGEudXNlcklkLCBzZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIG1ldGEudXNlcklkID0gdXNlcklkO1xuICAgIGNvbnN0IGtleSA9IGdldEJpbmRpbmdLZXkobWV0YS5uYW1lc3BhY2UsIFN0cmluZyh1c2VySWQpKTtcbiAgICBjb25zdCBib3VuZCA9IHRoaXMudXNlcnMuZ2V0KGtleSkgPz8gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgYm91bmQuYWRkKHNlc3Npb25JZCk7XG4gICAgdGhpcy51c2Vycy5zZXQoa2V5LCBib3VuZCk7XG4gIH1cblxuICBjbGVhclVzZXJJZChzZXNzaW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLmNvbm5lY3Rpb25zLmdldChzZXNzaW9uSWQpO1xuICAgIGlmICghbWV0YSB8fCBtZXRhLnVzZXJJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVVc2VyQmluZGluZyhtZXRhLm5hbWVzcGFjZSwgbWV0YS51c2VySWQsIHNlc3Npb25JZCk7XG4gICAgZGVsZXRlIG1ldGEudXNlcklkO1xuICB9XG5cbiAgam9pbihzZXNzaW9uSWQ6IHN0cmluZywgcm9vbUlkOiBXZWJTb2NrZXRSb29tSWQpOiB2b2lkIHtcbiAgICBjb25zdCBtZXRhID0gdGhpcy5jb25uZWN0aW9ucy5nZXQoc2Vzc2lvbklkKTtcbiAgICBpZiAoIW1ldGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBtZXRhLnJvb21zLmFkZChyb29tSWQpO1xuICAgIGNvbnN0IGtleSA9IGdldEJpbmRpbmdLZXkobWV0YS5uYW1lc3BhY2UsIHJvb21JZCk7XG4gICAgY29uc3QgbWVtYmVycyA9IHRoaXMucm9vbXMuZ2V0KGtleSkgPz8gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgbWVtYmVycy5hZGQoc2Vzc2lvbklkKTtcbiAgICB0aGlzLnJvb21zLnNldChrZXksIG1lbWJlcnMpO1xuICB9XG5cbiAgbGVhdmUoc2Vzc2lvbklkOiBzdHJpbmcsIHJvb21JZDogV2ViU29ja2V0Um9vbUlkKTogdm9pZCB7XG4gICAgY29uc3QgbWV0YSA9IHRoaXMuY29ubmVjdGlvbnMuZ2V0KHNlc3Npb25JZCk7XG4gICAgaWYgKCFtZXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbWV0YS5yb29tcy5kZWxldGUocm9vbUlkKTtcbiAgICB0aGlzLnJlbW92ZVJvb21CaW5kaW5nKG1ldGEubmFtZXNwYWNlLCByb29tSWQsIHNlc3Npb25JZCk7XG4gIH1cblxuICBnZXRDb25uZWN0aW9uKHNlc3Npb25JZDogc3RyaW5nKTogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9ucy5nZXQoc2Vzc2lvbklkKTtcbiAgfVxuXG4gIGdldENvbm5lY3Rpb25Db3VudChuYW1lc3BhY2U/OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICBmb3IgKGNvbnN0IG1ldGEgb2YgdGhpcy5jb25uZWN0aW9ucy52YWx1ZXMoKSkge1xuICAgICAgaWYgKCFtZXRhLmFjdGl2ZSB8fCAobmFtZXNwYWNlICYmIG1ldGEubmFtZXNwYWNlICE9PSBuYW1lc3BhY2UpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBjb3VudCArPSAxO1xuICAgIH1cblxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIGdldFJvb21NZW1iZXJzKHJvb21JZDogV2ViU29ja2V0Um9vbUlkLCBuYW1lc3BhY2U/OiBzdHJpbmcpOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0Qm91bmRDb25uZWN0aW9ucyh0aGlzLnJvb21zLCByb29tSWQsIG5hbWVzcGFjZSk7XG4gIH1cblxuICBnZXRTdGF0cygpOiBXZWJTb2NrZXRSZWdpc3RyeVN0YXRzIHtcbiAgICBjb25zdCBieU5hbWVzcGFjZTogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHt9O1xuXG4gICAgZm9yIChjb25zdCBtZXRhIG9mIHRoaXMuY29ubmVjdGlvbnMudmFsdWVzKCkpIHtcbiAgICAgIGlmICghbWV0YS5hY3RpdmUpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBieU5hbWVzcGFjZVttZXRhLm5hbWVzcGFjZV0gPSAoYnlOYW1lc3BhY2VbbWV0YS5uYW1lc3BhY2VdID8/IDApICsgMTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdG90YWxDb25uZWN0aW9uczogT2JqZWN0LnZhbHVlcyhieU5hbWVzcGFjZSkucmVkdWNlKChzdW0sIGNvdW50KSA9PiBzdW0gKyBjb3VudCwgMCksXG4gICAgICB0b3RhbFJvb21zOiB0aGlzLnJvb21zLnNpemUsXG4gICAgICBieU5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG5cbiAgcXVlcnlBdWRpZW5jZShhdWRpZW5jZTogV2ViU29ja2V0QXVkaWVuY2UpOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2VbXSB7XG4gICAgc3dpdGNoIChhdWRpZW5jZS50eXBlKSB7XG4gICAgICBjYXNlIFwiYWxsXCI6XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFjdGl2ZUNvbm5lY3Rpb25zKGF1ZGllbmNlLm5hbWVzcGFjZSk7XG4gICAgICBjYXNlIFwicm9vbVwiOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRCb3VuZENvbm5lY3Rpb25zKHRoaXMucm9vbXMsIGF1ZGllbmNlLnJvb21JZCwgYXVkaWVuY2UubmFtZXNwYWNlKTtcbiAgICAgIGNhc2UgXCJ1c2VyXCI6XG4gICAgICAgIHJldHVybiB0aGlzLmdldEJvdW5kQ29ubmVjdGlvbnModGhpcy51c2VycywgU3RyaW5nKGF1ZGllbmNlLnVzZXJJZCksIGF1ZGllbmNlLm5hbWVzcGFjZSk7XG4gICAgICBjYXNlIFwiY29ubmVjdGlvbnNcIjoge1xuICAgICAgICBjb25zdCBtZXRhczogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGNvbm5lY3Rpb25JZCBvZiBhdWRpZW5jZS5jb25uZWN0aW9uSWRzKSB7XG4gICAgICAgICAgY29uc3QgbWV0YSA9IHRoaXMuY29ubmVjdGlvbnMuZ2V0KGNvbm5lY3Rpb25JZCk7XG4gICAgICAgICAgaWYgKCFtZXRhPy5hY3RpdmUpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYXVkaWVuY2UubmFtZXNwYWNlICYmIG1ldGEubmFtZXNwYWNlICE9PSBhdWRpZW5jZS5uYW1lc3BhY2UpIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtZXRhcy5wdXNoKG1ldGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1ldGFzO1xuICAgICAgfVxuICAgICAgY2FzZSBcInVuaW9uXCI6IHtcbiAgICAgICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICBjb25zdCBtZXRhczogV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlW10gPSBbXTtcblxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXVkaWVuY2UuYXVkaWVuY2VzKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBtZXRhIG9mIHRoaXMucXVlcnlBdWRpZW5jZShpdGVtKSkge1xuICAgICAgICAgICAgaWYgKHNlZW4uaGFzKG1ldGEuc2Vzc2lvbklkKSkge1xuICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2Vlbi5hZGQobWV0YS5zZXNzaW9uSWQpO1xuICAgICAgICAgICAgbWV0YXMucHVzaChtZXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWV0YXM7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRBY3RpdmVDb25uZWN0aW9ucyhuYW1lc3BhY2U/OiBzdHJpbmcpOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2VbXSB7XG4gICAgY29uc3QgbWV0YXM6IFdlYlNvY2tldFNlc3Npb25QcmVzZW5jZVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG1ldGEgb2YgdGhpcy5jb25uZWN0aW9ucy52YWx1ZXMoKSkge1xuICAgICAgaWYgKCFtZXRhLmFjdGl2ZSB8fCAobmFtZXNwYWNlICYmIG1ldGEubmFtZXNwYWNlICE9PSBuYW1lc3BhY2UpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBtZXRhcy5wdXNoKG1ldGEpO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Qm91bmRDb25uZWN0aW9ucyhcbiAgICBiaW5kaW5nczogTWFwPHN0cmluZywgU2V0PHN0cmluZz4+LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlPzogc3RyaW5nLFxuICApOiBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2VbXSB7XG4gICAgY29uc3QgbWV0YXM6IFdlYlNvY2tldFNlc3Npb25QcmVzZW5jZVtdID0gW107XG4gICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgZm9yIChjb25zdCBtZW1iZXJzIG9mIHRoaXMuZ2V0U2NvcGVkQmluZGluZ3MoYmluZGluZ3MsIGlkLCBuYW1lc3BhY2UpKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbm5lY3Rpb25JZCBvZiBtZW1iZXJzKSB7XG4gICAgICAgIGlmIChzZWVuLmhhcyhjb25uZWN0aW9uSWQpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgc2Vlbi5hZGQoY29ubmVjdGlvbklkKTtcblxuICAgICAgICBjb25zdCBtZXRhID0gdGhpcy5jb25uZWN0aW9ucy5nZXQoY29ubmVjdGlvbklkKTtcbiAgICAgICAgaWYgKG1ldGE/LmFjdGl2ZSkge1xuICAgICAgICAgIG1ldGFzLnB1c2gobWV0YSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXM7XG4gIH1cblxuICBwcml2YXRlIGdldFNjb3BlZEJpbmRpbmdzKFxuICAgIGJpbmRpbmdzOiBNYXA8c3RyaW5nLCBTZXQ8c3RyaW5nPj4sXG4gICAgaWQ6IHN0cmluZyxcbiAgICBuYW1lc3BhY2U/OiBzdHJpbmcsXG4gICk6IFNldDxzdHJpbmc+W10ge1xuICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgIGNvbnN0IGV4YWN0ID0gYmluZGluZ3MuZ2V0KGdldEJpbmRpbmdLZXkobmFtZXNwYWNlLCBpZCkpO1xuICAgICAgcmV0dXJuIGV4YWN0ID8gW2V4YWN0XSA6IFtdO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoZXM6IFNldDxzdHJpbmc+W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIG1lbWJlcnNdIG9mIGJpbmRpbmdzKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZUJpbmRpbmdLZXkoa2V5KTtcbiAgICAgIGlmIChwYXJzZWQuaWQgPT09IGlkKSB7XG4gICAgICAgIG1hdGNoZXMucHVzaChtZW1iZXJzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUm9vbUJpbmRpbmcobmFtZXNwYWNlOiBzdHJpbmcsIHJvb21JZDogV2ViU29ja2V0Um9vbUlkLCBzZXNzaW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGtleSA9IGdldEJpbmRpbmdLZXkobmFtZXNwYWNlLCByb29tSWQpO1xuICAgIGNvbnN0IG1lbWJlcnMgPSB0aGlzLnJvb21zLmdldChrZXkpO1xuICAgIGlmICghbWVtYmVycykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1lbWJlcnMuZGVsZXRlKHNlc3Npb25JZCk7XG4gICAgaWYgKG1lbWJlcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgdGhpcy5yb29tcy5kZWxldGUoa2V5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVVzZXJCaW5kaW5nKG5hbWVzcGFjZTogc3RyaW5nLCB1c2VySWQ6IFdlYlNvY2tldFVzZXJJZCwgc2Vzc2lvbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBrZXkgPSBnZXRCaW5kaW5nS2V5KG5hbWVzcGFjZSwgU3RyaW5nKHVzZXJJZCkpO1xuICAgIGNvbnN0IG1lbWJlcnMgPSB0aGlzLnVzZXJzLmdldChrZXkpO1xuICAgIGlmICghbWVtYmVycykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG1lbWJlcnMuZGVsZXRlKHNlc3Npb25JZCk7XG4gICAgaWYgKG1lbWJlcnMuc2l6ZSA9PT0gMCkge1xuICAgICAgdGhpcy51c2Vycy5kZWxldGUoa2V5KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0QmluZGluZ0tleShuYW1lc3BhY2U6IHN0cmluZywgaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtuYW1lc3BhY2V9Ojoke2lkfWA7XG59XG5cbmludGVyZmFjZSBQcmVzZW5jZUJpbmRpbmcge1xuICBuYW1lc3BhY2U6IHN0cmluZztcbiAgaWQ6IHN0cmluZztcbn1cblxuZnVuY3Rpb24gcGFyc2VCaW5kaW5nS2V5KGtleTogc3RyaW5nKTogUHJlc2VuY2VCaW5kaW5nIHtcbiAgY29uc3QgW25hbWVzcGFjZSwgLi4ucmVzdF0gPSBrZXkuc3BsaXQoXCI6OlwiKTtcbiAgcmV0dXJuIHtcbiAgICBuYW1lc3BhY2UsXG4gICAgaWQ6IHJlc3Quam9pbihcIjo6XCIpLFxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQTJUQSxTQUFTLGNBQWMsV0FBbUIsSUFBb0I7Q0FDNUQsT0FBTyxHQUFHLFVBQVUsSUFBSTtBQUMxQjtBQU9BLFNBQVMsZ0JBQWdCLEtBQThCO0NBQ3JELE1BQU0sQ0FBQyxXQUFXLEdBQUcsUUFBUSxJQUFJLE1BQU0sSUFBSTtDQUMzQyxPQUFPO0VBQ0w7RUFDQSxJQUFJLEtBQUssS0FBSyxJQUFJO0NBQ3BCO0FBQ0Y7OztDQXZTYSxpQ0FBYixNQUE4RTtFQUM1RSw4QkFBK0IsSUFBSSxJQUFzQztFQUN6RSx3QkFBeUIsSUFBSSxJQUF5QjtFQUN0RCx3QkFBeUIsSUFBSSxJQUF5QjtFQUV0RCxTQUFTLE9BS29CO0dBQzNCLE1BQU0sT0FBaUM7SUFDckMsV0FBVyxNQUFNO0lBQ2pCLFFBQVEsTUFBTTtJQUNkLFdBQVcsTUFBTTtJQUNqQixRQUFRLE1BQU0sVUFBVTtJQUN4Qix1QkFBTyxJQUFJLElBQUk7SUFDZiw2QkFBYSxJQUFJLEtBQUs7SUFDdEIsNEJBQVksSUFBSSxLQUFLO0dBQ3ZCO0dBQ0EsS0FBSyxZQUFZLElBQUksTUFBTSxXQUFXLElBQUk7R0FDMUMsT0FBTztFQUNUO0VBRUEsU0FBUyxXQUF5QjtHQUNoQyxNQUFNLE9BQU8sS0FBSyxZ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
@@ -32,10 +32,10 @@ export declare class WebSocketRegistry {
32
32
  join(connectionId: string, roomId: WebSocketRoomId): void;
33
33
  leave(connectionId: string, roomId: WebSocketRoomId): void;
34
34
  private emitMutationSkipped;
35
- broadcast(event: string, data: unknown, namespace?: string): void;
36
- publishToRoom(roomId: WebSocketRoomId, event: string, data: unknown, namespace?: string): void;
37
- publishToUser(userId: WebSocketUserId, event: string, data: unknown, namespace?: string): void;
38
- publishToAudience(audience: WebSocketAudienceSpec, event: string, data: unknown): void;
35
+ broadcast<Data>(event: string, data: Data, namespace?: string): void;
36
+ publishToRoom<Data>(roomId: WebSocketRoomId, event: string, data: Data, namespace?: string): void;
37
+ publishToUser<Data>(userId: WebSocketUserId, event: string, data: Data, namespace?: string): void;
38
+ publishToAudience<Data>(audience: WebSocketAudienceSpec, event: string, data: Data): void;
39
39
  getConnection(connectionId: string): WebSocketConnectionMeta | undefined;
40
40
  getConnectionCount(namespace?: string): number;
41
41
  getRoomMembers(roomId: WebSocketRoomId, namespace?: string): WebSocketConnectionMeta[];
@@ -1 +1 @@
1
- {"version":3,"file":"ws-registry.d.ts","sourceRoot":"","sources":["../../src/stream/ws-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-registry.d.ts","sourceRoot":"","sources":["../../src/stream/ws-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,KAAK,4BAA4B,EAClC,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,eAAe,GAChB,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAE/D,MAAM,MAAM,wBAAwB,GAAG;IAErC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,mBAAmB,CAAC,EAAE,4BAA4B,CAAC;CACpD,CAAC;AAEF,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,gCAAuC;IAChE,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;IACrD,QAAQ,CAAC,cAAc,EAAE,uBAAuB,CAAC;IACjD,QAAQ,CAAC,mBAAmB,EAAE,4BAA4B,CAAC;gBAE/C,OAAO,EAAE,wBAAwB;IAkC7C,QAAQ,CACN,UAAU,EAAE,0BAA0B,EACtC,MAAM,GAAE,OAAc,GACrB,uBAAuB;IA2B1B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAiBpC,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IA2BtC,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAIjC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAmB9D,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAoBvC,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAoBzD,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAoB1D,OAAO,CAAC,mBAAmB;IAgB3B,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAIpE,aAAa,CAAC,IAAI,EAChB,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,EACV,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAIP,aAAa,CAAC,IAAI,EAChB,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,IAAI,EACV,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IAIP,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzF,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS;IAIxE,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAI9C,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,uBAAuB,EAAE;IAItF,QAAQ,IAAI,sBAAsB;IAIlC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAIxC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI9D"}
@@ -1,4 +1,5 @@
1
1
  import { __esmMin } from "../_virtual/_rolldown/runtime.js";
2
+ import { init_runtime_value, isFunctionValue } from "../utils/runtime-value.js";
2
3
  import { WebSocketAudience, init_ws_audience } from "./ws-audience.js";
3
4
  import { WebSocketAudienceResolver, init_ws_audience_resolver } from "./ws-audience-resolver.js";
4
5
  import { NoopWebSocketClusterBus, init_ws_cluster_bus } from "./ws-cluster-bus.js";
@@ -15,10 +16,11 @@ function formatUserId(userId) {
15
16
  return userId === void 0 ? void 0 : String(userId);
16
17
  }
17
18
  function isTelemetryContextProvider(connection) {
18
- return "getTelemetryContext" in connection && typeof connection.getTelemetryContext === "function";
19
+ return "getTelemetryContext" in connection && isFunctionValue(connection.getTelemetryContext);
19
20
  }
20
21
  var WebSocketRegistry;
21
22
  var init_ws_registry = __esmMin((() => {
23
+ init_runtime_value();
22
24
  init_ws_audience();
23
25
  init_ws_audience_resolver();
24
26
  init_ws_cluster_bus();
@@ -264,4 +266,4 @@ var init_ws_registry = __esmMin((() => {
264
266
  init_ws_registry();
265
267
  export { WebSocketRegistry, init_ws_registry };
266
268
 
267
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtcmVnaXN0cnkuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmVhbS93cy1yZWdpc3RyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXZWJTb2NrZXRBdWRpZW5jZSwgdHlwZSBXZWJTb2NrZXRBdWRpZW5jZSBhcyBXZWJTb2NrZXRBdWRpZW5jZVNwZWMgfSBmcm9tIFwiLi93cy1hdWRpZW5jZVwiO1xuaW1wb3J0IHsgV2ViU29ja2V0QXVkaWVuY2VSZXNvbHZlciB9IGZyb20gXCIuL3dzLWF1ZGllbmNlLXJlc29sdmVyXCI7XG5pbXBvcnQgeyBOb29wV2ViU29ja2V0Q2x1c3RlckJ1cywgdHlwZSBXZWJTb2NrZXRDbHVzdGVyQnVzIH0gZnJvbSBcIi4vd3MtY2x1c3Rlci1idXNcIjtcbmltcG9ydCB7XG4gIHR5cGUgTWFuYWdlZFdlYlNvY2tldENvbm5lY3Rpb24sXG4gIHR5cGUgV2ViU29ja2V0UmVnaXN0cnlTdGF0cyxcbiAgdHlwZSBXZWJTb2NrZXRSb29tSWQsXG4gIHR5cGUgV2ViU29ja2V0VXNlcklkLFxufSBmcm9tIFwiLi93cy1jb3JlXCI7XG5pbXBvcnQgeyBXZWJTb2NrZXREZWxpdmVyeUVuZ2luZSB9IGZyb20gXCIuL3dzLWRlbGl2ZXJ5XCI7XG5pbXBvcnQgeyBXZWJTb2NrZXRMb2NhbENvbm5lY3Rpb25TdG9yZSB9IGZyb20gXCIuL3dzLWxvY2FsLWNvbm5lY3Rpb24tc3RvcmVcIjtcbmltcG9ydCB7XG4gIEluTWVtb3J5V2ViU29ja2V0UHJlc2VuY2VTdG9yZSxcbiAgdHlwZSBXZWJTb2NrZXRQcmVzZW5jZVN0b3JlLFxuICB0eXBlIFdlYlNvY2tldFNlc3Npb25QcmVzZW5jZSxcbn0gZnJvbSBcIi4vd3MtcHJlc2VuY2Utc3RvcmVcIjtcbmltcG9ydCB7XG4gIHR5cGUgVGVsZW1ldHJ5Q29udGV4dFByb3ZpZGVyLFxuICBOb29wV2ViU29ja2V0VGVsZW1ldHJ5Q29udHJvbGxlcixcbiAgdHlwZSBXZWJTb2NrZXRUZWxlbWV0cnlDb25uZWN0aW9uQ29udGV4dCxcbiAgdHlwZSBXZWJTb2NrZXRUZWxlbWV0cnlDb250cm9sbGVyLFxufSBmcm9tIFwiLi93cy10ZWxlbWV0cnlcIjtcblxuZXhwb3J0IHR5cGUge1xuICBNYW5hZ2VkV2ViU29ja2V0Q29ubmVjdGlvbixcbiAgV2ViU29ja2V0UmVnaXN0cnlTdGF0cyxcbiAgV2ViU29ja2V0Um9vbUlkLFxuICBXZWJTb2NrZXRVc2VySWQsXG59O1xuZXhwb3J0IHR5cGUgV2ViU29ja2V0Q29ubmVjdGlvbk1ldGEgPSBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2U7XG5cbmV4cG9ydCB0eXBlIFdlYlNvY2tldFJlZ2lzdHJ5T3B0aW9ucyA9IHtcbiAgLy8g67aE7IKwIO2ZmOqyveyXkOyEnCDrhbjrk5wg6rCEIOudvOyasO2MhSDsi53rs4TsnpDroZwg7JOw7J2066+A66GcIOuwmOuTnOyLnCDtmLjstpwg7LihKFdlYlNvY2tldFJ1bnRpbWUp7JeQ7IScIOqysOygle2VtCDrhJjquLTri6RcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIHByZXNlbmNlU3RvcmU/OiBXZWJTb2NrZXRQcmVzZW5jZVN0b3JlO1xuICBjbHVzdGVyQnVzPzogV2ViU29ja2V0Q2x1c3RlckJ1cztcbiAgdGVsZW1ldHJ5Q29udHJvbGxlcj86IFdlYlNvY2tldFRlbGVtZXRyeUNvbnRyb2xsZXI7XG59O1xuXG5leHBvcnQgY2xhc3MgV2ViU29ja2V0UmVnaXN0cnkge1xuICByZWFkb25seSBub2RlSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgbG9jYWxDb25uZWN0aW9ucyA9IG5ldyBXZWJTb2NrZXRMb2NhbENvbm5lY3Rpb25TdG9yZSgpO1xuICByZWFkb25seSBwcmVzZW5jZVN0b3JlOiBXZWJTb2NrZXRQcmVzZW5jZVN0b3JlO1xuICByZWFkb25seSBjbHVzdGVyQnVzOiBXZWJTb2NrZXRDbHVzdGVyQnVzO1xuICByZWFkb25seSBhdWRpZW5jZVJlc29sdmVyOiBXZWJTb2NrZXRBdWRpZW5jZVJlc29sdmVyO1xuICByZWFkb25seSBkZWxpdmVyeUVuZ2luZTogV2ViU29ja2V0RGVsaXZlcnlFbmdpbmU7XG4gIHJlYWRvbmx5IHRlbGVtZXRyeUNvbnRyb2xsZXI6IFdlYlNvY2tldFRlbGVtZXRyeUNvbnRyb2xsZXI7XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogV2ViU29ja2V0UmVnaXN0cnlPcHRpb25zKSB7XG4gICAgdGhpcy5ub2RlSWQgPSBvcHRpb25zLm5vZGVJZDtcbiAgICB0aGlzLnByZXNlbmNlU3RvcmUgPSBvcHRpb25zLnByZXNlbmNlU3RvcmUgPz8gbmV3IEluTWVtb3J5V2ViU29ja2V0UHJlc2VuY2VTdG9yZSgpO1xuICAgIHRoaXMuY2x1c3RlckJ1cyA9IG9wdGlvbnMuY2x1c3RlckJ1cyA/PyBuZXcgTm9vcFdlYlNvY2tldENsdXN0ZXJCdXMoKTtcbiAgICB0aGlzLnRlbGVtZXRyeUNvbnRyb2xsZXIgPVxuICAgICAgb3B0aW9ucy50ZWxlbWV0cnlDb250cm9sbGVyID8/IG5ldyBOb29wV2ViU29ja2V0VGVsZW1ldHJ5Q29udHJvbGxlcigpO1xuICAgIHRoaXMuYXVkaWVuY2VSZXNvbHZlciA9IG5ldyBXZWJTb2NrZXRBdWRpZW5jZVJlc29sdmVyKHtcbiAgICAgIG5vZGVJZDogdGhpcy5ub2RlSWQsXG4gICAgICBwcmVzZW5jZVN0b3JlOiB0aGlzLnByZXNlbmNlU3RvcmUsXG4gICAgfSk7XG4gICAgdGhpcy5kZWxpdmVyeUVuZ2luZSA9IG5ldyBXZWJTb2NrZXREZWxpdmVyeUVuZ2luZSh7XG4gICAgICBub2RlSWQ6IHRoaXMubm9kZUlkLFxuICAgICAgbG9jYWxDb25uZWN0aW9uczogdGhpcy5sb2NhbENvbm5lY3Rpb25zLFxuICAgICAgYXVkaWVuY2VSZXNvbHZlcjogdGhpcy5hdWRpZW5jZVJlc29sdmVyLFxuICAgICAgY2x1c3RlckJ1czogdGhpcy5jbHVzdGVyQnVzLFxuICAgICAgdGVsZW1ldHJ5Q29udHJvbGxlcjogdGhpcy50ZWxlbWV0cnlDb250cm9sbGVyLFxuICAgIH0pO1xuXG4gICAgdGhpcy50ZWxlbWV0cnlDb250cm9sbGVyLnJlZ2lzdGVyTWV0cmljU291cmNlKHtcbiAgICAgIGNvbGxlY3Q6IChfbm93KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRzID0gdGhpcy5wcmVzZW5jZVN0b3JlLmdldFN0YXRzKCk7XG4gICAgICAgIGNvbnN0IGxvY2FsU25hcHNob3QgPSB0aGlzLmxvY2FsQ29ubmVjdGlvbnMuZ2V0VGVsZW1ldHJ5U25hcHNob3QoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhY3RpdmVDb25uZWN0aW9uczogc3RhdHMudG90YWxDb25uZWN0aW9ucyxcbiAgICAgICAgICBhY3RpdmVDb25uZWN0aW9uc0J5TmFtZXNwYWNlOiBzdGF0cy5ieU5hbWVzcGFjZSxcbiAgICAgICAgICByb29tQ291bnQ6IHN0YXRzLnRvdGFsUm9vbXMsXG4gICAgICAgICAgcGVuZGluZ0luYm91bmRNZXNzYWdlczogbG9jYWxTbmFwc2hvdC5wZW5kaW5nSW5ib3VuZE1lc3NhZ2VzLFxuICAgICAgICAgIHBlbmRpbmdPdXRib3VuZE1lc3NhZ2VzOiBsb2NhbFNuYXBzaG90LnBlbmRpbmdPdXRib3VuZE1lc3NhZ2VzLFxuICAgICAgICAgIHNvY2tldEJ1ZmZlcmVkQnl0ZXM6IGxvY2FsU25hcHNob3Quc29ja2V0QnVmZmVyZWRCeXRlcyxcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICByZWdpc3RlcihcbiAgICBjb25uZWN0aW9uOiBNYW5hZ2VkV2ViU29ja2V0Q29ubmVjdGlvbixcbiAgICBhY3RpdmU6IGJvb2xlYW4gPSB0cnVlLFxuICApOiBXZWJTb2NrZXRDb25uZWN0aW9uTWV0YSB7XG4gICAgdGhpcy5sb2NhbENvbm5lY3Rpb25zLnJlZ2lzdGVyKGNvbm5lY3Rpb24pO1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLnByZXNlbmNlU3RvcmUucmVnaXN0ZXIoe1xuICAgICAgc2Vzc2lvbklkOiBjb25uZWN0aW9uLmlkLFxuICAgICAgbm9kZUlkOiB0aGlzLm5vZGVJZCxcbiAgICAgIG5hbWVzcGFjZTogY29ubmVjdGlvbi5uYW1lc3BhY2UsXG4gICAgICBhY3RpdmUsXG4gICAgfSk7XG4gICAgdGhpcy50ZWxlbWV0cnlDb250cm9sbGVyLmVtaXQoe1xuICAgICAgbmFtZTogXCJ3cy5jb25uZWN0aW9uLnJlZ2lzdGVyZWRcIixcbiAgICAgIGxldmVsOiBcImluZm9cIixcbiAgICAgIGNvbm5lY3Rpb25JZDogY29ubmVjdGlvbi5pZCxcbiAgICAgIG5hbWVzcGFjZTogY29ubmVjdGlvbi5uYW1lc3BhY2UsXG4gICAgICB1c2VySWQ6IGNvbm5lY3Rpb24udXNlcklkLFxuICAgICAgLi4uZ2V0Q29ubmVjdGlvblRlbGVtZXRyeUNvbnRleHQoY29ubmVjdGlvbiksXG4gICAgfSk7XG4gICAgdGhpcy50ZWxlbWV0cnlDb250cm9sbGVyLnJlY29yZE1ldHJpYyh7XG4gICAgICBuYW1lOiBcInNvbmFtdS53cy5jb25uZWN0aW9uc1wiLFxuICAgICAga2luZDogXCJjb3VudGVyXCIsXG4gICAgICB2YWx1ZTogMSxcbiAgICAgIHVuaXQ6IFwiMVwiLFxuICAgICAgdGFnczogeyBvdXRjb21lOiBcInJlZ2lzdGVyZWRcIiwgbmFtZXNwYWNlOiBjb25uZWN0aW9uLm5hbWVzcGFjZSB9LFxuICAgICAgdXNlcklkOiBjb25uZWN0aW9uLnVzZXJJZCxcbiAgICB9KTtcbiAgICByZXR1cm4gbWV0YTtcbiAgfVxuXG4gIGFjdGl2YXRlKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnByZXNlbmNlU3RvcmUuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQpKSB7XG4gICAgICB0aGlzLmVtaXRNdXRhdGlvblNraXBwZWQoY29ubmVjdGlvbklkLCB7IG9wZXJhdGlvbjogXCJhY3RpdmF0ZVwiIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJlc2VuY2VTdG9yZS5hY3RpdmF0ZShjb25uZWN0aW9uSWQpO1xuICAgIGNvbnN0IGNvbm5lY3Rpb24gPSB0aGlzLmxvY2FsQ29ubmVjdGlvbnMuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQpO1xuICAgIHRoaXMudGVsZW1ldHJ5Q29udHJvbGxlci5lbWl0KHtcbiAgICAgIG5hbWU6IFwid3MuY29ubmVjdGlvbi5hY3RpdmF0ZWRcIixcbiAgICAgIGxldmVsOiBcImluZm9cIixcbiAgICAgIGNvbm5lY3Rpb25JZCxcbiAgICAgIHVzZXJJZDogY29ubmVjdGlvbj8udXNlcklkLFxuICAgICAgLi4uZ2V0Q29ubmVjdGlvblRlbGVtZXRyeUNvbnRleHQoY29ubmVjdGlvbiksXG4gICAgfSk7XG4gIH1cblxuICB1bnJlZ2lzdGVyKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgY29ubmVjdGlvbiA9IHRoaXMubG9jYWxDb25uZWN0aW9ucy5nZXRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZCk7XG4gICAgY29uc3QgdGVsZW1ldHJ5Q29udGV4dCA9IGdldENvbm5lY3Rpb25UZWxlbWV0cnlDb250ZXh0KGNvbm5lY3Rpb24pO1xuICAgIGNvbnN0IHVzZXJJZCA9XG4gICAgICBjb25uZWN0aW9uPy51c2VySWQgPz8gZm9ybWF0VXNlcklkKHRoaXMucHJlc2VuY2VTdG9yZS5nZXRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZCk/LnVzZXJJZCk7XG4gICAgY29uc3QgbWV0YSA9IHRoaXMucHJlc2VuY2VTdG9yZS51bnJlZ2lzdGVyKGNvbm5lY3Rpb25JZCk7XG4gICAgdGhpcy5sb2NhbENvbm5lY3Rpb25zLnVucmVnaXN0ZXIoY29ubmVjdGlvbklkKTtcbiAgICB0aGlzLnRlbGVtZXRyeUNvbnRyb2xsZXIuZW1pdCh7XG4gICAgICBuYW1lOiBcIndzLmNvbm5lY3Rpb24udW5yZWdpc3RlcmVkXCIsXG4gICAgICBsZXZlbDogXCJkZWJ1Z1wiLFxuICAgICAgY29ubmVjdGlvbklkLFxuICAgICAgbmFtZXNwYWNlOiBtZXRhPy5uYW1lc3BhY2UsXG4gICAgICB1c2VySWQsXG4gICAgICAuLi50ZWxlbWV0cnlDb250ZXh0LFxuICAgIH0pO1xuICAgIGlmIChtZXRhKSB7XG4gICAgICB0aGlzLnRlbGVtZXRyeUNvbnRyb2xsZXIucmVjb3JkTWV0cmljKHtcbiAgICAgICAgbmFtZTogXCJzb25hbXUud3MuY29ubmVjdGlvbnNcIixcbiAgICAgICAga2luZDogXCJjb3VudGVyXCIsXG4gICAgICAgIHZhbHVlOiAxLFxuICAgICAgICB1bml0OiBcIjFcIixcbiAgICAgICAgdGFnczogeyBvdXRjb21lOiBcInVucmVnaXN0ZXJlZFwiLCBuYW1lc3BhY2U6IG1ldGEubmFtZXNwYWNlIH0sXG4gICAgICAgIHVzZXJJZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHRvdWNoKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wcmVzZW5jZVN0b3JlLnRvdWNoKGNvbm5lY3Rpb25JZCk7XG4gIH1cblxuICBzZXRVc2VySWQoY29ubmVjdGlvbklkOiBzdHJpbmcsIHVzZXJJZDogV2ViU29ja2V0VXNlcklkKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnByZXNlbmNlU3RvcmUuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQpKSB7XG4gICAgICB0aGlzLmVtaXRNdXRhdGlvblNraXBwZWQoY29ubmVjdGlvbklkLCB7IG9wZXJhdGlvbjogXCJzZXRVc2VySWRcIiwgdXNlcklkIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJlc2VuY2VTdG9yZS5zZXRVc2VySWQoY29ubmVjdGlvbklkLCB1c2VySWQpO1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLnByZXNlbmNlU3RvcmUuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQpO1xuICAgIHRoaXMudGVsZW1ldHJ5Q29udHJvbGxlci5lbWl0KHtcbiAgICAgIG5hbWU6IFwid3MudXNlci5ib3VuZFwiLFxuICAgICAgbGV2ZWw6IFwiZGVidWdcIixcbiAgICAgIGNvbm5lY3Rpb25JZCxcbiAgICAgIG5hbWVzcGFjZTogbWV0YT8ubmFtZXNwYWNlLFxuICAgICAgdXNlcklkOiBTdHJpbmcodXNlcklkKSxcbiAgICAgIGRldGFpbDogeyB1c2VySWQgfSxcbiAgICAgIC4uLmdldENvbm5lY3Rpb25UZWxlbWV0cnlDb250ZXh0KHRoaXMubG9jYWxDb25uZWN0aW9ucy5nZXRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZCkpLFxuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJVc2VySWQoY29ubmVjdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBtZXRhID0gdGhpcy5wcmVzZW5jZVN0b3JlLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKTtcbiAgICBpZiAoIW1ldGEpIHtcbiAgICAgIHRoaXMuZW1pdE11dGF0aW9uU2tpcHBlZChjb25uZWN0aW9uSWQsIHsgb3BlcmF0aW9uOiBcImNsZWFyVXNlcklkXCIgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdXNlcklkID0gbWV0YS51c2VySWQ7XG4gICAgdGhpcy5wcmVzZW5jZVN0b3JlLmNsZWFyVXNlcklkKGNvbm5lY3Rpb25JZCk7XG4gICAgdGhpcy50ZWxlbWV0cnlDb250cm9sbGVyLmVtaXQoe1xuICAgICAgbmFtZTogXCJ3cy51c2VyLmNsZWFyZWRcIixcbiAgICAgIGxldmVsOiBcImRlYnVnXCIsXG4gICAgICBjb25uZWN0aW9uSWQsXG4gICAgICBuYW1lc3BhY2U6IG1ldGEubmFtZXNwYWNlLFxuICAgICAgdXNlcklkOiBmb3JtYXRVc2VySWQodXNlcklkKSxcbiAgICAgIGRldGFpbDogdXNlcklkICE9PSB1bmRlZmluZWQgPyB7IHVzZXJJZCB9IDogdW5kZWZpbmVkLFxuICAgICAgLi4uZ2V0Q29ubmVjdGlvblRlbGVtZXRyeUNvbnRleHQodGhpcy5sb2NhbENvbm5lY3Rpb25zLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKSksXG4gICAgfSk7XG4gIH1cblxuICBqb2luKGNvbm5lY3Rpb25JZDogc3RyaW5nLCByb29tSWQ6IFdlYlNvY2tldFJvb21JZCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcmVzZW5jZVN0b3JlLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKSkge1xuICAgICAgdGhpcy5lbWl0TXV0YXRpb25Ta2lwcGVkKGNvbm5lY3Rpb25JZCwgeyBvcGVyYXRpb246IFwiam9pblwiLCByb29tSWQgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wcmVzZW5jZVN0b3JlLmpvaW4oY29ubmVjdGlvbklkLCByb29tSWQpO1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLnByZXNlbmNlU3RvcmUuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQpO1xuICAgIGNvbnN0IGNvbm5lY3Rpb24gPSB0aGlzLmxvY2FsQ29ubmVjdGlvbnMuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQpO1xuICAgIHRoaXMudGVsZW1ldHJ5Q29udHJvbGxlci5lbWl0KHtcbiAgICAgIG5hbWU6IFwid3Mucm9vbS5qb2luZWRcIixcbiAgICAgIGxldmVsOiBcImRlYnVnXCIsXG4gICAgICBjb25uZWN0aW9uSWQsXG4gICAgICBuYW1lc3BhY2U6IG1ldGE/Lm5hbWVzcGFjZSxcbiAgICAgIHVzZXJJZDogY29ubmVjdGlvbj8udXNlcklkID8/IGZvcm1hdFVzZXJJZChtZXRhPy51c2VySWQpLFxuICAgICAgZGV0YWlsOiB7IHJvb21JZCB9LFxuICAgICAgLi4uZ2V0Q29ubmVjdGlvblRlbGVtZXRyeUNvbnRleHQoY29ubmVjdGlvbiksXG4gICAgfSk7XG4gIH1cblxuICBsZWF2ZShjb25uZWN0aW9uSWQ6IHN0cmluZywgcm9vbUlkOiBXZWJTb2NrZXRSb29tSWQpOiB2b2lkIHtcbiAgICBjb25zdCBtZXRhID0gdGhpcy5wcmVzZW5jZVN0b3JlLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKTtcbiAgICBpZiAoIW1ldGEpIHtcbiAgICAgIHRoaXMuZW1pdE11dGF0aW9uU2tpcHBlZChjb25uZWN0aW9uSWQsIHsgb3BlcmF0aW9uOiBcImxlYXZlXCIsIHJvb21JZCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByZXNlbmNlU3RvcmUubGVhdmUoY29ubmVjdGlvbklkLCByb29tSWQpO1xuICAgIGNvbnN0IGNvbm5lY3Rpb24gPSB0aGlzLmxvY2FsQ29ubmVjdGlvbnMuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQpO1xuICAgIHRoaXMudGVsZW1ldHJ5Q29udHJvbGxlci5lbWl0KHtcbiAgICAgIG5hbWU6IFwid3Mucm9vbS5sZWZ0XCIsXG4gICAgICBsZXZlbDogXCJkZWJ1Z1wiLFxuICAgICAgY29ubmVjdGlvbklkLFxuICAgICAgbmFtZXNwYWNlOiBtZXRhLm5hbWVzcGFjZSxcbiAgICAgIHVzZXJJZDogY29ubmVjdGlvbj8udXNlcklkID8/IGZvcm1hdFVzZXJJZChtZXRhLnVzZXJJZCksXG4gICAgICBkZXRhaWw6IHsgcm9vbUlkIH0sXG4gICAgICAuLi5nZXRDb25uZWN0aW9uVGVsZW1ldHJ5Q29udGV4dChjb25uZWN0aW9uKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdE11dGF0aW9uU2tpcHBlZChcbiAgICBjb25uZWN0aW9uSWQ6IHN0cmluZyxcbiAgICBkZXRhaWw6IHtcbiAgICAgIG9wZXJhdGlvbjogXCJhY3RpdmF0ZVwiIHwgXCJzZXRVc2VySWRcIiB8IFwiY2xlYXJVc2VySWRcIiB8IFwiam9pblwiIHwgXCJsZWF2ZVwiO1xuICAgICAgcm9vbUlkPzogV2ViU29ja2V0Um9vbUlkO1xuICAgICAgdXNlcklkPzogV2ViU29ja2V0VXNlcklkO1xuICAgIH0sXG4gICk6IHZvaWQge1xuICAgIHRoaXMudGVsZW1ldHJ5Q29udHJvbGxlci5lbWl0KHtcbiAgICAgIG5hbWU6IFwid3MucmVnaXN0cnkubXV0YXRpb24uc2tpcHBlZFwiLFxuICAgICAgbGV2ZWw6IFwiZGVidWdcIixcbiAgICAgIGNvbm5lY3Rpb25JZCxcbiAgICAgIGRldGFpbDogeyAuLi5kZXRhaWwsIHJlYXNvbjogXCJjb25uZWN0aW9uTWlzc2luZ1wiIH0sXG4gICAgfSk7XG4gIH1cblxuICBicm9hZGNhc3QoZXZlbnQ6IHN0cmluZywgZGF0YTogdW5rbm93biwgbmFtZXNwYWNlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wdWJsaXNoVG9BdWRpZW5jZShXZWJTb2NrZXRBdWRpZW5jZS5hbGwobmFtZXNwYWNlKSwgZXZlbnQsIGRhdGEpO1xuICB9XG5cbiAgcHVibGlzaFRvUm9vbShyb29tSWQ6IFdlYlNvY2tldFJvb21JZCwgZXZlbnQ6IHN0cmluZywgZGF0YTogdW5rbm93biwgbmFtZXNwYWNlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wdWJsaXNoVG9BdWRpZW5jZShXZWJTb2NrZXRBdWRpZW5jZS5yb29tKHJvb21JZCwgbmFtZXNwYWNlKSwgZXZlbnQsIGRhdGEpO1xuICB9XG5cbiAgcHVibGlzaFRvVXNlcih1c2VySWQ6IFdlYlNvY2tldFVzZXJJZCwgZXZlbnQ6IHN0cmluZywgZGF0YTogdW5rbm93biwgbmFtZXNwYWNlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wdWJsaXNoVG9BdWRpZW5jZShXZWJTb2NrZXRBdWRpZW5jZS51c2VyKHVzZXJJZCwgbmFtZXNwYWNlKSwgZXZlbnQsIGRhdGEpO1xuICB9XG5cbiAgcHVibGlzaFRvQXVkaWVuY2UoYXVkaWVuY2U6IFdlYlNvY2tldEF1ZGllbmNlU3BlYywgZXZlbnQ6IHN0cmluZywgZGF0YTogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMuZGVsaXZlcnlFbmdpbmUucHVibGlzaFRvQXVkaWVuY2UoYXVkaWVuY2UsIGV2ZW50LCBkYXRhKTtcbiAgfVxuXG4gIGdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkOiBzdHJpbmcpOiBXZWJTb2NrZXRDb25uZWN0aW9uTWV0YSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucHJlc2VuY2VTdG9yZS5nZXRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZCk7XG4gIH1cblxuICBnZXRDb25uZWN0aW9uQ291bnQobmFtZXNwYWNlPzogc3RyaW5nKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wcmVzZW5jZVN0b3JlLmdldENvbm5lY3Rpb25Db3VudChuYW1lc3BhY2UpO1xuICB9XG5cbiAgZ2V0Um9vbU1lbWJlcnMocm9vbUlkOiBXZWJTb2NrZXRSb29tSWQsIG5hbWVzcGFjZT86IHN0cmluZyk6IFdlYlNvY2tldENvbm5lY3Rpb25NZXRhW10ge1xuICAgIHJldHVybiB0aGlzLnByZXNlbmNlU3RvcmUuZ2V0Um9vbU1lbWJlcnMocm9vbUlkLCBuYW1lc3BhY2UpO1xuICB9XG5cbiAgZ2V0U3RhdHMoKTogV2ViU29ja2V0UmVnaXN0cnlTdGF0cyB7XG4gICAgcmV0dXJuIHRoaXMucHJlc2VuY2VTdG9yZS5nZXRTdGF0cygpO1xuICB9XG5cbiAgY2xvc2VBbGwoY29kZT86IG51bWJlciwgcmVhc29uPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbENvbm5lY3Rpb25zLmNsb3NlQWxsKGNvZGUsIHJlYXNvbik7XG4gIH1cblxuICBhc3luYyBzaHV0ZG93bihjb2RlPzogbnVtYmVyLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNsb3NlQWxsKGNvZGUsIHJlYXNvbik7XG4gICAgYXdhaXQgdGhpcy5kZWxpdmVyeUVuZ2luZS5zaHV0ZG93bigpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldENvbm5lY3Rpb25UZWxlbWV0cnlDb250ZXh0KFxuICBjb25uZWN0aW9uOiBNYW5hZ2VkV2ViU29ja2V0Q29ubmVjdGlvbiB8IHVuZGVmaW5lZCxcbik6IFdlYlNvY2tldFRlbGVtZXRyeUNvbm5lY3Rpb25Db250ZXh0IHtcbiAgaWYgKCFjb25uZWN0aW9uIHx8ICFpc1RlbGVtZXRyeUNvbnRleHRQcm92aWRlcihjb25uZWN0aW9uKSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIHJldHVybiBjb25uZWN0aW9uLmdldFRlbGVtZXRyeUNvbnRleHQoKTtcbn1cblxuLy8gdGVsZW1ldHJ5IHJlY29yZOydmCB1c2VySWTripQgc3RyaW5nIOygleq3nO2ZlCDigJQgcHJlc2VuY2Ugc3RvcmXripQgbnVtYmVyIHwgc3RyaW5nIOq3uOuMgOuhnCDrs7TqtIDtlahcbmZ1bmN0aW9uIGZvcm1hdFVzZXJJZCh1c2VySWQ6IFdlYlNvY2tldFVzZXJJZCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB1c2VySWQgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IFN0cmluZyh1c2VySWQpO1xufVxuXG5mdW5jdGlvbiBpc1RlbGVtZXRyeUNvbnRleHRQcm92aWRlcihcbiAgY29ubmVjdGlvbjogTWFuYWdlZFdlYlNvY2tldENvbm5lY3Rpb24sXG4pOiBjb25uZWN0aW9uIGlzIE1hbmFnZWRXZWJTb2NrZXRDb25uZWN0aW9uICYgVGVsZW1ldHJ5Q29udGV4dFByb3ZpZGVyIHtcbiAgcmV0dXJuIChcbiAgICBcImdldFRlbGVtZXRyeUNvbnRleHRcIiBpbiBjb25uZWN0aW9uICYmIHR5cGVvZiBjb25uZWN0aW9uLmdldFRlbGVtZXRyeUNvbnRleHQgPT09IFwiZnVuY3Rpb25cIlxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUF5U0EsU0FBUyw4QkFDUCxZQUNxQztDQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixVQUFVLEdBQ3ZELE9BQU8sQ0FBQztDQUdWLE9BQU8sV0FBVyxvQkFBb0I7QUFDeEM7QUFHQSxTQUFTLGFBQWEsUUFBeUQ7Q0FDN0UsT0FBTyxXQUFXLFNBQVksU0FBWSxPQUFPLE1BQU07QUFDekQ7QUFFQSxTQUFTLDJCQUNQLFlBQ3FFO0NBQ3JFLE9BQ0UseUJBQXlCLGNBQWMsT0FBTyxXQUFXLHdCQUF3QjtBQUVyRjs7O2tCQTlUa0c7MkJBQ2hDO3FCQUNrQjtrQkFPN0I7Z0NBQ29CO3dCQUsvQzttQkFNTDtDQWtCVixvQkFBYixNQUErQjtFQUM3QjtFQUNBLG1CQUE0QixJQUFJLDhCQUE4QjtFQUM5RDtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUEsWUFBWSxTQUFtQztHQUM3QyxLQUFLLFNBQVMsUUFBUTtHQUN0QixLQUFLLGdCQUFnQixRQUFRLGlCQUFpQixJQUFJLCtCQUErQjtHQUNqRixLQUFLLGFBQWEsUUFBUSxjQUFjLElBQUksd0JBQXdCO0dBQ3BFLEtBQUssc0JBQ0gsUUFBUSx1QkFBdUIsSUFBSSxpQ0FBaUM7R0FDdEUsS0FBSyxtQkFBbUIsSUFBSSwwQkFBMEI7SUFDcEQsUUFBUSxLQUFLO0lBQ2IsZUFBZSxLQUFLO0dBQ3RCLENBQUM7R0FDRCxLQUFLLGlCQUFpQixJQUFJLHdCQUF3QjtJQUNoRCxRQUFRLEtBQUs7SUFDYixrQkFBa0IsS0FBSztJQUN2QixrQkFBa0IsS0FBSztJQUN2QixZQUFZLEtBQUs7SUFDakIscUJBQXFCLEtBQUs7R0FDNUIsQ0FBQztHQUVELEtBQUssb0JBQW9CLHFCQUFxQixFQUM1QyxVQUFVLFNBQVM7SUFDakIsTUFBTSxRQUFRLEtBQUssY0FBYyxTQUFTO0lBQzFDLE1BQU0sZ0JBQWdCLEtBQUssaUJBQWlCLHFCQUFxQjtJQUNqRSxPQUFPO0tBQ0wsbUJBQW1CLE1BQU07S0FDekIsOEJBQThCLE1BQU07S0FDcEMsV0FBVyxNQUFNO0tBQ2pCLHdCQUF3QixjQUFjO0tBQ3RDLHlCQUF5QixjQUFjO0tBQ3ZDLHFCQUFxQixjQUFjO0lBQ3JDO0dBQ0YsRUFDRixDQUFDO0VBQ0g7RUFFQSxTQUNFLFlBQ0EsU0FBa0IsTUFDTztHQUN6QixLQUFLLGlCQUFpQixTQUFTLFVBQVU7R0FDekMsTUFBTSxPQUFPLEtBQUssY0FBYyxTQUFTO0lBQ3ZDLFdBQVcsV0FBVztJQUN0QixRQUFRLEtBQUs7SUFDYixXQUFXLFdBQVc7SUFDdEI7R0FDRixDQUFDO0dBQ0QsS0FBSyxvQkFBb0IsS0FBSztJQUM1QixNQUFNO0lBQ04sT0FBTztJQUNQLGNBQWMsV0FBVztJQUN6QixXQUFXLFdBQVc7SUFDdEIsUUFBUSxXQUFXO0lBQ25CLEdBQUcsOEJBQThCLFVBQVU7R0FDN0MsQ0FBQztHQUNELEtBQUssb0JBQW9CLGFBQWE7SUFDcEMsTUFBTTtJQUNOLE1BQU07SUFDTixPQUFPO0lBQ1AsTUFBTTtJQUNOLE1BQU07S0FBRSxTQUFTO0tBQWMsV0FBVyxXQUFXO0lBQVU7SUFDL0QsUUFBUSxXQUFXO0dBQ3JCLENBQUM7R0FDRCxPQUFPO0VBQ1Q7RUFFQSxTQUFTLGNBQTRCO0dBQ25DLElBQUksQ0FBQyxLQUFLLGNBQWMsY0FBYyxZQUFZLEdBQUc7SUFDbkQsS0FBSyxvQkFBb0IsY0FBYyxFQUFFLFdBQVcsV0FBVyxDQUFDO0lBQ2hFO0dBQ0Y7R0FFQSxLQUFLLGNBQWMsU0FBUyxZQUFZO0dBQ3hDLE1BQU0sYUFBYSxLQUFLLGlCQUFpQixjQUFjLFlBQVk7R0FDbkUsS0FBSyxvQkFBb0IsS0FBSztJQUM1QixNQUFNO0lBQ04sT0FBTztJQUNQO0lBQ0EsUUFBUSxZQUFZO0lBQ3BCLEdBQUcsOEJBQThCLFVBQVU7R0FDN0MsQ0FBQztFQUNIO0VBRUEsV0FBVyxjQUE0QjtHQUNyQyxNQUFNLGFBQWEsS0FBSyxpQkFBaUIsY0FBYyxZQUFZO0dBQ25FLE1BQU0sbUJBQW1CLDhCQUE4QixVQUFVO0dBQ2pFLE1BQU0sU0FDSixZQUFZLFVBQVUsYUFBYSxLQUFLLGNBQWMsY0FBYyxZQUFZLENBQUMsRUFBRSxNQUFNO0dBQzNGLE1BQU0sT0FBTyxLQUFLLGNBQWMsV0FBVyxZQUFZO0dBQ3ZELEtBQUssaUJBQWlCLFdBQVcsWUFBWTtHQUM3QyxLQUFLLG9CQUFvQixLQUFLO0lBQzVCLE1BQU07SUFDTixPQUFPO0lBQ1A7SUFDQSxXQUFXLE1BQU07SUFDakI7SUFDQSxHQUFHO0dBQ0wsQ0FBQztHQUNELElBQUksTUFDRixLQUFLLG9CQUFvQixhQUFhO0lBQ3BDLE1BQU07SUFDTixNQUFNO0lBQ04sT0FBTztJQUNQLE1BQU07SUFDTixNQUFNO0tBQUUsU0FBUztLQUFnQixXQUFXLEtBQUs7SUFBVTtJQUMzRDtHQUNGLENBQUM7RUFFTDtFQUVBLE1BQU0sY0FBNEI7R0FDaEMsS0FBSyxjQUFjLE1BQU0sWUFBWTtFQUN2QztFQUVBLFVBQVUsY0FBc0IsUUFBK0I7R0FDN0QsSUFBSSxDQUFDLEtBQUssY0FBYyxjQUFjLFlBQVksR0FBRztJQUNuRCxLQUFLLG9CQUFvQixjQUFjO0tBQUUsV0FBVztLQUFhO0lBQU8sQ0FBQztJQUN6RTtHQUNGO0dBRUEsS0FBSyxjQUFjLFVBQVUsY0FBYyxNQUFNO0dBQ2pELE1BQU0sT0FBTyxLQUFLLGNBQWMsY0FBYyxZQUFZO0dBQzFELEtBQUssb0JBQW9CLEtBQUs7SUFDNUIsTUFBTTtJQUNOLE9BQU87SUFDUDtJQUNBLFdBQVcsTUFBTTtJQUNqQixRQUFRLE9BQU8sTUFBTTtJQUNyQixRQUFRLEVBQUUsT0FBTztJQUNqQixHQUFHLDhCQUE4QixLQUFLLGlCQUFpQixjQUFjLFlBQVksQ0FBQztHQUNwRixDQUFDO0VBQ0g7RUFFQSxZQUFZLGNBQTRCO0dBQ3RDLE1BQU0sT0FBTyxLQUFLLGNBQWMsY0FBYyxZQUFZO0dBQzFELElBQUksQ0FBQyxNQUFNO0lBQ1QsS0FBSyxvQkFBb0IsY0FBYyxFQUFFLFdBQVcsY0FBYyxDQUFDO0lBQ25FO0dBQ0Y7R0FFQSxNQUFNLFNBQVMsS0FBSztHQUNwQixLQUFLLGNBQWMsWUFBWSxZQUFZO0dBQzNDLEtBQUssb0JBQW9CLEtBQUs7SUFDNUIsTUFBTTtJQUNOLE9BQU87SUFDUDtJQUNBLFdBQVcsS0FBSztJQUNoQixRQUFRLGFBQWEsTUFBTTtJQUMzQixRQUFRLFdBQVcsU0FBWSxFQUFFLE9BQU8sSUFBSTtJQUM1QyxHQUFHLDhCQUE4QixLQUFLLGlCQUFpQixjQUFjLFlBQVksQ0FBQztHQUNwRixDQUFDO0VBQ0g7RUFFQSxLQUFLLGNBQXNCLFFBQStCO0dBQ3hELElBQUksQ0FBQyxLQUFLLGNBQWMsY0FBYyxZQUFZLEdBQUc7SUFDbkQsS0FBSyxvQkFBb0IsY0FBYztLQUFFLFdBQVc7S0FBUTtJQUFPLENBQUM7SUFDcEU7R0FDRjtHQUVBLEtBQUssY0FBYyxLQUFLLGNBQWMsTUFBTTtHQUM1QyxNQUFNLE9BQU8sS0FBSyxjQUFjLGNBQWMsWUFBWTtHQUMxRCxNQUFNLGFBQWEsS0FBSyxpQkFBaUIsY0FBYyxZQUFZO0dBQ25FLEtBQUssb0JBQW9CLEtBQUs7SUFDNUIsTUFBTTtJQUNOLE9BQU87SUFDUDtJQUNBLFdBQVcsTUFBTTtJQUNqQixRQUFRLFlBQVksVUFBVSxhQUFhLE1BQU0sTUFBTTtJQUN2RCxRQUFRLEVBQUUsT0FBTztJQUNqQixHQUFHLDhCQUE4QixVQUFVO0dBQzdDLENBQUM7RUFDSDtFQUVBLE1BQU0sY0FBc0IsUUFBK0I7R0FDekQsTUFBTSxPQUFPLEtBQUssY0FBYyxjQUFjLFlBQVk7R0FDMUQsSUFBSSxDQUFDLE1BQU07SUFDVCxLQUFLLG9CQUFvQixjQUFjO0tBQUUsV0FBVztLQUFTO0lBQU8sQ0FBQztJQUNyRTtHQUNGO0dBRUEsS0FBSyxjQUFjLE1BQU0sY0FBYyxNQUFNO0dBQzdDLE1BQU0sYUFBYSxLQUFLLGlCQUFpQixjQUFjLFlBQVk7R0FDbkUsS0FBSyxvQkFBb0IsS0FBSztJQUM1QixNQUFNO0lBQ04sT0FBTztJQUNQO0lBQ0EsV0FBVyxLQUFLO0lBQ2hCLFFBQVEsWUFBWSxVQUFVLGFBQWEsS0FBSyxNQUFNO0lBQ3RELFFBQVEsRUFBRSxPQUFPO0lBQ2pCLEdBQUcsOEJBQThCLFVBQVU7R0FDN0MsQ0FBQztFQUNIO0VBRUEsb0JBQ0UsY0FDQSxRQUtNO0dBQ04sS0FBSyxvQkFBb0IsS0FBSztJQUM1QixNQUFNO0lBQ04sT0FBTztJQUNQO0lBQ0EsUUFBUTtLQUFFLEdBQUc7S0FBUSxRQUFRO0lBQW9CO0dBQ25ELENBQUM7RUFDSDtFQUVBLFVBQVUsT0FBZSxNQUFlLFdBQTBCO0dBQ2hFLEtBQUssa0JBQWtCLGtCQUFrQixJQUFJLFNBQVMsR0FBRyxPQUFPLElBQUk7RUFDdEU7RUFFQSxjQUFjLFFBQXlCLE9BQWUsTUFBZSxXQUEwQjtHQUM3RixLQUFLLGtCQUFrQixrQkFBa0IsS0FBSyxRQUFRLFNBQVMsR0FBRyxPQUFPLElBQUk7RUFDL0U7RUFFQSxjQUFjLFFBQXlCLE9BQWUsTUFBZSxXQUEwQjtHQUM3RixLQUFLLGtCQUFrQixrQkFBa0IsS0FBSyxRQUFRLFNBQVMsR0FBRyxPQUFPLElBQUk7RUFDL0U7RUFFQSxrQkFBa0IsVUFBaUMsT0FBZSxNQUFxQjtHQUNyRixLQUFLLGVBQWUsa0JBQWtCLFVBQVUsT0FBTyxJQUFJO0VBQzdEO0VBRUEsY0FBYyxjQUEyRDtHQUN2RSxPQUFPLEtBQUssY0FBYyxjQUFjLFlBQVk7RUFDdEQ7RUFFQSxtQkFBbUIsV0FBNEI7R0FDN0MsT0FBTyxLQUFLLGNBQWMsbUJBQW1CLFNBQVM7RUFDeEQ7RUFFQSxlQUFlLFFBQXlCLFdBQStDO0dBQ3JGLE9BQU8sS0FBSyxjQUFjLGVBQWUsUUFBUSxTQUFTO0VBQzVEO0VBRUEsV0FBbUM7R0FDakMsT0FBTyxLQUFLLGNBQWMsU0FBUztFQUNyQztFQUVBLFNBQVMsTUFBZSxRQUF1QjtHQUM3QyxLQUFLLGlCQUFpQixTQUFTLE1BQU0sTUFBTTtFQUM3QztFQUVBLE1BQU0sU0FBUyxNQUFlLFFBQWdDO0dBQzVELEtBQUssU0FBUyxNQUFNLE1BQU07R0FDMUIsTUFBTSxLQUFLLGVBQWUsU0FBUztFQUNyQztDQUNGIn0=
269
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3MtcmVnaXN0cnkuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmVhbS93cy1yZWdpc3RyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0Z1bmN0aW9uVmFsdWUgfSBmcm9tIFwiLi4vdXRpbHMvcnVudGltZS12YWx1ZVwiO1xuaW1wb3J0IHsgV2ViU29ja2V0QXVkaWVuY2UsIHR5cGUgV2ViU29ja2V0QXVkaWVuY2UgYXMgV2ViU29ja2V0QXVkaWVuY2VTcGVjIH0gZnJvbSBcIi4vd3MtYXVkaWVuY2VcIjtcbmltcG9ydCB7IFdlYlNvY2tldEF1ZGllbmNlUmVzb2x2ZXIgfSBmcm9tIFwiLi93cy1hdWRpZW5jZS1yZXNvbHZlclwiO1xuaW1wb3J0IHsgTm9vcFdlYlNvY2tldENsdXN0ZXJCdXMsIHR5cGUgV2ViU29ja2V0Q2x1c3RlckJ1cyB9IGZyb20gXCIuL3dzLWNsdXN0ZXItYnVzXCI7XG5pbXBvcnQge1xuICB0eXBlIE1hbmFnZWRXZWJTb2NrZXRDb25uZWN0aW9uLFxuICB0eXBlIFdlYlNvY2tldFJlZ2lzdHJ5U3RhdHMsXG4gIHR5cGUgV2ViU29ja2V0Um9vbUlkLFxuICB0eXBlIFdlYlNvY2tldFVzZXJJZCxcbn0gZnJvbSBcIi4vd3MtY29yZVwiO1xuaW1wb3J0IHsgV2ViU29ja2V0RGVsaXZlcnlFbmdpbmUgfSBmcm9tIFwiLi93cy1kZWxpdmVyeVwiO1xuaW1wb3J0IHsgV2ViU29ja2V0TG9jYWxDb25uZWN0aW9uU3RvcmUgfSBmcm9tIFwiLi93cy1sb2NhbC1jb25uZWN0aW9uLXN0b3JlXCI7XG5pbXBvcnQge1xuICBJbk1lbW9yeVdlYlNvY2tldFByZXNlbmNlU3RvcmUsXG4gIHR5cGUgV2ViU29ja2V0UHJlc2VuY2VTdG9yZSxcbiAgdHlwZSBXZWJTb2NrZXRTZXNzaW9uUHJlc2VuY2UsXG59IGZyb20gXCIuL3dzLXByZXNlbmNlLXN0b3JlXCI7XG5pbXBvcnQge1xuICB0eXBlIFRlbGVtZXRyeUNvbnRleHRQcm92aWRlcixcbiAgTm9vcFdlYlNvY2tldFRlbGVtZXRyeUNvbnRyb2xsZXIsXG4gIHR5cGUgV2ViU29ja2V0VGVsZW1ldHJ5Q29ubmVjdGlvbkNvbnRleHQsXG4gIHR5cGUgV2ViU29ja2V0VGVsZW1ldHJ5Q29udHJvbGxlcixcbn0gZnJvbSBcIi4vd3MtdGVsZW1ldHJ5XCI7XG5cbmV4cG9ydCB0eXBlIHtcbiAgTWFuYWdlZFdlYlNvY2tldENvbm5lY3Rpb24sXG4gIFdlYlNvY2tldFJlZ2lzdHJ5U3RhdHMsXG4gIFdlYlNvY2tldFJvb21JZCxcbiAgV2ViU29ja2V0VXNlcklkLFxufTtcbmV4cG9ydCB0eXBlIFdlYlNvY2tldENvbm5lY3Rpb25NZXRhID0gV2ViU29ja2V0U2Vzc2lvblByZXNlbmNlO1xuXG5leHBvcnQgdHlwZSBXZWJTb2NrZXRSZWdpc3RyeU9wdGlvbnMgPSB7XG4gIC8vIOu2hOyCsCDtmZjqsr3sl5DshJwg64W465OcIOqwhCDrnbzsmrDtjIUg7Iud67OE7J6Q66GcIOyTsOydtOuvgOuhnCDrsJjrk5zsi5wg7Zi47LacIOy4oShXZWJTb2NrZXRSdW50aW1lKeyXkOyEnCDqsrDsoJXtlbQg64SY6ri064ukXG4gIG5vZGVJZDogc3RyaW5nO1xuICBwcmVzZW5jZVN0b3JlPzogV2ViU29ja2V0UHJlc2VuY2VTdG9yZTtcbiAgY2x1c3RlckJ1cz86IFdlYlNvY2tldENsdXN0ZXJCdXM7XG4gIHRlbGVtZXRyeUNvbnRyb2xsZXI/OiBXZWJTb2NrZXRUZWxlbWV0cnlDb250cm9sbGVyO1xufTtcblxuZXhwb3J0IGNsYXNzIFdlYlNvY2tldFJlZ2lzdHJ5IHtcbiAgcmVhZG9ubHkgbm9kZUlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxvY2FsQ29ubmVjdGlvbnMgPSBuZXcgV2ViU29ja2V0TG9jYWxDb25uZWN0aW9uU3RvcmUoKTtcbiAgcmVhZG9ubHkgcHJlc2VuY2VTdG9yZTogV2ViU29ja2V0UHJlc2VuY2VTdG9yZTtcbiAgcmVhZG9ubHkgY2x1c3RlckJ1czogV2ViU29ja2V0Q2x1c3RlckJ1cztcbiAgcmVhZG9ubHkgYXVkaWVuY2VSZXNvbHZlcjogV2ViU29ja2V0QXVkaWVuY2VSZXNvbHZlcjtcbiAgcmVhZG9ubHkgZGVsaXZlcnlFbmdpbmU6IFdlYlNvY2tldERlbGl2ZXJ5RW5naW5lO1xuICByZWFkb25seSB0ZWxlbWV0cnlDb250cm9sbGVyOiBXZWJTb2NrZXRUZWxlbWV0cnlDb250cm9sbGVyO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFdlYlNvY2tldFJlZ2lzdHJ5T3B0aW9ucykge1xuICAgIHRoaXMubm9kZUlkID0gb3B0aW9ucy5ub2RlSWQ7XG4gICAgdGhpcy5wcmVzZW5jZVN0b3JlID0gb3B0aW9ucy5wcmVzZW5jZVN0b3JlID8/IG5ldyBJbk1lbW9yeVdlYlNvY2tldFByZXNlbmNlU3RvcmUoKTtcbiAgICB0aGlzLmNsdXN0ZXJCdXMgPSBvcHRpb25zLmNsdXN0ZXJCdXMgPz8gbmV3IE5vb3BXZWJTb2NrZXRDbHVzdGVyQnVzKCk7XG4gICAgdGhpcy50ZWxlbWV0cnlDb250cm9sbGVyID1cbiAgICAgIG9wdGlvbnMudGVsZW1ldHJ5Q29udHJvbGxlciA/PyBuZXcgTm9vcFdlYlNvY2tldFRlbGVtZXRyeUNvbnRyb2xsZXIoKTtcbiAgICB0aGlzLmF1ZGllbmNlUmVzb2x2ZXIgPSBuZXcgV2ViU29ja2V0QXVkaWVuY2VSZXNvbHZlcih7XG4gICAgICBub2RlSWQ6IHRoaXMubm9kZUlkLFxuICAgICAgcHJlc2VuY2VTdG9yZTogdGhpcy5wcmVzZW5jZVN0b3JlLFxuICAgIH0pO1xuICAgIHRoaXMuZGVsaXZlcnlFbmdpbmUgPSBuZXcgV2ViU29ja2V0RGVsaXZlcnlFbmdpbmUoe1xuICAgICAgbm9kZUlkOiB0aGlzLm5vZGVJZCxcbiAgICAgIGxvY2FsQ29ubmVjdGlvbnM6IHRoaXMubG9jYWxDb25uZWN0aW9ucyxcbiAgICAgIGF1ZGllbmNlUmVzb2x2ZXI6IHRoaXMuYXVkaWVuY2VSZXNvbHZlcixcbiAgICAgIGNsdXN0ZXJCdXM6IHRoaXMuY2x1c3RlckJ1cyxcbiAgICAgIHRlbGVtZXRyeUNvbnRyb2xsZXI6IHRoaXMudGVsZW1ldHJ5Q29udHJvbGxlcixcbiAgICB9KTtcblxuICAgIHRoaXMudGVsZW1ldHJ5Q29udHJvbGxlci5yZWdpc3Rlck1ldHJpY1NvdXJjZSh7XG4gICAgICBjb2xsZWN0OiAoX25vdykgPT4ge1xuICAgICAgICBjb25zdCBzdGF0cyA9IHRoaXMucHJlc2VuY2VTdG9yZS5nZXRTdGF0cygpO1xuICAgICAgICBjb25zdCBsb2NhbFNuYXBzaG90ID0gdGhpcy5sb2NhbENvbm5lY3Rpb25zLmdldFRlbGVtZXRyeVNuYXBzaG90KCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYWN0aXZlQ29ubmVjdGlvbnM6IHN0YXRzLnRvdGFsQ29ubmVjdGlvbnMsXG4gICAgICAgICAgYWN0aXZlQ29ubmVjdGlvbnNCeU5hbWVzcGFjZTogc3RhdHMuYnlOYW1lc3BhY2UsXG4gICAgICAgICAgcm9vbUNvdW50OiBzdGF0cy50b3RhbFJvb21zLFxuICAgICAgICAgIHBlbmRpbmdJbmJvdW5kTWVzc2FnZXM6IGxvY2FsU25hcHNob3QucGVuZGluZ0luYm91bmRNZXNzYWdlcyxcbiAgICAgICAgICBwZW5kaW5nT3V0Ym91bmRNZXNzYWdlczogbG9jYWxTbmFwc2hvdC5wZW5kaW5nT3V0Ym91bmRNZXNzYWdlcyxcbiAgICAgICAgICBzb2NrZXRCdWZmZXJlZEJ5dGVzOiBsb2NhbFNuYXBzaG90LnNvY2tldEJ1ZmZlcmVkQnl0ZXMsXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcmVnaXN0ZXIoXG4gICAgY29ubmVjdGlvbjogTWFuYWdlZFdlYlNvY2tldENvbm5lY3Rpb24sXG4gICAgYWN0aXZlOiBib29sZWFuID0gdHJ1ZSxcbiAgKTogV2ViU29ja2V0Q29ubmVjdGlvbk1ldGEge1xuICAgIHRoaXMubG9jYWxDb25uZWN0aW9ucy5yZWdpc3Rlcihjb25uZWN0aW9uKTtcbiAgICBjb25zdCBtZXRhID0gdGhpcy5wcmVzZW5jZVN0b3JlLnJlZ2lzdGVyKHtcbiAgICAgIHNlc3Npb25JZDogY29ubmVjdGlvbi5pZCxcbiAgICAgIG5vZGVJZDogdGhpcy5ub2RlSWQsXG4gICAgICBuYW1lc3BhY2U6IGNvbm5lY3Rpb24ubmFtZXNwYWNlLFxuICAgICAgYWN0aXZlLFxuICAgIH0pO1xuICAgIHRoaXMudGVsZW1ldHJ5Q29udHJvbGxlci5lbWl0KHtcbiAgICAgIG5hbWU6IFwid3MuY29ubmVjdGlvbi5yZWdpc3RlcmVkXCIsXG4gICAgICBsZXZlbDogXCJpbmZvXCIsXG4gICAgICBjb25uZWN0aW9uSWQ6IGNvbm5lY3Rpb24uaWQsXG4gICAgICBuYW1lc3BhY2U6IGNvbm5lY3Rpb24ubmFtZXNwYWNlLFxuICAgICAgdXNlcklkOiBjb25uZWN0aW9uLnVzZXJJZCxcbiAgICAgIC4uLmdldENvbm5lY3Rpb25UZWxlbWV0cnlDb250ZXh0KGNvbm5lY3Rpb24pLFxuICAgIH0pO1xuICAgIHRoaXMudGVsZW1ldHJ5Q29udHJvbGxlci5yZWNvcmRNZXRyaWMoe1xuICAgICAgbmFtZTogXCJzb25hbXUud3MuY29ubmVjdGlvbnNcIixcbiAgICAgIGtpbmQ6IFwiY291bnRlclwiLFxuICAgICAgdmFsdWU6IDEsXG4gICAgICB1bml0OiBcIjFcIixcbiAgICAgIHRhZ3M6IHsgb3V0Y29tZTogXCJyZWdpc3RlcmVkXCIsIG5hbWVzcGFjZTogY29ubmVjdGlvbi5uYW1lc3BhY2UgfSxcbiAgICAgIHVzZXJJZDogY29ubmVjdGlvbi51c2VySWQsXG4gICAgfSk7XG4gICAgcmV0dXJuIG1ldGE7XG4gIH1cblxuICBhY3RpdmF0ZShjb25uZWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcmVzZW5jZVN0b3JlLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKSkge1xuICAgICAgdGhpcy5lbWl0TXV0YXRpb25Ta2lwcGVkKGNvbm5lY3Rpb25JZCwgeyBvcGVyYXRpb246IFwiYWN0aXZhdGVcIiB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByZXNlbmNlU3RvcmUuYWN0aXZhdGUoY29ubmVjdGlvbklkKTtcbiAgICBjb25zdCBjb25uZWN0aW9uID0gdGhpcy5sb2NhbENvbm5lY3Rpb25zLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKTtcbiAgICB0aGlzLnRlbGVtZXRyeUNvbnRyb2xsZXIuZW1pdCh7XG4gICAgICBuYW1lOiBcIndzLmNvbm5lY3Rpb24uYWN0aXZhdGVkXCIsXG4gICAgICBsZXZlbDogXCJpbmZvXCIsXG4gICAgICBjb25uZWN0aW9uSWQsXG4gICAgICB1c2VySWQ6IGNvbm5lY3Rpb24/LnVzZXJJZCxcbiAgICAgIC4uLmdldENvbm5lY3Rpb25UZWxlbWV0cnlDb250ZXh0KGNvbm5lY3Rpb24pLFxuICAgIH0pO1xuICB9XG5cbiAgdW5yZWdpc3Rlcihjb25uZWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGNvbm5lY3Rpb24gPSB0aGlzLmxvY2FsQ29ubmVjdGlvbnMuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQpO1xuICAgIGNvbnN0IHRlbGVtZXRyeUNvbnRleHQgPSBnZXRDb25uZWN0aW9uVGVsZW1ldHJ5Q29udGV4dChjb25uZWN0aW9uKTtcbiAgICBjb25zdCB1c2VySWQgPVxuICAgICAgY29ubmVjdGlvbj8udXNlcklkID8/IGZvcm1hdFVzZXJJZCh0aGlzLnByZXNlbmNlU3RvcmUuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQpPy51c2VySWQpO1xuICAgIGNvbnN0IG1ldGEgPSB0aGlzLnByZXNlbmNlU3RvcmUudW5yZWdpc3Rlcihjb25uZWN0aW9uSWQpO1xuICAgIHRoaXMubG9jYWxDb25uZWN0aW9ucy51bnJlZ2lzdGVyKGNvbm5lY3Rpb25JZCk7XG4gICAgdGhpcy50ZWxlbWV0cnlDb250cm9sbGVyLmVtaXQoe1xuICAgICAgbmFtZTogXCJ3cy5jb25uZWN0aW9uLnVucmVnaXN0ZXJlZFwiLFxuICAgICAgbGV2ZWw6IFwiZGVidWdcIixcbiAgICAgIGNvbm5lY3Rpb25JZCxcbiAgICAgIG5hbWVzcGFjZTogbWV0YT8ubmFtZXNwYWNlLFxuICAgICAgdXNlcklkLFxuICAgICAgLi4udGVsZW1ldHJ5Q29udGV4dCxcbiAgICB9KTtcbiAgICBpZiAobWV0YSkge1xuICAgICAgdGhpcy50ZWxlbWV0cnlDb250cm9sbGVyLnJlY29yZE1ldHJpYyh7XG4gICAgICAgIG5hbWU6IFwic29uYW11LndzLmNvbm5lY3Rpb25zXCIsXG4gICAgICAgIGtpbmQ6IFwiY291bnRlclwiLFxuICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgdW5pdDogXCIxXCIsXG4gICAgICAgIHRhZ3M6IHsgb3V0Y29tZTogXCJ1bnJlZ2lzdGVyZWRcIiwgbmFtZXNwYWNlOiBtZXRhLm5hbWVzcGFjZSB9LFxuICAgICAgICB1c2VySWQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICB0b3VjaChjb25uZWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucHJlc2VuY2VTdG9yZS50b3VjaChjb25uZWN0aW9uSWQpO1xuICB9XG5cbiAgc2V0VXNlcklkKGNvbm5lY3Rpb25JZDogc3RyaW5nLCB1c2VySWQ6IFdlYlNvY2tldFVzZXJJZCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcmVzZW5jZVN0b3JlLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKSkge1xuICAgICAgdGhpcy5lbWl0TXV0YXRpb25Ta2lwcGVkKGNvbm5lY3Rpb25JZCwgeyBvcGVyYXRpb246IFwic2V0VXNlcklkXCIsIHVzZXJJZCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByZXNlbmNlU3RvcmUuc2V0VXNlcklkKGNvbm5lY3Rpb25JZCwgdXNlcklkKTtcbiAgICBjb25zdCBtZXRhID0gdGhpcy5wcmVzZW5jZVN0b3JlLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKTtcbiAgICB0aGlzLnRlbGVtZXRyeUNvbnRyb2xsZXIuZW1pdCh7XG4gICAgICBuYW1lOiBcIndzLnVzZXIuYm91bmRcIixcbiAgICAgIGxldmVsOiBcImRlYnVnXCIsXG4gICAgICBjb25uZWN0aW9uSWQsXG4gICAgICBuYW1lc3BhY2U6IG1ldGE/Lm5hbWVzcGFjZSxcbiAgICAgIHVzZXJJZDogU3RyaW5nKHVzZXJJZCksXG4gICAgICBkZXRhaWw6IHsgdXNlcklkIH0sXG4gICAgICAuLi5nZXRDb25uZWN0aW9uVGVsZW1ldHJ5Q29udGV4dCh0aGlzLmxvY2FsQ29ubmVjdGlvbnMuZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQpKSxcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyVXNlcklkKGNvbm5lY3Rpb25JZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbWV0YSA9IHRoaXMucHJlc2VuY2VTdG9yZS5nZXRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZCk7XG4gICAgaWYgKCFtZXRhKSB7XG4gICAgICB0aGlzLmVtaXRNdXRhdGlvblNraXBwZWQoY29ubmVjdGlvbklkLCB7IG9wZXJhdGlvbjogXCJjbGVhclVzZXJJZFwiIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJJZCA9IG1ldGEudXNlcklkO1xuICAgIHRoaXMucHJlc2VuY2VTdG9yZS5jbGVhclVzZXJJZChjb25uZWN0aW9uSWQpO1xuICAgIHRoaXMudGVsZW1ldHJ5Q29udHJvbGxlci5lbWl0KHtcbiAgICAgIG5hbWU6IFwid3MudXNlci5jbGVhcmVkXCIsXG4gICAgICBsZXZlbDogXCJkZWJ1Z1wiLFxuICAgICAgY29ubmVjdGlvbklkLFxuICAgICAgbmFtZXNwYWNlOiBtZXRhLm5hbWVzcGFjZSxcbiAgICAgIHVzZXJJZDogZm9ybWF0VXNlcklkKHVzZXJJZCksXG4gICAgICBkZXRhaWw6IHVzZXJJZCAhPT0gdW5kZWZpbmVkID8geyB1c2VySWQgfSA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLmdldENvbm5lY3Rpb25UZWxlbWV0cnlDb250ZXh0KHRoaXMubG9jYWxDb25uZWN0aW9ucy5nZXRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZCkpLFxuICAgIH0pO1xuICB9XG5cbiAgam9pbihjb25uZWN0aW9uSWQ6IHN0cmluZywgcm9vbUlkOiBXZWJTb2NrZXRSb29tSWQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJlc2VuY2VTdG9yZS5nZXRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZCkpIHtcbiAgICAgIHRoaXMuZW1pdE11dGF0aW9uU2tpcHBlZChjb25uZWN0aW9uSWQsIHsgb3BlcmF0aW9uOiBcImpvaW5cIiwgcm9vbUlkIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJlc2VuY2VTdG9yZS5qb2luKGNvbm5lY3Rpb25JZCwgcm9vbUlkKTtcbiAgICBjb25zdCBtZXRhID0gdGhpcy5wcmVzZW5jZVN0b3JlLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKTtcbiAgICBjb25zdCBjb25uZWN0aW9uID0gdGhpcy5sb2NhbENvbm5lY3Rpb25zLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKTtcbiAgICB0aGlzLnRlbGVtZXRyeUNvbnRyb2xsZXIuZW1pdCh7XG4gICAgICBuYW1lOiBcIndzLnJvb20uam9pbmVkXCIsXG4gICAgICBsZXZlbDogXCJkZWJ1Z1wiLFxuICAgICAgY29ubmVjdGlvbklkLFxuICAgICAgbmFtZXNwYWNlOiBtZXRhPy5uYW1lc3BhY2UsXG4gICAgICB1c2VySWQ6IGNvbm5lY3Rpb24/LnVzZXJJZCA/PyBmb3JtYXRVc2VySWQobWV0YT8udXNlcklkKSxcbiAgICAgIGRldGFpbDogeyByb29tSWQgfSxcbiAgICAgIC4uLmdldENvbm5lY3Rpb25UZWxlbWV0cnlDb250ZXh0KGNvbm5lY3Rpb24pLFxuICAgIH0pO1xuICB9XG5cbiAgbGVhdmUoY29ubmVjdGlvbklkOiBzdHJpbmcsIHJvb21JZDogV2ViU29ja2V0Um9vbUlkKTogdm9pZCB7XG4gICAgY29uc3QgbWV0YSA9IHRoaXMucHJlc2VuY2VTdG9yZS5nZXRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZCk7XG4gICAgaWYgKCFtZXRhKSB7XG4gICAgICB0aGlzLmVtaXRNdXRhdGlvblNraXBwZWQoY29ubmVjdGlvbklkLCB7IG9wZXJhdGlvbjogXCJsZWF2ZVwiLCByb29tSWQgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wcmVzZW5jZVN0b3JlLmxlYXZlKGNvbm5lY3Rpb25JZCwgcm9vbUlkKTtcbiAgICBjb25zdCBjb25uZWN0aW9uID0gdGhpcy5sb2NhbENvbm5lY3Rpb25zLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKTtcbiAgICB0aGlzLnRlbGVtZXRyeUNvbnRyb2xsZXIuZW1pdCh7XG4gICAgICBuYW1lOiBcIndzLnJvb20ubGVmdFwiLFxuICAgICAgbGV2ZWw6IFwiZGVidWdcIixcbiAgICAgIGNvbm5lY3Rpb25JZCxcbiAgICAgIG5hbWVzcGFjZTogbWV0YS5uYW1lc3BhY2UsXG4gICAgICB1c2VySWQ6IGNvbm5lY3Rpb24/LnVzZXJJZCA/PyBmb3JtYXRVc2VySWQobWV0YS51c2VySWQpLFxuICAgICAgZGV0YWlsOiB7IHJvb21JZCB9LFxuICAgICAgLi4uZ2V0Q29ubmVjdGlvblRlbGVtZXRyeUNvbnRleHQoY29ubmVjdGlvbiksXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRNdXRhdGlvblNraXBwZWQoXG4gICAgY29ubmVjdGlvbklkOiBzdHJpbmcsXG4gICAgZGV0YWlsOiB7XG4gICAgICBvcGVyYXRpb246IFwiYWN0aXZhdGVcIiB8IFwic2V0VXNlcklkXCIgfCBcImNsZWFyVXNlcklkXCIgfCBcImpvaW5cIiB8IFwibGVhdmVcIjtcbiAgICAgIHJvb21JZD86IFdlYlNvY2tldFJvb21JZDtcbiAgICAgIHVzZXJJZD86IFdlYlNvY2tldFVzZXJJZDtcbiAgICB9LFxuICApOiB2b2lkIHtcbiAgICB0aGlzLnRlbGVtZXRyeUNvbnRyb2xsZXIuZW1pdCh7XG4gICAgICBuYW1lOiBcIndzLnJlZ2lzdHJ5Lm11dGF0aW9uLnNraXBwZWRcIixcbiAgICAgIGxldmVsOiBcImRlYnVnXCIsXG4gICAgICBjb25uZWN0aW9uSWQsXG4gICAgICBkZXRhaWw6IHsgLi4uZGV0YWlsLCByZWFzb246IFwiY29ubmVjdGlvbk1pc3NpbmdcIiB9LFxuICAgIH0pO1xuICB9XG5cbiAgYnJvYWRjYXN0PERhdGE+KGV2ZW50OiBzdHJpbmcsIGRhdGE6IERhdGEsIG5hbWVzcGFjZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucHVibGlzaFRvQXVkaWVuY2UoV2ViU29ja2V0QXVkaWVuY2UuYWxsKG5hbWVzcGFjZSksIGV2ZW50LCBkYXRhKTtcbiAgfVxuXG4gIHB1Ymxpc2hUb1Jvb208RGF0YT4oXG4gICAgcm9vbUlkOiBXZWJTb2NrZXRSb29tSWQsXG4gICAgZXZlbnQ6IHN0cmluZyxcbiAgICBkYXRhOiBEYXRhLFxuICAgIG5hbWVzcGFjZT86IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5wdWJsaXNoVG9BdWRpZW5jZShXZWJTb2NrZXRBdWRpZW5jZS5yb29tKHJvb21JZCwgbmFtZXNwYWNlKSwgZXZlbnQsIGRhdGEpO1xuICB9XG5cbiAgcHVibGlzaFRvVXNlcjxEYXRhPihcbiAgICB1c2VySWQ6IFdlYlNvY2tldFVzZXJJZCxcbiAgICBldmVudDogc3RyaW5nLFxuICAgIGRhdGE6IERhdGEsXG4gICAgbmFtZXNwYWNlPzogc3RyaW5nLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLnB1Ymxpc2hUb0F1ZGllbmNlKFdlYlNvY2tldEF1ZGllbmNlLnVzZXIodXNlcklkLCBuYW1lc3BhY2UpLCBldmVudCwgZGF0YSk7XG4gIH1cblxuICBwdWJsaXNoVG9BdWRpZW5jZTxEYXRhPihhdWRpZW5jZTogV2ViU29ja2V0QXVkaWVuY2VTcGVjLCBldmVudDogc3RyaW5nLCBkYXRhOiBEYXRhKTogdm9pZCB7XG4gICAgdGhpcy5kZWxpdmVyeUVuZ2luZS5wdWJsaXNoVG9BdWRpZW5jZShhdWRpZW5jZSwgZXZlbnQsIGRhdGEpO1xuICB9XG5cbiAgZ2V0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQ6IHN0cmluZyk6IFdlYlNvY2tldENvbm5lY3Rpb25NZXRhIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5wcmVzZW5jZVN0b3JlLmdldENvbm5lY3Rpb24oY29ubmVjdGlvbklkKTtcbiAgfVxuXG4gIGdldENvbm5lY3Rpb25Db3VudChuYW1lc3BhY2U/OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByZXNlbmNlU3RvcmUuZ2V0Q29ubmVjdGlvbkNvdW50KG5hbWVzcGFjZSk7XG4gIH1cblxuICBnZXRSb29tTWVtYmVycyhyb29tSWQ6IFdlYlNvY2tldFJvb21JZCwgbmFtZXNwYWNlPzogc3RyaW5nKTogV2ViU29ja2V0Q29ubmVjdGlvbk1ldGFbXSB7XG4gICAgcmV0dXJuIHRoaXMucHJlc2VuY2VTdG9yZS5nZXRSb29tTWVtYmVycyhyb29tSWQsIG5hbWVzcGFjZSk7XG4gIH1cblxuICBnZXRTdGF0cygpOiBXZWJTb2NrZXRSZWdpc3RyeVN0YXRzIHtcbiAgICByZXR1cm4gdGhpcy5wcmVzZW5jZVN0b3JlLmdldFN0YXRzKCk7XG4gIH1cblxuICBjbG9zZUFsbChjb2RlPzogbnVtYmVyLCByZWFzb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvY2FsQ29ubmVjdGlvbnMuY2xvc2VBbGwoY29kZSwgcmVhc29uKTtcbiAgfVxuXG4gIGFzeW5jIHNodXRkb3duKGNvZGU/OiBudW1iZXIsIHJlYXNvbj86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY2xvc2VBbGwoY29kZSwgcmVhc29uKTtcbiAgICBhd2FpdCB0aGlzLmRlbGl2ZXJ5RW5naW5lLnNodXRkb3duKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0Q29ubmVjdGlvblRlbGVtZXRyeUNvbnRleHQoXG4gIGNvbm5lY3Rpb246IE1hbmFnZWRXZWJTb2NrZXRDb25uZWN0aW9uIHwgdW5kZWZpbmVkLFxuKTogV2ViU29ja2V0VGVsZW1ldHJ5Q29ubmVjdGlvbkNvbnRleHQge1xuICBpZiAoIWNvbm5lY3Rpb24gfHwgIWlzVGVsZW1ldHJ5Q29udGV4dFByb3ZpZGVyKGNvbm5lY3Rpb24pKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgcmV0dXJuIGNvbm5lY3Rpb24uZ2V0VGVsZW1ldHJ5Q29udGV4dCgpO1xufVxuXG4vLyB0ZWxlbWV0cnkgcmVjb3Jk7J2YIHVzZXJJZOuKlCBzdHJpbmcg7KCV6rec7ZmUIOKAlCBwcmVzZW5jZSBzdG9yZeuKlCBudW1iZXIgfCBzdHJpbmcg6re464yA66GcIOuztOq0gO2VqFxuZnVuY3Rpb24gZm9ybWF0VXNlcklkKHVzZXJJZDogV2ViU29ja2V0VXNlcklkIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHVzZXJJZCA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogU3RyaW5nKHVzZXJJZCk7XG59XG5cbmZ1bmN0aW9uIGlzVGVsZW1ldHJ5Q29udGV4dFByb3ZpZGVyKFxuICBjb25uZWN0aW9uOiBNYW5hZ2VkV2ViU29ja2V0Q29ubmVjdGlvbixcbik6IGNvbm5lY3Rpb24gaXMgTWFuYWdlZFdlYlNvY2tldENvbm5lY3Rpb24gJiBUZWxlbWV0cnlDb250ZXh0UHJvdmlkZXIge1xuICByZXR1cm4gXCJnZXRUZWxlbWV0cnlDb250ZXh0XCIgaW4gY29ubmVjdGlvbiAmJiBpc0Z1bmN0aW9uVmFsdWUoY29ubmVjdGlvbi5nZXRUZWxlbWV0cnlDb250ZXh0KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQW9UQSxTQUFTLDhCQUNQLFlBQ3FDO0NBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsMkJBQTJCLFVBQVUsR0FDdkQsT0FBTyxDQUFDO0NBR1YsT0FBTyxXQUFXLG9CQUFvQjtBQUN4QztBQUdBLFNBQVMsYUFBYSxRQUF5RDtDQUM3RSxPQUFPLFdBQVcsU0FBWSxTQUFZLE9BQU8sTUFBTTtBQUN6RDtBQUVBLFNBQVMsMkJBQ1AsWUFDcUU7Q0FDckUsT0FBTyx5QkFBeUIs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
@@ -1,3 +1,7 @@
1
+ export type WebSocketTelemetryValue = null | undefined | bigint | boolean | number | string | Date | WebSocketTelemetryValue[] | WebSocketTelemetryAttributes;
2
+ export interface WebSocketTelemetryAttributes {
3
+ [key: string]: WebSocketTelemetryValue;
4
+ }
1
5
  export type WebSocketTelemetryRecordBase = {
2
6
  timestamp: number;
3
7
  monotonicTime?: number;
@@ -16,7 +20,7 @@ export type WebSocketTelemetryEventRecord = WebSocketTelemetryRecordBase & {
16
20
  name: string;
17
21
  level: "debug" | "info" | "warn" | "error";
18
22
  attributes?: Record<string, string | number | boolean>;
19
- detail?: Record<string, unknown>;
23
+ detail?: WebSocketTelemetryAttributes;
20
24
  payloadPreview?: string;
21
25
  };
22
26
  export type WebSocketTelemetryMetricRecord = WebSocketTelemetryRecordBase & {
@@ -39,12 +43,12 @@ export type WebSocketTelemetrySpanRecord = WebSocketTelemetryRecordBase & {
39
43
  events?: Array<{
40
44
  name: string;
41
45
  timestamp: number;
42
- attributes?: Record<string, unknown>;
46
+ attributes?: WebSocketTelemetryAttributes;
43
47
  }>;
44
48
  links?: Array<{
45
49
  traceId: string;
46
50
  spanId: string;
47
- attributes?: Record<string, unknown>;
51
+ attributes?: WebSocketTelemetryAttributes;
48
52
  }>;
49
53
  };
50
54
  export type WebSocketTelemetryRecord = WebSocketTelemetryEventRecord | WebSocketTelemetryMetricRecord | WebSocketTelemetrySpanRecord;
@@ -55,8 +59,8 @@ export type WebSocketTelemetryEventInput = {
55
59
  connectionId?: string;
56
60
  userId?: string;
57
61
  attributes?: Record<string, string | number | boolean>;
58
- detail?: Record<string, unknown>;
59
- payload?: unknown;
62
+ detail?: WebSocketTelemetryAttributes;
63
+ payload?: WebSocketTelemetryValue;
60
64
  traceId?: string;
61
65
  spanId?: string;
62
66
  parentSpanId?: string;
@@ -94,12 +98,12 @@ export type WebSocketSpanInput = {
94
98
  events?: Array<{
95
99
  name: string;
96
100
  timestamp: number;
97
- attributes?: Record<string, unknown>;
101
+ attributes?: WebSocketTelemetryAttributes;
98
102
  }>;
99
103
  links?: Array<{
100
104
  traceId: string;
101
105
  spanId: string;
102
- attributes?: Record<string, unknown>;
106
+ attributes?: WebSocketTelemetryAttributes;
103
107
  }>;
104
108
  };
105
109
  export type WebSocketTelemetryInput = ({
@@ -306,7 +310,7 @@ export interface WebSocketTelemetryController {
306
310
  }
307
311
  export declare const EMPTY_METRICS_SNAPSHOT: WebSocketTelemetryMetricsSnapshot;
308
312
  export declare const DEFAULT_TRACE_OPTIONS: WebSocketTelemetryTraceOptions;
309
- export declare function isPromiseLike(value: unknown): value is Promise<void>;
313
+ export declare function isPromiseLike<Value>(value: Value): value is Value & Promise<void>;
310
314
  declare class TokenBucket {
311
315
  private readonly maxTokens;
312
316
  private readonly refillRate;
@@ -379,7 +383,7 @@ type ResolvedSpanPipelineOptions = {
379
383
  defaultRate: number;
380
384
  };
381
385
  };
382
- type InternalEventReporter = (name: string, level: WebSocketTelemetryEventRecord["level"], detail?: Record<string, unknown>) => void;
386
+ type InternalEventReporter = (name: string, level: WebSocketTelemetryEventRecord["level"], detail?: WebSocketTelemetryAttributes) => void;
383
387
  declare abstract class TelemetryPipeline<TRecord extends WebSocketTelemetryRecord, TInput, TSink extends {
384
388
  emit(record: TRecord): void | Promise<void>;
385
389
  shutdown?(options?: {
@@ -391,7 +395,7 @@ declare abstract class TelemetryPipeline<TRecord extends WebSocketTelemetryRecor
391
395
  } | undefined> {
392
396
  abstract readonly signal: "event" | "metric" | "span";
393
397
  protected readonly sinks: TSink[];
394
- protected readonly _store: TStore;
398
+ protected readonly telemetryStore: TStore;
395
399
  protected readonly tokenBucket: TokenBucket;
396
400
  protected readonly maxInFlightEmits: number;
397
401
  protected readonly runtimeMetadata: RuntimeMetadata;
@@ -416,7 +420,7 @@ declare abstract class TelemetryPipeline<TRecord extends WebSocketTelemetryRecor
416
420
  protected dispatchToSinks(record: TRecord, selfObserveFailures?: boolean): void;
417
421
  private decrementInFlightEmit;
418
422
  private observeSinkFailure;
419
- protected dispatchInternalEvent(name: string, level: WebSocketTelemetryEventRecord["level"], detail?: Record<string, unknown>): void;
423
+ protected dispatchInternalEvent(name: string, level: WebSocketTelemetryEventRecord["level"], detail?: WebSocketTelemetryAttributes): void;
420
424
  shutdown(timeoutMs: number): Promise<void>;
421
425
  private shutdownSink;
422
426
  }
@@ -434,7 +438,7 @@ declare class EventPipeline extends TelemetryPipeline<WebSocketTelemetryEventRec
434
438
  private currentEmitAlwaysRecord;
435
439
  constructor(options: ResolvedEventPipelineOptions, runtimeMetadata: RuntimeMetadata);
436
440
  emit(input: WebSocketTelemetryEventInput): void;
437
- dispatchInternalDiagnosticEvent(name: string, level: WebSocketTelemetryEventRecord["level"], detail?: Record<string, unknown>): void;
441
+ dispatchInternalDiagnosticEvent(name: string, level: WebSocketTelemetryEventRecord["level"], detail?: WebSocketTelemetryAttributes): void;
438
442
  protected buildRecord(input: WebSocketTelemetryEventInput): WebSocketTelemetryEventRecord;
439
443
  protected shouldBypassRateLimit(_record: WebSocketTelemetryEventRecord): boolean;
440
444
  protected isCriticalRecord(record: WebSocketTelemetryEventRecord): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ws-telemetry.d.ts","sourceRoot":"","sources":["../../src/stream/ws-telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-telemetry.d.ts","sourceRoot":"","sources":["../../src/stream/ws-telemetry.ts"],"names":[],"mappings":"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"}