@velarscript/web 0.31.0 → 0.33.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/README.md +1 -1
- package/dist/analysis/calls/intrinsics/config.d.ts +10 -0
- package/dist/analysis/calls/intrinsics/config.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/config.js +19 -0
- package/dist/analysis/calls/intrinsics/config.js.map +1 -0
- package/dist/analysis/calls/intrinsics/forms.d.ts +10 -0
- package/dist/analysis/calls/intrinsics/forms.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/forms.js +38 -0
- package/dist/analysis/calls/intrinsics/forms.js.map +1 -0
- package/dist/analysis/calls/intrinsics/http.d.ts +10 -0
- package/dist/analysis/calls/intrinsics/http.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/http.js +37 -0
- package/dist/analysis/calls/intrinsics/http.js.map +1 -0
- package/dist/analysis/calls/intrinsics/reactive.d.ts +10 -0
- package/dist/analysis/calls/intrinsics/reactive.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/reactive.js +30 -0
- package/dist/analysis/calls/intrinsics/reactive.js.map +1 -0
- package/dist/analysis/calls/intrinsics/storage.d.ts +16 -0
- package/dist/analysis/calls/intrinsics/storage.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/storage.js +91 -0
- package/dist/analysis/calls/intrinsics/storage.js.map +1 -0
- package/dist/analysis/calls/intrinsics/web.d.ts +10 -0
- package/dist/analysis/calls/intrinsics/web.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics/web.js +100 -0
- package/dist/analysis/calls/intrinsics/web.js.map +1 -0
- package/dist/analysis/calls/intrinsics.d.ts +13 -0
- package/dist/analysis/calls/intrinsics.d.ts.map +1 -0
- package/dist/analysis/calls/intrinsics.js +31 -0
- package/dist/analysis/calls/intrinsics.js.map +1 -0
- package/dist/analysis/components/contracts.d.ts +19 -0
- package/dist/analysis/components/contracts.d.ts.map +1 -0
- package/dist/analysis/components/contracts.js +83 -0
- package/dist/analysis/components/contracts.js.map +1 -0
- package/dist/analysis/components/declaration.d.ts +4 -0
- package/dist/analysis/components/declaration.d.ts.map +1 -0
- package/dist/analysis/components/declaration.js +163 -0
- package/dist/analysis/components/declaration.js.map +1 -0
- package/dist/analysis/components/host.d.ts +61 -0
- package/dist/analysis/components/host.d.ts.map +1 -0
- package/dist/analysis/components/host.js +22 -0
- package/dist/analysis/components/host.js.map +1 -0
- package/dist/analysis/components/lifecycle.d.ts +22 -0
- package/dist/analysis/components/lifecycle.d.ts.map +1 -0
- package/dist/analysis/components/lifecycle.js +33 -0
- package/dist/analysis/components/lifecycle.js.map +1 -0
- package/dist/analysis/components/ownership.d.ts +74 -0
- package/dist/analysis/components/ownership.d.ts.map +1 -0
- package/dist/analysis/components/ownership.js +106 -0
- package/dist/analysis/components/ownership.js.map +1 -0
- package/dist/analysis/declarations.d.ts +99 -0
- package/dist/analysis/declarations.d.ts.map +1 -0
- package/dist/analysis/declarations.js +176 -0
- package/dist/analysis/declarations.js.map +1 -0
- package/dist/analysis/inference.d.ts +75 -0
- package/dist/analysis/inference.d.ts.map +1 -0
- package/dist/analysis/inference.js +257 -0
- package/dist/analysis/inference.js.map +1 -0
- package/dist/analysis/jsx/attributes.d.ts +103 -0
- package/dist/analysis/jsx/attributes.d.ts.map +1 -0
- package/dist/analysis/jsx/attributes.js +601 -0
- package/dist/analysis/jsx/attributes.js.map +1 -0
- package/dist/analysis/jsx/elements.d.ts +17 -0
- package/dist/analysis/jsx/elements.d.ts.map +1 -0
- package/dist/analysis/jsx/elements.js +213 -0
- package/dist/analysis/jsx/elements.js.map +1 -0
- package/dist/analysis/jsx/host.d.ts +61 -0
- package/dist/analysis/jsx/host.d.ts.map +1 -0
- package/dist/analysis/jsx/host.js +15 -0
- package/dist/analysis/jsx/host.js.map +1 -0
- package/dist/analysis/jsx/keys.d.ts +15 -0
- package/dist/analysis/jsx/keys.d.ts.map +1 -0
- package/dist/analysis/jsx/keys.js +67 -0
- package/dist/analysis/jsx/keys.js.map +1 -0
- package/dist/analysis/jsx/security.d.ts +29 -0
- package/dist/analysis/jsx/security.d.ts.map +1 -0
- package/dist/analysis/jsx/security.js +61 -0
- package/dist/analysis/jsx/security.js.map +1 -0
- package/dist/analysis/jsx-detection.d.ts +49 -0
- package/dist/analysis/jsx-detection.d.ts.map +1 -0
- package/dist/analysis/jsx-detection.js +196 -0
- package/dist/analysis/jsx-detection.js.map +1 -0
- package/dist/analysis/keyed-rebuild.d.ts +148 -0
- package/dist/analysis/keyed-rebuild.d.ts.map +1 -0
- package/dist/analysis/keyed-rebuild.js +299 -0
- package/dist/analysis/keyed-rebuild.js.map +1 -0
- package/dist/analysis/keyframes-analysis.d.ts +6 -0
- package/dist/analysis/keyframes-analysis.d.ts.map +1 -0
- package/dist/analysis/keyframes-analysis.js +79 -0
- package/dist/analysis/keyframes-analysis.js.map +1 -0
- package/dist/analysis/look/builders.d.ts +29 -0
- package/dist/analysis/look/builders.d.ts.map +1 -0
- package/dist/analysis/look/builders.js +174 -0
- package/dist/analysis/look/builders.js.map +1 -0
- package/dist/analysis/look/conditions.d.ts +13 -0
- package/dist/analysis/look/conditions.d.ts.map +1 -0
- package/dist/analysis/look/conditions.js +84 -0
- package/dist/analysis/look/conditions.js.map +1 -0
- package/dist/analysis/look/edits.d.ts +36 -0
- package/dist/analysis/look/edits.d.ts.map +1 -0
- package/dist/analysis/look/edits.js +80 -0
- package/dist/analysis/look/edits.js.map +1 -0
- package/dist/analysis/look/entries.d.ts +56 -0
- package/dist/analysis/look/entries.d.ts.map +1 -0
- package/dist/analysis/look/entries.js +223 -0
- package/dist/analysis/look/entries.js.map +1 -0
- package/dist/analysis/look/host.d.ts +47 -0
- package/dist/analysis/look/host.d.ts.map +1 -0
- package/dist/analysis/look/host.js +16 -0
- package/dist/analysis/look/host.js.map +1 -0
- package/dist/analysis/look/tokens.d.ts +75 -0
- package/dist/analysis/look/tokens.d.ts.map +1 -0
- package/dist/analysis/look/tokens.js +156 -0
- package/dist/analysis/look/tokens.js.map +1 -0
- package/dist/analysis/look/values.d.ts +45 -0
- package/dist/analysis/look/values.d.ts.map +1 -0
- package/dist/analysis/look/values.js +148 -0
- package/dist/analysis/look/values.js.map +1 -0
- package/dist/analysis/look-conditions.d.ts +47 -0
- package/dist/analysis/look-conditions.d.ts.map +1 -0
- package/dist/analysis/look-conditions.js +157 -0
- package/dist/analysis/look-conditions.js.map +1 -0
- package/dist/analysis/look-sites.d.ts +62 -0
- package/dist/analysis/look-sites.d.ts.map +1 -0
- package/dist/analysis/look-sites.js +121 -0
- package/dist/analysis/look-sites.js.map +1 -0
- package/dist/analysis/look-values.d.ts +19 -0
- package/dist/analysis/look-values.d.ts.map +1 -1
- package/dist/analysis/look-values.js +38 -0
- package/dist/analysis/look-values.js.map +1 -1
- package/dist/analysis/look-vocabulary-guidance.d.ts +76 -0
- package/dist/analysis/look-vocabulary-guidance.d.ts.map +1 -0
- package/dist/analysis/look-vocabulary-guidance.js +338 -0
- package/dist/analysis/look-vocabulary-guidance.js.map +1 -0
- package/dist/analysis/media-conditions.d.ts +33 -0
- package/dist/analysis/media-conditions.d.ts.map +1 -0
- package/dist/analysis/media-conditions.js +92 -0
- package/dist/analysis/media-conditions.js.map +1 -0
- package/dist/analysis/program-passes.d.ts +106 -0
- package/dist/analysis/program-passes.d.ts.map +1 -0
- package/dist/analysis/program-passes.js +149 -0
- package/dist/analysis/program-passes.js.map +1 -0
- package/dist/analysis/reactivity/bindings.d.ts +37 -0
- package/dist/analysis/reactivity/bindings.d.ts.map +1 -0
- package/dist/analysis/reactivity/bindings.js +88 -0
- package/dist/analysis/reactivity/bindings.js.map +1 -0
- package/dist/analysis/reactivity/derived.d.ts +39 -0
- package/dist/analysis/reactivity/derived.d.ts.map +1 -0
- package/dist/analysis/reactivity/derived.js +80 -0
- package/dist/analysis/reactivity/derived.js.map +1 -0
- package/dist/analysis/reactivity/host.d.ts +38 -0
- package/dist/analysis/reactivity/host.d.ts.map +1 -0
- package/dist/analysis/reactivity/host.js +14 -0
- package/dist/analysis/reactivity/host.js.map +1 -0
- package/dist/analysis/reactivity/retired-accessors.d.ts +82 -0
- package/dist/analysis/reactivity/retired-accessors.d.ts.map +1 -0
- package/dist/analysis/reactivity/retired-accessors.js +118 -0
- package/dist/analysis/reactivity/retired-accessors.js.map +1 -0
- package/dist/analysis/renderable.d.ts +47 -0
- package/dist/analysis/renderable.d.ts.map +1 -0
- package/dist/analysis/renderable.js +105 -0
- package/dist/analysis/renderable.js.map +1 -0
- package/dist/analysis/routes.d.ts +64 -0
- package/dist/analysis/routes.d.ts.map +1 -0
- package/dist/analysis/routes.js +182 -0
- package/dist/analysis/routes.js.map +1 -0
- package/dist/analysis/url-attributes.d.ts +12 -0
- package/dist/analysis/url-attributes.d.ts.map +1 -0
- package/dist/analysis/url-attributes.js +48 -0
- package/dist/analysis/url-attributes.js.map +1 -0
- package/dist/analysis/watch-cycles.d.ts +102 -0
- package/dist/analysis/watch-cycles.d.ts.map +1 -1
- package/dist/analysis/watch-cycles.js +240 -1
- package/dist/analysis/watch-cycles.js.map +1 -1
- package/dist/analysis/watch-subject.d.ts +45 -0
- package/dist/analysis/watch-subject.d.ts.map +1 -0
- package/dist/analysis/watch-subject.js +272 -0
- package/dist/analysis/watch-subject.js.map +1 -0
- package/dist/analysis/web-types.d.ts +27 -0
- package/dist/analysis/web-types.d.ts.map +1 -0
- package/dist/analysis/web-types.js +170 -0
- package/dist/analysis/web-types.js.map +1 -0
- package/dist/analyzer.d.ts +18 -617
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/analyzer.js +211 -4853
- package/dist/analyzer.js.map +1 -1
- package/dist/compiler.d.ts +20 -0
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +31 -864
- package/dist/compiler.js.map +1 -1
- package/dist/documentation.d.ts +28 -0
- package/dist/documentation.d.ts.map +1 -0
- package/dist/documentation.js +67 -0
- package/dist/documentation.js.map +1 -0
- package/dist/editor/completions.d.ts +12 -0
- package/dist/editor/completions.d.ts.map +1 -0
- package/dist/editor/completions.js +6 -0
- package/dist/editor/completions.js.map +1 -0
- package/dist/editor/jsx-completion.d.ts +12 -0
- package/dist/editor/jsx-completion.d.ts.map +1 -0
- package/dist/editor/jsx-completion.js +137 -0
- package/dist/editor/jsx-completion.js.map +1 -0
- package/dist/editor/look-completion.d.ts +29 -0
- package/dist/editor/look-completion.d.ts.map +1 -0
- package/dist/editor/look-completion.js +159 -0
- package/dist/editor/look-completion.js.map +1 -0
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +12 -288
- package/dist/editor.js.map +1 -1
- package/dist/emit/components.d.ts +33 -0
- package/dist/emit/components.d.ts.map +1 -0
- package/dist/emit/components.js +135 -0
- package/dist/emit/components.js.map +1 -0
- package/dist/emit/jsx.d.ts +57 -0
- package/dist/emit/jsx.d.ts.map +1 -0
- package/dist/emit/jsx.js +384 -0
- package/dist/emit/jsx.js.map +1 -0
- package/dist/emit/look-css.d.ts +44 -0
- package/dist/emit/look-css.d.ts.map +1 -0
- package/dist/emit/look-css.js +177 -0
- package/dist/emit/look-css.js.map +1 -0
- package/dist/emit/look.d.ts +39 -0
- package/dist/emit/look.d.ts.map +1 -0
- package/dist/emit/look.js +218 -0
- package/dist/emit/look.js.map +1 -0
- package/dist/emit/runtime-imports.d.ts +40 -0
- package/dist/emit/runtime-imports.d.ts.map +1 -0
- package/dist/emit/runtime-imports.js +188 -0
- package/dist/emit/runtime-imports.js.map +1 -0
- package/dist/emitter.d.ts +15 -68
- package/dist/emitter.d.ts.map +1 -1
- package/dist/emitter.js +79 -1008
- package/dist/emitter.js.map +1 -1
- package/dist/look/animation.d.ts +7 -0
- package/dist/look/animation.d.ts.map +1 -0
- package/dist/look/animation.js +13 -0
- package/dist/look/animation.js.map +1 -0
- package/dist/look/builders.d.ts +35 -0
- package/dist/look/builders.d.ts.map +1 -0
- package/dist/look/builders.js +74 -0
- package/dist/look/builders.js.map +1 -0
- package/dist/look/css-functions.d.ts +28 -0
- package/dist/look/css-functions.d.ts.map +1 -0
- package/dist/look/css-functions.js +54 -0
- package/dist/look/css-functions.js.map +1 -0
- package/dist/look/keyword-sets.d.ts +41 -0
- package/dist/look/keyword-sets.d.ts.map +1 -0
- package/dist/look/keyword-sets.js +117 -0
- package/dist/look/keyword-sets.js.map +1 -0
- package/dist/look/keywords.d.ts +55 -0
- package/dist/look/keywords.d.ts.map +1 -0
- package/dist/look/keywords.js +387 -0
- package/dist/look/keywords.js.map +1 -0
- package/dist/look/media.d.ts +19 -0
- package/dist/look/media.d.ts.map +1 -0
- package/dist/look/media.js +27 -0
- package/dist/look/media.js.map +1 -0
- package/dist/look/naming.d.ts +9 -0
- package/dist/look/naming.d.ts.map +1 -0
- package/dist/look/naming.js +45 -0
- package/dist/look/naming.js.map +1 -0
- package/dist/look/properties.d.ts +16 -0
- package/dist/look/properties.d.ts.map +1 -0
- package/dist/look/properties.js +52 -0
- package/dist/look/properties.js.map +1 -0
- package/dist/look/shorthands.d.ts +25 -0
- package/dist/look/shorthands.d.ts.map +1 -0
- package/dist/look/shorthands.js +130 -0
- package/dist/look/shorthands.js.map +1 -0
- package/dist/look/tokens.d.ts +38 -0
- package/dist/look/tokens.d.ts.map +1 -0
- package/dist/look/tokens.js +59 -0
- package/dist/look/tokens.js.map +1 -0
- package/dist/look/units.d.ts +24 -0
- package/dist/look/units.d.ts.map +1 -0
- package/dist/look/units.js +33 -0
- package/dist/look/units.js.map +1 -0
- package/dist/look.d.ts +32 -227
- package/dist/look.d.ts.map +1 -1
- package/dist/look.js +28 -933
- package/dist/look.js.map +1 -1
- package/dist/module-roster.d.ts +16 -0
- package/dist/module-roster.d.ts.map +1 -0
- package/dist/module-roster.js +28 -0
- package/dist/module-roster.js.map +1 -0
- package/dist/modules/app.d.ts +9 -0
- package/dist/modules/app.d.ts.map +1 -0
- package/dist/modules/app.js +20 -0
- package/dist/modules/app.js.map +1 -0
- package/dist/modules/browser-test.d.ts +9 -0
- package/dist/modules/browser-test.d.ts.map +1 -0
- package/dist/modules/browser-test.js +67 -0
- package/dist/modules/browser-test.js.map +1 -0
- package/dist/modules/browser.d.ts +10 -0
- package/dist/modules/browser.d.ts.map +1 -0
- package/dist/modules/browser.js +89 -0
- package/dist/modules/browser.js.map +1 -0
- package/dist/modules/config.d.ts +9 -0
- package/dist/modules/config.d.ts.map +1 -0
- package/dist/modules/config.js +14 -0
- package/dist/modules/config.js.map +1 -0
- package/dist/modules/files.d.ts +9 -0
- package/dist/modules/files.d.ts.map +1 -0
- package/dist/modules/files.js +16 -0
- package/dist/modules/files.js.map +1 -0
- package/dist/modules/forms.d.ts +9 -0
- package/dist/modules/forms.d.ts.map +1 -0
- package/dist/modules/forms.js +26 -0
- package/dist/modules/forms.js.map +1 -0
- package/dist/modules/http.d.ts +9 -0
- package/dist/modules/http.d.ts.map +1 -0
- package/dist/modules/http.js +127 -0
- package/dist/modules/http.js.map +1 -0
- package/dist/modules/look.d.ts +9 -0
- package/dist/modules/look.d.ts.map +1 -0
- package/dist/modules/look.js +58 -0
- package/dist/modules/look.js.map +1 -0
- package/dist/modules/realtime.d.ts +9 -0
- package/dist/modules/realtime.d.ts.map +1 -0
- package/dist/modules/realtime.js +163 -0
- package/dist/modules/realtime.js.map +1 -0
- package/dist/modules/storage.d.ts +9 -0
- package/dist/modules/storage.d.ts.map +1 -0
- package/dist/modules/storage.js +59 -0
- package/dist/modules/storage.js.map +1 -0
- package/dist/modules/types.d.ts +78 -0
- package/dist/modules/types.d.ts.map +1 -0
- package/dist/modules/types.js +154 -0
- package/dist/modules/types.js.map +1 -0
- package/dist/modules/web.d.ts +9 -0
- package/dist/modules/web.d.ts.map +1 -0
- package/dist/modules/web.js +63 -0
- package/dist/modules/web.js.map +1 -0
- package/dist/modules/websocket.d.ts +11 -0
- package/dist/modules/websocket.d.ts.map +1 -0
- package/dist/modules/websocket.js +75 -0
- package/dist/modules/websocket.js.map +1 -0
- package/dist/parser/expressions/jsx.d.ts +17 -0
- package/dist/parser/expressions/jsx.d.ts.map +1 -0
- package/dist/parser/expressions/jsx.js +43 -0
- package/dist/parser/expressions/jsx.js.map +1 -0
- package/dist/parser/expressions/keyframes.d.ts +15 -0
- package/dist/parser/expressions/keyframes.d.ts.map +1 -0
- package/dist/parser/expressions/keyframes.js +33 -0
- package/dist/parser/expressions/keyframes.js.map +1 -0
- package/dist/parser/expressions/look.d.ts +16 -0
- package/dist/parser/expressions/look.d.ts.map +1 -0
- package/dist/parser/expressions/look.js +37 -0
- package/dist/parser/expressions/look.js.map +1 -0
- package/dist/parser/expressions/visual-block.d.ts +17 -0
- package/dist/parser/expressions/visual-block.d.ts.map +1 -0
- package/dist/parser/expressions/visual-block.js +21 -0
- package/dist/parser/expressions/visual-block.js.map +1 -0
- package/dist/parser/keyframes-source.d.ts +24 -0
- package/dist/parser/keyframes-source.d.ts.map +1 -0
- package/dist/parser/keyframes-source.js +133 -0
- package/dist/parser/keyframes-source.js.map +1 -0
- package/dist/parser/look-source.d.ts +25 -0
- package/dist/parser/look-source.d.ts.map +1 -0
- package/dist/parser/look-source.js +189 -0
- package/dist/parser/look-source.js.map +1 -0
- package/dist/parser/spans.d.ts +24 -0
- package/dist/parser/spans.d.ts.map +1 -0
- package/dist/parser/spans.js +113 -0
- package/dist/parser/spans.js.map +1 -0
- package/dist/parser/statements/components.d.ts +37 -0
- package/dist/parser/statements/components.d.ts.map +1 -0
- package/dist/parser/statements/components.js +185 -0
- package/dist/parser/statements/components.js.map +1 -0
- package/dist/parser/statements/heads.d.ts +38 -0
- package/dist/parser/statements/heads.d.ts.map +1 -0
- package/dist/parser/statements/heads.js +55 -0
- package/dist/parser/statements/heads.js.map +1 -0
- package/dist/parser/statements/imports.d.ts +9 -0
- package/dist/parser/statements/imports.d.ts.map +1 -0
- package/dist/parser/statements/imports.js +31 -0
- package/dist/parser/statements/imports.js.map +1 -0
- package/dist/parser/statements/reactive.d.ts +31 -0
- package/dist/parser/statements/reactive.d.ts.map +1 -0
- package/dist/parser/statements/reactive.js +68 -0
- package/dist/parser/statements/reactive.js.map +1 -0
- package/dist/parser/statements/unsafe-css.d.ts +21 -0
- package/dist/parser/statements/unsafe-css.d.ts.map +1 -0
- package/dist/parser/statements/unsafe-css.js +42 -0
- package/dist/parser/statements/unsafe-css.js.map +1 -0
- package/dist/parser.d.ts +37 -50
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +98 -882
- package/dist/parser.js.map +1 -1
- package/dist/runtime-sources.generated.d.ts +1 -1
- package/dist/runtime-sources.generated.d.ts.map +1 -1
- package/dist/runtime-sources.generated.js +4 -4
- package/dist/runtime-sources.generated.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { VELAR_ERROR_NORMALIZATION_MODULE, VELAR_RUNTIME_REGISTRY_KEY } from "@velarscript/compiler/extension";
|
|
2
|
+
import {} from "../ast.js";
|
|
3
|
+
import { cssPropertyName, LOOK_PROPERTY_KEYWORDS } from "../look.js";
|
|
4
|
+
import { CSS_STRING_RUNTIME_BODY, LOOK_ARITHMETIC_RUNTIME, WEB_FILE_TYPE_RUNTIME, WEB_LOCAL_REACTIVE_BRIDGE_RUNTIME, WEB_LOCAL_REACTIVE_COLLECTION_BRIDGE_RUNTIME, WEB_RUNTIME_BODY, WEB_RUNTIME_FOUNDATION, WEB_RUNTIME_FOUNDATION_SHARED_ERROR, } from "../runtime-sources.generated.js";
|
|
5
|
+
export function emitTypeCheck(host, type, value, state) {
|
|
6
|
+
if (type.kind === "named") {
|
|
7
|
+
if (type.name === "Event" || type.name === "KeyboardEvent" || type.name === "PointerEvent" || type.name === "InputEvent" || type.name === "CompositionEvent" || type.name === "ClipboardEvent") {
|
|
8
|
+
return `(typeof ${type.name} !== "undefined" && ${value} instanceof ${type.name})`;
|
|
9
|
+
}
|
|
10
|
+
if (type.name === "Element")
|
|
11
|
+
return `(typeof Element !== "undefined" && ${value} instanceof Element)`;
|
|
12
|
+
if (type.name === "CanvasElement")
|
|
13
|
+
return `(typeof HTMLCanvasElement !== "undefined" && ${value} instanceof HTMLCanvasElement)`;
|
|
14
|
+
if (type.name === "DialogElement")
|
|
15
|
+
return `(typeof HTMLDialogElement !== "undefined" && ${value} instanceof HTMLDialogElement)`;
|
|
16
|
+
if (type.name === "InputElement") {
|
|
17
|
+
return `((typeof HTMLInputElement !== "undefined" && ${value} instanceof HTMLInputElement) || (typeof HTMLSelectElement !== "undefined" && ${value} instanceof HTMLSelectElement) || (typeof HTMLTextAreaElement !== "undefined" && ${value} instanceof HTMLTextAreaElement))`;
|
|
18
|
+
}
|
|
19
|
+
if (type.name === "TextAreaElement")
|
|
20
|
+
return `(typeof HTMLTextAreaElement !== "undefined" && ${value} instanceof HTMLTextAreaElement)`;
|
|
21
|
+
if (type.name === "Blob")
|
|
22
|
+
return `(typeof Blob !== "undefined" && ${value} instanceof Blob)`;
|
|
23
|
+
if (type.name === "File") {
|
|
24
|
+
host.needsFileTypeHelper = true;
|
|
25
|
+
return `__velarFileTypeIs(${value})`;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return host.baseTypeCheck(type, value, state);
|
|
29
|
+
}
|
|
30
|
+
export function emitIsCheck(host, type, value) {
|
|
31
|
+
if (type.kind === "named" && (type.name === "Event"
|
|
32
|
+
|| type.name === "KeyboardEvent"
|
|
33
|
+
|| type.name === "PointerEvent"
|
|
34
|
+
|| type.name === "InputEvent"
|
|
35
|
+
|| type.name === "CompositionEvent"
|
|
36
|
+
|| type.name === "ClipboardEvent"
|
|
37
|
+
|| type.name === "Element"
|
|
38
|
+
|| type.name === "CanvasElement"
|
|
39
|
+
|| type.name === "DialogElement"
|
|
40
|
+
|| type.name === "InputElement"
|
|
41
|
+
|| type.name === "TextAreaElement"
|
|
42
|
+
|| type.name === "Blob"
|
|
43
|
+
|| type.name === "File"))
|
|
44
|
+
return emitTypeCheck(host, type, value, "undefined");
|
|
45
|
+
return host.baseIsCheck(type, value);
|
|
46
|
+
}
|
|
47
|
+
export function additionalHelpers(host) {
|
|
48
|
+
return [
|
|
49
|
+
...(host.needsLookArithmeticRuntime ? [LOOK_ARITHMETIC_RUNTIME] : []),
|
|
50
|
+
...(host.webOutput ? webRuntimeHelpers(host) : []),
|
|
51
|
+
...(host.needsFileTypeHelper ? [WEB_FILE_TYPE_RUNTIME] : []),
|
|
52
|
+
];
|
|
53
|
+
}
|
|
54
|
+
function webRuntimeHelpers(host) {
|
|
55
|
+
if (!host.usesSharedRuntimeModules())
|
|
56
|
+
return [webRuntime(WEB_RUNTIME_FOUNDATION, lookKeywordTable(host))];
|
|
57
|
+
host.requireRuntimeModule(VELAR_ERROR_NORMALIZATION_MODULE);
|
|
58
|
+
return [
|
|
59
|
+
// WB-D1: `hostErrorTrace` travels with the rest, because the foundation's
|
|
60
|
+
// report channel applies the one host-frame policy rather than keeping a
|
|
61
|
+
// second copy of it. The inlined form above already carries the function,
|
|
62
|
+
// since `WEB_ERROR_HOST_RUNTIME` is that whole runtime.
|
|
63
|
+
`import { errorApply as __velarErrorApply, errorCode as __velarErrorCode, hostErrorTrace as __velarHostErrorTrace, isError as __velarIsError, normalizeError as __velarNormalizeError } from ${JSON.stringify(VELAR_ERROR_NORMALIZATION_MODULE)};`,
|
|
64
|
+
webRuntime(WEB_RUNTIME_FOUNDATION_SHARED_ERROR, lookKeywordTable(host)),
|
|
65
|
+
];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The closed keyword sets of the properties this module styles, so a value
|
|
69
|
+
* the compiler could not read is still checked before it reaches the DOM.
|
|
70
|
+
* Only the properties written here ship: the whole table is 17 KiB, and a
|
|
71
|
+
* module pays for the properties it uses.
|
|
72
|
+
*/
|
|
73
|
+
function lookKeywordTable(host) {
|
|
74
|
+
const entries = [...host.lookKeywordProperties].sort()
|
|
75
|
+
.map((name) => ` ${JSON.stringify(cssPropertyName(name))}: ${JSON.stringify([...LOOK_PROPERTY_KEYWORDS.get(name) ?? []])},`);
|
|
76
|
+
return entries.length === 0
|
|
77
|
+
? "const __velarLookKeywords = { __proto__: null };"
|
|
78
|
+
: `const __velarLookKeywords = {\n __proto__: null,\n${entries.join("\n")}\n};`;
|
|
79
|
+
}
|
|
80
|
+
export function reactiveBridgeHelpers(host, needsJavaScriptCallBoundary, needsCollections, usedIdentifiers) {
|
|
81
|
+
if (host.usesSharedRuntimeModules())
|
|
82
|
+
return host.baseReactiveBridgeHelpers(needsJavaScriptCallBoundary, needsCollections, usedIdentifiers);
|
|
83
|
+
if (!host.webOutput)
|
|
84
|
+
return host.baseReactiveBridgeHelpers(needsJavaScriptCallBoundary, needsCollections, usedIdentifiers);
|
|
85
|
+
if (!needsJavaScriptCallBoundary && !needsCollections)
|
|
86
|
+
return [];
|
|
87
|
+
return [WEB_LOCAL_REACTIVE_BRIDGE_RUNTIME, ...(needsCollections ? [WEB_LOCAL_REACTIVE_COLLECTION_BRIDGE_RUNTIME] : [])];
|
|
88
|
+
}
|
|
89
|
+
export function includesErrorNormalizationRuntime(host) {
|
|
90
|
+
return host.webOutput;
|
|
91
|
+
}
|
|
92
|
+
// Web detached tasks report through the velar/app error chain with the
|
|
93
|
+
// distinct "detached" phase. The runtime registry is looked up at report
|
|
94
|
+
// time (module-level tasks can finish before or after the application
|
|
95
|
+
// runtime installs); the captured microtask throw keeps a failure loud when
|
|
96
|
+
// no runtime exists yet, and 'unhandled: true' keeps it loud when no
|
|
97
|
+
// onError handler is installed. Host operations are captured at module
|
|
98
|
+
// initialization, matching the owned-callback discipline.
|
|
99
|
+
export function detachedTaskHelpers(host) {
|
|
100
|
+
// A module with no Web syntax emits no Web runtime, so it must keep Core's
|
|
101
|
+
// host reporting: the browser path would route a detached failure through a
|
|
102
|
+
// runtime registry that never gets installed and end in a microtask throw,
|
|
103
|
+
// which under `velar test` kills the whole Node test process.
|
|
104
|
+
if (!host.webOutput)
|
|
105
|
+
return host.baseDetachedTaskHelpers();
|
|
106
|
+
return [[
|
|
107
|
+
`const __velarDetachedRegistryKey = Symbol.for(${JSON.stringify(VELAR_RUNTIME_REGISTRY_KEY)});`,
|
|
108
|
+
"const __velarDetachedPromiseThen = globalThis.Promise.prototype.then;",
|
|
109
|
+
"const __velarDetachedApply = Reflect.apply;",
|
|
110
|
+
"const __velarDetachedEnqueue = queueMicrotask;",
|
|
111
|
+
"function __velarDetachedReport(failure) {",
|
|
112
|
+
" const error = __velarNormalizeError(failure);",
|
|
113
|
+
" const runtime = globalThis[__velarDetachedRegistryKey];",
|
|
114
|
+
" if (runtime && typeof runtime.report === \"function\") {",
|
|
115
|
+
" // An action reports its own failure once, in the action phase with",
|
|
116
|
+
" // the action's name as detail. The detached observer of that same",
|
|
117
|
+
" // rejection must not report it a second time.",
|
|
118
|
+
" try {",
|
|
119
|
+
" if (__velarIsError(failure) && __velarGraphWeakSetRemove(runtime.actionFailures, failure)) return;",
|
|
120
|
+
" } catch {}",
|
|
121
|
+
" runtime.report(error, { phase: \"detached\", detail: \"\", unhandled: true });",
|
|
122
|
+
" return;",
|
|
123
|
+
" }",
|
|
124
|
+
" __velarDetachedApply(__velarDetachedEnqueue, globalThis, [() => { throw error; }]);",
|
|
125
|
+
"}",
|
|
126
|
+
"function __velarDetachedTask(task) {",
|
|
127
|
+
// D114 W2: the one place a detached Promise enters the Web runtime, and
|
|
128
|
+
// so the one place the reactive window can be told that an observer run
|
|
129
|
+
// started asynchronous work. The runtime foundation decides whether a run
|
|
130
|
+
// is in progress; this site only reports the fact.
|
|
131
|
+
" __velarNoteAsyncWork();",
|
|
132
|
+
" __velarDetachedApply(__velarDetachedPromiseThen, task, [null, __velarDetachedReport]);",
|
|
133
|
+
" return null;",
|
|
134
|
+
"}",
|
|
135
|
+
].join("\n")];
|
|
136
|
+
}
|
|
137
|
+
export function visitLookExpressions(entries, visit) {
|
|
138
|
+
for (const entry of entries) {
|
|
139
|
+
if (entry.kind === "LookProperty" || entry.kind === "LookSpread")
|
|
140
|
+
visit(entry.value);
|
|
141
|
+
else if (entry.kind === "LookIf") {
|
|
142
|
+
visit(entry.condition);
|
|
143
|
+
visitLookExpressions(entry.thenEntries, visit);
|
|
144
|
+
visitLookExpressions(entry.elseEntries, visit);
|
|
145
|
+
}
|
|
146
|
+
else
|
|
147
|
+
visitLookExpressions(entry.entries, visit);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
export function containsUnitLiteral(value) {
|
|
151
|
+
if (!value || typeof value !== "object")
|
|
152
|
+
return false;
|
|
153
|
+
const record = value;
|
|
154
|
+
if (record.kind === "ExtensionExpression:web:unit")
|
|
155
|
+
return true;
|
|
156
|
+
for (const child of Object.values(record)) {
|
|
157
|
+
if (Array.isArray(child)) {
|
|
158
|
+
if (child.some(containsUnitLiteral))
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
else if (containsUnitLiteral(child))
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
export function containsWebSyntax(value) {
|
|
167
|
+
if (!value || typeof value !== "object")
|
|
168
|
+
return false;
|
|
169
|
+
const record = value;
|
|
170
|
+
if (record.kind === "ExtensionStatement:web:component" || record.kind === "ExtensionStatement:web:expose" || record.kind === "ExtensionStatement:web:unsafe-css" || record.kind === "ExtensionExpression:web:look" || record.kind === "ExtensionExpression:web:keyframes" || record.kind === "ExtensionExpression:web:jsx"
|
|
171
|
+
|| record.kind === "ExtensionStatement:web:state" || record.kind === "ExtensionStatement:web:computed" || record.kind === "ExtensionStatement:web:resource" || record.kind === "ExtensionStatement:web:action" || record.kind === "ExtensionStatement:web:watch")
|
|
172
|
+
return true;
|
|
173
|
+
if (record.kind === "IdentifierExpression" && (record.name === "mount" || record.name === "tick"))
|
|
174
|
+
return true;
|
|
175
|
+
return Object.values(record).some((child) => Array.isArray(child) ? child.some(containsWebSyntax) : containsWebSyntax(child));
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* The runtime an emitted Web program carries inside itself: the foundation it
|
|
179
|
+
* installs, the CSS string serializer, the closed keyword sets of the Look
|
|
180
|
+
* properties *this* module styles, and the runtime body. Only the keyword table
|
|
181
|
+
* differs per compilation, which is why it is the one hole
|
|
182
|
+
* `runtime/manifest.json` records as an assembly (LOK-U13 keeps the serializer
|
|
183
|
+
* the one css-string.ts publishes rather than a second spelling of it).
|
|
184
|
+
*/
|
|
185
|
+
function webRuntime(foundation, lookKeywords) {
|
|
186
|
+
return `${foundation}\n${CSS_STRING_RUNTIME_BODY}${lookKeywords}\n${WEB_RUNTIME_BODY}`;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=runtime-imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-imports.js","sourceRoot":"","sources":["../../src/emit/runtime-imports.ts"],"names":[],"mappings":"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"}
|
package/dist/emitter.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CompilerStyleSegments, CompilerEmitterOptions, Expression, Program, Statement, LoweringHints, ValueType } from "@velarscript/compiler/extension";
|
|
2
2
|
import { JavaScriptEmitter } from "@velarscript/compiler/extension";
|
|
3
|
-
|
|
3
|
+
export { dynamicChildLeaves, jsxKeyedList, JSX_SCALAR_TEXT_HINT, type DynamicChildGuard, type DynamicChildLeaf, type JsxKeyedList, } from "./emit/jsx.ts";
|
|
4
4
|
export declare class WebJavaScriptEmitter extends JavaScriptEmitter {
|
|
5
5
|
private currentScope;
|
|
6
6
|
/**
|
|
@@ -30,9 +30,16 @@ export declare class WebJavaScriptEmitter extends JavaScriptEmitter {
|
|
|
30
30
|
private readonly lookKeywordProperties;
|
|
31
31
|
private jsxId;
|
|
32
32
|
private readonly keyframeNames;
|
|
33
|
+
/**
|
|
34
|
+
* D115 P4 R3d: the four emission families this emitter owns as collaborators
|
|
35
|
+
* rather than as more of itself, and the one host object they reach it
|
|
36
|
+
* through. Every `protected` seam is still declared on this class, forwarding
|
|
37
|
+
* to the family that owns its body, so the base emitter reaches the same seam
|
|
38
|
+
* it always did.
|
|
39
|
+
*/
|
|
40
|
+
private readonly host;
|
|
33
41
|
constructor(hints: LoweringHints, forcedFunctionExports?: ReadonlySet<string>, resourceContents?: ReadonlyMap<string, string>, extensionImports?: ReadonlyMap<string, ReadonlyMap<string, unknown>>, options?: CompilerEmitterOptions);
|
|
34
42
|
emit(program: Program): string;
|
|
35
|
-
/** Emits `render` with module evaluation switched off, for a body that runs under an owner of its own. */
|
|
36
43
|
private outsideModuleEvaluation;
|
|
37
44
|
css(): string;
|
|
38
45
|
styleSegments(): CompilerStyleSegments;
|
|
@@ -40,14 +47,6 @@ export declare class WebJavaScriptEmitter extends JavaScriptEmitter {
|
|
|
40
47
|
protected emitTypeCheck(type: ValueType, value: string, state?: string): string;
|
|
41
48
|
protected emitIsCheck(type: ValueType, value: string): string;
|
|
42
49
|
protected additionalHelpers(_program: Program): readonly string[];
|
|
43
|
-
private webRuntimeHelpers;
|
|
44
|
-
/**
|
|
45
|
-
* The closed keyword sets of the properties this module styles, so a value
|
|
46
|
-
* the compiler could not read is still checked before it reaches the DOM.
|
|
47
|
-
* Only the properties written here ship: the whole table is 17 KiB, and a
|
|
48
|
-
* module pays for the properties it uses.
|
|
49
|
-
*/
|
|
50
|
-
private lookKeywordTable;
|
|
51
50
|
protected reactiveBridgeHelpers(needsJavaScriptCallBoundary: boolean, needsCollections: boolean, usedIdentifiers?: ReadonlySet<string>): readonly string[];
|
|
52
51
|
protected includesErrorNormalizationRuntime(): boolean;
|
|
53
52
|
protected detachedTaskHelpers(): readonly string[];
|
|
@@ -57,65 +56,13 @@ export declare class WebJavaScriptEmitter extends JavaScriptEmitter {
|
|
|
57
56
|
protected extensionStatementContainsDirectAwait(statement: Statement, containsExpression: (expression: Expression) => boolean, containsBlock: (statements: readonly Statement[]) => boolean): boolean | undefined;
|
|
58
57
|
protected emitStatement(statement: Statement, depth: number): string;
|
|
59
58
|
protected emitExpression(expression: Expression): string;
|
|
60
|
-
private emitLook;
|
|
61
|
-
private emitLookEntries;
|
|
62
|
-
private emitLookValue;
|
|
63
|
-
private emitLookArithmetic;
|
|
64
|
-
private emitComponent;
|
|
65
|
-
private emitReactiveAssignment;
|
|
66
|
-
private emitJsx;
|
|
67
|
-
private emitJsxCode;
|
|
68
|
-
private emitJsxChildren;
|
|
69
|
-
private emitJsxChildrenCode;
|
|
70
|
-
private emitDynamicChild;
|
|
71
59
|
/**
|
|
72
|
-
* The
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
60
|
+
* The one object every family is handed. Its properties are live reads and
|
|
61
|
+
* writes of this emitter: a family that records "this module needs the
|
|
62
|
+
* file-type helper" or assigns the stylesheet must set the emitter's own
|
|
63
|
+
* field, because `emit()`, `css()` and `styleSegments()` read them after
|
|
64
|
+
* every family has run.
|
|
77
65
|
*/
|
|
78
|
-
private
|
|
79
|
-
private emitDynamicChildLeaf;
|
|
80
|
-
private emitGuardedExpression;
|
|
81
|
-
/**
|
|
82
|
-
* D47 rule 84(A): a bind target is a state cell, or a writable reactive
|
|
83
|
-
* location inside one. A member/index path lowers to the get/set pair the
|
|
84
|
-
* binding helpers already expect, so a field of state reads and writes through
|
|
85
|
-
* exactly the same statements the author would have written by hand.
|
|
86
|
-
*/
|
|
87
|
-
private emitBindTarget;
|
|
88
|
-
private emitJsxAttributeValue;
|
|
89
|
-
private emitJsxLookValue;
|
|
90
|
-
private emitJsxStyleValue;
|
|
91
|
-
private prepareLooks;
|
|
92
|
-
}
|
|
93
|
-
export interface JsxKeyedList {
|
|
94
|
-
readonly source: Expression;
|
|
95
|
-
readonly arrow: Extract<Expression, {
|
|
96
|
-
kind: "ArrowFunctionExpression";
|
|
97
|
-
}> & {
|
|
98
|
-
readonly body: JSXElementExpression;
|
|
99
|
-
};
|
|
100
|
-
readonly key: JSXAttribute | null;
|
|
101
|
-
}
|
|
102
|
-
export interface DynamicChildGuard {
|
|
103
|
-
readonly condition: Expression;
|
|
104
|
-
readonly thenBranch: boolean;
|
|
105
|
-
}
|
|
106
|
-
export interface DynamicChildLeaf {
|
|
107
|
-
readonly expression: Expression;
|
|
108
|
-
readonly list: JsxKeyedList | null;
|
|
109
|
-
readonly guards: readonly DynamicChildGuard[];
|
|
66
|
+
private emitHost;
|
|
110
67
|
}
|
|
111
|
-
export declare function jsxKeyedList(expression: Expression): JsxKeyedList | null;
|
|
112
|
-
/**
|
|
113
|
-
* F1: the analyzer's verdict that an interpolation's checked type renders as
|
|
114
|
-
* exactly one text node. The emitter cannot re-derive it — the checked type is
|
|
115
|
-
* gone by lowering time — so the analyzer stamps the child expression's span
|
|
116
|
-
* and the emitter reads it back through the extension-hint channel that
|
|
117
|
-
* `LOOK_ARITHMETIC_HINT` already uses.
|
|
118
|
-
*/
|
|
119
|
-
export declare const JSX_SCALAR_TEXT_HINT = "@velarscript/web:jsx-scalar-text";
|
|
120
|
-
export declare function dynamicChildLeaves(expression: Expression, guards?: readonly DynamicChildGuard[]): readonly DynamicChildLeaf[];
|
|
121
68
|
//# sourceMappingURL=emitter.d.ts.map
|
package/dist/emitter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,SAAS,EACV,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../src/emitter.ts"],"names":[],"mappings":"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"}
|