@adukiorg/anza 0.2.0
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 +137 -0
- package/README.md +215 -0
- package/bin/anza.js +63 -0
- package/bin/create.js +150 -0
- package/importmap.json +72 -0
- package/package.json +100 -0
- package/src/core/animations/index.js +55 -0
- package/src/core/animations/play.js +111 -0
- package/src/core/animations/registry.js +54 -0
- package/src/core/animations/scroll.js +50 -0
- package/src/core/animations/tokens.js +58 -0
- package/src/core/animations/usage.md +301 -0
- package/src/core/animations/waapi.js +86 -0
- package/src/core/api/cache.js +120 -0
- package/src/core/api/caches/glob.js +24 -0
- package/src/core/api/caches/index.js +118 -0
- package/src/core/api/events/index.js +75 -0
- package/src/core/api/fetch.js +99 -0
- package/src/core/api/index.js +158 -0
- package/src/core/api/pipeline.js +98 -0
- package/src/core/api/plan.md +209 -0
- package/src/core/api/prefixes/index.js +66 -0
- package/src/core/api/retry.js +69 -0
- package/src/core/api/stream.js +127 -0
- package/src/core/api/upload.js +180 -0
- package/src/core/api/usage.md +206 -0
- package/src/core/events/bus.js +38 -0
- package/src/core/events/delegate.js +79 -0
- package/src/core/events/index.js +26 -0
- package/src/core/events/listen.js +50 -0
- package/src/core/events/missing.md +103 -0
- package/src/core/events/once.js +49 -0
- package/src/core/events/plan.md +177 -0
- package/src/core/events/types/index.js +34 -0
- package/src/core/events/usage.md +107 -0
- package/src/core/offline/bridge.js +51 -0
- package/src/core/offline/clock.js +100 -0
- package/src/core/offline/connectivity.js +116 -0
- package/src/core/offline/index.js +41 -0
- package/src/core/offline/missing.md +89 -0
- package/src/core/offline/plan.md +143 -0
- package/src/core/offline/queue.js +168 -0
- package/src/core/offline/state.js +18 -0
- package/src/core/offline/sync.js +106 -0
- package/src/core/offline/usage.md +273 -0
- package/src/core/platform/guard.js +104 -0
- package/src/core/platform/index.js +42 -0
- package/src/core/platform/missing.md +119 -0
- package/src/core/platform/platform.d.ts +88 -0
- package/src/core/platform/polyfills/anchor.js +79 -0
- package/src/core/platform/polyfills/navigation.js +142 -0
- package/src/core/platform/polyfills/popover.js +142 -0
- package/src/core/platform/polyfills/scheduler.js +194 -0
- package/src/core/platform/polyfills/shadow.js +35 -0
- package/src/core/platform/polyfills/urlpattern.js +119 -0
- package/src/core/platform/supports.js +186 -0
- package/src/core/platform/usage.md +287 -0
- package/src/core/router/cache.js +95 -0
- package/src/core/router/container.js +146 -0
- package/src/core/router/handler.js +52 -0
- package/src/core/router/history.js +120 -0
- package/src/core/router/index.js +158 -0
- package/src/core/router/intercept.js +376 -0
- package/src/core/router/match.js +145 -0
- package/src/core/router/missing.md +716 -0
- package/src/core/router/outlet.js +139 -0
- package/src/core/router/plan.md +370 -0
- package/src/core/router/sync/index.js +16 -0
- package/src/core/router/sync/tab.js +115 -0
- package/src/core/router/sync/transport.js +139 -0
- package/src/core/router/transitions.js +59 -0
- package/src/core/router/usage.md +773 -0
- package/src/core/security/crypto.js +159 -0
- package/src/core/security/index.js +49 -0
- package/src/core/security/missing.md +97 -0
- package/src/core/security/permissions.js +64 -0
- package/src/core/security/sanitize.js +100 -0
- package/src/core/security/usage.md +283 -0
- package/src/core/state/derived.js +117 -0
- package/src/core/state/index.js +23 -0
- package/src/core/state/missing.md +165 -0
- package/src/core/state/persist.js +284 -0
- package/src/core/state/store.js +308 -0
- package/src/core/state/sync.js +46 -0
- package/src/core/state/usage.md +440 -0
- package/src/core/storage/cache.js +83 -0
- package/src/core/storage/idb.js +196 -0
- package/src/core/storage/index.js +373 -0
- package/src/core/storage/lru.js +107 -0
- package/src/core/storage/missing.md +165 -0
- package/src/core/storage/opfs.js +190 -0
- package/src/core/storage/plan.md +69 -0
- package/src/core/storage/quota.js +69 -0
- package/src/core/storage/usage.md +226 -0
- package/src/core/ui/base.js +50 -0
- package/src/core/ui/define/container.js +82 -0
- package/src/core/ui/define/define.js +12 -0
- package/src/core/ui/define/element.js +390 -0
- package/src/core/ui/define/index.js +9 -0
- package/src/core/ui/define/orchestrator.js +105 -0
- package/src/core/ui/define/proxy.js +644 -0
- package/src/core/ui/define/state.js +6 -0
- package/src/core/ui/define/utils.js +134 -0
- package/src/core/ui/implementation.md +170 -0
- package/src/core/ui/index.js +41 -0
- package/src/core/ui/observe.js +117 -0
- package/src/core/ui/plan.md +510 -0
- package/src/core/ui/schedule.js +60 -0
- package/src/core/ui/template.js +37 -0
- package/src/core/ui/transitions.js +37 -0
- package/src/core/ui/ui.types.md +890 -0
- package/src/core/ui/usage.md +1124 -0
- package/src/core/ui/watch.md +346 -0
- package/src/core/workers/broadcast.js +138 -0
- package/src/core/workers/dedicated.js +153 -0
- package/src/core/workers/index.js +169 -0
- package/src/core/workers/locks.js +160 -0
- package/src/core/workers/offscreen.js +166 -0
- package/src/core/workers/plan.md +381 -0
- package/src/core/workers/pool.js +267 -0
- package/src/core/workers/shared.js +137 -0
- package/src/core/workers/usage.md +622 -0
- package/src/elements/base.js +12 -0
- package/src/elements/data/card/index.html +9 -0
- package/src/elements/data/card/index.js +19 -0
- package/src/elements/data/card/index.tags.json +1 -0
- package/src/elements/data/card/style.css +46 -0
- package/src/elements/data/chart/index.html +1 -0
- package/src/elements/data/chart/index.js +143 -0
- package/src/elements/data/chart/index.tags.json +1 -0
- package/src/elements/data/chart/style.css +13 -0
- package/src/elements/data/list/index.html +3 -0
- package/src/elements/data/list/index.js +19 -0
- package/src/elements/data/list/index.tags.json +1 -0
- package/src/elements/data/list/style.css +39 -0
- package/src/elements/data/stat/index.html +9 -0
- package/src/elements/data/stat/index.js +19 -0
- package/src/elements/data/stat/index.tags.json +1 -0
- package/src/elements/data/stat/style.css +50 -0
- package/src/elements/data/table/index.html +1 -0
- package/src/elements/data/table/index.js +16 -0
- package/src/elements/data/table/index.tags.json +1 -0
- package/src/elements/data/table/style.css +50 -0
- package/src/elements/feedback/alert/index.html +11 -0
- package/src/elements/feedback/alert/index.js +28 -0
- package/src/elements/feedback/alert/index.tags.json +1 -0
- package/src/elements/feedback/alert/style.css +75 -0
- package/src/elements/feedback/empty/index.html +13 -0
- package/src/elements/feedback/empty/index.js +34 -0
- package/src/elements/feedback/empty/index.tags.json +1 -0
- package/src/elements/feedback/empty/style.css +45 -0
- package/src/elements/feedback/progress/index.html +7 -0
- package/src/elements/feedback/progress/index.js +46 -0
- package/src/elements/feedback/progress/index.tags.json +1 -0
- package/src/elements/feedback/progress/style.css +36 -0
- package/src/elements/feedback/skeleton/index.html +1 -0
- package/src/elements/feedback/skeleton/index.js +78 -0
- package/src/elements/feedback/skeleton/index.tags.json +1 -0
- package/src/elements/feedback/skeleton/style.css +28 -0
- package/src/elements/feedback/toast/index.html +3 -0
- package/src/elements/feedback/toast/index.js +65 -0
- package/src/elements/feedback/toast/index.tags.json +1 -0
- package/src/elements/feedback/toast/style.css +36 -0
- package/src/elements/forms/checkbox/index.html +7 -0
- package/src/elements/forms/checkbox/index.js +104 -0
- package/src/elements/forms/checkbox/index.tags.json +1 -0
- package/src/elements/forms/checkbox/style.css +86 -0
- package/src/elements/forms/field/index.html +13 -0
- package/src/elements/forms/field/index.js +42 -0
- package/src/elements/forms/field/index.tags.json +1 -0
- package/src/elements/forms/field/style.css +42 -0
- package/src/elements/forms/form/index.html +3 -0
- package/src/elements/forms/form/index.js +122 -0
- package/src/elements/forms/form/index.tags.json +1 -0
- package/src/elements/forms/form/style.css +11 -0
- package/src/elements/forms/input/index.html +4 -0
- package/src/elements/forms/input/index.js +103 -0
- package/src/elements/forms/input/index.tags.json +1 -0
- package/src/elements/forms/input/style.css +39 -0
- package/src/elements/forms/radio/index.html +4 -0
- package/src/elements/forms/radio/index.js +109 -0
- package/src/elements/forms/radio/index.tags.json +1 -0
- package/src/elements/forms/radio/style.css +65 -0
- package/src/elements/forms/select/index.html +9 -0
- package/src/elements/forms/select/index.js +114 -0
- package/src/elements/forms/select/index.tags.json +1 -0
- package/src/elements/forms/select/style.css +95 -0
- package/src/elements/forms/textarea/index.html +4 -0
- package/src/elements/forms/textarea/index.js +115 -0
- package/src/elements/forms/textarea/index.tags.json +1 -0
- package/src/elements/forms/textarea/style.css +46 -0
- package/src/elements/forms/toggle/index.html +4 -0
- package/src/elements/forms/toggle/index.js +89 -0
- package/src/elements/forms/toggle/index.tags.json +1 -0
- package/src/elements/forms/toggle/style.css +63 -0
- package/src/elements/forms/upload/index.html +13 -0
- package/src/elements/forms/upload/index.js +120 -0
- package/src/elements/forms/upload/index.tags.json +1 -0
- package/src/elements/forms/upload/style.css +61 -0
- package/src/elements/index.js +71 -0
- package/src/elements/layout/app/index.html +7 -0
- package/src/elements/layout/app/index.js +16 -0
- package/src/elements/layout/app/index.tags.json +1 -0
- package/src/elements/layout/app/style.css +41 -0
- package/src/elements/layout/grid/index.html +3 -0
- package/src/elements/layout/grid/index.js +41 -0
- package/src/elements/layout/grid/index.tags.json +1 -0
- package/src/elements/layout/grid/style.css +12 -0
- package/src/elements/layout/header/index.html +8 -0
- package/src/elements/layout/header/index.js +16 -0
- package/src/elements/layout/header/index.tags.json +1 -0
- package/src/elements/layout/header/style.css +28 -0
- package/src/elements/layout/scroll/index.html +3 -0
- package/src/elements/layout/scroll/index.js +19 -0
- package/src/elements/layout/scroll/index.tags.json +1 -0
- package/src/elements/layout/scroll/style.css +24 -0
- package/src/elements/layout/sidebar/index.html +3 -0
- package/src/elements/layout/sidebar/index.js +24 -0
- package/src/elements/layout/sidebar/index.tags.json +1 -0
- package/src/elements/layout/sidebar/style.css +30 -0
- package/src/elements/layout/split/index.html +3 -0
- package/src/elements/layout/split/index.js +18 -0
- package/src/elements/layout/split/index.tags.json +1 -0
- package/src/elements/layout/split/style.css +28 -0
- package/src/elements/layout/stack/index.html +3 -0
- package/src/elements/layout/stack/index.js +31 -0
- package/src/elements/layout/stack/index.tags.json +1 -0
- package/src/elements/layout/stack/style.css +15 -0
- package/src/elements/layout/surface/index.html +3 -0
- package/src/elements/layout/surface/index.js +19 -0
- package/src/elements/layout/surface/index.tags.json +1 -0
- package/src/elements/layout/surface/style.css +29 -0
- package/src/elements/navigation/breadcrumb/index.html +5 -0
- package/src/elements/navigation/breadcrumb/index.js +16 -0
- package/src/elements/navigation/breadcrumb/index.tags.json +1 -0
- package/src/elements/navigation/breadcrumb/style.css +36 -0
- package/src/elements/navigation/nav/index.html +3 -0
- package/src/elements/navigation/nav/index.js +24 -0
- package/src/elements/navigation/nav/index.tags.json +1 -0
- package/src/elements/navigation/nav/style.css +38 -0
- package/src/elements/navigation/pagination/index.html +3 -0
- package/src/elements/navigation/pagination/index.js +94 -0
- package/src/elements/navigation/pagination/index.tags.json +1 -0
- package/src/elements/navigation/pagination/style.css +39 -0
- package/src/elements/navigation/steps/index.html +6 -0
- package/src/elements/navigation/steps/index.js +64 -0
- package/src/elements/navigation/steps/index.tags.json +1 -0
- package/src/elements/navigation/steps/style.css +78 -0
- package/src/elements/navigation/tabs/index.html +6 -0
- package/src/elements/navigation/tabs/index.js +132 -0
- package/src/elements/navigation/tabs/index.tags.json +1 -0
- package/src/elements/navigation/tabs/style.css +52 -0
- package/src/elements/overlay/dialog/index.html +5 -0
- package/src/elements/overlay/dialog/index.js +57 -0
- package/src/elements/overlay/dialog/index.tags.json +1 -0
- package/src/elements/overlay/dialog/style.css +31 -0
- package/src/elements/overlay/drawer/index.html +3 -0
- package/src/elements/overlay/drawer/index.js +56 -0
- package/src/elements/overlay/drawer/index.tags.json +1 -0
- package/src/elements/overlay/drawer/style.css +48 -0
- package/src/elements/overlay/menu/index.html +3 -0
- package/src/elements/overlay/menu/index.js +107 -0
- package/src/elements/overlay/menu/index.tags.json +1 -0
- package/src/elements/overlay/menu/style.css +43 -0
- package/src/elements/overlay/popover/index.html +3 -0
- package/src/elements/overlay/popover/index.js +44 -0
- package/src/elements/overlay/popover/index.tags.json +1 -0
- package/src/elements/overlay/popover/style.css +21 -0
- package/src/elements/overlay/sheet/index.html +8 -0
- package/src/elements/overlay/sheet/index.js +105 -0
- package/src/elements/overlay/sheet/index.tags.json +1 -0
- package/src/elements/overlay/sheet/style.css +64 -0
- package/src/elements/overlay/tooltip/index.html +6 -0
- package/src/elements/overlay/tooltip/index.js +16 -0
- package/src/elements/overlay/tooltip/index.tags.json +1 -0
- package/src/elements/overlay/tooltip/style.css +41 -0
- package/src/elements/primitives/avatar/index.html +2 -0
- package/src/elements/primitives/avatar/index.js +79 -0
- package/src/elements/primitives/avatar/index.tags.json +1 -0
- package/src/elements/primitives/avatar/style.css +36 -0
- package/src/elements/primitives/badge/index.html +3 -0
- package/src/elements/primitives/badge/index.js +20 -0
- package/src/elements/primitives/badge/index.tags.json +1 -0
- package/src/elements/primitives/badge/style.css +67 -0
- package/src/elements/primitives/button/index.html +3 -0
- package/src/elements/primitives/button/index.js +61 -0
- package/src/elements/primitives/button/index.tags.json +1 -0
- package/src/elements/primitives/button/style.css +66 -0
- package/src/elements/primitives/divider/index.html +1 -0
- package/src/elements/primitives/divider/index.js +43 -0
- package/src/elements/primitives/divider/index.tags.json +1 -0
- package/src/elements/primitives/divider/style.css +39 -0
- package/src/elements/primitives/icon/index.html +3 -0
- package/src/elements/primitives/icon/index.js +66 -0
- package/src/elements/primitives/icon/index.tags.json +1 -0
- package/src/elements/primitives/icon/style.css +20 -0
- package/src/elements/primitives/link/index.html +3 -0
- package/src/elements/primitives/link/index.js +129 -0
- package/src/elements/primitives/link/index.tags.json +1 -0
- package/src/elements/primitives/link/style.css +40 -0
- package/src/elements/primitives/spinner/index.html +1 -0
- package/src/elements/primitives/spinner/index.js +62 -0
- package/src/elements/primitives/spinner/index.tags.json +1 -0
- package/src/elements/primitives/spinner/style.css +20 -0
- package/src/elements/primitives/text/index.html +1 -0
- package/src/elements/primitives/text/index.js +79 -0
- package/src/elements/primitives/text/index.tags.json +1 -0
- package/src/elements/primitives/text/style.css +25 -0
- package/src/index.js +23 -0
- package/src/styles/base.css +66 -0
- package/src/styles/index.css +10 -0
- package/src/styles/layers.css +9 -0
- package/src/styles/reset.css +66 -0
- package/src/sw/activate.js +51 -0
- package/src/sw/expire.js +47 -0
- package/src/sw/index.js +28 -0
- package/src/sw/install.js +35 -0
- package/src/sw/push.js +58 -0
- package/src/sw/queue.js +60 -0
- package/src/sw/routes.js +71 -0
- package/src/sw/strategies.js +247 -0
- package/src/sw/sync.js +80 -0
- package/src/tokens/index.css +26 -0
- package/src/tokens/primitives/colors.css +54 -0
- package/src/tokens/primitives/motion.css +34 -0
- package/src/tokens/primitives/radius.css +16 -0
- package/src/tokens/primitives/shadow.css +34 -0
- package/src/tokens/primitives/spacing.css +27 -0
- package/src/tokens/primitives/typography.css +46 -0
- package/src/tokens/primitives/zindex.css +18 -0
- package/src/tokens/registered/colors.css +133 -0
- package/src/tokens/registered/dimensions.css +31 -0
- package/src/tokens/semantic/components.css +125 -0
- package/src/tokens/semantic/contrast.css +33 -0
- package/src/tokens/semantic/dark.css +61 -0
- package/src/tokens/semantic/light.css +64 -0
- package/types/core/animations/index.d.ts +52 -0
- package/types/core/api/index.d.ts +68 -0
- package/types/core/events/index.d.ts +50 -0
- package/types/core/offline/index.d.ts +68 -0
- package/types/core/platform/index.d.ts +60 -0
- package/types/core/router/index.d.ts +203 -0
- package/types/core/security/index.d.ts +33 -0
- package/types/core/state/index.d.ts +68 -0
- package/types/core/storage/index.d.ts +40 -0
- package/types/core/ui/index.d.ts +446 -0
- package/types/core/workers/index.d.ts +221 -0
- package/types/elements/index.d.ts +150 -0
- package/types/index.d.ts +18 -0
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* types/core/ui/index.d.ts
|
|
3
|
+
*
|
|
4
|
+
* Strict TypeScript declarations for the Native UI runtime.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export type TaskPriority = 'user-blocking' | 'user-visible' | 'background';
|
|
8
|
+
|
|
9
|
+
export type MaybePromise<T> = T | Promise<T>;
|
|
10
|
+
|
|
11
|
+
export type Disposer = () => void;
|
|
12
|
+
|
|
13
|
+
export type RefsMap = Record<string, Element>;
|
|
14
|
+
|
|
15
|
+
export type ElementRefs<T> = {
|
|
16
|
+
[K in keyof T]: Element;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type PropConstructor =
|
|
20
|
+
| BooleanConstructor
|
|
21
|
+
| NumberConstructor
|
|
22
|
+
| StringConstructor;
|
|
23
|
+
|
|
24
|
+
export type PropValueFromConstructor<T> =
|
|
25
|
+
T extends BooleanConstructor ? boolean :
|
|
26
|
+
T extends NumberConstructor ? number :
|
|
27
|
+
T extends StringConstructor ? string :
|
|
28
|
+
never;
|
|
29
|
+
|
|
30
|
+
export interface PropConfig<T extends PropConstructor = PropConstructor> {
|
|
31
|
+
type: T;
|
|
32
|
+
default?: PropValueFromConstructor<T>;
|
|
33
|
+
state?: boolean;
|
|
34
|
+
reflect?: boolean;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export type AnyPropConfig =
|
|
38
|
+
| PropConfig<BooleanConstructor>
|
|
39
|
+
| PropConfig<NumberConstructor>
|
|
40
|
+
| PropConfig<StringConstructor>;
|
|
41
|
+
|
|
42
|
+
export type PropsDefinition = Record<string, AnyPropConfig>;
|
|
43
|
+
|
|
44
|
+
export type InferProps<Props extends PropsDefinition> = {
|
|
45
|
+
[K in keyof Props]: PropValueFromConstructor<Props[K]['type']>;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export type ComponentHost<
|
|
49
|
+
Props extends PropsDefinition = {},
|
|
50
|
+
Methods extends Record<string, (...args: any[]) => any> = {}
|
|
51
|
+
> = HTMLElement & InferProps<Props> & Methods;
|
|
52
|
+
|
|
53
|
+
export type InternalsFor<Form extends boolean> =
|
|
54
|
+
Form extends true ? ElementInternals : ElementInternals | undefined;
|
|
55
|
+
|
|
56
|
+
export interface TagsApi {
|
|
57
|
+
one<E extends Element = Element>(selector: string): E | null;
|
|
58
|
+
all<E extends Element = Element>(selector: string): E[];
|
|
59
|
+
each<E extends Element = Element>(
|
|
60
|
+
selector: string,
|
|
61
|
+
fn: (element: E, index: number) => void
|
|
62
|
+
): void;
|
|
63
|
+
has(selector: string): boolean;
|
|
64
|
+
clear(): void;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface DelegatedEventOptions extends AddEventListenerOptions {
|
|
68
|
+
signal?: AbortSignal;
|
|
69
|
+
once?: boolean;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export type DelegatedEventHandler<
|
|
73
|
+
EventType extends Event = Event,
|
|
74
|
+
Target extends Element = Element
|
|
75
|
+
> = (event: EventType, target: Target) => void;
|
|
76
|
+
|
|
77
|
+
export interface DelegatedEventBinder<EventType extends Event = Event> {
|
|
78
|
+
<Target extends Element = Element>(
|
|
79
|
+
selector: string,
|
|
80
|
+
handler: DelegatedEventHandler<EventType, Target>,
|
|
81
|
+
options?: AbortSignal | DelegatedEventOptions
|
|
82
|
+
): Disposer;
|
|
83
|
+
|
|
84
|
+
once<Target extends Element = Element>(
|
|
85
|
+
selector: string,
|
|
86
|
+
handler: DelegatedEventHandler<EventType, Target>,
|
|
87
|
+
options?: AbortSignal | Omit<DelegatedEventOptions, 'once'>
|
|
88
|
+
): Disposer;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export type EventDelegator = {
|
|
92
|
+
[K in keyof GlobalEventHandlersEventMap]: DelegatedEventBinder<GlobalEventHandlersEventMap[K]>;
|
|
93
|
+
} & {
|
|
94
|
+
[customEvent: string]: DelegatedEventBinder<Event>;
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export interface WatchOptions {
|
|
98
|
+
signal?: AbortSignal;
|
|
99
|
+
once?: boolean;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export type WatchTarget<T extends Element = Element> = string | T;
|
|
103
|
+
|
|
104
|
+
export type AttrWatchHandler<T extends Element = Element> = (
|
|
105
|
+
attrName: string,
|
|
106
|
+
newValue: string | null,
|
|
107
|
+
oldValue: string | null,
|
|
108
|
+
element: T
|
|
109
|
+
) => void;
|
|
110
|
+
|
|
111
|
+
export type KidsWatchHandler<T extends Element = Element> = (
|
|
112
|
+
change: {
|
|
113
|
+
added: Node[];
|
|
114
|
+
removed: Node[];
|
|
115
|
+
},
|
|
116
|
+
element: T
|
|
117
|
+
) => void;
|
|
118
|
+
|
|
119
|
+
export type TextWatchHandler<T extends Element = Element> = (
|
|
120
|
+
newText: string,
|
|
121
|
+
oldText: string | null,
|
|
122
|
+
element: T | null
|
|
123
|
+
) => void;
|
|
124
|
+
|
|
125
|
+
export type TreeWatchHandler<T extends Element = Element> = (
|
|
126
|
+
records: MutationRecord[],
|
|
127
|
+
element: T | null
|
|
128
|
+
) => void;
|
|
129
|
+
|
|
130
|
+
export interface WatchApi {
|
|
131
|
+
attr: {
|
|
132
|
+
<T extends Element = Element>(
|
|
133
|
+
target: WatchTarget<T>,
|
|
134
|
+
attr: string | readonly string[] | '*',
|
|
135
|
+
handler: AttrWatchHandler<T>,
|
|
136
|
+
options?: AbortSignal | WatchOptions
|
|
137
|
+
): Disposer;
|
|
138
|
+
|
|
139
|
+
once<T extends Element = Element>(
|
|
140
|
+
target: WatchTarget<T>,
|
|
141
|
+
attr: string | readonly string[] | '*',
|
|
142
|
+
handler: AttrWatchHandler<T>,
|
|
143
|
+
options?: AbortSignal | Omit<WatchOptions, 'once'>
|
|
144
|
+
): Disposer;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
kids: {
|
|
148
|
+
<T extends Element = Element>(
|
|
149
|
+
target: WatchTarget<T>,
|
|
150
|
+
handler: KidsWatchHandler<T>,
|
|
151
|
+
options?: AbortSignal | WatchOptions
|
|
152
|
+
): Disposer;
|
|
153
|
+
|
|
154
|
+
<T extends Element = Element>(
|
|
155
|
+
target: WatchTarget<T>,
|
|
156
|
+
config: { deep?: boolean },
|
|
157
|
+
handler: KidsWatchHandler<T>,
|
|
158
|
+
options?: AbortSignal | WatchOptions
|
|
159
|
+
): Disposer;
|
|
160
|
+
|
|
161
|
+
once<T extends Element = Element>(
|
|
162
|
+
target: WatchTarget<T>,
|
|
163
|
+
handler: KidsWatchHandler<T>,
|
|
164
|
+
options?: AbortSignal | Omit<WatchOptions, 'once'>
|
|
165
|
+
): Disposer;
|
|
166
|
+
|
|
167
|
+
once<T extends Element = Element>(
|
|
168
|
+
target: WatchTarget<T>,
|
|
169
|
+
config: { deep?: boolean },
|
|
170
|
+
handler: KidsWatchHandler<T>,
|
|
171
|
+
options?: AbortSignal | Omit<WatchOptions, 'once'>
|
|
172
|
+
): Disposer;
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
text: {
|
|
176
|
+
<T extends Element = Element>(
|
|
177
|
+
target: WatchTarget<T>,
|
|
178
|
+
handler: TextWatchHandler<T>,
|
|
179
|
+
options?: AbortSignal | WatchOptions
|
|
180
|
+
): Disposer;
|
|
181
|
+
|
|
182
|
+
once<T extends Element = Element>(
|
|
183
|
+
target: WatchTarget<T>,
|
|
184
|
+
handler: TextWatchHandler<T>,
|
|
185
|
+
options?: AbortSignal | Omit<WatchOptions, 'once'>
|
|
186
|
+
): Disposer;
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
tree: {
|
|
190
|
+
<T extends Element = Element>(
|
|
191
|
+
target: WatchTarget<T>,
|
|
192
|
+
handler: TreeWatchHandler<T>,
|
|
193
|
+
options?: AbortSignal | WatchOptions
|
|
194
|
+
): Disposer;
|
|
195
|
+
|
|
196
|
+
once<T extends Element = Element>(
|
|
197
|
+
target: WatchTarget<T>,
|
|
198
|
+
handler: TreeWatchHandler<T>,
|
|
199
|
+
options?: AbortSignal | Omit<WatchOptions, 'once'>
|
|
200
|
+
): Disposer;
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export interface BaseLifecycleContext<
|
|
205
|
+
Props extends PropsDefinition = {},
|
|
206
|
+
Refs extends ElementRefs<Refs> = RefsMap,
|
|
207
|
+
Form extends boolean = false,
|
|
208
|
+
Methods extends Record<string, (...args: any[]) => any> = {}
|
|
209
|
+
> {
|
|
210
|
+
el: ComponentHost<Props, Methods>;
|
|
211
|
+
ctrl: AbortController;
|
|
212
|
+
tags: TagsApi;
|
|
213
|
+
on: EventDelegator;
|
|
214
|
+
refs: Readonly<Refs>;
|
|
215
|
+
watch: WatchApi;
|
|
216
|
+
internals: InternalsFor<Form>;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
export type MountContext<
|
|
220
|
+
Props extends PropsDefinition = {},
|
|
221
|
+
Refs extends ElementRefs<Refs> = RefsMap,
|
|
222
|
+
Form extends boolean = false,
|
|
223
|
+
Methods extends Record<string, (...args: any[]) => any> = {}
|
|
224
|
+
> = BaseLifecycleContext<Props, Refs, Form, Methods>;
|
|
225
|
+
|
|
226
|
+
export type UpdateContext<
|
|
227
|
+
Props extends PropsDefinition = {},
|
|
228
|
+
Refs extends ElementRefs<Refs> = RefsMap,
|
|
229
|
+
Form extends boolean = false,
|
|
230
|
+
Methods extends Record<string, (...args: any[]) => any> = {}
|
|
231
|
+
> = keyof Props extends never
|
|
232
|
+
? never
|
|
233
|
+
: {
|
|
234
|
+
[K in keyof Props & string]:
|
|
235
|
+
BaseLifecycleContext<Props, Refs, Form, Methods> & {
|
|
236
|
+
name: K;
|
|
237
|
+
val: PropValueFromConstructor<Props[K]['type']>;
|
|
238
|
+
prev: PropValueFromConstructor<Props[K]['type']>;
|
|
239
|
+
old: PropValueFromConstructor<Props[K]['type']>;
|
|
240
|
+
}
|
|
241
|
+
}[keyof Props & string];
|
|
242
|
+
|
|
243
|
+
export type UnmountContext<
|
|
244
|
+
Props extends PropsDefinition = {},
|
|
245
|
+
Refs extends ElementRefs<Refs> = RefsMap,
|
|
246
|
+
Form extends boolean = false,
|
|
247
|
+
Methods extends Record<string, (...args: any[]) => any> = {}
|
|
248
|
+
> = Pick<
|
|
249
|
+
BaseLifecycleContext<Props, Refs, Form, Methods>,
|
|
250
|
+
'el' | 'tags' | 'refs' | 'watch' | 'internals'
|
|
251
|
+
>;
|
|
252
|
+
|
|
253
|
+
export interface ElementSpec<
|
|
254
|
+
Props extends PropsDefinition = {},
|
|
255
|
+
Refs extends ElementRefs<Refs> = RefsMap,
|
|
256
|
+
Form extends boolean = false,
|
|
257
|
+
Methods extends Record<string, (...args: any[]) => any> = {}
|
|
258
|
+
> {
|
|
259
|
+
template?: string;
|
|
260
|
+
style?: string;
|
|
261
|
+
mode?: ShadowRootMode;
|
|
262
|
+
props?: Props;
|
|
263
|
+
form?: Form;
|
|
264
|
+
url?: string;
|
|
265
|
+
container?: string;
|
|
266
|
+
query?: readonly string[] | string[];
|
|
267
|
+
meta?: Record<string, unknown>;
|
|
268
|
+
|
|
269
|
+
mount?: (
|
|
270
|
+
context: MountContext<Props, Refs, Form, Methods>
|
|
271
|
+
) => MaybePromise<void>;
|
|
272
|
+
|
|
273
|
+
update?: (
|
|
274
|
+
context: UpdateContext<Props, Refs, Form, Methods>
|
|
275
|
+
) => MaybePromise<void>;
|
|
276
|
+
|
|
277
|
+
unmount?: (
|
|
278
|
+
context: UnmountContext<Props, Refs, Form, Methods>
|
|
279
|
+
) => void;
|
|
280
|
+
|
|
281
|
+
associated?: (
|
|
282
|
+
this: ComponentHost<Props, Methods>,
|
|
283
|
+
form: HTMLFormElement | null
|
|
284
|
+
) => void;
|
|
285
|
+
|
|
286
|
+
disabled?: (
|
|
287
|
+
this: ComponentHost<Props, Methods>,
|
|
288
|
+
value: boolean
|
|
289
|
+
) => void;
|
|
290
|
+
|
|
291
|
+
reset?: (
|
|
292
|
+
this: ComponentHost<Props, Methods>
|
|
293
|
+
) => void;
|
|
294
|
+
|
|
295
|
+
restore?: (
|
|
296
|
+
this: ComponentHost<Props, Methods>,
|
|
297
|
+
state: unknown,
|
|
298
|
+
mode: string
|
|
299
|
+
) => void;
|
|
300
|
+
|
|
301
|
+
methods?: Methods;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
export interface SwapViewOptions {
|
|
305
|
+
direction?: 'push' | 'pop' | 'replace' | string;
|
|
306
|
+
params?: Record<string, string>;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
export type ContainerHost<Props extends PropsDefinition = {}> =
|
|
310
|
+
ComponentHost<Props> & {
|
|
311
|
+
swapView(newElement: Element, options?: SwapViewOptions): Promise<void>;
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
export type ContainerMountContext<
|
|
315
|
+
Props extends PropsDefinition = {},
|
|
316
|
+
Refs extends ElementRefs<Refs> = RefsMap
|
|
317
|
+
> = Omit<MountContext<Props, Refs, false>, 'el'> & {
|
|
318
|
+
el: ContainerHost<Props>;
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
export interface ContainerSpec<
|
|
322
|
+
Props extends PropsDefinition = {},
|
|
323
|
+
Refs extends ElementRefs<Refs> = RefsMap
|
|
324
|
+
> extends Omit<
|
|
325
|
+
ElementSpec<Props, Refs, false>,
|
|
326
|
+
'mount' | 'update' | 'unmount' | 'form'
|
|
327
|
+
> {
|
|
328
|
+
mount?: (
|
|
329
|
+
context: ContainerMountContext<Props, Refs>
|
|
330
|
+
) => MaybePromise<void>;
|
|
331
|
+
|
|
332
|
+
update?: (
|
|
333
|
+
context: UpdateContext<Props, Refs, false>
|
|
334
|
+
) => MaybePromise<void>;
|
|
335
|
+
|
|
336
|
+
unmount?: (
|
|
337
|
+
context: UnmountContext<Props, Refs, false>
|
|
338
|
+
) => void;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
export interface ObserveApi {
|
|
342
|
+
resize(
|
|
343
|
+
el: Element,
|
|
344
|
+
fn: (entries: ResizeObserverEntry[]) => void,
|
|
345
|
+
signal?: AbortSignal
|
|
346
|
+
): Disposer;
|
|
347
|
+
|
|
348
|
+
intersection(
|
|
349
|
+
el: Element,
|
|
350
|
+
fn: (entries: IntersectionObserverEntry[]) => void,
|
|
351
|
+
signal?: AbortSignal,
|
|
352
|
+
options?: IntersectionObserverInit
|
|
353
|
+
): Disposer;
|
|
354
|
+
|
|
355
|
+
mutation(
|
|
356
|
+
el: Node,
|
|
357
|
+
fn: (mutations: MutationRecord[]) => void,
|
|
358
|
+
signal?: AbortSignal,
|
|
359
|
+
options?: MutationObserverInit
|
|
360
|
+
): Disposer;
|
|
361
|
+
|
|
362
|
+
performance(
|
|
363
|
+
types: string[],
|
|
364
|
+
fn: (list: PerformanceObserverEntryList) => void,
|
|
365
|
+
signal?: AbortSignal,
|
|
366
|
+
options?: PerformanceObserverInit
|
|
367
|
+
): Disposer;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
export interface ViewTransitionLike<T = unknown> {
|
|
371
|
+
finished: Promise<T>;
|
|
372
|
+
updateCallbackDone: Promise<T>;
|
|
373
|
+
ready: Promise<unknown>;
|
|
374
|
+
skipTransition(): void;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
export class BaseElement extends HTMLElement {
|
|
378
|
+
ctrl: AbortController | null;
|
|
379
|
+
|
|
380
|
+
constructor();
|
|
381
|
+
connectedCallback(): void;
|
|
382
|
+
disconnectedCallback(): void;
|
|
383
|
+
mount(): void;
|
|
384
|
+
unmount(): void;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export function define<TagName extends string>(
|
|
388
|
+
tagName: TagName,
|
|
389
|
+
elementClass: CustomElementConstructor
|
|
390
|
+
): void;
|
|
391
|
+
|
|
392
|
+
export function element<
|
|
393
|
+
TagName extends string,
|
|
394
|
+
Props extends PropsDefinition = {},
|
|
395
|
+
Refs extends ElementRefs<Refs> = RefsMap,
|
|
396
|
+
Form extends boolean = false,
|
|
397
|
+
Methods extends Record<string, (...args: any[]) => any> = {}
|
|
398
|
+
>(
|
|
399
|
+
tagName: TagName,
|
|
400
|
+
spec: ElementSpec<Props, Refs, Form, Methods>,
|
|
401
|
+
base?: string | URL
|
|
402
|
+
): void;
|
|
403
|
+
|
|
404
|
+
export function container<
|
|
405
|
+
TagName extends string,
|
|
406
|
+
Props extends PropsDefinition = {},
|
|
407
|
+
Refs extends ElementRefs<Refs> = RefsMap
|
|
408
|
+
>(
|
|
409
|
+
tagName: TagName,
|
|
410
|
+
spec: ContainerSpec<Props, Refs>,
|
|
411
|
+
base?: string | URL
|
|
412
|
+
): void;
|
|
413
|
+
|
|
414
|
+
export function schedule<T>(
|
|
415
|
+
fn: () => T | Promise<T>,
|
|
416
|
+
priority?: TaskPriority
|
|
417
|
+
): Promise<T>;
|
|
418
|
+
|
|
419
|
+
export function scheduleFrame<T>(fn: () => T): Promise<T>;
|
|
420
|
+
|
|
421
|
+
export function yieldTask(): Promise<void>;
|
|
422
|
+
|
|
423
|
+
export function transition<T>(
|
|
424
|
+
fn: () => T
|
|
425
|
+
): Promise<ViewTransitionLike<T>>;
|
|
426
|
+
|
|
427
|
+
export function template(
|
|
428
|
+
strings: TemplateStringsArray,
|
|
429
|
+
...values: unknown[]
|
|
430
|
+
): DocumentFragment;
|
|
431
|
+
|
|
432
|
+
export const observe: ObserveApi;
|
|
433
|
+
|
|
434
|
+
export interface UiApi {
|
|
435
|
+
define: typeof define;
|
|
436
|
+
element: typeof element;
|
|
437
|
+
container: typeof container;
|
|
438
|
+
schedule: typeof schedule;
|
|
439
|
+
scheduleFrame: typeof scheduleFrame;
|
|
440
|
+
yield: typeof yieldTask;
|
|
441
|
+
transition: typeof transition;
|
|
442
|
+
template: typeof template;
|
|
443
|
+
observe: ObserveApi;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
export const ui: UiApi;
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* types/core/workers/index.d.ts
|
|
3
|
+
*
|
|
4
|
+
* TypeScript declarations for the multi-threaded concurrency layer.
|
|
5
|
+
* Source: plan.md Phase 1 — Contract
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
// Message contract
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
/** Shape of a message sent to a worker. */
|
|
13
|
+
export interface WorkerRequest {
|
|
14
|
+
task: string;
|
|
15
|
+
payload?: any;
|
|
16
|
+
meta?: any;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Shape of a message received from a worker. */
|
|
20
|
+
export interface WorkerResponse {
|
|
21
|
+
ok: boolean;
|
|
22
|
+
value?: any;
|
|
23
|
+
error?: string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
// Shared task options
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
|
|
30
|
+
export interface TaskOptions {
|
|
31
|
+
/** Data to clone-transfer to the worker. Must be structured-clone safe. */
|
|
32
|
+
payload?: any;
|
|
33
|
+
/** Scheduling priority. Default: 'user-visible'. */
|
|
34
|
+
priority?: 'user-blocking' | 'user-visible' | 'background';
|
|
35
|
+
/** Transferables handed off to the worker (sender loses access). */
|
|
36
|
+
transferables?: Transferable[];
|
|
37
|
+
/** Signal to cancel the in-flight or queued task. */
|
|
38
|
+
signal?: AbortSignal;
|
|
39
|
+
/** Milliseconds before the task is automatically aborted. */
|
|
40
|
+
timeout?: number;
|
|
41
|
+
/** Arbitrary metadata forwarded to the worker. */
|
|
42
|
+
meta?: any;
|
|
43
|
+
/** Pool size hint (used only when the pool is first created). */
|
|
44
|
+
size?: number;
|
|
45
|
+
/** Maximum pool size cap. */
|
|
46
|
+
max?: number;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
// Dedicated worker
|
|
51
|
+
// ---------------------------------------------------------------------------
|
|
52
|
+
|
|
53
|
+
export interface RunOptions {
|
|
54
|
+
payload?: any;
|
|
55
|
+
transferables?: Transferable[];
|
|
56
|
+
signal?: AbortSignal;
|
|
57
|
+
timeout?: number;
|
|
58
|
+
meta?: any;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export declare class Dedicated {
|
|
62
|
+
constructor(script: string);
|
|
63
|
+
readonly closed: boolean;
|
|
64
|
+
run(task: string, options?: RunOptions): Promise<any>;
|
|
65
|
+
terminate(): void;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** @deprecated Use Dedicated */
|
|
69
|
+
export declare class DedicatedWorker extends Dedicated {}
|
|
70
|
+
|
|
71
|
+
// ---------------------------------------------------------------------------
|
|
72
|
+
// Worker pool
|
|
73
|
+
// ---------------------------------------------------------------------------
|
|
74
|
+
|
|
75
|
+
export interface PoolOptions {
|
|
76
|
+
size?: number;
|
|
77
|
+
max?: number;
|
|
78
|
+
idle?: number;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface PoolTaskOptions extends RunOptions {
|
|
82
|
+
priority?: 'user-blocking' | 'user-visible' | 'background';
|
|
83
|
+
idempotent?: boolean;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export declare class Pool {
|
|
87
|
+
constructor(script: string, opts?: PoolOptions);
|
|
88
|
+
readonly size: number;
|
|
89
|
+
readonly pending: number;
|
|
90
|
+
run(task: string, options?: PoolTaskOptions): Promise<any>;
|
|
91
|
+
terminate(): void;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** @deprecated Use Pool */
|
|
95
|
+
export declare class WorkerPool extends Pool {}
|
|
96
|
+
|
|
97
|
+
// ---------------------------------------------------------------------------
|
|
98
|
+
// Shared worker
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
|
|
101
|
+
export declare class Shared {
|
|
102
|
+
constructor(script: string, name?: string);
|
|
103
|
+
readonly connected: boolean;
|
|
104
|
+
readonly closed: boolean;
|
|
105
|
+
connect(): void;
|
|
106
|
+
send(message: any, transferables?: Transferable[]): void;
|
|
107
|
+
subscribe(fn: (msg: any) => void, signal?: AbortSignal): () => void;
|
|
108
|
+
close(): void;
|
|
109
|
+
/** @deprecated Use send() */
|
|
110
|
+
postMessage(msg: any, transfer?: Transferable[]): void;
|
|
111
|
+
/** @deprecated Use subscribe() */
|
|
112
|
+
onMessage(fn: (msg: any) => void, signal?: AbortSignal): () => void;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/** @deprecated Use Shared */
|
|
116
|
+
export declare class SharedConnection extends Shared {}
|
|
117
|
+
|
|
118
|
+
// ---------------------------------------------------------------------------
|
|
119
|
+
// Locks
|
|
120
|
+
// ---------------------------------------------------------------------------
|
|
121
|
+
|
|
122
|
+
export interface LockOptions {
|
|
123
|
+
signal?: AbortSignal;
|
|
124
|
+
mode?: 'exclusive' | 'shared';
|
|
125
|
+
timeout?: number;
|
|
126
|
+
ifAvailable?: boolean;
|
|
127
|
+
steal?: boolean;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export declare function lock(
|
|
131
|
+
name: string,
|
|
132
|
+
fn: () => any | Promise<any>,
|
|
133
|
+
options?: LockOptions
|
|
134
|
+
): Promise<any>;
|
|
135
|
+
|
|
136
|
+
// ---------------------------------------------------------------------------
|
|
137
|
+
// Broadcast
|
|
138
|
+
// ---------------------------------------------------------------------------
|
|
139
|
+
|
|
140
|
+
export interface BroadcastManager {
|
|
141
|
+
broadcast(name: string, payload: any): void;
|
|
142
|
+
subscribe(name: string, fn: (msg: any) => void, signal?: AbortSignal): () => void;
|
|
143
|
+
close(name: string): void;
|
|
144
|
+
clear(): void;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export declare const broadcast: BroadcastManager;
|
|
148
|
+
|
|
149
|
+
// ---------------------------------------------------------------------------
|
|
150
|
+
// Offscreen canvas
|
|
151
|
+
// ---------------------------------------------------------------------------
|
|
152
|
+
|
|
153
|
+
export interface OffscreenOptions {
|
|
154
|
+
onError?: (err: Error) => void;
|
|
155
|
+
onResize?: (dims: { width: number; height: number; dpr: number }) => void;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export interface ResizeOptions {
|
|
159
|
+
width?: number;
|
|
160
|
+
height?: number;
|
|
161
|
+
dpr?: number;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export declare class Offscreen {
|
|
165
|
+
constructor(canvas: HTMLCanvasElement, script: string, opts?: OffscreenOptions);
|
|
166
|
+
readonly ready: boolean;
|
|
167
|
+
readonly closed: boolean;
|
|
168
|
+
open(): Promise<this>;
|
|
169
|
+
send(payload: any, transferables?: Transferable[]): void;
|
|
170
|
+
resize(opts?: ResizeOptions): void;
|
|
171
|
+
close(): void;
|
|
172
|
+
/** @deprecated Use close() */
|
|
173
|
+
terminate(): void;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/** @deprecated Use Offscreen */
|
|
177
|
+
export declare class OffscreenHandle extends Offscreen {}
|
|
178
|
+
|
|
179
|
+
export declare function offscreen(
|
|
180
|
+
canvas: HTMLCanvasElement,
|
|
181
|
+
script: string,
|
|
182
|
+
opts?: OffscreenOptions
|
|
183
|
+
): Promise<Offscreen>;
|
|
184
|
+
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
// Feature detection
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
|
|
189
|
+
export declare const has: {
|
|
190
|
+
worker: boolean;
|
|
191
|
+
shared: boolean;
|
|
192
|
+
channel: boolean;
|
|
193
|
+
locks: boolean;
|
|
194
|
+
offscreen: boolean;
|
|
195
|
+
isolated: boolean;
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
// ---------------------------------------------------------------------------
|
|
199
|
+
// Facade
|
|
200
|
+
// ---------------------------------------------------------------------------
|
|
201
|
+
|
|
202
|
+
export declare const workers: {
|
|
203
|
+
/** Run a task in a lazily allocated pool. */
|
|
204
|
+
run(script: string, task: string, opts?: TaskOptions): Promise<any>;
|
|
205
|
+
/** Create a standalone dedicated worker (not pooled). */
|
|
206
|
+
dedicated(script: string): Dedicated;
|
|
207
|
+
/** Connect to a SharedWorker (or dedicated fallback). */
|
|
208
|
+
shared(script: string, name?: string): Shared;
|
|
209
|
+
/** Acquire a named lock and execute fn within it. */
|
|
210
|
+
lock: typeof lock;
|
|
211
|
+
/** Send a message to a named BroadcastChannel. */
|
|
212
|
+
broadcast(name: string, payload: any): void;
|
|
213
|
+
/** Subscribe to a named BroadcastChannel. Returns a dispose function. */
|
|
214
|
+
subscribe(name: string, fn: (msg: any) => void, signal?: AbortSignal): () => void;
|
|
215
|
+
/** Transfer a canvas to a worker. Returns a Promise<Offscreen>. */
|
|
216
|
+
offscreen(canvas: HTMLCanvasElement, script: string, opts?: OffscreenOptions): Promise<Offscreen>;
|
|
217
|
+
/** Terminate the pool for one script and remove it. */
|
|
218
|
+
close(script: string): void;
|
|
219
|
+
/** Terminate all pools and clear all broadcasts. */
|
|
220
|
+
clear(): void;
|
|
221
|
+
};
|