@reckona/mreact-compat 0.0.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 (163) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -0
  3. package/dist/class-component.d.ts +48 -0
  4. package/dist/class-component.d.ts.map +1 -0
  5. package/dist/class-component.js +186 -0
  6. package/dist/class-component.js.map +1 -0
  7. package/dist/context.d.ts +31 -0
  8. package/dist/context.d.ts.map +1 -0
  9. package/dist/context.js +83 -0
  10. package/dist/context.js.map +1 -0
  11. package/dist/devtools.d.ts +5 -0
  12. package/dist/devtools.d.ts.map +1 -0
  13. package/dist/devtools.js +839 -0
  14. package/dist/devtools.js.map +1 -0
  15. package/dist/dom-children.d.ts +3 -0
  16. package/dist/dom-children.d.ts.map +1 -0
  17. package/dist/dom-children.js +23 -0
  18. package/dist/dom-children.js.map +1 -0
  19. package/dist/dom-props.d.ts +4 -0
  20. package/dist/dom-props.d.ts.map +1 -0
  21. package/dist/dom-props.js +266 -0
  22. package/dist/dom-props.js.map +1 -0
  23. package/dist/element.d.ts +94 -0
  24. package/dist/element.d.ts.map +1 -0
  25. package/dist/element.js +160 -0
  26. package/dist/element.js.map +1 -0
  27. package/dist/event-listeners.d.ts +12 -0
  28. package/dist/event-listeners.d.ts.map +1 -0
  29. package/dist/event-listeners.js +11 -0
  30. package/dist/event-listeners.js.map +1 -0
  31. package/dist/event-replay.d.ts +18 -0
  32. package/dist/event-replay.d.ts.map +1 -0
  33. package/dist/event-replay.js +94 -0
  34. package/dist/event-replay.js.map +1 -0
  35. package/dist/event-types.d.ts +19 -0
  36. package/dist/event-types.d.ts.map +1 -0
  37. package/dist/event-types.js +2 -0
  38. package/dist/event-types.js.map +1 -0
  39. package/dist/events.d.ts +6 -0
  40. package/dist/events.d.ts.map +1 -0
  41. package/dist/events.js +306 -0
  42. package/dist/events.js.map +1 -0
  43. package/dist/fiber-child.d.ts +4 -0
  44. package/dist/fiber-child.d.ts.map +1 -0
  45. package/dist/fiber-child.js +262 -0
  46. package/dist/fiber-child.js.map +1 -0
  47. package/dist/fiber-commit.d.ts +4 -0
  48. package/dist/fiber-commit.d.ts.map +1 -0
  49. package/dist/fiber-commit.js +54 -0
  50. package/dist/fiber-commit.js.map +1 -0
  51. package/dist/fiber-flags.d.ts +15 -0
  52. package/dist/fiber-flags.d.ts.map +1 -0
  53. package/dist/fiber-flags.js +18 -0
  54. package/dist/fiber-flags.js.map +1 -0
  55. package/dist/fiber-host.d.ts +16 -0
  56. package/dist/fiber-host.d.ts.map +1 -0
  57. package/dist/fiber-host.js +892 -0
  58. package/dist/fiber-host.js.map +1 -0
  59. package/dist/fiber-lanes.d.ts +30 -0
  60. package/dist/fiber-lanes.d.ts.map +1 -0
  61. package/dist/fiber-lanes.js +71 -0
  62. package/dist/fiber-lanes.js.map +1 -0
  63. package/dist/fiber-reconciler.d.ts +8 -0
  64. package/dist/fiber-reconciler.d.ts.map +1 -0
  65. package/dist/fiber-reconciler.js +385 -0
  66. package/dist/fiber-reconciler.js.map +1 -0
  67. package/dist/fiber-scheduler.d.ts +37 -0
  68. package/dist/fiber-scheduler.d.ts.map +1 -0
  69. package/dist/fiber-scheduler.js +307 -0
  70. package/dist/fiber-scheduler.js.map +1 -0
  71. package/dist/fiber-work-loop.d.ts +21 -0
  72. package/dist/fiber-work-loop.d.ts.map +1 -0
  73. package/dist/fiber-work-loop.js +116 -0
  74. package/dist/fiber-work-loop.js.map +1 -0
  75. package/dist/fiber.d.ts +50 -0
  76. package/dist/fiber.d.ts.map +1 -0
  77. package/dist/fiber.js +73 -0
  78. package/dist/fiber.js.map +1 -0
  79. package/dist/flight-decoder.d.ts +8 -0
  80. package/dist/flight-decoder.d.ts.map +1 -0
  81. package/dist/flight-decoder.js +132 -0
  82. package/dist/flight-decoder.js.map +1 -0
  83. package/dist/flight-element-builder.d.ts +6 -0
  84. package/dist/flight-element-builder.d.ts.map +1 -0
  85. package/dist/flight-element-builder.js +56 -0
  86. package/dist/flight-element-builder.js.map +1 -0
  87. package/dist/flight-parser.d.ts +3 -0
  88. package/dist/flight-parser.d.ts.map +1 -0
  89. package/dist/flight-parser.js +508 -0
  90. package/dist/flight-parser.js.map +1 -0
  91. package/dist/flight-protocol.d.ts +11 -0
  92. package/dist/flight-protocol.d.ts.map +1 -0
  93. package/dist/flight-protocol.js +61 -0
  94. package/dist/flight-protocol.js.map +1 -0
  95. package/dist/flight-types.d.ts +98 -0
  96. package/dist/flight-types.d.ts.map +1 -0
  97. package/dist/flight-types.js +2 -0
  98. package/dist/flight-types.js.map +1 -0
  99. package/dist/flight.d.ts +26 -0
  100. package/dist/flight.d.ts.map +1 -0
  101. package/dist/flight.js +66 -0
  102. package/dist/flight.js.map +1 -0
  103. package/dist/hooks.d.ts +214 -0
  104. package/dist/hooks.d.ts.map +1 -0
  105. package/dist/hooks.js +1296 -0
  106. package/dist/hooks.js.map +1 -0
  107. package/dist/hydration.d.ts +34 -0
  108. package/dist/hydration.d.ts.map +1 -0
  109. package/dist/hydration.js +164 -0
  110. package/dist/hydration.js.map +1 -0
  111. package/dist/index.d.ts +9 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +6 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/internal.d.ts +2 -0
  116. package/dist/internal.d.ts.map +1 -0
  117. package/dist/internal.js +2 -0
  118. package/dist/internal.js.map +1 -0
  119. package/dist/jsx-dev-runtime.d.ts +19 -0
  120. package/dist/jsx-dev-runtime.d.ts.map +1 -0
  121. package/dist/jsx-dev-runtime.js +6 -0
  122. package/dist/jsx-dev-runtime.js.map +1 -0
  123. package/dist/jsx-runtime.d.ts +24 -0
  124. package/dist/jsx-runtime.d.ts.map +1 -0
  125. package/dist/jsx-runtime.js +21 -0
  126. package/dist/jsx-runtime.js.map +1 -0
  127. package/dist/prop-comparison.d.ts +6 -0
  128. package/dist/prop-comparison.d.ts.map +1 -0
  129. package/dist/prop-comparison.js +28 -0
  130. package/dist/prop-comparison.js.map +1 -0
  131. package/dist/reconcile-types.d.ts +10 -0
  132. package/dist/reconcile-types.d.ts.map +1 -0
  133. package/dist/reconcile-types.js +2 -0
  134. package/dist/reconcile-types.js.map +1 -0
  135. package/dist/reconciler.d.ts +7 -0
  136. package/dist/reconciler.d.ts.map +1 -0
  137. package/dist/reconciler.js +318 -0
  138. package/dist/reconciler.js.map +1 -0
  139. package/dist/render.d.ts +7 -0
  140. package/dist/render.d.ts.map +1 -0
  141. package/dist/render.js +4 -0
  142. package/dist/render.js.map +1 -0
  143. package/dist/root.d.ts +44 -0
  144. package/dist/root.d.ts.map +1 -0
  145. package/dist/root.js +278 -0
  146. package/dist/root.js.map +1 -0
  147. package/dist/scheduler.d.ts +30 -0
  148. package/dist/scheduler.d.ts.map +1 -0
  149. package/dist/scheduler.js +90 -0
  150. package/dist/scheduler.js.map +1 -0
  151. package/dist/suspense.d.ts +8 -0
  152. package/dist/suspense.d.ts.map +1 -0
  153. package/dist/suspense.js +164 -0
  154. package/dist/suspense.js.map +1 -0
  155. package/dist/thenable.d.ts +2 -0
  156. package/dist/thenable.d.ts.map +1 -0
  157. package/dist/thenable.js +6 -0
  158. package/dist/thenable.js.map +1 -0
  159. package/dist/url-safety.d.ts +2 -0
  160. package/dist/url-safety.d.ts.map +1 -0
  161. package/dist/url-safety.js +2 -0
  162. package/dist/url-safety.js.map +1 -0
  163. package/package.json +65 -0
