@nextwebwg/html-next 1.0.0-alpha.2 → 1.0.0-alpha.4

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/dist/forms.js ADDED
@@ -0,0 +1,102 @@
1
+ function appendSuccessfulValue(parameters, name, value) {
2
+ parameters.append(name, typeof value === "string" ? value : value.name);
3
+ }
4
+ /** Builds the enhanced request from the browser's native successful-controls set. */
5
+ export function buildFormRequest(form, submitter, options = {}) {
6
+ const submitControl = submitter instanceof HTMLButtonElement || submitter instanceof HTMLInputElement
7
+ ? submitter
8
+ : undefined;
9
+ const action = submitControl?.hasAttribute("formaction") === true
10
+ ? submitControl.formAction
11
+ : options.source ?? form.action;
12
+ const method = (submitControl?.hasAttribute("formmethod") === true ? submitControl.formMethod : form.method).toUpperCase() || "GET";
13
+ const enctype = submitControl?.hasAttribute("formenctype") === true ? submitControl.formEnctype : form.enctype;
14
+ const data = new FormData(form, submitter ?? undefined);
15
+ const used = new Set();
16
+ const expandedAction = (action || form.ownerDocument.URL).replace(/\{([A-Za-z_$][\w$-]*)\}/g, (_match, name) => {
17
+ used.add(name);
18
+ return encodeURIComponent(String(options.parameters?.[name] ?? ""));
19
+ });
20
+ for (const [name, value] of Object.entries(options.parameters ?? {})) {
21
+ if (used.has(name))
22
+ continue;
23
+ if (Array.isArray(value)) {
24
+ for (const item of value)
25
+ data.append(name, String(item));
26
+ }
27
+ else if (value !== undefined && value !== null)
28
+ data.append(name, String(value));
29
+ }
30
+ const url = new URL(expandedAction, form.ownerDocument.baseURI);
31
+ if (method === "GET" || method === "HEAD") {
32
+ for (const [name, value] of data)
33
+ appendSuccessfulValue(url.searchParams, name, value);
34
+ return { url: url.href, init: { method } };
35
+ }
36
+ if (enctype === "application/x-www-form-urlencoded") {
37
+ const body = new URLSearchParams();
38
+ for (const [name, value] of data)
39
+ appendSuccessfulValue(body, name, value);
40
+ return { url: url.href, init: { method, body } };
41
+ }
42
+ if (enctype === "text/plain") {
43
+ const body = [...data].map(([name, value]) => `${name}=${typeof value === "string" ? value : value.name}`).join("\r\n");
44
+ return { url: url.href, init: { method, body, headers: { "content-type": "text/plain" } } };
45
+ }
46
+ return { url: url.href, init: { method, body: data } };
47
+ }
48
+ /** Adds abortable fetch enhancement while retaining native validation and request semantics. */
49
+ export function enhanceForm(form, options) {
50
+ const request = options.fetch ?? globalThis.fetch.bind(globalThis);
51
+ const parse = options.parse ?? (async (response) => {
52
+ const contentType = response.headers.get("content-type") ?? "";
53
+ return (contentType.includes("json") ? response.json() : response.text());
54
+ });
55
+ let abort;
56
+ let generation = 0;
57
+ const submit = (event) => {
58
+ if (event.defaultPrevented || !form.checkValidity())
59
+ return;
60
+ let built;
61
+ let pending;
62
+ const nextAbort = new AbortController();
63
+ try {
64
+ built = buildFormRequest(form, event.submitter, {
65
+ ...(options.source === undefined ? {} : { source: options.source }),
66
+ ...(options.parameters === undefined ? {} : { parameters: options.parameters() }),
67
+ });
68
+ pending = request(built.url, { ...built.init, signal: nextAbort.signal });
69
+ }
70
+ catch {
71
+ // Enhancement never started; leave the event untouched for native navigation.
72
+ return;
73
+ }
74
+ event.preventDefault();
75
+ abort?.abort();
76
+ abort = nextAbort;
77
+ const current = ++generation;
78
+ options.onState({ pending: true, value: null, error: null, ok: false });
79
+ void pending.then(async (response) => {
80
+ if (!response.ok)
81
+ throw new TypeError(`Request failed with ${response.status}.`);
82
+ const value = await parse(response);
83
+ if (current !== generation || nextAbort.signal.aborted)
84
+ return;
85
+ options.onState({ pending: false, value, error: null, ok: true });
86
+ form.dispatchEvent(new CustomEvent("success", { detail: value, bubbles: true }));
87
+ }).catch((error) => {
88
+ if (current !== generation || nextAbort.signal.aborted)
89
+ return;
90
+ options.onState({ pending: false, value: null, error, ok: false });
91
+ form.dispatchEvent(new CustomEvent("error", { detail: error, bubbles: true }));
92
+ });
93
+ };
94
+ form.addEventListener("submit", submit);
95
+ return () => {
96
+ generation += 1;
97
+ abort?.abort();
98
+ abort = undefined;
99
+ form.removeEventListener("submit", submit);
100
+ };
101
+ }
102
+ //# sourceMappingURL=forms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forms.js","sourceRoot":"","sources":["../src/forms.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,13 @@
1
1
  import type { ComponentDefinition } from "./template.js";
