kiru 0.54.4 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{appContext.d.ts → appHandle.d.ts} +4 -4
- package/dist/appHandle.d.ts.map +1 -0
- package/dist/{appContext.js → appHandle.js} +12 -9
- package/dist/appHandle.js.map +1 -0
- package/dist/components/derive.d.ts +10 -8
- package/dist/components/derive.d.ts.map +1 -1
- package/dist/components/derive.js +50 -47
- package/dist/components/derive.js.map +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +0 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/lazy.d.ts.map +1 -1
- package/dist/components/lazy.js +5 -4
- package/dist/components/lazy.js.map +1 -1
- package/dist/components/portal.d.ts.map +1 -1
- package/dist/components/portal.js +2 -3
- package/dist/components/portal.js.map +1 -1
- package/dist/components/transition.d.ts +3 -2
- package/dist/components/transition.d.ts.map +1 -1
- package/dist/components/transition.js +29 -26
- package/dist/components/transition.js.map +1 -1
- package/dist/constants.d.ts +1 -5
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +1 -5
- package/dist/constants.js.map +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +25 -19
- package/dist/context.js.map +1 -1
- package/dist/devtools.d.ts +7 -0
- package/dist/devtools.d.ts.map +1 -0
- package/dist/devtools.js +15 -0
- package/dist/devtools.js.map +1 -0
- package/dist/dom.d.ts.map +1 -1
- package/dist/dom.js +25 -58
- package/dist/dom.js.map +1 -1
- package/dist/globalContext.d.ts +15 -16
- package/dist/globalContext.d.ts.map +1 -1
- package/dist/globalContext.js +36 -46
- package/dist/globalContext.js.map +1 -1
- package/dist/globals.d.ts +1 -4
- package/dist/globals.d.ts.map +1 -1
- package/dist/globals.js +1 -4
- package/dist/globals.js.map +1 -1
- package/dist/headlessRender.d.ts +6 -0
- package/dist/headlessRender.d.ts.map +1 -0
- package/dist/{recursiveRender.js → headlessRender.js} +17 -16
- package/dist/headlessRender.js.map +1 -0
- package/dist/hmr.d.ts +5 -7
- package/dist/hmr.d.ts.map +1 -1
- package/dist/hmr.js +27 -32
- package/dist/hmr.js.map +1 -1
- package/dist/hooks/index.d.ts +3 -14
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +3 -14
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/onBeforeMount.d.ts +9 -0
- package/dist/hooks/onBeforeMount.d.ts.map +1 -0
- package/dist/hooks/onBeforeMount.js +12 -0
- package/dist/hooks/onBeforeMount.js.map +1 -0
- package/dist/hooks/onCleanup.d.ts +8 -0
- package/dist/hooks/onCleanup.d.ts.map +1 -0
- package/dist/hooks/onCleanup.js +15 -0
- package/dist/hooks/onCleanup.js.map +1 -0
- package/dist/hooks/onMount.d.ts +9 -0
- package/dist/hooks/onMount.d.ts.map +1 -0
- package/dist/hooks/onMount.js +12 -0
- package/dist/hooks/onMount.js.map +1 -0
- package/dist/hooks/utils.d.ts +2 -62
- package/dist/hooks/utils.d.ts.map +1 -1
- package/dist/hooks/utils.js +22 -144
- package/dist/hooks/utils.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/profiling.d.ts +15 -14
- package/dist/profiling.d.ts.map +1 -1
- package/dist/profiling.js +9 -4
- package/dist/profiling.js.map +1 -1
- package/dist/reconciler.d.ts.map +1 -1
- package/dist/reconciler.js +12 -25
- package/dist/reconciler.js.map +1 -1
- package/dist/ref.d.ts +4 -0
- package/dist/ref.d.ts.map +1 -0
- package/dist/ref.js +4 -0
- package/dist/ref.js.map +1 -0
- package/dist/renderToString.js +1 -1
- package/dist/renderToString.js.map +1 -1
- package/dist/router/context.d.ts.map +1 -1
- package/dist/router/context.js +1 -2
- package/dist/router/context.js.map +1 -1
- package/dist/router/fileRouter.d.ts +1 -1
- package/dist/router/fileRouter.d.ts.map +1 -1
- package/dist/router/fileRouter.js +17 -11
- package/dist/router/fileRouter.js.map +1 -1
- package/dist/router/fileRouterController.d.ts.map +1 -1
- package/dist/router/fileRouterController.js +68 -55
- package/dist/router/fileRouterController.js.map +1 -1
- package/dist/router/link.d.ts.map +1 -1
- package/dist/router/link.js +19 -23
- package/dist/router/link.js.map +1 -1
- package/dist/router/server/index.d.ts.map +1 -1
- package/dist/router/server/index.js +14 -11
- package/dist/router/server/index.js.map +1 -1
- package/dist/router/types.d.ts +11 -6
- package/dist/router/types.d.ts.map +1 -1
- package/dist/scheduler.d.ts +1 -0
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +65 -52
- package/dist/scheduler.js.map +1 -1
- package/dist/signals/base.d.ts +0 -1
- package/dist/signals/base.d.ts.map +1 -1
- package/dist/signals/base.js +13 -36
- package/dist/signals/base.js.map +1 -1
- package/dist/signals/computed.d.ts +0 -2
- package/dist/signals/computed.d.ts.map +1 -1
- package/dist/signals/computed.js +1 -40
- package/dist/signals/computed.js.map +1 -1
- package/dist/signals/effect.d.ts +15 -14
- package/dist/signals/effect.d.ts.map +1 -1
- package/dist/signals/effect.js +65 -37
- package/dist/signals/effect.js.map +1 -1
- package/dist/signals/globals.d.ts +0 -5
- package/dist/signals/globals.d.ts.map +1 -1
- package/dist/signals/globals.js +0 -6
- package/dist/signals/globals.js.map +1 -1
- package/dist/signals/index.d.ts +4 -4
- package/dist/signals/index.d.ts.map +1 -1
- package/dist/signals/index.js +4 -4
- package/dist/signals/index.js.map +1 -1
- package/dist/signals/{for.d.ts → jsx.d.ts} +8 -1
- package/dist/signals/jsx.d.ts.map +1 -0
- package/dist/signals/{for.js → jsx.js} +4 -1
- package/dist/signals/jsx.js.map +1 -0
- package/dist/signals/tracking.d.ts +23 -0
- package/dist/signals/tracking.d.ts.map +1 -0
- package/dist/signals/tracking.js +51 -0
- package/dist/signals/tracking.js.map +1 -0
- package/dist/signals/types.d.ts +1 -1
- package/dist/signals/types.d.ts.map +1 -1
- package/dist/signals/utils.d.ts +2 -1
- package/dist/signals/utils.d.ts.map +1 -1
- package/dist/signals/utils.js +9 -2
- package/dist/signals/utils.js.map +1 -1
- package/dist/ssr/client.d.ts +3 -3
- package/dist/ssr/client.d.ts.map +1 -1
- package/dist/ssr/client.js.map +1 -1
- package/dist/ssr/server.js +1 -1
- package/dist/ssr/server.js.map +1 -1
- package/dist/statefulPromise.d.ts +22 -0
- package/dist/statefulPromise.d.ts.map +1 -0
- package/dist/statefulPromise.js +94 -0
- package/dist/statefulPromise.js.map +1 -0
- package/dist/types.d.ts +35 -49
- package/dist/types.d.ts.map +1 -1
- package/dist/types.dom.d.ts +4 -7
- package/dist/types.dom.d.ts.map +1 -1
- package/dist/types.utils.d.ts +3 -4
- package/dist/types.utils.d.ts.map +1 -1
- package/dist/utils/vdom.d.ts +8 -6
- package/dist/utils/vdom.d.ts.map +1 -1
- package/dist/utils/vdom.js +32 -9
- package/dist/utils/vdom.js.map +1 -1
- package/dist/viewTransitions.d.ts +7 -0
- package/dist/viewTransitions.d.ts.map +1 -0
- package/dist/viewTransitions.js +71 -0
- package/dist/viewTransitions.js.map +1 -0
- package/package.json +1 -1
- package/src/{appContext.ts → appHandle.ts} +21 -16
- package/src/components/derive.ts +74 -69
- package/src/components/index.ts +0 -1
- package/src/components/lazy.ts +5 -4
- package/src/components/portal.ts +2 -3
- package/src/components/transition.ts +33 -35
- package/src/constants.ts +0 -8
- package/src/context.ts +30 -23
- package/src/devtools.ts +16 -0
- package/src/dom.ts +31 -65
- package/src/globalContext.ts +57 -74
- package/src/globals.ts +1 -5
- package/src/{recursiveRender.ts → headlessRender.ts} +18 -18
- package/src/hmr.ts +29 -38
- package/src/hooks/index.ts +3 -14
- package/src/hooks/onBeforeMount.ts +12 -0
- package/src/hooks/onCleanup.ts +15 -0
- package/src/hooks/onMount.ts +12 -0
- package/src/hooks/utils.ts +28 -238
- package/src/index.ts +14 -6
- package/src/profiling.ts +22 -20
- package/src/reconciler.ts +18 -30
- package/src/ref.ts +6 -0
- package/src/renderToString.ts +1 -1
- package/src/router/context.ts +1 -2
- package/src/router/fileRouter.ts +23 -13
- package/src/router/fileRouterController.ts +72 -64
- package/src/router/link.ts +11 -25
- package/src/router/server/index.ts +24 -13
- package/src/router/types.ts +15 -8
- package/src/scheduler.ts +74 -71
- package/src/signals/base.ts +12 -41
- package/src/signals/computed.ts +1 -62
- package/src/signals/effect.ts +95 -48
- package/src/signals/globals.ts +0 -7
- package/src/signals/index.ts +4 -4
- package/src/signals/{for.ts → jsx.ts} +10 -0
- package/src/signals/tracking.ts +69 -0
- package/src/signals/types.ts +1 -1
- package/src/signals/utils.ts +9 -1
- package/src/ssr/client.ts +4 -4
- package/src/ssr/server.ts +2 -2
- package/src/statefulPromise.ts +136 -0
- package/src/types.dom.ts +4 -8
- package/src/types.ts +44 -59
- package/src/types.utils.ts +3 -4
- package/src/utils/vdom.ts +44 -15
- package/src/viewTransitions.ts +88 -0
- package/dist/appContext.d.ts.map +0 -1
- package/dist/appContext.js.map +0 -1
- package/dist/components/memo.d.ts +0 -10
- package/dist/components/memo.d.ts.map +0 -1
- package/dist/components/memo.js +0 -23
- package/dist/components/memo.js.map +0 -1
- package/dist/form/index.d.ts +0 -4
- package/dist/form/index.d.ts.map +0 -1
- package/dist/form/index.js +0 -518
- package/dist/form/index.js.map +0 -1
- package/dist/form/types.d.ts +0 -122
- package/dist/form/types.d.ts.map +0 -1
- package/dist/form/types.js +0 -2
- package/dist/form/types.js.map +0 -1
- package/dist/form/utils.d.ts +0 -3
- package/dist/form/utils.d.ts.map +0 -1
- package/dist/form/utils.js +0 -16
- package/dist/form/utils.js.map +0 -1
- package/dist/hooks/useAsync.d.ts +0 -18
- package/dist/hooks/useAsync.d.ts.map +0 -1
- package/dist/hooks/useAsync.js +0 -96
- package/dist/hooks/useAsync.js.map +0 -1
- package/dist/hooks/useCallback.d.ts +0 -7
- package/dist/hooks/useCallback.d.ts.map +0 -1
- package/dist/hooks/useCallback.js +0 -30
- package/dist/hooks/useCallback.js.map +0 -1
- package/dist/hooks/useContext.d.ts +0 -7
- package/dist/hooks/useContext.d.ts.map +0 -1
- package/dist/hooks/useContext.js +0 -59
- package/dist/hooks/useContext.js.map +0 -1
- package/dist/hooks/useEffect.d.ts +0 -8
- package/dist/hooks/useEffect.d.ts.map +0 -1
- package/dist/hooks/useEffect.js +0 -34
- package/dist/hooks/useEffect.js.map +0 -1
- package/dist/hooks/useEffectEvent.d.ts +0 -8
- package/dist/hooks/useEffectEvent.d.ts.map +0 -1
- package/dist/hooks/useEffectEvent.js +0 -23
- package/dist/hooks/useEffectEvent.js.map +0 -1
- package/dist/hooks/useId.d.ts +0 -8
- package/dist/hooks/useId.d.ts.map +0 -1
- package/dist/hooks/useId.js +0 -35
- package/dist/hooks/useId.js.map +0 -1
- package/dist/hooks/useLayoutEffect.d.ts +0 -8
- package/dist/hooks/useLayoutEffect.d.ts.map +0 -1
- package/dist/hooks/useLayoutEffect.js +0 -34
- package/dist/hooks/useLayoutEffect.js.map +0 -1
- package/dist/hooks/useMemo.d.ts +0 -8
- package/dist/hooks/useMemo.d.ts.map +0 -1
- package/dist/hooks/useMemo.js +0 -31
- package/dist/hooks/useMemo.js.map +0 -1
- package/dist/hooks/usePromise.d.ts +0 -8
- package/dist/hooks/usePromise.d.ts.map +0 -1
- package/dist/hooks/usePromise.js +0 -90
- package/dist/hooks/usePromise.js.map +0 -1
- package/dist/hooks/useReducer.d.ts +0 -7
- package/dist/hooks/useReducer.d.ts.map +0 -1
- package/dist/hooks/useReducer.js +0 -44
- package/dist/hooks/useReducer.js.map +0 -1
- package/dist/hooks/useRef.d.ts +0 -10
- package/dist/hooks/useRef.d.ts.map +0 -1
- package/dist/hooks/useRef.js +0 -29
- package/dist/hooks/useRef.js.map +0 -1
- package/dist/hooks/useState.d.ts +0 -7
- package/dist/hooks/useState.d.ts.map +0 -1
- package/dist/hooks/useState.js +0 -54
- package/dist/hooks/useState.js.map +0 -1
- package/dist/hooks/useSyncExternalStore.d.ts +0 -8
- package/dist/hooks/useSyncExternalStore.d.ts.map +0 -1
- package/dist/hooks/useSyncExternalStore.js +0 -50
- package/dist/hooks/useSyncExternalStore.js.map +0 -1
- package/dist/hooks/useViewTransition.d.ts +0 -10
- package/dist/hooks/useViewTransition.d.ts.map +0 -1
- package/dist/hooks/useViewTransition.js +0 -27
- package/dist/hooks/useViewTransition.js.map +0 -1
- package/dist/recursiveRender.d.ts +0 -7
- package/dist/recursiveRender.d.ts.map +0 -1
- package/dist/recursiveRender.js.map +0 -1
- package/dist/signals/for.d.ts.map +0 -1
- package/dist/signals/for.js.map +0 -1
- package/dist/signals/watch.d.ts +0 -21
- package/dist/signals/watch.d.ts.map +0 -1
- package/dist/signals/watch.js +0 -86
- package/dist/signals/watch.js.map +0 -1
- package/dist/store.d.ts +0 -28
- package/dist/store.d.ts.map +0 -1
- package/dist/store.js +0 -166
- package/dist/store.js.map +0 -1
- package/dist/swr.d.ts +0 -63
- package/dist/swr.d.ts.map +0 -1
- package/dist/swr.js +0 -236
- package/dist/swr.js.map +0 -1
- package/dist/utils/promise.d.ts +0 -16
- package/dist/utils/promise.d.ts.map +0 -1
- package/dist/utils/promise.js +0 -14
- package/dist/utils/promise.js.map +0 -1
- package/src/components/memo.ts +0 -39
- package/src/form/index.ts +0 -676
- package/src/form/types.ts +0 -262
- package/src/form/utils.ts +0 -19
- package/src/hooks/useAsync.ts +0 -121
- package/src/hooks/useCallback.ts +0 -32
- package/src/hooks/useContext.ts +0 -79
- package/src/hooks/useEffect.ts +0 -40
- package/src/hooks/useEffectEvent.ts +0 -24
- package/src/hooks/useId.ts +0 -42
- package/src/hooks/useLayoutEffect.ts +0 -43
- package/src/hooks/useMemo.ts +0 -34
- package/src/hooks/usePromise.ts +0 -126
- package/src/hooks/useReducer.ts +0 -50
- package/src/hooks/useRef.ts +0 -40
- package/src/hooks/useState.ts +0 -62
- package/src/hooks/useSyncExternalStore.ts +0 -59
- package/src/hooks/useViewTransition.ts +0 -25
- package/src/signals/watch.ts +0 -139
- package/src/store.ts +0 -245
- package/src/swr.ts +0 -351
- package/src/utils/promise.ts +0 -26
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { node
|
|
1
|
+
import { node } from "./globals.js";
|
|
2
2
|
import { isVNode, encodeHtmlEntities, propsToElementAttributes, isExoticType, assertValidElementProps, isPrimitiveChild, isValidTextChild, } from "./utils/index.js";
|
|
3
|
-
import { isStreamDataThrowValue } from "./
|
|
3
|
+
import { isStreamDataThrowValue } from "./statefulPromise.js";
|
|
4
4
|
import { Signal } from "./signals/base.js";
|
|
5
5
|
import { $ERROR_BOUNDARY, voidElements, $STREAM_DATA } from "./constants.js";
|
|
6
6
|
import { __DEV__ } from "./env.js";
|
|
7
|
-
export
|
|
8
|
-
function render(ctx, el, parent, idx) {
|
|
7
|
+
export function headlessRender(ctx, el, parent, idx) {
|
|
9
8
|
if (el === null)
|
|
10
9
|
return;
|
|
11
10
|
if (el === undefined)
|
|
@@ -19,7 +18,7 @@ function render(ctx, el, parent, idx) {
|
|
|
19
18
|
return ctx.write(el.toString());
|
|
20
19
|
}
|
|
21
20
|
if (el instanceof Array) {
|
|
22
|
-
return el.forEach((c, i) =>
|
|
21
|
+
return el.forEach((c, i) => headlessRender(ctx, c, parent, i));
|
|
23
22
|
}
|
|
24
23
|
if (Signal.isSignal(el)) {
|
|
25
24
|
const value = el.peek();
|
|
@@ -58,7 +57,7 @@ function render(ctx, el, parent, idx) {
|
|
|
58
57
|
},
|
|
59
58
|
};
|
|
60
59
|
try {
|
|
61
|
-
|
|
60
|
+
headlessRender(boundaryCtx, children, el, idx);
|
|
62
61
|
// flush successful render
|
|
63
62
|
ctx.write(boundaryBuffer);
|
|
64
63
|
ctx.onStreamData?.([...streamPromises]);
|
|
@@ -71,26 +70,28 @@ function render(ctx, el, parent, idx) {
|
|
|
71
70
|
const { fallback, onError } = props;
|
|
72
71
|
onError?.(e);
|
|
73
72
|
const fallbackContent = typeof fallback === "function" ? fallback(e) : fallback;
|
|
74
|
-
|
|
73
|
+
headlessRender(ctx, fallbackContent, el, 0);
|
|
75
74
|
}
|
|
76
75
|
return;
|
|
77
76
|
}
|
|
78
|
-
|
|
77
|
+
headlessRender(ctx, children, el, idx);
|
|
79
78
|
return;
|
|
80
79
|
}
|
|
81
|
-
if (typeof type
|
|
80
|
+
if (typeof type === "function") {
|
|
82
81
|
try {
|
|
83
|
-
hookIndex.current = 0;
|
|
84
82
|
node.current = el;
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
let children = type(props);
|
|
84
|
+
if (typeof children === "function") {
|
|
85
|
+
children = children(props);
|
|
86
|
+
}
|
|
87
|
+
headlessRender(ctx, children, el, idx);
|
|
87
88
|
return;
|
|
88
89
|
}
|
|
89
90
|
catch (error) {
|
|
90
91
|
if (isStreamDataThrowValue(error)) {
|
|
91
92
|
const { fallback, data } = error[$STREAM_DATA];
|
|
92
93
|
ctx.onStreamData?.(data);
|
|
93
|
-
return
|
|
94
|
+
return headlessRender(ctx, fallback, el, 0);
|
|
94
95
|
}
|
|
95
96
|
throw error;
|
|
96
97
|
}
|
|
@@ -110,11 +111,11 @@ function render(ctx, el, parent, idx) {
|
|
|
110
111
|
: props.innerHTML));
|
|
111
112
|
}
|
|
112
113
|
else if (Array.isArray(children)) {
|
|
113
|
-
children.forEach((c, i) =>
|
|
114
|
+
children.forEach((c, i) => headlessRender(ctx, c, el, i));
|
|
114
115
|
}
|
|
115
116
|
else {
|
|
116
|
-
|
|
117
|
+
headlessRender(ctx, children, el, 0);
|
|
117
118
|
}
|
|
118
119
|
ctx.write(`</${type}>`);
|
|
119
120
|
}
|
|
120
|
-
//# sourceMappingURL=
|
|
121
|
+
//# sourceMappingURL=headlessRender.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headlessRender.js","sourceRoot":"","sources":["../src/headlessRender.ts"],"names":[],"mappings":"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"}
|
package/dist/hmr.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { $HMR_ACCEPT } from "./constants.js";
|
|
2
2
|
import { Signal } from "./signals/base.js";
|
|
3
|
-
import type {
|
|
4
|
-
import type { Store } from "./store.js";
|
|
3
|
+
import type { Effect } from "./signals/effect.js";
|
|
5
4
|
export type HMRAccept<T = {}> = {
|
|
6
5
|
provide: () => T;
|
|
7
6
|
inject: (prev: T) => void;
|
|
@@ -10,7 +9,7 @@ export type HMRAccept<T = {}> = {
|
|
|
10
9
|
export type GenericHMRAcceptor<T = {}> = {
|
|
11
10
|
[$HMR_ACCEPT]: HMRAccept<T>;
|
|
12
11
|
};
|
|
13
|
-
type HotVar = Kiru.FC |
|
|
12
|
+
type HotVar = Kiru.FC | Signal<any> | Kiru.ContextBase<any>;
|
|
14
13
|
export declare function isHmrUpdate(): boolean;
|
|
15
14
|
export declare function isGenericHmrAcceptor(thing: unknown): thing is GenericHMRAcceptor<any>;
|
|
16
15
|
type HotVarRegistrationEntry = {
|
|
@@ -22,10 +21,9 @@ export declare function createHMRContext(): {
|
|
|
22
21
|
register: (hotVarRegistrationEntries: Record<string, HotVarRegistrationEntry>) => void;
|
|
23
22
|
prepare: (filePath: string) => void;
|
|
24
23
|
isReplacement: () => boolean;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
pushWatch(watch: WatchEffect): void;
|
|
24
|
+
moduleEffects: {
|
|
25
|
+
registerNext(): void;
|
|
26
|
+
push(effect: Effect<any>): void;
|
|
29
27
|
};
|
|
30
28
|
onHmr: (callback: () => void) => void;
|
|
31
29
|
getCurrentFilePath(): string | null;
|
package/dist/hmr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAA;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"hmr.d.ts","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAA;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,EAAE,IAAI;IAC9B,OAAO,EAAE,MAAM,CAAC,CAAA;IAChB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;IACzB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,GAAG,EAAE,IAAI;IACvC,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;CAC5B,CAAA;AACD,KAAK,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;AAU3D,wBAAgB,WAAW,YAE1B;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAQlC;AAOD,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,wBAAgB,gBAAgB;0CAoCD,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC;wBAtBzC,MAAM;;;;qBAmFlB,MAAM,CAAC,GAAG,CAAC;;sBAvFD,MAAM,IAAI;;EAwGpC"}
|
package/dist/hmr.js
CHANGED
|
@@ -18,7 +18,7 @@ export function createHMRContext() {
|
|
|
18
18
|
let currentModuleMemory = null;
|
|
19
19
|
let isModuleReplacementExecution = false;
|
|
20
20
|
const isReplacement = () => isModuleReplacementExecution;
|
|
21
|
-
let
|
|
21
|
+
let isWaitingForNextEffect = false;
|
|
22
22
|
const onHmrCallbacks = [];
|
|
23
23
|
const onHmr = (callback) => {
|
|
24
24
|
onHmrCallbacks.push(callback);
|
|
@@ -29,16 +29,17 @@ export function createHMRContext() {
|
|
|
29
29
|
if (!mod) {
|
|
30
30
|
mod = {
|
|
31
31
|
hotVars: new Map(),
|
|
32
|
-
|
|
32
|
+
unnamedEffects: [],
|
|
33
33
|
};
|
|
34
34
|
moduleMap.set(filePath, mod);
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
37
|
while (onHmrCallbacks.length)
|
|
38
38
|
onHmrCallbacks.shift()();
|
|
39
|
-
for (const
|
|
40
|
-
|
|
39
|
+
for (const effect of mod.unnamedEffects) {
|
|
40
|
+
effect.stop();
|
|
41
41
|
}
|
|
42
|
+
mod.unnamedEffects.length = 0;
|
|
42
43
|
}
|
|
43
44
|
currentModuleMemory = mod;
|
|
44
45
|
currentModuleFilePath = filePath;
|
|
@@ -46,23 +47,18 @@ export function createHMRContext() {
|
|
|
46
47
|
const register = (hotVarRegistrationEntries) => {
|
|
47
48
|
if (currentModuleMemory === null)
|
|
48
49
|
throw new Error("[kiru]: HMR could not register: No active module");
|
|
49
|
-
let
|
|
50
|
+
let dirtyNodes = new Set();
|
|
50
51
|
for (const [name, newEntry] of Object.entries(hotVarRegistrationEntries)) {
|
|
51
52
|
const oldEntry = currentModuleMemory.hotVars.get(name);
|
|
52
53
|
// @ts-ignore - this is how we tell devtools what file the hotvar is from
|
|
53
54
|
newEntry.value[$DEV_FILE_LINK] = newEntry.link;
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
oldEntry.value.__next = newEntry.value;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (newEntry.type === "createStore") {
|
|
65
|
-
window.__kiru.stores.add(name, newEntry.value);
|
|
55
|
+
if (oldEntry?.value) {
|
|
56
|
+
/**
|
|
57
|
+
* this is how, when the previous value has been stored somewhere else (eg. in a Map, or by Vike),
|
|
58
|
+
* we can trace it to its current version by using latest(value)
|
|
59
|
+
*/
|
|
60
|
+
// @ts-ignore
|
|
61
|
+
oldEntry.value.__next = newEntry.value;
|
|
66
62
|
}
|
|
67
63
|
currentModuleMemory.hotVars.set(name, newEntry);
|
|
68
64
|
if (!oldEntry)
|
|
@@ -74,19 +70,19 @@ export function createHMRContext() {
|
|
|
74
70
|
continue;
|
|
75
71
|
}
|
|
76
72
|
if (oldEntry.type === "component" && newEntry.type === "component") {
|
|
77
|
-
window.__kiru.apps.forEach((
|
|
78
|
-
traverseApply(
|
|
73
|
+
window.__kiru.apps.forEach((app) => {
|
|
74
|
+
traverseApply(app.rootNode, (vNode) => {
|
|
79
75
|
if (vNode.type === oldEntry.value) {
|
|
80
76
|
vNode.type = newEntry.value;
|
|
81
|
-
|
|
77
|
+
dirtyNodes.add(vNode);
|
|
82
78
|
}
|
|
83
79
|
});
|
|
84
80
|
});
|
|
85
81
|
}
|
|
86
82
|
}
|
|
87
|
-
if (
|
|
83
|
+
if (dirtyNodes.size) {
|
|
88
84
|
_isHmrUpdate = true;
|
|
89
|
-
|
|
85
|
+
dirtyNodes.forEach((n) => requestUpdate(n));
|
|
90
86
|
flushSync();
|
|
91
87
|
_isHmrUpdate = false;
|
|
92
88
|
}
|
|
@@ -94,23 +90,22 @@ export function createHMRContext() {
|
|
|
94
90
|
currentModuleMemory = null;
|
|
95
91
|
currentModuleFilePath = null;
|
|
96
92
|
};
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
},
|
|
101
|
-
isWaitingForNextWatchCall() {
|
|
102
|
-
return isWaitingForNextWatchCall;
|
|
93
|
+
const moduleEffects = {
|
|
94
|
+
registerNext() {
|
|
95
|
+
isWaitingForNextEffect = true;
|
|
103
96
|
},
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
97
|
+
push(effect) {
|
|
98
|
+
if (!isWaitingForNextEffect)
|
|
99
|
+
return;
|
|
100
|
+
currentModuleMemory.unnamedEffects.push(effect);
|
|
101
|
+
isWaitingForNextEffect = false;
|
|
107
102
|
},
|
|
108
103
|
};
|
|
109
104
|
return {
|
|
110
105
|
register,
|
|
111
106
|
prepare,
|
|
112
107
|
isReplacement,
|
|
113
|
-
|
|
108
|
+
moduleEffects,
|
|
114
109
|
onHmr,
|
|
115
110
|
getCurrentFilePath() {
|
|
116
111
|
return currentModuleFilePath;
|
package/dist/hmr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hmr.js","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"hmr.js","sourceRoot":"","sources":["../src/hmr.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./
|
|
4
|
-
export * from "./useEffect.js";
|
|
5
|
-
export * from "./useEffectEvent.js";
|
|
6
|
-
export * from "./useId.js";
|
|
7
|
-
export * from "./useLayoutEffect.js";
|
|
8
|
-
export * from "./useMemo.js";
|
|
9
|
-
export * from "./usePromise.js";
|
|
10
|
-
export * from "./useReducer.js";
|
|
11
|
-
export * from "./useRef.js";
|
|
12
|
-
export * from "./useState.js";
|
|
13
|
-
export * from "./useSyncExternalStore.js";
|
|
14
|
-
export * from "./useViewTransition.js";
|
|
1
|
+
export * from "./onCleanup.js";
|
|
2
|
+
export * from "./onMount.js";
|
|
3
|
+
export * from "./onBeforeMount.js";
|
|
15
4
|
export * from "./utils.js";
|
|
16
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,16 +1,5 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./
|
|
4
|
-
export * from "./useEffect.js";
|
|
5
|
-
export * from "./useEffectEvent.js";
|
|
6
|
-
export * from "./useId.js";
|
|
7
|
-
export * from "./useLayoutEffect.js";
|
|
8
|
-
export * from "./useMemo.js";
|
|
9
|
-
export * from "./usePromise.js";
|
|
10
|
-
export * from "./useReducer.js";
|
|
11
|
-
export * from "./useRef.js";
|
|
12
|
-
export * from "./useState.js";
|
|
13
|
-
export * from "./useSyncExternalStore.js";
|
|
14
|
-
export * from "./useViewTransition.js";
|
|
1
|
+
export * from "./onCleanup.js";
|
|
2
|
+
export * from "./onMount.js";
|
|
3
|
+
export * from "./onBeforeMount.js";
|
|
15
4
|
export * from "./utils.js";
|
|
16
5
|
//# sourceMappingURL=index.js.map
|
package/dist/hooks/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAClC,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registers a callback that runs after the component is first mounted to the DOM, but before the DOM is painted.
|
|
3
|
+
* Optionally returns a cleanup function that will run when the component unmounts.
|
|
4
|
+
* Intended for use during component setup when the component returns a render function.
|
|
5
|
+
*
|
|
6
|
+
* @see https://kirujs.dev/docs/hooks/onBeforeMount
|
|
7
|
+
*/
|
|
8
|
+
export declare function onBeforeMount(fn: () => (() => void) | void): void;
|
|
9
|
+
//# sourceMappingURL=onBeforeMount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onBeforeMount.d.ts","sourceRoot":"","sources":["../../src/hooks/onBeforeMount.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAEjE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { queueSetupEffect } from "./utils.js";
|
|
2
|
+
/**
|
|
3
|
+
* Registers a callback that runs after the component is first mounted to the DOM, but before the DOM is painted.
|
|
4
|
+
* Optionally returns a cleanup function that will run when the component unmounts.
|
|
5
|
+
* Intended for use during component setup when the component returns a render function.
|
|
6
|
+
*
|
|
7
|
+
* @see https://kirujs.dev/docs/hooks/onBeforeMount
|
|
8
|
+
*/
|
|
9
|
+
export function onBeforeMount(fn) {
|
|
10
|
+
queueSetupEffect(fn, { immediate: true });
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=onBeforeMount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onBeforeMount.js","sourceRoot":"","sources":["../../src/hooks/onBeforeMount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,EAA6B;IACzD,gBAAgB,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;AAC3C,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registers a cleanup function that runs when the component unmounts.
|
|
3
|
+
* Intended for use during component setup when the component returns a render function.
|
|
4
|
+
*
|
|
5
|
+
* @see https://kirujs.dev/docs/hooks/onCleanup
|
|
6
|
+
*/
|
|
7
|
+
export declare function onCleanup(fn: () => void): void;
|
|
8
|
+
//# sourceMappingURL=onCleanup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onCleanup.d.ts","sourceRoot":"","sources":["../../src/hooks/onCleanup.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAK9C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { node } from "../globals.js";
|
|
2
|
+
import { generateRandomID, registerVNodeCleanup } from "../utils/index.js";
|
|
3
|
+
/**
|
|
4
|
+
* Registers a cleanup function that runs when the component unmounts.
|
|
5
|
+
* Intended for use during component setup when the component returns a render function.
|
|
6
|
+
*
|
|
7
|
+
* @see https://kirujs.dev/docs/hooks/onCleanup
|
|
8
|
+
*/
|
|
9
|
+
export function onCleanup(fn) {
|
|
10
|
+
const vNode = node.current;
|
|
11
|
+
if (!vNode)
|
|
12
|
+
throw new Error("Cannot queue cleanup effect outside of a component");
|
|
13
|
+
registerVNodeCleanup(vNode, generateRandomID(10), fn);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=onCleanup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onCleanup.js","sourceRoot":"","sources":["../../src/hooks/onCleanup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAE1E;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,EAAc;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAQ,CAAA;IAC3B,IAAI,CAAC,KAAK;QACR,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;IACvE,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA;AACvD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registers a callback that runs after the component is first mounted to the DOM.
|
|
3
|
+
* Optionally returns a cleanup function that will run when the component unmounts.
|
|
4
|
+
* Intended for use during component setup when the component returns a render function.
|
|
5
|
+
*
|
|
6
|
+
* @see https://kirujs.dev/docs/hooks/onMount
|
|
7
|
+
*/
|
|
8
|
+
export declare function onMount(fn: () => (() => void) | void): void;
|
|
9
|
+
//# sourceMappingURL=onMount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onMount.d.ts","sourceRoot":"","sources":["../../src/hooks/onMount.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAE3D"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { queueSetupEffect } from "./utils.js";
|
|
2
|
+
/**
|
|
3
|
+
* Registers a callback that runs after the component is first mounted to the DOM.
|
|
4
|
+
* Optionally returns a cleanup function that will run when the component unmounts.
|
|
5
|
+
* Intended for use during component setup when the component returns a render function.
|
|
6
|
+
*
|
|
7
|
+
* @see https://kirujs.dev/docs/hooks/onMount
|
|
8
|
+
*/
|
|
9
|
+
export function onMount(fn) {
|
|
10
|
+
queueSetupEffect(fn);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=onMount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onMount.js","sourceRoot":"","sources":["../../src/hooks/onMount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,EAA6B;IACnD,gBAAgB,CAAC,EAAE,CAAC,CAAA;AACtB,CAAC"}
|
package/dist/hooks/utils.d.ts
CHANGED
|
@@ -1,64 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
declare enum HookDebugGroupAction {
|
|
4
|
-
Start = "start",
|
|
5
|
-
End = "end"
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* **dev only - this is a no-op in production.**
|
|
9
|
-
*
|
|
10
|
-
* Used to create 'groups' of hooks in the devtools.
|
|
11
|
-
* Useful for debugging and profiling.
|
|
12
|
-
*/
|
|
13
|
-
declare const useHookDebugGroup: (name: string, action: HookDebugGroupAction) => void;
|
|
14
|
-
/**
|
|
15
|
-
* Used obtain an 'requestUpdate' function for the current component.
|
|
16
|
-
*/
|
|
17
|
-
declare const useRequestUpdate: () => () => void;
|
|
18
|
-
/**
|
|
19
|
-
* Used to obtain the 'VNode' for the current component.
|
|
20
|
-
*/
|
|
21
|
-
declare const useVNode: () => Kiru.VNode;
|
|
22
|
-
type HookCallbackContext<T> = {
|
|
23
|
-
/**
|
|
24
|
-
* The current state of the hook
|
|
25
|
-
*/
|
|
26
|
-
hook: HookState<T>;
|
|
27
|
-
/**
|
|
28
|
-
* Indicates if this is the first time the hook has been initialized
|
|
29
|
-
*/
|
|
30
|
-
isInit: boolean;
|
|
31
|
-
/**
|
|
32
|
-
* Dev mode only - indicates if the hook is being run as a result of a HMR update.
|
|
33
|
-
* This is the time to clean up the previous version of the hook if necessary, ie. initial arguments changed.
|
|
34
|
-
*/
|
|
35
|
-
isHMR?: boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Queues the current component to be re-rendered
|
|
38
|
-
*/
|
|
39
|
-
update: () => void;
|
|
40
|
-
/**
|
|
41
|
-
* Queues an effect to be run, either immediately or on the next render
|
|
42
|
-
*/
|
|
43
|
-
queueEffect: (callback: Function, opts?: {
|
|
44
|
-
immediate?: boolean;
|
|
45
|
-
}) => void;
|
|
46
|
-
/**
|
|
47
|
-
* The VNode associated with the current component
|
|
48
|
-
*/
|
|
49
|
-
vNode: Kiru.VNode;
|
|
50
|
-
/**
|
|
51
|
-
* The index of the current hook.
|
|
52
|
-
* You can count on this being stable across renders,
|
|
53
|
-
* and unique across separate hooks in the same component.
|
|
54
|
-
*/
|
|
55
|
-
index: number;
|
|
56
|
-
};
|
|
57
|
-
type HookCallback<T> = (state: HookCallbackContext<T>) => any;
|
|
58
|
-
declare function useHook<T extends () => Record<string, unknown>, U extends HookCallback<ReturnType<T>>>(hookName: string, hookInitializer: T, callback: U): ReturnType<U>;
|
|
59
|
-
declare function useHook<T extends Record<string, unknown>, U extends HookCallback<T>>(hookName: string, hookData: T, callback: U): ReturnType<U>;
|
|
60
|
-
declare function cleanupHook(hook: {
|
|
61
|
-
cleanup?: () => void;
|
|
1
|
+
export declare function queueSetupEffect(effect: Kiru.LifecycleHookCallback, opts?: {
|
|
2
|
+
immediate?: boolean;
|
|
62
3
|
}): void;
|
|
63
|
-
declare function depsRequireChange(a?: unknown[], b?: unknown[]): boolean;
|
|
64
4
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/hooks/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/hooks/utils.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAClC,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,IAAI,CAyBN"}
|