@graphrefly/ts 0.0.2 → 0.0.3

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 (210) hide show
  1. package/README.md +197 -117
  2. package/dist/{actions-types-wl9Mgkmr.d.cts → actions-types-CH-XCU9O.d.cts} +4 -4
  3. package/dist/{actions-types-CSC3NMDl.d.ts → actions-types-w2iPQTkv.d.ts} +4 -4
  4. package/dist/adapters/index.cjs.map +1 -1
  5. package/dist/adapters/index.d.cts +10 -10
  6. package/dist/adapters/index.d.ts +10 -10
  7. package/dist/adapters/index.js +7 -7
  8. package/dist/adapters/nestjs/microservices.d.cts +3 -3
  9. package/dist/adapters/nestjs/microservices.d.ts +3 -3
  10. package/dist/adapters/nestjs/native.cjs.map +1 -1
  11. package/dist/adapters/nestjs/native.d.cts +4 -4
  12. package/dist/adapters/nestjs/native.d.ts +4 -4
  13. package/dist/adapters/nestjs/native.js +3 -3
  14. package/dist/adapters/nestjs/websockets.d.cts +3 -3
  15. package/dist/adapters/nestjs/websockets.d.ts +3 -3
  16. package/dist/adapters/nestjs.d.cts +3 -3
  17. package/dist/adapters/nestjs.d.ts +3 -3
  18. package/dist/adapters/observe-storage.d.cts +3 -3
  19. package/dist/adapters/observe-storage.d.ts +3 -3
  20. package/dist/adapters/react.d.cts +2 -2
  21. package/dist/adapters/react.d.ts +2 -2
  22. package/dist/adapters/solid.d.cts +2 -2
  23. package/dist/adapters/solid.d.ts +2 -2
  24. package/dist/adapters/svelte.d.cts +2 -2
  25. package/dist/adapters/svelte.d.ts +2 -2
  26. package/dist/adapters/vue.d.cts +2 -2
  27. package/dist/adapters/vue.d.ts +2 -2
  28. package/dist/{agent-runtime-types-core-hU299uIC.d.ts → agent-runtime-types-core-CKwrBDyi.d.ts} +1 -1
  29. package/dist/{agent-runtime-types-core-CaXfKNtY.d.cts → agent-runtime-types-core-bfl4m0vM.d.cts} +1 -1
  30. package/dist/{agent-runtime-types-tool-DninPEzk.d.cts → agent-runtime-types-tool-BLPV3azj.d.cts} +4 -4
  31. package/dist/{agent-runtime-types-tool-BEpSINol.d.ts → agent-runtime-types-tool-hwqvVqNt.d.ts} +4 -4
  32. package/dist/{agentic-memory-retention-BmGX368S.d.ts → agentic-memory-retention-CLwI76JK.d.ts} +2 -2
  33. package/dist/{agentic-memory-retention-Ih1qhX9Z.d.cts → agentic-memory-retention-Cz8GR6ie.d.cts} +2 -2
  34. package/dist/{agentic-memory-types-FnnYlVUs.d.cts → agentic-memory-types-JDr7MPhh.d.cts} +2 -2
  35. package/dist/{agentic-memory-types-CVSUS6XR.d.ts → agentic-memory-types-khYJgzKL.d.ts} +2 -2
  36. package/dist/{capability-admission-lwSecxXs.d.cts → capability-admission-B8RNFyaZ.d.cts} +3 -3
  37. package/dist/{capability-admission-BW2CziT6.d.ts → capability-admission-Dkw1Xz3r.d.ts} +3 -3
  38. package/dist/{chunk-SIDJO2T4.js → chunk-3J7UPZL5.js} +6 -6
  39. package/dist/{chunk-ECURQ3HD.js → chunk-3LYI6ADX.js} +4 -4
  40. package/dist/chunk-3LYI6ADX.js.map +1 -0
  41. package/dist/{chunk-M7J6Z4IJ.js → chunk-4M37FH2I.js} +2 -2
  42. package/dist/chunk-4M37FH2I.js.map +1 -0
  43. package/dist/{chunk-CJIFGJQG.js → chunk-54WPEODM.js} +2 -2
  44. package/dist/chunk-54WPEODM.js.map +1 -0
  45. package/dist/{chunk-CX6B6PO2.js → chunk-DKFWDTVY.js} +2 -2
  46. package/dist/chunk-DKFWDTVY.js.map +1 -0
  47. package/dist/{chunk-SHZDP2MQ.js → chunk-GXU6WFEJ.js} +1 -1
  48. package/dist/chunk-GXU6WFEJ.js.map +1 -0
  49. package/dist/{chunk-YDWBXXQZ.js → chunk-KFURM6FM.js} +3 -3
  50. package/dist/{chunk-STXRMPW4.js → chunk-MCOFHMUU.js} +2 -2
  51. package/dist/{chunk-EOKT4QFF.js → chunk-NNDIFUKX.js} +3 -3
  52. package/dist/chunk-NNDIFUKX.js.map +1 -0
  53. package/dist/{chunk-TPND5MJS.js → chunk-PUSRRALM.js} +3 -3
  54. package/dist/{chunk-7HZRJMN6.js → chunk-UEMN5URK.js} +2 -2
  55. package/dist/{chunk-2NJP6GO4.js → chunk-WOS7RJYZ.js} +2 -2
  56. package/dist/composition/index.cjs.map +1 -1
  57. package/dist/composition/index.d.cts +3 -3
  58. package/dist/composition/index.d.ts +3 -3
  59. package/dist/composition/index.js +3 -3
  60. package/dist/core/index.cjs.map +1 -1
  61. package/dist/core/index.d.cts +23 -2
  62. package/dist/core/index.d.ts +23 -2
  63. package/dist/core/index.js +1 -1
  64. package/dist/cqrs/index.d.cts +3 -3
  65. package/dist/cqrs/index.d.ts +3 -3
  66. package/dist/cqrs/messaging.d.cts +4 -4
  67. package/dist/cqrs/messaging.d.ts +4 -4
  68. package/dist/cqrs/work-queue.d.cts +5 -5
  69. package/dist/cqrs/work-queue.d.ts +5 -5
  70. package/dist/data-structures/index.cjs.map +1 -1
  71. package/dist/data-structures/index.d.cts +8 -8
  72. package/dist/data-structures/index.d.ts +8 -8
  73. package/dist/data-structures/index.js +4 -4
  74. package/dist/{describe-CQRrkv-Q.d.cts → describe-BumQ-3_0.d.cts} +1 -1
  75. package/dist/{describe-B_A5fbXH.d.ts → describe-cYr_Z5zm.d.ts} +1 -1
  76. package/dist/executors/tool-provider-adapters.d.cts +7 -7
  77. package/dist/executors/tool-provider-adapters.d.ts +7 -7
  78. package/dist/executors/tool-provider-adapters.js +5 -5
  79. package/dist/executors/tool-provider-runtime.cjs.map +1 -1
  80. package/dist/executors/tool-provider-runtime.d.cts +8 -8
  81. package/dist/executors/tool-provider-runtime.d.ts +8 -8
  82. package/dist/executors/tool-provider-runtime.js +2 -2
  83. package/dist/executors/tool-provider.cjs.map +1 -1
  84. package/dist/executors/tool-provider.d.cts +7 -7
  85. package/dist/executors/tool-provider.d.ts +7 -7
  86. package/dist/executors/tool-provider.js +2 -2
  87. package/dist/executors/work-queue.d.cts +6 -6
  88. package/dist/executors/work-queue.d.ts +6 -6
  89. package/dist/graph/index.cjs.map +1 -1
  90. package/dist/graph/index.d.cts +9 -9
  91. package/dist/graph/index.d.ts +9 -9
  92. package/dist/graph/index.js +7 -7
  93. package/dist/{graph-CWK3HLPB.d.cts → graph-C1C-wb0L.d.cts} +135 -8
  94. package/dist/{graph-ho5sotHP.d.ts → graph-CS0b4V9B.d.ts} +135 -8
  95. package/dist/{index-CQWcE0Dw.d.ts → index-DLrNopda.d.cts} +135 -8
  96. package/dist/{index-DHA1i67c.d.cts → index-DzJni3_6.d.ts} +135 -8
  97. package/dist/index.cjs.map +1 -1
  98. package/dist/index.d.cts +12 -12
  99. package/dist/index.d.ts +12 -12
  100. package/dist/index.js +13 -13
  101. package/dist/inspection/boundary.d.cts +4 -4
  102. package/dist/inspection/boundary.d.ts +4 -4
  103. package/dist/{measurements-OMpCeBwh.d.ts → measurements-BWAnochv.d.ts} +139 -9
  104. package/dist/{measurements-C0mAvWU1.d.cts → measurements-B_gJfD8h.d.cts} +139 -9
  105. package/dist/messaging/index.d.cts +5 -5
  106. package/dist/messaging/index.d.ts +5 -5
  107. package/dist/operators/index.cjs.map +1 -1
  108. package/dist/operators/index.d.cts +5 -5
  109. package/dist/operators/index.d.ts +5 -5
  110. package/dist/operators/index.js +4 -4
  111. package/dist/orchestration/index.cjs.map +1 -1
  112. package/dist/orchestration/index.d.cts +12 -12
  113. package/dist/orchestration/index.d.ts +12 -12
  114. package/dist/orchestration/index.js +5 -5
  115. package/dist/orchestration/messaging.d.cts +5 -5
  116. package/dist/orchestration/messaging.d.ts +5 -5
  117. package/dist/orchestration/work-queue.d.cts +8 -8
  118. package/dist/orchestration/work-queue.d.ts +8 -8
  119. package/dist/patterns/event-flow.d.cts +4 -4
  120. package/dist/patterns/event-flow.d.ts +4 -4
  121. package/dist/patterns/index.d.cts +6 -6
  122. package/dist/patterns/index.d.ts +6 -6
  123. package/dist/{process-types-h3uRlzDc.d.cts → process-types-BB7oRhX3.d.cts} +1 -1
  124. package/dist/{process-types-C9uMYz3i.d.ts → process-types-QNhyoYJ8.d.ts} +1 -1
  125. package/dist/{reactive-collection-B9R0Bl1P.d.cts → reactive-collection-BYlWvtnp.d.cts} +3 -3
  126. package/dist/{reactive-collection-BXFrH0U2.d.ts → reactive-collection-efOEdGFN.d.ts} +3 -3
  127. package/dist/{reactive-collection-storage-BLGv8Xp8.d.cts → reactive-collection-storage-BjoLsoiC.d.cts} +5 -5
  128. package/dist/{reactive-collection-storage-a4zD3665.d.ts → reactive-collection-storage-DwW6UuK_.d.ts} +5 -5
  129. package/dist/{reactive-map-jle5dnok.d.ts → reactive-map-BHacbIqz.d.cts} +7 -3
  130. package/dist/{reactive-map-C_8sOfdS.d.cts → reactive-map-DN4Jyqnf.d.ts} +7 -3
  131. package/dist/render/index.d.cts +2 -2
  132. package/dist/render/index.d.ts +2 -2
  133. package/dist/{scheduled-readiness-5rwQlyjV.d.ts → scheduled-readiness-BmqXxnzX.d.ts} +3 -3
  134. package/dist/{scheduled-readiness-DpRY8jI0.d.cts → scheduled-readiness-CYSw7KDE.d.cts} +3 -3
  135. package/dist/{semantic-memory-graph-DlZBD_Eu.d.cts → semantic-memory-graph-B_LwbM-E.d.cts} +2 -2
  136. package/dist/{semantic-memory-graph-C2ZUwIlq.d.ts → semantic-memory-graph-rsFNNhwn.d.ts} +2 -2
  137. package/dist/{semantic-memory-graph-types-BvzdqmkY.d.cts → semantic-memory-graph-types-Y73bbwVI.d.cts} +1 -1
  138. package/dist/{semantic-memory-graph-types-Ci-OtahO.d.ts → semantic-memory-graph-types-safmPkuX.d.ts} +1 -1
  139. package/dist/solutions/index.cjs.map +1 -1
  140. package/dist/solutions/index.d.cts +11 -11
  141. package/dist/solutions/index.d.ts +11 -11
  142. package/dist/solutions/index.js +2 -2
  143. package/dist/solutions/reactive-layout/browser/index.cjs.map +1 -1
  144. package/dist/solutions/reactive-layout/browser/index.d.cts +4 -4
  145. package/dist/solutions/reactive-layout/browser/index.d.ts +4 -4
  146. package/dist/solutions/reactive-layout/browser/index.js +2 -2
  147. package/dist/solutions/reactive-layout/index.cjs.map +1 -1
  148. package/dist/solutions/reactive-layout/index.d.cts +6 -6
  149. package/dist/solutions/reactive-layout/index.d.ts +6 -6
  150. package/dist/solutions/reactive-layout/index.js +2 -2
  151. package/dist/solutions/reactive-layout/node-canvas/index.cjs.map +1 -1
  152. package/dist/solutions/reactive-layout/node-canvas/index.d.cts +4 -4
  153. package/dist/solutions/reactive-layout/node-canvas/index.d.ts +4 -4
  154. package/dist/solutions/reactive-layout/node-canvas/index.js +2 -2
  155. package/dist/solutions/reactive-layout/react-native/index.cjs.map +1 -1
  156. package/dist/solutions/reactive-layout/react-native/index.d.cts +4 -4
  157. package/dist/solutions/reactive-layout/react-native/index.d.ts +4 -4
  158. package/dist/solutions/reactive-layout/react-native/index.js +2 -2
  159. package/dist/solutions/reactive-layout/skia/index.cjs.map +1 -1
  160. package/dist/solutions/reactive-layout/skia/index.d.cts +4 -4
  161. package/dist/solutions/reactive-layout/skia/index.d.ts +4 -4
  162. package/dist/solutions/reactive-layout/skia/index.js +2 -2
  163. package/dist/solutions/work-item/actions.d.cts +10 -10
  164. package/dist/solutions/work-item/actions.d.ts +10 -10
  165. package/dist/solutions/work-item/scheduling.d.cts +9 -9
  166. package/dist/solutions/work-item/scheduling.d.ts +9 -9
  167. package/dist/solutions/work-item/work-queue.d.cts +7 -7
  168. package/dist/solutions/work-item/work-queue.d.ts +7 -7
  169. package/dist/sources/browser.cjs.map +1 -1
  170. package/dist/sources/browser.d.cts +22 -6
  171. package/dist/sources/browser.d.ts +22 -6
  172. package/dist/sources/browser.js +3 -3
  173. package/dist/sources/browser.js.map +1 -1
  174. package/dist/sources/index.cjs.map +1 -1
  175. package/dist/sources/index.d.cts +4 -4
  176. package/dist/sources/index.d.ts +4 -4
  177. package/dist/sources/index.js +3 -3
  178. package/dist/sources/node.d.cts +3 -3
  179. package/dist/sources/node.d.ts +3 -3
  180. package/dist/storage/index.d.cts +5 -5
  181. package/dist/storage/index.d.ts +5 -5
  182. package/dist/{store-BmtEs9mG.d.ts → store-6_CHF6Ge.d.ts} +1 -1
  183. package/dist/{store-PAAsYvML.d.cts → store-BljX8RkQ.d.cts} +1 -1
  184. package/dist/{types-BhveCMg5.d.cts → types-BAw2QVVE.d.cts} +1 -1
  185. package/dist/{types-XDoqxYO9.d.cts → types-BUbbbh4f.d.cts} +1 -1
  186. package/dist/{types-BWK2ay3e.d.cts → types-CMnzoL54.d.cts} +2 -2
  187. package/dist/{types-BS6CyR-x.d.cts → types-CTN3XoMl.d.cts} +30 -0
  188. package/dist/{types-BXKSAoE1.d.cts → types-CV_ohy5T.d.cts} +2 -2
  189. package/dist/{types-C9NOgNJw.d.ts → types-DChxk1vK.d.ts} +30 -0
  190. package/dist/{types-CTsQ8Ww4.d.ts → types-DRu7SnLV.d.ts} +1 -1
  191. package/dist/{types-DL_05n2M.d.ts → types-DeID_FRl.d.ts} +1 -1
  192. package/dist/{types-BRNKoFHj.d.ts → types-IhKH0hGW.d.ts} +2 -2
  193. package/dist/{types-BaPpZItj.d.ts → types-ePlD2uyT.d.ts} +2 -2
  194. package/dist/{work-item-runtime-types-CHO03AKh.d.cts → work-item-runtime-types-BTxLskN5.d.cts} +2 -2
  195. package/dist/{work-item-runtime-types-BqtWnSCS.d.ts → work-item-runtime-types-DAsZbb2y.d.ts} +2 -2
  196. package/dist/work-queue/index.d.cts +6 -6
  197. package/dist/work-queue/index.d.ts +6 -6
  198. package/package.json +9 -1
  199. package/dist/chunk-CJIFGJQG.js.map +0 -1
  200. package/dist/chunk-CX6B6PO2.js.map +0 -1
  201. package/dist/chunk-ECURQ3HD.js.map +0 -1
  202. package/dist/chunk-EOKT4QFF.js.map +0 -1
  203. package/dist/chunk-M7J6Z4IJ.js.map +0 -1
  204. package/dist/chunk-SHZDP2MQ.js.map +0 -1
  205. /package/dist/{chunk-SIDJO2T4.js.map → chunk-3J7UPZL5.js.map} +0 -0
  206. /package/dist/{chunk-YDWBXXQZ.js.map → chunk-KFURM6FM.js.map} +0 -0
  207. /package/dist/{chunk-STXRMPW4.js.map → chunk-MCOFHMUU.js.map} +0 -0
  208. /package/dist/{chunk-TPND5MJS.js.map → chunk-PUSRRALM.js.map} +0 -0
  209. /package/dist/{chunk-7HZRJMN6.js.map → chunk-UEMN5URK.js.map} +0 -0
  210. /package/dist/{chunk-2NJP6GO4.js.map → chunk-WOS7RJYZ.js.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/graph/sources.ts"],"sourcesContent":["/**\n * Async + sync sources (binding-layer sugar, D43 / D40 / feedback_async_sources_binding_layer).\n *\n * Sources are depless {@link Operator}`<never, T>` specs built on the `producer`/`node` path:\n * the body runs ONCE on activation (node `_activate`), schedules its work, and emits later via\n * the captured `ctx.down` (an external tier-3 emit → the leading DIRTY is synthesized for it,\n * R-dirty-before-data). Async lives ONLY here (R-no-raw-async / F-SYNC-CORE): `setTimeout` /\n * `Promise` / `for await` are confined to source bodies; the wave core stays sync. Cleanup is\n * `ctx.onDeactivation` (D28), NOT a returned object. Per-language (D6/D24), never in parity.\n *\n * Instantiate via `g.initNode(timer(1000), [])` (graph-bound, inspectable) or\n * {@link initNode}(timer(1000), []) (bare). Pool/pause defaults (D43): timer/interval =\n * sync + pausable:false (keep producing through PAUSE); fromPromise/fromAsyncIter = async\n * (default pausable, so a paused source buffers its late emits — R-async-paused).\n */\n\nimport type { Ctx } from \"../ctx/types.js\";\nimport type { Node, NodeOptions } from \"../node/node.js\";\nimport { errorPayload } from \"../protocol/messages.js\";\nimport { toCheckpointJson } from \"./checkpoint.js\";\nimport type {\n\tDriverCancel,\n\tDriverResult,\n\tHttpRequest,\n\tHttpResponse,\n\tProcessCommand,\n\tProcessResult,\n\tSseDriverEvent,\n\tSseEvent,\n\tSseRequest,\n\tWebhookDriverEvent,\n\tWebhookEvent,\n\tWebhookRegistration,\n\tWebSocketDriverEvent,\n\tWebSocketEvent,\n\tWebSocketRequest,\n} from \"./environment.js\";\nimport { initNode, type Operator } from \"./operators.js\";\n\n/**\n * Values accepted by {@link fromAny}: an existing Node, a Promise, an (a)sync iterable, or a\n * bare scalar. The universal coercion target for higher-order operators (CSP-2.7).\n */\nexport type NodeInput<T> = Node<T> | PromiseLike<T> | AsyncIterable<T> | Iterable<T> | T;\n\n/** Host-boundary options for {@link singleFromAny}. */\nexport interface SingleFromAnyOptions<K> {\n\t/**\n\t * Map a caller key to the in-flight dedupe key. Defaults to key identity; object keys dedupe only\n\t * when the same object reference is reused. Return a stable string/canonical value for structural\n\t * object-key dedupe.\n\t */\n\tkeyOf?: (key: K) => unknown;\n\t/** Treat a sync iterable result as a stream and take its first item. Defaults to scalar value. */\n\titer?: boolean;\n}\n\n/**\n * Internal: build a depless source spec. `setup` runs once on activation; its returned fn (if\n * any) is registered as the deactivation cleanup (clear timers / abort). `setup` schedules the\n * async work and emits via `ctx.down` — synchronously (sync sources) or later (async sources).\n */\nfunction source<T>(\n\tfactory: string,\n\t// biome-ignore lint/suspicious/noConfusingVoidType: setup returns a cleanup fn OR nothing — the void arm keeps no-return source bodies (e.g. `of`/`fromIter`) ergonomic, same idiom as EffectFn.\n\tsetup: (ctx: Ctx) => void | (() => void),\n\topts?: Partial<NodeOptions<T>>,\n): Operator<never, T> {\n\treturn {\n\t\tfactory,\n\t\topts,\n\t\tbody: (ctx) => {\n\t\t\tlet cleanup: undefined | (() => void);\n\t\t\tlet deactivated = false;\n\t\t\tctx.onDeactivation(() => {\n\t\t\t\tdeactivated = true;\n\t\t\t\tif (typeof cleanup === \"function\") cleanup();\n\t\t\t});\n\t\t\tconst maybeCleanup = setup(ctx);\n\t\t\tcleanup = typeof maybeCleanup === \"function\" ? maybeCleanup : undefined;\n\t\t\tif (deactivated && typeof cleanup === \"function\") cleanup();\n\t\t},\n\t};\n}\n\nfunction assertNonEmptyString(value: string, label: string): void {\n\tif (typeof value !== \"string\" || value.length === 0) {\n\t\tthrow new TypeError(`${label} must be a non-empty string`);\n\t}\n}\n\nfunction cleanupDriverWork(\n\tactive: { value: boolean },\n\tcancelSlot: { value: DriverCancel | undefined },\n): void {\n\tactive.value = false;\n\tconst cancel = cancelSlot.value;\n\tcancelSlot.value = undefined;\n\tif (cancel !== undefined) runDriverCancel(cancel);\n}\n\nfunction installDriverCancel(\n\tactive: { value: boolean },\n\tcancelSlot: { value: DriverCancel | undefined },\n\tcancel: DriverCancel,\n): void {\n\tif (active.value) cancelSlot.value = cancel;\n\telse runDriverCancel(cancel);\n}\n\nfunction runDriverCancel(cancel: DriverCancel): void {\n\ttry {\n\t\tcancel();\n\t} catch {\n\t\t// Driver cleanup is best-effort: it must not suppress graph-visible terminal delivery.\n\t}\n}\n\nfunction driverOneShotSource<T>(\n\tfactory: string,\n\tmissing: string,\n\tstart: (ctx: Ctx, callback: (result: DriverResult<T>) => void) => DriverCancel | undefined,\n): Operator<never, T> {\n\treturn source<T>(\n\t\tfactory,\n\t\t(ctx) => {\n\t\t\tconst active = { value: true };\n\t\t\tconst cancelSlot: { value: DriverCancel | undefined } = { value: undefined };\n\t\t\tconst callback = (result: DriverResult<T>) => {\n\t\t\t\tif (!active.value) return;\n\t\t\t\tcleanupDriverWork(active, cancelSlot);\n\t\t\t\tif (result.ok) ctx.down([[\"DATA\", result.value], [\"COMPLETE\"]]);\n\t\t\t\telse ctx.down([[\"ERROR\", errorPayload(result.error)]]);\n\t\t\t};\n\t\t\tlet cancel: DriverCancel | undefined;\n\t\t\ttry {\n\t\t\t\tcancel = start(ctx, callback);\n\t\t\t} catch (e) {\n\t\t\t\tactive.value = false;\n\t\t\t\tctx.down([[\"ERROR\", errorPayload(e)]]);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (cancel === undefined) {\n\t\t\t\tactive.value = false;\n\t\t\t\tctx.down([[\"ERROR\", missing]]);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tinstallDriverCancel(active, cancelSlot, cancel);\n\t\t\treturn () => cleanupDriverWork(active, cancelSlot);\n\t\t},\n\t\t{ pool: \"async\", pausable: false },\n\t);\n}\n\nfunction driverStreamSource<T, E extends { readonly kind: string }>(\n\tfactory: string,\n\tmissing: string,\n\tstart: (ctx: Ctx, callback: (event: E) => void) => DriverCancel | undefined,\n\tdataOf: (event: E) => T | undefined,\n\terrorOf: (event: E) => unknown,\n): Operator<never, T> {\n\treturn source<T>(\n\t\tfactory,\n\t\t(ctx) => {\n\t\t\tconst active = { value: true };\n\t\t\tconst cancelSlot: { value: DriverCancel | undefined } = { value: undefined };\n\t\t\tconst callback = (event: E) => {\n\t\t\t\tif (!active.value) return;\n\t\t\t\tif (event.kind === \"event\") {\n\t\t\t\t\tconst value = dataOf(event);\n\t\t\t\t\tif (value !== undefined) ctx.down([[\"DATA\", value]]);\n\t\t\t\t} else if (event.kind === \"error\") {\n\t\t\t\t\tcleanupDriverWork(active, cancelSlot);\n\t\t\t\t\tctx.down([[\"ERROR\", errorPayload(errorOf(event))]]);\n\t\t\t\t} else if (event.kind === \"complete\") {\n\t\t\t\t\tcleanupDriverWork(active, cancelSlot);\n\t\t\t\t\tctx.down([[\"COMPLETE\"]]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tlet cancel: DriverCancel | undefined;\n\t\t\ttry {\n\t\t\t\tcancel = start(ctx, callback);\n\t\t\t} catch (e) {\n\t\t\t\tactive.value = false;\n\t\t\t\tctx.down([[\"ERROR\", errorPayload(e)]]);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (cancel === undefined) {\n\t\t\t\tactive.value = false;\n\t\t\t\tctx.down([[\"ERROR\", missing]]);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tinstallDriverCancel(active, cancelSlot, cancel);\n\t\t\treturn () => cleanupDriverWork(active, cancelSlot);\n\t\t},\n\t\t{ pool: \"async\", pausable: false },\n\t);\n}\n\nfunction isNode(x: unknown): x is Node {\n\treturn (\n\t\tx != null &&\n\t\ttypeof x === \"object\" &&\n\t\t\"cache\" in x &&\n\t\ttypeof (x as Node).subscribe === \"function\"\n\t);\n}\n\nfunction isThenable(x: unknown): x is PromiseLike<unknown> {\n\treturn x != null && typeof (x as PromiseLike<unknown>).then === \"function\";\n}\n\nfunction isAsyncIterable<T>(x: unknown): x is AsyncIterable<T> {\n\treturn (\n\t\tx !== null &&\n\t\tx !== undefined &&\n\t\ttypeof (x as { [Symbol.asyncIterator]?: unknown })[Symbol.asyncIterator] === \"function\"\n\t);\n}\n\nfunction isIterable<T>(x: unknown): x is Iterable<T> {\n\treturn (\n\t\tx !== null &&\n\t\tx !== undefined &&\n\t\ttypeof (x as { [Symbol.iterator]?: unknown })[Symbol.iterator] === \"function\"\n\t);\n}\n\n/** Options shared by async/timer sources: an optional AbortSignal → ERROR on abort. */\nexport interface AsyncSourceOpts {\n\tsignal?: AbortSignal;\n}\n\nexport interface TimerSourceOpts extends AsyncSourceOpts {\n\tperiod?: number;\n}\n\n/** Options for {@link fromCron}. */\nexport interface FromCronOptions extends AsyncSourceOpts {\n\t/** Cron matcher polling interval in milliseconds. Default: 60_000. */\n\ttickMs?: number;\n\t/** IANA timezone used for wall-clock cron matching. Defaults to the host-local timezone. */\n\ttimezone?: string;\n\t/**\n\t * DST policy for timezone-aware matching. Current D484 defaults are explicit: nonexistent\n\t * wall-clock minutes are skipped, and repeated wall-clock minutes fire at most once.\n\t */\n\tdst?: {\n\t\treadonly nonexistent?: \"skip\";\n\t\treadonly repeated?: \"once\";\n\t};\n\t/**\n\t * Emitted value shape. `timestamp_ns` is a decimal string so it cannot lose precision as a\n\t * JavaScript number; use `timestamp_ms` when numeric millisecond precision is enough.\n\t */\n\toutput?: \"date\" | \"timestamp_ms\" | \"timestamp_ns\";\n}\n\n/** Minimal five-field cron schedule: minute hour day-of-month month day-of-week. */\nexport interface CronSchedule {\n\treadonly minutes: ReadonlySet<number>;\n\treadonly hours: ReadonlySet<number>;\n\treadonly daysOfMonth: ReadonlySet<number>;\n\treadonly months: ReadonlySet<number>;\n\treadonly daysOfWeek: ReadonlySet<number>;\n}\n\n/** DOM/EventEmitter-style target accepted by {@link fromEvent}. */\nexport interface EventTargetLike {\n\taddEventListener(\n\t\ttype: string,\n\t\tlistener: (event: unknown) => void,\n\t\toptions?: EventListenerOptionsLike,\n\t): void;\n\tremoveEventListener(\n\t\ttype: string,\n\t\tlistener: (event: unknown) => void,\n\t\toptions?: EventListenerOptionsLike,\n\t): void;\n}\n\nexport interface EventListenerOptionsLike {\n\tcapture?: boolean;\n\tpassive?: boolean;\n\tonce?: boolean;\n}\n\nexport type FromEventOptions = EventListenerOptionsLike;\n\n/** Host push registration callback accepted by {@link fromPushNotification}. */\nexport type PushUnsubscribe = () => void;\nexport type PushRegister<T> = (deliver: (payload: T) => void) => PushUnsubscribe | undefined;\n\nfunction parseCronField(field: string, min: number, max: number): Set<number> {\n\tif (field.length === 0) throw new Error(\"Invalid cron field: empty\");\n\tconst out = new Set<number>();\n\tfor (const part of field.split(\",\")) {\n\t\tif (part.length === 0) throw new Error(`Invalid cron field: ${field}`);\n\t\tconst stepParts = part.split(\"/\");\n\t\tif (stepParts.length > 2) throw new Error(`Invalid cron step: ${part}`);\n\t\tconst [range, stepText] = stepParts;\n\t\tif (range == null || range.length === 0) throw new Error(`Invalid cron field: ${field}`);\n\t\tif (stepText === \"\") throw new Error(`Invalid cron step: ${part}`);\n\t\tconst step = stepText == null ? 1 : parseCronInt(stepText, `Invalid cron step: ${part}`);\n\t\tif (step < 1) throw new Error(`Invalid cron step: ${part}`);\n\n\t\tlet start: number;\n\t\tlet end: number;\n\t\tif (range === \"*\") {\n\t\t\tstart = min;\n\t\t\tend = max;\n\t\t} else if (range.includes(\"-\")) {\n\t\t\tconst [a, b, extra] = range.split(\"-\");\n\t\t\tif (extra !== undefined || a === \"\" || b === \"\")\n\t\t\t\tthrow new Error(`Invalid cron field: ${field}`);\n\t\t\tstart = parseCronInt(a, `Invalid cron field: ${field}`);\n\t\t\tend = parseCronInt(b, `Invalid cron field: ${field}`);\n\t\t} else {\n\t\t\tstart = parseCronInt(range, `Invalid cron field: ${field}`);\n\t\t\tend = start;\n\t\t}\n\n\t\tif (!Number.isInteger(start) || !Number.isInteger(end)) {\n\t\t\tthrow new Error(`Invalid cron field: ${field}`);\n\t\t}\n\t\tif (start < min || end > max) {\n\t\t\tthrow new RangeError(`Cron field out of range: ${field} (${min}-${max})`);\n\t\t}\n\t\tif (start > end) throw new Error(`Invalid cron range: ${start}-${end} in ${field}`);\n\t\tfor (let i = start; i <= end; i += step) out.add(i);\n\t}\n\treturn out;\n}\n\nfunction parseCronInt(text: string, message: string): number {\n\tif (!/^\\d+$/.test(text)) throw new Error(message);\n\tconst value = Number.parseInt(text, 10);\n\tif (!Number.isSafeInteger(value)) throw new Error(message);\n\treturn value;\n}\n\n/** Parse a standard five-field cron expression. */\nexport function parseCron(expr: string): CronSchedule {\n\tconst parts = expr.trim().split(/\\s+/);\n\tif (parts.length !== 5 || parts.some((part) => part.length === 0)) {\n\t\tthrow new Error(`Invalid cron: expected 5 fields, got ${parts.length}`);\n\t}\n\treturn {\n\t\tminutes: parseCronField(parts[0], 0, 59),\n\t\thours: parseCronField(parts[1], 0, 23),\n\t\tdaysOfMonth: parseCronField(parts[2], 1, 31),\n\t\tmonths: parseCronField(parts[3], 1, 12),\n\t\tdaysOfWeek: parseCronField(parts[4], 0, 6),\n\t};\n}\n\nexport interface CronMatchOptions {\n\t/** IANA timezone used for wall-clock projection. Defaults to the host-local timezone. */\n\ttimezone?: string;\n}\n\ninterface CronWallClockFields {\n\treadonly year: number;\n\treadonly month: number;\n\treadonly day: number;\n\treadonly hour: number;\n\treadonly minute: number;\n\treadonly dayOfWeek: number;\n}\n\n/** Test whether a Date matches a parsed cron schedule in host-local time or an IANA timezone. */\nexport function matchesCron(\n\tschedule: CronSchedule,\n\tdate: Date,\n\topts: CronMatchOptions = {},\n): boolean {\n\tconst fields = cronWallClockFields(date, opts.timezone);\n\treturn (\n\t\tschedule.minutes.has(fields.minute) &&\n\t\tschedule.hours.has(fields.hour) &&\n\t\tschedule.daysOfMonth.has(fields.day) &&\n\t\tschedule.months.has(fields.month) &&\n\t\tschedule.daysOfWeek.has(fields.dayOfWeek)\n\t);\n}\n\nfunction cronMinuteKey(date: Date, timezone?: string): string {\n\tconst fields = cronWallClockFields(date, timezone);\n\treturn `${fields.year}-${fields.month}-${fields.day}-${fields.hour}-${fields.minute}`;\n}\n\nfunction cronDayKey(date: Date, timezone?: string): string {\n\tconst fields = cronWallClockFields(date, timezone);\n\treturn `${fields.year}-${fields.month}-${fields.day}`;\n}\n\nfunction cronWallClockFields(date: Date, timezone?: string): CronWallClockFields {\n\tif (timezone === undefined) {\n\t\treturn {\n\t\t\tyear: date.getFullYear(),\n\t\t\tmonth: date.getMonth() + 1,\n\t\t\tday: date.getDate(),\n\t\t\thour: date.getHours(),\n\t\t\tminute: date.getMinutes(),\n\t\t\tdayOfWeek: date.getDay(),\n\t\t};\n\t}\n\tconst parts = timezoneFormatter(timezone).formatToParts(date);\n\tconst values: Record<string, number> = {};\n\tfor (const part of parts) {\n\t\tif (\n\t\t\tpart.type === \"year\" ||\n\t\t\tpart.type === \"month\" ||\n\t\t\tpart.type === \"day\" ||\n\t\t\tpart.type === \"hour\" ||\n\t\t\tpart.type === \"minute\"\n\t\t) {\n\t\t\tvalues[part.type] = Number.parseInt(part.value, 10);\n\t\t}\n\t}\n\tconst year = values.year;\n\tconst month = values.month;\n\tconst day = values.day;\n\tconst hour = values.hour;\n\tconst minute = values.minute;\n\tif (\n\t\tyear === undefined ||\n\t\tmonth === undefined ||\n\t\tday === undefined ||\n\t\thour === undefined ||\n\t\tminute === undefined\n\t) {\n\t\tthrow new Error(`fromCron: timezone projection failed for ${timezone}`);\n\t}\n\treturn {\n\t\tyear,\n\t\tmonth,\n\t\tday,\n\t\thour,\n\t\tminute,\n\t\tdayOfWeek: new Date(Date.UTC(year, month - 1, day)).getUTCDay(),\n\t};\n}\n\nconst TIMEZONE_FORMATTERS = new Map<string, Intl.DateTimeFormat>();\n\nfunction timezoneFormatter(timezone: string): Intl.DateTimeFormat {\n\tconst existing = TIMEZONE_FORMATTERS.get(timezone);\n\tif (existing !== undefined) return existing;\n\tassertNonEmptyString(timezone, \"fromCron: timezone\");\n\ttry {\n\t\tconst formatter = new Intl.DateTimeFormat(\"en-US-u-ca-gregory-nu-latn\", {\n\t\t\ttimeZone: timezone,\n\t\t\tyear: \"numeric\",\n\t\t\tmonth: \"2-digit\",\n\t\t\tday: \"2-digit\",\n\t\t\thour: \"2-digit\",\n\t\t\tminute: \"2-digit\",\n\t\t\thourCycle: \"h23\",\n\t\t});\n\t\tformatter.format(new Date(0));\n\t\tTIMEZONE_FORMATTERS.set(timezone, formatter);\n\t\treturn formatter;\n\t} catch (error) {\n\t\tthrow new RangeError(\n\t\t\t`fromCron: unsupported IANA timezone '${timezone}' (${error instanceof Error ? error.message : String(error)})`,\n\t\t);\n\t}\n}\n\nfunction dateToTimestampNs(date: Date): string {\n\treturn (BigInt(date.getTime()) * 1_000_000n).toString();\n}\n\nexport function fromCron(\n\texpr: string,\n\topts: FromCronOptions & { output: \"date\" },\n): Operator<never, Date>;\nexport function fromCron(\n\texpr: string,\n\topts: FromCronOptions & { output: \"timestamp_ms\" },\n): Operator<never, number>;\nexport function fromCron(\n\texpr: string,\n\topts?: FromCronOptions & { output?: \"timestamp_ns\" },\n): Operator<never, string>;\nexport function fromCron(\n\texpr: string,\n\topts?: FromCronOptions,\n): Operator<never, Date | number | string>;\nexport function fromCron(\n\texpr: string,\n\topts: FromCronOptions = {},\n): Operator<never, Date | number | string> {\n\tconst schedule = parseCron(expr);\n\tconst { tickMs = 60_000, output = \"timestamp_ns\", signal, timezone } = opts;\n\tif (opts.dst?.nonexistent !== undefined && opts.dst.nonexistent !== \"skip\") {\n\t\tthrow new RangeError(\"fromCron: dst.nonexistent currently supports only 'skip'\");\n\t}\n\tif (opts.dst?.repeated !== undefined && opts.dst.repeated !== \"once\") {\n\t\tthrow new RangeError(\"fromCron: dst.repeated currently supports only 'once'\");\n\t}\n\tif (timezone !== undefined) timezoneFormatter(timezone);\n\tif (!Number.isFinite(tickMs) || tickMs <= 0) {\n\t\tthrow new RangeError(\"fromCron: tickMs must be a positive finite number\");\n\t}\n\treturn source<Date | number | string>(\n\t\t\"fromCron\",\n\t\t(ctx) => {\n\t\t\tlet done = false;\n\t\t\tlet lastFiredKey: string | undefined;\n\t\t\tlet firedTimezoneDay: string | undefined;\n\t\t\tconst firedTimezoneMinutes = new Set<string>();\n\t\t\tlet intervalId: ReturnType<typeof setInterval> | undefined;\n\t\t\tconst cleanup = () => {\n\t\t\t\tdone = true;\n\t\t\t\tif (intervalId !== undefined) clearInterval(intervalId);\n\t\t\t\tintervalId = undefined;\n\t\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t\t};\n\t\t\tconst onAbort = () => {\n\t\t\t\tif (done) return;\n\t\t\t\tcleanup();\n\t\t\t\tctx.down([[\"ERROR\", errorPayload(signal?.reason)]]);\n\t\t\t};\n\t\t\tconst emitNow = (now: Date) => {\n\t\t\t\tif (output === \"date\") ctx.down([[\"DATA\", now]]);\n\t\t\t\telse if (output === \"timestamp_ms\") ctx.down([[\"DATA\", now.getTime()]]);\n\t\t\t\telse ctx.down([[\"DATA\", dateToTimestampNs(now)]]);\n\t\t\t};\n\t\t\tconst check = () => {\n\t\t\t\tif (done) return;\n\t\t\t\tconst now = new Date();\n\t\t\t\tconst key = cronMinuteKey(now, timezone);\n\t\t\t\tconst alreadyFired =\n\t\t\t\t\ttimezone === undefined ? key === lastFiredKey : firedTimezoneMinutes.has(key);\n\t\t\t\tif (!alreadyFired && matchesCron(schedule, now, { timezone })) {\n\t\t\t\t\tlastFiredKey = key;\n\t\t\t\t\tif (timezone !== undefined) {\n\t\t\t\t\t\tconst dayKey = cronDayKey(now, timezone);\n\t\t\t\t\t\tif (dayKey !== firedTimezoneDay) {\n\t\t\t\t\t\t\tfiredTimezoneDay = dayKey;\n\t\t\t\t\t\t\tfiredTimezoneMinutes.clear();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfiredTimezoneMinutes.add(key);\n\t\t\t\t\t}\n\t\t\t\t\temitNow(now);\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (signal?.aborted) {\n\t\t\t\tonAbort();\n\t\t\t\treturn cleanup;\n\t\t\t}\n\t\t\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\tcheck();\n\t\t\tintervalId = setInterval(check, tickMs);\n\t\t\treturn cleanup;\n\t\t},\n\t\t{ pool: \"sync\", pausable: false },\n\t);\n}\n\nexport function runProcess(\n\tprogram: string,\n\targs: readonly string[] = [],\n): Operator<never, ProcessResult> {\n\treturn runProcessWithOptions({ program, args });\n}\n\nexport function fromProcess(\n\tprogram: string,\n\targs: readonly string[] = [],\n): Operator<never, ProcessResult> {\n\treturn processSource(\"fromProcess\", { program, args });\n}\n\nexport function runProcessWithOptions(command: ProcessCommand): Operator<never, ProcessResult> {\n\treturn processSource(\"runProcess\", command);\n}\n\nfunction processSource(factory: string, command: ProcessCommand): Operator<never, ProcessResult> {\n\tassertNonEmptyString(command.program, `${factory}: program`);\n\treturn driverOneShotSource<ProcessResult>(\n\t\tfactory,\n\t\t`${factory}: missing process driver`,\n\t\t(ctx, callback) => ctx.environment().processDriver()?.run(command, callback),\n\t);\n}\n\nexport function fromHttp(url: string): Operator<never, HttpResponse> {\n\treturn fromHttpWithOptions({ method: \"GET\", url });\n}\n\nexport function fromHttpWithOptions(request: HttpRequest): Operator<never, HttpResponse> {\n\tassertNonEmptyString(request.url, \"fromHttp: url\");\n\tassertNonEmptyString(request.method, \"fromHttp: method\");\n\treturn driverOneShotSource<HttpResponse>(\n\t\t\"fromHttp\",\n\t\t\"fromHttp: missing http driver\",\n\t\t(ctx, callback) => ctx.environment().httpDriver()?.request(request, callback),\n\t);\n}\n\nexport function fromSSE(url: string): Operator<never, SseEvent> {\n\treturn fromSSEWithOptions({ url });\n}\n\nexport function fromSSEWithOptions(request: SseRequest): Operator<never, SseEvent> {\n\tassertNonEmptyString(request.url, \"fromSSE: url\");\n\treturn driverStreamSource<SseEvent, SseDriverEvent>(\n\t\t\"fromSSE\",\n\t\t\"fromSSE: missing sse driver\",\n\t\t(ctx, callback) => ctx.environment().sseDriver()?.connect(request, callback),\n\t\t(event) => (event.kind === \"event\" ? event.event : undefined),\n\t\t(event) => (event.kind === \"error\" ? event.error : undefined),\n\t);\n}\n\nexport function fromWebSocket(url: string): Operator<never, WebSocketEvent> {\n\treturn fromWebSocketWithOptions({ url });\n}\n\nexport function fromWebSocketWithOptions(\n\trequest: WebSocketRequest,\n): Operator<never, WebSocketEvent> {\n\tassertNonEmptyString(request.url, \"fromWebSocket: url\");\n\treturn driverStreamSource<WebSocketEvent, WebSocketDriverEvent>(\n\t\t\"fromWebSocket\",\n\t\t\"fromWebSocket: missing websocket driver\",\n\t\t(ctx, callback) => ctx.environment().webSocketDriver()?.connect(request, callback),\n\t\t(event) => (event.kind === \"event\" ? event.event : undefined),\n\t\t(event) => (event.kind === \"error\" ? event.error : undefined),\n\t);\n}\n\nexport function fromWebhook(id: string): Operator<never, WebhookEvent> {\n\treturn fromWebhookWithOptions({ id });\n}\n\nexport function fromWebhookWithOptions(\n\tregistration: WebhookRegistration,\n): Operator<never, WebhookEvent> {\n\tassertNonEmptyString(registration.id, \"fromWebhook: id\");\n\treturn driverStreamSource<WebhookEvent, WebhookDriverEvent>(\n\t\t\"fromWebhook\",\n\t\t\"fromWebhook: missing webhook driver\",\n\t\t(ctx, callback) => ctx.environment().webhookDriver()?.register(registration, callback),\n\t\t(event) => (event.kind === \"event\" ? event.event : undefined),\n\t\t(event) => (event.kind === \"error\" ? event.error : undefined),\n\t);\n}\n\nfunction timerSource(factory: string, ms: number, opts?: TimerSourceOpts): Operator<never, number> {\n\tconst { period, signal } = opts ?? {};\n\tconst op = source<number>(\n\t\tfactory,\n\t\t(ctx) => {\n\t\t\tlet done = false;\n\t\t\tlet count = 0;\n\t\t\tlet t: ReturnType<typeof setTimeout> | undefined;\n\t\t\tlet iv: ReturnType<typeof setInterval> | undefined;\n\t\t\tconst cleanup = () => {\n\t\t\t\tdone = true;\n\t\t\t\tif (t !== undefined) clearTimeout(t);\n\t\t\t\tif (iv !== undefined) clearInterval(iv);\n\t\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t\t};\n\t\t\tconst onAbort = () => {\n\t\t\t\tif (done) return;\n\t\t\t\tcleanup();\n\t\t\t\tctx.down([[\"ERROR\", errorPayload(signal?.reason)]]);\n\t\t\t};\n\t\t\tconst finish = () => {\n\t\t\t\tif (done) return;\n\t\t\t\tif (period != null) {\n\t\t\t\t\tctx.down([[\"DATA\", count++]]);\n\t\t\t\t\tiv = setInterval(() => {\n\t\t\t\t\t\tif (done) return;\n\t\t\t\t\t\tctx.down([[\"DATA\", count++]]);\n\t\t\t\t\t}, period);\n\t\t\t\t} else {\n\t\t\t\t\t// One-shot: DATA then COMPLETE in one wave (terminal-is-forever).\n\t\t\t\t\tdone = true;\n\t\t\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t\t\t\tctx.down([[\"DATA\", count++], [\"COMPLETE\"]]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tif (signal?.aborted) {\n\t\t\t\tonAbort();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\tt = setTimeout(finish, ms);\n\t\t\treturn cleanup;\n\t\t},\n\t\t{ pool: \"sync\", pausable: false },\n\t);\n\tif (factory === \"timer\" && period === undefined && signal === undefined) {\n\t\treturn { ...op, restore: { ref: \"timer\", config: { ms: toCheckpointJson(ms, \"timer.ms\") } } };\n\t}\n\treturn op;\n}\n\n/**\n * Timer source: one-shot (first tick then COMPLETE) or periodic (`{period}` → 0, 1, 2, …).\n * sync pool + pausable:false (a timer keeps producing through PAUSE, R-pause-modes). Emits the\n * tick counter from 0; deactivation clears the timers.\n *\n * @param ms - Delay before the first tick in milliseconds.\n * @param opts - Optional period and source options.\n * @returns A source operator that emits tick counters.\n * @example\n * ```ts\n * import { graph, timer } from \"@graphrefly/ts\";\n *\n * const tick = graph().initNode(timer(100), []);\n * ```\n * @category sources\n */\nexport function timer(ms: number, opts?: TimerSourceOpts): Operator<never, number> {\n\treturn timerSource(\"timer\", ms, opts);\n}\n\n/**\n * Create a timer source with the legacy `fromTimer` factory name.\n *\n * @param ms - Delay before the first tick in milliseconds.\n * @param opts - Optional period and source options.\n * @returns A source operator that emits tick counters.\n * @example\n * ```ts\n * import { fromTimer, graph } from \"@graphrefly/ts\";\n *\n * const tick = graph().initNode(fromTimer(100), []);\n * ```\n * @remarks **Factory name:** This preserves the real `fromTimer` factory name in `describe()`.\n * @category sources\n */\nexport function fromTimer(ms: number, opts?: TimerSourceOpts): Operator<never, number> {\n\treturn timerSource(\"fromTimer\", ms, opts);\n}\n\n/**\n * Emit periodic tick counters.\n *\n * @param ms - Delay before the first tick and between later ticks in milliseconds.\n * @returns A source operator that emits `0`, `1`, `2`, and so on.\n * @example\n * ```ts\n * import { graph, interval } from \"@graphrefly/ts\";\n *\n * const ticks = graph().initNode(interval(1000), []);\n * ```\n * @category sources\n */\nexport function interval(ms: number): Operator<never, number> {\n\treturn timerSource(\"interval\", ms, { period: ms });\n}\n\n/**\n * Lift a Promise (or thenable) to a single-value stream: one DATA then COMPLETE, or ERROR on\n * rejection. async pool (default pausable → a paused source buffers its late emit). Optional\n * `signal` aborts to ERROR.\n *\n * @param p - Promise or thenable to lift into the graph.\n * @param opts - Optional abort signal and async source options.\n * @returns A source operator that emits one DATA value and COMPLETE, or ERROR on rejection/abort.\n * @example\n * ```ts\n * import { fromPromise, graph } from \"@graphrefly/ts\";\n *\n * const user = graph().initNode(fromPromise(fetch(\"/user\").then((res) => res.json())), []);\n * ```\n * @category sources\n */\nexport function fromPromise<T>(\n\tp: Promise<T> | PromiseLike<T>,\n\topts?: AsyncSourceOpts,\n): Operator<never, T> {\n\tconst signal = opts?.signal;\n\treturn source<T>(\n\t\t\"fromPromise\",\n\t\t(ctx) => {\n\t\t\tlet settled = false;\n\t\t\tconst onAbort = () => {\n\t\t\t\tif (settled) return;\n\t\t\t\tsettled = true;\n\t\t\t\t// onAbort only runs from a `signal` listener / the `signal.aborted` guard → signal is defined.\n\t\t\t\tctx.down([[\"ERROR\", errorPayload((signal as AbortSignal).reason)]]);\n\t\t\t};\n\t\t\tif (signal?.aborted) {\n\t\t\t\tonAbort();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsignal?.addEventListener(\"abort\", onAbort, { once: true });\n\t\t\tvoid Promise.resolve(p).then(\n\t\t\t\t(v) => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t\t\t\tctx.down([[\"DATA\", v], [\"COMPLETE\"]]);\n\t\t\t\t},\n\t\t\t\t(e) => {\n\t\t\t\t\tif (settled) return;\n\t\t\t\t\tsettled = true;\n\t\t\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t\t\t\tctx.down([[\"ERROR\", errorPayload(e)]]);\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn () => {\n\t\t\t\tsettled = true;\n\t\t\t\tsignal?.removeEventListener(\"abort\", onAbort);\n\t\t\t};\n\t\t},\n\t\t{ pool: \"async\" },\n\t);\n}\n\n/**\n * Read an async iterable: each value → DATA; COMPLETE when done; ERROR on failure. async pool.\n * Optional `signal` aborts the pump.\n *\n * @param iterable - Async iterable to pump into the graph.\n * @param opts - Optional abort signal and async source options.\n * @returns A source operator that emits every iterable value and then COMPLETE.\n * @example\n * ```ts\n * import { fromAsyncIter, graph } from \"@graphrefly/ts\";\n *\n * const stream = graph().initNode(fromAsyncIter(events()), []);\n * ```\n * @category sources\n */\nexport function fromAsyncIter<T>(\n\titerable: AsyncIterable<T>,\n\topts?: AsyncSourceOpts,\n): Operator<never, T> {\n\tconst outerSignal = opts?.signal;\n\treturn source<T>(\n\t\t\"fromAsyncIter\",\n\t\t(ctx) => {\n\t\t\tconst ac = new AbortController();\n\t\t\tconst onOuterAbort = () => ac.abort(outerSignal?.reason);\n\t\t\touterSignal?.addEventListener(\"abort\", onOuterAbort, { once: true });\n\t\t\tlet done = false;\n\t\t\tconst pump = async () => {\n\t\t\t\ttry {\n\t\t\t\t\tfor await (const v of iterable) {\n\t\t\t\t\t\tif (ac.signal.aborted) break;\n\t\t\t\t\t\tctx.down([[\"DATA\", v]]);\n\t\t\t\t\t}\n\t\t\t\t\tif (!ac.signal.aborted) ctx.down([[\"COMPLETE\"]]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tif (!ac.signal.aborted) ctx.down([[\"ERROR\", errorPayload(e)]]);\n\t\t\t\t} finally {\n\t\t\t\t\tdone = true;\n\t\t\t\t}\n\t\t\t};\n\t\t\tvoid pump();\n\t\t\treturn () => {\n\t\t\t\tif (!done) ac.abort();\n\t\t\t\touterSignal?.removeEventListener(\"abort\", onOuterAbort);\n\t\t\t};\n\t\t},\n\t\t{ pool: \"async\" },\n\t);\n}\n\n/**\n * of: synchronous values — each argument as DATA, then COMPLETE. `of()` is the EMPTY source.\n *\n * @param values - Values to emit synchronously on activation.\n * @returns A source operator that emits each value and then COMPLETE.\n * @example\n * ```ts\n * import { graph, of } from \"@graphrefly/ts\";\n *\n * const values = graph().initNode(of(1, 2, 3), []);\n * ```\n * @category sources\n */\nexport function of<T = never>(...values: T[]): Operator<never, T> {\n\treturn source<T>(\n\t\t\"of\",\n\t\t(ctx) => {\n\t\t\tfor (const value of values) ctx.down([[\"DATA\", value]]);\n\t\t\tctx.down([[\"COMPLETE\"]]);\n\t\t},\n\t\t{ pool: \"sync\" },\n\t);\n}\n\n/**\n * Emit every value from a synchronous iterable.\n *\n * @param iterable - Iterable whose values are emitted in order.\n * @returns A source operator that emits every iterable value and then COMPLETE.\n * @example\n * ```ts\n * import { fromIter, graph } from \"@graphrefly/ts\";\n *\n * const values = graph().initNode(fromIter([1, 2, 3]), []);\n * ```\n * @category sources\n */\nexport function fromIter<T>(iterable: Iterable<T>): Operator<never, T> {\n\treturn source<T>(\n\t\t\"fromIter\",\n\t\t(ctx) => {\n\t\t\tfor (const v of iterable) ctx.down([[\"DATA\", v]]);\n\t\t\tctx.down([[\"COMPLETE\"]]);\n\t\t},\n\t\t{ pool: \"sync\" },\n\t);\n}\n\n/**\n * Complete immediately without emitting DATA.\n *\n * @returns A source operator that emits COMPLETE on activation.\n * @example\n * ```ts\n * import { empty, graph } from \"@graphrefly/ts\";\n *\n * const done = graph().initNode(empty(), []);\n * ```\n * @category sources\n */\nexport function empty<T = never>(): Operator<never, T> {\n\treturn source<T>(\n\t\t\"empty\",\n\t\t(ctx) => {\n\t\t\tctx.down([[\"COMPLETE\"]]);\n\t\t},\n\t\t{ pool: \"sync\" },\n\t);\n}\n\n/**\n * Activate and remain silent until deactivation.\n *\n * @returns A source operator that never emits DATA or terminal messages by itself.\n * @example\n * ```ts\n * import { graph, never } from \"@graphrefly/ts\";\n *\n * const quiet = graph().initNode(never(), []);\n * ```\n * @category sources\n */\nexport function never<T = never>(): Operator<never, T> {\n\treturn source<T>(\"never\", () => undefined, { pool: \"sync\" });\n}\n\n/**\n * Terminate with ERROR on activation.\n *\n * @param err - Host-language error payload to normalize into a protocol ERROR payload.\n * @returns A source operator that emits ERROR.\n * @example\n * ```ts\n * import { graph, throwError } from \"@graphrefly/ts\";\n *\n * const failed = graph().initNode(throwError(new Error(\"boom\")), []);\n * ```\n * @category sources\n */\nexport function throwError(err: unknown): Operator<never, never> {\n\treturn source<never>(\n\t\t\"throwError\",\n\t\t(ctx) => {\n\t\t\tctx.down([[\"ERROR\", errorPayload(err)]]);\n\t\t},\n\t\t{ pool: \"sync\" },\n\t);\n}\n\n/**\n * Wrap a DOM-style event target. Each event becomes DATA; deactivation removes the listener.\n * External callbacks are source boundaries (D43), so no polling or operator-level async leaks in.\n *\n * @param target - Event target implementing `addEventListener` and `removeEventListener`.\n * @param type - Event type to subscribe to.\n * @param opts - Optional listener options and source options.\n * @returns A source operator that emits each event as DATA.\n * @example\n * ```ts\n * import { fromEvent, graph } from \"@graphrefly/ts\";\n *\n * const clicks = graph().initNode(fromEvent<MouseEvent>(button, \"click\"), []);\n * ```\n * @category sources\n */\nexport function fromEvent<T = unknown>(\n\ttarget: EventTargetLike,\n\ttype: string,\n\topts: FromEventOptions = {},\n): Operator<never, T> {\n\tif (target == null || typeof target.addEventListener !== \"function\") {\n\t\tthrow new TypeError(\"fromEvent: target must implement addEventListener\");\n\t}\n\tif (typeof target.removeEventListener !== \"function\") {\n\t\tthrow new TypeError(\"fromEvent: target must implement removeEventListener\");\n\t}\n\tif (typeof type !== \"string\" || type.length === 0) {\n\t\tthrow new TypeError(\"fromEvent: event type must be a non-empty string\");\n\t}\n\treturn source<T>(\n\t\t\"fromEvent\",\n\t\t(ctx) => {\n\t\t\tlet done = false;\n\t\t\tconst handler = (event: unknown) => {\n\t\t\t\tif (!done) ctx.down([[\"DATA\", event as T]]);\n\t\t\t};\n\t\t\ttarget.addEventListener(type, handler, opts);\n\t\t\treturn () => {\n\t\t\t\tdone = true;\n\t\t\t\ttarget.removeEventListener(type, handler, opts);\n\t\t\t};\n\t\t},\n\t\t{ pool: \"sync\" },\n\t);\n}\n\n/**\n * Wrap a host push transport. The host owns network/native setup; this factory owns reactive\n * delivery and teardown only, preserving async-at-source-boundary discipline.\n */\nexport function fromPushNotification<T = unknown>(register: PushRegister<T>): Operator<never, T> {\n\tif (typeof register !== \"function\") {\n\t\tthrow new TypeError(\"fromPushNotification: register must be a function\");\n\t}\n\treturn source<T>(\n\t\t\"fromPushNotification\",\n\t\t(ctx) => {\n\t\t\tlet done = false;\n\t\t\tconst deliver = (payload: T) => {\n\t\t\t\tif (!done) ctx.down([[\"DATA\", payload]]);\n\t\t\t};\n\t\t\tconst unsubscribe = register(deliver);\n\t\t\treturn () => {\n\t\t\t\tdone = true;\n\t\t\t\tif (typeof unsubscribe === \"function\") unsubscribe();\n\t\t\t};\n\t\t},\n\t\t{ pool: \"sync\" },\n\t);\n}\n\n/**\n * Coerce a {@link NodeInput}`<T>` to a `Node<T>` (D43 — coercion prerequisite for the CSP-2.7\n * higher-order operators). An existing Node passes through; a thenable → {@link fromPromise};\n * an async iterable → {@link fromAsyncIter}; with `{iter:true}` a sync iterable →\n * {@link fromIter}; everything else → {@link of}. Coerced nodes are bare (use\n * `opts.dispatcher` to bind one, default = process-global D26).\n */\nexport function fromAny<T>(\n\tinput: NodeInput<T>,\n\topts: NodeOptions<T> & { iter?: boolean } = {},\n): Node<T> {\n\tif (isNode(input)) return input as Node<T>;\n\tconst { iter, ...nodeOpts } = opts;\n\tif (isThenable(input)) {\n\t\treturn initNode(fromPromise(input as PromiseLike<T>), [], nodeOpts);\n\t}\n\tif (input !== null && input !== undefined) {\n\t\tconst candidate = input as {\n\t\t\t[Symbol.asyncIterator]?: unknown;\n\t\t\t[Symbol.iterator]?: unknown;\n\t\t};\n\t\tif (typeof candidate[Symbol.asyncIterator] === \"function\") {\n\t\t\treturn initNode(fromAsyncIter(input as AsyncIterable<T>), [], nodeOpts);\n\t\t}\n\t\tif (iter === true && typeof candidate[Symbol.iterator] === \"function\") {\n\t\t\treturn initNode(fromIter(input as Iterable<T>), [], nodeOpts);\n\t\t}\n\t}\n\treturn initNode(of(input as T), [], nodeOpts);\n}\n\n/**\n * Resolve the first DATA from a Node as a Promise. This is a host-boundary escape hatch, not a\n * graph operator; do not call it from reactive node bodies. ERROR rejects, and COMPLETE before DATA\n * rejects because no value exists.\n */\nexport function firstValueFrom<T>(source: Node<T>): Promise<T> {\n\treturn new Promise<T>((resolve, reject) => {\n\t\tlet settled = false;\n\t\tlet shouldUnsub = false;\n\t\tlet unsub: (() => void) | undefined;\n\t\tconst finish = (f: () => void): void => {\n\t\t\tif (settled) return;\n\t\t\tsettled = true;\n\t\t\tf();\n\t\t\tif (unsub) {\n\t\t\t\tunsub();\n\t\t\t\tunsub = undefined;\n\t\t\t} else {\n\t\t\t\tshouldUnsub = true;\n\t\t\t}\n\t\t};\n\t\tunsub = source.subscribe((msg) => {\n\t\t\tif (msg[0] === \"DATA\") {\n\t\t\t\tfinish(() => resolve(msg[1] as T));\n\t\t\t} else if (msg[0] === \"ERROR\") {\n\t\t\t\tfinish(() => reject(msg[1]));\n\t\t\t} else if (msg[0] === \"COMPLETE\") {\n\t\t\t\tfinish(() => reject(new Error(\"firstValueFrom: completed without DATA\")));\n\t\t\t} else if (msg[0] === \"TEARDOWN\") {\n\t\t\t\tfinish(() => reject(new Error(\"firstValueFrom: torn down without DATA\")));\n\t\t\t}\n\t\t});\n\t\tif (shouldUnsub) {\n\t\t\tunsub?.();\n\t\t\tunsub = undefined;\n\t\t}\n\t});\n}\n\nfunction singleFromAnyValue<T>(value: T): T {\n\tif (value === undefined) {\n\t\tthrow new TypeError(\"singleFromAny: undefined is the substrate SENTINEL\");\n\t}\n\treturn value;\n}\n\nasync function firstFromAsyncIterable<T>(input: AsyncIterable<T>): Promise<T> {\n\tconst iter = input[Symbol.asyncIterator]();\n\tconst { value, done } = await iter.next();\n\tif (done) {\n\t\tawait iter.return?.();\n\t\tthrow new Error(\"singleFromAny: factory returned empty async iterable\");\n\t}\n\ttry {\n\t\tawait iter.return?.();\n\t} catch {\n\t\t// The first value is the bridge result; close failures after that are cleanup-only.\n\t}\n\treturn value as T;\n}\n\nfunction firstFromIterable<T>(input: Iterable<T>): Promise<T> {\n\tconst iter = input[Symbol.iterator]();\n\tconst { value, done } = iter.next();\n\tif (done) {\n\t\titer.return?.();\n\t\treturn Promise.reject(new Error(\"singleFromAny: factory returned empty iterable\"));\n\t}\n\ttry {\n\t\titer.return?.();\n\t} catch {\n\t\t// The first value is the bridge result; close failures after that are cleanup-only.\n\t}\n\treturn Promise.resolve(value as T);\n}\n\nfunction nodeInputToPromise<T>(input: NodeInput<T>, opts: { iter?: boolean }): Promise<T> {\n\tif (isThenable(input)) return Promise.resolve(input as PromiseLike<T>).then(singleFromAnyValue);\n\tif (isNode(input)) return firstValueFrom(input as Node<T>).then(singleFromAnyValue);\n\tif (isAsyncIterable<T>(input)) return firstFromAsyncIterable(input).then(singleFromAnyValue);\n\tif (opts.iter === true && isIterable<T>(input)) {\n\t\treturn firstFromIterable(input).then(singleFromAnyValue);\n\t}\n\tif (input === undefined) {\n\t\treturn Promise.reject(new TypeError(\"singleFromAny: undefined is the substrate SENTINEL\"));\n\t}\n\treturn Promise.resolve(singleFromAnyValue(input as T));\n}\n\n/**\n * Keyed singleflight over {@link NodeInput}. Concurrent calls with the same key share one Promise;\n * once that input resolves/rejects, the in-flight entry is cleared and a later call re-runs the\n * factory. Host-boundary helper only; it does not create graph topology.\n */\nexport function singleFromAny<K, T>(\n\tfactory: (key: K) => NodeInput<T>,\n\topts: SingleFromAnyOptions<K> = {},\n): (key: K) => Promise<T> {\n\tconst keyOf = opts.keyOf ?? ((key: K): unknown => key);\n\tconst inFlight = new Map<unknown, Promise<T>>();\n\n\treturn (key: K): Promise<T> => {\n\t\tconst dedupeKey = keyOf(key);\n\t\tconst existing = inFlight.get(dedupeKey);\n\t\tif (existing) return existing;\n\n\t\tlet resolvePending!: (value: T) => void;\n\t\tlet rejectPending!: (reason: unknown) => void;\n\t\tlet tracked!: Promise<T>;\n\t\tconst cleanup = (): void => {\n\t\t\tif (inFlight.get(dedupeKey) === tracked) inFlight.delete(dedupeKey);\n\t\t};\n\t\tconst pending = new Promise<T>((resolve, reject) => {\n\t\t\tresolvePending = resolve;\n\t\t\trejectPending = reject;\n\t\t});\n\t\ttracked = pending.then(\n\t\t\t(value) => {\n\t\t\t\tcleanup();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\t(error) => {\n\t\t\t\tcleanup();\n\t\t\t\tthrow error;\n\t\t\t},\n\t\t);\n\t\tinFlight.set(dedupeKey, tracked);\n\t\ttry {\n\t\t\tnodeInputToPromise(factory(key), opts).then(resolvePending, rejectPending);\n\t\t} catch (e) {\n\t\t\trejectPending(e);\n\t\t}\n\t\treturn tracked;\n\t};\n}\n"],"mappings":";;;;;;;;;AA8DA,SAAS,OACR,SAEA,OACA,MACqB;AACrB,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,MAAM,CAAC,QAAQ;AACd,UAAI;AACJ,UAAI,cAAc;AAClB,UAAI,eAAe,MAAM;AACxB,sBAAc;AACd,YAAI,OAAO,YAAY,WAAY,SAAQ;AAAA,MAC5C,CAAC;AACD,YAAM,eAAe,MAAM,GAAG;AAC9B,gBAAU,OAAO,iBAAiB,aAAa,eAAe;AAC9D,UAAI,eAAe,OAAO,YAAY,WAAY,SAAQ;AAAA,IAC3D;AAAA,EACD;AACD;AAEA,SAAS,qBAAqB,OAAe,OAAqB;AACjE,MAAI,OAAO,UAAU,YAAY,MAAM,WAAW,GAAG;AACpD,UAAM,IAAI,UAAU,GAAG,KAAK,6BAA6B;AAAA,EAC1D;AACD;AAEA,SAAS,kBACR,QACA,YACO;AACP,SAAO,QAAQ;AACf,QAAM,SAAS,WAAW;AAC1B,aAAW,QAAQ;AACnB,MAAI,WAAW,OAAW,iBAAgB,MAAM;AACjD;AAEA,SAAS,oBACR,QACA,YACA,QACO;AACP,MAAI,OAAO,MAAO,YAAW,QAAQ;AAAA,MAChC,iBAAgB,MAAM;AAC5B;AAEA,SAAS,gBAAgB,QAA4B;AACpD,MAAI;AACH,WAAO;AAAA,EACR,QAAQ;AAAA,EAER;AACD;AAEA,SAAS,oBACR,SACA,SACA,OACqB;AACrB,SAAO;AAAA,IACN;AAAA,IACA,CAAC,QAAQ;AACR,YAAM,SAAS,EAAE,OAAO,KAAK;AAC7B,YAAM,aAAkD,EAAE,OAAO,OAAU;AAC3E,YAAM,WAAW,CAAC,WAA4B;AAC7C,YAAI,CAAC,OAAO,MAAO;AACnB,0BAAkB,QAAQ,UAAU;AACpC,YAAI,OAAO,GAAI,KAAI,KAAK,CAAC,CAAC,QAAQ,OAAO,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;AAAA,YACzD,KAAI,KAAK,CAAC,CAAC,SAAS,aAAa,OAAO,KAAK,CAAC,CAAC,CAAC;AAAA,MACtD;AACA,UAAI;AACJ,UAAI;AACH,iBAAS,MAAM,KAAK,QAAQ;AAAA,MAC7B,SAAS,GAAG;AACX,eAAO,QAAQ;AACf,YAAI,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC;AACrC;AAAA,MACD;AACA,UAAI,WAAW,QAAW;AACzB,eAAO,QAAQ;AACf,YAAI,KAAK,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC;AAC7B;AAAA,MACD;AACA,0BAAoB,QAAQ,YAAY,MAAM;AAC9C,aAAO,MAAM,kBAAkB,QAAQ,UAAU;AAAA,IAClD;AAAA,IACA,EAAE,MAAM,SAAS,UAAU,MAAM;AAAA,EAClC;AACD;AAEA,SAAS,mBACR,SACA,SACA,OACA,QACA,SACqB;AACrB,SAAO;AAAA,IACN;AAAA,IACA,CAAC,QAAQ;AACR,YAAM,SAAS,EAAE,OAAO,KAAK;AAC7B,YAAM,aAAkD,EAAE,OAAO,OAAU;AAC3E,YAAM,WAAW,CAAC,UAAa;AAC9B,YAAI,CAAC,OAAO,MAAO;AACnB,YAAI,MAAM,SAAS,SAAS;AAC3B,gBAAM,QAAQ,OAAO,KAAK;AAC1B,cAAI,UAAU,OAAW,KAAI,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;AAAA,QACpD,WAAW,MAAM,SAAS,SAAS;AAClC,4BAAkB,QAAQ,UAAU;AACpC,cAAI,KAAK,CAAC,CAAC,SAAS,aAAa,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC;AAAA,QACnD,WAAW,MAAM,SAAS,YAAY;AACrC,4BAAkB,QAAQ,UAAU;AACpC,cAAI,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;AAAA,QACxB;AAAA,MACD;AACA,UAAI;AACJ,UAAI;AACH,iBAAS,MAAM,KAAK,QAAQ;AAAA,MAC7B,SAAS,GAAG;AACX,eAAO,QAAQ;AACf,YAAI,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC;AACrC;AAAA,MACD;AACA,UAAI,WAAW,QAAW;AACzB,eAAO,QAAQ;AACf,YAAI,KAAK,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC;AAC7B;AAAA,MACD;AACA,0BAAoB,QAAQ,YAAY,MAAM;AAC9C,aAAO,MAAM,kBAAkB,QAAQ,UAAU;AAAA,IAClD;AAAA,IACA,EAAE,MAAM,SAAS,UAAU,MAAM;AAAA,EAClC;AACD;AAEA,SAAS,OAAO,GAAuB;AACtC,SACC,KAAK,QACL,OAAO,MAAM,YACb,WAAW,KACX,OAAQ,EAAW,cAAc;AAEnC;AAEA,SAAS,WAAW,GAAuC;AAC1D,SAAO,KAAK,QAAQ,OAAQ,EAA2B,SAAS;AACjE;AAEA,SAAS,gBAAmB,GAAmC;AAC9D,SACC,MAAM,QACN,MAAM,UACN,OAAQ,EAA2C,OAAO,aAAa,MAAM;AAE/E;AAEA,SAAS,WAAc,GAA8B;AACpD,SACC,MAAM,QACN,MAAM,UACN,OAAQ,EAAsC,OAAO,QAAQ,MAAM;AAErE;AAmEA,SAAS,eAAe,OAAe,KAAa,KAA0B;AAC7E,MAAI,MAAM,WAAW,EAAG,OAAM,IAAI,MAAM,2BAA2B;AACnE,QAAM,MAAM,oBAAI,IAAY;AAC5B,aAAW,QAAQ,MAAM,MAAM,GAAG,GAAG;AACpC,QAAI,KAAK,WAAW,EAAG,OAAM,IAAI,MAAM,uBAAuB,KAAK,EAAE;AACrE,UAAM,YAAY,KAAK,MAAM,GAAG;AAChC,QAAI,UAAU,SAAS,EAAG,OAAM,IAAI,MAAM,sBAAsB,IAAI,EAAE;AACtE,UAAM,CAAC,OAAO,QAAQ,IAAI;AAC1B,QAAI,SAAS,QAAQ,MAAM,WAAW,EAAG,OAAM,IAAI,MAAM,uBAAuB,KAAK,EAAE;AACvF,QAAI,aAAa,GAAI,OAAM,IAAI,MAAM,sBAAsB,IAAI,EAAE;AACjE,UAAM,OAAO,YAAY,OAAO,IAAI,aAAa,UAAU,sBAAsB,IAAI,EAAE;AACvF,QAAI,OAAO,EAAG,OAAM,IAAI,MAAM,sBAAsB,IAAI,EAAE;AAE1D,QAAI;AACJ,QAAI;AACJ,QAAI,UAAU,KAAK;AAClB,cAAQ;AACR,YAAM;AAAA,IACP,WAAW,MAAM,SAAS,GAAG,GAAG;AAC/B,YAAM,CAAC,GAAG,GAAG,KAAK,IAAI,MAAM,MAAM,GAAG;AACrC,UAAI,UAAU,UAAa,MAAM,MAAM,MAAM;AAC5C,cAAM,IAAI,MAAM,uBAAuB,KAAK,EAAE;AAC/C,cAAQ,aAAa,GAAG,uBAAuB,KAAK,EAAE;AACtD,YAAM,aAAa,GAAG,uBAAuB,KAAK,EAAE;AAAA,IACrD,OAAO;AACN,cAAQ,aAAa,OAAO,uBAAuB,KAAK,EAAE;AAC1D,YAAM;AAAA,IACP;AAEA,QAAI,CAAC,OAAO,UAAU,KAAK,KAAK,CAAC,OAAO,UAAU,GAAG,GAAG;AACvD,YAAM,IAAI,MAAM,uBAAuB,KAAK,EAAE;AAAA,IAC/C;AACA,QAAI,QAAQ,OAAO,MAAM,KAAK;AAC7B,YAAM,IAAI,WAAW,4BAA4B,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG;AAAA,IACzE;AACA,QAAI,QAAQ,IAAK,OAAM,IAAI,MAAM,uBAAuB,KAAK,IAAI,GAAG,OAAO,KAAK,EAAE;AAClF,aAAS,IAAI,OAAO,KAAK,KAAK,KAAK,KAAM,KAAI,IAAI,CAAC;AAAA,EACnD;AACA,SAAO;AACR;AAEA,SAAS,aAAa,MAAc,SAAyB;AAC5D,MAAI,CAAC,QAAQ,KAAK,IAAI,EAAG,OAAM,IAAI,MAAM,OAAO;AAChD,QAAM,QAAQ,OAAO,SAAS,MAAM,EAAE;AACtC,MAAI,CAAC,OAAO,cAAc,KAAK,EAAG,OAAM,IAAI,MAAM,OAAO;AACzD,SAAO;AACR;AAGO,SAAS,UAAU,MAA4B;AACrD,QAAM,QAAQ,KAAK,KAAK,EAAE,MAAM,KAAK;AACrC,MAAI,MAAM,WAAW,KAAK,MAAM,KAAK,CAAC,SAAS,KAAK,WAAW,CAAC,GAAG;AAClE,UAAM,IAAI,MAAM,wCAAwC,MAAM,MAAM,EAAE;AAAA,EACvE;AACA,SAAO;AAAA,IACN,SAAS,eAAe,MAAM,CAAC,GAAG,GAAG,EAAE;AAAA,IACvC,OAAO,eAAe,MAAM,CAAC,GAAG,GAAG,EAAE;AAAA,IACrC,aAAa,eAAe,MAAM,CAAC,GAAG,GAAG,EAAE;AAAA,IAC3C,QAAQ,eAAe,MAAM,CAAC,GAAG,GAAG,EAAE;AAAA,IACtC,YAAY,eAAe,MAAM,CAAC,GAAG,GAAG,CAAC;AAAA,EAC1C;AACD;AAiBO,SAAS,YACf,UACA,MACA,OAAyB,CAAC,GAChB;AACV,QAAM,SAAS,oBAAoB,MAAM,KAAK,QAAQ;AACtD,SACC,SAAS,QAAQ,IAAI,OAAO,MAAM,KAClC,SAAS,MAAM,IAAI,OAAO,IAAI,KAC9B,SAAS,YAAY,IAAI,OAAO,GAAG,KACnC,SAAS,OAAO,IAAI,OAAO,KAAK,KAChC,SAAS,WAAW,IAAI,OAAO,SAAS;AAE1C;AAEA,SAAS,cAAc,MAAY,UAA2B;AAC7D,QAAM,SAAS,oBAAoB,MAAM,QAAQ;AACjD,SAAO,GAAG,OAAO,IAAI,IAAI,OAAO,KAAK,IAAI,OAAO,GAAG,IAAI,OAAO,IAAI,IAAI,OAAO,MAAM;AACpF;AAEA,SAAS,WAAW,MAAY,UAA2B;AAC1D,QAAM,SAAS,oBAAoB,MAAM,QAAQ;AACjD,SAAO,GAAG,OAAO,IAAI,IAAI,OAAO,KAAK,IAAI,OAAO,GAAG;AACpD;AAEA,SAAS,oBAAoB,MAAY,UAAwC;AAChF,MAAI,aAAa,QAAW;AAC3B,WAAO;AAAA,MACN,MAAM,KAAK,YAAY;AAAA,MACvB,OAAO,KAAK,SAAS,IAAI;AAAA,MACzB,KAAK,KAAK,QAAQ;AAAA,MAClB,MAAM,KAAK,SAAS;AAAA,MACpB,QAAQ,KAAK,WAAW;AAAA,MACxB,WAAW,KAAK,OAAO;AAAA,IACxB;AAAA,EACD;AACA,QAAM,QAAQ,kBAAkB,QAAQ,EAAE,cAAc,IAAI;AAC5D,QAAM,SAAiC,CAAC;AACxC,aAAW,QAAQ,OAAO;AACzB,QACC,KAAK,SAAS,UACd,KAAK,SAAS,WACd,KAAK,SAAS,SACd,KAAK,SAAS,UACd,KAAK,SAAS,UACb;AACD,aAAO,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,OAAO,EAAE;AAAA,IACnD;AAAA,EACD;AACA,QAAM,OAAO,OAAO;AACpB,QAAM,QAAQ,OAAO;AACrB,QAAM,MAAM,OAAO;AACnB,QAAM,OAAO,OAAO;AACpB,QAAM,SAAS,OAAO;AACtB,MACC,SAAS,UACT,UAAU,UACV,QAAQ,UACR,SAAS,UACT,WAAW,QACV;AACD,UAAM,IAAI,MAAM,4CAA4C,QAAQ,EAAE;AAAA,EACvE;AACA,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,IAAI,KAAK,KAAK,IAAI,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,UAAU;AAAA,EAC/D;AACD;AAEA,IAAM,sBAAsB,oBAAI,IAAiC;AAEjE,SAAS,kBAAkB,UAAuC;AACjE,QAAM,WAAW,oBAAoB,IAAI,QAAQ;AACjD,MAAI,aAAa,OAAW,QAAO;AACnC,uBAAqB,UAAU,oBAAoB;AACnD,MAAI;AACH,UAAM,YAAY,IAAI,KAAK,eAAe,8BAA8B;AAAA,MACvE,UAAU;AAAA,MACV,MAAM;AAAA,MACN,OAAO;AAAA,MACP,KAAK;AAAA,MACL,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,WAAW;AAAA,IACZ,CAAC;AACD,cAAU,OAAO,oBAAI,KAAK,CAAC,CAAC;AAC5B,wBAAoB,IAAI,UAAU,SAAS;AAC3C,WAAO;AAAA,EACR,SAAS,OAAO;AACf,UAAM,IAAI;AAAA,MACT,wCAAwC,QAAQ,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,IAC7G;AAAA,EACD;AACD;AAEA,SAAS,kBAAkB,MAAoB;AAC9C,UAAQ,OAAO,KAAK,QAAQ,CAAC,IAAI,UAAY,SAAS;AACvD;AAkBO,SAAS,SACf,MACA,OAAwB,CAAC,GACiB;AAC1C,QAAM,WAAW,UAAU,IAAI;AAC/B,QAAM,EAAE,SAAS,KAAQ,SAAS,gBAAgB,QAAQ,SAAS,IAAI;AACvE,MAAI,KAAK,KAAK,gBAAgB,UAAa,KAAK,IAAI,gBAAgB,QAAQ;AAC3E,UAAM,IAAI,WAAW,0DAA0D;AAAA,EAChF;AACA,MAAI,KAAK,KAAK,aAAa,UAAa,KAAK,IAAI,aAAa,QAAQ;AACrE,UAAM,IAAI,WAAW,uDAAuD;AAAA,EAC7E;AACA,MAAI,aAAa,OAAW,mBAAkB,QAAQ;AACtD,MAAI,CAAC,OAAO,SAAS,MAAM,KAAK,UAAU,GAAG;AAC5C,UAAM,IAAI,WAAW,mDAAmD;AAAA,EACzE;AACA,SAAO;AAAA,IACN;AAAA,IACA,CAAC,QAAQ;AACR,UAAI,OAAO;AACX,UAAI;AACJ,UAAI;AACJ,YAAM,uBAAuB,oBAAI,IAAY;AAC7C,UAAI;AACJ,YAAM,UAAU,MAAM;AACrB,eAAO;AACP,YAAI,eAAe,OAAW,eAAc,UAAU;AACtD,qBAAa;AACb,gBAAQ,oBAAoB,SAAS,OAAO;AAAA,MAC7C;AACA,YAAM,UAAU,MAAM;AACrB,YAAI,KAAM;AACV,gBAAQ;AACR,YAAI,KAAK,CAAC,CAAC,SAAS,aAAa,QAAQ,MAAM,CAAC,CAAC,CAAC;AAAA,MACnD;AACA,YAAM,UAAU,CAAC,QAAc;AAC9B,YAAI,WAAW,OAAQ,KAAI,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;AAAA,iBACtC,WAAW,eAAgB,KAAI,KAAK,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC;AAAA,YACjE,KAAI,KAAK,CAAC,CAAC,QAAQ,kBAAkB,GAAG,CAAC,CAAC,CAAC;AAAA,MACjD;AACA,YAAM,QAAQ,MAAM;AACnB,YAAI,KAAM;AACV,cAAM,MAAM,oBAAI,KAAK;AACrB,cAAM,MAAM,cAAc,KAAK,QAAQ;AACvC,cAAM,eACL,aAAa,SAAY,QAAQ,eAAe,qBAAqB,IAAI,GAAG;AAC7E,YAAI,CAAC,gBAAgB,YAAY,UAAU,KAAK,EAAE,SAAS,CAAC,GAAG;AAC9D,yBAAe;AACf,cAAI,aAAa,QAAW;AAC3B,kBAAM,SAAS,WAAW,KAAK,QAAQ;AACvC,gBAAI,WAAW,kBAAkB;AAChC,iCAAmB;AACnB,mCAAqB,MAAM;AAAA,YAC5B;AACA,iCAAqB,IAAI,GAAG;AAAA,UAC7B;AACA,kBAAQ,GAAG;AAAA,QACZ;AAAA,MACD;AACA,UAAI,QAAQ,SAAS;AACpB,gBAAQ;AACR,eAAO;AAAA,MACR;AACA,cAAQ,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACzD,YAAM;AACN,mBAAa,YAAY,OAAO,MAAM;AACtC,aAAO;AAAA,IACR;AAAA,IACA,EAAE,MAAM,QAAQ,UAAU,MAAM;AAAA,EACjC;AACD;AAEO,SAAS,WACf,SACA,OAA0B,CAAC,GACM;AACjC,SAAO,sBAAsB,EAAE,SAAS,KAAK,CAAC;AAC/C;AAEO,SAAS,YACf,SACA,OAA0B,CAAC,GACM;AACjC,SAAO,cAAc,eAAe,EAAE,SAAS,KAAK,CAAC;AACtD;AAEO,SAAS,sBAAsB,SAAyD;AAC9F,SAAO,cAAc,cAAc,OAAO;AAC3C;AAEA,SAAS,cAAc,SAAiB,SAAyD;AAChG,uBAAqB,QAAQ,SAAS,GAAG,OAAO,WAAW;AAC3D,SAAO;AAAA,IACN;AAAA,IACA,GAAG,OAAO;AAAA,IACV,CAAC,KAAK,aAAa,IAAI,YAAY,EAAE,cAAc,GAAG,IAAI,SAAS,QAAQ;AAAA,EAC5E;AACD;AAEO,SAAS,SAAS,KAA4C;AACpE,SAAO,oBAAoB,EAAE,QAAQ,OAAO,IAAI,CAAC;AAClD;AAEO,SAAS,oBAAoB,SAAqD;AACxF,uBAAqB,QAAQ,KAAK,eAAe;AACjD,uBAAqB,QAAQ,QAAQ,kBAAkB;AACvD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,KAAK,aAAa,IAAI,YAAY,EAAE,WAAW,GAAG,QAAQ,SAAS,QAAQ;AAAA,EAC7E;AACD;AAEO,SAAS,QAAQ,KAAwC;AAC/D,SAAO,mBAAmB,EAAE,IAAI,CAAC;AAClC;AAEO,SAAS,mBAAmB,SAAgD;AAClF,uBAAqB,QAAQ,KAAK,cAAc;AAChD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,KAAK,aAAa,IAAI,YAAY,EAAE,UAAU,GAAG,QAAQ,SAAS,QAAQ;AAAA,IAC3E,CAAC,UAAW,MAAM,SAAS,UAAU,MAAM,QAAQ;AAAA,IACnD,CAAC,UAAW,MAAM,SAAS,UAAU,MAAM,QAAQ;AAAA,EACpD;AACD;AAEO,SAAS,cAAc,KAA8C;AAC3E,SAAO,yBAAyB,EAAE,IAAI,CAAC;AACxC;AAEO,SAAS,yBACf,SACkC;AAClC,uBAAqB,QAAQ,KAAK,oBAAoB;AACtD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,KAAK,aAAa,IAAI,YAAY,EAAE,gBAAgB,GAAG,QAAQ,SAAS,QAAQ;AAAA,IACjF,CAAC,UAAW,MAAM,SAAS,UAAU,MAAM,QAAQ;AAAA,IACnD,CAAC,UAAW,MAAM,SAAS,UAAU,MAAM,QAAQ;AAAA,EACpD;AACD;AAEO,SAAS,YAAY,IAA2C;AACtE,SAAO,uBAAuB,EAAE,GAAG,CAAC;AACrC;AAEO,SAAS,uBACf,cACgC;AAChC,uBAAqB,aAAa,IAAI,iBAAiB;AACvD,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,CAAC,KAAK,aAAa,IAAI,YAAY,EAAE,cAAc,GAAG,SAAS,cAAc,QAAQ;AAAA,IACrF,CAAC,UAAW,MAAM,SAAS,UAAU,MAAM,QAAQ;AAAA,IACnD,CAAC,UAAW,MAAM,SAAS,UAAU,MAAM,QAAQ;AAAA,EACpD;AACD;AAEA,SAAS,YAAY,SAAiB,IAAY,MAAiD;AAClG,QAAM,EAAE,QAAQ,OAAO,IAAI,QAAQ,CAAC;AACpC,QAAM,KAAK;AAAA,IACV;AAAA,IACA,CAAC,QAAQ;AACR,UAAI,OAAO;AACX,UAAI,QAAQ;AACZ,UAAI;AACJ,UAAI;AACJ,YAAM,UAAU,MAAM;AACrB,eAAO;AACP,YAAI,MAAM,OAAW,cAAa,CAAC;AACnC,YAAI,OAAO,OAAW,eAAc,EAAE;AACtC,gBAAQ,oBAAoB,SAAS,OAAO;AAAA,MAC7C;AACA,YAAM,UAAU,MAAM;AACrB,YAAI,KAAM;AACV,gBAAQ;AACR,YAAI,KAAK,CAAC,CAAC,SAAS,aAAa,QAAQ,MAAM,CAAC,CAAC,CAAC;AAAA,MACnD;AACA,YAAM,SAAS,MAAM;AACpB,YAAI,KAAM;AACV,YAAI,UAAU,MAAM;AACnB,cAAI,KAAK,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC;AAC5B,eAAK,YAAY,MAAM;AACtB,gBAAI,KAAM;AACV,gBAAI,KAAK,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC;AAAA,UAC7B,GAAG,MAAM;AAAA,QACV,OAAO;AAEN,iBAAO;AACP,kBAAQ,oBAAoB,SAAS,OAAO;AAC5C,cAAI,KAAK,CAAC,CAAC,QAAQ,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;AAAA,QAC3C;AAAA,MACD;AACA,UAAI,QAAQ,SAAS;AACpB,gBAAQ;AACR;AAAA,MACD;AACA,cAAQ,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACzD,UAAI,WAAW,QAAQ,EAAE;AACzB,aAAO;AAAA,IACR;AAAA,IACA,EAAE,MAAM,QAAQ,UAAU,MAAM;AAAA,EACjC;AACA,MAAI,YAAY,WAAW,WAAW,UAAa,WAAW,QAAW;AACxE,WAAO,EAAE,GAAG,IAAI,SAAS,EAAE,KAAK,SAAS,QAAQ,EAAE,IAAI,iBAAiB,IAAI,UAAU,EAAE,EAAE,EAAE;AAAA,EAC7F;AACA,SAAO;AACR;AAkBO,SAAS,MAAM,IAAY,MAAiD;AAClF,SAAO,YAAY,SAAS,IAAI,IAAI;AACrC;AAiBO,SAAS,UAAU,IAAY,MAAiD;AACtF,SAAO,YAAY,aAAa,IAAI,IAAI;AACzC;AAeO,SAAS,SAAS,IAAqC;AAC7D,SAAO,YAAY,YAAY,IAAI,EAAE,QAAQ,GAAG,CAAC;AAClD;AAkBO,SAAS,YACf,GACA,MACqB;AACrB,QAAM,SAAS,MAAM;AACrB,SAAO;AAAA,IACN;AAAA,IACA,CAAC,QAAQ;AACR,UAAI,UAAU;AACd,YAAM,UAAU,MAAM;AACrB,YAAI,QAAS;AACb,kBAAU;AAEV,YAAI,KAAK,CAAC,CAAC,SAAS,aAAc,OAAuB,MAAM,CAAC,CAAC,CAAC;AAAA,MACnE;AACA,UAAI,QAAQ,SAAS;AACpB,gBAAQ;AACR;AAAA,MACD;AACA,cAAQ,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;AACzD,WAAK,QAAQ,QAAQ,CAAC,EAAE;AAAA,QACvB,CAAC,MAAM;AACN,cAAI,QAAS;AACb,oBAAU;AACV,kBAAQ,oBAAoB,SAAS,OAAO;AAC5C,cAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAAA,QACrC;AAAA,QACA,CAAC,MAAM;AACN,cAAI,QAAS;AACb,oBAAU;AACV,kBAAQ,oBAAoB,SAAS,OAAO;AAC5C,cAAI,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC;AAAA,QACtC;AAAA,MACD;AACA,aAAO,MAAM;AACZ,kBAAU;AACV,gBAAQ,oBAAoB,SAAS,OAAO;AAAA,MAC7C;AAAA,IACD;AAAA,IACA,EAAE,MAAM,QAAQ;AAAA,EACjB;AACD;AAiBO,SAAS,cACf,UACA,MACqB;AACrB,QAAM,cAAc,MAAM;AAC1B,SAAO;AAAA,IACN;AAAA,IACA,CAAC,QAAQ;AACR,YAAM,KAAK,IAAI,gBAAgB;AAC/B,YAAM,eAAe,MAAM,GAAG,MAAM,aAAa,MAAM;AACvD,mBAAa,iBAAiB,SAAS,cAAc,EAAE,MAAM,KAAK,CAAC;AACnE,UAAI,OAAO;AACX,YAAM,OAAO,YAAY;AACxB,YAAI;AACH,2BAAiB,KAAK,UAAU;AAC/B,gBAAI,GAAG,OAAO,QAAS;AACvB,gBAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAAA,UACvB;AACA,cAAI,CAAC,GAAG,OAAO,QAAS,KAAI,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;AAAA,QAChD,SAAS,GAAG;AACX,cAAI,CAAC,GAAG,OAAO,QAAS,KAAI,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC;AAAA,QAC9D,UAAE;AACD,iBAAO;AAAA,QACR;AAAA,MACD;AACA,WAAK,KAAK;AACV,aAAO,MAAM;AACZ,YAAI,CAAC,KAAM,IAAG,MAAM;AACpB,qBAAa,oBAAoB,SAAS,YAAY;AAAA,MACvD;AAAA,IACD;AAAA,IACA,EAAE,MAAM,QAAQ;AAAA,EACjB;AACD;AAeO,SAAS,MAAiB,QAAiC;AACjE,SAAO;AAAA,IACN;AAAA,IACA,CAAC,QAAQ;AACR,iBAAW,SAAS,OAAQ,KAAI,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC;AACtD,UAAI,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;AAAA,IACxB;AAAA,IACA,EAAE,MAAM,OAAO;AAAA,EAChB;AACD;AAeO,SAAS,SAAY,UAA2C;AACtE,SAAO;AAAA,IACN;AAAA,IACA,CAAC,QAAQ;AACR,iBAAW,KAAK,SAAU,KAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,UAAI,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;AAAA,IACxB;AAAA,IACA,EAAE,MAAM,OAAO;AAAA,EAChB;AACD;AAcO,SAAS,QAAuC;AACtD,SAAO;AAAA,IACN;AAAA,IACA,CAAC,QAAQ;AACR,UAAI,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;AAAA,IACxB;AAAA,IACA,EAAE,MAAM,OAAO;AAAA,EAChB;AACD;AAcO,SAAS,QAAuC;AACtD,SAAO,OAAU,SAAS,MAAM,QAAW,EAAE,MAAM,OAAO,CAAC;AAC5D;AAeO,SAAS,WAAW,KAAsC;AAChE,SAAO;AAAA,IACN;AAAA,IACA,CAAC,QAAQ;AACR,UAAI,KAAK,CAAC,CAAC,SAAS,aAAa,GAAG,CAAC,CAAC,CAAC;AAAA,IACxC;AAAA,IACA,EAAE,MAAM,OAAO;AAAA,EAChB;AACD;AAkBO,SAAS,UACf,QACA,MACA,OAAyB,CAAC,GACL;AACrB,MAAI,UAAU,QAAQ,OAAO,OAAO,qBAAqB,YAAY;AACpE,UAAM,IAAI,UAAU,mDAAmD;AAAA,EACxE;AACA,MAAI,OAAO,OAAO,wBAAwB,YAAY;AACrD,UAAM,IAAI,UAAU,sDAAsD;AAAA,EAC3E;AACA,MAAI,OAAO,SAAS,YAAY,KAAK,WAAW,GAAG;AAClD,UAAM,IAAI,UAAU,kDAAkD;AAAA,EACvE;AACA,SAAO;AAAA,IACN;AAAA,IACA,CAAC,QAAQ;AACR,UAAI,OAAO;AACX,YAAM,UAAU,CAAC,UAAmB;AACnC,YAAI,CAAC,KAAM,KAAI,KAAK,CAAC,CAAC,QAAQ,KAAU,CAAC,CAAC;AAAA,MAC3C;AACA,aAAO,iBAAiB,MAAM,SAAS,IAAI;AAC3C,aAAO,MAAM;AACZ,eAAO;AACP,eAAO,oBAAoB,MAAM,SAAS,IAAI;AAAA,MAC/C;AAAA,IACD;AAAA,IACA,EAAE,MAAM,OAAO;AAAA,EAChB;AACD;AAMO,SAAS,qBAAkC,UAA+C;AAChG,MAAI,OAAO,aAAa,YAAY;AACnC,UAAM,IAAI,UAAU,mDAAmD;AAAA,EACxE;AACA,SAAO;AAAA,IACN;AAAA,IACA,CAAC,QAAQ;AACR,UAAI,OAAO;AACX,YAAM,UAAU,CAAC,YAAe;AAC/B,YAAI,CAAC,KAAM,KAAI,KAAK,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC;AAAA,MACxC;AACA,YAAM,cAAc,SAAS,OAAO;AACpC,aAAO,MAAM;AACZ,eAAO;AACP,YAAI,OAAO,gBAAgB,WAAY,aAAY;AAAA,MACpD;AAAA,IACD;AAAA,IACA,EAAE,MAAM,OAAO;AAAA,EAChB;AACD;AASO,SAAS,QACf,OACA,OAA4C,CAAC,GACnC;AACV,MAAI,OAAO,KAAK,EAAG,QAAO;AAC1B,QAAM,EAAE,MAAM,GAAG,SAAS,IAAI;AAC9B,MAAI,WAAW,KAAK,GAAG;AACtB,WAAO,SAAS,YAAY,KAAuB,GAAG,CAAC,GAAG,QAAQ;AAAA,EACnE;AACA,MAAI,UAAU,QAAQ,UAAU,QAAW;AAC1C,UAAM,YAAY;AAIlB,QAAI,OAAO,UAAU,OAAO,aAAa,MAAM,YAAY;AAC1D,aAAO,SAAS,cAAc,KAAyB,GAAG,CAAC,GAAG,QAAQ;AAAA,IACvE;AACA,QAAI,SAAS,QAAQ,OAAO,UAAU,OAAO,QAAQ,MAAM,YAAY;AACtE,aAAO,SAAS,SAAS,KAAoB,GAAG,CAAC,GAAG,QAAQ;AAAA,IAC7D;AAAA,EACD;AACA,SAAO,SAAS,GAAG,KAAU,GAAG,CAAC,GAAG,QAAQ;AAC7C;AAOO,SAAS,eAAkBA,SAA6B;AAC9D,SAAO,IAAI,QAAW,CAAC,SAAS,WAAW;AAC1C,QAAI,UAAU;AACd,QAAI,cAAc;AAClB,QAAI;AACJ,UAAM,SAAS,CAAC,MAAwB;AACvC,UAAI,QAAS;AACb,gBAAU;AACV,QAAE;AACF,UAAI,OAAO;AACV,cAAM;AACN,gBAAQ;AAAA,MACT,OAAO;AACN,sBAAc;AAAA,MACf;AAAA,IACD;AACA,YAAQA,QAAO,UAAU,CAAC,QAAQ;AACjC,UAAI,IAAI,CAAC,MAAM,QAAQ;AACtB,eAAO,MAAM,QAAQ,IAAI,CAAC,CAAM,CAAC;AAAA,MAClC,WAAW,IAAI,CAAC,MAAM,SAAS;AAC9B,eAAO,MAAM,OAAO,IAAI,CAAC,CAAC,CAAC;AAAA,MAC5B,WAAW,IAAI,CAAC,MAAM,YAAY;AACjC,eAAO,MAAM,OAAO,IAAI,MAAM,wCAAwC,CAAC,CAAC;AAAA,MACzE,WAAW,IAAI,CAAC,MAAM,YAAY;AACjC,eAAO,MAAM,OAAO,IAAI,MAAM,wCAAwC,CAAC,CAAC;AAAA,MACzE;AAAA,IACD,CAAC;AACD,QAAI,aAAa;AAChB,cAAQ;AACR,cAAQ;AAAA,IACT;AAAA,EACD,CAAC;AACF;AAEA,SAAS,mBAAsB,OAAa;AAC3C,MAAI,UAAU,QAAW;AACxB,UAAM,IAAI,UAAU,oDAAoD;AAAA,EACzE;AACA,SAAO;AACR;AAEA,eAAe,uBAA0B,OAAqC;AAC7E,QAAM,OAAO,MAAM,OAAO,aAAa,EAAE;AACzC,QAAM,EAAE,OAAO,KAAK,IAAI,MAAM,KAAK,KAAK;AACxC,MAAI,MAAM;AACT,UAAM,KAAK,SAAS;AACpB,UAAM,IAAI,MAAM,sDAAsD;AAAA,EACvE;AACA,MAAI;AACH,UAAM,KAAK,SAAS;AAAA,EACrB,QAAQ;AAAA,EAER;AACA,SAAO;AACR;AAEA,SAAS,kBAAqB,OAAgC;AAC7D,QAAM,OAAO,MAAM,OAAO,QAAQ,EAAE;AACpC,QAAM,EAAE,OAAO,KAAK,IAAI,KAAK,KAAK;AAClC,MAAI,MAAM;AACT,SAAK,SAAS;AACd,WAAO,QAAQ,OAAO,IAAI,MAAM,gDAAgD,CAAC;AAAA,EAClF;AACA,MAAI;AACH,SAAK,SAAS;AAAA,EACf,QAAQ;AAAA,EAER;AACA,SAAO,QAAQ,QAAQ,KAAU;AAClC;AAEA,SAAS,mBAAsB,OAAqB,MAAsC;AACzF,MAAI,WAAW,KAAK,EAAG,QAAO,QAAQ,QAAQ,KAAuB,EAAE,KAAK,kBAAkB;AAC9F,MAAI,OAAO,KAAK,EAAG,QAAO,eAAe,KAAgB,EAAE,KAAK,kBAAkB;AAClF,MAAI,gBAAmB,KAAK,EAAG,QAAO,uBAAuB,KAAK,EAAE,KAAK,kBAAkB;AAC3F,MAAI,KAAK,SAAS,QAAQ,WAAc,KAAK,GAAG;AAC/C,WAAO,kBAAkB,KAAK,EAAE,KAAK,kBAAkB;AAAA,EACxD;AACA,MAAI,UAAU,QAAW;AACxB,WAAO,QAAQ,OAAO,IAAI,UAAU,oDAAoD,CAAC;AAAA,EAC1F;AACA,SAAO,QAAQ,QAAQ,mBAAmB,KAAU,CAAC;AACtD;AAOO,SAAS,cACf,SACA,OAAgC,CAAC,GACR;AACzB,QAAM,QAAQ,KAAK,UAAU,CAAC,QAAoB;AAClD,QAAM,WAAW,oBAAI,IAAyB;AAE9C,SAAO,CAAC,QAAuB;AAC9B,UAAM,YAAY,MAAM,GAAG;AAC3B,UAAM,WAAW,SAAS,IAAI,SAAS;AACvC,QAAI,SAAU,QAAO;AAErB,QAAI;AACJ,QAAI;AACJ,QAAI;AACJ,UAAM,UAAU,MAAY;AAC3B,UAAI,SAAS,IAAI,SAAS,MAAM,QAAS,UAAS,OAAO,SAAS;AAAA,IACnE;AACA,UAAM,UAAU,IAAI,QAAW,CAAC,SAAS,WAAW;AACnD,uBAAiB;AACjB,sBAAgB;AAAA,IACjB,CAAC;AACD,cAAU,QAAQ;AAAA,MACjB,CAAC,UAAU;AACV,gBAAQ;AACR,eAAO;AAAA,MACR;AAAA,MACA,CAAC,UAAU;AACV,gBAAQ;AACR,cAAM;AAAA,MACP;AAAA,IACD;AACA,aAAS,IAAI,WAAW,OAAO;AAC/B,QAAI;AACH,yBAAmB,QAAQ,GAAG,GAAG,IAAI,EAAE,KAAK,gBAAgB,aAAa;AAAA,IAC1E,SAAS,GAAG;AACX,oBAAc,CAAC;AAAA,IAChB;AACA,WAAO;AAAA,EACR;AACD;","names":["source"]}
@@ -2444,4 +2444,4 @@ export {
2444
2444
  node,
2445
2445
  dynamicNode
2446
2446
  };
2447
- //# sourceMappingURL=chunk-SHZDP2MQ.js.map
2447
+ //# sourceMappingURL=chunk-GXU6WFEJ.js.map