@vobs/vobs 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.
package/dist/index.cjs CHANGED
@@ -1,1742 +1,119 @@
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 });
5
-
6
- // packages/reactivity/src/debug.ts
7
- var activeDebugHooks = null;
8
- var signalNames = /* @__PURE__ */ new WeakMap();
9
- function setDebugHooks(hooks) {
10
- const previous = activeDebugHooks;
11
- activeDebugHooks = hooks;
12
- return previous;
13
- }
14
- __name(setDebugHooks, "setDebugHooks");
15
- function getDebugHooks() {
16
- return activeDebugHooks;
17
- }
18
- __name(getDebugHooks, "getDebugHooks");
19
- function hasDebugHooks() {
20
- return activeDebugHooks !== null;
21
- }
22
- __name(hasDebugHooks, "hasDebugHooks");
23
- function setSignalDebugName(signal, name) {
24
- signalNames.set(signal, name);
25
- invokeDebug("signalNamed", signal, name);
26
- }
27
- __name(setSignalDebugName, "setSignalDebugName");
28
- function getSignalDebugName(signal) {
29
- return signalNames.get(signal);
30
- }
31
- __name(getSignalDebugName, "getSignalDebugName");
32
- function invokeDebug(name, ...args) {
33
- const callback = activeDebugHooks?.[name];
34
- if (!callback) return;
35
- try {
36
- callback(...args);
37
- } catch {
38
- }
39
- }
40
- __name(invokeDebug, "invokeDebug");
41
-
42
- // packages/reactivity/src/owner.ts
43
- var currentOwner = null;
44
- var nextOwnerId = 1;
45
- var ownerNames = /* @__PURE__ */ new WeakMap();
46
- function createOwner() {
47
- const parent = currentOwner;
48
- let disposed = parent?.disposed ?? false;
49
- const children = [];
50
- const cleanups = [];
51
- const errorHandlers = /* @__PURE__ */ new Set();
52
- const owner = {
53
- id: `owner-${nextOwnerId++}`,
54
- parent,
55
- children,
56
- depth: (parent?.depth ?? -1) + 1,
57
- get disposed() {
58
- return disposed;
59
- },
60
- run(fn) {
61
- if (disposed) throw new Error("Vobs: \u5DF2\u9500\u6BC1\u7684 Owner \u4E0D\u80FD\u7EE7\u7EED\u8FD0\u884C");
62
- const previous = currentOwner;
63
- currentOwner = owner;
64
- try {
65
- return fn();
66
- } finally {
67
- currentOwner = previous;
68
- }
69
- },
70
- addCleanup(cleanup) {
71
- if (disposed) {
72
- cleanup();
73
- return;
74
- }
75
- cleanups.push(cleanup);
76
- },
77
- onDispose(cleanup) {
78
- owner.addCleanup(cleanup);
79
- },
80
- onError(handler) {
81
- errorHandlers.add(handler);
82
- const remove = /* @__PURE__ */ __name(() => errorHandlers.delete(handler), "remove");
83
- owner.addCleanup(remove);
84
- return remove;
85
- },
86
- handleError(error) {
87
- for (const handler of [...errorHandlers].reverse()) {
88
- try {
89
- handler(error);
90
- return true;
91
- } catch (handlerError) {
92
- return parent?.handleError(handlerError) ?? false;
93
- }
94
- }
95
- return parent?.handleError(error) ?? false;
96
- },
97
- dispose() {
98
- if (disposed) return;
99
- disposed = true;
100
- for (const child of [...children]) child.dispose();
101
- children.length = 0;
102
- let firstError;
103
- for (let index = cleanups.length - 1; index >= 0; index--) {
104
- try {
105
- cleanups[index]();
106
- } catch (error) {
107
- firstError ?? (firstError = error);
108
- }
109
- }
110
- cleanups.length = 0;
111
- if (parent) {
112
- const index = parent.children.indexOf(owner);
113
- if (index >= 0) parent.children.splice(index, 1);
114
- }
115
- if (hasDebugHooks()) invokeDebug("ownerDisposed", owner);
116
- if (firstError) throw firstError;
117
- }
118
- };
119
- if (parent && !parent.disposed) parent.children.push(owner);
120
- if (hasDebugHooks()) invokeDebug("ownerCreated", owner);
121
- return owner;
122
- }
123
- __name(createOwner, "createOwner");
124
- function setOwnerDebugName(owner, name) {
125
- ownerNames.set(owner, name);
126
- if (hasDebugHooks()) invokeDebug("ownerNamed", owner, name);
127
- }
128
- __name(setOwnerDebugName, "setOwnerDebugName");
129
- function getOwnerDebugName(owner) {
130
- return ownerNames.get(owner);
131
- }
132
- __name(getOwnerDebugName, "getOwnerDebugName");
133
- function getCurrentOwner() {
134
- return currentOwner;
135
- }
136
- __name(getCurrentOwner, "getCurrentOwner");
137
- function runWithOwner(owner, fn) {
138
- return owner.run(fn);
139
- }
140
- __name(runWithOwner, "runWithOwner");
141
- function onDispose(cleanup) {
142
- const owner = getCurrentOwner();
143
- if (!owner) throw new Error("Vobs: onDispose \u5FC5\u987B\u5728 Owner \u4F5C\u7528\u57DF\u5185\u8C03\u7528");
144
- owner.onDispose(cleanup);
145
- }
146
- __name(onDispose, "onDispose");
147
-
148
- // packages/reactivity/src/signal.ts
149
- var currentSubscriber = null;
150
- function getCurrentSubscriber() {
151
- return currentSubscriber;
152
- }
153
- __name(getCurrentSubscriber, "getCurrentSubscriber");
154
- function setCurrentSubscriber(subscriber) {
155
- currentSubscriber = subscriber;
156
- }
157
- __name(setCurrentSubscriber, "setCurrentSubscriber");
158
- function untrack(fn) {
159
- const previous = currentSubscriber;
160
- currentSubscriber = null;
161
- try {
162
- return fn();
163
- } finally {
164
- currentSubscriber = previous;
165
- }
166
- }
167
- __name(untrack, "untrack");
168
- function trackDependency(dependency) {
169
- if (!currentSubscriber || currentSubscriber.disposed) return;
170
- const added = !currentSubscriber.dependencies.has(dependency);
171
- currentSubscriber.dependencies.add(dependency);
172
- if (added && hasDebugHooks()) invokeDebug("dependencyTracked", dependency, currentSubscriber);
173
- }
174
- __name(trackDependency, "trackDependency");
175
- function state(initialValue, debugName) {
176
- let value = initialValue;
177
- let disposed = false;
178
- const subscribers = /* @__PURE__ */ new Set();
179
- const signalInstance = {
180
- get value() {
181
- const subscriber = getCurrentSubscriber();
182
- if (subscriber && !subscriber.disposed) {
183
- subscribers.add(subscriber);
184
- if (hasDebugHooks()) invokeDebug("signalRead", signalInstance, subscriber);
185
- trackDependency(signalInstance);
186
- }
187
- return value;
188
- },
189
- set value(nextValue) {
190
- if (disposed || Object.is(value, nextValue)) return;
191
- const previousValue = value;
192
- value = nextValue;
193
- if (hasDebugHooks()) invokeDebug("signalChanged", signalInstance, previousValue, nextValue);
194
- for (const subscriber of [...subscribers]) subscriber.notify();
195
- },
196
- unsubscribe(subscriber) {
197
- subscribers.delete(subscriber);
198
- },
199
- // 与 `.value =` 赋值同一条路径:判等短路、debug hook、notify 全部一致。
200
- // 以闭包实现,可安全地作为回调直接传递(无 this 绑定问题)。
201
- set(next) {
202
- signalInstance.value = next;
203
- },
204
- dispose() {
205
- if (disposed) return;
206
- disposed = true;
207
- subscribers.clear();
208
- if (hasDebugHooks()) invokeDebug("signalDisposed", signalInstance);
209
- }
210
- };
211
- const owner = getCurrentOwner();
212
- owner?.addCleanup(signalInstance.dispose);
213
- if (hasDebugHooks()) invokeDebug("signalCreated", signalInstance, owner);
214
- if (debugName?.trim()) setSignalDebugName(signalInstance, debugName.trim());
215
- return signalInstance;
216
- }
217
- __name(state, "state");
218
-
219
- // packages/reactivity/src/scheduler.ts
220
- var _Scheduler = class _Scheduler {
221
- constructor() {
222
- this.dirtyEffects = /* @__PURE__ */ new Set();
223
- this.lowPriorityEffects = /* @__PURE__ */ new Set();
224
- // flush 不可重入(flushing 标志保证),缓冲数组可在轮次间安全复用,避免每轮分配。
225
- this.normalBuffer = [];
226
- this.lowBuffer = [];
227
- this.flushing = false;
228
- this.scheduled = false;
229
- this.batchDepth = 0;
230
- }
231
- schedule(effect2) {
232
- if (effect2.disposed) return;
233
- this.dirtyEffects.add(effect2);
234
- this.lowPriorityEffects.delete(effect2);
235
- this.ensureScheduled();
236
- }
237
- /** Queue an effect behind normal updates while preserving deterministic order. */
238
- scheduleLow(effect2) {
239
- if (effect2.disposed) return;
240
- if (!this.dirtyEffects.has(effect2)) this.lowPriorityEffects.add(effect2);
241
- this.ensureScheduled();
242
- }
243
- ensureScheduled() {
244
- if (this.batchDepth === 0 && !this.flushing && !this.scheduled) {
245
- this.scheduled = true;
246
- queueMicrotask(() => {
247
- this.scheduled = false;
248
- this.flush();
249
- });
250
- }
251
- }
252
- remove(effect2) {
253
- this.dirtyEffects.delete(effect2);
254
- this.lowPriorityEffects.delete(effect2);
255
- }
256
- batch(fn) {
257
- this.batchDepth++;
258
- try {
259
- return fn();
260
- } finally {
261
- this.batchDepth--;
262
- if (this.batchDepth === 0) this.flush();
263
- }
264
- }
265
- flush() {
266
- if (this.flushing || this.batchDepth > 0) return;
267
- this.flushing = true;
268
- const debugEnabled = hasDebugHooks();
269
- if (debugEnabled) invokeDebug("flushStart");
270
- let rounds = 0;
271
- let firstError;
272
- let hasError = false;
273
- try {
274
- while (this.dirtyEffects.size > 0 || this.lowPriorityEffects.size > 0) {
275
- if (++rounds > 100) {
276
- this.dirtyEffects.clear();
277
- this.lowPriorityEffects.clear();
278
- throw new Error("Vobs: \u54CD\u5E94\u5F0F\u66F4\u65B0\u8D85\u8FC7 100 \u8F6E\uFF0C\u53EF\u80FD\u5B58\u5728\u5FAA\u73AF\u4F9D\u8D56");
279
- }
280
- this.collectRunnable(this.dirtyEffects, this.normalBuffer);
281
- this.collectRunnable(this.lowPriorityEffects, this.lowBuffer);
282
- sortEffects(this.normalBuffer);
283
- sortEffects(this.lowBuffer);
284
- for (const effect2 of this.normalBuffer) {
285
- try {
286
- effect2.run();
287
- } catch (error) {
288
- if (!hasError) {
289
- firstError = error;
290
- hasError = true;
291
- }
292
- }
293
- }
294
- for (const effect2 of this.lowBuffer) {
295
- try {
296
- effect2.run();
297
- } catch (error) {
298
- if (!hasError) {
299
- firstError = error;
300
- hasError = true;
301
- }
302
- }
303
- }
304
- this.normalBuffer.length = 0;
305
- this.lowBuffer.length = 0;
306
- }
307
- } finally {
308
- this.normalBuffer.length = 0;
309
- this.lowBuffer.length = 0;
310
- this.flushing = false;
311
- if (debugEnabled) invokeDebug("flushEnd");
312
- }
313
- if (hasError) throw firstError;
314
- }
315
- /** 收集未 disposed 的 effect 并清空源集合;run() 期间新调度的 effect 留给下一轮。 */
316
- collectRunnable(source, target) {
317
- for (const effect2 of source) {
318
- if (!effect2.disposed) target.push(effect2);
319
- }
320
- source.clear();
321
- }
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
322
11
  };
