@vobs/runtime 1.2.1 → 1.2.2

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 (61) hide show
  1. package/dist/async-boundary.cjs +73 -374
  2. package/dist/async-boundary.cjs.map +1 -1
  3. package/dist/async-boundary.js +44 -367
  4. package/dist/async-boundary.js.map +1 -1
  5. package/dist/bind.cjs +83 -234
  6. package/dist/bind.cjs.map +1 -1
  7. package/dist/bind.js +54 -227
  8. package/dist/bind.js.map +1 -1
  9. package/dist/boundary.cjs +67 -369
  10. package/dist/boundary.cjs.map +1 -1
  11. package/dist/boundary.js +42 -366
  12. package/dist/boundary.js.map +1 -1
  13. package/dist/debug.cjs +41 -12
  14. package/dist/debug.cjs.map +1 -1
  15. package/dist/debug.js +10 -3
  16. package/dist/debug.js.map +1 -1
  17. package/dist/dynamic.cjs +76 -378
  18. package/dist/dynamic.cjs.map +1 -1
  19. package/dist/dynamic.js +43 -367
  20. package/dist/dynamic.js.map +1 -1
  21. package/dist/error-boundary.cjs +72 -371
  22. package/dist/error-boundary.cjs.map +1 -1
  23. package/dist/error-boundary.js +43 -366
  24. package/dist/error-boundary.js.map +1 -1
  25. package/dist/error.cjs +35 -9
  26. package/dist/error.cjs.map +1 -1
  27. package/dist/error.js +7 -3
  28. package/dist/error.js.map +1 -1
  29. package/dist/fragment.cjs +44 -133
  30. package/dist/fragment.cjs.map +1 -1
  31. package/dist/fragment.js +19 -130
  32. package/dist/fragment.js.map +1 -1
  33. package/dist/hmr.cjs +50 -22
  34. package/dist/hmr.cjs.map +1 -1
  35. package/dist/hmr.js +9 -3
  36. package/dist/hmr.js.map +1 -1
  37. package/dist/index.cjs +193 -462
  38. package/dist/index.cjs.map +1 -1
  39. package/dist/index.js +92 -385
  40. package/dist/index.js.map +1 -1
  41. package/dist/ops.cjs +126 -242
  42. package/dist/ops.cjs.map +1 -1
  43. package/dist/ops.js +76 -214
  44. package/dist/ops.js.map +1 -1
  45. package/dist/profiler.cjs +69 -320
  46. package/dist/profiler.cjs.map +1 -1
  47. package/dist/profiler.js +40 -315
  48. package/dist/profiler.js.map +1 -1
  49. package/dist/ref.cjs +33 -131
  50. package/dist/ref.cjs.map +1 -1
  51. package/dist/ref.js +10 -130
  52. package/dist/ref.js.map +1 -1
  53. package/dist/renderer.cjs +18 -2
  54. package/dist/renderer.cjs.map +1 -1
  55. package/dist/renderer.js +0 -2
  56. package/dist/renderer.js.map +1 -1
  57. package/dist/template.cjs +29 -6
  58. package/dist/template.cjs.map +1 -1
  59. package/dist/template.js +4 -3
  60. package/dist/template.js.map +1 -1
  61. package/package.json +2 -2
package/dist/index.cjs CHANGED
@@ -1,7 +1,85 @@
1
- 'use strict';
2
-
1
+ var __VOBS_CJS_FILE_URL = require("url").pathToFileURL(__filename).href;
2
+ "use strict";
3
3
  var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