2
- export declare const GENERATOR_VERSION = "1.0.0-alpha.2";
2
+ export declare const GENERATOR_VERSION = "1.0.0-alpha.4";
3
3
  export interface GeneratedArtifact {
4
4
  readonly path: string;
5
5
  readonly content: string;
6
6
  }
7
7
  export declare function generateComponent(definition: ComponentDefinition): readonly GeneratedArtifact[];
8
+ /** The one module the converted Vue components share; every package that emits Vue ships it once. */
9
+ export declare function vueHostArtifact(): GeneratedArtifact;
10
+ export { importsVueHost } from "./targets/vue-host.js";
8
11
  export type { ComponentDefinition } from "./template.js";
9
12
  /** Converts one definition to a Vue single-file component, failing with a diagnostic if it cannot. */
10
13
  export declare function generateVueComponent(definition: ComponentDefinition): string;
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGzD,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,mBAAmB,GAC9B,SAAS,iBAAiB,EAAE,CAgB9B;AAED,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAezD,sGAAsG;AACtG,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAE5E"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGzD,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,mBAAmB,GAC9B,SAAS,iBAAiB,EAAE,CAgB9B;AAED,qGAAqG;AACrG,wBAAgB,eAAe,IAAI,iBAAiB,CAEnD;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAezD,sGAAsG;AACtG,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,mBAAmB,GAAG,MAAM,CAE5E"}
package/dist/generate.js CHANGED
@@ -1,9 +1,10 @@
1
1
  import { generateDocs } from "./targets/docs.js";
2
2
  import { generateVanilla } from "./targets/vanilla.js";
3
3
  import { generateVue } from "./targets/vue.js";
4
+ import { VUE_HOST_PATH, vueHostModule } from "./targets/vue-host.js";
4
5
  import { HtmlDiagnosticError } from "./diagnostics.js";
5
6
  import { compileComponentStylesForBuild } from "./component-styles-build.js";
6
- export const GENERATOR_VERSION = "1.0.0-alpha.2";
7
+ export const GENERATOR_VERSION = "1.0.0-alpha.4";
7
8
  export function generateComponent(definition) {
8
9
  const vanilla = generateVanilla(definition, GENERATOR_VERSION);
9
10
  const vue = convertedToVue(definition);
@@ -20,6 +21,11 @@ export function generateComponent(definition) {
20
21
  Object.freeze({ path: `docs/${tag}.md`, content: docs }),
21
22
  ]);
22
23
  }
