elegance-js 3.0.8 → 3.0.10
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/config.d.ts.map +1 -1
- package/dist/config.js +2 -1
- package/dist/processing/oxc.d.ts.map +1 -1
- package/dist/processing/oxc.js +21 -15
- package/dist/run.d.ts +3 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +9 -9
- package/dist/types/config.d.ts +2 -0
- package/dist/types/config.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,KAAK,YAAY,CAAC,CAAC,IAAI;KAClB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAChD,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACf,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC/B,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9B,CAAC;AAEF,KAAK,kBAAkB,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,KAAK,YAAY,CAAC,CAAC,IAAI;KAClB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAChD,CAAC,CAAC,CAAC,CAAC,GACJ,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACf,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAC/B,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9B,CAAC;AAEF,KAAK,kBAAkB,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAyGvD,wBAAsB,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAM7D"}
|
package/dist/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oxc.d.ts","sourceRoot":"","sources":["../../src/processing/oxc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oxc.d.ts","sourceRoot":"","sources":["../../src/processing/oxc.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,IAAI;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACvB;AAwGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CActE;AAyFD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAuBhE;AA+mBD,wBAAgB,eAAe,CAC3B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACjB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAQ/C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAKvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA0BzD;AAwSD,wBAAgB,oBAAoB,CAChC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACjB,MAAM,CAiDR;AAgHD,wBAAgB,8BAA8B,CAC1C,aAAa,EAAI,MAAM,EACvB,eAAe,EAAE,MAAM,EAAE,GAC1B,IAAI,CAEN;AAED,wBAAgB,uBAAuB,CACnC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,EACrB,eAAe,EAAE,MAAM,EAAE,GAC1B,MAAM,CA0CR"}
|
package/dist/processing/oxc.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { parseSync } from "oxc-parser";
|
|
2
2
|
import { ALL_TAGS } from "./taglist.js";
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
|
-
import { isBuiltin } from "node:module";
|
|
5
4
|
import { richError } from "../error.js";
|
|
6
5
|
const ALL_TAGS_SET = new Set(ALL_TAGS);
|
|
7
6
|
const CHILD_KEYS = {
|
|
@@ -431,28 +430,32 @@ If that is not the case, remove the reference that cause their inclusion.`,
|
|
|
431
430
|
});
|
|
432
431
|
}
|
|
433
432
|
}
|
|
433
|
+
const forcedImports = /* @__PURE__ */ new Set();
|
|
434
434
|
{
|
|
435
435
|
const programComments = ast.comments ?? [];
|
|
436
436
|
const allowedImports = /* @__PURE__ */ new Set();
|
|
437
437
|
for (const comment of programComments) {
|
|
438
438
|
if (comment.type !== "Line") continue;
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
439
|
+
const trimmed = comment.value.trim();
|
|
440
|
+
if (trimmed === "!allow-bundling") {
|
|
441
|
+
const afterComment = comment.end;
|
|
442
|
+
const annotatedNode = body.find((n) => n.start >= afterComment);
|
|
443
|
+
if (annotatedNode && annotatedNode.type === "ImportDeclaration") {
|
|
444
|
+
allowedImports.add(annotatedNode);
|
|
445
|
+
}
|
|
446
|
+
} else if (trimmed === "!force-bundling") {
|
|
447
|
+
const afterComment = comment.end;
|
|
448
|
+
const annotatedNode = body.find((n) => n.start >= afterComment);
|
|
449
|
+
if (annotatedNode && annotatedNode.type === "ImportDeclaration") {
|
|
450
|
+
forcedImports.add(annotatedNode);
|
|
451
|
+
}
|
|
444
452
|
}
|
|
445
453
|
}
|
|
446
454
|
const violations = [];
|
|
447
455
|
for (const node of body) {
|
|
448
456
|
if (node.type !== "ImportDeclaration") continue;
|
|
449
457
|
const specs = node.specifiers ?? [];
|
|
450
|
-
if (specs.length === 0)
|
|
451
|
-
if (!allowedImports.has(node)) {
|
|
452
|
-
violations.push({ importNode: node });
|
|
453
|
-
}
|
|
454
|
-
continue;
|
|
455
|
-
}
|
|
458
|
+
if (specs.length === 0) continue;
|
|
456
459
|
const hasReachable = specs.some((s) => reachable.has(s.local.name));
|
|
457
460
|
if (!hasReachable) continue;
|
|
458
461
|
if (!allowedImports.has(node)) {
|
|
@@ -496,13 +499,16 @@ Every import that survives into the client bundle must be explicitly allowed.`,
|
|
|
496
499
|
for (const node of body) {
|
|
497
500
|
if (node.type === "ImportDeclaration") {
|
|
498
501
|
const specs = node.specifiers ?? [];
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
if (specs.length === 0 && isBuiltin(node.source.value)) {
|
|
502
|
+
if (specs.length === 0) {
|
|
503
|
+
if (!forcedImports.has(node)) {
|
|
502
504
|
removalEdits.push({ start: node.start, end: trailingEnd(node.end), replacement: "" });
|
|
503
505
|
}
|
|
504
506
|
continue;
|
|
505
507
|
}
|
|
508
|
+
const reachableSpecs = specs.filter((s) => reachable.has(s.local.name));
|
|
509
|
+
if (reachableSpecs.length === specs.length) {
|
|
510
|
+
continue;
|
|
511
|
+
}
|
|
506
512
|
if (reachableSpecs.length === 0) {
|
|
507
513
|
removalEdits.push({ start: node.start, end: trailingEnd(node.end), replacement: "" });
|
|
508
514
|
} else {
|
package/dist/run.d.ts
CHANGED
package/dist/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":";AASA,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAiB1E,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAc,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAkBrF,MAAM,MAAM,aAAa,GAAG;IACxB,QAAQ,CAAC,EAAc,OAAO,CAAC;IAC/B,iBAAiB,CAAC,EAAK,OAAO,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,IAAI,CAAC,EAAkB,MAAM,CAAC;CACjC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server/server.js
CHANGED
|
@@ -18,11 +18,8 @@ import { getConfig } from "../config.js";
|
|
|
18
18
|
import { createSecurityHeaders } from "./security.js";
|
|
19
19
|
import { isRichError, printError, richError } from "../error.js";
|
|
20
20
|
import { logger } from "../logger.js";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const config = await getConfig();
|
|
24
|
-
return config.server;
|
|
25
|
-
}
|
|
21
|
+
const config = await getConfig();
|
|
22
|
+
await loadPaths();
|
|
26
23
|
let serverOptions;
|
|
27
24
|
const IS_DEV = process.env.ELEGANCE_DEV_MODE === "dev";
|
|
28
25
|
class LRU {
|
|
@@ -77,8 +74,8 @@ const BROTLI_PARAMS = { params: { [zlibConstants.BROTLI_PARAM_QUALITY]: 4 } };
|
|
|
77
74
|
const BODY_TIMEOUT_MS = parseInt(process.env.BODY_TIMEOUT_MS ?? "10000", 10);
|
|
78
75
|
let SECURITY_HEADERS;
|
|
79
76
|
async function initSecurityHeaders() {
|
|
80
|
-
const
|
|
81
|
-
SECURITY_HEADERS = createSecurityHeaders(
|
|
77
|
+
const config2 = await getConfig();
|
|
78
|
+
SECURITY_HEADERS = createSecurityHeaders(config2.security);
|
|
82
79
|
}
|
|
83
80
|
function buildCachedFileHeaders(mime, etag, rawLen, gzipLen, brotliLen, cacheControl = "public, max-age=31536000, immutable") {
|
|
84
81
|
const base = {
|
|
@@ -193,7 +190,7 @@ async function warmDynamicCaches(manifest) {
|
|
|
193
190
|
const pRoutes = [];
|
|
194
191
|
await Promise.all(manifest.routes.map(async (entry) => {
|
|
195
192
|
const route = routeEntryToMatched(entry);
|
|
196
|
-
if (entry.kind === "enumerated") {
|
|
193
|
+
if (entry.kind === "enumerated" || entry.kind === "dynamic") {
|
|
197
194
|
pRoutes.push(route);
|
|
198
195
|
} else {
|
|
199
196
|
sMap.set(entry.pathname, route);
|
|
@@ -826,7 +823,10 @@ async function startMainServer() {
|
|
|
826
823
|
throw new Error("Could not find an available port");
|
|
827
824
|
}
|
|
828
825
|
async function serve() {
|
|
829
|
-
serverOptions =
|
|
826
|
+
serverOptions = config.server;
|
|
827
|
+
if (config.runtime.init) {
|
|
828
|
+
await import(config.runtime.init);
|
|
829
|
+
}
|
|
830
830
|
const manifest = JSON.parse(
|
|
831
831
|
await readFile(join(OUT_DIR, "paths.json"), "utf-8")
|
|
832
832
|
);
|
package/dist/types/config.d.ts
CHANGED
|
@@ -2,12 +2,14 @@ import type { OutputOptions } from "../constants";
|
|
|
2
2
|
import type { SecurityHeadersOptions } from "../server/security";
|
|
3
3
|
import type { ServerOptions } from "../server/server";
|
|
4
4
|
import type { ConsoleOptions } from "../logger";
|
|
5
|
+
import type { RuntimeOptions } from "../run";
|
|
5
6
|
declare global {
|
|
6
7
|
type EleganceConfig = {
|
|
7
8
|
security?: SecurityHeadersOptions;
|
|
8
9
|
output?: OutputOptions;
|
|
9
10
|
server?: ServerOptions;
|
|
10
11
|
console?: ConsoleOptions;
|
|
12
|
+
runtime?: RuntimeOptions;
|
|
11
13
|
};
|
|
12
14
|
}
|
|
13
15
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,CAAC,MAAM,CAAC;IACX,KAAK,cAAc,GAAG;QAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;QAClC,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,OAAO,CAAC,EAAE,cAAc,CAAC;QACzB,OAAO,CAAC,EAAE,cAAc,CAAC;KAC5B,CAAC;CACL;AAED,OAAO,EAAE,CAAA"}
|