@playfast/reform 1.3.0 → 1.4.1

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 (188) hide show
  1. package/README.md +15 -6
  2. package/dist/calc/asyncCalc.d.ts +3 -1
  3. package/dist/calc/asyncCalc.d.ts.map +1 -1
  4. package/dist/calc/asyncCalc.js +15 -5
  5. package/dist/calc/asyncCalc.js.map +1 -1
  6. package/dist/calc/asyncCalcTypes.d.ts +2 -0
  7. package/dist/calc/asyncCalcTypes.d.ts.map +1 -1
  8. package/dist/calc/calcFamily.d.ts.map +1 -1
  9. package/dist/calc/calcFamily.js +77 -34
  10. package/dist/calc/calcFamily.js.map +1 -1
  11. package/dist/calc/queryState.d.ts +3 -1
  12. package/dist/calc/queryState.d.ts.map +1 -1
  13. package/dist/calc/queryState.js +31 -9
  14. package/dist/calc/queryState.js.map +1 -1
  15. package/dist/channel/channel.d.ts.map +1 -1
  16. package/dist/channel/channel.js +6 -1
  17. package/dist/channel/channel.js.map +1 -1
  18. package/dist/compose/composition.d.ts.map +1 -1
  19. package/dist/compose/composition.js +7 -1
  20. package/dist/compose/composition.js.map +1 -1
  21. package/dist/compose/structure.d.ts.map +1 -1
  22. package/dist/compose/structure.js +33 -8
  23. package/dist/compose/structure.js.map +1 -1
  24. package/dist/compose/ui.d.ts.map +1 -1
  25. package/dist/compose/ui.js +16 -5
  26. package/dist/compose/ui.js.map +1 -1
  27. package/dist/event/event.d.ts +1 -1
  28. package/dist/event/event.d.ts.map +1 -1
  29. package/dist/event/event.js +26 -4
  30. package/dist/event/event.js.map +1 -1
  31. package/dist/internal/familyKeys.d.ts +16 -0
  32. package/dist/internal/familyKeys.d.ts.map +1 -0
  33. package/dist/internal/familyKeys.js +35 -0
  34. package/dist/internal/familyKeys.js.map +1 -0
  35. package/dist/internal/platform.d.ts +43 -0
  36. package/dist/internal/platform.d.ts.map +1 -0
  37. package/dist/internal/platform.js +68 -0
  38. package/dist/internal/platform.js.map +1 -0
  39. package/dist/internal/queryDriver.d.ts.map +1 -1
  40. package/dist/internal/queryDriver.js +88 -64
  41. package/dist/internal/queryDriver.js.map +1 -1
  42. package/dist/internal/queryDriverConsume.d.ts +9 -0
  43. package/dist/internal/queryDriverConsume.d.ts.map +1 -0
  44. package/dist/internal/queryDriverConsume.js +16 -0
  45. package/dist/internal/queryDriverConsume.js.map +1 -0
  46. package/dist/internal/queryDriverHydrate.d.ts.map +1 -1
  47. package/dist/internal/queryDriverHydrate.js +9 -3
  48. package/dist/internal/queryDriverHydrate.js.map +1 -1
  49. package/dist/internal/queryDriverPersist.d.ts +16 -0
  50. package/dist/internal/queryDriverPersist.d.ts.map +1 -0
  51. package/dist/internal/queryDriverPersist.js +15 -0
  52. package/dist/internal/queryDriverPersist.js.map +1 -0
  53. package/dist/internal/queryDriverPersistWarn.d.ts +12 -0
  54. package/dist/internal/queryDriverPersistWarn.d.ts.map +1 -0
  55. package/dist/internal/queryDriverPersistWarn.js +31 -0
  56. package/dist/internal/queryDriverPersistWarn.js.map +1 -0
  57. package/dist/internal/queryDriverSettle.d.ts +23 -0
  58. package/dist/internal/queryDriverSettle.d.ts.map +1 -0
  59. package/dist/internal/queryDriverSettle.js +52 -0
  60. package/dist/internal/queryDriverSettle.js.map +1 -0
  61. package/dist/internal/queryDriverStore.d.ts +2 -28
  62. package/dist/internal/queryDriverStore.d.ts.map +1 -1
  63. package/dist/internal/queryDriverStore.js +5 -29
  64. package/dist/internal/queryDriverStore.js.map +1 -1
  65. package/dist/internal/queryDriverTypes.d.ts +3 -0
  66. package/dist/internal/queryDriverTypes.d.ts.map +1 -1
  67. package/dist/internal/scheduler.d.ts +1 -0
  68. package/dist/internal/scheduler.d.ts.map +1 -1
  69. package/dist/internal/scheduler.js +69 -6
  70. package/dist/internal/scheduler.js.map +1 -1
  71. package/dist/internal.d.ts +2 -0
  72. package/dist/internal.d.ts.map +1 -1
  73. package/dist/internal.js +4 -0
  74. package/dist/internal.js.map +1 -1
  75. package/dist/reducer/reducer.js +3 -3
  76. package/dist/reducer/reducer.js.map +1 -1
  77. package/dist/remote/pendingQueue.d.ts +4 -2
  78. package/dist/remote/pendingQueue.d.ts.map +1 -1
  79. package/dist/remote/pendingQueue.js +20 -4
  80. package/dist/remote/pendingQueue.js.map +1 -1
  81. package/dist/remote/remoteState.d.ts.map +1 -1
  82. package/dist/remote/remoteState.js +27 -14
  83. package/dist/remote/remoteState.js.map +1 -1
  84. package/dist/remote/remoteStateSend.d.ts +3 -1
  85. package/dist/remote/remoteStateSend.d.ts.map +1 -1
  86. package/dist/remote/remoteStateSend.js +19 -3
  87. package/dist/remote/remoteStateSend.js.map +1 -1
  88. package/dist/remote/remoteStateTypes.d.ts +3 -0
  89. package/dist/remote/remoteStateTypes.d.ts.map +1 -1
  90. package/dist/runtime/bus.d.ts +5 -0
  91. package/dist/runtime/bus.d.ts.map +1 -1
  92. package/dist/runtime/bus.js +1 -1
  93. package/dist/runtime/bus.js.map +1 -1
  94. package/dist/runtime/capturedAppRuntime.d.ts.map +1 -1
  95. package/dist/runtime/capturedAppRuntime.js +37 -51
  96. package/dist/runtime/capturedAppRuntime.js.map +1 -1
  97. package/dist/runtime/eventBudget.d.ts.map +1 -1
  98. package/dist/runtime/eventBudget.js +2 -1
  99. package/dist/runtime/eventBudget.js.map +1 -1
  100. package/dist/runtime/featureMount.d.ts +34 -2
  101. package/dist/runtime/featureMount.d.ts.map +1 -1
  102. package/dist/runtime/featureMount.js +66 -2
  103. package/dist/runtime/featureMount.js.map +1 -1
  104. package/dist/runtime/loop.d.ts +12 -0
  105. package/dist/runtime/loop.d.ts.map +1 -1
  106. package/dist/runtime/loop.js +8 -5
  107. package/dist/runtime/loop.js.map +1 -1
  108. package/dist/state/state.d.ts +2 -2
  109. package/dist/state/state.d.ts.map +1 -1
  110. package/dist/state/state.js +2 -2
  111. package/dist/state/state.js.map +1 -1
  112. package/dist/state/stateFamily.d.ts +2 -2
  113. package/dist/state/stateFamily.d.ts.map +1 -1
  114. package/dist/state/stateFamily.js +80 -32
  115. package/dist/state/stateFamily.js.map +1 -1
  116. package/dist/state/stateGroup.d.ts +5 -5
  117. package/dist/state/stateGroup.d.ts.map +1 -1
  118. package/dist/state/stateGroup.js +1 -1
  119. package/dist/state/stateGroup.js.map +1 -1
  120. package/dist/testkit/flight.testkit.d.ts.map +1 -1
  121. package/dist/testkit/flight.testkit.js +2 -1
  122. package/dist/testkit/flight.testkit.js.map +1 -1
  123. package/dist/ui/trigger.d.ts +3 -0
  124. package/dist/ui/trigger.d.ts.map +1 -1
  125. package/dist/ui/trigger.js +14 -1
  126. package/dist/ui/trigger.js.map +1 -1
  127. package/dist/wire/tree.d.ts.map +1 -1
  128. package/dist/wire/tree.js +6 -1
  129. package/dist/wire/tree.js.map +1 -1
  130. package/package.json +1 -1
  131. package/src/calc/asyncCalc-key-attribution.test.ts +182 -0
  132. package/src/calc/asyncCalc-registry-name.test.ts +82 -0
  133. package/src/calc/asyncCalc.superseded-commit.test.ts +162 -0
  134. package/src/calc/asyncCalc.test.ts +35 -7
  135. package/src/calc/asyncCalc.ts +33 -10
  136. package/src/calc/asyncCalcTypes.ts +6 -0
  137. package/src/calc/calcFamily.ts +81 -34
  138. package/src/calc/family-identity.test.ts +231 -0
  139. package/src/calc/queryState.ts +36 -5
  140. package/src/channel/channel-throttle-frames.test.ts +163 -0
  141. package/src/channel/channel.ts +5 -0
  142. package/src/compose/compose-identity.test.ts +175 -0
  143. package/src/compose/composition.ts +8 -4
  144. package/src/compose/structure.ts +45 -13
  145. package/src/compose/ui.ts +22 -5
  146. package/src/event/event.ts +34 -5
  147. package/src/event/syncTrigger.test.ts +66 -0
  148. package/src/internal/familyKeys.ts +41 -0
  149. package/src/internal/platform.test.ts +55 -0
  150. package/src/internal/platform.ts +72 -0
  151. package/src/internal/queryDriver-defect-attribution.test.ts +107 -0
  152. package/src/internal/queryDriver-persist-key.test.ts +118 -0
  153. package/src/internal/queryDriver.persistence-staleness.test.ts +209 -0
  154. package/src/internal/queryDriver.ts +92 -80
  155. package/src/internal/queryDriverConsume.ts +42 -0
  156. package/src/internal/queryDriverHydrate.ts +9 -3
  157. package/src/internal/queryDriverPersist.ts +42 -0
  158. package/src/internal/queryDriverPersistWarn.ts +61 -0
  159. package/src/internal/queryDriverSettle.ts +85 -0
  160. package/src/internal/queryDriverStore.ts +9 -74
  161. package/src/internal/queryDriverTypes.ts +10 -0
  162. package/src/internal/queryState-and-scheduler-audit.test.ts +170 -0
  163. package/src/internal/scheduler-multi-source-wake.test.ts +111 -0
  164. package/src/internal/scheduler.ts +80 -6
  165. package/src/internal.ts +4 -0
  166. package/src/reducer/reducer.ts +3 -3
  167. package/src/remote/pendingQueue.ts +35 -5
  168. package/src/remote/remoteState.intent-key-stamp.test.ts +207 -0
  169. package/src/remote/remoteState.key-attribution.test.ts +174 -0
  170. package/src/remote/remoteState.ts +27 -15
  171. package/src/remote/remoteStateSend.ts +29 -8
  172. package/src/remote/remoteStateTypes.ts +7 -0
  173. package/src/runtime/bus.ts +6 -1
  174. package/src/runtime/capturedAppRuntime.ts +134 -110
  175. package/src/runtime/eventBudget.ts +2 -1
  176. package/src/runtime/feature-mount-ownership.test.ts +539 -0
  177. package/src/runtime/featureMount.ts +110 -3
  178. package/src/runtime/loop.ts +29 -6
  179. package/src/runtime/mount-inflight-ownership.test.ts +361 -0
  180. package/src/runtime/mount-scope-hardening.test.ts +440 -0
  181. package/src/runtime/runtime.schema-identity.test.ts +188 -0
  182. package/src/state/state.ts +8 -4
  183. package/src/state/stateFamily.ts +86 -36
  184. package/src/state/stateGroup.ts +24 -6
  185. package/src/testkit/flight.testkit.ts +2 -1
  186. package/src/ui/trigger.ts +18 -0
  187. package/src/wire/tree-key-presence.test.ts +46 -0
  188. package/src/wire/tree.ts +9 -1