@@ -0,0 +1,37 @@
1
+ export type SchedulerPriority = "immediate" | "user-blocking" | "normal" | "low" | "idle";
2
+ export type SchedulerCallback = (didTimeout: boolean) => SchedulerCallback | void;
3
+ export interface SchedulerTask {
4
+ id: number;
5
+ callback: SchedulerCallback | null;
6
+ priority: SchedulerPriority;
7
+ startTime: number;
8
+ expirationTime: number;
9
+ sortIndex: number;
10
+ }
11
+ export type SchedulerProfilingEventType = "schedule" | "cancel" | "start" | "complete" | "yield" | "error";
12
+ export interface SchedulerProfilingEvent {
13
+ type: SchedulerProfilingEventType;
14
+ taskId: number;
15
+ priority: SchedulerPriority;
16
+ time: number;
17
+ }
18
+ export interface SchedulerHost {
19
+ now(): number;
20
+ scheduleHostCallback(callback: () => void): unknown;
21
+ scheduleHostTimeout(callback: () => void, ms: number): unknown;
22
+ cancelHostTimeout(id: unknown): void;
23
+ isInputPending?(): boolean;
24
+ }
25
+ export declare function scheduleCallback(priority: SchedulerPriority, callback: SchedulerCallback, options?: {
26
+ delay?: number;
27
+ }): SchedulerTask;
28
+ export declare function cancelCallback(task: SchedulerTask): void;
29
+ export declare function getFirstCallbackNode(): SchedulerTask | null;
30
+ export declare function shouldYieldToHost(): boolean;
31
+ export declare function requestPaint(): void;
32
+ export declare function forceFrameRate(fps: number): void;
33
+ export declare function now(): number;
34
+ export declare function setSchedulerHostForTesting(host: SchedulerHost | undefined): void;
35
+ export declare function startLoggingSchedulerProfilingEvents(): void;
36
+ export declare function stopLoggingSchedulerProfilingEvents(): SchedulerProfilingEvent[] | null;
37
+ //# sourceMappingURL=fiber-scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fiber-scheduler.d.ts","sourceRoot":"","sources":["../src/fiber-scheduler.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GACzB,WAAW,GACX,eAAe,GACf,QAAQ,GACR,KAAK,GACL,MAAM,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAC9B,UAAU,EAAE,OAAO,KAChB,iBAAiB,GAAG,IAAI,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,2BAA2B,GACnC,UAAU,GACV,QAAQ,GACR,OAAO,GACP,UAAU,GACV,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,2BAA2B,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,IAAI,MAAM,CAAC;IACd,oBAAoB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;IACpD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/D,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,cAAc,CAAC,IAAI,OAAO,CAAC;CAC5B;AA2BD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,aAAa,CAsCf;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAGxD;AAED,wBAAgB,oBAAoB,IAAI,aAAa,GAAG,IAAI,CAE3D;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAc3C;AAED,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAMhD;AAED,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,aAAa,GAAG,SAAS,GAC9B,IAAI,CAGN;AAED,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D;AAED,wBAAgB,mCAAmC,IAC/C,uBAAuB,EAAE,GACzB,IAAI,CAIP"}
@@ -0,0 +1,307 @@
1
+ const maxSigned31BitInt = 1073741823;
2
+ const defaultFrameInterval = 5;
3
+ const priorityTimeouts = {
4
+ immediate: -1,
5
+ "user-blocking": 250,
6
+ normal: 5000,
7
+ low: 10000,
8
+ idle: maxSigned31BitInt,
9
+ };
10
+ let taskIdCounter = 1;
11
+ let taskQueue = [];
12
+ let timerQueue = [];
13
+ let currentTask = null;
14
+ let isPerformingWork = false;
15
+ let isHostCallbackScheduled = false;
16
+ let isHostTimeoutScheduled = false;
17
+ let isMessageLoopRunning = false;
18
+ let taskTimeoutId;
19
+ let frameInterval = defaultFrameInterval;
20
+ let startTime = -1;
21
+ let needsPaint = false;
22
+ let testHost;
23
+ let profilingEvents;
24
+ export function scheduleCallback(priority, callback, options) {
25
+ const currentTime = now();
26
+ const delay = options?.delay;
27
+ const start = typeof delay === "number" && delay > 0 ? currentTime + delay : currentTime;
28
+ const timeout = priorityTimeouts[priority];
29
+ const expirationTime = start + timeout;
30
+ const task = {
31
+ id: taskIdCounter,
32
+ callback,
33
+ priority,
34
+ startTime: start,
35
+ expirationTime,
36
+ sortIndex: start > currentTime ? start : expirationTime,
37
+ };
38
+ taskIdCounter += 1;
39
+ if (start > currentTime) {
40
+ timerQueue.push(task);
41
+ sortQueue(timerQueue);
42
+ if (taskQueue.length === 0 && timerQueue[0] === task) {
43
+ if (isHostTimeoutScheduled) {
44
+ getHost().cancelHostTimeout(taskTimeoutId);
45
+ }
46
+ isHostTimeoutScheduled = true;
47
+ taskTimeoutId = getHost().scheduleHostTimeout(handleTimeout, start - currentTime);
48
+ }
49
+ }
50
+ else {
51
+ taskQueue.push(task);
52
+ sortQueue(taskQueue);
53
+ requestHostCallbackIfNeeded();
54
+ }
55
+ recordProfilingEvent("schedule", task);
56
+ return task;
57
+ }
58
+ export function cancelCallback(task) {
59
+ task.callback = null;
60
+ recordProfilingEvent("cancel", task);
61
+ }
62
+ export function getFirstCallbackNode() {
63
+ return peek(taskQueue);
64
+ }
65
+ export function shouldYieldToHost() {
66
+ if (startTime < 0) {
67
+ return false;
68
+ }
69
+ if (needsPaint) {
70
+ return true;
71
+ }
72
+ if (getHost().isInputPending?.() === true) {
73
+ return true;
74
+ }
75
+ return now() - startTime >= frameInterval;
76
+ }
77
+ export function requestPaint() {
78
+ needsPaint = true;
79
+ }
80
+ export function forceFrameRate(fps) {
81
+ if (fps < 0 || fps > 125) {
82
+ return;
83
+ }
84
+ frameInterval = fps > 0 ? Math.floor(1000 / fps) : defaultFrameInterval;
85
+ }
86
+ export function now() {
87
+ return getHost().now();
88
+ }
89
+ export function setSchedulerHostForTesting(host) {
90
+ testHost = host;
91
+ resetSchedulerState();
92
+ }
93
+ export function startLoggingSchedulerProfilingEvents() {
94
+ profilingEvents = [];
95
+ }
96
+ export function stopLoggingSchedulerProfilingEvents() {
97
+ const events = profilingEvents;
98
+ profilingEvents = undefined;
99
+ return events ?? null;
100
+ }
101
+ function flushWork(initialTime) {
102
+ isHostCallbackScheduled = false;
103
+ if (isHostTimeoutScheduled) {
104
+ isHostTimeoutScheduled = false;
105
+ getHost().cancelHostTimeout(taskTimeoutId);
106
+ }
107
+ isPerformingWork = true;
108
+ try {
109
+ return workLoop(initialTime);
110
+ }
111
+ finally {
112
+ currentTask = null;
113
+ isPerformingWork = false;
114
+ }
115
+ }
116
+ function workLoop(initialTime) {
117
+ let currentTime = initialTime;
118
+ advanceTimers(currentTime);
119
+ currentTask = peek(taskQueue);
120
+ while (currentTask !== null) {
121
+ if (currentTask.expirationTime > currentTime &&
122
+ shouldYieldToHost()) {
123
+ break;
124
+ }
125
+ const callback = currentTask.callback;
126
+ if (typeof callback === "function") {
127
+ currentTask.callback = null;
128
+ const didTimeout = currentTask.expirationTime <= currentTime;
129
+ recordProfilingEvent("start", currentTask);
130
+ let continuation;
131
+ try {
132
+ continuation = callback(didTimeout);
133
+ }
134
+ catch (error) {
135
+ recordProfilingEvent("error", currentTask);
136
+ throw error;
137
+ }
138
+ currentTime = now();
139
+ if (typeof continuation === "function") {
140
+ currentTask.callback = continuation;
141
+ recordProfilingEvent("yield", currentTask);
142
+ advanceTimers(currentTime);
143
+ return true;
144
+ }
145
+ if (currentTask === peek(taskQueue)) {
146
+ taskQueue.shift();
147
+ }
148
+ recordProfilingEvent("complete", currentTask);
149
+ advanceTimers(currentTime);
150
+ }
151
+ else {
152
+ taskQueue.shift();
153
+ }
154
+ currentTask = peek(taskQueue);
155
+ }
156
+ if (currentTask !== null) {
157
+ return true;
158
+ }
159
+ const firstTimer = peek(timerQueue);
160
+ if (firstTimer !== null) {
161
+ isHostTimeoutScheduled = true;
162
+ taskTimeoutId = getHost().scheduleHostTimeout(handleTimeout, firstTimer.startTime - currentTime);
163
+ }
164
+ return false;
165
+ }
166
+ function handleTimeout() {
167
+ isHostTimeoutScheduled = false;
168
+ advanceTimers(now());
169
+ if (!isHostCallbackScheduled) {
170
+ if (peek(taskQueue) !== null) {
171
+ requestHostCallbackIfNeeded();
172
+ return;
173
+ }
174
+ const firstTimer = peek(timerQueue);
175
+ if (firstTimer !== null) {
176
+ isHostTimeoutScheduled = true;
177
+ taskTimeoutId = getHost().scheduleHostTimeout(handleTimeout, firstTimer.startTime - now());
178
+ }
179
+ }
180
+ }
181
+ function advanceTimers(currentTime) {
182
+ let timer = peek(timerQueue);
183
+ while (timer !== null) {
184
+ if (timer.callback === null) {
185
+ timerQueue.shift();
186
+ }
187
+ else if (timer.startTime <= currentTime) {
188
+ timerQueue.shift();
189
+ timer.sortIndex = timer.expirationTime;
190
+ taskQueue.push(timer);
191
+ sortQueue(taskQueue);
192
+ }
193
+ else {
194
+ return;
195
+ }
196
+ timer = peek(timerQueue);
197
+ }
198
+ }
199
+ function requestHostCallbackIfNeeded() {
200
+ if (!isHostCallbackScheduled && !isPerformingWork) {
201
+ isHostCallbackScheduled = true;
202
+ requestHostCallback();
203
+ }
204
+ }
205
+ function requestHostCallback() {
206
+ if (isMessageLoopRunning) {
207
+ return;
208
+ }
209
+ isMessageLoopRunning = true;
210
+ getHost().scheduleHostCallback(performWorkUntilDeadline);
211
+ }
212
+ function performWorkUntilDeadline() {
213
+ needsPaint = false;
214
+ if (!isMessageLoopRunning) {
215
+ return;
216
+ }
217
+ startTime = now();
218
+ let hasMoreWork = true;
219
+ try {
220
+ hasMoreWork = flushWork(startTime);
221
+ }
222
+ finally {
223
+ if (hasMoreWork) {
224
+ getHost().scheduleHostCallback(performWorkUntilDeadline);
225
+ }
226
+ else {
227
+ isMessageLoopRunning = false;
228
+ }
229
+ }
230
+ }
231
+ function peek(queue) {
232
+ return queue[0] ?? null;
233
+ }
234
+ function sortQueue(queue) {
235
+ queue.sort((left, right) => left.sortIndex - right.sortIndex || left.id - right.id);
236
+ }
237
+ function getHost() {
238
+ return testHost ?? defaultHost;
239
+ }
240
+ function resetSchedulerState() {
241
+ taskQueue = [];
242
+ timerQueue = [];
243
+ currentTask = null;
244
+ isPerformingWork = false;
245
+ isHostCallbackScheduled = false;
246
+ isHostTimeoutScheduled = false;
247
+ isMessageLoopRunning = false;
248
+ taskTimeoutId = undefined;
249
+ startTime = -1;
250
+ needsPaint = false;
251
+ }
252
+ function recordProfilingEvent(type, task) {
253
+ profilingEvents?.push({
254
+ type,
255
+ taskId: task.id,
256
+ priority: task.priority,
257
+ time: now(),
258
+ });
259
+ }
260
+ const defaultInputPendingChecker = createInputPendingChecker();
261
+ const defaultHost = {
262
+ now() {
263
+ if (typeof performance === "object" &&
264
+ typeof performance.now === "function") {
265
+ return performance.now();
266
+ }
267
+ return Date.now();
268
+ },
269
+ scheduleHostCallback: createDefaultHostCallbackScheduler(),
270
+ scheduleHostTimeout(callback, ms) {
271
+ return setTimeout(callback, ms);
272
+ },
273
+ cancelHostTimeout(id) {
274
+ clearTimeout(id);
275
+ },
276
+ ...(defaultInputPendingChecker === undefined
277
+ ? {}
278
+ : { isInputPending: defaultInputPendingChecker }),
279
+ };
280
+ function createDefaultHostCallbackScheduler() {
281
+ const immediate = globalThis
282
+ .setImmediate;
283
+ if (typeof immediate === "function") {
284
+ return (callback) => immediate(callback);
285
+ }
286
+ if (typeof MessageChannel !== "undefined") {
287
+ const channel = new MessageChannel();
288
+ const callbacks = [];
289
+ channel.port1.onmessage = () => {
290
+ callbacks.shift()?.();
291
+ };
292
+ return (callback) => {
293
+ callbacks.push(callback);
294
+ channel.port2.postMessage(null);
295
+ return callback;
296
+ };
297
+ }
298
+ return (callback) => setTimeout(callback, 0);
299
+ }
300
+ function createInputPendingChecker() {
301
+ const scheduling = globalThis.navigator?.scheduling;
302
+ if (typeof scheduling?.isInputPending === "function") {
303
+ return () => scheduling.isInputPending?.() === true;
304
+ }
305
+ return undefined;
306
+ }
307
+ //# sourceMappingURL=fiber-scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fiber-scheduler.js","sourceRoot":"","sources":["../src/fiber-scheduler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type Fiber, type FiberRoot } from "./fiber.js";
2
+ import { type Lane, type Lanes } from "./fiber-lanes.js";
3
+ export interface ConcurrentRenderOptions {
4
+ shouldYield?: () => boolean;
5
+ }
6
+ export type ConcurrentRenderResult = {
7
+ status: "completed";
8
+ finishedWork: Fiber;
9
+ } | {
10
+ status: "yielded";
11
+ };
12
+ export declare function createContainerFiberRoot(container: Element): FiberRoot;
13
+ export declare function getFiberRootForContainer(container: Element): FiberRoot | undefined;
14
+ export declare function enqueueRootRender(root: FiberRoot, element: unknown, lane: Lane, commit: () => Fiber | void): void;
15
+ export declare function shouldYieldAfterUnits(limit: number): () => boolean;
16
+ export declare function prepareFreshStack(root: FiberRoot, element: unknown, lanes: Lanes): void;
17
+ export declare function renderRootConcurrent(root: FiberRoot, lanes: Lanes, options?: ConcurrentRenderOptions): ConcurrentRenderResult;
18
+ export declare function performConcurrentWorkOnRoot(root: FiberRoot, options?: ConcurrentRenderOptions): ConcurrentRenderResult;
19
+ export declare function scheduleConcurrentWorkOnRoot(root: FiberRoot, lanes: Lanes): void;
20
+ export declare function performSyncWorkOnRoot(root: FiberRoot, element: unknown, commit: () => Fiber | void): void;
21
+ //# sourceMappingURL=fiber-work-loop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fiber-work-loop.d.ts","sourceRoot":"","sources":["../src/fiber-work-loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,SAAS,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAGL,KAAK,IAAI,EACT,KAAK,KAAK,EACX,MAAM,kBAAkB,CAAC;AAa1B,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,sBAAsB,GAC9B;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,KAAK,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC;AAE1B,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,CAUtE;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,OAAO,GACjB,SAAS,GAAG,SAAS,CAEvB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,KAAK,GAAG,IAAI,GACzB,IAAI,CAIN;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,OAAO,CAOlE;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACX,IAAI,CAYN;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,EACZ,OAAO,GAAE,uBAA4B,GACpC,sBAAsB,CAiCxB;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,SAAS,EACf,OAAO,GAAE,uBAA4B,GACpC,sBAAsB,CAGxB;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,GACX,IAAI,CAKN;AAeD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KAAK,GAAG,IAAI,GACzB,IAAI,CAeN"}
@@ -0,0 +1,116 @@
1
+ import { createFiberRoot, createWorkInProgress, } from "./fiber.js";
2
+ import { getNextLanes, markRootUpdated, } from "./fiber-lanes.js";
3
+ import { scheduleCallback, shouldYieldToHost, } from "./fiber-scheduler.js";
4
+ import { cleanupUnfinishedWork, performUnitOfWork, } from "./fiber-reconciler.js";
5
+ const fiberRootsByContainer = new WeakMap();
6
+ export function createContainerFiberRoot(container) {
7
+ const existing = fiberRootsByContainer.get(container);
8
+ if (existing !== undefined) {
9
+ return existing;
10
+ }
11
+ const root = createFiberRoot(container);
12
+ fiberRootsByContainer.set(container, root);
13
+ return root;
14
+ }
15
+ export function getFiberRootForContainer(container) {
16
+ return fiberRootsByContainer.get(container);
17
+ }
18
+ export function enqueueRootRender(root, element, lane, commit) {
19
+ markRootUpdated(root, lane);
20
+ root.workInProgressElement = element;
21
+ performSyncWorkOnRoot(root, element, commit);
22
+ }
23
+ export function shouldYieldAfterUnits(limit) {
24
+ let units = 0;
25
+ return () => {
26
+ units += 1;
27
+ return units > limit;
28
+ };
29
+ }
30
+ export function prepareFreshStack(root, element, lanes) {
31
+ const workInProgress = createWorkInProgress(root.current, {
32
+ children: element,
33
+ });
34
+ workInProgress.lanes = lanes;
35
+ workInProgress.memoizedProps = { children: element };
36
+ root.workInProgress = workInProgress;
37
+ root.workInProgressRootRenderLanes = lanes;
38
+ root.workInProgressElement = element;
39
+ root.finishedWork = undefined;
40
+ markRootUpdated(root, lanes);
41
+ }
42
+ export function renderRootConcurrent(root, lanes, options = {}) {
43
+ if (shouldPreemptWorkInProgress(root.workInProgressRootRenderLanes, lanes)) {
44
+ discardWorkInProgress(root);
45
+ }
46
+ if (root.workInProgress === undefined) {
47
+ prepareFreshStack(root, root.workInProgressElement ??
48
+ root.current.memoizedProps?.children, lanes);
49
+ }
50
+ while (root.workInProgress !== undefined) {
51
+ if (options.shouldYield?.() === true || shouldYieldToHost()) {
52
+ return { status: "yielded" };
53
+ }
54
+ root.workInProgress = performUnitOfWork(root, root.workInProgress);
55
+ }
56
+ const finishedWork = root.finishedWork;
57
+ if (finishedWork === undefined) {
58
+ throw new Error("Fiber concurrent render completed without finished work.");
59
+ }
60
+ finishedWork.lanes = lanes;
61
+ root.workInProgressRootRenderLanes = 0;
62
+ return { status: "completed", finishedWork };
63
+ }
64
+ export function performConcurrentWorkOnRoot(root, options = {}) {
65
+ const lanes = getNextLanes(root);
66
+ return renderRootConcurrent(root, lanes, options);
67
+ }
68
+ export function scheduleConcurrentWorkOnRoot(root, lanes) {
69
+ scheduleCallback(getSchedulerPriorityForLanes(lanes), createConcurrentRootCallback(root, lanes));
70
+ }
71
+ function createConcurrentRootCallback(root, lanes) {
72
+ const callback = () => {
73
+ const result = renderRootConcurrent(root, lanes);
74
+ return result.status === "yielded" ? callback : undefined;
75
+ };
76
+ return callback;
77
+ }
78
+ export function performSyncWorkOnRoot(root, element, commit) {
79
+ const lanes = root.pendingLanes;
80
+ const fallbackFinishedWork = createWorkInProgress(root.current, { children: element });
81
+ fallbackFinishedWork.lanes = lanes;
82
+ fallbackFinishedWork.memoizedProps = { children: element };
83
+ const committedWork = commit();
84
+ const finishedWork = committedWork ?? fallbackFinishedWork;
85
+ root.current = finishedWork;
86
+ root.current.stateNode = root;
87
+ root.finishedWork = undefined;
88
+ root.workInProgress = undefined;
89
+ root.workInProgressRootRenderLanes = 0;
90
+ root.pendingLanes &= ~lanes;
91
+ root.callbackPriority = root.pendingLanes & -root.pendingLanes;
92
+ }
93
+ function shouldPreemptWorkInProgress(currentLanes, nextLanes) {
94
+ return currentLanes !== 0 && nextLanes !== 0 && nextLanes < currentLanes;
95
+ }
96
+ function discardWorkInProgress(root) {
97
+ cleanupUnfinishedWork(root.current.alternate);
98
+ if (root.current.alternate === root.workInProgress) {
99
+ root.current.alternate = undefined;
100
+ }
101
+ root.workInProgress = undefined;
102
+ root.workInProgressRootRenderLanes = 0;
103
+ }
104
+ function getSchedulerPriorityForLanes(lanes) {
105
+ if ((lanes & 1) !== 0) {
106
+ return "immediate";
107
+ }
108
+ if ((lanes & 2) !== 0) {
109
+ return "user-blocking";
110
+ }
111
+ if ((lanes & 8) !== 0) {
112
+ return "normal";
113
+ }
114
+ return "low";
115
+ }
116
+ //# sourceMappingURL=fiber-work-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fiber-work-loop.js","sourceRoot":"","sources":["../src/fiber-work-loop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { type Flags } from "./fiber-flags.js";
2
+ import { type Lane, type Lanes } from "./fiber-lanes.js";
3
+ export type FiberTag = "host-root" | "host-component" | "host-text" | "fragment" | "function-component" | "forward-ref" | "class-component" | "context-provider" | "context-consumer" | "portal" | "memo" | "lazy" | "profiler" | "strict-mode" | "suspense" | "suspense-list" | "error-boundary";
4
+ export interface Fiber {
5
+ tag: FiberTag;
6
+ type: unknown;
7
+ key: string | undefined;
8
+ pendingProps: unknown;
9
+ memoizedProps: unknown;
10
+ memoizedState: unknown;
11
+ return: Fiber | undefined;
12
+ child: Fiber | undefined;
13
+ sibling: Fiber | undefined;
14
+ alternate: Fiber | undefined;
15
+ stateNode: unknown;
16
+ flags: Flags;
17
+ subtreeFlags: Flags;
18
+ deletions: Fiber[] | undefined;
19
+ lanes: Lanes;
20
+ childLanes: Lanes;
21
+ hydrateExisting: boolean;
22
+ }
23
+ export interface FiberRoot {
24
+ container: Element;
25
+ current: Fiber;
26
+ finishedWork: Fiber | undefined;
27
+ pendingLanes: Lanes;
28
+ suspendedLanes: Lanes;
29
+ pingedLanes: Lanes;
30
+ expiredLanes: Lanes;
31
+ entangledLanes: Lanes;
32
+ callbackNode: unknown;
33
+ callbackPriority: Lane;
34
+ workInProgress: Fiber | undefined;
35
+ workInProgressRootRenderLanes: Lanes;
36
+ workInProgressElement: unknown;
37
+ hydrationState: FiberHydrationState | undefined;
38
+ }
39
+ export interface FiberHydrationState {
40
+ parent: ParentNode;
41
+ nextHydratableNode: Node | null;
42
+ before: ChildNode | null;
43
+ after: ChildNode | null;
44
+ resumeId?: string;
45
+ }
46
+ export declare function createFiber(tag: FiberTag, pendingProps?: unknown, key?: string): Fiber;
47
+ export declare function createHostRootFiber(): Fiber;
48
+ export declare function createFiberRoot(container: Element): FiberRoot;
49
+ export declare function createWorkInProgress(current: Fiber, pendingProps: unknown): Fiber;
50
+ //# sourceMappingURL=fiber.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fiber.d.ts","sourceRoot":"","sources":["../src/fiber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAW,KAAK,IAAI,EAAE,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAElE,MAAM,MAAM,QAAQ,GAChB,WAAW,GACX,gBAAgB,GAChB,WAAW,GACX,UAAU,GACV,oBAAoB,GACpB,aAAa,GACb,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,QAAQ,GACR,MAAM,GACN,MAAM,GACN,UAAU,GACV,aAAa,GACb,UAAU,GACV,eAAe,GACf,gBAAgB,CAAC;AAErB,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,KAAK,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;IACzB,OAAO,EAAE,KAAK,GAAG,SAAS,CAAC;IAC3B,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,KAAK,CAAC;IACpB,SAAS,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC;IACf,YAAY,EAAE,KAAK,GAAG,SAAS,CAAC;IAChC,YAAY,EAAE,KAAK,CAAC;IACpB,cAAc,EAAE,KAAK,CAAC;IACtB,WAAW,EAAE,KAAK,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC;IACpB,cAAc,EAAE,KAAK,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,IAAI,CAAC;IACvB,cAAc,EAAE,KAAK,GAAG,SAAS,CAAC;IAClC,6BAA6B,EAAE,KAAK,CAAC;IACrC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,mBAAmB,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,UAAU,CAAC;IACnB,kBAAkB,EAAE,IAAI,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,WAAW,CACzB,GAAG,EAAE,QAAQ,EACb,YAAY,GAAE,OAAmB,EACjC,GAAG,CAAC,EAAE,MAAM,GACX,KAAK,CAoBP;AAED,wBAAgB,mBAAmB,IAAI,KAAK,CAE3C;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,GAAG,SAAS,CAoB7D;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,KAAK,EACd,YAAY,EAAE,OAAO,GACpB,KAAK,CAyBP"}
package/dist/fiber.js ADDED
@@ -0,0 +1,73 @@
1
+ import { NoFlags } from "./fiber-flags.js";
2
+ import { NoLanes } from "./fiber-lanes.js";
3
+ export function createFiber(tag, pendingProps = undefined, key) {
4
+ return {
5
+ tag,
6
+ type: undefined,
7
+ key,
8
+ pendingProps,
9
+ memoizedProps: undefined,
10
+ memoizedState: undefined,
11
+ return: undefined,
12
+ child: undefined,
13
+ sibling: undefined,
14
+ alternate: undefined,
15
+ stateNode: undefined,
16
+ flags: NoFlags,
17
+ subtreeFlags: NoFlags,
18
+ deletions: undefined,
19
+ lanes: NoLanes,
20
+ childLanes: NoLanes,
21
+ hydrateExisting: false,
22
+ };
23
+ }
24
+ export function createHostRootFiber() {
25
+ return createFiber("host-root", undefined);
26
+ }
27
+ export function createFiberRoot(container) {
28
+ const current = createHostRootFiber();
29
+ const root = {
30
+ container,
31
+ current,
32
+ finishedWork: undefined,
33
+ pendingLanes: NoLanes,
34
+ suspendedLanes: NoLanes,
35
+ pingedLanes: NoLanes,
36
+ expiredLanes: NoLanes,
37
+ entangledLanes: NoLanes,
38
+ callbackNode: undefined,
39
+ callbackPriority: NoLanes,
40
+ workInProgress: undefined,
41
+ workInProgressRootRenderLanes: NoLanes,
42
+ workInProgressElement: undefined,
43
+ hydrationState: undefined,
44
+ };
45
+ current.stateNode = root;
46
+ return root;
47
+ }
48
+ export function createWorkInProgress(current, pendingProps) {
49
+ let workInProgress = current.alternate;
50
+ if (workInProgress === undefined) {
51
+ workInProgress = createFiber(current.tag, pendingProps, current.key);
52
+ workInProgress.type = current.type;
53
+ workInProgress.stateNode = current.stateNode;
54
+ workInProgress.alternate = current;
55
+ current.alternate = workInProgress;
56
+ }
57
+ else {
58
+ workInProgress.pendingProps = pendingProps;
59
+ workInProgress.flags = NoFlags;
60
+ workInProgress.subtreeFlags = NoFlags;
61
+ workInProgress.deletions = undefined;
62
+ }
63
+ workInProgress.child = current.child;
64
+ workInProgress.sibling = current.sibling;
65
+ workInProgress.return = current.return;
66
+ workInProgress.memoizedProps = current.memoizedProps;
67
+ workInProgress.memoizedState = current.memoizedState;
68
+ workInProgress.lanes = current.lanes;
69
+ workInProgress.childLanes = current.childLanes;
70
+ workInProgress.hydrateExisting = false;
71
+ return workInProgress;
72
+ }
73
+ //# sourceMappingURL=fiber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fiber.js","sourceRoot":"","sources":["../src/fiber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAc,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAyB,MAAM,kBAAkB,CAAC;AAkElE,MAAM,UAAU,WAAW,CACzB,GAAa,EACb,eAAwB,SAAS,EACjC,GAAY;IAEZ,OAAO;QACL,GAAG;QACH,IAAI,EAAE,SAAS;QACf,GAAG;QACH,YAAY;QACZ,aAAa,EAAE,SAAS;QACxB,aAAa,EAAE,SAAS;QACxB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,OAAO;QACd,YAAY,EAAE,OAAO;QACrB,SAAS,EAAE,SAAS;QACpB,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,OAAO;QACnB,eAAe,EAAE,KAAK;KACvB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAAkB;IAChD,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,MAAM,IAAI,GAAc;QACtB,SAAS;QACT,OAAO;QACP,YAAY,EAAE,SAAS;QACvB,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,OAAO;QACvB,WAAW,EAAE,OAAO;QACpB,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,OAAO;QACvB,YAAY,EAAE,SAAS;QACvB,gBAAgB,EAAE,OAAO;QACzB,cAAc,EAAE,SAAS;QACzB,6BAA6B,EAAE,OAAO;QACtC,qBAAqB,EAAE,SAAS;QAChC,cAAc,EAAE,SAAS;KAC1B,CAAC;IACF,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IACzB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAc,EACd,YAAqB;IAErB,IAAI,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;IAEvC,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;QACjC,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACrE,cAAc,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACnC,cAAc,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAC7C,cAAc,CAAC,SAAS,GAAG,OAAO,CAAC;QACnC,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,YAAY,GAAG,YAAY,CAAC;QAC3C,cAAc,CAAC,KAAK,GAAG,OAAO,CAAC;QAC/B,cAAc,CAAC,YAAY,GAAG,OAAO,CAAC;QACtC,cAAc,CAAC,SAAS,GAAG,SAAS,CAAC;IACvC,CAAC;IAED,cAAc,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACrC,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACzC,cAAc,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACvC,cAAc,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IACrD,cAAc,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IACrD,cAAc,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IACrC,cAAc,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IAC/C,cAAc,CAAC,eAAe,GAAG,KAAK,CAAC;IACvC,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ElementType } from "./element.js";
2
+ import type { FlightClientReference, FlightModel, FlightResponse, FlightServerReference } from "./flight-types.js";
3
+ export interface DecodeFlightOptions {
4
+ loadClientReference(reference: FlightClientReference): ElementType<Record<string, unknown>>;
5
+ callServerReference?(reference: FlightServerReference, args: unknown[]): unknown | Promise<unknown>;
6
+ }
7
+ export declare function decodeFlightModel(model: FlightModel, response: FlightResponse, options: DecodeFlightOptions, depth?: number): unknown;
8
+ //# sourceMappingURL=flight-decoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flight-decoder.d.ts","sourceRoot":"","sources":["../src/flight-decoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhD,OAAO,KAAK,EACV,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,qBAAqB,EAEtB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,mBAAmB;IAClC,mBAAmB,CAAC,SAAS,EAAE,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5F,mBAAmB,CAAC,CAClB,SAAS,EAAE,qBAAqB,EAChC,IAAI,EAAE,OAAO,EAAE,GACd,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/B;AAaD,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,mBAAmB,EAC5B,KAAK,SAAI,GACR,OAAO,CA4HT"}