@nextwebwg/html-next-converter 1.0.0-alpha.21 → 1.0.0-alpha.23

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 CHANGED
@@ -1,8 +1,9 @@
1
1
  # `@nextwebwg/html-next-converter`
2
2
 
3
- Converts a Declarative Components application or library graph into Vue 3.5 single-file components.
4
- Once converted, HTML Next is gone: each `.vue` file imports Vue, the components it nests, its own
5
- controller (copied beside it), and only the generated helpers its features need. A component using
3
+ Converts a Declarative Components application or library graph into Vue 3.5 single-file components
4
+ 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
6
7
  `$html` imports `vue/html.ts`; that helper requires `parse5` as an application dependency for
7
8
  deterministic SSR. It parses inert fragments and applies one pinned safe-default allowlist in every
8
9
  browser and on the server. It deliberately does not call native `setHTML()`, even where available:
@@ -12,14 +13,22 @@ directives, slots, and methods map to Vue's own facilities; declared events rema
12
13
  `CustomEvent`s on the lowered root (Vue emits are reserved for `v-model` updates), and styles become
13
14
  `<style scoped>`.
14
15
 
15
- Components declaring props import `vue/props.ts`. It applies HTML Next's typed-value rules before
16
- rendering, including required-prop diagnostics and numeric/boolean attribute conversion; prop-free
17
- components do not include it.
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.
18
20
 
19
21
  ```sh
20
- html-next-convert vue components/button.html components/card.html --mode library --out-dir generated
22
+ html-next-convert vue 'components/**' --mode library --out-dir generated
21
23
  ```
22
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
+
23
32
  When a `<data src>` URL is relative to its component file, pass `--public-root-url /app/`
24
33
  if the conversion root is served at `/app/`. The converter uses that URL to preserve
25
34
  definition-relative requests in the browser. Root-relative and absolute request URLs need no
@@ -28,8 +37,12 @@ JavaScript option is `publicRootURL`.
28
37
 
29
38
  Application conversion emits an `application.ts` entry for the selected graph roots. Library
30
39
  conversion emits an `index.ts` entry whose named exports are independently consumable. Both modes
31
- emit `html-next.conversion.json`, which records the input entries, output entry, every artifact, and
32
- 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 or React appears in
44
+ `peerDependencies` for its respective output. Dependencies imported by authored controller
45
+ modules remain the publisher's responsibility.
33
46
 
34
47
  Publish the `.vue` files together with the `.js` and `.d.ts` your Vue build produces from them
35
48
  (for example `vite build` with `@vitejs/plugin-vue`, and `vue-tsc --declaration --emitDeclarationOnly`).
@@ -39,4 +52,46 @@ conversion cannot map produces source-located `HTC001` with the underlying code.
39
52
  paths produce `HTC002` before any output is written, and an unsupported target version produces
40
53
  `HTC003` before the graph is loaded.
41
54
 