323
- __name(_Scheduler, "Scheduler");
324
- var Scheduler = _Scheduler;
325
- function sortEffects(effects) {
326
- if (effects.length > 1) {
327
- effects.sort((a, b) => b.depth - a.depth || a.order - b.order);
328
- }
329
- }
330
- __name(sortEffects, "sortEffects");
331
- var scheduler = new Scheduler();
332
- function batch(fn) {
333
- return scheduler.batch(fn);
334
- }
335
- __name(batch, "batch");
336
- function scheduleLow(effect2) {
337
- effect2.scheduleLow();
338
- }
339
- __name(scheduleLow, "scheduleLow");
340
-
341
- // packages/reactivity/src/effect.ts
342
- var nextEffectOrder = 1;
343
- function cleanupDependencies(subscriber) {
344
- for (const dependency of subscriber.dependencies) {
345
- dependency.unsubscribe(subscriber);
346
- if (hasDebugHooks()) invokeDebug("dependencyUntracked", dependency, subscriber);
347
- }
348
- subscriber.dependencies.clear();
349
- }
350
- __name(cleanupDependencies, "cleanupDependencies");
351
- function effect(callback) {
352
- const owner = getCurrentOwner();
353
- let cleanup;
354
- let dirty = true;
355
- let disposed = false;
356
- const eff = {
357
- order: nextEffectOrder++,
358
- depth: owner?.depth ?? 0,
359
- dependencies: /* @__PURE__ */ new Set(),
360
- get disposed() {
361
- return disposed;
362
- },
363
- notify() {
364
- if (disposed || dirty) return;
365
- dirty = true;
366
- if (hasDebugHooks()) invokeDebug("effectInvalidated", eff);
367
- scheduler.schedule(eff);
368
- },
369
- run() {
370
- if (disposed || !dirty) return;
371
- dirty = false;
372
- const previousCleanup = cleanup;
373
- cleanup = void 0;
374
- let cleanupError;
375
- if (previousCleanup) {
376
- try {
377
- previousCleanup();
378
- } catch (error) {
379
- const handled2 = owner?.handleError(error) ?? false;
380
- if (!handled2) cleanupError = error;
381
- }
382
- }
383
- cleanupDependencies(eff);
384
- const previous = getCurrentSubscriber();
385
- setCurrentSubscriber(eff);
386
- let thrown;
387
- let handled = false;
388
- if (hasDebugHooks()) invokeDebug("effectRunStart", eff);
389
- try {
390
- const result = owner ? owner.run(callback) : callback();
391
- cleanup = typeof result === "function" ? result : void 0;
392
- } catch (error) {
393
- thrown = error;
394
- handled = owner?.handleError(error) ?? false;
395
- if (!handled) throw error;
396
- } finally {
397
- setCurrentSubscriber(previous);
398
- if (hasDebugHooks()) invokeDebug("effectRunEnd", eff, thrown, handled);
399
- }
400
- if (cleanupError && !thrown) throw cleanupError;
401
- },
402
- scheduleLow() {
403
- if (disposed || dirty) return;
404
- dirty = true;
405
- scheduler.scheduleLow(eff);
406
- },
407
- dispose() {
408
- if (disposed) return;
409
- disposed = true;
410
- dirty = false;
411
- scheduler.remove(eff);
412
- const previousCleanup = cleanup;
413
- cleanup = void 0;
414
- let cleanupError;
415
- if (previousCleanup) {
416
- try {
417
- previousCleanup();
418
- } catch (error) {
419
- const handled = owner?.handleError(error) ?? false;
420
- if (!handled) cleanupError = error;
421
- }
422
- }
423
- cleanupDependencies(eff);
424
- if (hasDebugHooks()) invokeDebug("effectDisposed", eff);
425
- if (cleanupError) throw cleanupError;
426
- }
427
- };
428
- owner?.addCleanup(eff.dispose);
429
- if (hasDebugHooks()) invokeDebug("effectCreated", eff, owner);
430
- eff.run();
431
- return eff;
432
- }
433
- __name(effect, "effect");
434
- var renderEffect = effect;
435
-
436
- // packages/reactivity/src/memo.ts
437
- function memo(compute) {
438
- let cached;
439
- let dirty = true;
440
- let disposed = false;
441
- const subscribers = /* @__PURE__ */ new Set();
442
- const memoSubscriber = {
443
- dependencies: /* @__PURE__ */ new Set(),
444
- get disposed() {
445
- return disposed;
446
- },
447
- notify() {
448
- if (disposed || dirty) return;
449
- dirty = true;
450
- if (hasDebugHooks()) invokeDebug("memoInvalidated", memoSignal);
451
- for (const subscriber of [...subscribers]) subscriber.notify();
452
- }
453
- };
454
- const memoSignal = {
455
- get value() {
456
- const subscriber = getCurrentSubscriber();
457
- if (subscriber && !subscriber.disposed) {
458
- subscribers.add(subscriber);
459
- trackDependency(memoSignal);
460
- }
461
- if (dirty) {
462
- cleanupDependencies(memoSubscriber);
463
- const previous = getCurrentSubscriber();
464
- setCurrentSubscriber(memoSubscriber);
465
- try {
466
- cached = compute();
467
- dirty = false;
468
- } finally {
469
- setCurrentSubscriber(previous);
470
- }
471
- }
472
- return cached;
473
- },
474
- set value(_) {
475
- throw new Error("memo: \u6D3E\u751F\u503C\u4E0D\u80FD\u76F4\u63A5\u8D4B\u503C");
476
- },
477
- unsubscribe(subscriber) {
478
- subscribers.delete(subscriber);
479
- },
480
- dispose() {
481
- if (disposed) return;
482
- disposed = true;
483
- subscribers.clear();
484
- cleanupDependencies(memoSubscriber);
485
- if (hasDebugHooks()) invokeDebug("signalDisposed", memoSignal);
486
- }
487
- };
488
- const owner = getCurrentOwner();
489
- owner?.addCleanup(memoSignal.dispose);
490
- if (hasDebugHooks()) {
491
- invokeDebug("signalCreated", memoSignal, owner);
492
- invokeDebug("memoCreated", memoSignal, memoSubscriber, owner);
493
- }
494
- return memoSignal;
495
- }
496
- __name(memo, "memo");
497
-
498
- // packages/reactivity/src/id.ts
499
- var rootCounters = /* @__PURE__ */ new WeakMap();
500
- var detachedCounter = 0;
501
- function createId(prefix = "vobs") {
502
- const owner = getCurrentOwner();
503
- let root = owner;
504
- while (root?.parent) root = root.parent;
505
- const counter = root ? (rootCounters.get(root) ?? 0) + 1 : ++detachedCounter;
506
- if (root) rootCounters.set(root, counter);
507
- const normalized = String(prefix).trim().replace(/[^a-zA-Z0-9_-]+/g, "-") || "vobs";
508
- return `${normalized}-${counter.toString(36)}`;
509
- }
510
- __name(createId, "createId");
511
- var useId = createId;
512
-
513
- // packages/dom/src/renderer.ts
514
- function createDOMRenderer() {
515
- return {
516
- createText(content) {
517
- return document.createTextNode(content);
518
- },
519
- createElement(tag) {
520
- return document.createElement(tag);
521
- },
522
- createComment(content) {
523
- return document.createComment(content);
524
- },
525
- insertBefore(parent, child, anchor) {
526
- parent.insertBefore(child, anchor);
527
- },
528
- removeChild(parent, child) {
529
- parent.removeChild(child);
530
- },
531
- setTextContent(node, content) {
532
- node.textContent = content;
533
- },
534
- setProperty(node, key, value) {
535
- Reflect.set(node, key, value);
536
- },
537
- setAttribute(node, key, value) {
538
- node.setAttribute(key, value);
539
- },
540
- addEventListener(node, event, handler) {
541
- node.addEventListener(event, handler);
542
- },
543
- removeEventListener(node, event, handler) {
544
- node.removeEventListener(event, handler);
545
- },
546
- nextSibling(node) {
547
- return node.nextSibling;
548
- },
549
- clear(container) {
550
- container.textContent = "";
551
- }
552
- };
553
- }
554
- __name(createDOMRenderer, "createDOMRenderer");
555
-
556
- // packages/runtime/src/debug.ts
557
- var activeRuntimeDebugHooks = null;
558
- var activeRuntimeDebugContext = null;
559
- function setRuntimeDebugHooks(hooks) {
560
- const previous = activeRuntimeDebugHooks;
561
- activeRuntimeDebugHooks = hooks;
562
- return previous;
563
- }
564
- __name(setRuntimeDebugHooks, "setRuntimeDebugHooks");
565
- function getRuntimeDebugHooks() {
566
- return activeRuntimeDebugHooks;
567
- }
568
- __name(getRuntimeDebugHooks, "getRuntimeDebugHooks");
569
- function getRuntimeDebugContext() {
570
- return activeRuntimeDebugContext;
571
- }
572
- __name(getRuntimeDebugContext, "getRuntimeDebugContext");
573
- function runWithRuntimeDebugContext(context, task) {
574
- const previous = activeRuntimeDebugContext;
575
- const next = { ...previous, ...context };
576
- activeRuntimeDebugContext = next;
577
- let result;
578
- try {
579
- result = task();
580
- } catch (error) {
581
- activeRuntimeDebugContext = previous;
582
- throw error;
583
- }
584
- if (isPromiseLike(result)) {
585
- return Promise.resolve(result).finally(() => {
586
- if (activeRuntimeDebugContext === next) activeRuntimeDebugContext = previous;
587
- });
588
- }
589
- activeRuntimeDebugContext = previous;
590
- return result;
591
- }
592
- __name(runWithRuntimeDebugContext, "runWithRuntimeDebugContext");
593
- function pushRuntimeDebugContext(context) {
594
- const previous = activeRuntimeDebugContext;
595
- activeRuntimeDebugContext = { ...previous, ...context };
596
- let restored = false;
597
- return () => {
598
- if (restored) return;
599
- restored = true;
600
- activeRuntimeDebugContext = previous;
601
- };
602
- }
603
- __name(pushRuntimeDebugContext, "pushRuntimeDebugContext");
604
- function invokeRuntimeDebug(name, ...args) {
605
- const callback = activeRuntimeDebugHooks?.[name];
606
- if (!callback) return;
607
- try {
608
- callback(...args);
609
- } catch {
610
- }
611
- }
612
- __name(invokeRuntimeDebug, "invokeRuntimeDebug");
613
- function readDebugValue(read) {
614
- try {
615
- return read();
616
- } catch {
617
- return "[Uninspectable]";
618
- }
619
- }
620
- __name(readDebugValue, "readDebugValue");
621
- function isPromiseLike(value) {
622
- return Boolean(value) && (typeof value === "object" || typeof value === "function") && typeof value.then === "function";
623
- }
624
- __name(isPromiseLike, "isPromiseLike");
625
- function describeDebugNode(node) {
626
- if (!node || typeof node !== "object") return "node";
627
- const value = node;
628
- const name = typeof value.tagName === "string" ? value.tagName.toLowerCase() : typeof value.nodeName === "string" ? value.nodeName.toLowerCase() : "node";
629
- const id = typeof value.id === "string" && value.id ? `#${value.id}` : "";
630
- const className = typeof value.className === "string" && value.className ? `.${value.className.trim().split(/\s+/).filter(Boolean).join(".")}` : "";
631
- return `${name}${id}${className}`;
632
- }
633
- __name(describeDebugNode, "describeDebugNode");
634
-
635
- // packages/runtime/src/hmr.ts
636
- var globalTarget = globalThis;
637
- var hmrGlobal = globalTarget.__VOBS_HMR__ ?? { modules: /* @__PURE__ */ new Map() };
638
- globalTarget.__VOBS_HMR__ = hmrGlobal;
639
- function resolveComponent(component, moduleId, exportName) {
640
- const module = getModule(moduleId);
641
- const existing = module.components.get(exportName);
642
- if (existing) return existing;
643
- const proxy = /* @__PURE__ */ __name(((props) => {
644
- const current = proxy.current;
645
- return current(props);
646
- }), "proxy");
647
- proxy.current = component;
648
- Object.defineProperties(proxy, {
649
- displayName: { configurable: true, value: component.name || exportName },
650
- hmrKey: { configurable: false, value: `${moduleId}:${exportName}` }
651
- });
652
- module.components.set(exportName, proxy);
653
- return proxy;
654
- }
655
- __name(resolveComponent, "resolveComponent");
656
- function updateHmrModule(_moduleId, nextModule) {
657
- const modules = [...hmrGlobal.modules.values()];
658
- for (const module of modules) {
659
- let changed = false;
660
- for (const [name, proxy] of module.components) {
661
- const next = nextModule[name];
662
- if (typeof next !== "function") continue;
663
- const hmrProxy = proxy;
664
- hmrProxy.current = next;
665
- Object.defineProperty(hmrProxy, "displayName", { configurable: true, value: next.name || name });
666
- changed = true;
667
- }
668
- if (!changed) continue;
669
- for (const instance of module.instances) {
670
- try {
671
- instance.refresh();
672
- } catch {
673
- }
674
- }
675
- }
676
- }
677
- __name(updateHmrModule, "updateHmrModule");
678
- function disposeHmrModule(_moduleId) {
679
- }
680
- __name(disposeHmrModule, "disposeHmrModule");
681
- function createHmrStateStore(moduleId) {
682
- const state2 = getModule(moduleId).state;
683
- return {
684
- get(key, initial) {
685
- if (!state2.has(key)) state2.set(key, typeof initial === "function" ? initial() : initial);
686
- return state2.get(key);
687
- },
688
- set(key, value) {
689
- state2.set(key, value);
690
- },
691
- has: /* @__PURE__ */ __name((key) => state2.has(key), "has"),
692
- delete: /* @__PURE__ */ __name((key) => {
693
- state2.delete(key);
694
- }, "delete"),
695
- clear: /* @__PURE__ */ __name(() => {
696
- state2.clear();
697
- }, "clear")
698
- };
699
- }
700
- __name(createHmrStateStore, "createHmrStateStore");
701
- function registerHmrInstance(moduleId, instance) {
702
- const instances = getModule(moduleId).instances;
703
- instances.add(instance);
704
- return () => instances.delete(instance);
705
- }
706
- __name(registerHmrInstance, "registerHmrInstance");
707
- function markHmrInstanceMounted(node, parent) {
708
- const instance = hmrInstances.get(node);
709
- if (instance) instance.parent = parent;
710
- }
711
- __name(markHmrInstanceMounted, "markHmrInstanceMounted");
712
- function getModule(moduleId) {
713
- let module = hmrGlobal.modules.get(moduleId);
714
- if (!module) {
715
- module = { components: /* @__PURE__ */ new Map(), state: /* @__PURE__ */ new Map(), instances: /* @__PURE__ */ new Set() };
716
- hmrGlobal.modules.set(moduleId, module);
717
- }
718
- return module;
719
- }
720
- __name(getModule, "getModule");
721
- var hmrInstances = /* @__PURE__ */ new WeakMap();
722
- function associateHmrInstance(node, instance) {
723
- hmrInstances.set(node, instance);
724
- }
725
- __name(associateHmrInstance, "associateHmrInstance");
726
-
727
- // packages/runtime/src/ref.ts
728
- function ref(initialValue = null) {
729
- return { current: initialValue };
730
- }
731
- __name(ref, "ref");
732
- function setRef(node, target) {
733
- if (!isRefTarget(target)) return;
734
- if (isSSRNode(node)) return;
735
- const owner = getCurrentOwner();
736
- assignRef(target, node);
737
- owner?.onDispose(() => {
738
- if (isObjectRef(target) && target.current !== node) return;
739
- assignRef(target, null);
740
- });
741
- }
742
- __name(setRef, "setRef");
743
- function isSSRNode(value) {
744
- const type = value.type;
745
- return (type === "element" || type === "text" || type === "comment") && !("nodeType" in value);
746
- }
747
- __name(isSSRNode, "isSSRNode");
748
- function isObjectRef(value) {
749
- return Boolean(value && typeof value === "object" && "current" in value);
750
- }
751
- __name(isObjectRef, "isObjectRef");
752
- function isRefTarget(value) {
753
- return isObjectRef(value) || typeof value === "function";
754
- }
755
- __name(isRefTarget, "isRefTarget");
756
- function assignRef(target, value) {
757
- try {
758
- if (typeof target === "function") target(value);
759
- else target.current = value;
760
- } catch {
761
- }
762
- }
763
- __name(assignRef, "assignRef");
764
-
765
- // packages/runtime/src/ops.ts
766
- var currentRenderer = null;
767
- var nodeOwners = /* @__PURE__ */ new WeakMap();
768
- var eventBindings = /* @__PURE__ */ new WeakMap();
769
- function setRenderer(renderer) {
770
- currentRenderer = renderer;
771
- }
772
- __name(setRenderer, "setRenderer");
773
- function getRenderer() {
774
- if (!currentRenderer) {
775
- throw new Error("\u6E32\u67D3\u5668\u672A\u521D\u59CB\u5316");
776
- }
777
- return currentRenderer;
778
- }
779
- __name(getRenderer, "getRenderer");
780
- function createText(content) {
781
- return getRenderer().createText(content);
782
- }
783
- __name(createText, "createText");
784
- function createElement(tag) {
785
- return getRenderer().createElement(tag);
786
- }
787
- __name(createElement, "createElement");
788
- function createComment(content) {
789
- return getRenderer().createComment(content);
790
- }
791
- __name(createComment, "createComment");
792
- function insertBefore(parent, child, anchor) {
793
- if (isVobsFragment(child)) {
794
- child.mount(parent, isVobsFragment(anchor) ? anchor.start : anchor);
795
- return;
796
- }
797
- getRenderer().insertBefore(parent, child, isVobsFragment(anchor) ? anchor.start : anchor);
798
- markHmrInstanceMounted(child, parent);
799
- if (getRuntimeDebugHooks()) {
800
- invokeRuntimeDebug("domMutation", {
801
- operation: "insert",
802
- target: describeDebugNode(child),
803
- parent: describeDebugNode(parent)
804
- });
805
- }
806
- }
807
- __name(insertBefore, "insertBefore");
808
- function removeChild(parent, child) {
809
- disposeNodeOwner(child);
810
- if (isVobsFragment(child)) {
811
- child.unmount(parent);
812
- return;
813
- }
814
- getRenderer().removeChild(parent, child);
815
- if (getRuntimeDebugHooks()) {
816
- invokeRuntimeDebug("domMutation", {
817
- operation: "remove",
818
- target: describeDebugNode(child),
819
- parent: describeDebugNode(parent)
820
- });
821
- }
822
- }
823
- __name(removeChild, "removeChild");
824
- function setTextContent(node, content) {
825
- const previousValue = getRuntimeDebugHooks() ? readDebugValue(() => node.textContent) : void 0;
826
- getRenderer().setTextContent(node, content);
827
- if (getRuntimeDebugHooks()) {
828
- invokeRuntimeDebug("domMutation", {
829
- operation: "text",
830
- target: describeDebugNode(node),
831
- previousValue,
832
- nextValue: content
833
- });
834
- }
835
- }
836
- __name(setTextContent, "setTextContent");
837
- function setProperty(node, key, value) {
838
- const previousValue = getRuntimeDebugHooks() ? readDebugValue(() => Reflect.get(node, key)) : void 0;
839
- getRenderer().setProperty(node, key, value);
840
- if (getRuntimeDebugHooks()) {
841
- invokeRuntimeDebug("domMutation", {
842
- operation: "property",
843
- target: describeDebugNode(node),
844
- key,
845
- previousValue,
846
- nextValue: value
847
- });
848
- }
849
- }
850
- __name(setProperty, "setProperty");
851
- function setAttribute(node, key, value) {
852
- const previousValue = getRuntimeDebugHooks() ? readDebugValue(() => typeof node.getAttribute === "function" ? node.getAttribute(key) : void 0) : void 0;
853
- getRenderer().setAttribute(node, key, value);
854
- if (getRuntimeDebugHooks()) {
855
- invokeRuntimeDebug("domMutation", {
856
- operation: "attribute",
857
- target: describeDebugNode(node),
858
- key,
859
- previousValue,
860
- nextValue: value
861
- });
862
- }
863
- }
864
- __name(setAttribute, "setAttribute");
865
- function spreadProps(node, props) {
866
- for (const [key, value] of Object.entries(props)) {
867
- if (key === "key" || value === null || value === void 0) continue;
868
- if (key === "ref") {
869
- setRef(node, value);
870
- continue;
871
- }
872
- if (key.startsWith("on") && typeof value === "function") addEventListener(node, key.slice(2).toLowerCase(), value);
873
- else if (isPropertyKey(key)) setProperty(node, key, value);
874
- else if (value === false) continue;
875
- else setAttribute(node, key === "className" ? "class" : key, key === "style" && isStyleObject(value) ? formatStyle(value) : String(value));
876
- }
877
- }
878
- __name(spreadProps, "spreadProps");
879
- function setStaticProps(node, props) {
880
- for (const [key, value] of Object.entries(props)) {
881
- if (key === "key" || key === "ref" || key.startsWith("on")) continue;
882
- if (value === null || value === void 0) continue;
883
- if (isPropertyKey(key)) setProperty(node, key, value);
884
- else if (value === false) continue;
885
- else setAttribute(node, key === "className" ? "class" : key, key === "style" && isStyleObject(value) ? formatStyle(value) : String(value));
886
- }
887
- }
888
- __name(setStaticProps, "setStaticProps");
889
- function isPropertyKey(key) {
890
- return key === "value" || key === "checked" || key === "selected" || key === "disabled" || key === "multiple" || key === "readOnly" || key === "required" || key === "autofocus" || key === "hidden" || key === "tabIndex";
891
- }
892
- __name(isPropertyKey, "isPropertyKey");
893
- function isStyleObject(value) {
894
- return Boolean(value) && typeof value === "object" && !Array.isArray(value);
895
- }
896
- __name(isStyleObject, "isStyleObject");
897
- function formatStyle(value) {
898
- return Object.entries(value).filter(([, entry]) => entry !== null && entry !== void 0 && entry !== false).map(([key, entry]) => `${key.replace(/[A-Z]/gu, (match) => `-${match.toLowerCase()}`)}:${String(entry)}`).join(";");
899
- }
900
- __name(formatStyle, "formatStyle");
901
- function addEventListener(node, event, handler) {
902
- const renderer = getRenderer();
903
- const owner = getCurrentOwner();
904
- let bindings = eventBindings.get(node);
905
- if (!bindings) {
906
- bindings = /* @__PURE__ */ new Map();
907
- eventBindings.set(node, bindings);
908
- }
909
- const previous = bindings.get(event);
910
- if (previous && previous.original === handler && previous.owner === owner) return;
911
- if (previous) renderer.removeEventListener(node, event, previous.handler);
912
- const listener = owner ? (reason) => {
913
- try {
914
- owner.run(() => handler(reason));
915
- } catch (error) {
916
- const handled = owner.handleError(error);
917
- invokeRuntimeDebug("error", {
918
- error,
919
- owner,
920
- phase: "event",
921
- handled,
922
- recovery: handled ? "handled" : "propagated"
923
- });
924
- if (!handled) throw error;
925
- }
926
- } : handler;
927
- const binding = { handler: listener, owner, original: handler };
928
- bindings.set(event, binding);
929
- renderer.addEventListener(node, event, listener);
930
- owner?.onDispose(() => {
931
- if (bindings?.get(event) !== binding) return;
932
- bindings.delete(event);
933
- renderer.removeEventListener(node, event, listener);
934
- });
935
- }
936
- __name(addEventListener, "addEventListener");
937
- function removeEventListener(node, event, handler) {
938
- const renderer = getRenderer();
939
- const binding = eventBindings.get(node)?.get(event);
940
- renderer.removeEventListener(node, event, binding?.handler ?? handler);
941
- eventBindings.get(node)?.delete(event);
942
- }
943
- __name(removeEventListener, "removeEventListener");
944
- function clear(container) {
945
- getRenderer().clear(container);
946
- }
947
- __name(clear, "clear");
948
- function createComponent(component, props, source) {
949
- const owner = createOwner();
950
- const componentName = component.displayName || component.name || "anonymous";
951
- setOwnerDebugName(owner, source ? `${componentName} (${source.file}:${source.line}:${source.column})` : componentName);
952
- owner.onError((reason) => {
953
- attachSourceLocation(reason, source);
954
- attachComponentContext(reason, componentName, owner.id);
955
- throw reason;
956
- });
957
- let node;
958
- try {
959
- node = owner.run(() => component(props));
960
- } catch (error) {
961
- owner.dispose();
962
- attachSourceLocation(error, source);
963
- attachComponentContext(error, componentName, owner.id);
964
- throw error;
965
- }
966
- associateNodeOwner(node, owner);
967
- const hmrKey = component.hmrKey;
968
- if (hmrKey) {
969
- const instance = {
970
- node,
971
- parent: null,
972
- refresh() {
973
- const previous = instance.node;
974
- const next = owner.run(() => component(props));
975
- if (instance.parent && !isVobsFragment(previous) && !isVobsFragment(next)) {
976
- getRenderer().insertBefore(instance.parent, next, previous);
977
- getRenderer().removeChild(instance.parent, previous);
978
- }
979
- nodeOwners.delete(previous);
980
- nodeOwners.set(next, owner);
981
- associateHmrInstance(next, instance);
982
- instance.node = next;
983
- }
984
- };
985
- associateHmrInstance(node, instance);
986
- const separator = hmrKey.lastIndexOf(":");
987
- const moduleId = separator < 0 ? hmrKey : hmrKey.slice(0, separator);
988
- const cleanup = registerHmrInstance(moduleId, instance);
989
- owner.onDispose(cleanup);
990
- }
991
- return node;
992
- }
993
- __name(createComponent, "createComponent");
994
- function attachSourceLocation(reason, source) {
995
- if (!source || (!reason || typeof reason !== "object" && typeof reason !== "function")) return;
996
- const error = reason;
997
- if (error.vobsSource) return;
998
- try {
999
- Object.defineProperty(error, "vobsSource", {
1000
- configurable: true,
1001
- enumerable: false,
1002
- value: source,
1003
- writable: false
1004
- });
1005
- } catch {
1006
- }
1007
- }
1008
- __name(attachSourceLocation, "attachSourceLocation");
1009
- function attachComponentContext(reason, component, ownerId) {
1010
- if (!reason || typeof reason !== "object" && typeof reason !== "function") return;
1011
- const error = reason;
1012
- try {
1013
- if (!error.vobsComponent) Object.defineProperty(error, "vobsComponent", { configurable: true, enumerable: false, value: component, writable: false });
1014
- if (!error.vobsOwnerId) Object.defineProperty(error, "vobsOwnerId", { configurable: true, enumerable: false, value: ownerId, writable: false });
1015
- } catch {
1016
- }
1017
- }
1018
- __name(attachComponentContext, "attachComponentContext");
1019
- function createBlock(factory) {
1020
- const owner = createOwner();
1021
- setOwnerDebugName(owner, "dynamic");
1022
- let node;
1023
- try {
1024
- node = owner.run(factory);
1025
- } catch (error) {
1026
- owner.dispose();
1027
- throw error;
1028
- }
1029
- if (!node) {
1030
- owner.dispose();
1031
- return null;
1032
- }
1033
- associateNodeOwner(node, owner);
1034
- return node;
1035
- }
1036
- __name(createBlock, "createBlock");
1037
- function associateNodeOwner(node, owner) {
1038
- nodeOwners.set(node, owner);
1039
- }
1040
- __name(associateNodeOwner, "associateNodeOwner");
1041
- function disposeNodeOwner(node) {
1042
- const owner = nodeOwners.get(node);
1043
- if (!owner) return;
1044
- nodeOwners.delete(node);
1045
- owner.dispose();
1046
- }
1047
- __name(disposeNodeOwner, "disposeNodeOwner");
1048
-
1049
- // packages/runtime/src/fragment.ts
1050
- function createFragment(factory) {
1051
- const start = createComment("vobs:fragment:start");
1052
- const end = createComment("vobs:fragment:end");
1053
- let parent = null;
1054
- let initialized = false;
1055
- const owner = getCurrentOwner();
1056
- const fragment = {
1057
- kind: "vobs-fragment",
1058
- start,
1059
- end,
1060
- mount(nextParent, anchor) {
1061
- if (parent && parent !== nextParent) {
1062
- throw new Error("Vobs Fragment: \u4E0D\u80FD\u8DE8\u7236\u8282\u70B9\u79FB\u52A8 Fragment");
1063
- }
1064
- if (initialized) {
1065
- moveRange(nextParent, start, end, anchor);
1066
- return;
1067
- }
1068
- const renderer = getRenderer();
1069
- renderer.insertBefore(nextParent, start, anchor);
1070
- renderer.insertBefore(nextParent, end, anchor);
1071
- parent = nextParent;
1072
- initialized = true;
1073
- if (owner) owner.run(() => factory(nextParent, end));
1074
- else factory(nextParent, end);
1075
- },
1076
- unmount(nextParent) {
1077
- if (!initialized || parent !== nextParent) {
1078
- throw new Error("Vobs Fragment: Fragment \u4E0D\u5C5E\u4E8E\u6307\u5B9A\u7236\u8282\u70B9");
1079
- }
1080
- const renderer = getRenderer();
1081
- let current = renderer.nextSibling(start);
1082
- while (current && current !== end) {
1083
- const next = renderer.nextSibling(current);
1084
- renderer.removeChild(nextParent, current);
1085
- current = next;
1086
- }
1087
- renderer.removeChild(nextParent, start);
1088
- renderer.removeChild(nextParent, end);
1089
- parent = null;
1090
- initialized = false;
1091
- }
1092
- };
1093
- return fragment;
1094
- }
1095
- __name(createFragment, "createFragment");
1096
- function isVobsFragment(value) {
1097
- return Boolean(value) && typeof value === "object" && value.kind === "vobs-fragment";
1098
- }
1099
- __name(isVobsFragment, "isVobsFragment");
1100
- function moveRange(parent, start, end, anchor) {
1101
- const renderer = getRenderer();
1102
- const nodes = [start];
1103
- let current = renderer.nextSibling(start);
1104
- while (current) {
1105
- nodes.push(current);
1106
- if (current === end) break;
1107
- current = renderer.nextSibling(current);
1108
- }
1109
- if (nodes[nodes.length - 1] !== end) {
1110
- throw new Error("Vobs Fragment: \u627E\u4E0D\u5230\u7ED3\u675F\u951A\u70B9");
1111
- }
1112
- for (const node of nodes) renderer.insertBefore(parent, node, anchor);
1113
- }
1114
- __name(moveRange, "moveRange");
1115
-
1116
- // packages/runtime/src/bind.ts
1117
- function readSource(source) {
1118
- return typeof source === "function" ? source() : source.value;
1119
- }
1120
- __name(readSource, "readSource");
1121
- function bindText(node, source) {
1122
- effect(() => {
1123
- const value = readSource(source);
1124
- setTextContent(node, value === null || value === void 0 || typeof value === "boolean" ? "" : String(value));
1125
- });
1126
- }
1127
- __name(bindText, "bindText");
1128
- function bindAttribute(node, key, source) {
1129
- effect(() => {
1130
- const value = readSource(source);
1131
- 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));
1132
- });
1133
- }
1134
- __name(bindAttribute, "bindAttribute");
1135
- function bindProperty(node, key, source) {
1136
- effect(() => {
1137
- setProperty(node, key, readSource(source));
1138
- });
1139
- }
1140
- __name(bindProperty, "bindProperty");
1141
-
1142
- // packages/runtime/src/dynamic.ts
1143
- function insertDynamic(parent, anchor, factory) {
1144
- const marker = createComment("vobs:dynamic");
1145
- insertBefore(parent, marker, anchor);
1146
- let current = null;
1147
- effect(() => {
1148
- const next = createBlock(factory);
1149
- if (next === current) return;
1150
- if (current) removeChild(parent, current);
1151
- current = next;
1152
- if (current) insertBefore(parent, current, marker);
1153
- });
1154
- }
1155
- __name(insertDynamic, "insertDynamic");
1156
- function insertDynamicValue(parent, anchor, factory) {
1157
- const marker = createComment("vobs:value");
1158
- insertBefore(parent, marker, anchor);
1159
- let current = null;
1160
- let scope = null;
1161
- effect(() => {
1162
- const nextScope = createOwner();
1163
- const next = nextScope.run(() => normalizeDynamicChild(factory()));
1164
- if (next === current) {
1165
- nextScope.dispose();
1166
- return;
1167
- }
1168
- if (current) removeChild(parent, current);
1169
- scope?.dispose();
1170
- scope = nextScope;
1171
- current = next;
1172
- if (current) insertBefore(parent, current, marker);
1173
- });
1174
- }
1175
- __name(insertDynamicValue, "insertDynamicValue");
1176
- function normalizeDynamicChild(value) {
1177
- if (value === null || value === void 0 || typeof value === "boolean") return null;
1178
- if (typeof value === "string" || typeof value === "number") return createText(String(value));
1179
- if (isVobsFragment(value) || isHostNode(value)) return value;
1180
- if (Array.isArray(value)) {
1181
- const children = value;
1182
- if (children.length === 0) return null;
1183
- return createFragment((parent, anchor) => {
1184
- for (const child of children) {
1185
- const node = normalizeDynamicChild(child);
1186
- if (node) insertBefore(parent, node, anchor);
1187
- }
1188
- });
1189
- }
1190
- return null;
1191
- }
1192
- __name(normalizeDynamicChild, "normalizeDynamicChild");
1193
- function isHostNode(value) {
1194
- return Boolean(value && typeof value === "object" && ("nodeType" in value || (value.type === "element" || value.type === "text" || value.type === "comment")));
1195
- }
1196
- __name(isHostNode, "isHostNode");
1197
- function insertList(parent, anchor, source, renderItem, keyOf) {
1198
- const marker = createComment("vobs:list");
1199
- insertBefore(parent, marker, anchor);
1200
- let entries = [];
1201
- const tracksIndex = renderItem.length >= 2;
1202
- effect(() => {
1203
- const items = source();
1204
- let keys = null;
1205
- if (keyOf) {
1206
- keys = new Array(items.length);
1207
- let allKeyed = items.length > 0;
1208
- for (let index = 0; index < items.length; index++) {
1209
- const key = keyOf(items[index], index);
1210
- if (key == null) {
1211
- allKeyed = false;
1212
- break;
1213
- }
1214
- keys[index] = key;
1215
- }
1216
- if (!allKeyed) keys = null;
1217
- }
1218
- const nextEntries = keys ? reconcileKeyed(items, keys, entries, renderItem) : reconcileIndexed(items, entries, renderItem);
1219
- const refreshed = tracksIndex ? /* @__PURE__ */ new Set() : null;
1220
- for (let index = 0; index < nextEntries.length; index++) {
1221
- const entry = nextEntries[index];
1222
- if (tracksIndex) {
1223
- if (entry.index !== index) {
1224
- refreshListEntry(parent, entry, index, renderItem);
1225
- refreshed.add(entry);
1226
- }
1227
- } else {
1228
- entry.index = index;
1229
- }
1230
- }
1231
- const retained = new Set(nextEntries);
1232
- for (const entry of entries) {
1233
- if (!retained.has(entry)) disposeEntry(parent, entry);
1234
- }
1235
- reorderListEntries(parent, marker, entries, nextEntries, refreshed);
1236
- entries = nextEntries;
1237
- });
1238
- }
1239
- __name(insertList, "insertList");
1240
- function reorderListEntries(parent, marker, previous, nextEntries, forceInsert) {
1241
- const count = nextEntries.length;
1242
- if (count === 0) return;
1243
- if (previous.length === 0) {
1244
- let reference2 = marker;
1245
- for (let index = count - 1; index >= 0; index--) {
1246
- const node = nextEntries[index].node;
1247
- insertBefore(parent, node, reference2);
1248
- reference2 = node;
1249
- }
1250
- return;
1251
- }
1252
- const oldIndexOf = /* @__PURE__ */ new Map();
1253
- for (let index = 0; index < previous.length; index++) oldIndexOf.set(previous[index], index);
1254
- const seq = new Array(count);
1255
- for (let index = 0; index < count; index++) {
1256
- const entry = nextEntries[index];
1257
- seq[index] = forceInsert?.has(entry) ? -1 : oldIndexOf.get(entry) ?? -1;
1258
- }
1259
- const keep = computeKeptByLis(seq);
1260
- let reference = marker;
1261
- for (let index = count - 1; index >= 0; index--) {
1262
- const node = nextEntries[index].node;
1263
- if (keep[index]) {
1264
- reference = node;
1265
- continue;
1266
- }
1267
- insertBefore(parent, node, reference);
1268
- reference = node;
1269
- }
1270
- }
1271
- __name(reorderListEntries, "reorderListEntries");
1272
- function computeKeptByLis(seq) {
1273
- const count = seq.length;
1274
- const keep = new Array(count).fill(false);
1275
- const tailsIndex = [];
1276
- const tailsValue = [];
1277
- const prev = new Array(count).fill(-1);
1278
- for (let i = 0; i < count; i++) {
1279
- const value = seq[i];
1280
- if (value < 0) continue;
1281
- let lo = 0;
1282
- let hi = tailsValue.length;
1283
- while (lo < hi) {
1284
- const mid = lo + hi >> 1;
1285
- if (tailsValue[mid] < value) lo = mid + 1;
1286
- else hi = mid;
1287
- }
1288
- if (lo === tailsValue.length) {
1289
- tailsValue.push(value);
1290
- tailsIndex.push(i);
1291
- } else {
1292
- tailsValue[lo] = value;
1293
- tailsIndex[lo] = i;
1294
- }
1295
- prev[i] = lo > 0 ? tailsIndex[lo - 1] : -1;
1296
- }
1297
- let cursor = tailsIndex.length > 0 ? tailsIndex[tailsIndex.length - 1] : -1;
1298
- while (cursor >= 0) {
1299
- keep[cursor] = true;
1300
- cursor = prev[cursor];
1301
- }
1302
- return keep;
1303
- }
1304
- __name(computeKeptByLis, "computeKeptByLis");
1305
- function reconcileKeyed(items, keys, entries, renderItem) {
1306
- const previous = new Map(entries.map((entry) => [entry.key, entry]));
1307
- const seen = /* @__PURE__ */ new Set();
1308
- const nextEntries = [];
1309
- for (let index = 0; index < items.length; index++) {
1310
- const item = items[index];
1311
- const key = keys[index];
1312
- if (seen.has(key)) {
1313
- console.warn(`Vobs: \u68C0\u6D4B\u5230\u91CD\u590D\u7684\u5217\u8868 key: ${String(key)}`);
1314
- }
1315
- seen.add(key);
1316
- const entry = previous.get(key);
1317
- if (entry) {
1318
- previous.delete(key);
1319
- if (isPrimitiveItem(item) && !Object.is(entry.value, item)) {
1320
- nextEntries.push(createListEntry(item, index, key, renderItem));
1321
- continue;
1322
- }
1323
- entry.item.value = item;
1324
- entry.value = item;
1325
- nextEntries.push(entry);
1326
- continue;
1327
- }
1328
- nextEntries.push(createListEntry(item, index, key, renderItem));
1329
- }
1330
- return nextEntries;
1331
- }
1332
- __name(reconcileKeyed, "reconcileKeyed");
1333
- function reconcileIndexed(items, entries, renderItem) {
1334
- const nextEntries = [];
1335
- for (let index = 0; index < items.length; index++) {
1336
- const item = items[index];
1337
- const entry = entries[index];
1338
- if (entry && isPrimitiveItem(item) && !Object.is(entry.value, item)) {
1339
- nextEntries.push(createListEntry(item, index, index, renderItem));
1340
- continue;
1341
- }
1342
- if (entry) {
1343
- entry.item.value = item;
1344
- entry.value = item;
1345
- nextEntries.push(entry);
1346
- continue;
1347
- }
1348
- nextEntries.push(createListEntry(item, index, index, renderItem));
1349
- }
1350
- return nextEntries;
1351
- }
1352
- __name(reconcileIndexed, "reconcileIndexed");
1353
- function isPrimitiveItem(item) {
1354
- return item === null || typeof item !== "object";
1355
- }
1356
- __name(isPrimitiveItem, "isPrimitiveItem");
1357
- function createListEntry(item, index, key, renderItem) {
1358
- const owner = createOwner();
1359
- let itemSignal;
1360
- let viewOwner;
1361
- let node;
1362
- owner.run(() => {
1363
- itemSignal = state(item);
1364
- viewOwner = createOwner();
1365
- node = viewOwner.run(() => renderItem(toReactiveItem(itemSignal, item), index));
1366
- });
1367
- associateNodeOwner(node, viewOwner);
1368
- return { key, node, owner, viewOwner, item: itemSignal, value: item, index };
1369
- }
1370
- __name(createListEntry, "createListEntry");
1371
- function refreshListEntry(parent, entry, index, renderItem) {
1372
- removeChild(parent, entry.node);
1373
- entry.index = index;
1374
- const previousView = entry.viewOwner;
1375
- entry.owner.run(() => {
1376
- entry.viewOwner = createOwner();
1377
- entry.node = entry.viewOwner.run(() => renderItem(
1378
- toReactiveItem(entry.item, entry.value),
1379
- index
1380
- ));
1381
- });
1382
- previousView.dispose();
1383
- associateNodeOwner(entry.node, entry.viewOwner);
1384
- }
1385
- __name(refreshListEntry, "refreshListEntry");
1386
- function toReactiveItem(item, initialValue) {
1387
- if (typeof initialValue !== "object" || initialValue === null) {
1388
- return initialValue;
1389
- }
1390
- return new Proxy(initialValue, {
1391
- get(_target, property, receiver) {
1392
- return Reflect.get(item.value, property, receiver);
1393
- },
1394
- has(_target, property) {
1395
- return property in item.value;
1396
- },
1397
- ownKeys() {
1398
- return Reflect.ownKeys(item.value);
1399
- },
1400
- getOwnPropertyDescriptor(_target, property) {
1401
- return Object.getOwnPropertyDescriptor(item.value, property);
1402
- }
1403
- });
1404
- }
1405
- __name(toReactiveItem, "toReactiveItem");
1406
- function disposeEntry(parent, entry) {
1407
- removeChild(parent, entry.node);
1408
- entry.owner.dispose();
1409
- }
1410
- __name(disposeEntry, "disposeEntry");
1411
-
1412
- // packages/runtime/src/template.ts
1413
- var templateCache = /* @__PURE__ */ new Map();
1414
- function createTemplate(html) {
1415
- let template = templateCache.get(html);
1416
- if (!template) {
1417
- template = document.createElement("template");
1418
- template.innerHTML = html;
1419
- templateCache.set(html, template);
1420
- }
1421
- return template;
1422
- }
1423
- __name(createTemplate, "createTemplate");
1424
- function cloneTemplate(template) {
1425
- const root = template.content.firstElementChild;
1426
- if (!root) throw new Error("Vobs: \u9759\u6001\u6A21\u677F\u7F3A\u5C11\u6839\u5143\u7D20\uFF0C\u8BF7\u68C0\u67E5\u7F16\u8BD1\u4EA7\u7269");
1427
- return root.cloneNode(true);
1428
- }
1429
- __name(cloneTemplate, "cloneTemplate");
1430
-
1431
- // packages/runtime/src/error.ts
1432
- var _VobsError = class _VobsError extends Error {
1433
- constructor(options) {
1434
- super(options.message);
1435
- this.name = "VobsError";
1436
- this.code = options.code;
1437
- this.severity = options.severity ?? "error";
1438
- this.layer = options.layer ?? "runtime";
1439
- this.cause = options.cause;
1440
- this.fix = options.fix;
1441
- this.location = options.location;
1442
- this.trace = options.trace;
1443
- this.example = options.example;
1444
- this.docs = options.docs;
1445
- this.codeFrame = options.codeFrame;
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 });
1446
17
  }
