@nextwebwg/htmlkit 1.0.0-alpha.40 → 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.
Files changed (50) hide show
  1. package/README.md +21 -12
  2. package/components/breadcrumbs.html +9 -0
  3. package/components/{navigation.html → nav.html} +2 -2
  4. package/components/pager.html +13 -0
  5. package/dist/application.d.ts +10 -2
  6. package/dist/application.d.ts.map +1 -1
  7. package/dist/application.js +148 -45
  8. package/dist/application.js.map +1 -1
  9. package/dist/browser.d.ts +3 -2
  10. package/dist/browser.d.ts.map +1 -1
  11. package/dist/browser.js +23 -22
  12. package/dist/browser.js.map +1 -1
  13. package/dist/build.d.ts +1 -1
  14. package/dist/build.d.ts.map +1 -1
  15. package/dist/build.js +25 -10
  16. package/dist/build.js.map +1 -1
  17. package/dist/bundle-worker.js +2 -1
  18. package/dist/bundle-worker.js.map +1 -1
  19. package/dist/client.d.ts +32 -0
  20. package/dist/client.d.ts.map +1 -0
  21. package/dist/client.js +322 -0
  22. package/dist/client.js.map +1 -0
  23. package/dist/config.d.ts +10 -0
  24. package/dist/config.d.ts.map +1 -1
  25. package/dist/config.js +34 -1
  26. package/dist/config.js.map +1 -1
  27. package/dist/document.d.ts +30 -2
  28. package/dist/document.d.ts.map +1 -1
  29. package/dist/document.js +41 -6
  30. package/dist/document.js.map +1 -1
  31. package/dist/head.d.ts.map +1 -1
  32. package/dist/head.js +7 -5
  33. package/dist/head.js.map +1 -1
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/resource.d.ts +11 -5
  37. package/dist/resource.d.ts.map +1 -1
  38. package/dist/resource.js +32 -12
  39. package/dist/resource.js.map +1 -1
  40. package/dist/routes.d.ts +12 -1
  41. package/dist/routes.d.ts.map +1 -1
  42. package/dist/routes.js +135 -41
  43. package/dist/routes.js.map +1 -1
  44. package/dist/serve.d.ts +2 -2
  45. package/dist/serve.d.ts.map +1 -1
  46. package/dist/serve.js +48 -30
  47. package/dist/serve.js.map +1 -1
  48. package/dist/types.d.ts +82 -5
  49. package/dist/types.d.ts.map +1 -1
  50. package/package.json +3 -3
package/dist/browser.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { createHash } from "node:crypto";
1
2
  import { fileURLToPath } from "node:url";
2
3
  import { existsSync } from "node:fs";
3
4
  import { normalizePath } from "vite";