7
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+
22
+ // packages/runtime/src/index.ts
23
+ var src_exports = {};
24
+ __export(src_exports, {
25
+ AsyncBoundary: () => AsyncBoundary,
26
+ ErrorBoundary: () => ErrorBoundary,
27
+ Profiler: () => Profiler,
28
+ VobsError: () => VobsError,
29
+ addEventListener: () => addEventListener,
30
+ bindAttribute: () => bindAttribute,
31
+ bindProperty: () => bindProperty,
32
+ bindText: () => bindText,
33
+ clear: () => clear,
34
+ cloneTemplate: () => cloneTemplate,
35
+ createBlock: () => createBlock,
36
+ createComment: () => createComment,
37
+ createComponent: () => createComponent,
38
+ createElement: () => createElement,
39
+ createFragment: () => createFragment,
40
+ createHmrStateStore: () => createHmrStateStore,
41
+ createTemplate: () => createTemplate,
42
+ createText: () => createText,
43
+ createVobsError: () => createVobsError,
44
+ describeDebugNode: () => describeDebugNode,
45
+ disposeHmrModule: () => disposeHmrModule,
46
+ disposeNodeOwner: () => disposeNodeOwner,
47
+ formatVobsError: () => formatVobsError,
48
+ getRenderer: () => getRenderer,
49
+ getRuntimeDebugContext: () => getRuntimeDebugContext,
50
+ getRuntimeDebugHooks: () => getRuntimeDebugHooks,
51
+ insertAsyncBoundary: () => insertAsyncBoundary,
52
+ insertBefore: () => insertBefore,
53
+ insertBoundary: () => insertBoundary,
54
+ insertDynamic: () => insertDynamic,
55
+ insertDynamicValue: () => insertDynamicValue,
56
+ insertErrorBoundary: () => insertErrorBoundary,
57
+ insertList: () => insertList,
58
+ insertProfiler: () => insertProfiler,
59
+ invokeRuntimeDebug: () => invokeRuntimeDebug,
60
+ isVobsError: () => isVobsError,
61
+ isVobsFragment: () => isVobsFragment,
62
+ markHmrInstanceMounted: () => markHmrInstanceMounted,
63
+ normalizeDynamicChild: () => normalizeDynamicChild,
64
+ normalizeVobsError: () => normalizeVobsError,
65
+ pushRuntimeDebugContext: () => pushRuntimeDebugContext,
66
+ ref: () => ref,
67
+ registerHmrInstance: () => registerHmrInstance,
68
+ removeChild: () => removeChild,
69
+ removeEventListener: () => removeEventListener,
70
+ resolveComponent: () => resolveComponent,
71
+ runWithRuntimeDebugContext: () => runWithRuntimeDebugContext,
72
+ setAttribute: () => setAttribute,
73
+ setProperty: () => setProperty,
74
+ setRef: () => setRef,
75
+ setRenderer: () => setRenderer,
76
+ setRuntimeDebugHooks: () => setRuntimeDebugHooks,
77
+ setStaticProps: () => setStaticProps,
78
+ setTextContent: () => setTextContent,
79
+ spreadProps: () => spreadProps,
80
+ updateHmrModule: () => updateHmrModule
81
+ });
82
+ module.exports = __toCommonJS(src_exports);
5
83
 
6
84
  // packages/runtime/src/debug.ts
7
85
  var activeRuntimeDebugHooks = null;
@@ -82,373 +160,19 @@ function describeDebugNode(node) {
82
160
  }
83
161
  __name(describeDebugNode, "describeDebugNode");
84
162
 