18
+ return to;
1447
19
  };
1448
- __name(_VobsError, "VobsError");
1449
- var VobsError = _VobsError;
1450
- function createVobsError(options) {
1451
- return new VobsError(options);
1452
- }
1453
- __name(createVobsError, "createVobsError");
1454
- function isVobsError(value) {
1455
- return value instanceof VobsError || Boolean(value && typeof value === "object" && typeof value.code === "string" && typeof value.message === "string" && typeof value.layer === "string");
1456
- }
1457
- __name(isVobsError, "isVobsError");
1458
- function normalizeVobsError(value, defaults = {}) {
1459
- if (value instanceof VobsError) return value;
1460
- if (value instanceof Error) {
1461
- const metadata = value;
1462
- const code = defaults.code ?? (typeof metadata.vobsCode === "string" ? metadata.vobsCode : void 0);
1463
- if (code) defineErrorMetadata(value, "code", code);
1464
- defineErrorMetadata(value, "severity", defaults.severity ?? "error");
1465
- defineErrorMetadata(value, "layer", defaults.layer ?? "runtime");
1466
- const fix = defaults.fix ?? (typeof metadata.vobsHint === "string" ? metadata.vobsHint : void 0);
1467
- if (fix) defineErrorMetadata(value, "fix", fix);
1468
- const source = metadata.vobsSource;
1469
- if (source && typeof source === "object" && typeof source.file === "string" && typeof source.line === "number" && typeof source.column === "number") {
1470
- defineErrorMetadata(value, "location", source);
1471
- }
1472
- return value;
1473
- }
1474
- if (isVobsError(value)) {
1475
- const candidate = value;
1476
- return new VobsError({
1477
- code: candidate.code,
1478
- message: candidate.message,
1479
- severity: candidate.severity ?? defaults.severity,
1480
- layer: candidate.layer ?? defaults.layer,
1481
- cause: candidate.cause,
1482
- fix: candidate.fix ?? defaults.fix,
1483
- location: candidate.location,
1484
- trace: candidate.trace,
1485
- example: candidate.example,
1486
- docs: candidate.docs,
1487
- codeFrame: candidate.codeFrame
1488
- });
1489
- }
1490
- const message = String(value);
1491
- return new VobsError({
1492
- code: defaults.code ?? "VOBS_UNKNOWN",
1493
- message,
1494
- severity: defaults.severity ?? "error",
1495
- layer: defaults.layer ?? "runtime",
1496
- cause: void 0,
1497
- fix: defaults.fix
1498
- });
1499
- }
1500
- __name(normalizeVobsError, "normalizeVobsError");
1501
- function defineErrorMetadata(target, key, value) {
1502
- if (key in target) return;
1503
- try {
1504
- Object.defineProperty(target, key, { configurable: true, enumerable: false, value, writable: true });
1505
- } catch {
1506
- }
1507
- }
1508
- __name(defineErrorMetadata, "defineErrorMetadata");
1509
- function formatVobsError(value, options = {}) {
1510
- const error = normalizeVobsError(value);
1511
- const code = error.code || "VOBS_UNKNOWN";
1512
- const severity = error.severity || "error";
1513
- if (options.environment === "production") return `[Vobs ${code}] ${error.message}`;
1514
- const lines = [`[Vobs ${capitalize(severity)}] ${error.message}`, `Code: ${code}`];
1515
- if (error.location) lines.push(`Location: ${error.location.file}:${error.location.line}:${error.location.column}`);
1516
- if (error.codeFrame) lines.push("", error.codeFrame);
1517
- if (error.cause !== void 0) lines.push(`Cause: ${formatCause(error.cause)}`);
1518
- if (error.trace?.length) lines.push("", `Trace: ${error.trace.join(" \u2192 ")}`);
1519
- if (error.fix) lines.push("", `Fix: ${error.fix}`);
1520
- if (error.example) lines.push("", `Example:
1521
- ${error.example}`);
1522
- if (error.docs) lines.push(`Docs: ${error.docs}`);
1523
- if (options.includeStack && error.stack) lines.push("", error.stack);
1524
- return lines.join("\n");
1525
- }
1526
- __name(formatVobsError, "formatVobsError");
1527
- function formatCause(value) {
1528
- return value instanceof Error ? `${value.name}: ${value.message}` : String(value);
1529
- }
1530
- __name(formatCause, "formatCause");
1531
- function capitalize(value) {
1532
- return value.slice(0, 1).toUpperCase() + value.slice(1);
1533
- }
1534
- __name(capitalize, "capitalize");
20
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1535
22
 
