@nextwebwg/htmlkit 1.0.0-alpha.53 → 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 -306
  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 +12 -3
  42. package/dist/routes.d.ts.map +1 -1
  43. package/dist/routes.js +89 -8
  44. package/dist/routes.js.map +1 -1
  45. package/dist/serve.d.ts.map +1 -1
  46. package/dist/serve.js +25 -77
  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 +89 -7
  53. package/dist/types.d.ts.map +1 -1
  54. package/package.json +8 -3
@@ -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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"}