@zenithbuild/cli 0.7.5 → 0.7.7
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/adapters/adapter-netlify.js +0 -8
- package/dist/adapters/adapter-vercel.js +6 -14
- package/dist/adapters/copy-hosted-page-runtime.js +2 -1
- package/dist/build/hoisted-code-transforms.d.ts +4 -1
- package/dist/build/hoisted-code-transforms.js +5 -3
- package/dist/build/page-ir-normalization.d.ts +1 -1
- package/dist/build/page-ir-normalization.js +33 -3
- package/dist/build/page-loop.js +46 -2
- package/dist/dev-build-session/helpers.d.ts +29 -0
- package/dist/dev-build-session/helpers.js +223 -0
- package/dist/dev-build-session/session.d.ts +24 -0
- package/dist/dev-build-session/session.js +204 -0
- package/dist/dev-build-session/state.d.ts +37 -0
- package/dist/dev-build-session/state.js +17 -0
- package/dist/dev-build-session.d.ts +1 -24
- package/dist/dev-build-session.js +1 -434
- package/dist/dev-server/css-state.d.ts +7 -0
- package/dist/dev-server/css-state.js +92 -0
- package/dist/dev-server/not-found.d.ts +23 -0
- package/dist/dev-server/not-found.js +129 -0
- package/dist/dev-server/request-handler.d.ts +1 -0
- package/dist/dev-server/request-handler.js +376 -0
- package/dist/dev-server/route-check.d.ts +9 -0
- package/dist/dev-server/route-check.js +100 -0
- package/dist/dev-server/watcher.d.ts +5 -0
- package/dist/dev-server/watcher.js +216 -0
- package/dist/dev-server.js +123 -924
- package/dist/images/payload.js +4 -0
- package/dist/manifest.js +46 -1
- package/dist/preview/create-preview-server.d.ts +18 -0
- package/dist/preview/create-preview-server.js +71 -0
- package/dist/preview/manifest.d.ts +42 -0
- package/dist/preview/manifest.js +57 -0
- package/dist/preview/paths.d.ts +3 -0
- package/dist/preview/paths.js +38 -0
- package/dist/preview/payload.d.ts +6 -0
- package/dist/preview/payload.js +34 -0
- package/dist/preview/request-handler.d.ts +1 -0
- package/dist/preview/request-handler.js +300 -0
- package/dist/preview/server-runner.d.ts +49 -0
- package/dist/preview/server-runner.js +220 -0
- package/dist/preview/server-script-runner-template.d.ts +1 -0
- package/dist/preview/server-script-runner-template.js +425 -0
- package/dist/preview.d.ts +5 -112
- package/dist/preview.js +7 -1119
- package/dist/resource-response.d.ts +15 -0
- package/dist/resource-response.js +91 -2
- package/dist/server-contract/constants.d.ts +5 -0
- package/dist/server-contract/constants.js +5 -0
- package/dist/server-contract/export-validation.d.ts +5 -0
- package/dist/server-contract/export-validation.js +59 -0
- package/dist/server-contract/json-serializable.d.ts +1 -0
- package/dist/server-contract/json-serializable.js +52 -0
- package/dist/server-contract/resolve.d.ts +15 -0
- package/dist/server-contract/resolve.js +271 -0
- package/dist/server-contract/result-helpers.d.ts +51 -0
- package/dist/server-contract/result-helpers.js +59 -0
- package/dist/server-contract/route-result-validation.d.ts +2 -0
- package/dist/server-contract/route-result-validation.js +73 -0
- package/dist/server-contract/stage.d.ts +6 -0
- package/dist/server-contract/stage.js +22 -0
- package/dist/server-contract.d.ts +6 -62
- package/dist/server-contract.js +9 -493
- package/dist/server-middleware.d.ts +10 -0
- package/dist/server-middleware.js +30 -0
- package/dist/server-output.js +13 -1
- package/dist/server-runtime/node-server.js +25 -3
- package/package.json +3 -3
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compose route middleware left-to-right:
|
|
3
|
+
* withMiddleware(handler, a, b) === a(b(handler))
|
|
4
|
+
*
|
|
5
|
+
* @template {(ctx: unknown) => unknown} T
|
|
6
|
+
* @param {T} handler
|
|
7
|
+
* @param {...((next: T) => T)} middleware
|
|
8
|
+
* @returns {T}
|
|
9
|
+
*/
|
|
10
|
+
export function withMiddleware<T extends (ctx: unknown) => unknown>(handler: T, ...middleware: ((next: T) => T)[]): T;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const WITH_MIDDLEWARE_PREFIX = '[Zenith] withMiddleware(handler, ...middleware)';
|
|
2
|
+
function assertFunction(value, message) {
|
|
3
|
+
if (typeof value !== 'function') {
|
|
4
|
+
throw new Error(message);
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Compose route middleware left-to-right:
|
|
9
|
+
* withMiddleware(handler, a, b) === a(b(handler))
|
|
10
|
+
*
|
|
11
|
+
* @template {(ctx: unknown) => unknown} T
|
|
12
|
+
* @param {T} handler
|
|
13
|
+
* @param {...((next: T) => T)} middleware
|
|
14
|
+
* @returns {T}
|
|
15
|
+
*/
|
|
16
|
+
export function withMiddleware(handler, ...middleware) {
|
|
17
|
+
assertFunction(handler, `${WITH_MIDDLEWARE_PREFIX}: handler must be a function.`);
|
|
18
|
+
if (middleware.length === 0) {
|
|
19
|
+
return handler;
|
|
20
|
+
}
|
|
21
|
+
let composed = handler;
|
|
22
|
+
for (let index = middleware.length - 1; index >= 0; index -= 1) {
|
|
23
|
+
const candidate = middleware[index];
|
|
24
|
+
assertFunction(candidate, `${WITH_MIDDLEWARE_PREFIX}: middleware at index ${index} must be a function.`);
|
|
25
|
+
const wrapped = candidate(composed);
|
|
26
|
+
assertFunction(wrapped, `${WITH_MIDDLEWARE_PREFIX}: middleware at index ${index} must return a function.`);
|
|
27
|
+
composed = wrapped;
|
|
28
|
+
}
|
|
29
|
+
return /** @type {T} */ (composed);
|
|
30
|
+
}
|
package/dist/server-output.js
CHANGED
|
@@ -15,6 +15,15 @@ const SERVER_RUNTIME_FILES = [
|
|
|
15
15
|
from: new URL('./server-contract.js', import.meta.url),
|
|
16
16
|
to: 'server-contract.js'
|
|
17
17
|
},
|
|
18
|
+
{
|
|
19
|
+
from: new URL('./server-contract', import.meta.url),
|
|
20
|
+
to: 'server-contract',
|
|
21
|
+
recursive: true
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
from: new URL('./server-middleware.js', import.meta.url),
|
|
25
|
+
to: 'server-middleware.js'
|
|
26
|
+
},
|
|
18
27
|
{
|
|
19
28
|
from: new URL('./auth/route-auth.js', import.meta.url),
|
|
20
29
|
to: 'auth/route-auth.js'
|
|
@@ -252,7 +261,10 @@ async function copyRuntimeFiles(serverDir) {
|
|
|
252
261
|
for (const file of SERVER_RUNTIME_FILES) {
|
|
253
262
|
const targetPath = join(serverDir, file.to);
|
|
254
263
|
await mkdir(dirname(targetPath), { recursive: true });
|
|
255
|
-
await cp(file.from, targetPath, {
|
|
264
|
+
await cp(file.from, targetPath, {
|
|
265
|
+
force: true,
|
|
266
|
+
recursive: file.recursive === true
|
|
267
|
+
});
|
|
256
268
|
}
|
|
257
269
|
}
|
|
258
270
|
async function copyOptionalFile(sourcePath, targetPath) {
|
|
@@ -116,12 +116,34 @@ async function sendFetchResponse(res, response, method) {
|
|
|
116
116
|
}
|
|
117
117
|
res.setHeader(key, value);
|
|
118
118
|
}
|
|
119
|
-
if (String(method || 'GET').toUpperCase() === 'HEAD') {
|
|
119
|
+
if (String(method || 'GET').toUpperCase() === 'HEAD' || !response.body) {
|
|
120
120
|
res.end();
|
|
121
121
|
return;
|
|
122
122
|
}
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
try {
|
|
124
|
+
const bodyStream = Readable.fromWeb(response.body);
|
|
125
|
+
bodyStream.pipe(res);
|
|
126
|
+
bodyStream.on('error', (err) => {
|
|
127
|
+
logServerException('node response stream failed', err);
|
|
128
|
+
if (!res.headersSent) {
|
|
129
|
+
res.statusCode = 500;
|
|
130
|
+
res.end();
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
res.destroy();
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
catch (err) {
|
|
138
|
+
logServerException('node response pipe creation failed', err);
|
|
139
|
+
if (!res.headersSent) {
|
|
140
|
+
res.statusCode = 500;
|
|
141
|
+
res.end();
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
res.destroy();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
125
147
|
}
|
|
126
148
|
async function sendStaticFile(res, filePath, method) {
|
|
127
149
|
const body = await readFile(filePath);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenithbuild/cli",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.7",
|
|
4
4
|
"description": "Deterministic project orchestrator for Zenith framework",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"prepublishOnly": "npm run build"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@zenithbuild/compiler": "0.7.
|
|
42
|
-
"@zenithbuild/bundler": "0.7.
|
|
41
|
+
"@zenithbuild/compiler": "0.7.7",
|
|
42
|
+
"@zenithbuild/bundler": "0.7.7",
|
|
43
43
|
"picocolors": "^1.1.1",
|
|
44
44
|
"sharp": "^0.34.4"
|
|
45
45
|
},
|