@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,172 @@
|
|
|
1
|
+
import type { ComponentContract } from "./types.js";
|
|
2
|
+
import type { CompiledExpression, WritablePath } from "./expression.js";
|
|
3
|
+
export interface ComponentDefinition {
|
|
4
|
+
readonly source: {
|
|
5
|
+
readonly file: string;
|
|
6
|
+
};
|
|
7
|
+
readonly contract: ComponentContract;
|
|
8
|
+
readonly template: ElementNode;
|
|
9
|
+
readonly css: string;
|
|
10
|
+
readonly controller?: string;
|
|
11
|
+
readonly declarations?: readonly ComponentDeclaration[];
|
|
12
|
+
readonly slots?: readonly SlotContract[];
|
|
13
|
+
readonly root?: ComponentRoot;
|
|
14
|
+
}
|
|
15
|
+
export type ComponentRoot = {
|
|
16
|
+
readonly kind: "native";
|
|
17
|
+
readonly element: string;
|
|
18
|
+
readonly choices: readonly string[];
|
|
19
|
+
} | {
|
|
20
|
+
readonly kind: "component";
|
|
21
|
+
readonly tag: string;
|
|
22
|
+
};
|
|
23
|
+
export type ComponentDeclaration = ReactiveDeclaration | EventDeclaration | MethodDeclaration | HandlerDeclaration | DataDeclaration;
|
|
24
|
+
export interface ReactiveDeclaration {
|
|
25
|
+
readonly kind: "state" | "computed";
|
|
26
|
+
readonly name: string;
|
|
27
|
+
readonly value?: string;
|
|
28
|
+
readonly expression?: CompiledExpression;
|
|
29
|
+
}
|
|
30
|
+
export interface DataDeclaration {
|
|
31
|
+
readonly kind: "data";
|
|
32
|
+
readonly name: string;
|
|
33
|
+
readonly source?: string;
|
|
34
|
+
readonly type?: string;
|
|
35
|
+
readonly debounce?: string;
|
|
36
|
+
readonly poll?: string;
|
|
37
|
+
readonly parameters: readonly DataParameter[];
|
|
38
|
+
}
|
|
39
|
+
export interface DataParameter {
|
|
40
|
+
readonly name: string;
|
|
41
|
+
readonly expression: CompiledExpression;
|
|
42
|
+
}
|
|
43
|
+
export interface EventDeclaration {
|
|
44
|
+
readonly kind: "event";
|
|
45
|
+
readonly name: string;
|
|
46
|
+
readonly type: string;
|
|
47
|
+
readonly bubbles: boolean;
|
|
48
|
+
readonly composed: boolean;
|
|
49
|
+
readonly cancelable: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface MethodDeclaration {
|
|
52
|
+
readonly kind: "method";
|
|
53
|
+
readonly name: string;
|
|
54
|
+
readonly exportName: string;
|
|
55
|
+
readonly returns: string;
|
|
56
|
+
}
|
|
57
|
+
export interface HandlerDeclaration {
|
|
58
|
+
readonly kind: "handler";
|
|
59
|
+
readonly name: string;
|
|
60
|
+
readonly steps: readonly HandlerStep[];
|
|
61
|
+
}
|
|
62
|
+
export type HandlerStep = {
|
|
63
|
+
readonly kind: "set";
|
|
64
|
+
readonly path: string;
|
|
65
|
+
readonly writablePath: WritablePath;
|
|
66
|
+
readonly value: CompiledExpression;
|
|
67
|
+
readonly guard?: CompiledExpression;
|
|
68
|
+
} | {
|
|
69
|
+
readonly kind: "dispatch";
|
|
70
|
+
readonly event: string;
|
|
71
|
+
readonly value?: CompiledExpression;
|
|
72
|
+
readonly guard?: CompiledExpression;
|
|
73
|
+
} | {
|
|
74
|
+
readonly kind: "validate" | "focus";
|
|
75
|
+
readonly target: string;
|
|
76
|
+
readonly guard?: CompiledExpression;
|
|
77
|
+
};
|
|
78
|
+
export interface SlotContract {
|
|
79
|
+
readonly name?: string;
|
|
80
|
+
readonly dynamic: boolean;
|
|
81
|
+
readonly required: boolean;
|
|
82
|
+
}
|
|
83
|
+
export type TemplateNode = ElementNode | TextNode | SlotNode;
|
|
84
|
+
export interface ElementNode {
|
|
85
|
+
readonly kind: "element";
|
|
86
|
+
readonly name: string;
|
|
87
|
+
readonly attributes: readonly TemplateAttribute[];
|
|
88
|
+
readonly children: readonly TemplateNode[];
|
|
89
|
+
/** A structural `$`-directive controlling whether/how-many-times/in-what-scope this node is produced. */
|
|
90
|
+
readonly flow?: Flow;
|
|
91
|
+
readonly events?: readonly EventBinding[];
|
|
92
|
+
readonly ref?: string;
|
|
93
|
+
}
|
|
94
|
+
export interface EventBinding {
|
|
95
|
+
readonly name: string;
|
|
96
|
+
readonly handler: string;
|
|
97
|
+
readonly modifiers: readonly string[];
|
|
98
|
+
}
|
|
99
|
+
export type Flow = {
|
|
100
|
+
readonly kind: "if";
|
|
101
|
+
readonly test: string;
|
|
102
|
+
readonly testPlan?: CompiledExpression;
|
|
103
|
+
} | {
|
|
104
|
+
readonly kind: "each";
|
|
105
|
+
readonly item: string;
|
|
106
|
+
readonly index?: string;
|
|
107
|
+
readonly list: string;
|
|
108
|
+
readonly listPlan?: CompiledExpression;
|
|
109
|
+
readonly where?: string;
|
|
110
|
+
readonly wherePlan?: CompiledExpression;
|
|
111
|
+
readonly sort?: string;
|
|
112
|
+
readonly limit?: string;
|
|
113
|
+
readonly limitPlan?: CompiledExpression;
|
|
114
|
+
readonly key?: string;
|
|
115
|
+
readonly keyPlan?: CompiledExpression;
|
|
116
|
+
} | {
|
|
117
|
+
readonly kind: "with";
|
|
118
|
+
readonly expr: string;
|
|
119
|
+
readonly expressionPlan?: CompiledExpression;
|
|
120
|
+
readonly alias: string;
|
|
121
|
+
} | {
|
|
122
|
+
readonly kind: "match";
|
|
123
|
+
readonly expr?: string;
|
|
124
|
+
readonly expressionPlan?: CompiledExpression;
|
|
125
|
+
readonly alias?: string;
|
|
126
|
+
} | {
|
|
127
|
+
readonly kind: "when";
|
|
128
|
+
readonly test: string;
|
|
129
|
+
readonly testPlan?: CompiledExpression;
|
|
130
|
+
} | {
|
|
131
|
+
readonly kind: "else";
|
|
132
|
+
};
|
|
133
|
+
export interface TextNode {
|
|
134
|
+
readonly kind: "text";
|
|
135
|
+
readonly value: string;
|
|
136
|
+
}
|
|
137
|
+
export interface SlotNode {
|
|
138
|
+
readonly kind: "slot";
|
|
139
|
+
readonly name?: string;
|
|
140
|
+
readonly nameExpression?: CompiledExpression;
|
|
141
|
+
readonly fallback?: readonly TemplateNode[];
|
|
142
|
+
}
|
|
143
|
+
export type TemplateAttribute = LiteralAttribute | AttributeBinding | PropertyBinding | DirectiveAttribute;
|
|
144
|
+
/** A `$`-directive that sets an element's content: `$value` (escaped text) or `$html` (sanitized). */
|
|
145
|
+
export interface DirectiveAttribute {
|
|
146
|
+
readonly kind: "directive";
|
|
147
|
+
readonly name: "value" | "html";
|
|
148
|
+
readonly expression: string;
|
|
149
|
+
readonly expressionPlan?: CompiledExpression;
|
|
150
|
+
}
|
|
151
|
+
export interface LiteralAttribute {
|
|
152
|
+
readonly kind: "literal";
|
|
153
|
+
readonly name: string;
|
|
154
|
+
readonly value: string;
|
|
155
|
+
}
|
|
156
|
+
export interface AttributeBinding {
|
|
157
|
+
readonly kind: "attribute";
|
|
158
|
+
readonly name: string;
|
|
159
|
+
readonly expression: string;
|
|
160
|
+
readonly expressionPlan?: CompiledExpression;
|
|
161
|
+
readonly twoWay?: boolean;
|
|
162
|
+
readonly writablePath?: WritablePath;
|
|
163
|
+
readonly target?: "class" | "style";
|
|
164
|
+
}
|
|
165
|
+
export interface PropertyBinding {
|
|
166
|
+
readonly kind: "property";
|
|
167
|
+
readonly key: string;
|
|
168
|
+
readonly name: string;
|
|
169
|
+
readonly expression: string;
|
|
170
|
+
readonly expressionPlan?: CompiledExpression;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=template.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":"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"}
|
package/dist/template.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../src/template.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/** The complete HTML Next value-type grammar and its canonical runtime representation. */
|
|
2
|
+
export type TerminalTypeName = "string" | "boolean" | "number" | "integer" | "null" | "absent" | "trusted-html" | "trusted-script" | "function" | "unknown";
|
|
3
|
+
export interface TerminalType {
|
|
4
|
+
readonly kind: "terminal";
|
|
5
|
+
readonly name: TerminalTypeName;
|
|
6
|
+
}
|
|
7
|
+
export interface KeywordType {
|
|
8
|
+
readonly kind: "keyword";
|
|
9
|
+
readonly value: string;
|
|
10
|
+
}
|
|
11
|
+
export interface UnionType {
|
|
12
|
+
readonly kind: "union";
|
|
13
|
+
readonly members: readonly TypeNode[];
|
|
14
|
+
}
|
|
15
|
+
export interface ListType {
|
|
16
|
+
readonly kind: "list";
|
|
17
|
+
readonly item: TypeNode;
|
|
18
|
+
}
|
|
19
|
+
export interface RecordType {
|
|
20
|
+
readonly kind: "record";
|
|
21
|
+
readonly value: TypeNode;
|
|
22
|
+
}
|
|
23
|
+
export interface ObjectField {
|
|
24
|
+
readonly name: string;
|
|
25
|
+
readonly type: TypeNode;
|
|
26
|
+
readonly optional: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface ObjectType {
|
|
29
|
+
readonly kind: "object";
|
|
30
|
+
readonly fields: readonly ObjectField[];
|
|
31
|
+
readonly open: boolean;
|
|
32
|
+
}
|
|
33
|
+
export type TypeNode = TerminalType | KeywordType | UnionType | ListType | RecordType | ObjectType;
|
|
34
|
+
export type TypeInput = TypeNode | "string" | "boolean" | "number" | {
|
|
35
|
+
readonly enum: readonly string[];
|
|
36
|
+
};
|
|
37
|
+
export type TypeIssueReason = "typeMismatch" | "badInput" | "untrustedValue";
|
|
38
|
+
export interface TypeIssue {
|
|
39
|
+
readonly reason: TypeIssueReason;
|
|
40
|
+
readonly message: string;
|
|
41
|
+
readonly path: string;
|
|
42
|
+
}
|
|
43
|
+
export type TypedResult<T = unknown> = {
|
|
44
|
+
readonly ok: true;
|
|
45
|
+
readonly value: T;
|
|
46
|
+
} | {
|
|
47
|
+
readonly ok: false;
|
|
48
|
+
readonly issues: readonly TypeIssue[];
|
|
49
|
+
};
|
|
50
|
+
export interface TrustedContentValue {
|
|
51
|
+
readonly kind: "trusted-html" | "trusted-script";
|
|
52
|
+
readonly value: unknown;
|
|
53
|
+
}
|
|
54
|
+
export declare class TypeSyntaxError extends SyntaxError {
|
|
55
|
+
readonly position: number;
|
|
56
|
+
constructor(message: string, position: number);
|
|
57
|
+
}
|
|
58
|
+
/** Parse an HTML Next type expression into an immutable semantic node. */
|
|
59
|
+
export declare function parseTypeExpression(source: string): TypeNode;
|
|
60
|
+
export declare function isTypeNode(value: unknown): value is TypeNode;
|
|
61
|
+
export declare function normalizeType(type: TypeInput): TypeNode;
|
|
62
|
+
/** The canonical source spelling used by serializers, diagnostics, and generated docs. */
|
|
63
|
+
export declare function formatType(type: TypeInput): string;
|
|
64
|
+
export declare function typeScriptType(type: TypeInput): string;
|
|
65
|
+
/** Canonical structured-value path spelling shared by every typed and schema diagnostic. */
|
|
66
|
+
export declare function childPath(path: string, key: string | number): string;
|
|
67
|
+
/** Parse and canonicalize a value at a typed boundary without implicit JS coercion. */
|
|
68
|
+
export declare function parseTypedValue(value: unknown, type: TypeInput, path?: string): TypedResult;
|
|
69
|
+
/** Serialize a value using its declared type, never JavaScript's object stringification. */
|
|
70
|
+
export declare function serializeTypedValue(value: unknown, type: TypeInput): string;
|
|
71
|
+
/**
|
|
72
|
+
* Whether a prop type can be written as an HTML attribute. Props are attributes on the component
|
|
73
|
+
* invocation, so every declared type with a text form qualifies: terminals and keyword unions as
|
|
74
|
+
* their text, and collection and structured shapes as JSON text parsed against the declared shape.
|
|
75
|
+
* `function`, `unknown`, and trusted content have no text form and cannot be props.
|
|
76
|
+
*/
|
|
77
|
+
export declare function isAttributeType(type: TypeInput): boolean;
|
|
78
|
+
/** Explicitly brand an already-approved Trusted Types-compatible value for non-browser hosts. */
|
|
79
|
+
export declare function trustedContent(kind: "trusted-html" | "trusted-script", value: unknown): TrustedContentValue;
|
|
80
|
+
//# sourceMappingURL=type-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"type-system.d.ts","sourceRoot":"","sources":["../src/type-system.ts"],"names":[],"mappings":"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"}
|