1536
- // packages/runtime/src/boundary.ts
1537
- function insertBoundary(parent, anchor, options) {
1538
- const boundary = createOwner();
1539
- boundary.run(() => {
1540
- const error = state(null);
1541
- let fallbackActive = false;
1542
- let lastError = null;
1543
- let initialized = false;
1544
- let previousKey;
1545
- boundary.onError((reason) => {
1546
- if (fallbackActive) throw reason;
1547
- const normalized = normalizeVobsError(reason, {
1548
- code: "VOBS_R001",
1549
- layer: "runtime",
1550
- fix: "\u68C0\u67E5\u7EC4\u4EF6\u6E32\u67D3\u903B\u8F91\uFF0C\u6216\u5728\u8FB9\u754C fallback \u4E2D\u63D0\u4F9B\u6062\u590D\u64CD\u4F5C\u3002"
1551
- });
1552
- lastError = normalized;
1553
- invokeRuntimeDebug("error", {
1554
- error: normalized,
1555
- owner: boundary,
1556
- phase: "boundary",
1557
- handled: true,
1558
- recovery: "fallback"
1559
- });
1560
- error.value = normalized;
1561
- });
1562
- const retry = /* @__PURE__ */ __name(() => {
1563
- if (error.value) {
1564
- invokeRuntimeDebug("error", {
1565
- error: error.value,
1566
- owner: boundary,
1567
- phase: "boundary",
1568
- handled: true,
1569
- recovery: "retrying"
1570
- });
1571
- }
1572
- error.value = null;
1573
- return options.onRetry?.();
1574
- }, "retry");
1575
- insertDynamic(parent, anchor, () => {
1576
- const nextKey = options.resetKey?.();
1577
- if (!initialized || !Object.is(previousKey, nextKey)) {
1578
- initialized = true;
1579
- previousKey = nextKey;
1580
- if (error.value) error.value = null;
1581
- }
1582
- const currentError = error.value;
1583
- if (!currentError) {
1584
- if (fallbackActive && lastError) {
1585
- invokeRuntimeDebug("error", {
1586
- error: lastError,
1587
- owner: boundary,
1588
- phase: "boundary",
1589
- handled: true,
1590
- recovery: "recovered"
1591
- });
1592
- lastError = null;
1593
- }
1594
- fallbackActive = false;
1595
- return options.children();
1596
- }
1597
- fallbackActive = true;
1598
- return options.fallback(currentError, retry);
1599
- });
1600
- });
1601
- }
1602
- __name(insertBoundary, "insertBoundary");
23
+ // packages/vobs/src/index.ts
24
+ var src_exports = {};
25
+ __export(src_exports, {
26
+ AsyncBoundary: () => import_runtime16.AsyncBoundary,
27
+ ErrorBoundary: () => import_runtime15.ErrorBoundary,
28
+ Fragment: () => Fragment,
29
+ Profiler: () => import_runtime16.Profiler,
30
+ Vobs: () => Vobs,
31
+ VobsError: () => import_runtime12.VobsError,
32
+ addEventListener: () => import_runtime7.addEventListener,
33
+ bindAttribute: () => import_runtime8.bindAttribute,
34
+ bindProperty: () => import_runtime8.bindProperty,
35
+ bindText: () => import_runtime8.bindText,
36
+ clear: () => import_runtime7.clear,
37
+ cloneTemplate: () => import_runtime11.cloneTemplate,
38
+ createComment: () => import_runtime7.createComment,
39
+ createComponent: () => import_runtime7.createComponent,
40
+ createDOMRenderer: () => import_dom2.createDOMRenderer,
41
+ createElement: () => import_runtime7.createElement,
42
+ createFragment: () => import_runtime7.createFragment,
43
+ createHmrStateStore: () => import_runtime13.createHmrStateStore,
44
+ createInjectionKey: () => createInjectionKey,
45
+ createTemplate: () => import_runtime11.createTemplate,
46
+ createText: () => import_runtime7.createText,
47
+ createVobs: () => createVobs,
48
+ createVobsError: () => import_runtime12.createVobsError,
49
+ disposeHmrModule: () => import_runtime13.disposeHmrModule,
50
+ disposeNodeOwner: () => import_runtime7.disposeNodeOwner,
51
+ formatVobsError: () => import_runtime12.formatVobsError,
52
+ getRenderer: () => import_runtime7.getRenderer,
53
+ getRuntimeDebugContext: () => import_runtime6.getRuntimeDebugContext,
54
+ getRuntimeDebugHooks: () => import_runtime6.getRuntimeDebugHooks,
55
+ inject: () => inject,
56
+ injectRequired: () => injectRequired,
57
+ insertAsyncBoundary: () => import_runtime16.insertAsyncBoundary,
58
+ insertBefore: () => import_runtime7.insertBefore,
59
+ insertBoundary: () => import_runtime15.insertBoundary,
60
+ insertDynamic: () => import_runtime10.insertDynamic,
61
+ insertDynamicValue: () => import_runtime10.insertDynamicValue,
62
+ insertErrorBoundary: () => import_runtime14.insertErrorBoundary,
63
+ insertList: () => import_runtime10.insertList,
64
+ insertProfiler: () => import_runtime16.insertProfiler,
65
+ isVobsError: () => import_runtime12.isVobsError,
66
+ isVobsFragment: () => import_runtime7.isVobsFragment,
67
+ normalizeDynamicChild: () => import_runtime10.normalizeDynamicChild,
68
+ normalizeVobsError: () => import_runtime12.normalizeVobsError,
69
+ provide: () => provide,
70
+ pushRuntimeDebugContext: () => import_runtime6.pushRuntimeDebugContext,
71
+ ref: () => import_runtime9.ref,
72
+ removeChild: () => import_runtime7.removeChild,
73
+ removeEventListener: () => import_runtime7.removeEventListener,
74
+ resolveComponent: () => import_runtime13.resolveComponent,
75
+ runWithRuntimeDebugContext: () => import_runtime6.runWithRuntimeDebugContext,
76
+ setAttribute: () => import_runtime7.setAttribute,
77
+ setProperty: () => import_runtime7.setProperty,
78
+ setRef: () => import_runtime9.setRef,
79
+ setRenderer: () => import_runtime7.setRenderer,
80
+ setRuntimeDebugHooks: () => import_runtime6.setRuntimeDebugHooks,
81
+ setStaticProps: () => import_runtime7.setStaticProps,
82
+ setTextContent: () => import_runtime7.setTextContent,
83
+ spreadProps: () => import_runtime7.spreadProps,
84
+ updateHmrModule: () => import_runtime13.updateHmrModule
85
+ });
86
+ module.exports = __toCommonJS(src_exports);
87
+ __reExport(src_exports, require("@vobs/reactivity"), module.exports);
88
+ var import_dom2 = require("@vobs/dom");
89
+ var import_runtime6 = require("@vobs/runtime");
90
+ var import_runtime7 = require("@vobs/runtime");
91
+ var import_runtime8 = require("@vobs/runtime");
92
+ var import_runtime9 = require("@vobs/runtime");
93
+ var import_runtime10 = require("@vobs/runtime");
94
+ var import_runtime11 = require("@vobs/runtime");
95
+ var import_runtime12 = require("@vobs/runtime");
96
+ var import_runtime13 = require("@vobs/runtime");
97
+ var import_runtime14 = require("@vobs/runtime");
98
+ var import_runtime15 = require("@vobs/runtime");
99
+ var import_runtime16 = require("@vobs/runtime");
1603
100
 