85
- // packages/reactivity/src/debug.ts
86
- var activeDebugHooks = null;
87
- var signalNames = /* @__PURE__ */ new WeakMap();
88
- function hasDebugHooks() {
89
- return activeDebugHooks !== null;
90
- }
91
- __name(hasDebugHooks, "hasDebugHooks");
92
- function setSignalDebugName(signal, name) {
93
- signalNames.set(signal, name);
94
- invokeDebug("signalNamed", signal, name);
95
- }
96
- __name(setSignalDebugName, "setSignalDebugName");
97
- function invokeDebug(name, ...args) {
98
- return;
99
- }
100
- __name(invokeDebug, "invokeDebug");
101
-
102
- // packages/reactivity/src/owner.ts
103
- var currentOwner = null;
104
- var nextOwnerId = 1;
105
- var ownerNames = /* @__PURE__ */ new WeakMap();
106
- function createOwner() {
107
- const parent = currentOwner;
108
- let disposed = parent?.disposed ?? false;
109
- const children = [];
110
- const cleanups = [];
111
- const errorHandlers = /* @__PURE__ */ new Set();
112
- const owner = {
113
- id: `owner-${nextOwnerId++}`,
114
- parent,
115
- children,
116
- depth: (parent?.depth ?? -1) + 1,
117
- get disposed() {
118
- return disposed;
119
- },
120
- run(fn) {
121
- if (disposed) throw new Error("Vobs: \u5DF2\u9500\u6BC1\u7684 Owner \u4E0D\u80FD\u7EE7\u7EED\u8FD0\u884C");
122
- const previous = currentOwner;
123
- currentOwner = owner;
124
- try {
125
- return fn();
126
- } finally {
127
- currentOwner = previous;
128
- }
129
- },
130
- addCleanup(cleanup) {
131
- if (disposed) {
132
- cleanup();
133
- return;
134
- }
135
- cleanups.push(cleanup);
136
- },
137
- onDispose(cleanup) {
138
- owner.addCleanup(cleanup);
139
- },
140
- onError(handler) {
141
- errorHandlers.add(handler);
142
- const remove = /* @__PURE__ */ __name(() => errorHandlers.delete(handler), "remove");
143
- owner.addCleanup(remove);
144
- return remove;
145
- },
146
- handleError(error) {
147
- for (const handler of [...errorHandlers].reverse()) {
148
- try {
149
- handler(error);
150
- return true;
151
- } catch (handlerError) {
152
- return parent?.handleError(handlerError) ?? false;
153
- }
154
- }
155
- return parent?.handleError(error) ?? false;
156
- },
157
- dispose() {
158
- if (disposed) return;
159
- disposed = true;
160
- for (const child of [...children]) child.dispose();
161
- children.length = 0;
162
- let firstError;
163
- for (let index = cleanups.length - 1; index >= 0; index--) {
164
- try {
165
- cleanups[index]();
166
- } catch (error) {
167
- firstError ?? (firstError = error);
168
- }
169
- }
170
- cleanups.length = 0;
171
- if (parent) {
172
- const index = parent.children.indexOf(owner);
173
- if (index >= 0) parent.children.splice(index, 1);
174
- }
175
- if (firstError) throw firstError;
176
- }
177
- };
178
- if (parent && !parent.disposed) parent.children.push(owner);
179
- return owner;
180
- }
181
- __name(createOwner, "createOwner");
182
- function setOwnerDebugName(owner, name) {
183
- ownerNames.set(owner, name);
184
- }
185
- __name(setOwnerDebugName, "setOwnerDebugName");
186
- function getCurrentOwner() {
187
- return currentOwner;
188
- }
189
- __name(getCurrentOwner, "getCurrentOwner");
190
-
191
- // packages/reactivity/src/signal.ts
192
- var currentSubscriber = null;
193
- function getCurrentSubscriber() {
194
- return currentSubscriber;
195
- }
196
- __name(getCurrentSubscriber, "getCurrentSubscriber");
197
- function setCurrentSubscriber(subscriber) {
198
- currentSubscriber = subscriber;
199
- }
200
- __name(setCurrentSubscriber, "setCurrentSubscriber");
201
- function trackDependency(dependency) {
202
- if (!currentSubscriber || currentSubscriber.disposed) return;
203
- !currentSubscriber.dependencies.has(dependency);
204
- currentSubscriber.dependencies.add(dependency);
205
- }
206
- __name(trackDependency, "trackDependency");
207
- function state(initialValue, debugName) {
208
- let value = initialValue;
209
- let disposed = false;
210
- const subscribers = /* @__PURE__ */ new Set();
211
- const signalInstance = {
212
- get value() {
213
- const subscriber = getCurrentSubscriber();
214
- if (subscriber && !subscriber.disposed) {
215
- subscribers.add(subscriber);
216
- trackDependency(signalInstance);
217
- }
218
- return value;
219
- },
220
- set value(nextValue) {
221
- if (disposed || Object.is(value, nextValue)) return;
222
- value = nextValue;
223
- for (const subscriber of [...subscribers]) subscriber.notify();
224
- },
225
- unsubscribe(subscriber) {
226
- subscribers.delete(subscriber);
227
- },
228
- // 与 `.value =` 赋值同一条路径:判等短路、debug hook、notify 全部一致。
229
- // 以闭包实现,可安全地作为回调直接传递(无 this 绑定问题)。
230
- set(next) {
231
- signalInstance.value = next;
232
- },
233
- dispose() {
234
- if (disposed) return;
235
- disposed = true;
236
- subscribers.clear();
237
- }
238
- };
239
- const owner = getCurrentOwner();
240
- owner?.addCleanup(signalInstance.dispose);
241
- if (debugName?.trim()) setSignalDebugName(signalInstance, debugName.trim());
242
- return signalInstance;
243
- }
244
- __name(state, "state");
245
-
246
- // packages/reactivity/src/scheduler.ts
247
- var _Scheduler = class _Scheduler {
248
- constructor() {
249
- this.dirtyEffects = /* @__PURE__ */ new Set();
250
- this.lowPriorityEffects = /* @__PURE__ */ new Set();
251
- // flush 不可重入(flushing 标志保证),缓冲数组可在轮次间安全复用,避免每轮分配。
252
- this.normalBuffer = [];
253
- this.lowBuffer = [];
254
- this.flushing = false;
255
- this.scheduled = false;
256
- this.batchDepth = 0;
257
- }
258
- schedule(effect2) {
259
- if (effect2.disposed) return;
260
- this.dirtyEffects.add(effect2);
261
- this.lowPriorityEffects.delete(effect2);
262
- this.ensureScheduled();
263
- }
264
- /** Queue an effect behind normal updates while preserving deterministic order. */
265
- scheduleLow(effect2) {
266
- if (effect2.disposed) return;
267
- if (!this.dirtyEffects.has(effect2)) this.lowPriorityEffects.add(effect2);
268
- this.ensureScheduled();
269
- }
270
- ensureScheduled() {
271
- if (this.batchDepth === 0 && !this.flushing && !this.scheduled) {
272
- this.scheduled = true;
273
- queueMicrotask(() => {
274
- this.scheduled = false;
275
- this.flush();
276
- });
277
- }
278
- }
279
- remove(effect2) {
280
- this.dirtyEffects.delete(effect2);
281
- this.lowPriorityEffects.delete(effect2);
282
- }
283
- batch(fn) {
284
- this.batchDepth++;
285
- try {
286
- return fn();
287
- } finally {
288
- this.batchDepth--;
289
- if (this.batchDepth === 0) this.flush();
290
- }
291
- }
292
- flush() {
293
- if (this.flushing || this.batchDepth > 0) return;
294
- this.flushing = true;
295
- let rounds = 0;
296
- let firstError;
297
- let hasError = false;
298
- try {
299
- while (this.dirtyEffects.size > 0 || this.lowPriorityEffects.size > 0) {
300
- if (++rounds > 100) {
301
- this.dirtyEffects.clear();
302
- this.lowPriorityEffects.clear();
303
- throw new Error("Vobs: \u54CD\u5E94\u5F0F\u66F4\u65B0\u8D85\u8FC7 100 \u8F6E\uFF0C\u53EF\u80FD\u5B58\u5728\u5FAA\u73AF\u4F9D\u8D56");
304
- }
305
- this.collectRunnable(this.dirtyEffects, this.normalBuffer);
306
- this.collectRunnable(this.lowPriorityEffects, this.lowBuffer);
307
- sortEffects(this.normalBuffer);
308
- sortEffects(this.lowBuffer);
309
- for (const effect2 of this.normalBuffer) {
310
- try {
311
- effect2.run();
312
- } catch (error) {
313
- if (!hasError) {
314
- firstError = error;
315
- hasError = true;
316
- }
317
- }
318
- }
319
- for (const effect2 of this.lowBuffer) {
320
- try {
321
- effect2.run();
322
- } catch (error) {
323
- if (!hasError) {
324
- firstError = error;
325
- hasError = true;
326
- }
327
- }
328
- }
329
- this.normalBuffer.length = 0;
330
- this.lowBuffer.length = 0;
331
- }
332
- } finally {
333
- this.normalBuffer.length = 0;
334
- this.lowBuffer.length = 0;
335
- this.flushing = false;
336
- }
337
- if (hasError) throw firstError;
338
- }
339
- /** 收集未 disposed 的 effect 并清空源集合;run() 期间新调度的 effect 留给下一轮。 */
340
- collectRunnable(source, target) {
341
- for (const effect2 of source) {
342
- if (!effect2.disposed) target.push(effect2);
343
- }
344
- source.clear();
345
- }
346
- };
347
- __name(_Scheduler, "Scheduler");
348
- var Scheduler = _Scheduler;
349
- function sortEffects(effects) {
350
- if (effects.length > 1) {
351
- effects.sort((a, b) => b.depth - a.depth || a.order - b.order);
352
- }
353
- }
354
- __name(sortEffects, "sortEffects");
355
- var scheduler = new Scheduler();
163
+ // packages/runtime/src/fragment.ts
164
+ var import_reactivity3 = require("@vobs/reactivity");
356
165
 
