@nextwebwg/htmlkit 1.0.0-alpha.52 → 1.0.0-alpha.54

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 (54) hide show
  1. package/README.md +9 -6
  2. package/dist/application.d.ts +15 -1
  3. package/dist/application.d.ts.map +1 -1
  4. package/dist/application.js +152 -311
  5. package/dist/application.js.map +1 -1
  6. package/dist/build.d.ts.map +1 -1
  7. package/dist/build.js +116 -18
  8. package/dist/build.js.map +1 -1
  9. package/dist/bundle-worker.js +17 -7
  10. package/dist/bundle-worker.js.map +1 -1
  11. package/dist/bundle.d.ts +7 -1
  12. package/dist/bundle.d.ts.map +1 -1
  13. package/dist/bundle.js +6 -4
  14. package/dist/bundle.js.map +1 -1
  15. package/dist/cli.js +38 -10
  16. package/dist/cli.js.map +1 -1
  17. package/dist/client.js +11 -11
  18. package/dist/client.js.map +1 -1
  19. package/dist/config.d.ts.map +1 -1
  20. package/dist/config.js +9 -3
  21. package/dist/config.js.map +1 -1
  22. package/dist/document.d.ts +1 -1
  23. package/dist/document.d.ts.map +1 -1
  24. package/dist/document.js.map +1 -1
  25. package/dist/head.d.ts +19 -2
  26. package/dist/head.d.ts.map +1 -1
  27. package/dist/head.js +26 -21
  28. package/dist/head.js.map +1 -1
  29. package/dist/index.d.ts +2 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/links.d.ts +8 -0
  34. package/dist/links.d.ts.map +1 -0
  35. package/dist/links.js +90 -0
  36. package/dist/links.js.map +1 -0
  37. package/dist/resource.d.ts +2 -0
  38. package/dist/resource.d.ts.map +1 -1
  39. package/dist/resource.js +8 -3
  40. package/dist/resource.js.map +1 -1
  41. package/dist/routes.d.ts +13 -5
  42. package/dist/routes.d.ts.map +1 -1
  43. package/dist/routes.js +92 -47
  44. package/dist/routes.js.map +1 -1
  45. package/dist/serve.d.ts.map +1 -1
  46. package/dist/serve.js +26 -78
  47. package/dist/serve.js.map +1 -1
  48. package/dist/server.d.ts +162 -0
  49. package/dist/server.d.ts.map +1 -0
  50. package/dist/server.js +599 -0
  51. package/dist/server.js.map +1 -0
  52. package/dist/types.d.ts +92 -35
  53. package/dist/types.d.ts.map +1 -1
  54. package/package.json +8 -3
package/dist/serve.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { createServer as createHTTPServer } from "node:http";
2
2
  import { createHash } from "node:crypto";
3
- import { readFile, realpath, stat } from "node:fs/promises";
3
+ import { readFile, realpath } from "node:fs/promises";
4
4
  import { dirname, extname, join, resolve } from "node:path";
5
5
  import { createServer, isRunnableDevEnvironment, normalizePath } from "vite";
6
6
  import { createApplication } from "./application.js";
@@ -9,26 +9,11 @@ import { browserPlugin, browserSources, stylesheetSources } from "./browser.js";
9
9
  import { configure, globalStylesheets, HtmlKitError, rootAlias, runHook, withPlugins, within } from "./config.js";
10
10
  import { documentHTML, escapeHTML } from "./document.js";
11
11
  import { matchRoute } from "./routes.js";