1604
- // packages/runtime/src/error-boundary.ts
1605
- function insertErrorBoundary(parent, anchor, options) {
1606
- insertBoundary(parent, anchor, options);
1607
- }
1608
- __name(insertErrorBoundary, "insertErrorBoundary");
1609
- function ErrorBoundary(props) {
1610
- return createFragment((parent, anchor) => insertErrorBoundary(parent, anchor, props));
1611
- }
1612
- __name(ErrorBoundary, "ErrorBoundary");
1613
-
1614
- // packages/runtime/src/async-boundary.ts
1615
- function insertAsyncBoundary(parent, anchor, options) {
1616
- const boundary = createOwner();
1617
- boundary.run(() => {
1618
- const loading = state(true);
1619
- const data = state(void 0);
1620
- const resolved = state(false);
1621
- const error = state(null);
1622
- let token = 0;
1623
- let previousKey;
1624
- let initialized = false;
1625
- let fallbackActive = false;
1626
- boundary.onError((reason) => {
1627
- if (fallbackActive) throw reason;
1628
- error.value = normalizeError(reason);
1629
- loading.value = false;
1630
- });
1631
- const start = /* @__PURE__ */ __name(() => {
1632
- const current = ++token;
1633
- loading.value = true;
1634
- error.value = null;
1635
- data.value = void 0;
1636
- resolved.value = false;
1637
- let promise;
1638
- try {
1639
- promise = typeof options.promise === "function" ? options.promise() : options.promise;
1640
- } catch (reason) {
1641
- if (current === token) {
1642
- loading.value = false;
1643
- error.value = normalizeError(reason);
1644
- }
1645
- return;
1646
- }
1647
- Promise.resolve(promise).then((value) => {
1648
- if (current !== token || boundary.disposed) return;
1649
- data.value = value;
1650
- resolved.value = true;
1651
- loading.value = false;
1652
- }, (reason) => {
1653
- if (current !== token || boundary.disposed) return;
1654
- error.value = normalizeError(reason);
1655
- loading.value = false;
1656
- });
1657
- }, "start");
1658
- const retry = /* @__PURE__ */ __name(() => start(), "retry");
1659
- start();
1660
- insertDynamic(parent, anchor, () => {
1661
- const key = options.resetKey?.();
1662
- if (!initialized) {
1663
- initialized = true;
1664
- previousKey = key;
1665
- } else if (!Object.is(previousKey, key)) {
1666
- previousKey = key;
1667
- start();
1668
- }
1669
- if (loading.value) {
1670
- fallbackActive = false;
1671
- return resolveView(options.loading);
1672
- }
1673
- if (error.value) {
1674
- fallbackActive = true;
1675
- return options.fallback?.(error.value, retry) ?? null;
1676
- }
1677
- fallbackActive = false;
1678
- return resolved.value ? options.children(data.value) : resolveView(options.loading);
1679
- });
1680
- });
1681
- }
1682
- __name(insertAsyncBoundary, "insertAsyncBoundary");
1683
- function AsyncBoundary(props) {
1684
- return createFragment((parent, anchor) => insertAsyncBoundary(parent, anchor, props));
1685
- }
1686
- __name(AsyncBoundary, "AsyncBoundary");
1687
- function resolveView(view) {
1688
- if (!view) return null;
1689
- return typeof view === "function" ? view() : view;
1690
- }
1691
- __name(resolveView, "resolveView");
1692
- function normalizeError(reason) {
1693
- return reason instanceof Error ? reason : new Error(String(reason));
1694
- }
1695
- __name(normalizeError, "normalizeError");
1696
-
1697
- // packages/runtime/src/profiler.ts
1698
- function insertProfiler(parent, anchor, options) {
1699
- const profiler = createOwner();
1700
- let mounted = false;
1701
- profiler.run(() => {
1702
- insertDynamic(parent, anchor, () => {
1703
- const started = now();
1704
- const value = options.children();
1705
- const info = {
1706
- id: options.id,
1707
- phase: mounted ? "update" : "mount",
1708
- duration: Math.max(0, now() - started),
1709
- timestamp: Date.now()
1710
- };
1711
- mounted = true;
1712
- try {
1713
- options.onRender?.(info);
1714
- } catch {
1715
- }
1716
- return value;
1717
- });
1718
- });
1719
- }
1720
- __name(insertProfiler, "insertProfiler");
1721
- function Profiler(props) {
1722
- return createFragment((parent, anchor) => insertProfiler(parent, anchor, props));
1723
- }
1724
- __name(Profiler, "Profiler");
1725
- function now() {
1726
- return typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now() : Date.now();
1727
- }
1728
- __name(now, "now");
101
+ // packages/vobs/src/app.ts
102
+ var import_reactivity2 = require("@vobs/reactivity");
103
+ var import_dom = require("@vobs/dom");
104
+ var import_runtime2 = require("@vobs/runtime");
1729
105
 
