@nextwebwg/html-next-converter 1.0.0-alpha.3 → 1.0.0-alpha.31
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 +125 -11
- package/dist/cli.js +6 -4
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +390 -20
- package/dist/index.js.map +1 -1
- package/package.json +20 -8
package/README.md
CHANGED
|
@@ -1,25 +1,139 @@
|
|
|
1
1
|
# `@nextwebwg/html-next-converter`
|
|
2
2
|
|
|
3
|
-
Converts a Declarative Components application or library graph into Vue 3.5 single-file
|
|
4
|
-
Once converted, HTML Next is gone
|
|
5
|
-
its
|
|
6
|
-
|
|
3
|
+
Converts a Declarative Components application or library graph into Vue 3.5 or Svelte 5 single-file
|
|
4
|
+
components, or React 19.3 TSX components. Once converted, HTML Next is gone. Each `.vue` file imports Vue,
|
|
5
|
+
its nested components, its controller (copied beside it), and only the generated helpers its
|
|
6
|
+
features need. A Vue component using
|
|
7
|
+
`$html` imports `vue/html.ts`; that helper requires `parse5` as an application dependency for
|
|
8
|
+
deterministic SSR. It parses inert fragments and applies one pinned safe-default allowlist in every
|
|
9
|
+
browser and on the server. It deliberately does not call native `setHTML()`, even where available:
|
|
10
|
+
Firefox currently parses malformed table content differently from Chromium, WebKit, and `parse5`,
|
|
11
|
+
which would make hydration browser-dependent. Props, state, computed values, bindings, structural
|
|
12
|
+
directives and slots map to Vue's own facilities; declared events remain native
|
|
13
|
+
`CustomEvent`s on the lowered root (Vue emits are reserved for `v-model` updates), and styles become
|
|
7
14
|
`<style scoped>`.
|
|
8
15
|
|
|
16
|
+
Components declaring props import `vue/props.ts`. Invalid incoming values remain available at
|
|
17
|
+
their source while the root reports validity; a later typed binding is checked separately. A
|
|
18
|
+
Vue property binding should supply a number or boolean as that type, not as a string. Prop-free
|
|
19
|
+
components do not include this helper.
|
|
20
|
+
|
|
9
21
|
```sh
|
|
10
|
-
html-next-convert vue components
|
|
22
|
+
html-next-convert vue 'components/**' --mode library --out-dir generated
|
|
11
23
|
```
|
|
12
24
|
|
|
25
|
+
Quote the glob so the converter, not your shell, expands it. It discovers every `.html`
|
|
26
|
+
component below `components/`, including definitions with no incoming component link, and
|
|
27
|
+
preserves the source directory layout beneath `generated/vue/`. One HTML resource may define
|
|
28
|
+
several `<template component>` carriers; each gets its own named export. Names retain their
|
|
29
|
+
prefix: `ui-button` becomes `UiButton`. A directory path such as
|
|
30
|
+
`components/` is shorthand for the same recursive scan. Explicit `.html` files remain valid.
|
|
31
|
+
|
|
32
|
+
When a `<data src>` URL is relative to its component file, pass `--public-root-url /app/`
|
|
33
|
+
if the conversion root is served at `/app/`. The converter uses that URL to preserve
|
|
34
|
+
definition-relative requests in the browser. Root-relative and absolute request URLs need no
|
|
35
|
+
mapping; a missing mapping for a component-relative URL is a conversion error. The equivalent
|
|
36
|
+
JavaScript option is `publicRootURL`.
|
|
37
|
+
|
|
13
38
|
Application conversion emits an `application.ts` entry for the selected graph roots. Library
|
|
14
39
|
conversion emits an `index.ts` entry whose named exports are independently consumable. Both modes
|
|
15
|
-
emit `html-next.conversion.json`, which records the input entries, output entry, every artifact,
|
|
16
|
-
the target version
|
|
40
|
+
emit `html-next.conversion.json`, which records the input entries, output entry, every artifact,
|
|
41
|
+
the target version, and package-shaped `dependencies` and `peerDependencies`. Copy the relevant
|
|
42
|
+
fields from `package` into the published package's `package.json`. `parse5` appears in
|
|
43
|
+
`dependencies` only when an emitted `$html` helper needs it; Vue, React, or Svelte appears in
|
|
44
|
+
`peerDependencies` for its respective output. Dependencies imported by authored controller
|
|
45
|
+
modules remain the publisher's responsibility.
|
|
17
46
|
|
|
18
47
|
Publish the `.vue` files together with the `.js` and `.d.ts` your Vue build produces from them
|
|
19
48
|
(for example `vite build` with `@vitejs/plugin-vue`, and `vue-tsc --declaration --emitDeclarationOnly`).
|
|
20
49
|
|
|
21
|
-
|
|
22
|
-
`HTC001`
|
|
23
|
-
output is written, and an unsupported target version produces
|
|
50
|
+
Invalid definitions retain HTML Next's source-located `HT` diagnostics. A valid construct that Vue
|
|
51
|
+
conversion cannot map produces source-located `HTC001` with the underlying code. Colliding generated
|
|
52
|
+
paths produce `HTC002` before any output is written, and an unsupported target version produces
|
|
53
|
+
`HTC003` before the graph is loaded.
|
|
54
|
+
|
|
55
|
+
React output accepts the same quoted globs and mirrors the same source
|
|
56
|
+
directories under `generated/react/`, emitting `.tsx` and adjacent plain `.css` files. The CSS is
|
|
57
|
+
imported by each component; styled-components is not used. React conversion covers
|
|
58
|
+
static markup, props and bindings, default and named/scoped slots, state/computed/handlers,
|
|
59
|
+
context, declared data, native form controls, safe HTML, and structural templates. The shared
|
|
60
|
+
conformance corpus and feature-specific React fixtures compare browser behavior, server output,
|
|
61
|
+
hydration, and exact pixels with the live runtime in Chromium, Firefox, and WebKit. Constructs
|
|
62
|
+
that cannot be represented fail conversion explicitly rather than silently changing behavior.
|
|
63
|
+
Svelte output uses Svelte 5 runes, snippets, attachments, and public lifecycle APIs, with `.svelte`
|
|
64
|
+
components and adjacent imported CSS under `generated/svelte/`. It supports props (including generic
|
|
65
|
+
and state-selected types), state/computed/handlers, named and scoped slots, native events, context, data reads, controllers and refs, native form controls, safe HTML, structural
|
|
66
|
+
flow, and keyed lists. Native-control helpers preserve authored reset defaults and dirty edits;
|
|
67
|
+
Svelte's normal compiler owns rendering, SSR, and hydration.
|
|
68
|
+
|
|
69
|
+
```sh
|
|
70
|
+
html-next-convert svelte 'components/**' --mode library --out-dir generated
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
The current supported Svelte baseline is 5.57.1. Compile generated files with the standard Svelte
|
|
74
|
+
compiler or `@sveltejs/vite-plugin-svelte`. Source consumers can use `svelte-check`; publishers
|
|
75
|
+
emitting declaration files can use `svelte2tsx`. The generated public types cover props, native and
|
|
76
|
+
declared event callbacks and scoped slot fields. Both graph modes export components; application and library consumers use public `mount`/`hydrate`
|
|
77
|
+
or their framework's usual mounting and hydration flow.
|
|
78
|
+
Svelte support uses the unmodified framework; consumers do not install a runtime patch.
|
|
79
|
+
One known upstream gap remains: reordering a keyed row can blur its focused input. Svelte uses
|
|
80
|
+
ordinary DOM insertion to move the row, which can clear browser focus. In Svelte 5.57.1, our
|
|
81
|
+
Chromium, Firefox, and WebKit checks retain edited values and selection but lose focus;
|
|
82
|
+
Chromium also fires `blur` and `focusout`. The native HTML Next runtime retains focus in engines
|
|
83
|
+
with state-preserving `moveBefore`; its WebKit insertion fallback has the same focus loss.
|
|
84
|
+
This affects both mounting and hydration. See [Svelte issue #3973 and the editable Playground
|
|
85
|
+
reproduction](https://github.com/sveltejs/svelte/issues/3973#issuecomment-6003429271). Converter tests keep
|
|
86
|
+
this difference explicit while continuing to check rendering, edits, events, lifecycle and hydration.
|
|
87
|
+
|
|
88
|
+
Feature helpers are emitted once per converted graph and imported only by components that need
|
|
89
|
+
them. Style bindings record `cssstyle` and `css-tree` in server dependencies; the generated helper's
|
|
90
|
+
standard `browser` mapping uses the live element's CSSOM in browser builds.
|
|
91
|
+
|
|
92
|
+
React applications use their usual `hydrateRoot` call and error options. If the server root is
|
|
93
|
+
incompatible, React reports the recovery through `onRecoverableError` (or its default reporting);
|
|
94
|
+
the converter does not generate an `HR005` hydration entry or replace React's recovery flow.
|
|
95
|
+
|
|
96
|
+
For source-only distribution with automatic Vue, React, or Svelte conversion in the consuming app,
|
|
97
|
+
use the [Vite adapter](../html-next-unplugin/README.md#framework-source-imports). It also
|
|
98
|
+
generates consumer declarations, so publishers do not need separate framework copies.
|
|
99
|
+
|
|
100
|
+
To distribute preconverted copies of one authored library in all four forms, assemble the native HTML Next package from
|
|
101
|
+
the `.html` sources, then run the Vue, React, and Svelte library converters over the same quoted glob. Give
|
|
102
|
+
each conversion its own output directory so each `html-next.conversion.json` manifest survives:
|
|
103
|
+
|
|
104
|
+
```sh
|
|
105
|
+
html-next-convert vue 'components/**' --mode library --out-dir package/converted/vue-target
|
|
106
|
+
html-next-convert react 'components/**' --mode library --out-dir package/converted/react-target
|
|
107
|
+
html-next-convert svelte 'components/**' --mode library --out-dir package/converted/svelte-target
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
The package can expose the native entry and the converted Vue, React, and Svelte entries as
|
|
111
|
+
separate subpaths. If publishing source output, point `./vue`, `./react`, and `./svelte` at the generated
|
|
112
|
+
`vue/index.ts`, `react/index.ts`, and `svelte/index.ts`, include their component files and CSS, merge the conversion
|
|
113
|
+
inventories' `package.dependencies` and `package.peerDependencies` into the package manifest,
|
|
114
|
+
and mark Vue, React, and Svelte as optional peers when each subpath is independently usable. Consumers
|
|
115
|
+
then compile `.vue`, `.tsx`, and `.svelte` with their normal bundler plugins. For precompiled distribution,
|
|
116
|
+
emit JavaScript and declarations from those entries and point exports at the built files. The
|
|
117
|
+
[installed-library test](./tests/library-distribution.test.ts) packs and installs the source-output
|
|
118
|
+
shape, then renders the framework entries from that independent consumer.
|
|
119
|
+
|
|
120
|
+
For guaranteed unused-component **and CSS** pruning in a preconverted package, expose individual
|
|
121
|
+
component subpaths from the conversion inventory, such as `./react/XCard` pointing to
|
|
122
|
+
`react/components/XCard.tsx`. Consumers can then import only the components they use. Some
|
|
123
|
+
bundlers retain CSS side-effect imports from unused named re-exports in a shared `./react` barrel,
|
|
124
|
+
even when they remove the unused JavaScript. The on-demand Vite adapter handles pruning for its
|
|
125
|
+
generated named exports.
|
|
126
|
+
|
|
127
|
+
Controllers initialize once per component instance. Use `host.on("connect", setup)` for setup
|
|
128
|
+
that must run on every connection; return its disconnect cleanup from `setup`. Register other
|
|
129
|
+
native events with `host.on(type, listener)`, which detaches listeners while disconnected and
|
|
130
|
+
reattaches them on reconnect. A handler can dispatch its native `$$event` or selected event fields
|
|
131
|
+
to that listener. `<method>` and automatic named-export element methods are unsupported.
|
|
132
|
+
|
|
133
|
+
`host.state` contains mutable state, readonly computed state, and inherited context. Resources
|
|
134
|
+
are read through `host.data.name`, including their readonly response and status fields. Invalid
|
|
135
|
+
authored state assignments retain the prior value and warn; native control edits retain their
|
|
136
|
+
ordinary validity behavior. Props use `:host([prop])` styling, and state uses `:host-state([state])`.
|
|
137
|
+
The [public proposal](https://nextwebwg.org/declarative-components/javascript/) defines these contracts.
|
|
24
138
|
|
|
25
|
-
|
|
139
|
+
Handler `<dispatch target="name">` resolves the current component instance's `$ref="name"`, never a DOM ID. Collection refs receive separate native events in rendered order; payload expressions are sampled once. React, Vue, and Svelte outputs preserve the authored event type and flags, and a targeted request does not become a framework emit from its sender. See [dispatch targets](https://nextwebwg.org/declarative-components/bindings/#dispatch-target).
|
package/dist/cli.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
3
|
import { convertComponents } from "./index.js";
|
|
4
4
|
function usage() {
|
|
5
|
-
return "Usage: html-next-convert vue <component.html
|
|
5
|
+
return "Usage: html-next-convert <vue|react|svelte> <component.html|directory|glob>... --mode <application|library> --out-dir <directory> [--public-root-url <url>]";
|
|
6
6
|
}
|
|
7
7
|
async function main(argv) {
|
|
8
8
|
const target = argv[0];
|
|
@@ -10,12 +10,14 @@ async function main(argv) {
|
|
|
10
10
|
const mode = argv[modeIndex + 1];
|
|
11
11
|
const outIndex = argv.indexOf("--out-dir");
|
|
12
12
|
const outDirectory = argv[outIndex + 1];
|
|
13
|
-
|
|
13
|
+
const publicRootIndex = argv.indexOf("--public-root-url");
|
|
14
|
+
const publicRootURL = publicRootIndex < 0 ? undefined : argv[publicRootIndex + 1];
|
|
15
|
+
if (target === undefined || !["vue", "react", "svelte"].includes(target) ||
|
|
14
16
|
mode === undefined || !["application", "library"].includes(mode) ||
|
|
15
17
|
modeIndex < 2 || outIndex !== modeIndex + 2 || outDirectory === undefined ||
|
|
16
|
-
outIndex !== argv.length - 2)
|
|
18
|
+
(publicRootIndex < 0 ? outIndex !== argv.length - 2 : publicRootIndex !== outIndex + 2 || publicRootIndex !== argv.length - 2 || publicRootURL === undefined))
|
|
17
19
|
throw new Error(usage());
|
|
18
|
-
await convertComponents({ mode, entries: argv.slice(1, modeIndex), target, outDirectory });
|
|
20
|
+
await convertComponents({ mode, entries: argv.slice(1, modeIndex), target, outDirectory, ...(publicRootURL === undefined ? {} : { publicRootURL }) });
|
|
19
21
|
}
|
|
20
22
|
if (process.argv[1] === fileURLToPath(import.meta.url)) {
|
|
21
23
|
try {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAA8C,MAAM,YAAY,CAAC;AAE3F,SAAS,KAAK;IACZ,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAA8C,MAAM,YAAY,CAAC;AAE3F,SAAS,KAAK;IACZ,OAAO,6JAA6J,CAAC;AACvK,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAuB;IACzC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAgC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAgC,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACxC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;IAClF,IACE,MAAM,KAAK,SAAS,IAAI,CAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC/E,IAAI,KAAK,SAAS,IAAI,CAAE,CAAC,aAAa,EAAE,SAAS,CAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC3E,SAAS,GAAG,CAAC,IAAI,QAAQ,KAAK,SAAS,GAAG,CAAC,IAAI,YAAY,KAAK,SAAS;QACzE,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,KAAK,QAAQ,GAAG,CAAC,IAAI,eAAe,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,KAAK,SAAS,CAAC;QAC7J,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3B,MAAM,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;AACxJ,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type FrameworkTarget = "vue";
|
|
1
|
+
export type FrameworkTarget = "vue" | "react" | "svelte";
|
|
2
2
|
export type ConversionGraph = "application" | "library";
|
|
3
3
|
interface BaseConvertOptions {
|
|
4
4
|
readonly entries: readonly string[];
|
|
@@ -6,6 +6,8 @@ interface BaseConvertOptions {
|
|
|
6
6
|
readonly targetVersion?: string;
|
|
7
7
|
readonly outDirectory: string;
|
|
8
8
|
readonly root?: string;
|
|
9
|
+
/** Browser URL of `root`, required when a data source is relative to its component file. */
|
|
10
|
+
readonly publicRootURL?: string;
|
|
9
11
|
}
|
|
10
12
|
export interface ApplicationConvertOptions extends BaseConvertOptions {
|
|
11
13
|
readonly mode: "application";
|
|
@@ -21,7 +23,7 @@ export interface ConversionEntry {
|
|
|
21
23
|
}
|
|
22
24
|
export interface ConversionOutput {
|
|
23
25
|
readonly path: string;
|
|
24
|
-
readonly kind: "component" | "controller" | "entry" | "inventory";
|
|
26
|
+
readonly kind: "component" | "controller" | "helper" | "style" | "entry" | "inventory";
|
|
25
27
|
readonly source?: string;
|
|
26
28
|
}
|
|
27
29
|
export interface ConversionManifest {
|
|
@@ -29,7 +31,14 @@ export interface ConversionManifest {
|
|
|
29
31
|
readonly target: FrameworkTarget;
|
|
30
32
|
readonly targetVersion: string;
|
|
31
33
|
readonly graph: ConversionGraph;
|
|
34
|
+
/** Package.json fields required by the emitted source artifacts. */
|
|
35
|
+
readonly package: {
|
|
36
|
+
readonly dependencies: Readonly<Record<string, string>>;
|
|
37
|
+
readonly peerDependencies: Readonly<Record<string, string>>;
|
|
38
|
+
};
|
|
32
39
|
readonly entries: readonly ConversionEntry[];
|
|
40
|
+
/** Authored HTML and controller dependencies, relative to the conversion root. */
|
|
41
|
+
readonly sourceFiles: readonly string[];
|
|
33
42
|
readonly output: {
|
|
34
43
|
readonly entry: string;
|
|
35
44
|
readonly inventory: "html-next.conversion.json";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
|
-
import { dirname, relative, resolve, sep } from "node:path";
|
|
1
|
+
import { glob, lstat, mkdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname, extname, isAbsolute, relative, resolve, sep } from "node:path";
|
|
3
3
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
4
|
-
import { addControllerGraph, generateVueComponent, HtmlDiagnosticError, loadNodeComponents, } from "@nextwebwg/html-next";
|
|
4
|
+
import { addControllerGraph, generateVueComponent, generateReactConversion, generateSvelteConversion, HtmlDiagnosticError, loadNodeComponents, vueHostArtifact, vueHtmlArtifact, vueControlArtifact, vuePropsArtifact, reactPropsArtifact, sveltePropsArtifact, svelteHtmlArtifact, svelteEventsArtifact, svelteControlArtifact, svelteDataArtifact, svelteReactivityArtifact, svelteHostArtifact, svelteConnectionArtifact, svelteDecorationsArtifact, svelteStyleArtifacts, reactEventsArtifact, reactControlArtifact, reactDataArtifact, reactHtmlArtifact, reactHostArtifact, reactContextArtifact, reactDepthArtifact, } from "@nextwebwg/html-next";
|
|
5
5
|
const targetVersions = {
|
|
6
6
|
vue: "3.5",
|
|
7
|
+
react: "19.3",
|
|
8
|
+
svelte: "5.57.1",
|
|
7
9
|
};
|
|
8
10
|
export class FrameworkOutputCollisionError extends Error {
|
|
9
11
|
target;
|
|
@@ -66,14 +68,191 @@ async function emit(root, artifact) {
|
|
|
66
68
|
function frameworkEntry(mode, target, entries) {
|
|
67
69
|
const exports = [...entries].sort((left, right) => left.artifact.localeCompare(right.artifact)).map((entry) => {
|
|
68
70
|
const artifact = entry.artifact.slice(entry.artifact.lastIndexOf("/") + 1);
|
|
69
|
-
const name = artifact.replace(/\.vue$/, "");
|
|
70
|
-
return `export { default as ${name} } from ${JSON.stringify(
|
|
71
|
+
const name = artifact.replace(/\.(?:vue|tsx|svelte)$/, "");
|
|
72
|
+
return `export { default as ${name} } from ${JSON.stringify(relativeImport(`${target}/index.ts`, entry.artifact))};`;
|
|
71
73
|
});
|
|
72
74
|
return {
|
|
73
75
|
path: `${target}/${mode === "application" ? "application.ts" : "index.ts"}`,
|
|
74
76
|
content: `${exports.join("\n")}\n`,
|
|
75
77
|
};
|
|
76
78
|
}
|
|
79
|
+
function relativeImport(from, to) {
|
|
80
|
+
const path = relative(dirname(from), to).split(sep).join("/");
|
|
81
|
+
return path.startsWith(".") ? path : `./${path}`;
|
|
82
|
+
}
|
|
83
|
+
function hasGlob(pattern) {
|
|
84
|
+
return pattern.includes("*") || pattern.includes("?") || pattern.includes("[") || pattern.includes("{");
|
|
85
|
+
}
|
|
86
|
+
/** A file remains an entry; a glob or directory expands to every HTML component below it. */
|
|
87
|
+
async function expandEntries(projectRoot, patterns) {
|
|
88
|
+
const entries = [];
|
|
89
|
+
for (const pattern of patterns) {
|
|
90
|
+
let scan = pattern;
|
|
91
|
+
if (!hasGlob(pattern)) {
|
|
92
|
+
const path = resolve(projectRoot, pattern);
|
|
93
|
+
const metadata = await lstat(path).catch((error) => {
|
|
94
|
+
if (error !== null && typeof error === "object" && "code" in error && error.code === "ENOENT")
|
|
95
|
+
return undefined;
|
|
96
|
+
throw error;
|
|
97
|
+
});
|
|
98
|
+
if (!metadata?.isDirectory()) {
|
|
99
|
+
entries.push(pattern);
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
scan = `${pattern.replace(/[\\/]$/, "")}/**`;
|
|
103
|
+
}
|
|
104
|
+
const matches = [];
|
|
105
|
+
for await (const match of glob(scan, { cwd: projectRoot })) {
|
|
106
|
+
if (extname(match).toLowerCase() !== ".html")
|
|
107
|
+
continue;
|
|
108
|
+
if (!(await lstat(resolve(projectRoot, match))).isFile())
|
|
109
|
+
continue;
|
|
110
|
+
matches.push(match);
|
|
111
|
+
}
|
|
112
|
+
if (matches.length === 0)
|
|
113
|
+
throw new Error(`Framework conversion input ${JSON.stringify(pattern)} matched no HTML component files.`);
|
|
114
|
+
entries.push(...matches.sort());
|
|
115
|
+
}
|
|
116
|
+
return entries;
|
|
117
|
+
}
|
|
118
|
+
function componentArtifact(projectRoot, url, tag, name, target) {
|
|
119
|
+
const source = relative(projectRoot, fileURLToPath(url));
|
|
120
|
+
const insideRoot = source !== ".." && !source.startsWith(`..${sep}`) && !isAbsolute(source);
|
|
121
|
+
const directory = insideRoot ? dirname(source) : `_external/${tag}`;
|
|
122
|
+
const segments = directory === "." ? [] : directory.split(sep);
|
|
123
|
+
return [target, ...segments, `${name}.${target === "vue" ? "vue" : target === "svelte" ? "svelte" : "tsx"}`].join("/");
|
|
124
|
+
}
|
|
125
|
+
function componentRelativeDataSource(source) {
|
|
126
|
+
return !source.startsWith("/") && !/^[A-Za-z][A-Za-z0-9+.-]*:/.test(source);
|
|
127
|
+
}
|
|
128
|
+
function browserDefinitionURL(definition, source, publicRootURL, target, tag) {
|
|
129
|
+
const relativeData = definition.declarations?.some((declaration) => declaration.kind === "data" && declaration.source !== undefined && componentRelativeDataSource(declaration.source)) ?? false;
|
|
130
|
+
if (relativeData && publicRootURL === undefined) {
|
|
131
|
+
throw new FrameworkConversionError(target, source, tag, "component-relative <data src> requires publicRootURL, the browser URL corresponding to the conversion root");
|
|
132
|
+
}
|
|
133
|
+
if (publicRootURL === undefined)
|
|
134
|
+
return "";
|
|
135
|
+
if (!publicRootURL.endsWith("/") || !/^(?:\/|https?:\/\/)/.test(publicRootURL) || /[?#]/.test(publicRootURL) || source.startsWith("../")) {
|
|
136
|
+
throw new FrameworkConversionError(target, source, tag, "publicRootURL must be an HTTP(S) or root-relative directory URL, and the component must be inside the conversion root");
|
|
137
|
+
}
|
|
138
|
+
return `${publicRootURL}${source.split("/").map(encodeURIComponent).join("/")}`;
|
|
139
|
+
}
|
|
140
|
+
/** Only graphs with an invocation cycle or a path past 32 nested components need HR008 checks. */
|
|
141
|
+
function needsNestedDepthGuard(graph) {
|
|
142
|
+
const edges = new Map();
|
|
143
|
+
for (const node of graph.nodes.values()) {
|
|
144
|
+
const children = new Set();
|
|
145
|
+
const visit = (template) => {
|
|
146
|
+
if (template.kind === "slot") {
|
|
147
|
+
for (const child of template.fallback ?? [])
|
|
148
|
+
visit(child);
|
|
149
|
+
}
|
|
150
|
+
else if (template.kind === "element") {
|
|
151
|
+
if (graph.tags.has(template.name))
|
|
152
|
+
children.add(template.name);
|
|
153
|
+
for (const child of template.children)
|
|
154
|
+
visit(child);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
visit(node.definition.template);
|
|
158
|
+
edges.set(node.definition.contract.tag, children);
|
|
159
|
+
}
|
|
160
|
+
const active = new Set();
|
|
161
|
+
const height = new Map();
|
|
162
|
+
const visit = (tag) => {
|
|
163
|
+
if (active.has(tag))
|
|
164
|
+
return Infinity;
|
|
165
|
+
const known = height.get(tag);
|
|
166
|
+
if (known !== undefined)
|
|
167
|
+
return known;
|
|
168
|
+
active.add(tag);
|
|
169
|
+
let result = 1;
|
|
170
|
+
for (const child of edges.get(tag) ?? [])
|
|
171
|
+
result = Math.max(result, 1 + visit(child));
|
|
172
|
+
active.delete(tag);
|
|
173
|
+
height.set(tag, result);
|
|
174
|
+
return result;
|
|
175
|
+
};
|
|
176
|
+
// An initial root plus 32 nested lowering passes permits 33 component nodes.
|
|
177
|
+
return [...edges.keys()].some((tag) => visit(tag) > 33);
|
|
178
|
+
}
|
|
179
|
+
function decoratedRoots(graph) {
|
|
180
|
+
const receivers = new Map();
|
|
181
|
+
const pending = [];
|
|
182
|
+
const add = (tag, classes, styles) => {
|
|
183
|
+
const previous = receivers.get(tag);
|
|
184
|
+
if ((!classes || previous?.classes) && (!styles || previous?.styles))
|
|
185
|
+
return false;
|
|
186
|
+
receivers.set(tag, { classes: classes || previous?.classes === true, styles: styles || previous?.styles === true });
|
|
187
|
+
pending.push(tag);
|
|
188
|
+
return true;
|
|
189
|
+
};
|
|
190
|
+
for (const node of graph.nodes.values()) {
|
|
191
|
+
const visit = (template) => {
|
|
192
|
+
if (template.kind === "slot")
|
|
193
|
+
for (const child of template.fallback ?? [])
|
|
194
|
+
visit(child);
|
|
195
|
+
else if (template.kind === "element") {
|
|
196
|
+
if (template.name.includes("-"))
|
|
197
|
+
add(template.name, template.attributes.some((attribute) => attribute.kind === "attribute" && attribute.target === "class"), template.attributes.some((attribute) => attribute.kind === "attribute" && attribute.target === "style"));
|
|
198
|
+
for (const child of template.children)
|
|
199
|
+
visit(child);
|
|
200
|
+
}
|
|
201
|
+
};
|
|
202
|
+
visit(node.definition.template);
|
|
203
|
+
}
|
|
204
|
+
while (pending.length > 0) {
|
|
205
|
+
const tag = pending.pop();
|
|
206
|
+
const id = graph.tags.get(tag);
|
|
207
|
+
const root = id === undefined ? undefined : graph.nodes.get(id)?.definition.root;
|
|
208
|
+
if (root?.kind === "component") {
|
|
209
|
+
const receiver = receivers.get(tag);
|
|
210
|
+
add(root.tag, receiver.classes, receiver.styles);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return receivers;
|
|
214
|
+
}
|
|
215
|
+
function nativeBindingRoots(graph) {
|
|
216
|
+
const receivers = new Map();
|
|
217
|
+
const pending = [];
|
|
218
|
+
const add = (tag, name) => {
|
|
219
|
+
let names = receivers.get(tag);
|
|
220
|
+
if (names?.has(name))
|
|
221
|
+
return;
|
|
222
|
+
if (names === undefined)
|
|
223
|
+
receivers.set(tag, names = new Set());
|
|
224
|
+
names.add(name);
|
|
225
|
+
pending.push(tag);
|
|
226
|
+
};
|
|
227
|
+
for (const node of graph.nodes.values()) {
|
|
228
|
+
const visit = (template) => {
|
|
229
|
+
if (template.kind === "slot")
|
|
230
|
+
for (const child of template.fallback ?? [])
|
|
231
|
+
visit(child);
|
|
232
|
+
else if (template.kind === "element") {
|
|
233
|
+
const id = graph.tags.get(template.name);
|
|
234
|
+
const props = id === undefined ? undefined : graph.nodes.get(id)?.definition.contract.props;
|
|
235
|
+
if (props !== undefined)
|
|
236
|
+
for (const attribute of template.attributes) {
|
|
237
|
+
if (attribute.kind === "attribute" && attribute.twoWay === true && !Object.keys(props).some((name) => name.toLowerCase() === attribute.name || name.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase() === attribute.name))
|
|
238
|
+
add(template.name, attribute.name);
|
|
239
|
+
}
|
|
240
|
+
for (const child of template.children)
|
|
241
|
+
visit(child);
|
|
242
|
+
}
|
|
243
|
+
};
|
|
244
|
+
visit(node.definition.template);
|
|
245
|
+
}
|
|
246
|
+
while (pending.length > 0) {
|
|
247
|
+
const tag = pending.pop();
|
|
248
|
+
const id = graph.tags.get(tag);
|
|
249
|
+
const root = id === undefined ? undefined : graph.nodes.get(id)?.definition.root;
|
|
250
|
+
if (root?.kind === "component")
|
|
251
|
+
for (const name of receivers.get(tag))
|
|
252
|
+
add(root.tag, name);
|
|
253
|
+
}
|
|
254
|
+
return receivers;
|
|
255
|
+
}
|
|
77
256
|
export async function convertComponents(options) {
|
|
78
257
|
if (options.entries.length === 0)
|
|
79
258
|
throw new Error("Framework conversion requires at least one component entry.");
|
|
@@ -83,7 +262,8 @@ export async function convertComponents(options) {
|
|
|
83
262
|
}
|
|
84
263
|
const projectRoot = resolve(options.root ?? process.cwd());
|
|
85
264
|
const outputRoot = resolve(options.outDirectory);
|
|
86
|
-
const
|
|
265
|
+
const expanded = await expandEntries(projectRoot, options.entries);
|
|
266
|
+
const entries = expanded.map((entry) => pathToFileURL(resolve(projectRoot, entry)).href);
|
|
87
267
|
const seenEntries = new Set();
|
|
88
268
|
for (const entry of entries) {
|
|
89
269
|
if (seenEntries.has(entry)) {
|
|
@@ -92,8 +272,35 @@ export async function convertComponents(options) {
|
|
|
92
272
|
seenEntries.add(entry);
|
|
93
273
|
}
|
|
94
274
|
const graph = await loadNodeComponents(entries, { baseURL: pathToFileURL(`${projectRoot}${sep}`).href });
|
|
275
|
+
const sourceFiles = new Set([...graph.nodes.values()].map((node) => fileURLToPath(node.url)));
|
|
276
|
+
const pathsByTag = new Map([...graph.nodes.values()].map((node) => [
|
|
277
|
+
node.definition.contract.tag,
|
|
278
|
+
componentArtifact(projectRoot, node.url, node.definition.contract.tag, node.definition.contract.name, options.target),
|
|
279
|
+
]));
|
|
280
|
+
const names = new Map();
|
|
281
|
+
for (const node of graph.nodes.values()) {
|
|
282
|
+
const name = node.definition.contract.name;
|
|
283
|
+
const path = pathsByTag.get(node.definition.contract.tag);
|
|
284
|
+
const source = relative(projectRoot, fileURLToPath(node.url)).split(sep).join("/");
|
|
285
|
+
const prior = names.get(name);
|
|
286
|
+
if (prior !== undefined && prior.path !== path) {
|
|
287
|
+
throw new FrameworkOutputCollisionError(options.target, `${options.target}/index.ts`, [prior.source, source]);
|
|
288
|
+
}
|
|
289
|
+
names.set(name, { path, source });
|
|
290
|
+
}
|
|
291
|
+
const slotsByTag = new Map([...graph.nodes.values()].map((node) => [node.definition.contract.tag, node.definition.slots ?? []]));
|
|
292
|
+
const propsByTag = new Map([...graph.nodes.values()].map((node) => [node.definition.contract.tag,
|
|
293
|
+
new Set(Object.keys(node.definition.contract.props))]));
|
|
294
|
+
const propContractsByTag = new Map([...graph.nodes.values()].map((node) => [node.definition.contract.tag,
|
|
295
|
+
node.definition.contract.props]));
|
|
296
|
+
const guardNestedDepth = needsNestedDepthGuard(graph);
|
|
297
|
+
const bindingReceivers = options.target === "svelte" ? nativeBindingRoots(graph) : undefined;
|
|
298
|
+
const decorationReceivers = options.target === "svelte" ? decoratedRoots(graph) : undefined;
|
|
95
299
|
const manifestComponents = [];
|
|
96
300
|
const planned = [];
|
|
301
|
+
const neededHelpers = new Set();
|
|
302
|
+
const hasDeclaredEvents = [...graph.nodes.values()].some((node) => node.definition.declarations?.some((declaration) => declaration.kind === "event") === true);
|
|
303
|
+
let reactStyles = false;
|
|
97
304
|
const claimed = new Map();
|
|
98
305
|
const claim = (artifact, kind, source) => {
|
|
99
306
|
const previous = claimed.get(artifact.path);
|
|
@@ -106,29 +313,116 @@ export async function convertComponents(options) {
|
|
|
106
313
|
for (const node of [...graph.nodes.values()].sort((left, right) => left.url.localeCompare(right.url))) {
|
|
107
314
|
const source = relative(projectRoot, fileURLToPath(node.url)).split(sep).join("/");
|
|
108
315
|
const tag = node.definition.contract.tag;
|
|
316
|
+
const componentPath = pathsByTag.get(tag);
|
|
109
317
|
// The controller and its relative imports are copied beside the component, which imports them.
|
|
110
318
|
const controllerFiles = new Map();
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
319
|
+
let controller;
|
|
320
|
+
if (node.controller !== undefined) {
|
|
321
|
+
try {
|
|
322
|
+
controller = await addControllerGraph(node.controller.url, node.trustRoot, `${options.target}/controllers/${tag}`, controllerFiles, sourceFiles);
|
|
323
|
+
}
|
|
324
|
+
catch (error) {
|
|
325
|
+
throw new FrameworkConversionError(options.target, source, tag, error instanceof Error ? error.message : String(error));
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
const definition = Object.freeze({
|
|
329
|
+
...node.definition,
|
|
330
|
+
source: Object.freeze({ file: browserDefinitionURL(node.definition, source, options.publicRootURL, options.target, tag) }),
|
|
331
|
+
...(controller === undefined ? {} : { controller: relativeImport(componentPath, controller) }),
|
|
332
|
+
});
|
|
117
333
|
let content;
|
|
334
|
+
let reactConversion;
|
|
335
|
+
let svelteConversion;
|
|
336
|
+
const helpers = new Set();
|
|
118
337
|
try {
|
|
119
|
-
|
|
338
|
+
const importSpecifier = (importedTag) => {
|
|
339
|
+
const imported = pathsByTag.get(importedTag);
|
|
340
|
+
if (imported === undefined)
|
|
341
|
+
throw new FrameworkConversionError(options.target, source, tag, `unknown component <${importedTag}>`);
|
|
342
|
+
return relativeImport(componentPath, imported);
|
|
343
|
+
};
|
|
344
|
+
const reactHelperSpecifier = (name) => relativeImport(componentPath, `react/${name}.ts`).replace(/\.ts$/, "");
|
|
345
|
+
content = options.target === "vue" ? generateVueComponent(definition, {
|
|
346
|
+
slotsByTag,
|
|
347
|
+
guardNestedDepth,
|
|
348
|
+
importSpecifier,
|
|
349
|
+
helperSpecifier: (name) => {
|
|
350
|
+
helpers.add(name);
|
|
351
|
+
return relativeImport(componentPath, `${options.target}/${name}.ts`).replace(/\.ts$/, "");
|
|
352
|
+
},
|
|
353
|
+
...(node.definition.controller === undefined ? {} : { controllerSpecifier: node.definition.controller }),
|
|
354
|
+
}) : options.target === "svelte" ? (svelteConversion = generateSvelteConversion(definition, {
|
|
355
|
+
slotsByTag,
|
|
356
|
+
guardNestedDepth,
|
|
357
|
+
rootDecorations: decorationReceivers?.get(tag),
|
|
358
|
+
...(bindingReceivers?.has(tag) === true ? { rootBindings: [...bindingReceivers.get(tag)] } : {}),
|
|
359
|
+
decorationsSpecifier: relativeImport(componentPath, "svelte/decorations.ts").replace(/\.ts$/, ""),
|
|
360
|
+
styleSpecifier: relativeImport(componentPath, "svelte/style/style.js"),
|
|
361
|
+
hostSpecifier: relativeImport(componentPath, "svelte/host.svelte.ts").replace(/\.ts$/, ""),
|
|
362
|
+
...(node.definition.controller === undefined ? {} : { controllerSpecifier: node.definition.controller }),
|
|
363
|
+
reactivitySpecifier: relativeImport(componentPath, "svelte/reactivity.svelte.ts").replace(/\.ts$/, ""),
|
|
364
|
+
importSpecifier,
|
|
365
|
+
propContractsByTag,
|
|
366
|
+
stylesheetSpecifier: `./${node.definition.contract.name}.css`,
|
|
367
|
+
propsSpecifier: relativeImport(componentPath, "svelte/props.ts").replace(/\.ts$/, ""),
|
|
368
|
+
htmlSpecifier: relativeImport(componentPath, "svelte/html.ts").replace(/\.ts$/, ""),
|
|
369
|
+
eventsSpecifier: relativeImport(componentPath, "svelte/events.ts").replace(/\.ts$/, ""),
|
|
370
|
+
controlSpecifier: relativeImport(componentPath, "svelte/control.ts").replace(/\.ts$/, ""),
|
|
371
|
+
dataSpecifier: relativeImport(componentPath, "svelte/data.svelte.ts").replace(/\.ts$/, ""),
|
|
372
|
+
})).component : (reactConversion = generateReactConversion(definition, {
|
|
373
|
+
slotsByTag,
|
|
374
|
+
propsByTag,
|
|
375
|
+
propContractsByTag,
|
|
376
|
+
guardNestedDepth,
|
|
377
|
+
importSpecifier,
|
|
378
|
+
propsSpecifier: reactHelperSpecifier("props"),
|
|
379
|
+
eventsSpecifier: reactHelperSpecifier("events"),
|
|
380
|
+
controlSpecifier: reactHelperSpecifier("control"),
|
|
381
|
+
dataSpecifier: reactHelperSpecifier("data"),
|
|
382
|
+
htmlSpecifier: reactHelperSpecifier("html"),
|
|
383
|
+
hostSpecifier: reactHelperSpecifier("host"),
|
|
384
|
+
contextSpecifier: reactHelperSpecifier("context"),
|
|
385
|
+
depthSpecifier: reactHelperSpecifier("depth"),
|
|
386
|
+
...(node.definition.controller === undefined ? {} : { controllerSpecifier: node.definition.controller }),
|
|
387
|
+
})).component;
|
|
120
388
|
}
|
|
121
389
|
catch (error) {
|
|
122
|
-
if (error instanceof HtmlDiagnosticError)
|
|
390
|
+
if (error instanceof HtmlDiagnosticError) {
|
|
391
|
+
if (error.diagnostic.code.startsWith("HY")) {
|
|
392
|
+
throw new HtmlDiagnosticError({ ...error.diagnostic, source: error.diagnostic.source ?? node.url });
|
|
393
|
+
}
|
|
123
394
|
throw new FrameworkConversionError(options.target, source, tag, error.message);
|
|
395
|
+
}
|
|
124
396
|
throw error;
|
|
125
397
|
}
|
|
126
398
|
if (/@nextwebwg\//.test(content))
|
|
127
399
|
throw new FrameworkConversionError(options.target, source, tag);
|
|
128
|
-
const component = { path:
|
|
400
|
+
const component = { path: componentPath, content };
|
|
129
401
|
claim(component, "component", source);
|
|
130
|
-
|
|
402
|
+
if (reactConversion !== undefined) {
|
|
403
|
+
for (const helper of reactConversion.helpers)
|
|
404
|
+
neededHelpers.add(helper);
|
|
405
|
+
const css = reactConversion.css;
|
|
406
|
+
if (css !== "") {
|
|
407
|
+
reactStyles = true;
|
|
408
|
+
claim({ path: componentPath.replace(/\.tsx$/, ".css"), content: `${css}\n` }, "style", source);
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
if (svelteConversion !== undefined && svelteConversion.css !== "") {
|
|
412
|
+
claim({ path: componentPath.replace(/\.svelte$/, ".css"), content: `${svelteConversion.css}\n` }, "style", source);
|
|
413
|
+
}
|
|
414
|
+
if (svelteConversion !== undefined)
|
|
415
|
+
for (const helper of svelteConversion.helpers)
|
|
416
|
+
neededHelpers.add(helper);
|
|
417
|
+
for (const helper of helpers)
|
|
418
|
+
neededHelpers.add(helper);
|
|
419
|
+
for (const file of controllerFiles.values()) {
|
|
131
420
|
claim(file, "controller", source);
|
|
421
|
+
if (options.target === "react" && /\.(?:js|mjs|cjs)$/.test(file.path)) {
|
|
422
|
+
const declarationPath = file.path.replace(/\.mjs$/, ".d.mts").replace(/\.cjs$/, ".d.cts").replace(/\.js$/, ".d.ts");
|
|
423
|
+
claim({ path: declarationPath, content: "declare const controller: unknown;\nexport default controller;\n" }, "helper", source);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
132
426
|
manifestComponents.push(Object.freeze({
|
|
133
427
|
name: node.definition.contract.name,
|
|
134
428
|
tag,
|
|
@@ -137,11 +431,81 @@ export async function convertComponents(options) {
|
|
|
137
431
|
...(controller === undefined ? {} : { controller }),
|
|
138
432
|
}));
|
|
139
433
|
}
|
|
140
|
-
|
|
141
|
-
|
|
434
|
+
if (options.target === "vue" && neededHelpers.has("host")) {
|
|
435
|
+
claim(vueHostArtifact(), "helper");
|
|
436
|
+
}
|
|
437
|
+
if (options.target === "vue" && neededHelpers.has("html")) {
|
|
438
|
+
claim(vueHtmlArtifact(), "helper");
|
|
439
|
+
}
|
|
440
|
+
if (options.target === "vue" && neededHelpers.has("control")) {
|
|
441
|
+
claim(vueControlArtifact(), "helper");
|
|
442
|
+
}
|
|
443
|
+
if (options.target === "vue" && neededHelpers.has("props")) {
|
|
444
|
+
claim(vuePropsArtifact(), "helper");
|
|
445
|
+
}
|
|
446
|
+
if (options.target === "react" && neededHelpers.has("props")) {
|
|
447
|
+
claim(reactPropsArtifact(), "helper");
|
|
448
|
+
}
|
|
449
|
+
if (options.target === "svelte" && neededHelpers.has("props")) {
|
|
450
|
+
claim(sveltePropsArtifact(), "helper");
|
|
451
|
+
}
|
|
452
|
+
if (options.target === "svelte" && neededHelpers.has("html")) {
|
|
453
|
+
claim(svelteHtmlArtifact(), "helper");
|
|
454
|
+
}
|
|
455
|
+
if (options.target === "svelte" && neededHelpers.has("control")) {
|
|
456
|
+
claim(svelteControlArtifact(), "helper");
|
|
457
|
+
}
|
|
458
|
+
if (options.target === "svelte" && neededHelpers.has("decorations")) {
|
|
459
|
+
claim(svelteDecorationsArtifact(), "helper");
|
|
460
|
+
}
|
|
461
|
+
if (options.target === "svelte" && neededHelpers.has("style")) {
|
|
462
|
+
for (const artifact of svelteStyleArtifacts())
|
|
463
|
+
claim(artifact, "helper");
|
|
464
|
+
}
|
|
465
|
+
if (options.target === "svelte" && neededHelpers.has("connection")) {
|
|
466
|
+
claim(svelteConnectionArtifact(), "helper");
|
|
467
|
+
}
|
|
468
|
+
if (options.target === "svelte" && neededHelpers.has("host")) {
|
|
469
|
+
claim(svelteHostArtifact(), "helper");
|
|
470
|
+
}
|
|
471
|
+
if (options.target === "svelte" && neededHelpers.has("reactivity")) {
|
|
472
|
+
claim(svelteReactivityArtifact(), "helper");
|
|
473
|
+
}
|
|
474
|
+
if (options.target === "svelte" && neededHelpers.has("data")) {
|
|
475
|
+
claim(svelteDataArtifact(), "helper");
|
|
476
|
+
}
|
|
477
|
+
if (options.target === "svelte" && neededHelpers.has("events")) {
|
|
478
|
+
claim(svelteEventsArtifact(hasDeclaredEvents), "helper");
|
|
479
|
+
}
|
|
480
|
+
if (options.target === "react" && neededHelpers.has("events")) {
|
|
481
|
+
claim(reactEventsArtifact(hasDeclaredEvents), "helper");
|
|
482
|
+
}
|
|
483
|
+
if (options.target === "react" && neededHelpers.has("control")) {
|
|
484
|
+
claim(reactControlArtifact(), "helper");
|
|
485
|
+
}
|
|
486
|
+
if (options.target === "react" && neededHelpers.has("data")) {
|
|
487
|
+
claim(reactDataArtifact(), "helper");
|
|
488
|
+
}
|
|
489
|
+
if (options.target === "react" && neededHelpers.has("html")) {
|
|
490
|
+
claim(reactHtmlArtifact(), "helper");
|
|
491
|
+
}
|
|
492
|
+
if (options.target === "react" && neededHelpers.has("host")) {
|
|
493
|
+
claim(reactHostArtifact(), "helper");
|
|
494
|
+
}
|
|
495
|
+
if (options.target === "react" && neededHelpers.has("context")) {
|
|
496
|
+
claim(reactContextArtifact(), "helper");
|
|
497
|
+
}
|
|
498
|
+
if (options.target === "react" && neededHelpers.has("depth")) {
|
|
499
|
+
claim(reactDepthArtifact(), "helper");
|
|
500
|
+
}
|
|
501
|
+
if (options.target === "react" && reactStyles) {
|
|
502
|
+
claim({ path: "react/styles.d.ts", content: 'declare module "*.css";\n' }, "helper");
|
|
503
|
+
}
|
|
504
|
+
const conversionEntries = graph.roots.map((id) => {
|
|
505
|
+
const node = graph.nodes.get(id);
|
|
142
506
|
if (node === undefined)
|
|
143
|
-
throw new Error(`Framework conversion did not resolve entry ${
|
|
144
|
-
const component = manifestComponents.find(({
|
|
507
|
+
throw new Error(`Framework conversion did not resolve entry ${id}.`);
|
|
508
|
+
const component = manifestComponents.find(({ tag }) => tag === node.definition.contract.tag);
|
|
145
509
|
return {
|
|
146
510
|
source: component.source,
|
|
147
511
|
tag: component.tag,
|
|
@@ -162,7 +526,13 @@ export async function convertComponents(options) {
|
|
|
162
526
|
target: options.target,
|
|
163
527
|
targetVersion,
|
|
164
528
|
graph: options.mode,
|
|
529
|
+
package: Object.freeze({
|
|
530
|
+
dependencies: Object.freeze({ ...(neededHelpers.has("html") ? { parse5: "^8.0.1" } : {}), ...(options.target === "svelte" && neededHelpers.has("style") ? { cssstyle: "^6.2.0", "css-tree": "^3.2.1" } : {}) }),
|
|
531
|
+
// Vue 3.5.43 restores generic inference through runtime PropType declarations.
|
|
532
|
+
peerDependencies: Object.freeze({ [options.target]: options.target === "vue" ? "^3.5.43" : `^${targetVersion}${options.target === "svelte" ? "" : ".0"}` }),
|
|
533
|
+
}),
|
|
165
534
|
entries: Object.freeze(conversionEntries),
|
|
535
|
+
sourceFiles: Object.freeze([...sourceFiles].map((path) => relative(projectRoot, path).split(sep).join("/")).sort()),
|
|
166
536
|
output: Object.freeze({
|
|
167
537
|
entry: entry.path,
|
|
168
538
|
inventory,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextwebwg/html-next-converter",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
4
|
-
"description": "Vue conversion for Declarative HTML Components.",
|
|
3
|
+
"version": "1.0.0-alpha.31",
|
|
4
|
+
"description": "Vue, React, and Svelte conversion for Declarative HTML Components.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"sideEffects": false,
|
|
@@ -21,18 +21,30 @@
|
|
|
21
21
|
"node": ">=22.13 <23 || >=24 <25"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@nextwebwg/html-next": "1.0.0-alpha.
|
|
24
|
+
"@nextwebwg/html-next": "1.0.0-alpha.31"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@
|
|
28
|
-
"@
|
|
27
|
+
"@formatjs/intl-durationformat": "0.11.1",
|
|
28
|
+
"@types/node": "25.9.8",
|
|
29
|
+
"@types/react": "19.3.0",
|
|
30
|
+
"@types/react-dom": "19.3.0",
|
|
31
|
+
"@vue/compiler-sfc": "3.5.43",
|
|
32
|
+
"css-tree": "3.2.1",
|
|
33
|
+
"cssstyle": "6.2.0",
|
|
29
34
|
"esbuild": "0.28.2",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
35
|
+
"parse5": "8.0.1",
|
|
36
|
+
"playwright": "1.63.0",
|
|
37
|
+
"react": "19.3.0",
|
|
38
|
+
"react-dom": "19.3.0",
|
|
39
|
+
"svelte": "5.57.1",
|
|
40
|
+
"typescript": "5.9.3",
|
|
41
|
+
"vitest": "5.0.3",
|
|
42
|
+
"vue": "3.5.43",
|
|
43
|
+
"vue-tsc": "3.3.11"
|
|
32
44
|
},
|
|
33
45
|
"publishConfig": {
|
|
34
46
|
"access": "public",
|
|
35
|
-
"tag": "
|
|
47
|
+
"tag": "latest",
|
|
36
48
|
"registry": "https://registry.npmjs.org/"
|
|
37
49
|
},
|
|
38
50
|
"repository": {
|