42
- React is in development. Svelte is not supported.
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 is not supported.
64
+
65
+ React applications use their usual `hydrateRoot` call and error options. If the server root is
66
+ incompatible, React reports the recovery through `onRecoverableError` (or its default reporting);
67
+ the converter does not generate an `HR005` hydration entry or replace React's recovery flow.
68
+
69
+ For source-only distribution with automatic Vue or React conversion in the consuming app,
70
+ use the [Vite adapter](../html-next-unplugin/README.md#vue-and-react-source-imports). It also
71
+ generates consumer declarations, so publishers do not need separate framework copies.
72
+
73
+ To distribute preconverted copies of one authored library in all three forms, assemble the native HTML Next package from
74
+ the `.html` sources, then run the Vue and React library converters over the same quoted glob. Give
75
+ each conversion its own output directory so both `html-next.conversion.json` manifests survive:
76
+
77
+ ```sh
78
+ html-next-convert vue 'components/**' --mode library --out-dir package/converted/vue-target
79
+ html-next-convert react 'components/**' --mode library --out-dir package/converted/react-target
80
+ ```
81
+
82
+ The package can expose the native entry, the converted Vue entry, and the converted React entry as
83
+ separate subpaths. If publishing source output, point `./vue` and `./react` at the generated
84
+ `vue/index.ts` and `react/index.ts`, include their component files and CSS, merge both conversion
85
+ inventories' `package.dependencies` and `package.peerDependencies` into the package manifest,
86
+ and mark Vue and React as optional peers when each subpath is independently usable. Consumers
87
+ then compile `.vue` and `.tsx` with their normal bundler plugins. For precompiled distribution,
88
+ emit JavaScript and declarations from those entries and point exports at the built files. The
89
+ [installed-library test](./tests/library-distribution.test.ts) packs and installs the source-output
90
+ shape, then renders both framework entries from that independent consumer.
91
+
92
+ For guaranteed unused-component **and CSS** pruning in a preconverted package, expose individual
93
+ component subpaths from the conversion inventory, such as `./react/XCard` pointing to
94
+ `react/components/XCard.tsx`. Consumers can then import only the components they use. Some
95
+ bundlers retain CSS side-effect imports from unused named re-exports in a shared `./react` barrel,
96
+ even when they remove the unused JavaScript. The on-demand Vite adapter handles pruning for its
97
+ generated named exports.
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...> --mode <application|library> --out-dir <directory> [--public-root-url <url>]";
5
+ return "Usage: html-next-convert <vue|react> <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];
@@ -12,7 +12,7 @@ async function main(argv) {
12
12
  const outDirectory = argv[outIndex + 1];
13
13
  const publicRootIndex = argv.indexOf("--public-root-url");
14
14
  const publicRootURL = publicRootIndex < 0 ? undefined : argv[publicRootIndex + 1];
15
- if (target === undefined || !["vue"].includes(target) ||
15
+ if (target === undefined || !["vue", "react"].includes(target) ||
16
16
  mode === undefined || !["application", "library"].includes(mode) ||
17
17
  modeIndex < 2 || outIndex !== modeIndex + 2 || outDirectory === undefined ||
18
18
  (publicRootIndex < 0 ? outIndex !== argv.length - 2 : publicRootIndex !== outIndex + 2 || publicRootIndex !== argv.length - 2 || publicRootURL === undefined))
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,+HAA+H,CAAC;AACzI,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,CAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5D,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"}
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,sJAAsJ,CAAC;AAChK,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,CAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrE,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";
2
2
  export type ConversionGraph = "application" | "library";
3
3
  interface BaseConvertOptions {
4
4
  readonly entries: readonly string[];
@@ -23,7 +23,7 @@ export interface ConversionEntry {
23
23
  }
24
24
  export interface ConversionOutput {
25
25
  readonly path: string;
26
- readonly kind: "component" | "controller" | "helper" | "entry" | "inventory";
26
+ readonly kind: "component" | "controller" | "helper" | "style" | "entry" | "inventory";
27
27
  readonly source?: string;
28
28
  }
29
29
  export interface ConversionManifest {
@@ -31,7 +31,14 @@ export interface ConversionManifest {
31
31
  readonly target: FrameworkTarget;
32
32
  readonly targetVersion: string;
33
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
+ };
34
39
  readonly entries: readonly ConversionEntry[];
40
+ /** Authored HTML and controller dependencies, relative to the conversion root. */
41
+ readonly sourceFiles: readonly string[];
35
42
  readonly output: {
36
43
  readonly entry: string;
37
44
  readonly inventory: "html-next.conversion.json";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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,10 @@
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, importsVueHost, importsVueHtml, importsVueControl, importsVueProps, loadNodeComponents, vueHostArtifact, vueHtmlArtifact, vueControlArtifact, vuePropsArtifact, } from "@nextwebwg/html-next";
4
+ import { addControllerGraph, generateVueComponent, generateReactConversion, HtmlDiagnosticError, loadNodeComponents, vueHostArtifact, vueHtmlArtifact, vueControlArtifact, vuePropsArtifact, reactPropsArtifact, reactEventsArtifact, reactControlArtifact, reactDataArtifact, reactHtmlArtifact, reactHostArtifact, reactContextArtifact, reactDepthArtifact, } from "@nextwebwg/html-next";
5
5
  const targetVersions = {
6
6
  vue: "3.5",
7
+ react: "19.3",
7
8
  };
8
9
  export class FrameworkOutputCollisionError extends Error {
9
10
  target;
@@ -66,14 +67,60 @@ async function emit(root, artifact) {
66
67
  function frameworkEntry(mode, target, entries) {
67
68
  const exports = [...entries].sort((left, right) => left.artifact.localeCompare(right.artifact)).map((entry) => {
68
69
  const artifact = entry.artifact.slice(entry.artifact.lastIndexOf("/") + 1);
69
- const name = artifact.replace(/\.vue$/, "");
70
- return `export { default as ${name} } from ${JSON.stringify(`./${artifact}`)};`;
70
+ const name = artifact.replace(/\.(?:vue|tsx)$/, "");
71
+ return `export { default as ${name} } from ${JSON.stringify(relativeImport(`${target}/index.ts`, entry.artifact))};`;
71
72
  });
72
73
  return {
73
74
  path: `${target}/${mode === "application" ? "application.ts" : "index.ts"}`,
74
75
  content: `${exports.join("\n")}\n`,
75
76
  };
76
77
  }
78
+ function relativeImport(from, to) {
79
+ const path = relative(dirname(from), to).split(sep).join("/");
80
+ return path.startsWith(".") ? path : `./${path}`;
81
+ }
82
+ function hasGlob(pattern) {
83
+ return pattern.includes("*") || pattern.includes("?") || pattern.includes("[") || pattern.includes("{");
84
+ }
85
+ /** A file remains an entry; a glob or directory expands to every HTML component below it. */
86
+ async function expandEntries(projectRoot, patterns) {
87
+ const entries = [];
88
+ for (const pattern of patterns) {
89
+ let scan = pattern;
90
+ if (!hasGlob(pattern)) {
91
+ const path = resolve(projectRoot, pattern);
92
+ const metadata = await lstat(path).catch((error) => {
93
+ if (error !== null && typeof error === "object" && "code" in error && error.code === "ENOENT")
94
+ return undefined;
95
+ throw error;
96
+ });
97
+ if (!metadata?.isDirectory()) {
98
+ entries.push(pattern);
99
+ continue;
100
+ }
101
+ scan = `${pattern.replace(/[\\/]$/, "")}/**`;
102
+ }
103
+ const matches = [];
104
+ for await (const match of glob(scan, { cwd: projectRoot })) {
105
+ if (extname(match).toLowerCase() !== ".html")
106
+ continue;
107
+ if (!(await lstat(resolve(projectRoot, match))).isFile())
108
+ continue;
109
+ matches.push(match);
110
+ }
111
+ if (matches.length === 0)
112
+ throw new Error(`Framework conversion input ${JSON.stringify(pattern)} matched no HTML component files.`);
113
+ entries.push(...matches.sort());
114
+ }
115
+ return entries;
116
+ }
117
+ function componentArtifact(projectRoot, url, tag, name, target) {
118
+ const source = relative(projectRoot, fileURLToPath(url));
119
+ const insideRoot = source !== ".." && !source.startsWith(`..${sep}`) && !isAbsolute(source);
120
+ const directory = insideRoot ? dirname(source) : `_external/${tag}`;
121
+ const segments = directory === "." ? [] : directory.split(sep);
122
+ return [target, ...segments, `${name}.${target === "vue" ? "vue" : "tsx"}`].join("/");
123
+ }
77
124
  function componentRelativeDataSource(source) {
78
125
  return !source.startsWith("/") && !/^[A-Za-z][A-Za-z0-9+.-]*:/.test(source);
79
126
  }
@@ -137,7 +184,8 @@ export async function convertComponents(options) {
137
184
  }
138
185
  const projectRoot = resolve(options.root ?? process.cwd());
139
186
  const outputRoot = resolve(options.outDirectory);
140
- const entries = options.entries.map((entry) => pathToFileURL(resolve(projectRoot, entry)).href);
187
+ const expanded = await expandEntries(projectRoot, options.entries);
188
+ const entries = expanded.map((entry) => pathToFileURL(resolve(projectRoot, entry)).href);
141
189
  const seenEntries = new Set();
142
190
  for (const entry of entries) {
143
191
  if (seenEntries.has(entry)) {
@@ -146,10 +194,33 @@ export async function convertComponents(options) {
146
194
  seenEntries.add(entry);
147
195
  }
148
196
  const graph = await loadNodeComponents(entries, { baseURL: pathToFileURL(`${projectRoot}${sep}`).href });
197
+ const sourceFiles = new Set([...graph.nodes.values()].map((node) => fileURLToPath(node.url)));
198
+ const pathsByTag = new Map([...graph.nodes.values()].map((node) => [
199
+ node.definition.contract.tag,
200
+ componentArtifact(projectRoot, node.url, node.definition.contract.tag, node.definition.contract.name, options.target),
201
+ ]));
202
+ const names = new Map();
203
+ for (const node of graph.nodes.values()) {
204
+ const name = node.definition.contract.name;
205
+ const path = pathsByTag.get(node.definition.contract.tag);
206
+ const source = relative(projectRoot, fileURLToPath(node.url)).split(sep).join("/");
207
+ const prior = names.get(name);
208
+ if (prior !== undefined && prior.path !== path) {
209
+ throw new FrameworkOutputCollisionError(options.target, `${options.target}/index.ts`, [prior.source, source]);
210
+ }
211
+ names.set(name, { path, source });
212
+ }
149
213
  const slotsByTag = new Map([...graph.nodes.values()].map((node) => [node.definition.contract.tag, node.definition.slots ?? []]));
214
+ const propsByTag = new Map([...graph.nodes.values()].map((node) => [node.definition.contract.tag,
215
+ new Set(Object.keys(node.definition.contract.props))]));
216
+ const propContractsByTag = new Map([...graph.nodes.values()].map((node) => [node.definition.contract.tag,
217
+ node.definition.contract.props]));
150
218
  const guardNestedDepth = needsNestedDepthGuard(graph);
151
219
  const manifestComponents = [];
152
220
  const planned = [];
221
+ const neededHelpers = new Set();
222
+ const hasDeclaredEvents = [...graph.nodes.values()].some((node) => node.definition.declarations?.some((declaration) => declaration.kind === "event") === true);
223
+ let reactStyles = false;
153
224
  const claimed = new Map();
154
225
  const claim = (artifact, kind, source) => {
155
226
  const previous = claimed.get(artifact.path);
@@ -162,12 +233,13 @@ export async function convertComponents(options) {
162
233
  for (const node of [...graph.nodes.values()].sort((left, right) => left.url.localeCompare(right.url))) {
163
234
  const source = relative(projectRoot, fileURLToPath(node.url)).split(sep).join("/");
164
235
  const tag = node.definition.contract.tag;
236
+ const componentPath = pathsByTag.get(tag);
165
237
  // The controller and its relative imports are copied beside the component, which imports them.
166
238
  const controllerFiles = new Map();
167
239
  let controller;
168
240
  if (node.controller !== undefined) {
169
241
  try {
170
- controller = await addControllerGraph(node.controller.url, node.trustRoot, `${options.target}/controllers/${tag}`, controllerFiles);
242
+ controller = await addControllerGraph(node.controller.url, node.trustRoot, `${options.target}/controllers/${tag}`, controllerFiles, sourceFiles);
171
243
  }
172
244
  catch (error) {
173
245
  throw new FrameworkConversionError(options.target, source, tag, error instanceof Error ? error.message : String(error));
@@ -176,15 +248,44 @@ export async function convertComponents(options) {
176
248
  const definition = Object.freeze({
177
249
  ...node.definition,
178
250
  source: Object.freeze({ file: browserDefinitionURL(node.definition, source, options.publicRootURL, options.target, tag) }),
179
- ...(controller === undefined ? {} : { controller: `./${controller.slice(`${options.target}/`.length)}` }),
251
+ ...(controller === undefined ? {} : { controller: relativeImport(componentPath, controller) }),
180
252
  });
181
253
  let content;
254
+ let reactConversion;
255
+ const helpers = new Set();
182
256
  try {
183
- content = generateVueComponent(definition, {
257
+ const importSpecifier = (importedTag) => {
258
+ const imported = pathsByTag.get(importedTag);
259
+ if (imported === undefined)
260
+ throw new FrameworkConversionError(options.target, source, tag, `unknown component <${importedTag}>`);
261
+ return relativeImport(componentPath, imported);
262
+ };
263
+ const reactHelperSpecifier = (name) => relativeImport(componentPath, `react/${name}.ts`).replace(/\.ts$/, "");
264
+ content = options.target === "vue" ? generateVueComponent(definition, {
184
265
  slotsByTag,
185
266
  guardNestedDepth,
267
+ importSpecifier,
268
+ helperSpecifier: (name) => {
269
+ helpers.add(name);
270
+ return relativeImport(componentPath, `${options.target}/${name}.ts`).replace(/\.ts$/, "");
271
+ },
186
272
  ...(node.definition.controller === undefined ? {} : { controllerSpecifier: node.definition.controller }),
187
- });
273
+ }) : (reactConversion = generateReactConversion(definition, {
274
+ slotsByTag,
275
+ propsByTag,
276
+ propContractsByTag,
277
+ guardNestedDepth,
278
+ importSpecifier,
279
+ propsSpecifier: reactHelperSpecifier("props"),
280
+ eventsSpecifier: reactHelperSpecifier("events"),
281
+ controlSpecifier: reactHelperSpecifier("control"),
282
+ dataSpecifier: reactHelperSpecifier("data"),
283
+ htmlSpecifier: reactHelperSpecifier("html"),
284
+ hostSpecifier: reactHelperSpecifier("host"),
285
+ contextSpecifier: reactHelperSpecifier("context"),
286
+ depthSpecifier: reactHelperSpecifier("depth"),
287
+ ...(node.definition.controller === undefined ? {} : { controllerSpecifier: node.definition.controller }),
288
+ })).component;
188
289
  }
189
290
  catch (error) {
190
291
  if (error instanceof HtmlDiagnosticError) {
@@ -197,10 +298,26 @@ export async function convertComponents(options) {
197
298
  }
198
299
  if (/@nextwebwg\//.test(content))
199
300
  throw new FrameworkConversionError(options.target, source, tag);
200
- const component = { path: `${options.target}/${node.definition.contract.name}.vue`, content };
301
+ const component = { path: componentPath, content };
201
302
  claim(component, "component", source);
202
- for (const file of controllerFiles.values())
303
+ if (reactConversion !== undefined) {
304
+ for (const helper of reactConversion.helpers)
305
+ neededHelpers.add(helper);
306
+ const css = reactConversion.css;
307
+ if (css !== "") {
308
+ reactStyles = true;
309
+ claim({ path: componentPath.replace(/\.tsx$/, ".css"), content: `${css}\n` }, "style", source);
310
+ }
311
+ }
312
+ for (const helper of helpers)
313
+ neededHelpers.add(helper);
314
+ for (const file of controllerFiles.values()) {
203
315
  claim(file, "controller", source);
316
+ if (options.target === "react" && /\.(?:js|mjs|cjs)$/.test(file.path)) {
317
+ const declarationPath = file.path.replace(/\.mjs$/, ".d.mts").replace(/\.cjs$/, ".d.cts").replace(/\.js$/, ".d.ts");
318
+ claim({ path: declarationPath, content: "declare const controller: unknown;\nexport default controller;\n" }, "helper", source);
319
+ }
320
+ }
204
321
  manifestComponents.push(Object.freeze({
205
322
  name: node.definition.contract.name,
206
323
  tag,
@@ -209,23 +326,50 @@ export async function convertComponents(options) {
209
326
  ...(controller === undefined ? {} : { controller }),
210
327
  }));
211
328
  }
212
- if (planned.some(({ artifact }) => importsVueHost(artifact.content))) {
329
+ if (options.target === "vue" && neededHelpers.has("host")) {
213
330
  claim(vueHostArtifact(), "helper");
214
331
  }
215
- if (planned.some(({ artifact }) => importsVueHtml(artifact.content))) {
332
+ if (options.target === "vue" && neededHelpers.has("html")) {
216
333
  claim(vueHtmlArtifact(), "helper");
217
334
  }
218
- if (planned.some(({ artifact }) => importsVueControl(artifact.content))) {
335
+ if (options.target === "vue" && neededHelpers.has("control")) {
219
336
  claim(vueControlArtifact(), "helper");
220
337
  }
221
- if (planned.some(({ artifact }) => importsVueProps(artifact.content))) {
338
+ if (options.target === "vue" && neededHelpers.has("props")) {
222
339
  claim(vuePropsArtifact(), "helper");
223
340
  }
224
- const conversionEntries = entries.map((url) => {
225
- const node = graph.nodes.get(url);
341
+ if (options.target === "react" && neededHelpers.has("props")) {
342
+ claim(reactPropsArtifact(), "helper");
343
+ }
344
+ if (options.target === "react" && neededHelpers.has("events")) {
345
+ claim(reactEventsArtifact(hasDeclaredEvents), "helper");
346
+ }
347
+ if (options.target === "react" && neededHelpers.has("control")) {
348
+ claim(reactControlArtifact(), "helper");
349
+ }
350
+ if (options.target === "react" && neededHelpers.has("data")) {
351
+ claim(reactDataArtifact(), "helper");
352
+ }
353
+ if (options.target === "react" && neededHelpers.has("html")) {
354
+ claim(reactHtmlArtifact(), "helper");
355
+ }
356
+ if (options.target === "react" && neededHelpers.has("host")) {
357
+ claim(reactHostArtifact(), "helper");
358
+ }
359
+ if (options.target === "react" && neededHelpers.has("context")) {
360
+ claim(reactContextArtifact(), "helper");
361
+ }
362
+ if (options.target === "react" && neededHelpers.has("depth")) {
363
+ claim(reactDepthArtifact(), "helper");
364
+ }
365
+ if (options.target === "react" && reactStyles) {
366
+ claim({ path: "react/styles.d.ts", content: 'declare module "*.css";\n' }, "helper");
367
+ }
368
+ const conversionEntries = graph.roots.map((id) => {
369
+ const node = graph.nodes.get(id);
226
370
  if (node === undefined)
227
- throw new Error(`Framework conversion did not resolve entry ${url}.`);
228
- const component = manifestComponents.find(({ source }) => source === relative(projectRoot, fileURLToPath(node.url)).split(sep).join("/"));
371
+ throw new Error(`Framework conversion did not resolve entry ${id}.`);
372
+ const component = manifestComponents.find(({ tag }) => tag === node.definition.contract.tag);
229
373
  return {
230
374
  source: component.source,
231
375
  tag: component.tag,
@@ -246,7 +390,12 @@ export async function convertComponents(options) {
246
390
  target: options.target,
247
391
  targetVersion,
248
392
  graph: options.mode,
393
+ package: Object.freeze({
394
+ dependencies: Object.freeze(neededHelpers.has("html") ? { parse5: "^8.0.1" } : {}),
395
+ peerDependencies: Object.freeze({ [options.target]: `^${targetVersion}.0` }),
396
+ }),
249
397
  entries: Object.freeze(conversionEntries),
398
+ sourceFiles: Object.freeze([...sourceFiles].map((path) => relative(projectRoot, path).split(sep).join("/")).sort()),
250
399
  output: Object.freeze({
251
400
  entry: entry.path,
252
401
  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.21",
4
- "description": "Vue conversion for Declarative HTML Components.",
3
+ "version": "1.0.0-alpha.23",
4
+ "description": "Vue and React conversion for Declarative HTML Components.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "sideEffects": false,
@@ -21,17 +21,21 @@
21
21
  "node": ">=22.13 <23 || >=24 <25"
22
22
  },
23
23
  "dependencies": {
24
- "@nextwebwg/html-next": "1.0.0-alpha.21"
24
+ "@nextwebwg/html-next": "1.0.0-alpha.23"
25
25
  },
26
26
  "devDependencies": {
27
- "@types/node": "25.9.5",
28
- "@vue/compiler-sfc": "3.5.42",
27
+ "@types/node": "25.9.8",
28
+ "@types/react": "19.3.0",
29
+ "@types/react-dom": "19.3.0",
30
+ "@vue/compiler-sfc": "3.5.43",
29
31
  "esbuild": "0.28.2",
30
32
  "parse5": "8.0.1",
31
33
  "playwright": "1.63.0",
34
+ "react": "19.3.0",
35
+ "react-dom": "19.3.0",
32
36
  "typescript": "5.9.3",
33
- "vitest": "5.0.0",
34
- "vue": "3.5.42",
37
+ "vitest": "5.0.3",
38
+ "vue": "3.5.43",
35
39
  "vue-tsc": "3.3.11"
36
40
  },
37
41
  "publishConfig": {