357
- // packages/reactivity/src/effect.ts
358
- var nextEffectOrder = 1;
359
- function cleanupDependencies(subscriber) {
360
- for (const dependency of subscriber.dependencies) {
361
- dependency.unsubscribe(subscriber);
362
- }
363
- subscriber.dependencies.clear();
364
- }
365
- __name(cleanupDependencies, "cleanupDependencies");
366
- function effect(callback) {
367
- const owner = getCurrentOwner();
368
- let cleanup;
369
- let dirty = true;
370
- let disposed = false;
371
- const eff = {
372
- order: nextEffectOrder++,
373
- depth: owner?.depth ?? 0,
374
- dependencies: /* @__PURE__ */ new Set(),
375
- get disposed() {
376
- return disposed;
377
- },
378
- notify() {
379
- if (disposed || dirty) return;
380
- dirty = true;
381
- scheduler.schedule(eff);
382
- },
383
- run() {
384
- if (disposed || !dirty) return;
385
- dirty = false;
386
- const previousCleanup = cleanup;
387
- cleanup = void 0;
388
- let cleanupError;
389
- if (previousCleanup) {
390
- try {
391
- previousCleanup();
392
- } catch (error) {
393
- const handled2 = owner?.handleError(error) ?? false;
394
- if (!handled2) cleanupError = error;
395
- }
396
- }
397
- cleanupDependencies(eff);
398
- const previous = getCurrentSubscriber();
399
- setCurrentSubscriber(eff);
400
- let thrown;
401
- let handled = false;
402
- try {
403
- const result = owner ? owner.run(callback) : callback();
404
- cleanup = typeof result === "function" ? result : void 0;
405
- } catch (error) {
406
- thrown = error;
407
- handled = owner?.handleError(error) ?? false;
408
- if (!handled) throw error;
409
- } finally {
410
- setCurrentSubscriber(previous);
411
- }
412
- if (cleanupError && !thrown) throw cleanupError;
413
- },
414
- scheduleLow() {
415
- if (disposed || dirty) return;
416
- dirty = true;
417
- scheduler.scheduleLow(eff);
418
- },
419
- dispose() {
420
- if (disposed) return;
421
- disposed = true;
422
- dirty = false;
423
- scheduler.remove(eff);
424
- const previousCleanup = cleanup;
425
- cleanup = void 0;
426
- let cleanupError;
427
- if (previousCleanup) {
428
- try {
429
- previousCleanup();
430
- } catch (error) {
431
- const handled = owner?.handleError(error) ?? false;
432
- if (!handled) cleanupError = error;
433
- }
434
- }
435
- cleanupDependencies(eff);
436
- if (cleanupError) throw cleanupError;
437
- }
438
- };
439
- owner?.addCleanup(eff.dispose);
440
- eff.run();
441
- return eff;
442
- }
443
- __name(effect, "effect");
166
+ // packages/runtime/src/ops.ts
167
+ var import_reactivity2 = require("@vobs/reactivity");
444
168
 
