@nextwebwg/html-next-converter 1.0.0-alpha.4 → 1.0.0-alpha.41

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,25 +1,49 @@
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 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
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:
9
10
  Firefox currently parses malformed table content differently from Chromium, WebKit, and `parse5`,
10
11
  which would make hydration browser-dependent. Props, state, computed values, bindings, structural
11
- directives, slots, and methods map to Vue's own facilities; declared events remain native
12
+ directives and slots map to Vue's own facilities; declared events remain native
12
13
  `CustomEvent`s on the lowered root (Vue emits are reserved for `v-model` updates), and styles become
13
- `<style scoped>`.
14
+ `<style scoped>`. `:host` selects the root by its tag as a class, and a component the styles select
15
+ by tag carries that class where it is used, so Vue passes it to the child's root.
14
16
 
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.
17
+ Every component imports the shared `vue/host.ts` for what each one does the same way: consumer
18
+ attributes on the root, the hydration root check, checked handler writes, and the expression and
19
+ rendering helpers its template calls. A bundler keeps only the helpers a component imports, and an
20
+ application ships each one once.
21
+
22
+ Components declaring props import `vue/props.ts`. Invalid incoming values remain available at
23
+ their source while the root reports validity; a later typed binding is checked separately. A
24
+ Vue property binding should supply a number or boolean as that type, not as a string. Prop-free
25
+ components do not include this helper.
18
26
 
19
27
  ```sh
20
- html-next-convert vue components/button.html components/card.html --mode library --out-dir generated
28
+ html-next-convert vue 'components/**' --mode library --out-dir generated
21
29
  ```
22
30
 