12
- const mime = { ".html": "text/html; charset=utf-8", ".js": "text/javascript; charset=utf-8",
13
- ".css": "text/css; charset=utf-8", ".json": "application/json", ".svg": "image/svg+xml", ".png": "image/png", ".jpg": "image/jpeg",
14
- ".webp": "image/webp", ".ico": "image/x-icon", ".woff": "font/woff", ".woff2": "font/woff2", ".txt": "text/plain; charset=utf-8" };
15
- async function listen(server, options, base) {
16
- const host = options.host ?? "127.0.0.1";
17
- await new Promise((done, reject) => { server.once("error", reject); server.listen(options.port ?? 3000, host, done); });
18
- const address = server.address();
19
- if (address === null || typeof address === "string")
20
- throw new HtmlKitError("Server did not obtain a TCP port.");
21
- return { url: `http://${host.includes(":") ? `[${host}]` : host}:${address.port}${base}`,
22
- close: () => new Promise((done, reject) => { server.close(error => error ? reject(error) : done()); server.closeIdleConnections(); }) };
23
- }
12
+ import { listen, mime, nodeRequest, outputPath, sendResponse } from "./server.js";
24
13
  function requestPath(request) {
25
14
  const original = "originalUrl" in request && typeof request.originalUrl === "string" ? request.originalUrl : request.url;
26
15
  return new URL(original ?? "/", "http://localhost").pathname;
27
16
  }
28
- function redirect(response, pathname) {
29
- response.writeHead(308, { location: pathname + "/" });
30
- response.end();
31
- }
32
17
  function methodAllowed(request, response) {
33
18
  if (request.method === "GET" || request.method === "HEAD")
34
19
  return true;
@@ -47,69 +32,28 @@ export async function previewApplication(input = {}) {
47
32
  if (!methodAllowed(request, response))
48
33
  return;
49
34
  const pathname = requestPath(request);
50
- if (pathname === base.slice(0, -1) && base !== "/") {
51
- redirect(response, pathname);
35
+ const found = await outputPath(output, base, pathname);
36
+ if (found === "slash") {
37
+ response.writeHead(308, { location: pathname + "/" });
38
+ response.end();
52
39
  return;
53
40
  }
54
- let file;
55
- if (pathname.startsWith(base)) {
56
- let decoded;
57
- try {
58
- decoded = decodeURIComponent(pathname.slice(base.length));
59
- }
60
- catch {
61
- response.writeHead(400);
62
- response.end();
63
- return;
64
- }
65
- const candidate = resolve(output, decoded || ".");
66
- if (!within(output, candidate)) {
67
- response.writeHead(404);
68
- response.end();
69
- return;
70
- }
71
- try {
72
- const canonical = await realpath(candidate);
73
- if (within(output, canonical)) {
74
- const info = await stat(canonical);
75
- if (info.isDirectory()) {
76
- if (!pathname.endsWith("/")) {
77
- redirect(response, pathname);
78
- return;
79
- }
80
- file = join(canonical, "index.html");
81
- }
82
- else
83
- file = canonical;
84
- }
85
- }
86
- catch (error) {
87
- if (error.code !== "ENOENT")
88
- throw error;
89
- }
41
+ if (found === "invalid") {
42
+ response.writeHead(400);
43
+ response.end();
44
+ return;
90
45
  }
91
- let body;
46
+ // The request server's code is never a file to serve.
47
+ let file = found === undefined || within(join(output, "_htmlkit/server"), found.file) ? undefined : found.file;
92
48
  let status = 200;
93
- if (file !== undefined) {
94
- try {
95
- file = await realpath(file);
96
- if (!within(output, file))
97
- file = undefined;
98
- }
99
- catch (error) {
100
- if (error.code !== "ENOENT")
101
- throw error;
102
- file = undefined;
103
- }
104
- }
105
49
  if (file === undefined) {
106
50
  status = 404;
107
51
  file = await realpath(join(output, "404.html"));
108
52
  if (!within(output, file))
109
53
  throw new HtmlKitError("Missing-page output escapes the deployment directory.");
110
54
  }
111
- body = await readFile(file);
112
- response.writeHead(status, { "content-type": mime[extname(file ?? "404.html")] ?? "application/octet-stream", "content-length": body.length });
55
+ const body = await readFile(file);
56
+ response.writeHead(status, { "content-type": mime[extname(file)] ?? "application/octet-stream", "content-length": body.length });
113
57
  response.end(request.method === "HEAD" ? undefined : body);
114
58
  })().catch(error => { response.writeHead(500, { "content-type": "text/plain" }); response.end(String(error)); });
115
59
  });