24
+ /** The one module the converted Vue components share; every package that emits Vue ships it once. */
25
+ export function vueHostArtifact() {
26
+ return Object.freeze({ path: VUE_HOST_PATH, content: vueHostModule(GENERATOR_VERSION) });
27
+ }
28
+ export { importsVueHost } from "./targets/vue-host.js";
23
29
  /**
24
30
  * The Vue conversion, or nothing when the definition uses a construct Vue conversion does not map
25
31
  * yet. HTML Next's own outputs do not depend on it; `generateVueComponent` reports the reason.
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAE7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAOjD,MAAM,UAAU,iBAAiB,CAC/B,UAA+B;IAE/B,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACzD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;IAE1C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,IAAI,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,IAAI,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAC7E,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,UAAU,GAAG,MAAM;YACzB,OAAO,EAAE,6BAA6B,iBAAiB,sBAAsB,8BAA8B,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;SAClL,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KACzD,CAAC,CAAC;AACL,CAAC;AAID;;;GAGG;AACH,SAAS,cAAc,CAAC,UAA+B;IACrD,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,mBAAmB,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACrG,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,oBAAoB,CAAC,UAA+B;IAClE,OAAO,WAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAE7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAOjD,MAAM,UAAU,iBAAiB,CAC/B,UAA+B;IAE/B,MAAM,OAAO,GAAG,eAAe,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,YAAY,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACzD,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;IAE1C,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,IAAI,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,IAAI,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAC7E,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,UAAU,GAAG,MAAM;YACzB,OAAO,EAAE,6BAA6B,iBAAiB,sBAAsB,8BAA8B,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;SAClL,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KACzD,CAAC,CAAC;AACL,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,eAAe;IAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD;;;GAGG;AACH,SAAS,cAAc,CAAC,UAA+B;IACrD,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,mBAAmB,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACrG,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,sGAAsG;AACtG,MAAM,UAAU,oBAAoB,CAAC,UAA+B;IAClE,OAAO,WAAW,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AACpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAoB,MAAM,cAAc,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE1E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC;IAC1C,QAAQ,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;IACzD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAC/D;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,uBAAuB,GAAG,CACpC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,KACX,uBAAuB,CAAC;AAgB7B,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,cAAc,CAAC,CAyFzB"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAoB,MAAM,cAAc,CAAC;AAChF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE1E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACrC,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC;IAC1C,QAAQ,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;IACzD,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAC/D;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;IACzC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,uBAAuB,GAAG,CACpC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,KACX,uBAAuB,CAAC;AAgB7B,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,SAAS,MAAM,EAAE,EACjC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,cAAc,CAAC,CAqGzB"}
package/dist/graph.js CHANGED
@@ -43,7 +43,16 @@ export async function buildComponentGraph(rootSpecifiers, options) {
43
43
  };
44
44
  drafts.set(finalURL, draft);
45
45
  if (definition.controller !== undefined) {
46
- const controller = options.resolver.resolveDependency(definition.controller, finalURL, resource.trustRoot);
46
+ let controller;
47
+ try {
48
+ controller = options.resolver.resolveDependency(definition.controller, finalURL, resource.trustRoot);
49
+ }
50
+ catch (error) {
51
+ if (error instanceof HtmlDiagnosticError && error.diagnostic.code === "HL003") {
52
+ fail("HL005", `Controller \`${definition.controller}\` is outside the component's approved root.`, finalURL);
53
+ }
54
+ throw error;
55
+ }
47
56
  draft.controller = Object.freeze({ specifier: definition.controller, url: controller.url });
48
57
  }
49
58
  for (const specifier of parsed.dependencies) {
package/dist/graph.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAKlE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAmHD,oGAAoG;AACpG,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkHxG;AAED,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAKlE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAmHD,oGAAoG;AACpG,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuHxG;AAED,YAAY,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
package/dist/package.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { copyFile, mkdir, readFile, writeFile } from "node:fs/promises";
2
2
  import { dirname, posix, relative, resolve, sep } from "node:path";
3
3
  import ts from "typescript-compiler";
4
- import { generateComponent, GENERATOR_VERSION } from "./generate.js";
4
+ import { generateComponent, GENERATOR_VERSION, importsVueHost, vueHostArtifact } from "./generate.js";
5
5
  import { commonDirectory } from "./controller-files.js";
6
6
  import { parseComponentResource } from "./source-graph.js";
7
7
  function inside(root, path) {
@@ -145,6 +145,12 @@ export async function assembleComponentPackage(config) {
145
145
  else
146
146
  files.set(edge.target, { copy: resolve(edge.source) });
147
147
  }
148
+ if ([...files.values()].some((content) => typeof content === "string" && importsVueHost(content))) {
149
+ const host = vueHostArtifact();
150
+ if (files.has(host.path))
151
+ throw new Error(`Package artifact collision at ${host.path}.`);
152
+ files.set(host.path, host.content);
153
+ }
148
154
  for (const [target, content] of Object.entries(targetIndexes(definitions))) {
149
155
  if (files.has(target))
150
156
  throw new Error(`Package artifact collision at ${target}.`);
@@ -1 +1 @@
1
- {"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAErC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAErE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAQ3D,SAAS,MAAM,CAAC,IAAY,EAAE,IAAY;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,GAAG,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAGD,KAAK,UAAU,oBAAoB,CACjC,MAAc,EACd,MAAc,EACd,KAAsD,EACtD,aAAkC,EAClC,kBAAkD;IAElD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACxF,MAAM,IAAI,KAAK,CAAC,iDAAiD,MAAM,GAAG,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,WAAW,KAAK,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,UAAU,GAAG,CAAC,CAAC;QAChG,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,UAAU,GAAG,CAAC,CAAC;IAE3F,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACtD,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC1C,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvG,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACrG,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,qEAAqE,SAAS,GAAG,CAAC,CAAC;QACrG,CAAC;QACD,MAAM,oBAAoB,CACxB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,EACvC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,EAChD,KAAK,EACL,aAAa,EACb,kBAAkB,CACnB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,UAA+B,EAAE,UAA8B;IAC1F,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,EAAE,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,YAAY,CAAC,WAA2C,EAAE,WAAwC;IACzG,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAC1D,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,oBAAoB,KAAK,GAAG,CAAC,EAAE,CACtG,CAAC;IACF,OAAO;QACL,sIAAsI;QACtI,EAAE;QACF,8BAA8B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG;QAC5D,6BAA6B;QAC7B,GAAG,OAAO;QACV,IAAI;QACJ,EAAE;QACF,+BAA+B;QAC/B,6CAA6C;QAC7C,oDAAoD;QACpD,kCAAkC;QAClC,sCAAsC;QACtC,gEAAgE;QAChE,iCAAiC;QACjC,0CAA0C;QAC1C,8BAA8B;QAC9B,6CAA6C;QAC7C,sFAAsF;QACtF,kDAAkD;QAClD,sDAAsD;QACtD,WAAW;QACX,wFAAwF;QACxF,qCAAqC;QACrC,uBAAuB;QACvB,QAAQ;QACR,OAAO;QACP,GAAG;QACH,EAAE;QACF,uFAAuF;QACvF,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,UAA+B;IACjD,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,aAAa,CAAC,WAA2C;IAChE,MAAM,OAAO,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9G,MAAM,UAAU,GAAG,CAAC,SAAiB,EAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC3E,uBAAuB,UAAU,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,GAAG,CACxH,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC;QACjC,kBAAkB,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAC7C,iBAAiB,IAAI,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,GAAG,CACvE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;QACnB,gBAAgB,EAAE;YAChB,6CAA6C;YAC7C,iEAAiE;YACjE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,wBAAwB,UAAU,CAAC,UAAU,CAAC,6CAA6C,CAAC;YAC3H,EAAE;SACH,CAAC,IAAI,CAAC,IAAI,CAAC;KACb,CAAC,CAAC;AACL,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAA8B;IAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8C,CAAC;IACpE,MAAM,WAAW,GAA0B,EAAE,CAAC;IAC9C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA6B,CAAC;IAChE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,uFAAuF;IACvF,oFAAoF;IACpF,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE1H,KAAK,MAAM,UAAU,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC;QACjG,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAChG,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACrH,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,KAAK,SAAS;YAChD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QACnE,WAAW,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1H,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,oBAAoB,CACxB,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,UAAW,CAAC,EAChD,UAAU,EACV,KAAK,EACL,aAAa,EACb,kBAAkB,CACnB,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QACjF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;YACjG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7F,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;YACnD,MAAM,oBAAoB,CACxB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EACpB,IAAI,CAAC,MAAM,EACX,KAAK,EACL,aAAa,EACb,kBAAkB,CACnB,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,IAAI,EAAE;gBAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrG,CAAC;;YAAM,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAC3E,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,GAAG,CAAC,CAAC;QACnF,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;IACnE,KAAK,CAAC,GAAG,CAAC,iBAAiB,EAAE;QAC3B,kEAAkE;QAClE,mEAAmE;QACnE,gEAAgE;QAChE,sDAAsD;QACtD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACd,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,iBAAiB,EAAE,SAAS,CAAC;QAC3C,gBAAgB,EAAE,EAAE,sBAAsB,EAAE,IAAI,iBAAiB,EAAE,EAAE,GAAG,MAAM,CAAC,gBAAgB,EAAE;QACjG,GAAG,CAAC,MAAM,CAAC,oBAAoB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAC3G,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI;YACzB,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,EAAE;YAC9D,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,EAAE;YAChE,WAAW,EAAE,oBAAoB;YACjC,gBAAgB,EAAE,gBAAgB;YAClC,SAAS,EAAE,SAAS;YACpB,aAAa,EAAE,aAAa;YAC5B,YAAY,EAAE,YAAY;SAC3B;KACF,CAAC;IACF,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,KAAK,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAChD,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC3C,GAAG,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG;YAC5B,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;YAC9B,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI;SAC7D,CAAC,CAAC;QACH,WAAW,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;QACzE,iBAAiB,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAC5F,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACjD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QAC1D,kBAAkB,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAC7F,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAChD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;KAC3D,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAEjB,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAChG,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,MAAM,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;;YACrE,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;KAC/C,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"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"}
package/dist/resolve.d.ts CHANGED
@@ -15,10 +15,10 @@ export interface ComponentResourceResolver {
15
15
  /** Resolves HTML Next resource specifiers using an application-owned import map snapshot. */