@@ -1,4 +1,4 @@
1
- import { Option, Struct } from 'effect';
1
+ import { Equal, Option, Struct } from 'effect';
2
2
  import { reuse } from '../internal/reuse.js';
3
3
  export const StructureTypeId = Symbol.for('reform/Structure');
4
4
  const frameEvents = (frame) => 'events' in frame ? Option.some(frame.events) : Option.none();
@@ -68,6 +68,19 @@ export const absent = { _tag: 'Absent' };
68
68
  export const when = (cond, fill) => cond ? fill : absent;
69
69
  export const isStructure = (frame) => typeof frame === 'object' && frame !== null && StructureTypeId in frame;
70
70
  const isRecord = (candidate) => typeof candidate === 'object' && candidate !== null && !Array.isArray(candidate);
71
+ // A structural comparison is only meaningful over own enumerable keys when those
72
+ // keys are the whole value — true of JSON-shaped records, false of everything
73
+ // carrying its state anywhere else.
74
+ const isPlainRecord = (candidate) => {
75
+ if (!isRecord(candidate)) {
76
+ return false;
77
+ }
78
+ const prototype = Object.getPrototypeOf(candidate);
79
+ return prototype === Object.prototype || prototype === null;
80
+ };
81
+ const recordEntriesEqual = (left, right, leftKeys) => leftKeys.length === Struct.keys(right).length &&
82
+ leftKeys.every((key) => Object.prototype.hasOwnProperty.call(right, key) &&
83
+ deepEquals({ left: left[key], right: right[key] }));
71
84
  const deepEquals = ({ left, right }) => {
72
85
  if (Object.is(left, right)) {
73
86
  return true;
@@ -76,14 +89,26 @@ const deepEquals = ({ left, right }) => {
76
89
  return (left.length === right.length &&
77
90
  left.every((element, index) => deepEquals({ left: element, right: right[index] })));
78
91
  }
79
- if (isRecord(left) && isRecord(right)) {
80
- const leftKeys = Struct.keys(left);
81
- const rightKeys = Struct.keys(right);
82
- return (leftKeys.length === rightKeys.length &&
83
- leftKeys.every((key) => Object.prototype.hasOwnProperty.call(right, key) &&
84
- deepEquals({ left: left[key], right: right[key] })));
92
+ if (isPlainRecord(left) && isPlainRecord(right)) {
93
+ return recordEntriesEqual(left, right, Struct.keys(left));
94
+ }
95
+ // Not a plain record. Own enumerable keys describe nothing about a `Date`, `Map` or
96
+ // `Set` — comparing by them calls every one of them empty, and so equal — so ask
97
+ // the value itself first.
98
+ if (Equal.equals(left, right)) {
99
+ return true;
100
+ }
101
+ // Effect containers say no whenever they wrap a freshly allocated record, because
102
+ // their own equality bottoms out in reference identity. They do carry their payload
103
+ // in own properties, so descend: two structurally equal `Option.some({…})` are the
104
+ // same frame. A value with no own keys (a `Date`, a `Map`) has already answered.
105
+ if (!isRecord(left) || !isRecord(right)) {
106
+ return false;
85
107
  }
86
- return false;
108
+ const leftKeys = Struct.keys(left);
109
+ return (leftKeys.length > 0 &&
110
+ Object.getPrototypeOf(left) === Object.getPrototypeOf(right) &&
111
+ recordEntriesEqual(left, right, leftKeys));
87
112
  };
88
113
  export const structureEquals = (left, right) =>
89
114
  // Events are fresh trigger functions, so equality covers serializable frame data only.
@@ -1 +1 @@
1
- {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/compose/structure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../src/compose/structure.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/compose/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/compose/ui.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Context } from 'effect';
1
+ import { Context, GlobalValue, MutableRef } from 'effect';
2
2
  import { definitionClass } from '../definition/definition.js';
3
3
  import {} from './slot.js';
4
4
  export const UiTypeId = Symbol.for('reform/Ui');
@@ -6,9 +6,16 @@ export const UiServiceTypeId = Symbol.for('reform/UiService');
6
6
  export const isUi = (candidate) => (typeof candidate === 'function' || typeof candidate === 'object') &&
7
7
  candidate !== null &&
8
8
  UiTypeId in candidate;
9
+ // Same rationale as `slot()` and `Composition.make`: two independently authored
10
+ // definitions that happen to share a name are two contracts, not one. Keying the
11
+ // runtime tag by name alone collapses them, and the last `provide` wins silently.
12
+ // The wire still identifies a view by `manifest.name`, which is untouched.
13
+ const uiDefinitionSequence = GlobalValue.globalValue(Symbol.for('reform/UiDefinitionSequence'), () => MutableRef.make(0));
14
+ const nextUiTagKey = (name) => `reform/ui/${name}/${MutableRef.incrementAndGet(uiDefinitionSequence)}`;
9
15
  const buildUi = (name, manifest) => {
10
- const impl = Context.GenericTag(`reform/ui/${name}`);
11
- const provider = Context.GenericTag(`reform/ui/${name}`);
16
+ const key = nextUiTagKey(name);
17
+ const impl = Context.GenericTag(key);
18
+ const provider = Context.GenericTag(key);
12
19
  const contract = definitionClass({
13
20
  [UiTypeId]: UiTypeId,
14
21
  manifest,
@@ -37,8 +44,12 @@ export function ui(name, schemas) {
37
44
  }
38
45
  export const UiViewContract = Symbol.for('reform/ui/view-contract');
39
46
  export const make = (contract, view) => {
40
- // oxlint-disable-next-line reform-rules/no-object-assign -- `view` is callable; spread would drop callability, so its reflection statics are attached in place
41
- const made = Object.assign(view, {
47
+ // Branded on a fresh wrapper rather than on `view` itself: the caller's function is
48
+ // theirs, and attaching in place lets a second `Ui.make` over the same view rebrand
49
+ // the first contract's binding out from under it.
50
+ const wrapped = (props, slots, events) => view(props, slots, events);
51
+ // oxlint-disable-next-line reform-rules/no-object-assign -- `wrapped` is callable; spread would drop callability, so its reflection statics are attached in place
52
+ const made = Object.assign(wrapped, {
42
53
  [UiViewContract]: contract,
43
54
  capture: (visit) => visit(made),
44
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/compose/ui.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAe,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAiB,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAEzE,OAAO,EAAiE,MAAM,QAAQ,CAAA;AAgCtF,MAAM,CAAC,MAAM,QAAQ,GAAkB,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;AAG9D,MAAM,CAAC,MAAM,eAAe,GAAkB,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;AAuF5E,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,SAAkB,EAAsB,EAAE,CAC7D,CAAC,OAAO,SAAS,KAAK,UAAU,IAAI,OAAO,SAAS,KAAK,QAAQ,CAAC;IAClE,SAAS,KAAK,IAAI;IAClB,QAAQ,IAAI,SAAS,CAAA;AAWvB,MAAM,OAAO,GAAG,CAKd,IAAO,EACP,QAAW,EAC+B,EAAE;IAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAA4B,aAAa,IAAI,EAAE,CAAC,CAAA;IAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAA6B,aAAa,IAAI,EAAE,CAAC,CAAA;IACpF,MAAM,QAAQ,GAAG,eAAe,CAA2C;QACzE,CAAC,QAAQ,CAAC,EAAE,QAAQ;QACpB,QAAQ;QACR,IAAI;QACJ,QAAQ;QACR,OAAO,EAAE,CAAS,KAAwB,EAAU,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;KAChC,CAAC,CAAA;IACzC,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AASD,mKAAmK;AACnK,MAAM,UAAU,EAAE,CAAyB,IAAO,EAAE,OAAqB;IACvE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAwC,EAAE,CAC/C,OAAO,CAA0C,IAAI,EAAE;YACrD,IAAI,EAAE,IAAI;YACV,IAAI;SACL,CAAC,CAAA;IACN,CAAC;IACD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAA;IAClF,MAAM,QAAQ,GAA2C;QACvD,IAAI,EAAE,IAAI;QACV,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,WAAW;KACf,CAAA;IACD,OAAO,OAAO,CACZ,IAAI,EACJ,QAAQ,CACT,CAAA;AACH,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAkB,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;AAqBlF,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,QAAW,EACX,IAA2B,EACU,EAAE;IACvC,+JAA+J;IAC/J,MAAM,IAAI,GAAwC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QACpE,CAAC,cAAc,CAAC,EAAE,QAAQ;QAC1B,OAAO,EAAE,CAAS,KAA8B,EAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;KACzE,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/compose/ui.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Effect, Layer, Option, Schema } from 'effect';
2
2
  import { type Manifest } from '../definition/definition.js';
3
3
  import { Bus, type Tagged } from '../runtime/bus.js';
4
4
  import type { Source } from '../state/token.js';
5
- import type { Trigger } from '../ui/trigger.js';
5
+ import { type Trigger } from '../ui/trigger.js';
6
6
  export type EventOf<N extends string, P> = Tagged & {
7
7
  readonly _tag: N;
8
8
  } & P;
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/event/event.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/event/event.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import { Effect, Layer, MutableRef, Option, PubSub, Runtime, Schema } from 'effect';
2
2
  import { definitionClass } from '../definition/definition.js';
3
- import { resolveScheduler } from '../internal/scheduler.js';
3
+ import { resolveScheduler, withInlineNotifications } from '../internal/scheduler.js';
4
4
  import { Bus, publish } from '../runtime/bus.js';
5
+ import { applyReducers, Reducers } from '../runtime/loop.js';
6
+ import { taggedTrigger } from '../ui/trigger.js';
5
7
  export const make = (name, schema) => {
6
8
  const build = (payload) => ({ ...payload, _tag: name });
7
9
  // Payloads at existential boundaries are already-decoded domain values, so
@@ -9,12 +11,32 @@ export const make = (name, schema) => {
9
11
  // (e.g. a real Option, whose _tag lives on the prototype).
10
12
  const validatePayload = Schema.validateSync(schema);
11
13
  const buildUnknown = (payload) => build(validatePayload(payload));
14
+ // A trigger is the UI's edge of the loop: it runs inside a discrete DOM event, and
15
+ // React decides what the DOM should look like before that event finishes. Deferring
16
+ // the reducer to the drain fiber means the props React reads back are one turn stale,
17
+ // which is what rewrites a controlled input's value and drops the caret to the end.
18
+ // So reducers for this one event run here, before the trigger returns, and the
19
+ // envelope goes out marked `reduced` for the channel/procedure half. Every batched
20
+ // path — `Event.dispatch`, procedure fan-out, streams — is untouched and still
21
+ // coalesces on the drain loop.
12
22
  const trigger = Effect.gen(function* () {
13
23
  const bus = yield* Bus;
24
+ // Optional: a bus can be provided without a reducer registry (bare harnesses,
25
+ // some test layers), and those keep the original deferred behaviour.
26
+ const reducers = yield* Effect.serviceOption(Reducers);
14
27
  const runtime = yield* Effect.runtime();
15
- return (payload) => {
16
- Runtime.runSync(runtime)(PubSub.publish(bus, { priority: 'High', event: build(payload) }));
17
- };
28
+ return taggedTrigger(name, (payload) => {
29
+ const built = build(payload);
30
+ const reduced = Option.match(reducers, {
31
+ onNone: () => false,
32
+ onSome: (registry) => withInlineNotifications(() => {
33
+ const failures = applyReducers({ registry, event: built });
34
+ failures.forEach((failure) => Effect.runSync(Effect.logError(`reform: reducer threw handling '${failure.event._tag}'`, failure.error)));
35
+ return true;
36
+ }),
37
+ });
38
+ Runtime.runSync(runtime)(PubSub.publish(bus, { priority: 'High', event: built, reduced }));
39
+ });
18
40
  });
19
41
  const event = definitionClass({
20
42
  manifest: { kind: 'Event', name, schema },
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/event/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACnF,OAAO,EAAiB,eAAe,EAAE,MAAM,0BAA0B,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,GAAG,EAAE,OAAO,EAAe,MAAM,gBAAgB,CAAA;AAyC1D,MAAM,CAAC,MAAM,IAAI,GAAG,CAClB,IAAO,EACP,MAAwC,EACtB,EAAE;IACpB,MAAM,KAAK,GAAG,CAAC,OAAU,EAAiB,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACzE,2EAA2E;IAC3E,4EAA4E;IAC5E,2DAA2D;IAC3D,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;IACnD,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAU,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;IAClF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAA;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAS,CAAA;QAC9C,OAAO,CAAC,OAAU,EAAE,EAAE;YACpB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5F,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IACF,MAAM,KAAK,GAAqB,eAAe,CAAmB;QAChE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAgB,EAAE,IAAI,EAAE,MAAM,EAAE;QAClD,GAAG,EAAE,IAAI;QACT,KAAK;QACL,YAAY;QACZ,OAAO;QACP,OAAO,EAAE,CAAS,KAA2B,EAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;KACvE,CAAC,CAAA;IACF,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAID,MAAM,UAAU,SAAS,CAAC,KAAe,EAAE,OAAgB;IACzD,OAAO,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,KAAQ,EACR,OAAwB,EACS,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAA;AAEpF,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAAuB,EACgB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAA;AAazD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAuB,EACvB,MAAyC,EACzC,MAA0C,EACG,EAAE,CAC/C,KAAK,CAAC,aAAa,CACjB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAA;IACzC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAO,CAAA;IAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;IACnC,iFAAiF;IACjF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACrC,sEAAsE;IACtE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpC,MAAM,IAAI,GAAG,CAAC,MAAuB,EAAQ,EAAE;QAC7C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAM;QACR,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACzE,CAAC;IACH,CAAC,CAAA;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACvC,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QACnC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACrC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QAC7B,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IACpD,CAAC,CAAC,CAAA;IACF,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAC9B,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACf,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;QAC7B,WAAW,EAAE,CAAA;IACf,CAAC,CAAC,CACH,CAAA;IACD,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QAChC,iFAAiF;QACjF,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;IACjF,CAAC;AACH,CAAC,CAAC,CACH,CAAA"}
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/event/event.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface KeyCanonicalizer<K> {
2
+ readonly canonical: (key: K) => K;
3
+ readonly release: (key: K) => void;
4
+ readonly reset: () => void;
5
+ }
6
+ /**
7
+ * A family indexes its members in a plain `Map`, which compares keys by reference. A
8
+ * composite key — `S.Data(S.Struct({ board, row }))`, the value-typed key Effect makes
9
+ * canonical — is decoded fresh on every lookup, so a plain `Map` mints a new member per
10
+ * lookup and strands the one before it: the fold reads its seed forever and the family
11
+ * grows without bound. Everything else in reform compares values with `Equal.equals`;
12
+ * this makes family keys agree. Primitive keys are their own canonical form and never
13
+ * touch the table, so the hot path is unchanged.
14
+ */
15
+ export declare const makeKeyCanonicalizer: <K>() => KeyCanonicalizer<K>;
16
+ //# sourceMappingURL=familyKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"familyKeys.d.ts","sourceRoot":"","sources":["../../src/internal/familyKeys.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAA;CAC3B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,CAAC,OAAK,gBAAgB,CAAC,CAAC,CAuB5D,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { MutableHashMap, Option, Predicate } from 'effect';
2
+ /**
3
+ * A family indexes its members in a plain `Map`, which compares keys by reference. A
4
+ * composite key — `S.Data(S.Struct({ board, row }))`, the value-typed key Effect makes
5
+ * canonical — is decoded fresh on every lookup, so a plain `Map` mints a new member per
6
+ * lookup and strands the one before it: the fold reads its seed forever and the family
7
+ * grows without bound. Everything else in reform compares values with `Equal.equals`;
8
+ * this makes family keys agree. Primitive keys are their own canonical form and never
9
+ * touch the table, so the hot path is unchanged.
10
+ */
11
+ export const makeKeyCanonicalizer = () => {
12
+ const table = MutableHashMap.empty();
13
+ return {
14
+ canonical: (key) => {
15
+ if (!Predicate.isObject(key)) {
16
+ return key;
17
+ }
18
+ const known = MutableHashMap.get(table, key);
19
+ if (Option.isSome(known)) {
20
+ return known.value;
21
+ }
22
+ MutableHashMap.set(table, key, key);
23
+ return key;
24
+ },
25
+ release: (key) => {
26
+ if (Predicate.isObject(key)) {
27
+ MutableHashMap.remove(table, key);
28
+ }
29
+ },
30
+ reset: () => {
31
+ MutableHashMap.clear(table);
32
+ },
33
+ };
34
+ };
35
+ //# sourceMappingURL=familyKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"familyKeys.js","sourceRoot":"","sources":["../../src/internal/familyKeys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAQ1D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAA2B,EAAE;IAC/D,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAQ,CAAA;IAC1C,OAAO;QACL,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,GAAG,CAAA;YACZ,CAAC;YACD,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YAC5C,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,KAAK,CAAA;YACpB,CAAC;YACD,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YACnC,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACf,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACV,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC7B,CAAC;KACF,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * The two host globals reform reaches for, behind a check.
3
+ *
4
+ * The core is renderer-neutral and the React package peers on `react` alone, so
5
+ * a scene is expected to run wherever a React reconciler does — including hosts
6
+ * that are neither a browser nor Node. Two globals were reached for directly and
7
+ * neither is guaranteed off the web: measured on `@react-gpui/core`, whose
8
+ * deno_core host installs `console` and the timers and nothing else, a scene
9
+ * dies at the first scheduler tick with `queueMicrotask is not defined`.
10
+ *
11
+ * Both fall back rather than throw, because the property each is used for
12
+ * survives the fallback: a resolved promise is a microtask by definition, and an
13
+ * operation id has to be unique among the ids one runtime mints.
14
+ */
15
+ /**
16
+ * Run `callback` on a microtask.
17
+ *
18
+ * `queueMicrotask` where the host has it, a resolved promise where it does not.
19
+ * The two differ in one way that matters, which is why the check is kept rather
20
+ * than always taking the promise: a callback that throws inside `queueMicrotask`
21
+ * reaches the host's global error handler, where the same callback inside
22
+ * `.then` becomes an unhandled rejection nobody sees. The rethrow below puts the
23
+ * fallback back on the first of those.
24
+ */
25
+ export declare const microtask: (callback: () => void) => void;
26
+ /**
27
+ * An id no other operation of this runtime shares.
28
+ *
29
+ * `crypto.randomUUID` where the host has it, because an id that leaves the
30
+ * process should not be guessable from another one. Where it does not, the
31
+ * COUNTER carries uniqueness — every id this runtime mints differs from every
32
+ * other, which is the whole of what a `queued`/`settled` pairing needs — and the
33
+ * clock only separates two runtimes started at different milliseconds. Two
34
+ * started inside one millisecond can agree, so a host that sends these ids
35
+ * somewhere they meet another runtime's should install `crypto.randomUUID`
36
+ * rather than rely on this.
37
+ *
38
+ * `Math.random` is deliberately absent and should not be added: this package
39
+ * forbids it in favour of Effect's `Random`, and a service cannot be reached
40
+ * from a function the scheduler calls synchronously.
41
+ */
42
+ export declare const operationId: () => string;
43
+ //# sourceMappingURL=platform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.d.ts","sourceRoot":"","sources":["../../src/internal/platform.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,IAAI,KAAG,IAehD,CAAA;AAMD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW,QAAO,MAO9B,CAAA"}
@@ -0,0 +1,68 @@
1
+ import { MutableRef } from 'effect';
2
+ /**
3
+ * The two host globals reform reaches for, behind a check.
4
+ *
5
+ * The core is renderer-neutral and the React package peers on `react` alone, so
6
+ * a scene is expected to run wherever a React reconciler does — including hosts
7
+ * that are neither a browser nor Node. Two globals were reached for directly and
8
+ * neither is guaranteed off the web: measured on `@react-gpui/core`, whose
9
+ * deno_core host installs `console` and the timers and nothing else, a scene
10
+ * dies at the first scheduler tick with `queueMicrotask is not defined`.
11
+ *
12
+ * Both fall back rather than throw, because the property each is used for
13
+ * survives the fallback: a resolved promise is a microtask by definition, and an
14
+ * operation id has to be unique among the ids one runtime mints.
15
+ */
16
+ /**
17
+ * Run `callback` on a microtask.
18
+ *
19
+ * `queueMicrotask` where the host has it, a resolved promise where it does not.
20
+ * The two differ in one way that matters, which is why the check is kept rather
21
+ * than always taking the promise: a callback that throws inside `queueMicrotask`
22
+ * reaches the host's global error handler, where the same callback inside
23
+ * `.then` becomes an unhandled rejection nobody sees. The rethrow below puts the
24
+ * fallback back on the first of those.
25
+ */
26
+ export const microtask = (callback) => {
27
+ if (typeof queueMicrotask === 'function') {
28
+ queueMicrotask(callback);
29
+ return;
30
+ }
31
+ // oxlint-disable-next-line reform-rules/no-promise-static-methods, reform-rules/no-promise-methods -- a microtask is the primitive being polyfilled here; Effect.succeed is not one, and this branch exists precisely because the host has no scheduling primitive to reach for
32
+ void Promise.resolve()
33
+ .then(callback)
34
+ .catch((error) => {
35
+ // oxlint-disable-next-line reform-rules/no-set-timeout-interval -- rethrowing on a macrotask is what reaches the host's global error handler, which is the semantics `queueMicrotask` has and a rejected promise does not
36
+ setTimeout(() => {
37
+ // oxlint-disable-next-line reform-rules/no-throw -- only way to surface a listener defect to the host's global error handler, as internal/scheduler.ts does for the same reason
38
+ throw error;
39
+ });
40
+ });
41
+ };
42
+ const RADIX = 36;
43
+ const minted = MutableRef.make(0);
44
+ /**
45
+ * An id no other operation of this runtime shares.
46
+ *
47
+ * `crypto.randomUUID` where the host has it, because an id that leaves the
48
+ * process should not be guessable from another one. Where it does not, the
49
+ * COUNTER carries uniqueness — every id this runtime mints differs from every
50
+ * other, which is the whole of what a `queued`/`settled` pairing needs — and the
51
+ * clock only separates two runtimes started at different milliseconds. Two
52
+ * started inside one millisecond can agree, so a host that sends these ids
53
+ * somewhere they meet another runtime's should install `crypto.randomUUID`
54
+ * rather than rely on this.
55
+ *
56
+ * `Math.random` is deliberately absent and should not be added: this package
57
+ * forbids it in favour of Effect's `Random`, and a service cannot be reached
58
+ * from a function the scheduler calls synchronously.
59
+ */
60
+ export const operationId = () => {
61
+ if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {
62
+ return crypto.randomUUID();
63
+ }
64
+ MutableRef.update(minted, (count) => count + 1);
65
+ // oxlint-disable-next-line reform-rules/no-date-constructor -- DateTime is an Effect and this mint is synchronous; the clock is only a tiebreak between runtimes here, never read as a time
66
+ return `op-${Date.now().toString(RADIX)}-${MutableRef.get(minted).toString(RADIX)}`;
67
+ };
68
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/internal/platform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEnC;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAoB,EAAQ,EAAE;IACtD,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;QACzC,cAAc,CAAC,QAAQ,CAAC,CAAA;QACxB,OAAM;IACR,CAAC;IACD,gRAAgR;IAChR,KAAK,OAAO,CAAC,OAAO,EAAE;SACnB,IAAI,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,0NAA0N;QAC1N,UAAU,CAAC,GAAG,EAAE;YACd,gLAAgL;YAChL,MAAM,KAAK,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,EAAE,CAAA;AAEhB,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAEjC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,GAAW,EAAE;IACtC,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC7E,OAAO,MAAM,CAAC,UAAU,EAAE,CAAA;IAC5B,CAAC;IACD,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;IAC/C,4LAA4L;IAC5L,OAAO,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA;AACrF,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryDriver.d.ts","sourceRoot":"","sources":["../../src/internal/queryDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAsC,KAAK,KAAK,EAAU,MAAM,QAAQ,CAAA;AAcrG,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEzE,OAAO,EAAqB,KAAK,WAAW,EAAwB,MAAM,WAAW,CAAA;AAErF,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C,OAAO,EACL,YAAY,EACZ,SAAS,EACT,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,QAAQ,EACR,cAAc,EACd,YAAY,GACb,MAAM,oBAAoB,CAAA;AAG3B,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9E,SAAS,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CA+O5E,CAAA"}
1
+ {"version":3,"file":"queryDriver.d.ts","sourceRoot":"","sources":["../../src/internal/queryDriver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAsC,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAA;AActF,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAGzE,OAAO,EAAqB,KAAK,WAAW,EAAwB,MAAM,WAAW,CAAA;AAErF,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG/C,OAAO,EACL,YAAY,EACZ,SAAS,EACT,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,QAAQ,EACR,cAAc,EACd,YAAY,GACb,MAAM,oBAAoB,CAAA;AAG3B,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAC9E,SAAS,kBAAkB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAyP5E,CAAA"}