31
+ For a check without output, use `html-next-check --target vue --mode library 'components/**'`
32
+ from `@nextwebwg/html-next-unplugin`. See the [CI and diagnostic API guide](../html-next-unplugin/README.md#check-components-in-ci)
33
+ for combining compiler checks with TypeScript and framework typecheckers. Programmatic converter
34
+ users can call `checkConversion` with the same options as `convertComponents`, omitting
35
+ `outDirectory`; it returns the planned conversion manifest, writes no files, and throws the same
36
+ compiler diagnostics as conversion. Independent check failures are collected in
37
+ `HtmlDiagnosticAggregateError.diagnostics`; conversion itself continues to stop at the first error.
38
+ Pass `onWarning` to receive warnings, such as `HT022`, that do not fail the check.
39
+
40
+ Quote the glob so the converter, not your shell, expands it. It discovers every `.html`
41
+ component below `components/`, including definitions with no incoming component link, and
42
+ preserves the source directory layout beneath `generated/vue/`. One HTML resource may define
43
+ several `<template component>` carriers; each gets its own named export. Names retain their
44
+ prefix: `ui-button` becomes `UiButton`. A directory path such as
45
+ `components/` is shorthand for the same recursive scan. Explicit `.html` files remain valid.
46
+
23
47
  When a `<data src>` URL is relative to its component file, pass `--public-root-url /app/`
24
48
  if the conversion root is served at `/app/`. The converter uses that URL to preserve
25
49
  definition-relative requests in the browser. Root-relative and absolute request URLs need no
@@ -28,8 +52,12 @@ JavaScript option is `publicRootURL`.
28
52
 
29
53
  Application conversion emits an `application.ts` entry for the selected graph roots. Library
30
54
  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.
55
+ emit `html-next.conversion.json`, which records the input entries, output entry, every artifact,
56
+ the target version, and package-shaped `dependencies` and `peerDependencies`. Copy the relevant
57
+ fields from `package` into the published package's `package.json`. `parse5` appears in
58
+ `dependencies` only when an emitted `$html` helper needs it; Vue, React, or Svelte appears in
59
+ `peerDependencies` for its respective output. Dependencies imported by authored controller
60
+ modules remain the publisher's responsibility.
33
61
 
34
62
  Publish the `.vue` files together with the `.js` and `.d.ts` your Vue build produces from them
35
63
  (for example `vite build` with `@vitejs/plugin-vue`, and `vue-tsc --declaration --emitDeclarationOnly`).
@@ -39,4 +67,93 @@ conversion cannot map produces source-located `HTC001` with the underlying code.
39
67
  paths produce `HTC002` before any output is written, and an unsupported target version produces
40
68
  `HTC003` before the graph is loaded.
41
69
 
42
- React is in development. Svelte is not supported.
70
+ React output accepts the same quoted globs and mirrors the same source
71
+ directories under `generated/react/`, emitting `.tsx` and adjacent plain `.css` files. The CSS is
72
+ imported by each component; styled-components is not used. Components import the rendering and
73
+ binding helpers their markup and handlers call from the shared `react/render.tsx`, which an
74
+ application ships once; the output is formatted. React conversion covers
75
+ static markup, props and bindings, default and named/scoped slots, state/computed/handlers,
76
+ context, declared data, native form controls, safe HTML, and structural templates. The shared
77
+ conformance corpus and feature-specific React fixtures compare browser behavior, server output,
78
+ hydration, and exact pixels with the live runtime in Chromium, Firefox, and WebKit. Constructs
79
+ that cannot be represented fail conversion explicitly rather than silently changing behavior.
80
+ Svelte output uses Svelte 5 runes, snippets, attachments, and public lifecycle APIs, with `.svelte`
81
+ components and adjacent imported CSS under `generated/svelte/`. It supports props (including generic
82
+ 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
83
+ flow, and keyed lists. Native-control helpers preserve authored reset defaults and dirty edits;
84
+ Svelte's normal compiler owns rendering, SSR, and hydration. Components import the rendering and
85
+ binding helpers their markup and handlers call from the shared `svelte/render.svelte.ts`, which an
86
+ application ships once. Scripts are formatted in `sv create`'s style. Markup breaks lines inside tags,
87
+ because Svelte renders whitespace between elements as a space.
88
+
89
+ ```sh
90
+ html-next-convert svelte 'components/**' --mode library --out-dir generated
91
+ ```
92
+
93
+ The current supported Svelte baseline is 5.57.1. Compile generated files with the standard Svelte
94
+ compiler or `@sveltejs/vite-plugin-svelte`. Source consumers can use `svelte-check`; publishers
95
+ emitting declaration files can use `svelte2tsx`. The generated public types cover props, native and
96
+ declared event callbacks and scoped slot fields. Both graph modes export components; application and library consumers use public `mount`/`hydrate`
97
+ or their framework's usual mounting and hydration flow.
98
+ Svelte support uses the unmodified framework; consumers do not install a runtime patch.
99
+ One known upstream gap remains: reordering a keyed row can blur its focused input. Svelte uses
100
+ ordinary DOM insertion to move the row, which can clear browser focus. In Svelte 5.57.1, our
101
+ Chromium, Firefox, and WebKit checks retain edited values and selection but lose focus;
102
+ Chromium also fires `blur` and `focusout`. The native HTML Next runtime retains focus in engines
103
+ with state-preserving `moveBefore`; its WebKit insertion fallback has the same focus loss.
104
+ This affects both mounting and hydration. See [Svelte issue #3973 and the editable Playground
105
+ reproduction](https://github.com/sveltejs/svelte/issues/3973#issuecomment-6003429271). Converter tests keep
106
+ this difference explicit while continuing to check rendering, edits, events, lifecycle and hydration.
107
+
108
+ Feature helpers are emitted once per converted graph and imported only by components that need
109
+ them. Style bindings record `cssstyle` and `css-tree` in server dependencies; the generated helper's
110
+ standard `browser` mapping uses the live element's CSSOM in browser builds.
111
+
112
+ React applications use their usual `hydrateRoot` call and error options. If the server root is
113
+ incompatible, React reports the recovery through `onRecoverableError` (or its default reporting);
114
+ the converter does not generate an `HR005` hydration entry or replace React's recovery flow.
115
+
116
+ For source-only distribution with automatic Vue, React, or Svelte conversion in the consuming app,
117
+ use the [Vite adapter](../html-next-unplugin/README.md#framework-source-imports). It also
118
+ generates consumer declarations, so publishers do not need separate framework copies.
119
+
120
+ To distribute preconverted copies of one authored library in all four forms, assemble the native HTML Next package from
121
+ the `.html` sources, then run the Vue, React, and Svelte library converters over the same quoted glob. Give
122
+ each conversion its own output directory so each `html-next.conversion.json` manifest survives:
123
+
124
+ ```sh
125
+ html-next-convert vue 'components/**' --mode library --out-dir package/converted/vue-target
126
+ html-next-convert react 'components/**' --mode library --out-dir package/converted/react-target
127
+ html-next-convert svelte 'components/**' --mode library --out-dir package/converted/svelte-target
128
+ ```
129
+
130
+ The package can expose the native entry and the converted Vue, React, and Svelte entries as
131
+ separate subpaths. If publishing source output, point `./vue`, `./react`, and `./svelte` at the generated
132
+ `vue/index.ts`, `react/index.ts`, and `svelte/index.ts`, include their component files and CSS, merge the conversion
133
+ inventories' `package.dependencies` and `package.peerDependencies` into the package manifest,
134
+ and mark Vue, React, and Svelte as optional peers when each subpath is independently usable. Consumers
135
+ then compile `.vue`, `.tsx`, and `.svelte` with their normal bundler plugins. For precompiled distribution,
136
+ emit JavaScript and declarations from those entries and point exports at the built files. The
137
+ [installed-library test](./tests/library-distribution.test.ts) packs and installs the source-output
138
+ shape, then renders the framework entries from that independent consumer.
139
+
140
+ For guaranteed unused-component **and CSS** pruning in a preconverted package, expose individual
141
+ component subpaths from the conversion inventory, such as `./react/XCard` pointing to
142
+ `react/components/XCard.tsx`. Consumers can then import only the components they use. Some
143
+ bundlers retain CSS side-effect imports from unused named re-exports in a shared `./react` barrel,
144
+ even when they remove the unused JavaScript. The on-demand Vite adapter handles pruning for its
145
+ generated named exports.
146
+
147
+ Controllers initialize once per component instance. Use `host.on("connect", setup)` for setup
148
+ that must run on every connection; return its disconnect cleanup from `setup`. Register other
149
+ native events with `host.on(type, listener)`, which detaches listeners while disconnected and
150
+ reattaches them on reconnect. A handler can dispatch its native `$$event` or selected event fields
151
+ to that listener. `<method>` and automatic named-export element methods are unsupported.
152
+
153
+ `host.state` contains mutable state, readonly computed state, and inherited context. Resources
154
+ are read through `host.data.name`, including their readonly response and status fields. Invalid
155
+ authored state assignments retain the prior value and warn; native control edits retain their
156
+ ordinary validity behavior. Props use `:host([prop])` styling, and state uses `:host-state([state])`.
157
+ The [public proposal](https://nextwebwg.org/declarative-components/javascript/) defines these contracts.
158
+
159
+ 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
@@ -1,8 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { fileURLToPath } from "node:url";
3
2
  import { convertComponents } from "./index.js";
4
3
  function usage() {
5
- return "Usage: html-next-convert vue <component.html...> --mode <application|library> --out-dir <directory> [--public-root-url <url>]";
4
+ return "Usage: html-next-convert <vue|react|svelte> <component.html|directory|glob>... --mode <application|library> --out-dir <directory> [--public-root-url <url>]";
6
5
  }
7
6
  async function main(argv) {
8
7
  const target = argv[0];
@@ -12,14 +11,14 @@ async function main(argv) {
12
11
  const outDirectory = argv[outIndex + 1];
13
12
  const publicRootIndex = argv.indexOf("--public-root-url");
14
13
  const publicRootURL = publicRootIndex < 0 ? undefined : argv[publicRootIndex + 1];
15
- if (target === undefined || !["vue"].includes(target) ||
14
+ if (target === undefined || !["vue", "react", "svelte"].includes(target) ||
16
15
  mode === undefined || !["application", "library"].includes(mode) ||
17
16
  modeIndex < 2 || outIndex !== modeIndex + 2 || outDirectory === undefined ||
18
17
  (publicRootIndex < 0 ? outIndex !== argv.length - 2 : publicRootIndex !== outIndex + 2 || publicRootIndex !== argv.length - 2 || publicRootURL === undefined))
19
18
  throw new Error(usage());
20
19
  await convertComponents({ mode, entries: argv.slice(1, modeIndex), target, outDirectory, ...(publicRootURL === undefined ? {} : { publicRootURL }) });
21
20
  }
22
- if (process.argv[1] === fileURLToPath(import.meta.url)) {
21
+ if (import.meta.main) {
23
22
  try {
24
23
  await main(process.argv.slice(2));
25
24
  }
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,OAAO,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,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,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,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,5 @@
1
- export type FrameworkTarget = "vue";
1
+ import { type HtmlDiagnostic, type DiagnosticLocation } from "@nextwebwg/html-next";
2
+ export type FrameworkTarget = "vue" | "react" | "svelte";
2
3
  export type ConversionGraph = "application" | "library";
3
4
  interface BaseConvertOptions {
4
5
  readonly entries: readonly string[];
@@ -23,7 +24,7 @@ export interface ConversionEntry {
23
24
  }
24
25
  export interface ConversionOutput {
25
26
  readonly path: string;
26
- readonly kind: "component" | "controller" | "helper" | "entry" | "inventory";
27
+ readonly kind: "component" | "controller" | "helper" | "style" | "entry" | "inventory";
27
28
  readonly source?: string;
28
29
  }
29
30
  export interface ConversionManifest {
@@ -31,7 +32,14 @@ export interface ConversionManifest {
31
32
  readonly target: FrameworkTarget;
32
33
  readonly targetVersion: string;
33
34
  readonly graph: ConversionGraph;
35
+ /** Package.json fields required by the emitted source artifacts. */
36
+ readonly package: {
37
+ readonly dependencies: Readonly<Record<string, string>>;
38
+ readonly peerDependencies: Readonly<Record<string, string>>;
39
+ };
34
40
  readonly entries: readonly ConversionEntry[];
41
+ /** Authored HTML and controller dependencies, relative to the conversion root. */
42
+ readonly sourceFiles: readonly string[];
35
43
  readonly output: {
36
44
  readonly entry: string;
37
45
  readonly inventory: "html-next.conversion.json";
@@ -70,9 +78,16 @@ export declare class FrameworkConversionError extends Error {
70
78
  readonly source: string;
71
79
  readonly tag: string;
72
80
  readonly reason?: string | undefined;
81
+ readonly location?: DiagnosticLocation | undefined;
73
82
  readonly code = "HTC001";
74
- constructor(target: FrameworkTarget, source: string, tag: string, reason?: string | undefined);
83
+ constructor(target: FrameworkTarget, source: string, tag: string, reason?: string | undefined, location?: DiagnosticLocation | undefined);
75
84
  }
85
+ export type CheckConversionOptions = Omit<ConvertOptions, "outDirectory"> & {
86
+ /** Receives non-fatal diagnostics, such as `HT022`, from a check that otherwise succeeds. */
87
+ readonly onWarning?: (diagnostic: HtmlDiagnostic) => void;
88
+ };
89
+ /** Runs the conversion planner and backend checks without writing artifacts. */
90
+ export declare function checkConversion(options: CheckConversionOptions): Promise<ConversionManifest>;
76
91
  export declare function convertComponents(options: ConvertOptions): Promise<ConversionManifest>;
77
92
  export {};
78
93
  //# sourceMappingURL=index.d.ts.map
@@ -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,11 @@
1
1
  import { mkdir, writeFile } from "node:fs/promises";
2
- import { dirname, relative, resolve, sep } from "node:path";
2
+ import { dirname, isAbsolute, posix, 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, getDiagnosticLocation, expandComponentEntries, generateVueComponent, generateReactConversion, generateSvelteConversion, HtmlDiagnosticError, HtmlDiagnosticAggregateError, loadNodeComponents, collectSharedStylesheets, compileComponentGraphStylesForBuild, compileComponentStylesForSvelte, wrapStylesheetConditions, vueHostArtifact, vueHtmlArtifact, vueControlArtifact, vuePropsArtifact, reactPropsArtifact, sveltePropsArtifact, svelteHtmlArtifact, svelteEventsArtifact, svelteControlArtifact, svelteDataArtifact, svelteReactivityArtifact, svelteRenderArtifact, svelteHostArtifact, svelteConnectionArtifact, svelteDecorationsArtifact, svelteStyleArtifacts, reactEventsArtifact, reactControlArtifact, reactDataArtifact, reactHtmlArtifact, reactHostArtifact, reactContextArtifact, reactDepthArtifact, reactRenderArtifact, transitionElements, } 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;
@@ -45,13 +47,15 @@ export class FrameworkConversionError extends Error {
45
47
  source;
46
48
  tag;
47
49
  reason;
50
+ location;
48
51
  code = "HTC001";
49
- constructor(target, source, tag, reason) {
52
+ constructor(target, source, tag, reason, location) {
50
53
  super(`${source}: HTC001: ${target} conversion of <${tag}> failed${reason === undefined ? "" : `: ${reason}`}`);
51
54
  this.target = target;
52
55
  this.source = source;
53
56
  this.tag = tag;
54
57
  this.reason = reason;
58
+ this.location = location;
55
59
  this.name = "FrameworkConversionError";
56
60
  }
57
61
  }
@@ -66,14 +70,25 @@ async function emit(root, artifact) {
66
70
  function frameworkEntry(mode, target, entries) {
67
71
  const exports = [...entries].sort((left, right) => left.artifact.localeCompare(right.artifact)).map((entry) => {
68
72
  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}`)};`;
73
+ const name = artifact.replace(/\.(?:vue|tsx|svelte)$/, "");
74
+ return `export { default as ${name} } from ${JSON.stringify(relativeImport(`${target}/index.ts`, entry.artifact))};`;
71
75
  });
72
76
  return {
73
77
  path: `${target}/${mode === "application" ? "application.ts" : "index.ts"}`,
74
78
  content: `${exports.join("\n")}\n`,
75
79
  };
76
80
  }
81
+ function relativeImport(from, to) {
82
+ const path = relative(dirname(from), to).split(sep).join("/");
83
+ return path.startsWith(".") ? path : `./${path}`;
84
+ }
85
+ function componentArtifact(projectRoot, url, tag, name, target) {
86
+ const source = relative(projectRoot, fileURLToPath(url));
87
+ const insideRoot = source !== ".." && !source.startsWith(`..${sep}`) && !isAbsolute(source);
88
+ const directory = insideRoot ? dirname(source) : `_external/${tag}`;
89
+ const segments = directory === "." ? [] : directory.split(sep);
90
+ return [target, ...segments, `${name}.${target === "vue" ? "vue" : target === "svelte" ? "svelte" : "tsx"}`].join("/");
91
+ }
77
92
  function componentRelativeDataSource(source) {
78
93
  return !source.startsWith("/") && !/^[A-Za-z][A-Za-z0-9+.-]*:/.test(source);
79
94
  }
@@ -128,7 +143,110 @@ function needsNestedDepthGuard(graph) {
128
143
  // An initial root plus 32 nested lowering passes permits 33 component nodes.
129
144
  return [...edges.keys()].some((tag) => visit(tag) > 33);
130
145
  }
146
+ function decoratedRoots(graph) {
147
+ const receivers = new Map();
148
+ const pending = [];
149
+ const add = (tag, classes, styles) => {
150
+ const previous = receivers.get(tag);
151
+ if ((!classes || previous?.classes) && (!styles || previous?.styles))
152
+ return false;
153
+ receivers.set(tag, { classes: classes || previous?.classes === true, styles: styles || previous?.styles === true });
154
+ pending.push(tag);
155
+ return true;
156
+ };
157
+ for (const node of graph.nodes.values()) {
158
+ const visit = (template) => {
159
+ if (template.kind === "slot")
160
+ for (const child of template.fallback ?? [])
161
+ visit(child);
162
+ else if (template.kind === "element") {
163
+ if (template.name.includes("-"))
164
+ add(template.name, template.attributes.some((attribute) => attribute.kind === "attribute" && attribute.target === "class"), template.attributes.some((attribute) => attribute.kind === "attribute" && attribute.target === "style"));
165
+ for (const child of template.children)
166
+ visit(child);
167
+ }
168
+ };
169
+ visit(node.definition.template);
170
+ }
171
+ while (pending.length > 0) {
172
+ const tag = pending.pop();
173
+ const id = graph.tags.get(tag);
174
+ const root = id === undefined ? undefined : graph.nodes.get(id)?.definition.root;
175
+ if (root?.kind === "component") {
176
+ const receiver = receivers.get(tag);
177
+ add(root.tag, receiver.classes, receiver.styles);
178
+ }
179
+ }
180
+ return receivers;
181
+ }
182
+ function nativeBindingRoots(graph) {
183
+ const receivers = new Map();
184
+ const pending = [];
185
+ const add = (tag, name) => {
186
+ let names = receivers.get(tag);
187
+ if (names?.has(name))
188
+ return;
189
+ if (names === undefined)
190
+ receivers.set(tag, names = new Set());
191
+ names.add(name);
192
+ pending.push(tag);
193
+ };
194
+ for (const node of graph.nodes.values()) {
195
+ const visit = (template) => {
196
+ if (template.kind === "slot")
197
+ for (const child of template.fallback ?? [])
198
+ visit(child);
199
+ else if (template.kind === "element") {
200
+ const id = graph.tags.get(template.name);
201
+ const props = id === undefined ? undefined : graph.nodes.get(id)?.definition.contract.props;
202
+ if (props !== undefined)
203
+ for (const attribute of template.attributes) {
204
+ 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))
205
+ add(template.name, attribute.name);
206
+ }
207
+ for (const child of template.children)
208
+ visit(child);
209
+ }
210
+ };
211
+ visit(node.definition.template);
212
+ }
213
+ while (pending.length > 0) {
214
+ const tag = pending.pop();
215
+ const id = graph.tags.get(tag);
216
+ const root = id === undefined ? undefined : graph.nodes.get(id)?.definition.root;
217
+ if (root?.kind === "component")
218
+ for (const name of receivers.get(tag))
219
+ add(root.tag, name);
220
+ }
221
+ return receivers;
222
+ }
223
+ /** Runs the conversion planner and backend checks without writing artifacts. */
224
+ export async function checkConversion(options) {
225
+ return (await planConversion(options, true)).manifest;
226
+ }
131
227
  export async function convertComponents(options) {
228
+ const { manifest, artifacts } = await planConversion(options);
229
+ const outputRoot = resolve(options.outDirectory);
230
+ for (const artifact of artifacts)
231
+ await emit(outputRoot, artifact);
232
+ await mkdir(outputRoot, { recursive: true });
233
+ await writeFile(resolve(outputRoot, manifest.output.inventory), `${JSON.stringify(manifest, null, 2)}\n`, "utf8");
234
+ return manifest;
235
+ }
236
+ async function planConversion(options, collectDiagnostics = false) {
237
+ const diagnostics = [];
238
+ const recover = (error) => {
239
+ if (!collectDiagnostics)
240
+ throw error;
241
+ if (error instanceof HtmlDiagnosticError)
242
+ diagnostics.push(error.diagnostic);
243
+ else if (error instanceof FrameworkConversionError)
244
+ diagnostics.push({ code: error.code, message: error.message, source: error.source, ...error.location });
245
+ else if (error instanceof FrameworkOutputCollisionError)
246
+ diagnostics.push({ code: error.code, message: error.message, source: error.sources[1] });
247
+ else
248
+ throw error;
249
+ };
132
250
  if (options.entries.length === 0)
133
251
  throw new Error("Framework conversion requires at least one component entry.");
134
252
  const targetVersion = targetVersions[options.target];
@@ -136,8 +254,8 @@ export async function convertComponents(options) {
136
254
  throw new FrameworkTargetVersionError(options.target, options.targetVersion, targetVersion);
137
255
  }
138
256
  const projectRoot = resolve(options.root ?? process.cwd());
139
- const outputRoot = resolve(options.outDirectory);
140
- const entries = options.entries.map((entry) => pathToFileURL(resolve(projectRoot, entry)).href);
257
+ const expanded = await expandComponentEntries(projectRoot, options.entries);
258
+ const entries = expanded.map((entry) => pathToFileURL(resolve(projectRoot, entry)).href);
141
259
  const seenEntries = new Set();
142
260
  for (const entry of entries) {
143
261
  if (seenEntries.has(entry)) {
@@ -145,11 +263,55 @@ export async function convertComponents(options) {
145
263
  }
146
264
  seenEntries.add(entry);
147
265
  }
148
- const graph = await loadNodeComponents(entries, { baseURL: pathToFileURL(`${projectRoot}${sep}`).href });
266
+ const graph = await loadNodeComponents(entries, { baseURL: pathToFileURL(`${projectRoot}${sep}`).href, collectDiagnostics });
267
+ // Only the native Vite build builds the `transitions` extension; conversion leaves its directives out.
268
+ const unsupported = [...graph.nodes.values()].flatMap(({ definition }) => {
269
+ const [first] = transitionElements(definition);
270
+ if (first === undefined)
271
+ return [];
272
+ return [{
273
+ code: "HT024", severity: "warning", source: definition.source.file,
274
+ message: `\`$transition\` and \`$transition-name\` use the \`transitions\` extension, which ${options.target} conversion does not support; \`${definition.contract.tag}\` converts without animation.`,
275
+ ...first.line === undefined || first.column === undefined ? {} : { line: first.line, column: first.column },
276
+ }];
277
+ });
278
+ const sourceFiles = new Set([...graph.nodes.values()].map((node) => fileURLToPath(node.url)).concat(graph.stylesheetInputs.map(url => fileURLToPath(url))));
279
+ const sharedStyles = collectSharedStylesheets([...graph.nodes.values()].map(node => node.definition));
280
+ const sharedStylePath = `${options.target}/shared-components.css`;
281
+ const svelteLocalCSS = new Map();
282
+ const pathsByTag = new Map([...graph.nodes.values()].map((node) => [
283
+ node.definition.contract.tag,
284
+ componentArtifact(projectRoot, node.url, node.definition.contract.tag, node.definition.contract.name, options.target),
285
+ ]));
286
+ const names = new Map();
287
+ for (const node of graph.nodes.values()) {
288
+ try {
289
+ const name = node.definition.contract.name;
290
+ const path = pathsByTag.get(node.definition.contract.tag);
291
+ const source = relative(projectRoot, fileURLToPath(node.url)).split(sep).join("/");
292
+ const prior = names.get(name);
293
+ if (prior !== undefined && prior.path !== path) {
294
+ throw new FrameworkOutputCollisionError(options.target, `${options.target}/index.ts`, [prior.source, source]);
295
+ }
296
+ names.set(name, { path, source });
297
+ }
298
+ catch (error) {
299
+ recover(error);
300
+ }
301
+ }
149
302
  const slotsByTag = new Map([...graph.nodes.values()].map((node) => [node.definition.contract.tag, node.definition.slots ?? []]));
303
+ const propsByTag = new Map([...graph.nodes.values()].map((node) => [node.definition.contract.tag,
304
+ new Set(Object.keys(node.definition.contract.props))]));
305
+ const propContractsByTag = new Map([...graph.nodes.values()].map((node) => [node.definition.contract.tag,
306
+ node.definition.contract.props]));
150
307
  const guardNestedDepth = needsNestedDepthGuard(graph);
308
+ const bindingReceivers = options.target === "svelte" ? nativeBindingRoots(graph) : undefined;
309
+ const decorationReceivers = options.target === "svelte" ? decoratedRoots(graph) : undefined;
151
310
  const manifestComponents = [];
152
311
  const planned = [];
312
+ const neededHelpers = new Set();
313
+ const hasDeclaredEvents = [...graph.nodes.values()].some((node) => node.definition.declarations?.some((declaration) => declaration.kind === "event") === true);
314
+ let reactStyles = false;
153
315
  const claimed = new Map();
154
316
  const claim = (artifact, kind, source) => {
155
317
  const previous = claimed.get(artifact.path);
@@ -160,72 +322,245 @@ export async function convertComponents(options) {
160
322
  planned.push({ artifact, kind, ...(source === undefined ? {} : { source }) });
161
323
  };
162
324
  for (const node of [...graph.nodes.values()].sort((left, right) => left.url.localeCompare(right.url))) {
163
- const source = relative(projectRoot, fileURLToPath(node.url)).split(sep).join("/");
164
- const tag = node.definition.contract.tag;
165
- // The controller and its relative imports are copied beside the component, which imports them.
166
- const controllerFiles = new Map();
167
- let controller;
168
- if (node.controller !== undefined) {
325
+ try {
326
+ const source = relative(projectRoot, fileURLToPath(node.url)).split(sep).join("/");
327
+ const tag = node.definition.contract.tag;
328
+ const componentPath = pathsByTag.get(tag);
329
+ // The controller and its relative imports are copied beside the component, which imports them.
330
+ const controllerFiles = new Map();
331
+ let controller;
332
+ if (node.controller !== undefined) {
333
+ try {
334
+ controller = await addControllerGraph(node.controller.url, node.trustRoot, `${options.target}/controllers/${tag}`, controllerFiles, sourceFiles);
335
+ }
336
+ catch (error) {
337
+ throw new FrameworkConversionError(options.target, source, tag, error instanceof Error ? error.message : String(error), getDiagnosticLocation(node.definition));
338
+ }
339
+ }
340
+ const definition = Object.freeze({
341
+ ...node.definition,
342
+ ...(options.target === "vue" && node.definition.stylesheets !== undefined ? {
343
+ css: node.definition.stylesheets.map(sheet => wrapStylesheetConditions(sheet.css, sheet.conditions)).join("\n") + "\n" + node.definition.css,
344
+ stylesheets: [],
345
+ } : {}),
346
+ source: Object.freeze({ file: browserDefinitionURL(node.definition, source, options.publicRootURL, options.target, tag) }),
347
+ ...(controller === undefined ? {} : { controller: relativeImport(componentPath, controller) }),
348
+ });
349
+ let content;
350
+ let reactConversion;
351
+ let svelteConversion;
352
+ const helpers = new Set();
169
353
  try {
170
- controller = await addControllerGraph(node.controller.url, node.trustRoot, `${options.target}/controllers/${tag}`, controllerFiles);
354
+ const importSpecifier = (importedTag) => {
355
+ const imported = pathsByTag.get(importedTag);
356
+ if (imported === undefined)
357
+ throw new FrameworkConversionError(options.target, source, tag, `unknown component <${importedTag}>`);
358
+ return relativeImport(componentPath, imported);
359
+ };
360
+ const reactHelperSpecifier = (name) => relativeImport(componentPath, `react/${name}.ts`).replace(/\.ts$/, "");
361
+ content = options.target === "vue" ? generateVueComponent(definition, {
362
+ slotsByTag,
363
+ guardNestedDepth,
364
+ importSpecifier,
365
+ helperSpecifier: (name) => {
366
+ helpers.add(name);
367
+ return relativeImport(componentPath, `${options.target}/${name}.ts`).replace(/\.ts$/, "");
368
+ },
369
+ ...(node.definition.controller === undefined ? {} : { controllerSpecifier: node.definition.controller }),
370
+ }) : options.target === "svelte" ? (svelteConversion = generateSvelteConversion(definition, {
371
+ slotsByTag,
372
+ guardNestedDepth,
373
+ rootDecorations: decorationReceivers?.get(tag),
374
+ ...(bindingReceivers?.has(tag) === true ? { rootBindings: [...bindingReceivers.get(tag)] } : {}),
375
+ decorationsSpecifier: relativeImport(componentPath, "svelte/decorations.ts").replace(/\.ts$/, ""),
376
+ styleSpecifier: relativeImport(componentPath, "svelte/style/style.js"),
377
+ hostSpecifier: relativeImport(componentPath, "svelte/host.svelte.ts").replace(/\.ts$/, ""),
378
+ ...(node.definition.controller === undefined ? {} : { controllerSpecifier: node.definition.controller }),
379
+ reactivitySpecifier: relativeImport(componentPath, "svelte/reactivity.svelte.ts").replace(/\.ts$/, ""),
380
+ renderSpecifier: relativeImport(componentPath, "svelte/render.svelte.ts").replace(/\.ts$/, ""),
381
+ importSpecifier,
382
+ propContractsByTag,
383
+ stylesheetSpecifier: `./${node.definition.contract.name}.css`,
384
+ propsSpecifier: relativeImport(componentPath, "svelte/props.ts").replace(/\.ts$/, ""),
385
+ htmlSpecifier: relativeImport(componentPath, "svelte/html.ts").replace(/\.ts$/, ""),
386
+ eventsSpecifier: relativeImport(componentPath, "svelte/events.ts").replace(/\.ts$/, ""),
387
+ controlSpecifier: relativeImport(componentPath, "svelte/control.ts").replace(/\.ts$/, ""),
388
+ dataSpecifier: relativeImport(componentPath, "svelte/data.svelte.ts").replace(/\.ts$/, ""),
389
+ })).component : (reactConversion = generateReactConversion(definition, {
390
+ slotsByTag,
391
+ propsByTag,
392
+ propContractsByTag,
393
+ guardNestedDepth,
394
+ importSpecifier,
395
+ propsSpecifier: reactHelperSpecifier("props"),
396
+ eventsSpecifier: reactHelperSpecifier("events"),
397
+ controlSpecifier: reactHelperSpecifier("control"),
398
+ dataSpecifier: reactHelperSpecifier("data"),
399
+ htmlSpecifier: reactHelperSpecifier("html"),
400
+ hostSpecifier: reactHelperSpecifier("host"),
401
+ contextSpecifier: reactHelperSpecifier("context"),
402
+ depthSpecifier: reactHelperSpecifier("depth"),
403
+ renderSpecifier: reactHelperSpecifier("render"),
404
+ ...(node.definition.controller === undefined ? {} : { controllerSpecifier: node.definition.controller }),
405
+ })).component;
171
406
  }
172
407
  catch (error) {
173
- throw new FrameworkConversionError(options.target, source, tag, error instanceof Error ? error.message : String(error));
408
+ if (error instanceof HtmlDiagnosticError) {
409
+ if (error.diagnostic.code.startsWith("HY")) {
410
+ throw new HtmlDiagnosticError({ ...error.diagnostic, source: error.diagnostic.source ?? node.url });
411
+ }
412
+ throw new FrameworkConversionError(options.target, source, tag, error.message, error.diagnostic.line === undefined ? getDiagnosticLocation(node.definition) : { line: error.diagnostic.line, column: error.diagnostic.column });
413
+ }
414
+ throw error;
174
415
  }
175
- }
176
- const definition = Object.freeze({
177
- ...node.definition,
178
- source: Object.freeze({ file: browserDefinitionURL(node.definition, source, options.publicRootURL, options.target, tag) }),
179
- ...(controller === undefined ? {} : { controller: `./${controller.slice(`${options.target}/`.length)}` }),
180
- });
181
- let content;
182
- try {
183
- content = generateVueComponent(definition, {
184
- slotsByTag,
185
- guardNestedDepth,
186
- ...(node.definition.controller === undefined ? {} : { controllerSpecifier: node.definition.controller }),
187
- });
188
- }
189
- catch (error) {
190
- if (error instanceof HtmlDiagnosticError) {
191
- if (error.diagnostic.code.startsWith("HY")) {
192
- throw new HtmlDiagnosticError({ ...error.diagnostic, source: error.diagnostic.source ?? node.url });
416
+ if (/@nextwebwg\//.test(content))
417
+ throw new FrameworkConversionError(options.target, source, tag);
418
+ if (sharedStyles.length > 0 && options.target !== "vue") {
419
+ const sharedImport = `import ${JSON.stringify(relativeImport(componentPath, sharedStylePath))};`;
420
+ if (options.target === "react") {
421
+ content = content.replace(/^import ["'][^"']+\.css["'];?\s*$/gm, "");
422
+ content = sharedImport + "\n" + content;
423
+ reactStyles = true;
424
+ }
425
+ else {
426
+ content = content.replace(/^import ["'][^"']+\.css["'];?\s*$/gm, "");
427
+ content = content.replace(/(<script\s+lang="ts"[^>]*>)/, `$1\n${sharedImport}`);
193
428
  }
194
- throw new FrameworkConversionError(options.target, source, tag, error.message);
195
429
  }
196
- throw error;
430
+ // TypeScript 6+ rejects a stylesheet import unless the program declares `*.css`.
431
+ const component = reactConversion !== undefined && (reactConversion.css !== "" || sharedStyles.length > 0)
432
+ ? { path: componentPath, content: `/// <reference path="${posix.relative(posix.dirname(componentPath), "react/styles.d.ts")}" />\n${content}` }
433
+ : { path: componentPath, content };
434
+ claim(component, "component", source);
435
+ if (reactConversion !== undefined) {
436
+ for (const helper of reactConversion.helpers)
437
+ neededHelpers.add(helper);
438
+ const css = reactConversion.css;
439
+ if (css !== "" && sharedStyles.length === 0) {
440
+ reactStyles = true;
441
+ claim({ path: componentPath.replace(/\.tsx$/, ".css"), content: `${css}\n` }, "style", source);
442
+ }
443
+ }
444
+ if (svelteConversion !== undefined)
445
+ svelteLocalCSS.set(tag, compileComponentStylesForSvelte(node.definition.css, node.definition).css);
446
+ if (svelteConversion !== undefined && svelteConversion.css !== "" && sharedStyles.length === 0) {
447
+ claim({ path: componentPath.replace(/\.svelte$/, ".css"), content: `${svelteConversion.css}\n` }, "style", source);
448
+ }
449
+ if (svelteConversion !== undefined)
450
+ for (const helper of svelteConversion.helpers)
451
+ neededHelpers.add(helper);
452
+ for (const helper of helpers)
453
+ neededHelpers.add(helper);
454
+ for (const file of controllerFiles.values()) {
455
+ claim(file, "controller", source);
456
+ if (options.target === "react" && /\.(?:js|mjs|cjs)$/.test(file.path)) {
457
+ const declarationPath = file.path.replace(/\.mjs$/, ".d.mts").replace(/\.cjs$/, ".d.cts").replace(/\.js$/, ".d.ts");
458
+ claim({ path: declarationPath, content: "declare const controller: unknown;\nexport default controller;\n" }, "helper", source);
459
+ }
460
+ }
461
+ manifestComponents.push(Object.freeze({
462
+ name: node.definition.contract.name,
463
+ tag,
464
+ source,
465
+ artifact: component.path,
466
+ ...(controller === undefined ? {} : { controller }),
467
+ }));
468
+ }
469
+ catch (error) {
470
+ recover(error);
197
471
  }
198
- if (/@nextwebwg\//.test(content))
199
- throw new FrameworkConversionError(options.target, source, tag);
200
- const component = { path: `${options.target}/${node.definition.contract.name}.vue`, content };
201
- claim(component, "component", source);
202
- for (const file of controllerFiles.values())
203
- claim(file, "controller", source);
204
- manifestComponents.push(Object.freeze({
205
- name: node.definition.contract.name,
206
- tag,
207
- source,
208
- artifact: component.path,
209
- ...(controller === undefined ? {} : { controller }),
210
- }));
211
- }
212
- if (planned.some(({ artifact }) => importsVueHost(artifact.content))) {
472
+ }
473
+ if (diagnostics.length > 0)
474
+ throw new HtmlDiagnosticAggregateError([...graph.warnings ?? [], ...unsupported, ...diagnostics]);
475
+ if (options.target === "vue" && neededHelpers.has("host")) {
213
476
  claim(vueHostArtifact(), "helper");
214
477
  }
215
- if (planned.some(({ artifact }) => importsVueHtml(artifact.content))) {
478
+ if (options.target === "vue" && neededHelpers.has("html")) {
216
479
  claim(vueHtmlArtifact(), "helper");
217
480
  }
218
- if (planned.some(({ artifact }) => importsVueControl(artifact.content))) {
481
+ if (options.target === "vue" && neededHelpers.has("control")) {
219
482
  claim(vueControlArtifact(), "helper");
220
483
  }
221
- if (planned.some(({ artifact }) => importsVueProps(artifact.content))) {
484
+ if (options.target === "vue" && neededHelpers.has("props")) {
222
485
  claim(vuePropsArtifact(), "helper");
223
486
  }
224
- const conversionEntries = entries.map((url) => {
225
- const node = graph.nodes.get(url);
487
+ if (options.target === "react" && neededHelpers.has("props")) {
488
+ claim(reactPropsArtifact(), "helper");
489
+ }
490
+ if (options.target === "svelte" && neededHelpers.has("props")) {
491
+ claim(sveltePropsArtifact(), "helper");
492
+ }
493
+ if (options.target === "svelte" && neededHelpers.has("html")) {
494
+ claim(svelteHtmlArtifact(), "helper");
495
+ }
496
+ if (options.target === "svelte" && neededHelpers.has("control")) {
497
+ claim(svelteControlArtifact(), "helper");
498
+ }
499
+ if (options.target === "svelte" && neededHelpers.has("decorations")) {
500
+ claim(svelteDecorationsArtifact(), "helper");
501
+ }
502
+ if (options.target === "svelte" && neededHelpers.has("style")) {
503
+ for (const artifact of svelteStyleArtifacts())
504
+ claim(artifact, "helper");
505
+ }
506
+ if (options.target === "svelte" && neededHelpers.has("connection")) {
507
+ claim(svelteConnectionArtifact(), "helper");
508
+ }
509
+ if (options.target === "svelte" && neededHelpers.has("host")) {
510
+ claim(svelteHostArtifact(), "helper");
511
+ }
512
+ if (options.target === "svelte" && neededHelpers.has("reactivity")) {
513
+ claim(svelteReactivityArtifact(), "helper");
514
+ }
515
+ if (options.target === "svelte" && neededHelpers.has("render")) {
516
+ claim(svelteRenderArtifact(), "helper");
517
+ }
518
+ if (options.target === "svelte" && neededHelpers.has("data")) {
519
+ claim(svelteDataArtifact(), "helper");
520
+ }
521
+ if (options.target === "svelte" && neededHelpers.has("events")) {
522
+ claim(svelteEventsArtifact(hasDeclaredEvents), "helper");
523
+ }
524
+ if (options.target === "react" && neededHelpers.has("events")) {
525
+ claim(reactEventsArtifact(hasDeclaredEvents), "helper");
526
+ }
527
+ if (options.target === "react" && neededHelpers.has("control")) {
528
+ claim(reactControlArtifact(), "helper");
529
+ }
530
+ if (options.target === "react" && neededHelpers.has("data")) {
531
+ claim(reactDataArtifact(), "helper");
532
+ }
533
+ if (options.target === "react" && neededHelpers.has("html")) {
534
+ claim(reactHtmlArtifact(), "helper");
535
+ }
536
+ if (options.target === "react" && neededHelpers.has("host")) {
537
+ claim(reactHostArtifact(), "helper");
538
+ }
539
+ if (options.target === "react" && neededHelpers.has("context")) {
540
+ claim(reactContextArtifact(), "helper");
541
+ }
542
+ if (options.target === "react" && neededHelpers.has("depth")) {
543
+ claim(reactDepthArtifact(), "helper");
544
+ }
545
+ if (options.target === "react" && neededHelpers.has("render")) {
546
+ claim(reactRenderArtifact(), "helper");
547
+ }
548
+ if (options.target === "react" && reactStyles) {
549
+ claim({ path: "react/styles.d.ts", content: 'declare module "*.css";\n' }, "helper");
550
+ }
551
+ if (sharedStyles.length > 0 && options.target !== "vue") {
552
+ const definitions = [...graph.nodes.values()].map(node => node.definition);
553
+ const css = options.target === "react" ? compileComponentGraphStylesForBuild(definitions) : definitions.flatMap(definition => [
554
+ ...(definition.stylesheets ?? []).map(sheet => wrapStylesheetConditions(compileComponentStylesForSvelte(sheet.css, definition).css, sheet.conditions)),
555
+ svelteLocalCSS.get(definition.contract.tag) ?? "",
556
+ ]).join("\n");
557
+ claim({ path: sharedStylePath, content: wrapStylesheetConditions(css, []) + "\n" }, "style");
558
+ }
559
+ const conversionEntries = graph.roots.map((id) => {
560
+ const node = graph.nodes.get(id);
226
561
  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("/"));
562
+ throw new Error(`Framework conversion did not resolve entry ${id}.`);
563
+ const component = manifestComponents.find(({ tag }) => tag === node.definition.contract.tag);
229
564
  return {
230
565
  source: component.source,
231
566
  tag: component.tag,
@@ -246,7 +581,13 @@ export async function convertComponents(options) {
246
581
  target: options.target,
247
582
  targetVersion,
248
583
  graph: options.mode,
584
+ package: Object.freeze({
585
+ 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" } : {}) }),
586
+ // Vue 3.5.43 restores generic inference through runtime PropType declarations.
587
+ peerDependencies: Object.freeze({ [options.target]: options.target === "vue" ? "^3.5.43" : `^${targetVersion}${options.target === "svelte" ? "" : ".0"}` }),
588
+ }),
249
589
  entries: Object.freeze(conversionEntries),
590
+ sourceFiles: Object.freeze([...sourceFiles].map((path) => relative(projectRoot, path).split(sep).join("/")).sort()),
250
591
  output: Object.freeze({
251
592
  entry: entry.path,
252
593
  inventory,
@@ -254,10 +595,8 @@ export async function convertComponents(options) {
254
595
  }),
255
596
  components: Object.freeze(manifestComponents),
256
597
  });
257
- for (const { artifact } of planned)
258
- await emit(outputRoot, artifact);
259
- await mkdir(outputRoot, { recursive: true });
260
- await writeFile(resolve(outputRoot, inventory), `${JSON.stringify(manifest, null, 2)}\n`, "utf8");
261
- return manifest;
598
+ for (const warning of [...graph.warnings ?? [], ...unsupported])
599
+ options.onWarning?.(warning);
600
+ return { manifest, artifacts: planned.map(({ artifact }) => artifact) };
262
601
  }
263
602
  //# sourceMappingURL=index.js.map
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",
4
- "description": "Vue conversion for Declarative HTML Components.",
3
+ "version": "1.0.0-alpha.41",
4
+ "description": "Vue, React, and Svelte conversion for Declarative HTML Components.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "sideEffects": false,
@@ -18,20 +18,29 @@
18
18
  "dist"
19
19
  ],
20
20
  "engines": {
21
- "node": ">=22.13 <23 || >=24 <25"
21
+ "node": ">=22.22.2 <23 || >=24.15 <25"
22
22
  },
23
23
  "dependencies": {
24
- "@nextwebwg/html-next": "1.0.0-alpha.9"
24
+ "@nextwebwg/html-next": "1.0.0-alpha.41"
25
25
  },
26
26
  "devDependencies": {
27
- "@types/node": "25.9.5",
28
- "@vue/compiler-sfc": "3.5.42",
27
+ "@formatjs/intl-durationformat": "0.11.1",
28
+ "@types/node": "25.9.9",
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
35
  "parse5": "8.0.1",
31
36
  "playwright": "1.63.0",
32
- "typescript": "7.0.2",
33
- "vitest": "5.0.0",
34
- "vue": "3.5.42"
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.12"
35
44
  },
36
45
  "publishConfig": {
37
46
  "access": "public",