1730
106
  // packages/vobs/src/context.ts
107
+ var import_reactivity = require("@vobs/reactivity");
1731
108
  var ownerProviders = /* @__PURE__ */ new WeakMap();
1732
109
  function provide(key, value, options = {}) {
1733
- const owner = getCurrentOwner();
110
+ const owner = (0, import_reactivity.getCurrentOwner)();
1734
111
  if (!owner) throw new Error("Vobs: provide \u5FC5\u987B\u5728\u7EC4\u4EF6\u6216 Owner \u4F5C\u7528\u57DF\u5185\u8C03\u7528");
1735
112
  provideToOwner(owner, key, value, options);
1736
113
  }
1737
114
  __name(provide, "provide");
1738
115
  function inject(key, fallback) {
1739
- const owner = getCurrentOwner();
116
+ const owner = (0, import_reactivity.getCurrentOwner)();
1740
117
  const value = owner ? injectFromOwner(owner, key) : void 0;
1741
118
  return value === void 0 ? fallback : value;
1742
119
  }
@@ -1780,9 +157,9 @@ function createInjectionKey(description) {
1780
157
  __name(createInjectionKey, "createInjectionKey");
1781
158
  function createVobs(config) {
1782
159
  if (!config.render) throw new Error("createVobs: render \u4E0D\u80FD\u4E3A\u7A7A");
1783
- const renderer = config.renderer ?? createDOMRenderer();
1784
- const rootOwner = createOwner();
1785
- setOwnerDebugName(rootOwner, "App");
160
+ const renderer = config.renderer ?? (0, import_dom.createDOMRenderer)();
161
+ const rootOwner = (0, import_reactivity2.createOwner)();
162
+ (0, import_reactivity2.setOwnerDebugName)(rootOwner, "App");
1786
163
  const cleanups = [];
1787
164
  const errorHandlers = /* @__PURE__ */ new Set();
1788
165
  const installed = /* @__PURE__ */ new Set();
@@ -1880,12 +257,12 @@ function createVobs(config) {
1880
257
  if (hydrating && !renderer.beginHydration) {
1881
258
  throw new Error("Vobs: \u5F53\u524D\u6E32\u67D3\u5668\u4E0D\u652F\u6301 Hydration");
1882
259
  }
1883
- setRenderer(renderer);
260
+ (0, import_runtime2.setRenderer)(renderer);
1884
261
  try {
1885
262
  if (hydrating) renderer.beginHydration?.();
1886
263
  const rootNode = rootOwner.run(config.render);
1887
264
  if (!hydrating) renderer.clear(container);
1888
- if (rootNode) insertBefore(container, rootNode, null);
265
+ if (rootNode) (0, import_runtime2.insertBefore)(container, rootNode, null);
1889
266
  if (hydrating) renderer.completeHydration?.();
1890
267
  mounted = true;
1891
268
  } catch (error) {
@@ -1917,7 +294,7 @@ function createVobs(config) {
1917
294
  update() {
1918
295
  if (destroyed) throw new Error("Vobs: \u5DF2\u9500\u6BC1\u7684\u5E94\u7528\u4E0D\u80FD\u66F4\u65B0");
1919
296
  try {
1920
- scheduler.flush();
297
+ import_reactivity2.scheduler.flush();
1921
298
  } catch (error) {
1922
299
  notifyError(error);
1923
300
  throw error;
@@ -1950,99 +327,82 @@ function createVobs(config) {
1950
327
  __name(createVobs, "createVobs");
1951
328
 
1952
329
  // packages/vobs/src/jsx-dev-runtime.ts
330
+ var import_runtime4 = require("@vobs/runtime");
1953
331
  function appendChildren(parent, children, anchor = null) {
1954
332
  if (children === void 0 || children === null) return;
1955
333
  const childArray = Array.isArray(children) ? children : [children];
1956
334
  for (const child of childArray) {
1957
- const node = normalizeDynamicChild(child);
1958
- if (node) insertBefore(parent, node, anchor);
335
+ const node = (0, import_runtime4.normalizeDynamicChild)(child);
336
+ if (node) (0, import_runtime4.insertBefore)(parent, node, anchor);
1959
337
  }
1960
338
  }
1961
339
  __name(appendChildren, "appendChildren");
1962
340
  function Fragment(props) {
1963
- return createFragment((parent, anchor) => appendChildren(parent, props?.children, anchor));
341
+ return (0, import_runtime4.createFragment)((parent, anchor) => appendChildren(parent, props?.children, anchor));
1964
342
  }
1965
343
  __name(Fragment, "Fragment");
1966
344
  var Vobs = { Fragment };
1967
-
1968
- exports.AsyncBoundary = AsyncBoundary;
1969
- exports.ErrorBoundary = ErrorBoundary;
1970
- exports.Fragment = Fragment;
1971
- exports.Profiler = Profiler;
1972
- exports.Vobs = Vobs;
1973
- exports.VobsError = VobsError;
1974
- exports.addEventListener = addEventListener;
1975
- exports.batch = batch;
1976
- exports.bindAttribute = bindAttribute;
1977
- exports.bindProperty = bindProperty;
1978
- exports.bindText = bindText;
1979
- exports.clear = clear;
1980
- exports.cloneTemplate = cloneTemplate;
1981
- exports.createComment = createComment;
1982
- exports.createComponent = createComponent;
1983
- exports.createDOMRenderer = createDOMRenderer;
1984
- exports.createElement = createElement;
1985
- exports.createFragment = createFragment;
1986
- exports.createHmrStateStore = createHmrStateStore;
1987
- exports.createId = createId;
1988
- exports.createInjectionKey = createInjectionKey;
1989
- exports.createOwner = createOwner;
1990
- exports.createTemplate = createTemplate;
1991
- exports.createText = createText;
1992
- exports.createVobs = createVobs;
1993
- exports.createVobsError = createVobsError;
1994
- exports.disposeHmrModule = disposeHmrModule;
1995
- exports.disposeNodeOwner = disposeNodeOwner;
1996
- exports.effect = effect;
1997
- exports.formatVobsError = formatVobsError;
1998
- exports.getCurrentOwner = getCurrentOwner;
1999
- exports.getDebugHooks = getDebugHooks;
2000
- exports.getOwnerDebugName = getOwnerDebugName;
2001
- exports.getRenderer = getRenderer;
2002
- exports.getRuntimeDebugContext = getRuntimeDebugContext;
2003
- exports.getRuntimeDebugHooks = getRuntimeDebugHooks;
2004
- exports.getSignalDebugName = getSignalDebugName;
2005
- exports.inject = inject;
2006
- exports.injectRequired = injectRequired;
2007
- exports.insertAsyncBoundary = insertAsyncBoundary;
2008
- exports.insertBefore = insertBefore;
2009
- exports.insertBoundary = insertBoundary;
2010
- exports.insertDynamic = insertDynamic;
2011
- exports.insertDynamicValue = insertDynamicValue;
2012
- exports.insertErrorBoundary = insertErrorBoundary;
2013
- exports.insertList = insertList;
2014
- exports.insertProfiler = insertProfiler;
2015
- exports.isVobsError = isVobsError;
2016
- exports.isVobsFragment = isVobsFragment;
2017
- exports.memo = memo;
2018
- exports.normalizeDynamicChild = normalizeDynamicChild;
2019
- exports.normalizeVobsError = normalizeVobsError;
2020
- exports.onDispose = onDispose;
2021
- exports.provide = provide;
2022
- exports.pushRuntimeDebugContext = pushRuntimeDebugContext;
2023
- exports.ref = ref;
2024
- exports.removeChild = removeChild;
2025
- exports.removeEventListener = removeEventListener;
2026
- exports.renderEffect = renderEffect;
2027
- exports.resolveComponent = resolveComponent;
2028
- exports.runWithOwner = runWithOwner;
2029
- exports.runWithRuntimeDebugContext = runWithRuntimeDebugContext;
2030
- exports.scheduleLow = scheduleLow;
2031
- exports.scheduler = scheduler;
2032
- exports.setAttribute = setAttribute;
2033
- exports.setDebugHooks = setDebugHooks;
2034
- exports.setOwnerDebugName = setOwnerDebugName;
2035
- exports.setProperty = setProperty;
2036
- exports.setRef = setRef;
2037
- exports.setRenderer = setRenderer;
2038
- exports.setRuntimeDebugHooks = setRuntimeDebugHooks;
2039
- exports.setSignalDebugName = setSignalDebugName;
2040
- exports.setStaticProps = setStaticProps;
2041
- exports.setTextContent = setTextContent;
2042
- exports.spreadProps = spreadProps;
2043
- exports.state = state;
2044
- exports.untrack = untrack;
2045
- exports.updateHmrModule = updateHmrModule;
2046
- exports.useId = useId;
2047
- //# sourceMappingURL=index.cjs.map
345
+ // Annotate the CommonJS export names for ESM import in node:
346
+ 0 && (module.exports = {
347
+ AsyncBoundary,
348
+ ErrorBoundary,
349
+ Fragment,
350
+ Profiler,
351
+ Vobs,
352
+ VobsError,
353
+ addEventListener,
354
+ bindAttribute,
355
+ bindProperty,
356
+ bindText,
357
+ clear,
358
+ cloneTemplate,
359
+ createComment,
360
+ createComponent,
361
+ createDOMRenderer,
362
+ createElement,
363
+ createFragment,
364
+ createHmrStateStore,
365
+ createInjectionKey,
366
+ createTemplate,
367
+ createText,
368
+ createVobs,
369
+ createVobsError,
370
+ disposeHmrModule,
371
+ disposeNodeOwner,
372
+ formatVobsError,
373
+ getRenderer,
374
+ getRuntimeDebugContext,
375
+ getRuntimeDebugHooks,
376
+ inject,
377
+ injectRequired,
378
+ insertAsyncBoundary,
379
+ insertBefore,
380
+ insertBoundary,
381
+ insertDynamic,
382
+ insertDynamicValue,
383
+ insertErrorBoundary,
384
+ insertList,
385
+ insertProfiler,
386
+ isVobsError,
387
+ isVobsFragment,
388
+ normalizeDynamicChild,
389
+ normalizeVobsError,
390
+ provide,
391
+ pushRuntimeDebugContext,
392
+ ref,
393
+ removeChild,
394
+ removeEventListener,
395
+ resolveComponent,
396
+ runWithRuntimeDebugContext,
397
+ setAttribute,
398
+ setProperty,
399
+ setRef,
400
+ setRenderer,
401
+ setRuntimeDebugHooks,
402
+ setStaticProps,
403
+ setTextContent,
404
+ spreadProps,
405
+ updateHmrModule,
406
+ ...require("@vobs/reactivity")
407
+ });
2048
408
  //# sourceMappingURL=index.cjs.map