@@ -155,7 +99,7 @@ export async function devApplication(input = {}) {
155
99
  await vite.close();
156
100
  throw error;
157
101
  }
158
- // What plugins read for pages and folders, wherever it lives, joins the watched root.
102
+ // What page plugins read, wherever it lives, joins the watched root.
159
103
  vite.watcher.add([...application.watchFiles]);
160
104
  let dirty = false;
161
105
  const change = () => {
@@ -187,24 +131,28 @@ export async function devApplication(input = {}) {
187
131
  file = application.files.get(decodeURIComponent(pathname.slice(config.base.length)));
188
132
  }
189
133
  catch { /* Not a served file. */ }
190
- if (file === undefined && !payload && /\.[A-Za-z0-9]+$/.test(pathname) && matchRoute(application.routes, pathname, config.base) === undefined) {
134
+ // Other files, such as public/ and the application's modules, are Vite's to serve.
135
+ if (file === undefined && !payload && /\.[A-Za-z0-9]+$/.test(pathname) && matchRoute(application.routes, pathname, config.base) === undefined &&
136
+ matchRoute(application.endpoints, pathname, config.base) === undefined) {
191
137
  next();
192
138
  return;
193
139
  }
194
- if (!methodAllowed(request, response))
195
- return;
196
140
  if (file !== undefined) {
141
+ if (!methodAllowed(request, response))
142
+ return;
197
143
  const body = await readFile(file);
198
144
  response.writeHead(200, { "content-type": mime[extname(file)] ?? "application/octet-stream", "content-length": body.length });
199
145
  response.end(request.method === "HEAD" ? undefined : body);
200
146
  return;
201
147
  }
202
- // The page itself comes from the runtime-neutral handler; this adapts Node's request and response.
203
- const page = await application.fetch(new Request(new URL(pathname, "http://localhost"), { method: request.method }));
204
- response.writeHead(page.status, Object.fromEntries(page.headers));
205
- response.end(page.body === null ? undefined : Buffer.from(await page.arrayBuffer()));
148
+ // Middleware, endpoints, and pages come from the runtime-neutral handler; this adapts Node's request and response.
149
+ await sendResponse(await application.fetch(nodeRequest(request, response)), response);
206
150
  })().catch(error => {
207
151
  vite.ssrFixStacktrace(error instanceof Error ? error : new Error(String(error)));
152
+ if (response.headersSent) {
153
+ response.end();
154
+ return;
155
+ }
208
156
  response.writeHead(500, { "content-type": "text/html; charset=utf-8" });
209
157
  response.end(documentHTML(`<main><h1>Application error</h1><pre>${escapeHTML(String(error))}</pre></main>`, { title: "Application error" }));
210
158
  });