@@ -6,11 +7,16 @@ const packagedRuntime = fileURLToPath(import.meta.resolve("@nextwebwg/html-next/
6
7
  const sourceRuntime = packagedRuntime.replace(/[/\\]dist[/\\]runtime\.js$/, "/src/runtime.ts");
7
8
  // Workspace source execution can test the same entry before packages have been built.
8
9
  const runtime = import.meta.url.endsWith(".ts") && existsSync(sourceRuntime) ? sourceRuntime : packagedRuntime;
10
+ const client = fileURLToPath(new URL(import.meta.url.endsWith(".ts") ? "./client.ts" : "./client.js", import.meta.url));
9
11
  export function stylesheetSources(components) {
10
12
  const sources = new Map();
11
13
  const shared = collectSharedStylesheets(components.map(component => component.definition));
12
14
  if (shared.length > 0) {
13
- sources.set(normalizePath(fileURLToPath(components[0].definition.source.file)) + ".htmlkit-shared.css", compileComponentGraphStylesForBuild(components.map(component => component.definition)));
15
+ // One stylesheet holds the page's whole graph, so it is named for the graph: pages that share a
16
+ // first component (their layout) would otherwise overwrite each other's styles.
17
+ const files = components.map(component => component.definition.source.file);
18
+ const graph = createHash("sha256").update(files.join("\0")).digest("hex").slice(0, 16);
19
+ sources.set(`${normalizePath(fileURLToPath(files[0]))}.${graph}.htmlkit-shared.css`, compileComponentGraphStylesForBuild(components.map(component => component.definition)));
14
20
  return sources;
15
21
  }
16
22
  for (const component of components) {
@@ -21,8 +27,9 @@ export function stylesheetSources(components) {
21
27
  }
22
28
  return sources;
23
29
  }
24
- /** HTML Next owns adoption, observation, reads, controllers, and teardown. */
25
- export function browserSource(components, base) {
30
+ /** HTML Next owns adoption, observation, reads, controllers, and teardown; client.ts shares them across pages. */
31
+ export function browserSource(components, options, css = []) {
32
+ const { base } = options;
26
33
  const controlled = components.filter(component => component.controller !== undefined);
27
34
  const definitions = components.map(({ definition }) => ({ ...definition, stylesheets: undefined, css: definition.css || definition.stylesheets?.length ? "/* external stylesheet */" : "",
28
35
  source: { file: `${definition.contract.tag}.html` } }));
@@ -46,38 +53,32 @@ export function browserSource(components, base) {
46
53
  return declaration;
47
54
  });
48
55
  }
49
- return `import { registerComponentDefinitions, observeDocument, getComponentHost } from ${JSON.stringify(runtime)};
56
+ const functions = "registerComponentDefinitions, observeDocument, getComponentHost, adoptRenderedProps, lowerDocument, serializeRenderedForm, replaceProjectedNode";
57
+ return `import { ${functions} } from ${JSON.stringify(runtime)};
58
+ import { page } from ${JSON.stringify(client)};
59
+ ${css.map(file => `import ${JSON.stringify(normalizePath(file))};`).join("\n")}
50
60
  ${[...stylesheetSources(components).keys()].map(id => `import ${JSON.stringify(id)};`).join("\n")}
51
61
  ${reads.map((read, i) => `import read${i} from ${JSON.stringify(read.asset + "?url&no-inline")};`).join("\n")}
52
62
  ${controlled.map((component, index) => `import * as controller${index} from ${JSON.stringify(component.controller)};`).join("\n")}
53
- const controllers = { ${controlled.map((component, index) => `${JSON.stringify(component.definition.contract.tag)}: controller${index}`).join(",")} };
54
- const styleStates = ${JSON.stringify(Object.fromEntries(components.map(component => [component.definition.contract.tag, component.styles.stateNames])))};
55
63
  const definitions = ${JSON.stringify(definitions)};
56
64
  ${reads.map((read, i) => `definitions[${read.definition}].declarations[${read.declaration}].source = read${i} + ${JSON.stringify(read.suffix)};`).join("\n")}
57
- registerComponentDefinitions(definitions, document, (_css, definition) => ({ css: '', stateNames: styleStates[definition.contract.tag] ?? [] }));
58
- const initialized = new WeakSet();
59
- export const stop = observeDocument(document, { onConnect(element, definition) {
60
- const controller = controllers[definition.contract.tag];
61
- if (!controller) return;
62
- if (typeof controller.default !== 'function') throw new Error('Controller for ' + definition.contract.tag + ' must export a default function');
63
- const host = getComponentHost(element);
64
- if (initialized.has(host)) return;
65
- initialized.add(host);
66
- return controller.default(host);
67
- } });
68
- document.dispatchEvent(new Event('htmlkit:ready'));
65
+ page({ ${functions} }, ${JSON.stringify(options)}, definitions,
66
+ { ${controlled.map((component, index) => `${JSON.stringify(component.definition.contract.tag)}: controller${index}`).join(",")} },
67
+ ${JSON.stringify(Object.fromEntries(components.map(component => [component.definition.contract.tag, component.styles.stateNames])))});
69
68
  `;
70
69
  }
71
70
  export function browserPlugin(sources, inputs) {
72
71
  return {
73
72
  name: "htmlkit-browser",
74
- resolveId(id) { if (sources.has(id))
75
- return id.endsWith(".css") ? id : `\0${id}`; },
76
- load(id) { return sources.get(id.startsWith("\0") ? id.slice(1) : id); },
73
+ // Vite adds ?direct when a document <link> requests a stylesheet; keep the query for its CSS plugin.
74
+ resolveId(id) { const path = id.split("?")[0]; if (sources.has(path))
75
+ return path.endsWith(".css") ? id : `\0${id}`; },
76
+ load(id) { return sources.get((id.startsWith("\0") ? id.slice(1) : id).split("?")[0]); },
77
77
  generateBundle() {
78
+ // Virtual stylesheets keep their ids for Vite's CSS plugin; report only source files.
78
79
  if (inputs !== undefined)
79
80
  for (const id of this.getModuleIds())
80
- if (!id.startsWith("\0"))
81
+ if (!id.startsWith("\0") && !sources.has(id.split("?")[0]))
81
82
  inputs.add(id);
82
83
  },
83
84
  };
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAe,MAAM,MAAM,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAErG,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAC3F,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,4BAA4B,EAAE,iBAAiB,CAAC,CAAC;AAC/F,sFAAsF;AACtF,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;AAE/G,MAAM,UAAU,iBAAiB,CAAC,UAAwC;IACxE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,qBAAqB,EACrG,mCAAmC,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1F,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE;YAAE,SAAS;QAC1C,MAAM,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,cAAc,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,UAAwC,EAAE,IAAY;IAClF,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE;QACvL,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAiF,EAAE,CAAC;IAC/F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;QACnC,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS;YAAE,SAAS;QACpD,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;YACvE,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,WAAW,CAAC;YACxF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;YAClC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,OAAO,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/F,CAAC;YACD,IAAI,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,WAAW,CAAC;YACzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACpF,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,mFAAmF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;EACjH,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;EAC/F,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;EAC3G,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,yBAAyB,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;wBACzG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;sBAC5H,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;sBACjI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;EAC/C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,IAAI,CAAC,UAAU,kBAAkB,IAAI,CAAC,WAAW,kBAAkB,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;CAa3J,CAAC;AACF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAoC,EAAE,MAAoB;IACtF,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,SAAS,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,EAAE,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACxE,cAAc;YACZ,IAAI,MAAM,KAAK,SAAS;gBAAE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;oBAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;wBAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3G,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAe,MAAM,MAAM,CAAC;AAGlD,OAAO,EAAE,wBAAwB,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAC;AAErG,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAC3F,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,4BAA4B,EAAE,iBAAiB,CAAC,CAAC;AAC/F,sFAAsF;AACtF,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;AAC/G,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAExH,MAAM,UAAU,iBAAiB,CAAC,UAAwC;IACxE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,MAAM,MAAM,GAAG,wBAAwB,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,gGAAgG;QAChG,gFAAgF;QAChF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,KAAK,qBAAqB,EAClF,mCAAmC,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1F,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE;YAAE,SAAS;QAC1C,MAAM,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,cAAc,CAAC;QAC3F,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,aAAa,CAAC,UAAwC,EAAE,OAAsB,EAAE,GAAG,GAAsB,EAAE;IACzH,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC;IACtF,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE;QACvL,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAiF,EAAE,CAAC;IAC/F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;QACnC,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS;YAAE,SAAS;QACpD,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE;YACvE,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,WAAW,CAAC;YACxF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;YAClC,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvD,OAAO,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/F,CAAC;YACD,IAAI,mCAAmC,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,WAAW,CAAC;YACzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACpF,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,MAAM,SAAS,GAAG,iJAAiJ,CAAC;IACpK,OAAO,YAAY,SAAS,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;uBACzC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;EAC3C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;EAC5E,CAAC,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;EAC/F,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;EAC3G,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,yBAAyB,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;sBAC3G,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;EAC/C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,IAAI,CAAC,UAAU,kBAAkB,IAAI,CAAC,WAAW,kBAAkB,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SACnJ,SAAS,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;MAC1C,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5H,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CACpI,CAAC;AACF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAoC,EAAE,MAAoB;IACtF,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,qGAAqG;QACrG,SAAS,CAAC,EAAE,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QACvH,IAAI,CAAC,EAAE,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC;QACzF,cAAc;YACZ,sFAAsF;YACtF,IAAI,MAAM,KAAK,SAAS;gBAAE,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;oBAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;wBAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9I,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/build.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import type { ApplicationOptions, BuildResult } from "./types.js";
2
- export declare function buildApplication(options?: ApplicationOptions): Promise<BuildResult>;
2
+ export declare function buildApplication(input?: ApplicationOptions): Promise<BuildResult>;
3
3
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA6BlE,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,CAwE7F"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA6BlE,wBAAsB,gBAAgB,CAAC,KAAK,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC,CAuF3F"}
package/dist/build.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { lstat, mkdir, mkdtemp, readFile, readdir, realpath, rename, rm, writeFile, copyFile } from "node:fs/promises";
2
2
  import { basename, dirname, join, resolve } from "node:path";
3
- import { createApplication } from "./application.js";
3
+ import { createApplication, headScripts, notFoundPage } from "./application.js";
4
4
  import { browserSource, stylesheetSources } from "./browser.js";
5
5
  import { bundleBrowser } from "./bundle.js";
6
- import { configure, HtmlKitError, within } from "./config.js";
7
- import { documentHTML, escapeHTML } from "./document.js";
6
+ import { configure, globalStylesheets, HtmlKitError, withPlugins, within } from "./config.js";
7
+ import { documentHTML, pagePayload, payloadPath } from "./document.js";
8
8
  import { matchRoute } from "./routes.js";
9
9
  async function exists(path) {
10
10
  try {
@@ -47,7 +47,8 @@ async function canonicalDestination(path) {
47
47
  return join(await canonicalDestination(dirname(path)), basename(path));
48
48
  }
49
49
  }
50
- export async function buildApplication(options = {}) {
50
+ export async function buildApplication(input = {}) {
51
+ const options = await withPlugins(input);
51
52
  const config = configure(options);
52
53
  const root = await realpath(config.root);
53
54
  const destination = await canonicalDestination(config.outDir);
@@ -83,11 +84,18 @@ export async function buildApplication(options = {}) {
83
84
  for (const pathname of routes) {
84
85
  const page = await application.render(pathname);
85
86
  pages.push(page);
86
- sources.set(`virtual:htmlkit/page-${pages.length - 1}`, browserSource(page.components, config.base));
87
+ sources.set(`virtual:htmlkit/page-${pages.length - 1}`, browserSource(page.components, { base: config.base, prefetch: config.prefetch, manifest: config.base + "_htmlkit/manifest.json" }, globalStylesheets(options, config.root)));
87
88
  for (const [id, css] of stylesheetSources(page.components))
88
89
  sources.set(id, css);
89
90
  }
90
91
  const browserInputs = await bundleBrowser({ root: config.root, base: config.base, outDir: stage, sources });
92
+ for (const [path, file] of application.files) {
93
+ const target = join(stage, path);
94
+ if (await exists(target))
95
+ throw new HtmlKitError(`Generated file collision at ${path}.`, file);
96
+ await mkdir(dirname(target), { recursive: true });
97
+ await copyFile(file, target);
98
+ }
91
99
  const manifest = JSON.parse(await readFile(join(stage, "_htmlkit/vite-manifest.json"), "utf8"));
92
100
  const bundles = new Map(Object.values(manifest).filter(chunk => chunk.isEntry).map(chunk => [chunk.name, chunk]));
93
101
  const delivery = [];
@@ -100,7 +108,6 @@ export async function buildApplication(options = {}) {
100
108
  if (entry === undefined)
101
109
  throw new HtmlKitError(`Missing browser bundle for ${page.pathname}.`);
102
110
  const route = matchRoute(application.routes, page.pathname, config.base).route;
103
- delivery.push({ pathname: page.pathname, pageName: route.pageName, browserModule: config.base + entry.file });
104
111
  // Vite's manifest includes CSS from the entry and its shared static imports.
105
112
  const styles = new Set();
106
113
  const seen = new Set();
@@ -109,7 +116,7 @@ export async function buildApplication(options = {}) {
109
116
  return;
110
117
  seen.add(chunk);
111
118
  for (const css of chunk.css ?? [])
112
- styles.add(css);
119
+ styles.add(config.base + css);
113
120
  for (const id of chunk.imports ?? []) {
114
121
  const imported = manifest[id];
115
122
  if (imported !== undefined)
@@ -117,15 +124,23 @@ export async function buildApplication(options = {}) {
117
124
  }
118
125
  };
119
126
  collect(entry);
120
- const assets = [...styles].map(css => `<link rel="stylesheet" href="${escapeHTML(config.base + css)}">`).join("") +
121
- `<script type="module" src="${escapeHTML(config.base + entry.file)}"></script>`;
127
+ // Shared chunks, which links on screen may prefetch; the entry holds the page's own content.
128
+ const chunks = [...seen].filter(chunk => chunk !== entry).map(chunk => config.base + chunk.file);
129
+ delivery.push({ pathname: page.pathname, pageName: route.pageName, browserModule: config.base + entry.file, chunks });
130
+ const assets = { styles: [...styles], modules: [config.base + entry.file] };
122
131
  await mkdir(dirname(path), { recursive: true });
123
132
  await writeFile(path, documentHTML(page.body, page.head, assets));
133
+ const payload = pagePayload(page, assets);
134
+ if (payload !== undefined) {
135
+ const file = join(stage, decodeURIComponent(payloadPath(config.base, page.pathname).slice(config.base.length)));
136
+ await mkdir(dirname(file), { recursive: true });
137
+ await writeFile(file, JSON.stringify(payload));
138
+ }
124
139
  }
125
140
  await rm(join(stage, "_htmlkit/vite-manifest.json"));
126
141
  if (await exists(join(stage, "404.html")))
127
142
  throw new HtmlKitError("Public asset collision: 404.html is generated.");
128
- await writeFile(join(stage, "404.html"), documentHTML('<main><h1>Page not found</h1></main>', { title: "Page not found" }));
143
+ await writeFile(join(stage, "404.html"), notFoundPage(await headScripts(options, config.root)).html);
129
144
  await writeFile(join(stage, "_htmlkit/manifest.json"), JSON.stringify({ version: 1, base: config.base, routes, pages: delivery }, null, 2) + "\n");
130
145
  const previous = await exists(config.outDir);
131
146
  if (previous)
package/dist/build.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,11 @@ import { parentPort, workerData } from "node:worker_threads";
2
2
  import { build } from "vite";
3
3
  import { join } from "node:path";
4
4
  import { browserPlugin } from "./browser.js";
5
+ import { rootAlias } from "./config.js";
5
6
  const options = workerData;
6
7
  try {
7
8
  const inputs = new Set();
8
- await build({ root: options.root, configFile: false, mode: "production", base: options.base, publicDir: join(options.root, "public"),
9
+ await build({ root: options.root, configFile: false, mode: "production", base: options.base, publicDir: join(options.root, "public"), resolve: { alias: rootAlias(options.root) },
9
10
  logLevel: "silent", plugins: [browserPlugin(options.sources, inputs)],
10
11
  build: { outDir: options.outDir, emptyOutDir: false, copyPublicDir: false, assetsDir: "_htmlkit", target: "es2022", manifest: "_htmlkit/vite-manifest.json", modulePreload: false,
11
12
  rolldownOptions: { input: Object.fromEntries([...options.sources.keys()].filter(id => id.startsWith("virtual:htmlkit/")).map((id, i) => [`page-${i}`, id])),
@@ -1 +1 @@
1
- {"version":3,"file":"bundle-worker.js","sourceRoot":"","sources":["../src/bundle-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,OAAO,GAAG,UAA0B,CAAC;AAC3C,IAAI,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;QAClI,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,6BAA6B,EAAE,aAAa,EAAE,KAAK;YAC/K,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzJ,MAAM,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,cAAc,EAAE,2BAA2B,EAAE,cAAc,EAAE,iCAAiC,EAAE,EAAE,EAAE;KAChK,CAAC,CAAC;IACH,yGAAyG;IACzG,UAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC1D,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,yGAAyG;IACzG,UAAW,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC;QAAS,CAAC;IAAC,UAAW,CAAC,KAAK,EAAE,CAAC;AAAC,CAAC"}
1
+ {"version":3,"file":"bundle-worker.js","sourceRoot":"","sources":["../src/bundle-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,MAAM,OAAO,GAAG,UAA0B,CAAC;AAC3C,IAAI,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC/K,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACrE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,6BAA6B,EAAE,aAAa,EAAE,KAAK;YAC/K,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBACzJ,MAAM,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,cAAc,EAAE,2BAA2B,EAAE,cAAc,EAAE,iCAAiC,EAAE,EAAE,EAAE;KAChK,CAAC,CAAC;IACH,yGAAyG;IACzG,UAAW,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC1D,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,yGAAyG;IACzG,UAAW,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7F,CAAC;QAAS,CAAC;IAAC,UAAW,CAAC,KAAK,EAAE,CAAC;AAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * HTMLKit's browser side, shared by every page module in a document. Each page module registers
3
+ * its components here; the first one starts HTML Next's document observation and client
4
+ * navigation. A navigation loads the next page's module and payload, renders its layers with HTML
5
+ * Next as the server does, and swaps only the layers that changed. Anything the payload cannot
6
+ * render falls back to the page's static HTML. docs/client-navigation.md records the design.
7
+ */
8
+ import type { ComponentDefinition } from "@nextwebwg/html-next";
9
+ import type { adoptRenderedProps, ComponentHost, getComponentHost, lowerDocument, observeDocument, registerComponentDefinitions, replaceProjectedNode, serializeRenderedForm } from "@nextwebwg/html-next/runtime";
10
+ export interface Runtime {
11
+ readonly registerComponentDefinitions: typeof registerComponentDefinitions;
12
+ readonly observeDocument: typeof observeDocument;
13
+ readonly getComponentHost: typeof getComponentHost;
14
+ readonly adoptRenderedProps: typeof adoptRenderedProps;
15
+ readonly lowerDocument: typeof lowerDocument;
16
+ readonly serializeRenderedForm: typeof serializeRenderedForm;
17
+ readonly replaceProjectedNode: typeof replaceProjectedNode;
18
+ }
19
+ export interface ClientOptions {
20
+ readonly base: string;
21
+ readonly prefetch: Prefetch;
22
+ /** The build's deployment manifest, which lists each page's shared chunks. Development has none. */
23
+ readonly manifest?: string;
24
+ }
25
+ type Prefetch = "interaction" | "visible" | "none";
26
+ type Controller = {
27
+ readonly default: (host: ComponentHost) => void | (() => void);
28
+ };
29
+ /** Each page module calls this once, when it is first imported. */
30
+ export declare function page(runtime: Runtime, options: ClientOptions, pageDefinitions: readonly ComponentDefinition[], pageControllers: Readonly<Record<string, Controller>>, pageStyleStates: Readonly<Record<string, readonly string[]>>): void;
31
+ export {};
32
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,4BAA4B,EAC7H,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAEpF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,4BAA4B,EAAE,OAAO,4BAA4B,CAAC;IAC3E,QAAQ,CAAC,eAAe,EAAE,OAAO,eAAe,CAAC;IACjD,QAAQ,CAAC,gBAAgB,EAAE,OAAO,gBAAgB,CAAC;IACnD,QAAQ,CAAC,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IACvD,QAAQ,CAAC,aAAa,EAAE,OAAO,aAAa,CAAC;IAC7C,QAAQ,CAAC,qBAAqB,EAAE,OAAO,qBAAqB,CAAC;IAC7D,QAAQ,CAAC,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;CAC5D;AACD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,oGAAoG;IACpG,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AACD,KAAK,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;AACnD,KAAK,UAAU,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;CAAE,CAAC;AAkBrF,mEAAmE;AACnE,wBAAgB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,mBAAmB,EAAE,EAC5G,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CA0B3H"}