16
16
  export declare class ResourceResolver implements ComponentResourceResolver {
17
17
  #private;
18
- constructor(map?: ImportMapLike, baseURL?: string);
18
+ constructor(map?: ImportMapLike, baseURL?: string, applicationURL?: string);
19
19
  resolveRoot(specifier: string): ResolvedResource;
20
20
  resolveDependency(specifier: string, parentURL: string, parentTrustRoot: string): ResolvedResource;
21
- assertFinalURL(resource: ResolvedResource, finalURL: string): string;
21
+ assertFinalURL(resource: ResolvedResource, finalURL: string, source?: string): string;
22
22
  }
23
23
  export declare function isWithinTrustRoot(url: string, root: string): boolean;
24
24
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACjD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACnG,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACvF;AAgBD,6FAA6F;AAC7F,qBAAa,gBAAiB,YAAW,yBAAyB;;IAIhE,YAAY,GAAG,GAAE,aAAkB,EAAE,OAAO,SAAa,EAQxD;IAED,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAM/C;IAED,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GACtB,gBAAgB,CAIlB;IAED,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnE;CAwBF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpE"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACjD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACnG,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACvF;AAqBD,6FAA6F;AAC7F,qBAAa,gBAAiB,YAAW,yBAAyB;;IAMhE,YAAY,GAAG,GAAE,aAAkB,EAAE,OAAO,SAAa,EAAE,cAAc,SAAU,EAYlF;IAED,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAa/C;IAED,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GACtB,gBAAgB,CAOlB;IAED,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAe,GAAG,MAAM,CAM1F;CA4BF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpE"}
package/dist/resolve.js CHANGED
@@ -3,6 +3,10 @@ const URL_LIKE = /^(?:[A-Za-z][A-Za-z\d+.-]*:|\/|\.\.?\/)/;
3
3
  function directory(url) {
4
4
  return new URL("./", url).href;
5
5
  }