package/dist/serve.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,162 @@
1
+ import { type IncomingMessage, type Server, type ServerResponse } from "node:http";
2
+ import { type ComponentDefinition } from "@nextwebwg/html-next";
3
+ import { type PageAssets } from "./document.js";
4
+ import { type HeadSource } from "./head.js";
5
+ import type { ApplicationRoute, ApplicationServer, EndpointModule, EndpointRoute, ManifestRedirect, Middleware, NavigationItem, NavigationNode, NavigationQuery, PagerLinks, RedirectStatus, RenderedHead, RenderedLayer, RouteParam, ServerApplication, ServerModule, StartOptions } from "./types.js";
6
+ export { setRenderWorkers } from "@nextwebwg/html-next/server";
7
+ export type { ApplicationServer, EndpointContext, EndpointHandler, EndpointModule, Middleware, ServerApplication, StartOptions } from "./types.js";
8
+ /** A route as navigation and matching read it, without its source files. */
9
+ export type NavigationRoute = Omit<ApplicationRoute, "component" | "server" | "layouts">;
10
+ type Params = Readonly<Record<string, RouteParam>>;
11
+ /** navigation(), navigationTree(), breadcrumbs(), and pager() over routes and each concrete page URL's route. */
12
+ export declare function createNavigation(base: string, routes: readonly NavigationRoute[], concrete: () => Promise<ReadonlyMap<string, NavigationRoute>>): {
13
+ navigation: (query?: NavigationQuery) => Promise<readonly NavigationItem[]>;
14
+ navigationTree: (query?: NavigationQuery) => Promise<readonly NavigationNode[]>;
15
+ breadcrumbs: (query?: NavigationQuery) => Promise<readonly NavigationItem[]>;
16
+ pager: (query?: NavigationQuery) => Promise<PagerLinks>;
17
+ };
18
+ export type Navigation = ReturnType<typeof createNavigation>;
19
+ /** A page or layout, ready to render: its component, head metadata, and loader. */
20
+ export interface RenderLayer {
21
+ readonly definition: ComponentDefinition;
22
+ readonly metadata: HeadSource;
23
+ readonly module: () => Promise<ServerModule>;
24
+ /** What diagnostics name: the loader file, or the component when a plugin supplies the loader module. */
25
+ readonly origin: string;
26
+ }
27
+ export interface RenderInput {
28
+ readonly base: string;
29
+ readonly route: NavigationRoute;
30
+ readonly params: Params;
31
+ readonly url: URL;
32
+ /** The request a server-rendered page answers; prerendering has none. */
33
+ readonly request?: Request;
34
+ readonly signal: AbortSignal;
35
+ readonly layers: readonly RenderLayer[];
36
+ /** Every component the layers use, for HTML Next's renderer. */
37
+ readonly definitions: readonly ComponentDefinition[];
38
+ readonly scripts: readonly string[];
39
+ readonly navigation: Navigation;
40
+ /** What starts an alias page's canonical link: the configured origin, or "" without one. */
41
+ readonly canonicalOrigin: string;
42
+ /** For the error page: the failure, whose fields it takes as the props it declares. */
43
+ readonly failure?: Failure;
44
+ }
45
+ /** What app/error.html receives: the status and its standard reason phrase, never the error itself. */
46
+ export interface Failure {
47
+ readonly status: 500;
48
+ readonly message: string;
49
+ }
50
+ export declare const serverFailure: Failure;
51
+ /** The page for a failure without app/error.html, or when it fails too. */
52
+ export declare function failurePage({ status, message }: Failure, scripts: readonly string[]): {
53
+ status: 500;
54
+ head: RenderedHead;
55
+ body: string;
56
+ html: string;
57
+ };
58
+ export type Rendered = {
59
+ readonly kind: "page";
60
+ readonly status: number;
61
+ readonly headers: Headers;
62
+ readonly body: string;
63
+ readonly css: string;
64
+ readonly head: RenderedHead;
65
+ readonly layers: readonly RenderedLayer[];
66
+ } | {
67
+ readonly kind: "redirect";
68
+ readonly status: RedirectStatus;
69
+ readonly location: string;
70
+ readonly headers: Headers;
71
+ } | {
72
+ readonly kind: "notFound";
73
+ readonly headers: Headers;
74
+ };
75
+ /** Run the layers' loaders, outermost first, and render their invocations through HTML Next. */
76
+ export declare function renderRoute(input: RenderInput): Promise<Rendered>;
77
+ /** A page's answer: a redirect with its redirect page, its document, or for a payload request its payload (404 when it has none). */
78
+ export declare function pageResponse(page: {
79
+ readonly status: number;
80
+ readonly location?: string;
81
+ readonly body: string;
82
+ readonly head: RenderedHead;
83
+ readonly layers: readonly RenderedLayer[];
84
+ readonly headers?: Headers;
85
+ }, request: Request, payload: boolean, assets?: PageAssets): Response;
86
+ /** How an application answers requests: its routes and endpoints, and how it answers a page. */
87
+ export interface Pipeline<Route extends NavigationRoute> {
88
+ readonly base: string;
89
+ /** Redirects by deployment pathname with a trailing slash. */
90
+ readonly redirects: ReadonlyMap<string, {
91
+ readonly location: string;
92
+ readonly status: RedirectStatus;
93
+ }>;
94
+ readonly routes: readonly Route[];
95
+ readonly endpoints: readonly EndpointRoute[];
96
+ endpoint(route: EndpointRoute): Promise<EndpointModule>;
97
+ readonly middleware?: () => Promise<Middleware>;
98
+ /** A matched page's document or payload. */
99
+ page(route: Route, params: Params, request: Request, payload: boolean): Promise<Response>;
100
+ /** A path no page or endpoint answers. */
101
+ notFound(request: Request, payload: boolean): Promise<Response>;
102
+ }
103
+ /** Answer a request: its payload URL becomes the page's, then middleware, then redirects, endpoints, and pages. */
104
+ export declare function respond<Route extends NavigationRoute>(app: Pipeline<Route>, request: Request): Promise<Response>;
105
+ /** A build's request server data, which the build writes into _htmlkit/server/entry.js. */
106
+ export interface ServerData {
107
+ readonly version: 1;
108
+ readonly base: string;
109
+ readonly redirects: readonly ManifestRedirect[];
110
+ readonly routes: readonly NavigationRoute[];
111
+ /** Each concrete page URL and its route's index, for navigation. */
112
+ readonly catalog: readonly (readonly [string, number])[];
113
+ readonly scripts: readonly string[];
114
+ /** What starts an alias page's canonical link: the configured origin, or "" without one. */
115
+ readonly canonicalOrigin: string;
116
+ /** Each server-rendered route, by its index in routes. */
117
+ readonly pages: Readonly<Record<string, ServerPage>>;
118
+ /** app/error.html, which answers a failed request, when anything renders on request. */
119
+ readonly error?: ServerPage & {
120
+ readonly route: NavigationRoute;
121
+ };
122
+ readonly endpoints: readonly (EndpointRoute & {
123
+ readonly module: string;
124
+ })[];
125
+ readonly middleware?: string;
126
+ }
127
+ /** A route the server renders: each layer's component, head metadata, and loader module, every component they use, and their browser delivery. */
128
+ export interface ServerPage {
129
+ readonly layers: readonly {
130
+ readonly definition: ComponentDefinition;
131
+ readonly metadata: HeadSource;
132
+ readonly module?: string;
133
+ readonly origin: string;
134
+ }[];
135
+ readonly definitions: readonly ComponentDefinition[];
136
+ readonly assets: PageAssets;
137
+ }
138
+ export declare const mime: Readonly<Record<string, string>>;
139
+ /**
140
+ * What a path names in a build's output: a file, a directory's index.html (page), a directory without its
141
+ * trailing slash ("slash"), an undecodable path ("invalid"), or nothing. Nothing outside the output resolves.
142
+ */
143
+ export declare function outputPath(output: string, base: string, pathname: string): Promise<{
144
+ readonly file: string;
145
+ readonly page: boolean;
146
+ } | "slash" | "invalid" | undefined>;
147
+ /**
148
+ * The application a build's server entry exports: data and module loaders the build wrote, and the
149
+ * output directory two levels above the entry. Prerendered pages and assets come from the output's files.
150
+ */
151
+ export declare function serverApplication(entry: string, data: ServerData, modules: Readonly<Record<string, () => Promise<unknown>>>): Promise<ServerApplication>;
152
+ /** A native Request for a Node request: its method, URL, headers, and body, aborted when the response closes. */
153
+ export declare function nodeRequest(incoming: IncomingMessage, outgoing: ServerResponse): Request;
154
+ /** Write a Response to a Node response, streaming its body. */
155
+ export declare function sendResponse(response: Response, outgoing: ServerResponse): Promise<void>;
156
+ export declare function listen(server: Server, options: {
157
+ readonly host?: string;
158
+ readonly port?: number;
159
+ }, base: string): Promise<ApplicationServer>;
160
+ /** Serve a build's server entry on Node: `htmlkit start`. */
161
+ export declare function startApplication(options?: StartOptions): Promise<ApplicationServer>;
162
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}