@nextwebwg/html-next 1.0.0-alpha.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/LICENSE +21 -0
- package/README.md +26 -0
- package/dist/ast.d.ts +7 -0
- package/dist/ast.d.ts.map +1 -0
- package/dist/ast.js +2 -0
- package/dist/ast.js.map +1 -0
- package/dist/browser-loader.bundle.js +9 -0
- package/dist/browser-loader.d.ts +35 -0
- package/dist/browser-loader.d.ts.map +1 -0
- package/dist/browser-loader.js +83 -0
- package/dist/browser-loader.js.map +1 -0
- package/dist/browser-source.d.ts +10 -0
- package/dist/browser-source.d.ts.map +1 -0
- package/dist/browser-source.js +97 -0
- package/dist/browser-source.js.map +1 -0
- package/dist/browser.d.ts +5 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +9 -0
- package/dist/browser.js.map +1 -0
- package/dist/cli.d.ts +31 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +138 -0
- package/dist/cli.js.map +1 -0
- package/dist/component-styles-build.d.ts +11 -0
- package/dist/component-styles-build.d.ts.map +1 -0
- package/dist/component-styles-build.js +74 -0
- package/dist/component-styles-build.js.map +1 -0
- package/dist/component-styles.d.ts +37 -0
- package/dist/component-styles.d.ts.map +1 -0
- package/dist/component-styles.js +236 -0
- package/dist/component-styles.js.map +1 -0
- package/dist/contract-platform.d.ts +5 -0
- package/dist/contract-platform.d.ts.map +1 -0
- package/dist/contract-platform.js +8 -0
- package/dist/contract-platform.js.map +1 -0
- package/dist/contract.d.ts +14 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +234 -0
- package/dist/contract.js.map +1 -0
- package/dist/controller-files.d.ts +10 -0
- package/dist/controller-files.d.ts.map +1 -0
- package/dist/controller-files.js +54 -0
- package/dist/controller-files.js.map +1 -0
- package/dist/controller.d.ts +15 -0
- package/dist/controller.d.ts.map +1 -0
- package/dist/controller.js +33 -0
- package/dist/controller.js.map +1 -0
- package/dist/data.d.ts +28 -0
- package/dist/data.d.ts.map +1 -0
- package/dist/data.js +100 -0
- package/dist/data.js.map +1 -0
- package/dist/diagnostics.d.ts +11 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +13 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/expression.d.ts +80 -0
- package/dist/expression.d.ts.map +1 -0
- package/dist/expression.js +474 -0
- package/dist/expression.js.map +1 -0
- package/dist/freeze.d.ts +2 -0
- package/dist/freeze.d.ts.map +1 -0
- package/dist/freeze.js +8 -0
- package/dist/freeze.js.map +1 -0
- package/dist/generate.d.ts +11 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +41 -0
- package/dist/generate.js.map +1 -0
- package/dist/generated/dom-properties.d.ts +8 -0
- package/dist/generated/dom-properties.d.ts.map +1 -0
- package/dist/generated/dom-properties.js +1410 -0
- package/dist/generated/dom-properties.js.map +1 -0
- package/dist/generated-runtime.d.ts +42 -0
- package/dist/generated-runtime.d.ts.map +1 -0
- package/dist/generated-runtime.js +266 -0
- package/dist/generated-runtime.js.map +1 -0
- package/dist/graph.d.ts +37 -0
- package/dist/graph.d.ts.map +1 -0
- package/dist/graph.js +81 -0
- package/dist/graph.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/language.d.ts +7 -0
- package/dist/language.d.ts.map +1 -0
- package/dist/language.js +43 -0
- package/dist/language.js.map +1 -0
- package/dist/names.d.ts +4 -0
- package/dist/names.d.ts.map +1 -0
- package/dist/names.js +19 -0
- package/dist/names.js.map +1 -0
- package/dist/node-loader.d.ts +22 -0
- package/dist/node-loader.d.ts.map +1 -0
- package/dist/node-loader.js +109 -0
- package/dist/node-loader.js.map +1 -0
- package/dist/package-config.d.ts +22 -0
- package/dist/package-config.d.ts.map +1 -0
- package/dist/package-config.js +2 -0
- package/dist/package-config.js.map +1 -0
- package/dist/package.d.ts +9 -0
- package/dist/package.d.ts.map +1 -0
- package/dist/package.js +208 -0
- package/dist/package.js.map +1 -0
- package/dist/parser.d.ts +11 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +938 -0
- package/dist/parser.js.map +1 -0
- package/dist/platform.d.ts +3 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +26 -0
- package/dist/platform.js.map +1 -0
- package/dist/reactivity.d.ts +88 -0
- package/dist/reactivity.d.ts.map +1 -0
- package/dist/reactivity.js +594 -0
- package/dist/reactivity.js.map +1 -0
- package/dist/registry.d.ts +14 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +39 -0
- package/dist/registry.js.map +1 -0
- package/dist/resolve.d.ts +24 -0
- package/dist/resolve.d.ts.map +1 -0
- package/dist/resolve.js +65 -0
- package/dist/resolve.js.map +1 -0
- package/dist/runtime.d.ts +110 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +1926 -0
- package/dist/runtime.js.map +1 -0
- package/dist/sanitize.d.ts +8 -0
- package/dist/sanitize.d.ts.map +1 -0
- package/dist/sanitize.js +38 -0
- package/dist/sanitize.js.map +1 -0
- package/dist/source-graph.d.ts +5 -0
- package/dist/source-graph.d.ts.map +1 -0
- package/dist/source-graph.js +60 -0
- package/dist/source-graph.js.map +1 -0
- package/dist/source-parser.d.ts +4 -0
- package/dist/source-parser.d.ts.map +1 -0
- package/dist/source-parser.js +38 -0
- package/dist/source-parser.js.map +1 -0
- package/dist/source.d.ts +4 -0
- package/dist/source.d.ts.map +1 -0
- package/dist/source.js +6 -0
- package/dist/source.js.map +1 -0
- package/dist/targets/backend.d.ts +28 -0
- package/dist/targets/backend.d.ts.map +1 -0
- package/dist/targets/backend.js +42 -0
- package/dist/targets/backend.js.map +1 -0
- package/dist/targets/docs.d.ts +3 -0
- package/dist/targets/docs.d.ts.map +1 -0
- package/dist/targets/docs.js +85 -0
- package/dist/targets/docs.js.map +1 -0
- package/dist/targets/native-reactive.d.ts +41 -0
- package/dist/targets/native-reactive.d.ts.map +1 -0
- package/dist/targets/native-reactive.js +169 -0
- package/dist/targets/native-reactive.js.map +1 -0
- package/dist/targets/shared.d.ts +15 -0
- package/dist/targets/shared.d.ts.map +1 -0
- package/dist/targets/shared.js +122 -0
- package/dist/targets/shared.js.map +1 -0
- package/dist/targets/vanilla.d.ts +6 -0
- package/dist/targets/vanilla.d.ts.map +1 -0
- package/dist/targets/vanilla.js +442 -0
- package/dist/targets/vanilla.js.map +1 -0
- package/dist/targets/vue.d.ts +3 -0
- package/dist/targets/vue.d.ts.map +1 -0
- package/dist/targets/vue.js +577 -0
- package/dist/targets/vue.js.map +1 -0
- package/dist/template.d.ts +172 -0
- package/dist/template.d.ts.map +1 -0
- package/dist/template.js +2 -0
- package/dist/template.js.map +1 -0
- package/dist/type-system.d.ts +80 -0
- package/dist/type-system.d.ts.map +1 -0
- package/dist/type-system.js +414 -0
- package/dist/type-system.js.map +1 -0
- package/dist/types.d.ts +51 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/validate.d.ts +38 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +297 -0
- package/dist/validate.js.map +1 -0
- package/dist/validation.d.ts +6 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +6 -0
- package/dist/validation.js.map +1 -0
- package/dist/validity-css.d.ts +6 -0
- package/dist/validity-css.d.ts.map +1 -0
- package/dist/validity-css.js +11 -0
- package/dist/validity-css.js.map +1 -0
- package/dist/validity.d.ts +45 -0
- package/dist/validity.d.ts.map +1 -0
- package/dist/validity.js +445 -0
- package/dist/validity.js.map +1 -0
- package/package.json +124 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ComponentGraphNode } from "./graph.js";
|
|
2
|
+
import type { ComponentHost } from "./runtime.js";
|
|
3
|
+
/** A component controller invoked with the instance's lifecycle-owned host. */
|
|
4
|
+
export type Controller = (host: ComponentHost) => void | (() => void) | Promise<void | (() => void)>;
|
|
5
|
+
export type ModuleImporter = (url: string) => Promise<unknown>;
|
|
6
|
+
export interface ControllerModule {
|
|
7
|
+
readonly default: Controller;
|
|
8
|
+
readonly [name: string]: unknown;
|
|
9
|
+
}
|
|
10
|
+
/** Loads and validates a declared controller through the host's native ESM loader. */
|
|
11
|
+
export declare function loadControllerModule(node: ComponentGraphNode, importer?: ModuleImporter): Promise<ControllerModule>;
|
|
12
|
+
export declare function loadController(node: ComponentGraphNode, importer?: ModuleImporter): Promise<Controller>;
|
|
13
|
+
/** Test/runtime boundary for documents that need an isolated native-module cache view. */
|
|
14
|
+
export declare function clearControllerCache(): void;
|
|
15
|
+
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,+EAA+E;AAC/E,MAAM,MAAM,UAAU,GAAG,CACvB,IAAI,EAAE,aAAa,KAChB,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AACxD,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAC/D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAClC;AAID,sFAAsF;AACtF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,GAAE,cAAqC,GAC9C,OAAO,CAAC,gBAAgB,CAAC,CA0B3B;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,GAAE,cAAqC,GAC9C,OAAO,CAAC,UAAU,CAAC,CAErB;AAED,0FAA0F;AAC1F,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { fail } from "./diagnostics.js";
|
|
2
|
+
const controllerModules = new Map();
|
|
3
|
+
/** Loads and validates a declared controller through the host's native ESM loader. */
|
|
4
|
+
export function loadControllerModule(node, importer = (url) => import(url)) {
|
|
5
|
+
const edge = node.controller;
|
|
6
|
+
if (edge === undefined) {
|
|
7
|
+
return Promise.reject(new TypeError(`<${node.definition.contract.tag}> does not declare a controller.`));
|
|
8
|
+
}
|
|
9
|
+
let pending = controllerModules.get(edge.url);
|
|
10
|
+
if (pending === undefined) {
|
|
11
|
+
pending = importer(edge.url).then((module) => {
|
|
12
|
+
const candidate = module?.default;
|
|
13
|
+
if (typeof candidate !== "function") {
|
|
14
|
+
fail("HJ002", `Controller module \`${edge.url}\` must default-export a function.`, node.url);
|
|
15
|
+
}
|
|
16
|
+
return Object.freeze({ ...module, default: candidate });
|
|
17
|
+
}).catch((error) => {
|
|
18
|
+
if (error instanceof Error && "diagnostic" in error)
|
|
19
|
+
throw error;
|
|
20
|
+
fail("HJ001", `Controller module \`${edge.url}\` failed to load: ${error instanceof Error ? error.message : String(error)}.`, node.url);
|
|
21
|
+
});
|
|
22
|
+
controllerModules.set(edge.url, pending);
|
|
23
|
+
}
|
|
24
|
+
return pending;
|
|
25
|
+
}
|
|
26
|
+
export async function loadController(node, importer = (url) => import(url)) {
|
|
27
|
+
return (await loadControllerModule(node, importer)).default;
|
|
28
|
+
}
|
|
29
|
+
/** Test/runtime boundary for documents that need an isolated native-module cache view. */
|
|
30
|
+
export function clearControllerCache() {
|
|
31
|
+
controllerModules.clear();
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAcxC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAqC,CAAC;AAEvE,sFAAsF;AACtF,MAAM,UAAU,oBAAoB,CAClC,IAAwB,EACxB,QAAQ,GAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;IAE/C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,kCAAkC,CAAC,CAClF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAI,MAAuC,EAAE,OAAO,CAAC;YACpE,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,EAAE,uBAAuB,IAAI,CAAC,GAAG,oCAAoC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/F,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAI,MAAkC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAqB,CAAC;QAC3G,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC1B,IAAI,KAAK,YAAY,KAAK,IAAI,YAAY,IAAI,KAAK;gBAAE,MAAM,KAAK,CAAC;YACjE,IAAI,CACF,OAAO,EACP,uBAAuB,IAAI,CAAC,GAAG,sBAAsB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAC9G,IAAI,CAAC,GAAG,CACT,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAwB,EACxB,QAAQ,GAAmB,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC;IAE/C,OAAO,CAAC,MAAM,oBAAoB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9D,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,oBAAoB;IAClC,iBAAiB,CAAC,KAAK,EAAE,CAAC;AAC5B,CAAC"}
|
package/dist/data.d.ts
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface DataState<T = unknown> {
|
|
2
|
+
readonly pending: boolean;
|
|
3
|
+
readonly value: T | null;
|
|
4
|
+
readonly error: unknown | null;
|
|
5
|
+
readonly ok: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface DataRequestOptions<T = unknown> {
|
|
8
|
+
readonly source: string;
|
|
9
|
+
readonly baseURL: string;
|
|
10
|
+
readonly type?: string;
|
|
11
|
+
readonly debounce?: number;
|
|
12
|
+
readonly poll?: number;
|
|
13
|
+
readonly fetch?: typeof fetch;
|
|
14
|
+
readonly setTimer?: (callback: () => void, delay: number) => unknown;
|
|
15
|
+
readonly clearTimer?: (handle: unknown) => void;
|
|
16
|
+
/** Optional application adapter for validation, coercion, or projection before publication. */
|
|
17
|
+
readonly adapt?: (value: unknown) => T;
|
|
18
|
+
readonly onState: (state: DataState<T>) => void;
|
|
19
|
+
}
|
|
20
|
+
/** An owned, abortable declared read with injectable network and clock boundaries. */
|
|
21
|
+
export declare class DataResource<T = unknown> {
|
|
22
|
+
#private;
|
|
23
|
+
readonly options: DataRequestOptions<T>;
|
|
24
|
+
constructor(options: DataRequestOptions<T>);
|
|
25
|
+
update(parameters: Readonly<Record<string, unknown>>): void;
|
|
26
|
+
disconnect(): void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO;IACpC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,+FAA+F;IAC/F,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACjD;AAqBD,sFAAsF;AACtF,qBAAa,YAAY,CAAC,CAAC,GAAG,OAAO;;IAUvB,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAAnD,YAAqB,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAIlD;IAED,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAW1D;IAED,UAAU,IAAI,IAAI,CAKjB;CAwCF"}
|
package/dist/data.js
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
function requestURL(source, baseURL, parameters) {
|
|
2
|
+
const used = new Set();
|
|
3
|
+
const expanded = source.replace(/\{([A-Za-z_$][A-Za-z0-9_$-]*)\}/g, (_match, name) => {
|
|
4
|
+
used.add(name);
|
|
5
|
+
const value = parameters[name];
|
|
6
|
+
return value == null ? "" : encodeURIComponent(String(value));
|
|
7
|
+
});
|
|
8
|
+
const url = new URL(expanded, baseURL);
|
|
9
|
+
for (const [name, value] of Object.entries(parameters)) {
|
|
10
|
+
if (used.has(name) || value == null)
|
|
11
|
+
continue;
|
|
12
|
+
if (Array.isArray(value)) {
|
|
13
|
+
for (const item of value)
|
|
14
|
+
url.searchParams.append(name, String(item));
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
url.searchParams.set(name, String(value));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return url.href;
|
|
21
|
+
}
|
|
22
|
+
/** An owned, abortable declared read with injectable network and clock boundaries. */
|
|
23
|
+
export class DataResource {
|
|
24
|
+
options;
|
|
25
|
+
#fetch;
|
|
26
|
+
#setTimer;
|
|
27
|
+
#clearTimer;
|
|
28
|
+
#parameters = {};
|
|
29
|
+
#abort;
|
|
30
|
+
#timer;
|
|
31
|
+
#generation = 0;
|
|
32
|
+
#connected = false;
|
|
33
|
+
constructor(options) {
|
|
34
|
+
this.options = options;
|
|
35
|
+
this.#fetch = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
36
|
+
this.#setTimer = options.setTimer ?? ((callback, delay) => setTimeout(callback, delay));
|
|
37
|
+
this.#clearTimer = options.clearTimer ?? ((handle) => clearTimeout(handle));
|
|
38
|
+
}
|
|
39
|
+
update(parameters) {
|
|
40
|
+
this.#parameters = { ...parameters };
|
|
41
|
+
this.#connected = true;
|
|
42
|
+
this.#cancel();
|
|
43
|
+
const generation = ++this.#generation;
|
|
44
|
+
const run = () => { void this.#request(generation); };
|
|
45
|
+
if ((this.options.debounce ?? 0) > 0) {
|
|
46
|
+
this.#timer = this.#setTimer(run, this.options.debounce);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
run();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
disconnect() {
|
|
53
|
+
if (!this.#connected)
|
|
54
|
+
return;
|
|
55
|
+
this.#connected = false;
|
|
56
|
+
this.#generation += 1;
|
|
57
|
+
this.#cancel();
|
|
58
|
+
}
|
|
59
|
+
#cancel() {
|
|
60
|
+
this.#abort?.abort();
|
|
61
|
+
this.#abort = undefined;
|
|
62
|
+
if (this.#timer !== undefined)
|
|
63
|
+
this.#clearTimer(this.#timer);
|
|
64
|
+
this.#timer = undefined;
|
|
65
|
+
}
|
|
66
|
+
#stale(generation) {
|
|
67
|
+
return !this.#connected || generation !== this.#generation;
|
|
68
|
+
}
|
|
69
|
+
async #request(generation) {
|
|
70
|
+
if (this.#stale(generation))
|
|
71
|
+
return;
|
|
72
|
+
const abort = new AbortController();
|
|
73
|
+
this.#abort = abort;
|
|
74
|
+
const previous = this.options;
|
|
75
|
+
previous.onState({ pending: true, value: null, error: null, ok: false });
|
|
76
|
+
try {
|
|
77
|
+
const response = await this.#fetch(requestURL(previous.source, previous.baseURL, this.#parameters), { signal: abort.signal });
|
|
78
|
+
if (!response.ok)
|
|
79
|
+
throw new TypeError(`Request failed with ${response.status}.`);
|
|
80
|
+
const raw = previous.type === "text" ? await response.text() : await response.json();
|
|
81
|
+
const value = previous.adapt === undefined ? raw : previous.adapt(raw);
|
|
82
|
+
if (this.#stale(generation))
|
|
83
|
+
return;
|
|
84
|
+
previous.onState({ pending: false, value, error: null, ok: true });
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
if (abort.signal.aborted || this.#stale(generation))
|
|
88
|
+
return;
|
|
89
|
+
previous.onState({ pending: false, value: null, error, ok: false });
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
if (this.#abort === abort)
|
|
93
|
+
this.#abort = undefined;
|
|
94
|
+
if (!this.#stale(generation) && (previous.poll ?? 0) > 0) {
|
|
95
|
+
this.#timer = this.#setTimer(() => { void this.#request(generation); }, previous.poll);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=data.js.map
|
package/dist/data.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface HtmlDiagnostic {
|
|
2
|
+
readonly code: string;
|
|
3
|
+
readonly message: string;
|
|
4
|
+
readonly source?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class HtmlDiagnosticError extends Error {
|
|
7
|
+
readonly diagnostic: HtmlDiagnostic;
|
|
8
|
+
constructor(diagnostic: HtmlDiagnostic);
|
|
9
|
+
}
|
|
10
|
+
export declare function fail(code: string, message: string, source?: string): never;
|
|
11
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IAEpC,YAAY,UAAU,EAAE,cAAc,EAKrC;CACF;AAED,wBAAgB,IAAI,CAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,GACd,KAAK,CAIP"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class HtmlDiagnosticError extends Error {
|
|
2
|
+
diagnostic;
|
|
3
|
+
constructor(diagnostic) {
|
|
4
|
+
const location = diagnostic.source ? `${diagnostic.source}: ` : "";
|
|
5
|
+
super(`${location}${diagnostic.code}: ${diagnostic.message}`);
|
|
6
|
+
this.name = "HtmlDiagnosticError";
|
|
7
|
+
this.diagnostic = Object.freeze({ ...diagnostic });
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
export function fail(code, message, source) {
|
|
11
|
+
throw new HtmlDiagnosticError(source === undefined ? { code, message } : { code, message, source });
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IACnC,UAAU,CAAiB;IAEpC,YAAY,UAA0B;QACpC,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,KAAK,CAAC,GAAG,QAAQ,GAAG,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;IACrD,CAAC;CACF;AAED,MAAM,UAAU,IAAI,CAClB,IAAY,EACZ,OAAe,EACf,MAAe;IAEf,MAAM,IAAI,mBAAmB,CAC3B,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CACrE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/** A missing read or an operation on missing/typed-invalid data. */
|
|
2
|
+
export declare const ABSENT: unique symbol;
|
|
3
|
+
export type Absent = typeof ABSENT;
|
|
4
|
+
export type Value = string | number | boolean | null | Absent | readonly Value[] | {
|
|
5
|
+
readonly [key: string]: Value;
|
|
6
|
+
};
|
|
7
|
+
/** Expressions only look names up, so any `Map` or reactive scope layer can supply them. */
|
|
8
|
+
export interface Scope {
|
|
9
|
+
get(name: string): Value | undefined;
|
|
10
|
+
}
|
|
11
|
+
export declare class UndeclaredName extends Error {
|
|
12
|
+
readonly identifier: string;
|
|
13
|
+
constructor(identifier: string);
|
|
14
|
+
}
|
|
15
|
+
export type ExpressionNode = {
|
|
16
|
+
kind: "literal";
|
|
17
|
+
value: Value;
|
|
18
|
+
} | {
|
|
19
|
+
kind: "id";
|
|
20
|
+
name: string;
|
|
21
|
+
} | {
|
|
22
|
+
kind: "member";
|
|
23
|
+
object: ExpressionNode;
|
|
24
|
+
key: string;
|
|
25
|
+
} | {
|
|
26
|
+
kind: "index";
|
|
27
|
+
object: ExpressionNode;
|
|
28
|
+
index: ExpressionNode;
|
|
29
|
+
} | {
|
|
30
|
+
kind: "unary";
|
|
31
|
+
op: "not" | "-";
|
|
32
|
+
operand: ExpressionNode;
|
|
33
|
+
} | {
|
|
34
|
+
kind: "binary";
|
|
35
|
+
op: string;
|
|
36
|
+
left: ExpressionNode;
|
|
37
|
+
right: ExpressionNode;
|
|
38
|
+
} | {
|
|
39
|
+
kind: "call";
|
|
40
|
+
fn: string;
|
|
41
|
+
args: ExpressionNode[];
|
|
42
|
+
} | {
|
|
43
|
+
kind: "object";
|
|
44
|
+
pairs: {
|
|
45
|
+
key: string;
|
|
46
|
+
value: ExpressionNode;
|
|
47
|
+
}[];
|
|
48
|
+
} | {
|
|
49
|
+
kind: "array";
|
|
50
|
+
items: ExpressionNode[];
|
|
51
|
+
};
|
|
52
|
+
export interface CompiledExpression {
|
|
53
|
+
readonly source: string;
|
|
54
|
+
readonly ast: ExpressionNode;
|
|
55
|
+
readonly dependencies: readonly string[];
|
|
56
|
+
}
|
|
57
|
+
export type WritablePathSegment = string | number | {
|
|
58
|
+
readonly kind: "index";
|
|
59
|
+
readonly expression: ExpressionNode;
|
|
60
|
+
};
|
|
61
|
+
export type WritablePath = readonly WritablePathSegment[];
|
|
62
|
+
/** Truthiness follows the empty value of each type. */
|
|
63
|
+
export declare function truthy(value: Value): boolean;
|
|
64
|
+
/** Compile an expression once for parsers, runtimes, and target generators. */
|
|
65
|
+
export declare function compileExpression(source: string): CompiledExpression;
|
|
66
|
+
/** Return a writable path only when it is rooted in declared writable state. */
|
|
67
|
+
export declare function getWritablePath(source: string, writableRoots: ReadonlySet<string>): WritablePath | undefined;
|
|
68
|
+
/** Parse-check an expression (syntax only). */
|
|
69
|
+
export declare function checkExpression(source: string): void;
|
|
70
|
+
/** Evaluate an expression against a scope. */
|
|
71
|
+
export declare function evaluate(source: string, scope: Scope): Value;
|
|
72
|
+
/** Evaluate a previously compiled expression without reparsing its source. */
|
|
73
|
+
export declare function evaluateCompiled(expression: CompiledExpression | ExpressionNode, scope: Scope): Value;
|
|
74
|
+
/** Escaped-text form: absence and null render as empty text. */
|
|
75
|
+
export declare function toText(value: Value): string;
|
|
76
|
+
/** Enumerated attributes whose true and false are the strings "true" and "false", not presence. */
|
|
77
|
+
export declare function isEnumeratedBoolean(name: string): boolean;
|
|
78
|
+
/** Serialize an ordinary bound attribute. */
|
|
79
|
+
export declare function toAttribute(value: Value, name?: string): string | null;
|
|
80
|
+
//# sourceMappingURL=expression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":"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"}
|