@vidact/runtime 0.2.0-beta.0 → 0.2.0-beta.10
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/CHANGELOG.md +71 -0
- package/README.md +1 -1
- package/dist/actions.d.ts +32 -30
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +251 -266
- package/dist/actions.js.map +1 -1
- package/dist/async.d.ts +20 -17
- package/dist/async.d.ts.map +1 -1
- package/dist/async.js +18 -17
- package/dist/async.js.map +1 -1
- package/dist/compiled/async-resource.d.ts +9 -6
- package/dist/compiled/async-resource.d.ts.map +1 -1
- package/dist/compiled/async-resource.js +69 -77
- package/dist/compiled/async-resource.js.map +1 -1
- package/dist/compiled/core.d.ts +148 -147
- package/dist/compiled/core.d.ts.map +1 -1
- package/dist/compiled/core.js +3064 -2987
- package/dist/compiled/core.js.map +1 -1
- package/dist/compiled/types.d.ts +44 -56
- package/dist/compiled/types.d.ts.map +1 -1
- package/dist/compiled/types.js +10 -6
- package/dist/compiled/types.js.map +1 -1
- package/dist/compiled/validation.d.ts +4 -1
- package/dist/compiled/validation.d.ts.map +1 -1
- package/dist/compiled/validation.js +17 -20
- package/dist/compiled/validation.js.map +1 -1
- package/dist/component-spread.d.ts +5 -3
- package/dist/component-spread.d.ts.map +1 -1
- package/dist/component-spread.js +49 -67
- package/dist/component-spread.js.map +1 -1
- package/dist/concurrent.d.ts +20 -18
- package/dist/concurrent.d.ts.map +1 -1
- package/dist/concurrent.js +191 -210
- package/dist/concurrent.js.map +1 -1
- package/dist/direct-dom.d.ts +17 -12
- package/dist/direct-dom.d.ts.map +1 -1
- package/dist/direct-dom.js +279 -222
- package/dist/direct-dom.js.map +1 -1
- package/dist/dom/attributes.d.ts +9 -6
- package/dist/dom/attributes.d.ts.map +1 -1
- package/dist/dom/attributes.js +65 -47
- package/dist/dom/attributes.js.map +1 -1
- package/dist/dom/events.d.ts +8 -2
- package/dist/dom/events.d.ts.map +1 -1
- package/dist/dom/events.js +118 -65
- package/dist/dom/events.js.map +1 -1
- package/dist/dom/forms.d.ts +9 -6
- package/dist/dom/forms.d.ts.map +1 -1
- package/dist/dom/forms.js +152 -198
- package/dist/dom/forms.js.map +1 -1
- package/dist/dom/intrinsic.d.ts +17 -15
- package/dist/dom/intrinsic.d.ts.map +1 -1
- package/dist/dom/intrinsic.js +48 -50
- package/dist/dom/intrinsic.js.map +1 -1
- package/dist/dom/namespace.d.ts +4 -1
- package/dist/dom/namespace.d.ts.map +1 -1
- package/dist/dom/namespace.js +25 -28
- package/dist/dom/namespace.js.map +1 -1
- package/dist/dom/namespaces.d.ts +11 -8
- package/dist/dom/namespaces.d.ts.map +1 -1
- package/dist/dom/namespaces.js +14 -12
- package/dist/dom/namespaces.js.map +1 -1
- package/dist/dom/properties.d.ts +18 -16
- package/dist/dom/properties.d.ts.map +1 -1
- package/dist/dom/properties.js +273 -296
- package/dist/dom/properties.js.map +1 -1
- package/dist/dom/style-properties.d.ts +4 -1
- package/dist/dom/style-properties.d.ts.map +1 -1
- package/dist/dom/style-properties.js +49 -45
- package/dist/dom/style-properties.js.map +1 -1
- package/dist/dom/styles.d.ts +5 -2
- package/dist/dom/styles.d.ts.map +1 -1
- package/dist/dom/styles.js +47 -67
- package/dist/dom/styles.js.map +1 -1
- package/dist/dom-forms.d.ts +4 -1
- package/dist/dom-forms.d.ts.map +1 -1
- package/dist/dom-forms.js +16 -13
- package/dist/dom-forms.js.map +1 -1
- package/dist/dom-styles.d.ts +4 -1
- package/dist/dom-styles.d.ts.map +1 -1
- package/dist/dom-styles.js +10 -7
- package/dist/dom-styles.js.map +1 -1
- package/dist/framework-hydrate.d.ts +20 -17
- package/dist/framework-hydrate.d.ts.map +1 -1
- package/dist/framework-hydrate.js +128 -146
- package/dist/framework-hydrate.js.map +1 -1
- package/dist/framework-protocol.d.ts +27 -25
- package/dist/framework-protocol.d.ts.map +1 -1
- package/dist/framework-protocol.js +173 -211
- package/dist/framework-protocol.js.map +1 -1
- package/dist/framework.d.ts +34 -32
- package/dist/framework.d.ts.map +1 -1
- package/dist/framework.js +74 -93
- package/dist/framework.js.map +1 -1
- package/dist/hydrate.d.ts +11 -8
- package/dist/hydrate.d.ts.map +1 -1
- package/dist/hydrate.js +13 -9
- package/dist/hydrate.js.map +1 -1
- package/dist/hydration-bridge.d.ts +70 -58
- package/dist/hydration-bridge.d.ts.map +1 -1
- package/dist/hydration-bridge.js +77 -66
- package/dist/hydration-bridge.js.map +1 -1
- package/dist/hydration.d.ts +54 -28
- package/dist/hydration.d.ts.map +1 -1
- package/dist/hydration.js +450 -463
- package/dist/hydration.js.map +1 -1
- package/dist/index.d.ts +13 -13
- package/dist/index.js +11 -13
- package/dist/indexed-list.d.ts +8 -5
- package/dist/indexed-list.d.ts.map +1 -1
- package/dist/indexed-list.js +14 -7
- package/dist/indexed-list.js.map +1 -1
- package/dist/jsx-runtime.d.ts +10 -8
- package/dist/jsx-runtime.d.ts.map +1 -1
- package/dist/jsx-runtime.js +28 -23
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/keyed-list.d.ts +17 -14
- package/dist/keyed-list.d.ts.map +1 -1
- package/dist/keyed-list.js +244 -161
- package/dist/keyed-list.js.map +1 -1
- package/dist/metadata.d.ts +6 -3
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +131 -164
- package/dist/metadata.js.map +1 -1
- package/dist/nested-prop.d.ts +4 -2
- package/dist/nested-prop.d.ts.map +1 -1
- package/dist/nested-prop.js +17 -16
- package/dist/nested-prop.js.map +1 -1
- package/dist/profiling.d.ts +11 -8
- package/dist/profiling.d.ts.map +1 -1
- package/dist/profiling.js +17 -17
- package/dist/profiling.js.map +1 -1
- package/dist/protocol.d.ts +5 -2
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +8 -5
- package/dist/protocol.js.map +1 -1
- package/dist/raw-html.d.ts +5 -2
- package/dist/raw-html.d.ts.map +1 -1
- package/dist/raw-html.js +86 -146
- package/dist/raw-html.js.map +1 -1
- package/dist/ref.d.ts +8 -3
- package/dist/ref.d.ts.map +1 -1
- package/dist/ref.js +10 -2
- package/dist/ref.js.map +1 -1
- package/dist/renderable-protocol.d.ts +26 -8
- package/dist/renderable-protocol.d.ts.map +1 -1
- package/dist/renderable-protocol.js +30 -9
- package/dist/renderable-protocol.js.map +1 -1
- package/dist/renderable.d.ts +28 -22
- package/dist/renderable.d.ts.map +1 -1
- package/dist/renderable.js +152 -133
- package/dist/renderable.js.map +1 -1
- package/dist/retained-ui.d.ts +9 -6
- package/dist/retained-ui.d.ts.map +1 -1
- package/dist/retained-ui.js +12 -10
- package/dist/retained-ui.js.map +1 -1
- package/dist/root.d.ts +18 -15
- package/dist/root.d.ts.map +1 -1
- package/dist/root.js +73 -85
- package/dist/root.js.map +1 -1
- package/dist/scheduler.d.ts +10 -8
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +97 -105
- package/dist/scheduler.js.map +1 -1
- package/dist/server-framework.d.ts +45 -42
- package/dist/server-framework.d.ts.map +1 -1
- package/dist/server-framework.js +209 -217
- package/dist/server-framework.js.map +1 -1
- package/dist/server.d.ts +130 -128
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +603 -710
- package/dist/server.js.map +1 -1
- package/dist/shared/promise.d.ts +6 -3
- package/dist/shared/promise.d.ts.map +1 -1
- package/dist/shared/promise.js +21 -19
- package/dist/shared/promise.js.map +1 -1
- package/dist/source-mask.d.ts +10 -6
- package/dist/source-mask.d.ts.map +1 -1
- package/dist/source-mask.js +60 -63
- package/dist/source-mask.js.map +1 -1
- package/dist/spread.d.ts +5 -2
- package/dist/spread.d.ts.map +1 -1
- package/dist/spread.js +79 -99
- package/dist/spread.js.map +1 -1
- package/dist/state-slot.d.ts +29 -15
- package/dist/state-slot.d.ts.map +1 -1
- package/dist/state-slot.js +73 -42
- package/dist/state-slot.js.map +1 -1
- package/dist/testing.d.ts +9 -6
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +16 -12
- package/dist/testing.js.map +1 -1
- package/package.json +8 -7
- package/src/actions.ts +415 -0
- package/src/async.ts +78 -0
- package/src/compiled/async-resource.ts +113 -0
- package/src/compiled/core.ts +4647 -0
- package/src/compiled/types.ts +96 -0
- package/src/compiled/validation.ts +23 -0
- package/src/component-spread.ts +86 -0
- package/src/concurrent.ts +310 -0
- package/src/direct-dom.ts +491 -0
- package/src/dom/attributes.ts +55 -0
- package/src/dom/events.ts +179 -0
- package/src/dom/forms.ts +220 -0
- package/src/dom/intrinsic.ts +94 -0
- package/src/dom/namespace.ts +30 -0
- package/src/dom/namespaces.ts +14 -0
- package/src/dom/properties.ts +355 -0
- package/src/dom/style-properties.ts +46 -0
- package/src/dom/styles.ts +86 -0
- package/src/dom-forms.ts +23 -0
- package/src/dom-styles.ts +11 -0
- package/src/env.d.ts +6 -0
- package/src/framework-hydrate.ts +224 -0
- package/src/framework-protocol.ts +335 -0
- package/src/framework.ts +161 -0
- package/src/hydrate.ts +38 -0
- package/src/hydration-bridge.ts +202 -0
- package/src/hydration.ts +644 -0
- package/src/index.ts +94 -0
- package/src/indexed-list.ts +20 -0
- package/src/jsx-runtime.ts +55 -0
- package/src/keyed-list.ts +379 -0
- package/src/metadata.ts +212 -0
- package/src/nested-prop.ts +27 -0
- package/src/profiling.ts +43 -0
- package/src/protocol.ts +8 -0
- package/src/raw-html.ts +206 -0
- package/src/ref.ts +13 -0
- package/src/renderable-protocol.ts +63 -0
- package/src/renderable.ts +313 -0
- package/src/retained-ui.ts +19 -0
- package/src/root.ts +122 -0
- package/src/scheduler.ts +136 -0
- package/src/server-framework.ts +397 -0
- package/src/server.ts +1160 -0
- package/src/shared/promise.ts +28 -0
- package/src/source-mask.ts +103 -0
- package/src/spread.ts +131 -0
- package/src/state-slot.ts +132 -0
- package/src/testing.ts +27 -0
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
package/dist/spread.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spread.js","
|
|
1
|
+
{"version":3,"file":"spread.js","names":["createBinding","binding"],"sources":["../src/spread.ts"],"mappings":"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"}
|
package/dist/state-slot.d.ts
CHANGED
|
@@ -1,18 +1,32 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { SourceMask } from "./source-mask.js";
|
|
2
|
+
//#region src/state-slot.d.ts
|
|
3
|
+
type StateUpdate<T> = T | ((previous: T) => T);
|
|
4
|
+
interface DeferredStateWrite<T> {
|
|
5
|
+
readonly slot: object;
|
|
6
|
+
readonly revision: number;
|
|
7
|
+
readonly update: StateUpdate<T>;
|
|
8
|
+
readonly commit: (update: StateUpdate<T>) => void;
|
|
9
|
+
readonly currentRevision: () => number;
|
|
9
10
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
type StateWriteInterceptor = <T>(write: DeferredStateWrite<T>) => boolean;
|
|
12
|
+
declare function installStateWriteInterceptor(interceptor: StateWriteInterceptor): void;
|
|
13
|
+
interface StateSlot<T> {
|
|
14
|
+
readonly get: () => T;
|
|
15
|
+
readonly set: (update: StateUpdate<T>) => void;
|
|
16
|
+
readonly replace: (value: T) => void;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
interface ReadOnlyStateInvalidationTarget {
|
|
19
|
+
readonly [1]: (sources: SourceMask) => void;
|
|
20
|
+
}
|
|
21
|
+
interface ReadOnlyStateCell<T> extends Pick<StateSlot<T>, 'get'> {
|
|
22
|
+
value: T;
|
|
23
|
+
revision?: number;
|
|
24
|
+
readonly invalidationTarget: ReadOnlyStateInvalidationTarget;
|
|
25
|
+
readonly source: SourceMask;
|
|
26
|
+
}
|
|
27
|
+
declare function createReadOnlyStateSlot<T>(invalidationTarget: ReadOnlyStateInvalidationTarget, source: SourceMask, initialValue: T): ReadOnlyStateCell<T>;
|
|
28
|
+
declare function replaceReadOnlyStateSlot<T>(cell: ReadOnlyStateCell<T>, replacement: T): void;
|
|
29
|
+
declare function createStateSlot<T>(invalidate: (sources: SourceMask) => void, source: SourceMask, initialValue: T, assertWritable?: () => void): StateSlot<T>;
|
|
30
|
+
//#endregion
|
|
31
|
+
export { DeferredStateWrite, ReadOnlyStateCell, ReadOnlyStateInvalidationTarget, StateSlot, StateUpdate, StateWriteInterceptor, createReadOnlyStateSlot, createStateSlot, installStateWriteInterceptor, replaceReadOnlyStateSlot };
|
|
18
32
|
//# sourceMappingURL=state-slot.d.ts.map
|
package/dist/state-slot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-slot.d.ts","
|
|
1
|
+
{"version":3,"file":"state-slot.d.ts","names":[],"sources":["../src/state-slot.ts"],"mappings":";;KAEY,YAAY,KAAK,MAAM,UAAU,MAAM;UAElC,mBAAmB;WACzB;WACA;WACA,QAAQ,YAAY;WACpB,SAAS,QAAQ,YAAY;WAC7B;;KAGC,yBAAyB,GAAG,OAAO,mBAAmB;iBAIlD,6BAA6B,aAAa;UAIzC,UAAU;WAChB,WAAW;WACX,MAAM,QAAQ,YAAY;WAC1B,UAAU,OAAO;;UAGX;YACL,KAAK,SAAS;;UAGT,kBAAkB,WAAW,KAAK,UAAU;EAC3D,OAAO;EACP;WACS,oBAAoB;WACpB,QAAQ;;iBAGH,wBAAwB,GACtC,oBAAoB,iCACpB,QAAQ,YACR,cAAc,IACb,kBAAkB;iBAaL,yBAAyB,GAAG,MAAM,kBAAkB,IAAI,aAAa;iBAyBrE,gBAAgB,GAC9B,aAAa,SAAS,qBACtB,QAAQ,YACR,cAAc,GACd,8BACC,UAAU"}
|
package/dist/state-slot.js
CHANGED
|
@@ -1,46 +1,77 @@
|
|
|
1
|
+
//#region src/state-slot.ts
|
|
1
2
|
let stateWriteInterceptor;
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
function installStateWriteInterceptor(interceptor) {
|
|
4
|
+
stateWriteInterceptor = interceptor;
|
|
4
5
|
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
value = next;
|
|
13
|
-
revision += 1;
|
|
14
|
-
invalidate(source);
|
|
15
|
-
};
|
|
16
|
-
const commitUpdate = (update) => {
|
|
17
|
-
const next = typeof update === 'function' ? update(value) : update;
|
|
18
|
-
commit(next);
|
|
19
|
-
};
|
|
20
|
-
const commitReplacement = (replacement) => commit(replacement);
|
|
21
|
-
const write = (update, commitWrite) => {
|
|
22
|
-
if (stateWriteInterceptor?.({
|
|
23
|
-
slot: token,
|
|
24
|
-
revision,
|
|
25
|
-
update,
|
|
26
|
-
commit: commitWrite,
|
|
27
|
-
currentRevision: () => revision,
|
|
28
|
-
})) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
commitWrite(update);
|
|
32
|
-
};
|
|
33
|
-
const replace = (next) => {
|
|
34
|
-
assertWritable?.();
|
|
35
|
-
write(next, commitReplacement);
|
|
36
|
-
};
|
|
37
|
-
return {
|
|
38
|
-
get: () => value,
|
|
39
|
-
set: (update) => {
|
|
40
|
-
assertWritable?.();
|
|
41
|
-
write(update, commitUpdate);
|
|
42
|
-
},
|
|
43
|
-
replace,
|
|
44
|
-
};
|
|
6
|
+
function createReadOnlyStateSlot(invalidationTarget, source, initialValue) {
|
|
7
|
+
return {
|
|
8
|
+
value: initialValue,
|
|
9
|
+
invalidationTarget,
|
|
10
|
+
source,
|
|
11
|
+
get: readReadOnlyState
|
|
12
|
+
};
|
|
45
13
|
}
|
|
14
|
+
function readReadOnlyState() {
|
|
15
|
+
return this.value;
|
|
16
|
+
}
|
|
17
|
+
function replaceReadOnlyStateSlot(cell, replacement) {
|
|
18
|
+
if (Object.is(cell.value, replacement)) return;
|
|
19
|
+
const revision = cell.revision ?? 0;
|
|
20
|
+
if (stateWriteInterceptor?.({
|
|
21
|
+
slot: cell,
|
|
22
|
+
revision,
|
|
23
|
+
update: replacement,
|
|
24
|
+
commit: (pending) => applyReadOnlyState(cell, pending),
|
|
25
|
+
currentRevision: () => cell.revision ?? 0
|
|
26
|
+
})) {
|
|
27
|
+
cell.revision ??= revision;
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
applyReadOnlyState(cell, replacement);
|
|
31
|
+
}
|
|
32
|
+
function applyReadOnlyState(cell, next) {
|
|
33
|
+
if (Object.is(cell.value, next)) return;
|
|
34
|
+
cell.value = next;
|
|
35
|
+
if (cell.revision !== void 0) cell.revision += 1;
|
|
36
|
+
cell.invalidationTarget[1](cell.source);
|
|
37
|
+
}
|
|
38
|
+
function createStateSlot(invalidate, source, initialValue, assertWritable) {
|
|
39
|
+
let value = initialValue;
|
|
40
|
+
let revision = 0;
|
|
41
|
+
let token;
|
|
42
|
+
const apply = (next) => {
|
|
43
|
+
if (Object.is(value, next)) return;
|
|
44
|
+
value = next;
|
|
45
|
+
revision += 1;
|
|
46
|
+
invalidate(source);
|
|
47
|
+
};
|
|
48
|
+
return {
|
|
49
|
+
get: () => value,
|
|
50
|
+
set: (update) => {
|
|
51
|
+
assertWritable?.();
|
|
52
|
+
if (stateWriteInterceptor?.({
|
|
53
|
+
slot: token ??= {},
|
|
54
|
+
revision,
|
|
55
|
+
update,
|
|
56
|
+
commit: (pending) => apply(typeof pending === "function" ? pending(value) : pending),
|
|
57
|
+
currentRevision: () => revision
|
|
58
|
+
})) return;
|
|
59
|
+
apply(typeof update === "function" ? update(value) : update);
|
|
60
|
+
},
|
|
61
|
+
replace: (replacement) => {
|
|
62
|
+
assertWritable?.();
|
|
63
|
+
if (stateWriteInterceptor?.({
|
|
64
|
+
slot: token ??= {},
|
|
65
|
+
revision,
|
|
66
|
+
update: replacement,
|
|
67
|
+
commit: (pending) => apply(pending),
|
|
68
|
+
currentRevision: () => revision
|
|
69
|
+
})) return;
|
|
70
|
+
apply(replacement);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
export { createReadOnlyStateSlot, createStateSlot, installStateWriteInterceptor, replaceReadOnlyStateSlot };
|
|
76
|
+
|
|
46
77
|
//# sourceMappingURL=state-slot.js.map
|
package/dist/state-slot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-slot.js","
|
|
1
|
+
{"version":3,"file":"state-slot.js","names":[],"sources":["../src/state-slot.ts"],"mappings":";AAcA,IAAI;AAEJ,SAAgB,6BAA6B,aAA0C;CACrF,wBAAwB;AAC1B;AAmBA,SAAgB,wBACd,oBACA,QACA,cACsB;CACtB,OAAO;EACL,OAAO;EACP;EACA;EACA,KAAK;CACP;AACF;AAEA,SAAS,oBAAoD;CAC3D,OAAO,KAAK;AACd;AAEA,SAAgB,yBAA4B,MAA4B,aAAsB;CAC5F,IAAI,OAAO,GAAG,KAAK,OAAO,WAAW,GAAG;CACxC,MAAM,WAAW,KAAK,YAAY;CAClC,IACE,wBAAwB;EACtB,MAAM;EACN;EACA,QAAQ;EACR,SAAS,YAAY,mBAAmB,MAAM,OAAY;EAC1D,uBAAuB,KAAK,YAAY;CAC1C,CAAC,GACD;EACA,KAAK,aAAa;EAClB;CACF;CACA,mBAAmB,MAAM,WAAW;AACtC;AAEA,SAAS,mBAAsB,MAA4B,MAAe;CACxE,IAAI,OAAO,GAAG,KAAK,OAAO,IAAI,GAAG;CACjC,KAAK,QAAQ;CACb,IAAI,KAAK,aAAa,KAAA,GAAW,KAAK,YAAY;CAClD,KAAK,mBAAmB,EAAE,CAAC,KAAK,MAAM;AACxC;AAEA,SAAgB,gBACd,YACA,QACA,cACA,gBACc;CACd,IAAI,QAAQ;CACZ,IAAI,WAAW;CACf,IAAI;CAEJ,MAAM,SAAS,SAAkB;EAC/B,IAAI,OAAO,GAAG,OAAO,IAAI,GAAG;EAE5B,QAAQ;EACR,YAAY;EACZ,WAAW,MAAM;CACnB;CAEA,OAAO;EACL,WAAW;EACX,MAAM,WAAW;GACf,iBAAiB;GACjB,IACE,wBAAwB;IACtB,MAAO,UAAU,CAAC;IAClB;IACA;IACA,SAAS,YACP,MAAM,OAAO,YAAY,aAAc,QAA+B,KAAK,IAAI,OAAO;IACxF,uBAAuB;GACzB,CAAC,GAED;GAEF,MAAM,OAAO,WAAW,aAAc,OAA8B,KAAK,IAAI,MAAM;EACrF;EACA,UAAU,gBAAgB;GACxB,iBAAiB;GACjB,IACE,wBAAwB;IACtB,MAAO,UAAU,CAAC;IAClB;IACA,QAAQ;IACR,SAAS,YAAY,MAAM,OAAY;IACvC,uBAAuB;GACzB,CAAC,GAED;GAEF,MAAM,WAAW;EACnB;CACF;AACF"}
|
package/dist/testing.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { readCompiledOwnerMetrics as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { readCompiledOwnerMetrics as readCompiledOwnerMetrics$1 } from "./compiled/core.js";
|
|
2
|
+
//#region src/testing.d.ts
|
|
3
|
+
declare function beginActScope(): void;
|
|
4
|
+
declare function endActScope(): void;
|
|
5
|
+
declare function flushScheduledTasks(): number;
|
|
6
|
+
declare function hasScheduledTasks(): boolean;
|
|
7
|
+
declare function readCompiledOwnerMetrics(): ReturnType<typeof readCompiledOwnerMetrics$1>;
|
|
8
|
+
//#endregion
|
|
9
|
+
export { beginActScope, endActScope, flushScheduledTasks, hasScheduledTasks, readCompiledOwnerMetrics };
|
|
7
10
|
//# sourceMappingURL=testing.d.ts.map
|
package/dist/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","
|
|
1
|
+
{"version":3,"file":"testing.d.ts","names":[],"sources":["../src/testing.ts"],"mappings":";;iBAQgB;iBAIA;iBAIA;iBAIA;iBAIA,4BAA4B,kBAAkB"}
|
package/dist/testing.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { beginActScope as beginActScope$1, endActScope as endActScope$1, flushScheduledTasks as flushScheduledTasks$1, hasScheduledTasks as hasScheduledTasks$1 } from "./scheduler.js";
|
|
2
|
+
import { readCompiledOwnerMetrics as readCompiledOwnerMetrics$1 } from "./compiled/core.js";
|
|
3
|
+
//#region src/testing.ts
|
|
4
|
+
function beginActScope() {
|
|
5
|
+
beginActScope$1();
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
function endActScope() {
|
|
8
|
+
endActScope$1();
|
|
8
9
|
}
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
function flushScheduledTasks() {
|
|
11
|
+
return flushScheduledTasks$1();
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
function hasScheduledTasks() {
|
|
14
|
+
return hasScheduledTasks$1();
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
function readCompiledOwnerMetrics() {
|
|
17
|
+
return readCompiledOwnerMetrics$1();
|
|
17
18
|
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { beginActScope, endActScope, flushScheduledTasks, hasScheduledTasks, readCompiledOwnerMetrics };
|
|
21
|
+
|
|
18
22
|
//# sourceMappingURL=testing.js.map
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","
|
|
1
|
+
{"version":3,"file":"testing.js","names":["flushSchedulerTasks","schedulerHasTasks","readOwnerMetrics"],"sources":["../src/testing.ts"],"mappings":";;;AAQA,SAAgB,gBAAsB;CACpC,gBAAuB;AACzB;AAEA,SAAgB,cAAoB;CAClC,cAAqB;AACvB;AAEA,SAAgB,sBAA8B;CAC5C,OAAOA,sBAAoB;AAC7B;AAEA,SAAgB,oBAA6B;CAC3C,OAAOC,oBAAkB;AAC3B;AAEA,SAAgB,2BAAgE;CAC9E,OAAOC,2BAAiB;AAC1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vidact/runtime",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.10",
|
|
4
4
|
"description": "Fine-grained direct-DOM runtime for compiled Vidact applications",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"compiler",
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
"CHANGELOG.md",
|
|
22
22
|
"dist",
|
|
23
23
|
"LICENSE",
|
|
24
|
-
"README.md"
|
|
24
|
+
"README.md",
|
|
25
|
+
"src"
|
|
25
26
|
],
|
|
26
27
|
"type": "module",
|
|
27
28
|
"sideEffects": [
|
|
@@ -126,16 +127,16 @@
|
|
|
126
127
|
}
|
|
127
128
|
},
|
|
128
129
|
"publishConfig": {
|
|
129
|
-
"access": "public"
|
|
130
|
-
"provenance": true
|
|
130
|
+
"access": "public"
|
|
131
131
|
},
|
|
132
132
|
"devDependencies": {
|
|
133
133
|
"@types/react": "^19.2.18",
|
|
134
134
|
"@vitest/browser-playwright": "4.1.11",
|
|
135
|
+
"tsdown": "0.22.14",
|
|
135
136
|
"typescript": "7.0.2",
|
|
136
137
|
"vitest": "4.1.11",
|
|
137
|
-
"@vidact/
|
|
138
|
-
"@vidact/
|
|
138
|
+
"@vidact/react-types": "0.2.0-beta.10",
|
|
139
|
+
"@vidact/test-support": "0.2.0-beta.10"
|
|
139
140
|
},
|
|
140
141
|
"peerDependencies": {
|
|
141
142
|
"@types/react": "^19.2.18"
|
|
@@ -144,7 +145,7 @@
|
|
|
144
145
|
"node": ">=24"
|
|
145
146
|
},
|
|
146
147
|
"scripts": {
|
|
147
|
-
"build": "
|
|
148
|
+
"build": "tsdown",
|
|
148
149
|
"test": "vitest run && vitest run --config vitest.retained-ui.config.ts && vitest run --config vitest.server.config.ts",
|
|
149
150
|
"typecheck": "tsc -p tsconfig.json"
|
|
150
151
|
}
|