6
+ function originRoot(url) {
7
+ const parsed = new URL(url);
8
+ return parsed.origin === "null" ? directory(url) : new URL("/", parsed).href;
9
+ }
6
10
  function mappedTrustRoot(key, target) {
7
11
  return key.endsWith("/") ? target : directory(target);
8
12
  }
@@ -12,9 +16,15 @@ function within(url, root) {
12
16
  /** Resolves HTML Next resource specifiers using an application-owned import map snapshot. */
13
17
  export class ResourceResolver {
14
18
  #baseURL;
19
+ #applicationOrigin;
20
+ #applicationTrustRoot;
15
21
  #imports;
16
- constructor(map = {}, baseURL = "file:///") {
17
- this.#baseURL = new URL(baseURL).href;
22
+ constructor(map = {}, baseURL = "file:///", applicationURL = baseURL) {
23
+ const base = new URL(baseURL);
24
+ const application = new URL(applicationURL);
25
+ this.#baseURL = base.href;
26
+ this.#applicationOrigin = application.origin;
27
+ this.#applicationTrustRoot = originRoot(application.href);
18
28
  this.#imports = new Map(Object.entries(map.imports ?? {}).map(([key, target]) => [
19
29
  key,
20
30
  new URL(target, this.#baseURL).href,
@@ -22,8 +32,11 @@ export class ResourceResolver {
22
32
  }
23
33
  resolveRoot(specifier) {
24
34
  if (URL_LIKE.test(specifier)) {
25
- const url = new URL(specifier, this.#baseURL).href;
26
- return Object.freeze({ url, trustRoot: directory(url) });
35
+ const url = new URL(specifier, this.#baseURL);
36
+ if (url.origin !== this.#applicationOrigin) {
37
+ fail("HL010", `Cross-origin component root \`${url.href}\` requires an application-owned import-map entry.`, this.#baseURL);
38
+ }
39
+ return Object.freeze({ url: url.href, trustRoot: this.#applicationTrustRoot });
27
40
  }
28
41
  return this.#resolveMapped(specifier);
29
42
  }
@@ -31,10 +44,17 @@ export class ResourceResolver {
31
44
  if (!URL_LIKE.test(specifier))
32
45
  return this.#resolveMapped(specifier);
33
46
  const url = new URL(specifier, parentURL).href;
47
+ if (!within(url, parentTrustRoot)) {
48
+ fail("HL003", `Dependency \`${specifier}\` escapes approved root \`${parentTrustRoot}\`.`, parentURL);
49
+ }
34
50
  return Object.freeze({ url, trustRoot: parentTrustRoot });
35
51
  }
36
- assertFinalURL(resource, finalURL) {
37
- return new URL(finalURL, resource.url).href;
52
+ assertFinalURL(resource, finalURL, source = resource.url) {
53
+ const canonical = new URL(finalURL, resource.url).href;
54
+ if (!within(canonical, resource.trustRoot)) {
55
+ fail("HL004", `Final component URL \`${canonical}\` escapes approved root \`${resource.trustRoot}\`.`, source);
56
+ }
57
+ return canonical;
38
58
  }
39
59
  #resolveMapped(specifier) {
40
60
  const exact = this.#imports.get(specifier);
@@ -52,8 +72,12 @@ export class ResourceResolver {
52
72
  fail("HL002", `Bare resource specifier \`${specifier}\` is not mapped by the application.`);
53
73
  }
54
74
  const target = this.#imports.get(prefix);
75
+ const url = new URL(specifier.slice(prefix.length), target).href;
76
+ if (!within(url, target)) {
77
+ fail("HL003", `Mapped resource \`${specifier}\` escapes approved root \`${target}\`.`);
78
+ }
55
79
  return Object.freeze({
56
- url: new URL(specifier.slice(prefix.length), target).href,
80
+ url,
57
81
  trustRoot: target,
58
82
  mapping: prefix,
59
83
  });
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAmBxC,MAAM,QAAQ,GAAG,yCAAyC,CAAC;AAE3D,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,IAAI,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,eAAe,CAAC,GAAW,EAAE,MAAc;IAClD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,MAAM,CAAC,GAAW,EAAE,IAAY;IACvC,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;AAChF,CAAC;AAED,6FAA6F;AAC7F,MAAM,OAAO,gBAAgB;IAClB,QAAQ,CAAS;IACjB,QAAQ,CAA8B;IAE/C,YAAY,GAAG,GAAkB,EAAE,EAAE,OAAO,GAAG,UAAU;QACvD,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CACrB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;YACvD,GAAG;YACH,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI;SACpC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACnD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,iBAAiB,CACf,SAAiB,EACjB,SAAiB,EACjB,eAAuB;QAEvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;YAAE,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC;QAC/C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,cAAc,CAAC,QAA0B,EAAE,QAAgB;QACzD,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,MAAM,CAAC;gBACnB,GAAG,EAAE,KAAK;gBACV,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC;gBAC5C,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;aAC5C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aAC/D,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,EAAE,6BAA6B,SAAS,sCAAsC,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,GAAG,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI;YACzD,SAAS,EAAE,MAAM;YACjB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,IAAY;IACzD,OAAO,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** Where the shared module sits, relative to the package root, and how a component imports it. */
2
+ export declare const VUE_HOST_PATH = "vue/host.ts";
3
+ export declare const VUE_HOST_SPECIFIER = "./host";
4
+ /** Whether a converted component imports the shared module, so a build knows to ship it. */
5
+ export declare function importsVueHost(source: string): boolean;
6
+ /** The shared module's source, formatted the way the converted components are. */
7
+ export declare function vueHostModule(version: string): string;
8
+ //# sourceMappingURL=vue-host.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue-host.d.ts","sourceRoot":"","sources":["../../src/targets/vue-host.ts"],"names":[],"mappings":"AAQA,kGAAkG;AAClG,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAC3C,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEtD;AAyJD,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * The one module every converted Vue component shares: the controller host and the event dispatcher.
3
+ * Both are the same for every component, so they ship once beside the components rather than being
4
+ * repeated in each `<script setup>`; only a component's own values, refs, and event types are
5
+ * generated. It depends on Vue alone.
6
+ */
7
+ import { formatVue } from "./vue-format.js";
8
+ /** Where the shared module sits, relative to the package root, and how a component imports it. */
9
+ export const VUE_HOST_PATH = "vue/host.ts";
10
+ export const VUE_HOST_SPECIFIER = "./host";
11
+ /** Whether a converted component imports the shared module, so a build knows to ship it. */
12
+ export function importsVueHost(source) {
13
+ return new RegExp(`from ['"]${VUE_HOST_SPECIFIER}['"]`).test(source);
14
+ }
15
+ const SOURCE = `
16
+ import { computed, onBeforeUnmount, onMounted, shallowRef, watchEffect } from "vue";
17
+
18
+ /** A reactive value the host reads: Vue's ref, shallowRef, computed, and useTemplateRef all match. */
19
+ export interface Readable<T> {
20
+ readonly value: T;
21
+ }
22
+
23
+ export interface ComponentHostOptions {
24
+ /** The component's root element. */
25
+ readonly root: Readable<HTMLElement | null>;
26
+ /** Dispatches a declared component event. */
27
+ readonly dispatch: (name: string, detail?: unknown) => boolean;
28
+ /** The component's props, which a controller reads through \`host.state\`. */
29
+ readonly props?: Readonly<Record<string, unknown>>;
30
+ /** Template refs, by the ref name the component declared. */
31
+ readonly refs?: Readonly<Record<string, Readable<HTMLElement | null>>>;
32
+ /** Declared state, which a controller reads and writes. */
33
+ readonly state?: Readonly<Record<string, { value: any }>>;
34
+ /** Declared computed values, which a controller reads. */
35
+ readonly computed?: Readonly<Record<string, Readable<unknown>>>;
36
+ }
37
+
38
+ /**
39
+ * The controller host, built from Vue refs, effects, and lifecycle. Reads and writes reach the
40
+ * component's own refs, so a controller's change renders as any other Vue change does, and the
41
+ * effects and listeners it opens close when the component unmounts.
42
+ */
43
+ export function useComponentHost(
44
+ controller: ((host: never) => unknown) | undefined,
45
+ options: ComponentHostOptions,
46
+ ) {
47
+ const { root, dispatch, props, refs = {}, state = {}, computed: computedValues = {} } = options;
48
+ const stops: Array<() => void> = [];
49
+ const read = (name: string): unknown =>
50
+ Object.hasOwn(state, name)
51
+ ? state[name]!.value
52
+ : Object.hasOwn(computedValues, name)
53
+ ? computedValues[name]!.value
54
+ : props?.[name];
55
+ const host = {
56
+ get element(): Element {
57
+ return root.value as Element;
58
+ },
59
+ state: new Proxy({} as Record<string, unknown>, {
60
+ get: (_target, name) => typeof name === "string" ? read(name) : undefined,
61
+ set: (_target, name, value) => {
62
+ if (typeof name !== "string" || !Object.hasOwn(state, name)) {
63
+ throw new TypeError(\`Only declared state is writable; \\\`\${String(name)}\\\` is not.\`);
64
+ }
65
+ state[name]!.value = value;
66
+ return true;
67
+ },
68
+ }),
69
+ refs: Object.defineProperties(
70
+ {},
71
+ Object.fromEntries(
72
+ Object.entries(refs).map(([name, ref]) => [name, { enumerable: true, get: () => ref.value as Element }]),
73
+ ),
74
+ ) as Readonly<Record<string, Element>>,
75
+ elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
76
+ get: (_target, name) => {
77
+ if (typeof name !== "string" || root.value === null) return undefined;
78
+ const form = root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form");
79
+ return form?.elements.namedItem(name) ?? root.value.querySelector(\`[name="\${CSS.escape(name)}"]\`) ?? undefined;
80
+ },
81
+ }),
82
+ signal<T>(initialValue: T) {
83
+ // shallowRef holds the controller's own value and notifies only when it changes.
84
+ const value = shallowRef(initialValue);
85
+ return {
86
+ get: (): T => value.value,
87
+ set: (next: T): void => {
88
+ value.value = next;
89
+ },
90
+ update: (next: (current: T) => T): void => {
91
+ value.value = next(value.value);
92
+ },
93
+ };
94
+ },
95
+ computed<T>(compute: () => T) {
96
+ const value = computed(compute);
97
+ return { get: (): T => value.value };
98
+ },
99
+ effect(run: () => void | (() => void)): () => void {
100
+ const stop = watchEffect((onCleanup) => {
101
+ const cleanup = run();
102
+ if (typeof cleanup === "function") onCleanup(cleanup);
103
+ }, { flush: "post" });
104
+ stops.push(stop);
105
+ return stop;
106
+ },
107
+ on(event: string, listener: EventListener): () => void {
108
+ const element = root.value;
109
+ element?.addEventListener(event, listener);
110
+ const off = (): void => element?.removeEventListener(event, listener);
111
+ stops.push(off);
112
+ return off;
113
+ },
114
+ dispatch,
115
+ };
116
+
117
+ let cleanup: void | (() => void);
118
+ let started: Promise<void> | undefined;
119
+ onMounted(() => {
120
+ started = Promise.resolve(controller?.(host as never)).then((result) => {
121
+ if (typeof result === "function") cleanup = result as () => void;
122
+ });
123
+ });
124
+ onBeforeUnmount(() => {
125
+ for (const stop of stops.splice(0)) stop();
126
+ if (typeof cleanup === "function") cleanup();
127
+ });
128
+ /** \`ready\` settles once the controller has started; a method exposed by the component awaits it. */
129
+ return { host, ready: (): Promise<void> | undefined => started };
130
+ }
131
+
132
+ export interface DispatchOptions {
133
+ /** Each declared event's bubbles, composed, and cancelable. */
134
+ readonly declared?: Readonly<Record<string, EventInit>>;
135
+ /** Each declared event's detail check, from its declared type. */
136
+ readonly checks?: Readonly<Record<string, (detail: unknown) => boolean>>;
137
+ /** Props an event's detail reports, which also emit \`update:<prop>\` for \`v-model:<prop>\`. */
138
+ readonly modeled?: readonly string[];
139
+ }
140
+
141
+ /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
142
+ export function createDispatch(
143
+ root: Readable<HTMLElement | null>,
144
+ emit?: (name: string, detail: unknown) => void,
145
+ options: DispatchOptions = {},
146
+ ): (name: string, detail?: unknown) => boolean {
147
+ const { declared = {}, checks = {}, modeled = [] } = options;
148
+ return (name, detail) => {
149
+ const check = checks[name];
150
+ if (detail !== undefined && check !== undefined && !check(detail)) {
151
+ throw new TypeError(\`HR002: Event \\\`\${name}\\\` detail does not satisfy its declared type.\`);
152
+ }
153
+ emit?.(name, detail);
154
+ if (detail !== null && typeof detail === "object") {
155
+ for (const prop of modeled) {
156
+ if (prop in detail) emit?.(\`update:\${prop}\`, (detail as Record<string, unknown>)[prop]);
157
+ }
158
+ }
159
+ return root.value?.dispatchEvent(
160
+ new CustomEvent(name, { bubbles: true, composed: true, ...declared[name], detail }),
161
+ ) ?? true;
162
+ };
163
+ }
164
+ `;
165
+ /** The shared module's source, formatted the way the converted components are. */
166
+ export function vueHostModule(version) {
167
+ return formatVue(`// Generated by HTML Next ${version} for Vue 3.5. Do not edit.\n${SOURCE.trimStart()}`, "host.ts");
168
+ }
169
+ //# sourceMappingURL=vue-host.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue-host.js","sourceRoot":"","sources":["../../src/targets/vue-host.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,kGAAkG;AAClG,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAC3C,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE3C,4FAA4F;AAC5F,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,IAAI,MAAM,CAAC,YAAY,kBAAkB,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqJd,CAAC;AAEF,kFAAkF;AAClF,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,SAAS,CAAC,6BAA6B,OAAO,+BAA+B,MAAM,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;AACvH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../../src/targets/vue.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,mBAAmB,EAMpB,MAAM,gBAAgB,CAAC;AA6VxB,wBAAgB,WAAW,CAAC,UAAU,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAsMpF"}
1
+ {"version":3,"file":"vue.d.ts","sourceRoot":"","sources":["../../src/targets/vue.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,mBAAmB,EAMpB,MAAM,gBAAgB,CAAC;AAgWxB,wBAAgB,WAAW,CAAC,UAAU,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA4MpF"}