elegance-js 3.0.8 → 3.0.9

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.
@@ -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;AAuGvD,wBAAsB,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAM7D"}
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
@@ -45,7 +45,8 @@ const defaultConfig = {
45
45
  console: {
46
46
  suppressEleganceLogs: false,
47
47
  clearConsoleOnRebuilds: true
48
- }
48
+ },
49
+ runtime: {}
49
50
  };
50
51
  let userConfig;
51
52
  async function loadConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"oxc.d.ts","sourceRoot":"","sources":["../../src/processing/oxc.ts"],"names":[],"mappings":"AAQA,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;AAomBD,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"}
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"}
@@ -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
- if (comment.value.trim() !== "!allow-bundling") continue;
440
- const afterComment = comment.end;
441
- const annotatedNode = body.find((n) => n.start >= afterComment);
442
- if (annotatedNode && annotatedNode.type === "ImportDeclaration") {
443
- allowedImports.add(annotatedNode);
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
- const reachableSpecs = specs.filter((s) => reachable.has(s.local.name));
500
- if (reachableSpecs.length === specs.length) {
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
@@ -1,3 +1,5 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ export type RuntimeOptions = {
3
+ init?: string;
4
+ };
3
5
  //# sourceMappingURL=run.d.ts.map
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":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"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"}
@@ -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
- async function loadServerOptions() {
22
- await loadPaths();
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 config = await getConfig();
81
- SECURITY_HEADERS = createSecurityHeaders(config.security);
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 = {
@@ -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 = await loadServerOptions();
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
  );
@@ -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;AAEhD,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;KAC5B,CAAC;CACL;AAED,OAAO,EAAE,CAAA"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "elegance-js",
3
- "version": "3.0.8",
3
+ "version": "3.0.9",
4
4
  "type": "module",
5
5
  "main": "dist/user-utils.js",
6
6
  "bin": {