445
169
  // packages/runtime/src/hmr.ts
446
170
  var globalTarget = globalThis;
447
171
  var hmrGlobal = globalTarget.__VOBS_HMR__ ?? { modules: /* @__PURE__ */ new Map() };
448
172
  globalTarget.__VOBS_HMR__ = hmrGlobal;
449
173
  function resolveComponent(component, moduleId, exportName) {
450
- const module = getModule(moduleId);
451
- const existing = module.components.get(exportName);
174
+ const module2 = getModule(moduleId);
175
+ const existing = module2.components.get(exportName);
452
176
  if (existing) return existing;
453
177
  const proxy = /* @__PURE__ */ __name(((props) => {
454
178
  const current = proxy.current;
@@ -459,15 +183,15 @@ function resolveComponent(component, moduleId, exportName) {
459
183
  displayName: { configurable: true, value: component.name || exportName },
460
184
  hmrKey: { configurable: false, value: `${moduleId}:${exportName}` }
461
185
  });
462
- module.components.set(exportName, proxy);
186
+ module2.components.set(exportName, proxy);
463
187
  return proxy;
464
188
  }
465
189
  __name(resolveComponent, "resolveComponent");
466
190
  function updateHmrModule(_moduleId, nextModule) {
467
191
  const modules = [...hmrGlobal.modules.values()];
468
- for (const module of modules) {
192
+ for (const module2 of modules) {
469
193
  let changed = false;
470
- for (const [name, proxy] of module.components) {
194
+ for (const [name, proxy] of module2.components) {
471
195
  const next = nextModule[name];
472
196
  if (typeof next !== "function") continue;
473
197
  const hmrProxy = proxy;
@@ -476,7 +200,7 @@ function updateHmrModule(_moduleId, nextModule) {
476
200
  changed = true;
477
201
  }
478
202
  if (!changed) continue;
479
- for (const instance of module.instances) {
203
+ for (const instance of module2.instances) {
480
204
  try {
481
205
  instance.refresh();
482
206
  } catch {
@@ -489,21 +213,21 @@ function disposeHmrModule(_moduleId) {
489
213
  }
490
214
  __name(disposeHmrModule, "disposeHmrModule");
491
215
  function createHmrStateStore(moduleId) {
492
- const state2 = getModule(moduleId).state;
216
+ const state4 = getModule(moduleId).state;
493
217
  return {
494
218
  get(key, initial) {
495
- if (!state2.has(key)) state2.set(key, typeof initial === "function" ? initial() : initial);
496
- return state2.get(key);
219
+ if (!state4.has(key)) state4.set(key, typeof initial === "function" ? initial() : initial);
220
+ return state4.get(key);
497
221
  },
498
222
  set(key, value) {
499
- state2.set(key, value);
223
+ state4.set(key, value);
500
224
  },
501
- has: /* @__PURE__ */ __name((key) => state2.has(key), "has"),
225
+ has: /* @__PURE__ */ __name((key) => state4.has(key), "has"),
502
226
  delete: /* @__PURE__ */ __name((key) => {
503
- state2.delete(key);
227
+ state4.delete(key);
504
228
  }, "delete"),
505
229
  clear: /* @__PURE__ */ __name(() => {
506
- state2.clear();
230
+ state4.clear();
507
231
  }, "clear")
508
232
  };
509
233
  }
@@ -520,12 +244,12 @@ function markHmrInstanceMounted(node, parent) {
520
244
  }
521
245
  __name(markHmrInstanceMounted, "markHmrInstanceMounted");
522
246
  function getModule(moduleId) {
523
- let module = hmrGlobal.modules.get(moduleId);
524
- if (!module) {
525
- module = { components: /* @__PURE__ */ new Map(), state: /* @__PURE__ */ new Map(), instances: /* @__PURE__ */ new Set() };
526
- hmrGlobal.modules.set(moduleId, module);
247
+ let module2 = hmrGlobal.modules.get(moduleId);
248
+ if (!module2) {
249
+ module2 = { components: /* @__PURE__ */ new Map(), state: /* @__PURE__ */ new Map(), instances: /* @__PURE__ */ new Set() };
250
+ hmrGlobal.modules.set(moduleId, module2);
527
251
  }
528
- return module;
252
+ return module2;
529
253
  }
530
254
  __name(getModule, "getModule");
531
255
  var hmrInstances = /* @__PURE__ */ new WeakMap();
@@ -535,6 +259,7 @@ function associateHmrInstance(node, instance) {
535
259
  __name(associateHmrInstance, "associateHmrInstance");
536
260
 
537
261
  // packages/runtime/src/ref.ts
262
+ var import_reactivity = require("@vobs/reactivity");
538
263
  function ref(initialValue = null) {
539
264
  return { current: initialValue };
540
265
  }
@@ -542,7 +267,7 @@ __name(ref, "ref");
542
267
  function setRef(node, target) {
543
268
  if (!isRefTarget(target)) return;
544
269
  if (isSSRNode(node)) return;
545
- const owner = getCurrentOwner();
270
+ const owner = (0, import_reactivity.getCurrentOwner)();
546
271
  assignRef(target, node);
547
272
  owner?.onDispose(() => {
548
273
  if (isObjectRef(target) && target.current !== node) return;
@@ -710,7 +435,7 @@ function formatStyle(value) {
710
435
  __name(formatStyle, "formatStyle");
711
436
  function addEventListener(node, event, handler) {
712
437
  const renderer = getRenderer();
713
- const owner = getCurrentOwner();
438
+ const owner = (0, import_reactivity2.getCurrentOwner)();
714
439
  let bindings = eventBindings.get(node);
715
440
  if (!bindings) {
716
441
  bindings = /* @__PURE__ */ new Map();
@@ -756,9 +481,9 @@ function clear(container) {
756
481
  }
757
482
  __name(clear, "clear");
758
483
  function createComponent(component, props, source) {
759
- const owner = createOwner();
484
+ const owner = (0, import_reactivity2.createOwner)();
760
485
  const componentName = component.displayName || component.name || "anonymous";
761
- setOwnerDebugName(owner, source ? `${componentName} (${source.file}:${source.line}:${source.column})` : componentName);
486
+ (0, import_reactivity2.setOwnerDebugName)(owner, source ? `${componentName} (${source.file}:${source.line}:${source.column})` : componentName);
762
487
  owner.onError((reason) => {
763
488
  attachSourceLocation(reason, source);
764
489
  attachComponentContext(reason, componentName, owner.id);
@@ -827,8 +552,8 @@ function attachComponentContext(reason, component, ownerId) {
827
552
  }
828
553
  __name(attachComponentContext, "attachComponentContext");
829
554
  function createBlock(factory) {
830
- const owner = createOwner();
831
- setOwnerDebugName(owner, "dynamic");
555
+ const owner = (0, import_reactivity2.createOwner)();
556
+ (0, import_reactivity2.setOwnerDebugName)(owner, "dynamic");
832
557
  let node;
833
558
  try {
834
559
  node = owner.run(factory);
@@ -862,7 +587,7 @@ function createFragment(factory) {
862
587
  const end = createComment("vobs:fragment:end");
863
588
  let parent = null;
864
589
  let initialized = false;
865
- const owner = getCurrentOwner();
590
+ const owner = (0, import_reactivity3.getCurrentOwner)();
866
591
  const fragment = {
867
592
  kind: "vobs-fragment",
868
593
  start,
@@ -924,37 +649,39 @@ function moveRange(parent, start, end, anchor) {
924
649
  __name(moveRange, "moveRange");
925
650
 
926
651
  // packages/runtime/src/bind.ts
652
+ var import_reactivity4 = require("@vobs/reactivity");
927
653
  function readSource(source) {
928
654
  return typeof source === "function" ? source() : source.value;
929
655
  }
930
656
  __name(readSource, "readSource");
931
657
  function bindText(node, source) {
932
- effect(() => {
658
+ (0, import_reactivity4.effect)(() => {
933
659
  const value = readSource(source);
934
660
  setTextContent(node, value === null || value === void 0 || typeof value === "boolean" ? "" : String(value));
935
661
  });
936
662
  }
937
663
  __name(bindText, "bindText");
938
664
  function bindAttribute(node, key, source) {
939
- effect(() => {
665
+ (0, import_reactivity4.effect)(() => {
940
666
  const value = readSource(source);
941
667
  setAttribute(node, key, key === "style" && value && typeof value === "object" && !Array.isArray(value) ? Object.entries(value).filter(([, entry]) => entry !== null && entry !== void 0 && entry !== false).map(([name, entry]) => `${name.replace(/[A-Z]/gu, (match) => `-${match.toLowerCase()}`)}:${String(entry)}`).join(";") : String(value));
942
668
  });
943
669
  }
944
670
  __name(bindAttribute, "bindAttribute");
945
671
  function bindProperty(node, key, source) {
946
- effect(() => {
672
+ (0, import_reactivity4.effect)(() => {
947
673
  setProperty(node, key, readSource(source));
948
674
  });
949
675
  }
950
676
  __name(bindProperty, "bindProperty");
951
677
 
952
678
  // packages/runtime/src/dynamic.ts
679
+ var import_reactivity5 = require("@vobs/reactivity");
953
680
  function insertDynamic(parent, anchor, factory) {
954
681
  const marker = createComment("vobs:dynamic");
955
682
  insertBefore(parent, marker, anchor);
956
683
  let current = null;
957
- effect(() => {
684
+ (0, import_reactivity5.effect)(() => {
958
685
  const next = createBlock(factory);
959
686
  if (next === current) return;
960
687
  if (current) removeChild(parent, current);
@@ -968,8 +695,8 @@ function insertDynamicValue(parent, anchor, factory) {
968
695
  insertBefore(parent, marker, anchor);
969
696
  let current = null;
970
697
  let scope = null;
971
- effect(() => {
972
- const nextScope = createOwner();
698
+ (0, import_reactivity5.effect)(() => {
699
+ const nextScope = (0, import_reactivity5.createOwner)();
973
700
  const next = nextScope.run(() => normalizeDynamicChild(factory()));
974
701
  if (next === current) {
975
702
  nextScope.dispose();
@@ -1009,7 +736,7 @@ function insertList(parent, anchor, source, renderItem, keyOf) {
1009
736
  insertBefore(parent, marker, anchor);
1010
737
  let entries = [];
1011
738
  const tracksIndex = renderItem.length >= 2;
1012
- effect(() => {
739
+ (0, import_reactivity5.effect)(() => {
1013
740
  const items = source();
1014
741
  let keys = null;
1015
742
  if (keyOf) {
@@ -1165,13 +892,13 @@ function isPrimitiveItem(item) {
1165
892
  }
1166
893
  __name(isPrimitiveItem, "isPrimitiveItem");
1167
894
  function createListEntry(item, index, key, renderItem) {
1168
- const owner = createOwner();
895
+ const owner = (0, import_reactivity5.createOwner)();
1169
896
  let itemSignal;
1170
897
  let viewOwner;
1171
898
  let node;
1172
899
  owner.run(() => {
1173
- itemSignal = state(item);
1174
- viewOwner = createOwner();
900
+ itemSignal = (0, import_reactivity5.state)(item);
901
+ viewOwner = (0, import_reactivity5.createOwner)();
1175
902
  node = viewOwner.run(() => renderItem(toReactiveItem(itemSignal, item), index));
1176
903
  });
1177
904
  associateNodeOwner(node, viewOwner);
@@ -1183,7 +910,7 @@ function refreshListEntry(parent, entry, index, renderItem) {
1183
910
  entry.index = index;
1184
911
  const previousView = entry.viewOwner;
1185
912
  entry.owner.run(() => {
1186
- entry.viewOwner = createOwner();
913
+ entry.viewOwner = (0, import_reactivity5.createOwner)();
1187
914
  entry.node = entry.viewOwner.run(() => renderItem(
1188
915
  toReactiveItem(entry.item, entry.value),
1189
916
  index
@@ -1344,10 +1071,11 @@ function capitalize(value) {
1344
1071
  __name(capitalize, "capitalize");
1345
1072
 
1346
1073
  // packages/runtime/src/boundary.ts
1074
+ var import_reactivity6 = require("@vobs/reactivity");
1347
1075
  function insertBoundary(parent, anchor, options) {
1348
- const boundary = createOwner();
1076
+ const boundary = (0, import_reactivity6.createOwner)();
1349
1077
  boundary.run(() => {
1350
- const error = state(null);
1078
+ const error = (0, import_reactivity6.state)(null);
1351
1079
  let fallbackActive = false;
1352
1080
  let lastError = null;
1353
1081
  let initialized = false;
@@ -1422,13 +1150,14 @@ function ErrorBoundary(props) {
1422
1150
  __name(ErrorBoundary, "ErrorBoundary");
1423
1151
 
1424
1152
  // packages/runtime/src/async-boundary.ts
1153
+ var import_reactivity7 = require("@vobs/reactivity");
1425
1154
  function insertAsyncBoundary(parent, anchor, options) {
1426
- const boundary = createOwner();
1155
+ const boundary = (0, import_reactivity7.createOwner)();
1427
1156
  boundary.run(() => {
1428
- const loading = state(true);
1429
- const data = state(void 0);
1430
- const resolved = state(false);
1431
- const error = state(null);
1157
+ const loading = (0, import_reactivity7.state)(true);
1158
+ const data = (0, import_reactivity7.state)(void 0);
1159
+ const resolved = (0, import_reactivity7.state)(false);
1160
+ const error = (0, import_reactivity7.state)(null);
1432
1161
  let token = 0;
1433
1162
  let previousKey;
1434
1163
  let initialized = false;
@@ -1505,8 +1234,9 @@ function normalizeError(reason) {
1505
1234
  __name(normalizeError, "normalizeError");
1506
1235
 
1507
1236
  // packages/runtime/src/profiler.ts
1237
+ var import_reactivity8 = require("@vobs/reactivity");
1508
1238
  function insertProfiler(parent, anchor, options) {
1509
- const profiler = createOwner();
1239
+ const profiler = (0, import_reactivity8.createOwner)();
1510
1240
  let mounted = false;
1511
1241
  profiler.run(() => {
1512
1242
  insertDynamic(parent, anchor, () => {
@@ -1536,62 +1266,63 @@ function now() {
1536
1266
  return typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now() : Date.now();
1537
1267
  }
1538
1268
  __name(now, "now");
1539
-
1540
- exports.AsyncBoundary = AsyncBoundary;
1541
- exports.ErrorBoundary = ErrorBoundary;
1542
- exports.Profiler = Profiler;
1543
- exports.VobsError = VobsError;
1544
- exports.addEventListener = addEventListener;
1545
- exports.bindAttribute = bindAttribute;
1546
- exports.bindProperty = bindProperty;
1547
- exports.bindText = bindText;
1548
- exports.clear = clear;
1549
- exports.cloneTemplate = cloneTemplate;
1550
- exports.createBlock = createBlock;
1551
- exports.createComment = createComment;
1552
- exports.createComponent = createComponent;
1553
- exports.createElement = createElement;
1554
- exports.createFragment = createFragment;
1555
- exports.createHmrStateStore = createHmrStateStore;
1556
- exports.createTemplate = createTemplate;
1557
- exports.createText = createText;
1558
- exports.createVobsError = createVobsError;
1559
- exports.describeDebugNode = describeDebugNode;
1560
- exports.disposeHmrModule = disposeHmrModule;
1561
- exports.disposeNodeOwner = disposeNodeOwner;
1562
- exports.formatVobsError = formatVobsError;
1563
- exports.getRenderer = getRenderer;
1564
- exports.getRuntimeDebugContext = getRuntimeDebugContext;
1565
- exports.getRuntimeDebugHooks = getRuntimeDebugHooks;
1566
- exports.insertAsyncBoundary = insertAsyncBoundary;
1567
- exports.insertBefore = insertBefore;
1568
- exports.insertBoundary = insertBoundary;
1569
- exports.insertDynamic = insertDynamic;
1570
- exports.insertDynamicValue = insertDynamicValue;
1571
- exports.insertErrorBoundary = insertErrorBoundary;
1572
- exports.insertList = insertList;
1573
- exports.insertProfiler = insertProfiler;
1574
- exports.invokeRuntimeDebug = invokeRuntimeDebug;
1575
- exports.isVobsError = isVobsError;
1576
- exports.isVobsFragment = isVobsFragment;
1577
- exports.markHmrInstanceMounted = markHmrInstanceMounted;
1578
- exports.normalizeDynamicChild = normalizeDynamicChild;
1579
- exports.normalizeVobsError = normalizeVobsError;
1580
- exports.pushRuntimeDebugContext = pushRuntimeDebugContext;
1581
- exports.ref = ref;
1582
- exports.registerHmrInstance = registerHmrInstance;
1583
- exports.removeChild = removeChild;
1584
- exports.removeEventListener = removeEventListener;
1585
- exports.resolveComponent = resolveComponent;
1586
- exports.runWithRuntimeDebugContext = runWithRuntimeDebugContext;
1587
- exports.setAttribute = setAttribute;
1588
- exports.setProperty = setProperty;
1589
- exports.setRef = setRef;
1590
- exports.setRenderer = setRenderer;
1591
- exports.setRuntimeDebugHooks = setRuntimeDebugHooks;
1592
- exports.setStaticProps = setStaticProps;
1593
- exports.setTextContent = setTextContent;
1594
- exports.spreadProps = spreadProps;
1595
- exports.updateHmrModule = updateHmrModule;
1596
- //# sourceMappingURL=index.cjs.map
1269
+ // Annotate the CommonJS export names for ESM import in node:
1270
+ 0 && (module.exports = {
1271
+ AsyncBoundary,
1272
+ ErrorBoundary,
1273
+ Profiler,
1274
+ VobsError,
1275
+ addEventListener,
1276
+ bindAttribute,
1277
+ bindProperty,
1278
+ bindText,
1279
+ clear,
1280
+ cloneTemplate,
1281
+ createBlock,
1282
+ createComment,
1283
+ createComponent,
1284
+ createElement,
1285
+ createFragment,
1286
+ createHmrStateStore,
1287
+ createTemplate,
1288
+ createText,
1289
+ createVobsError,
1290
+ describeDebugNode,
1291
+ disposeHmrModule,
1292
+ disposeNodeOwner,
1293
+ formatVobsError,
1294
+ getRenderer,
1295
+ getRuntimeDebugContext,
1296
+ getRuntimeDebugHooks,
1297
+ insertAsyncBoundary,
1298
+ insertBefore,
1299
+ insertBoundary,
1300
+ insertDynamic,
1301
+ insertDynamicValue,
1302
+ insertErrorBoundary,
1303
+ insertList,
1304
+ insertProfiler,
1305
+ invokeRuntimeDebug,
1306
+ isVobsError,
1307
+ isVobsFragment,
1308
+ markHmrInstanceMounted,
1309
+ normalizeDynamicChild,
1310
+ normalizeVobsError,
1311
+ pushRuntimeDebugContext,
1312
+ ref,
1313
+ registerHmrInstance,
1314
+ removeChild,
1315
+ removeEventListener,
1316
+ resolveComponent,
1317
+ runWithRuntimeDebugContext,
1318
+ setAttribute,
1319
+ setProperty,
1320
+ setRef,
1321
+ setRenderer,
1322
+ setRuntimeDebugHooks,
1323
+ setStaticProps,
1324
+ setTextContent,
1325
+ spreadProps,
1326
+ updateHmrModule
1327
+ });
1597
1328
  //# sourceMappingURL=index.cjs.map