@nodetool-ai/config 0.7.0-rc.23 → 0.8.2
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/README.md +50 -0
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/__tests__/credit-policy.test.d.ts +2 -0
- package/dist/__tests__/credit-policy.test.d.ts.map +1 -0
- package/dist/__tests__/credit-policy.test.js +48 -0
- package/dist/__tests__/credit-policy.test.js.map +1 -0
- package/dist/__tests__/env-file.test.d.ts +2 -0
- package/dist/__tests__/env-file.test.d.ts.map +1 -0
- package/dist/__tests__/env-file.test.js +100 -0
- package/dist/__tests__/env-file.test.js.map +1 -0
- package/dist/__tests__/google-workspace.test.d.ts +2 -0
- package/dist/__tests__/google-workspace.test.d.ts.map +1 -0
- package/dist/__tests__/google-workspace.test.js +40 -0
- package/dist/__tests__/google-workspace.test.js.map +1 -0
- package/dist/__tests__/retention.test.d.ts +2 -0
- package/dist/__tests__/retention.test.d.ts.map +1 -0
- package/dist/__tests__/retention.test.js +21 -0
- package/dist/__tests__/retention.test.js.map +1 -0
- package/dist/byte-limits.d.ts +13 -0
- package/dist/byte-limits.d.ts.map +1 -0
- package/dist/byte-limits.js +28 -0
- package/dist/byte-limits.js.map +1 -0
- package/dist/credit-policy.d.ts +25 -0
- package/dist/credit-policy.d.ts.map +1 -0
- package/dist/credit-policy.js +63 -0
- package/dist/credit-policy.js.map +1 -0
- package/dist/deployment.d.ts +8 -0
- package/dist/deployment.d.ts.map +1 -0
- package/dist/deployment.js +19 -0
- package/dist/deployment.js.map +1 -0
- package/dist/env-file.d.ts +33 -0
- package/dist/env-file.d.ts.map +1 -0
- package/dist/env-file.js +83 -0
- package/dist/env-file.js.map +1 -0
- package/dist/environment.d.ts.map +1 -1
- package/dist/environment.js +20 -17
- package/dist/environment.js.map +1 -1
- package/dist/google-workspace.d.ts +3 -0
- package/dist/google-workspace.d.ts.map +1 -0
- package/dist/google-workspace.js +23 -0
- package/dist/google-workspace.js.map +1 -0
- package/dist/index.d.ts +14 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -4
- package/dist/index.js.map +1 -1
- package/dist/logging.d.ts +12 -0
- package/dist/logging.d.ts.map +1 -1
- package/dist/logging.js +65 -28
- package/dist/logging.js.map +1 -1
- package/dist/node-import.d.ts +37 -0
- package/dist/node-import.d.ts.map +1 -0
- package/dist/node-import.js +119 -0
- package/dist/node-import.js.map +1 -0
- package/dist/optional-modules.d.ts +10 -0
- package/dist/optional-modules.d.ts.map +1 -0
- package/dist/optional-modules.js +58 -0
- package/dist/optional-modules.js.map +1 -0
- package/dist/package-asset-registry.d.ts +102 -0
- package/dist/package-asset-registry.d.ts.map +1 -0
- package/dist/package-asset-registry.js +157 -0
- package/dist/package-asset-registry.js.map +1 -0
- package/dist/package-assets.d.ts +52 -0
- package/dist/package-assets.d.ts.map +1 -0
- package/dist/package-assets.js +98 -0
- package/dist/package-assets.js.map +1 -0
- package/dist/paths.d.ts +52 -23
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +166 -47
- package/dist/paths.js.map +1 -1
- package/dist/retention.d.ts +3 -0
- package/dist/retention.d.ts.map +1 -0
- package/dist/retention.js +19 -0
- package/dist/retention.js.map +1 -0
- package/dist/setting-catalog.d.ts +28 -0
- package/dist/setting-catalog.d.ts.map +1 -0
- package/dist/setting-catalog.js +167 -0
- package/dist/setting-catalog.js.map +1 -0
- package/dist/storage-config.d.ts +45 -0
- package/dist/storage-config.d.ts.map +1 -0
- package/dist/storage-config.js +62 -0
- package/dist/storage-config.js.map +1 -0
- package/dist/trace-redaction.d.ts +5 -0
- package/dist/trace-redaction.d.ts.map +1 -0
- package/dist/trace-redaction.js +51 -0
- package/dist/trace-redaction.js.map +1 -0
- package/package.json +23 -8
- package/dist/diagnostics.d.ts +0 -27
- package/dist/diagnostics.d.ts.map +0 -1
- package/dist/diagnostics.js +0 -42
- package/dist/diagnostics.js.map +0 -1
- package/dist/settings.d.ts +0 -29
- package/dist/settings.d.ts.map +0 -1
- package/dist/settings.js +0 -29
- package/dist/settings.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-file.js","sourceRoot":"","sources":["../src/env-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,4DAA4D;AAC5D,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,KAAK,GAAuB,EAAE,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAElD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,EAAE,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,SAAS;QAExB,MAAM,GAAG,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,IAAI,GAAG,KAAK,EAAE;YAAE,SAAS;QAEzB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEvB,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACrD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC9C,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;YACtE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBAClB,OAAO,KAAK;qBACT,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;qBACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;qBACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,EAAS,EAAE,IAAY;IACjD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAmCtD;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK7E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM9C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
|
package/dist/environment.js
CHANGED
|
@@ -3,10 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Loads .env files in order: .env, .env.{NODE_ENV}, .env.{NODE_ENV}.local
|
|
5
5
|
* Later files override earlier ones. System env vars always win.
|
|
6
|
+
*
|
|
7
|
+
* `node:fs` and `node:path` are lazy-loaded so the module graph loads
|
|
8
|
+
* on non-Node runtimes (browser, Edge). `loadEnvironment()` is a no-op
|
|
9
|
+
* outside Node.
|
|
6
10
|
*/
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
|
|
11
|
+
import { loadEnvFile } from "./env-file.js";
|
|
12
|
+
import { IS_NODE, getNodeBuiltinSync } from "./node-import.js";
|
|
13
|
+
const fsSync = getNodeBuiltinSync("node:fs");
|
|
14
|
+
const pathSync = getNodeBuiltinSync("node:path");
|
|
10
15
|
let loaded = false;
|
|
11
16
|
const envStore = new Map();
|
|
12
17
|
/**
|
|
@@ -16,26 +21,24 @@ const envStore = new Map();
|
|
|
16
21
|
* @param rootDir - Directory containing .env files. Defaults to cwd.
|
|
17
22
|
*/
|
|
18
23
|
export function loadEnvironment(rootDir) {
|
|
24
|
+
if (!IS_NODE || !fsSync || !pathSync) {
|
|
25
|
+
// Outside Node — no .env files to load.
|
|
26
|
+
loaded = true;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
19
29
|
const root = rootDir ?? process.cwd();
|
|
20
30
|
const nodeEnv = process.env.NODE_ENV ?? "development";
|
|
21
|
-
// Load files in order: .env, .env.{NODE_ENV}, .env.{NODE_ENV}.local
|
|
22
31
|
const files = [
|
|
23
|
-
resolve(root, ".env"),
|
|
24
|
-
resolve(root, `.env.${nodeEnv}`),
|
|
25
|
-
resolve(root, `.env.${nodeEnv}.local`)
|
|
32
|
+
pathSync.resolve(root, ".env"),
|
|
33
|
+
pathSync.resolve(root, `.env.${nodeEnv}`),
|
|
34
|
+
pathSync.resolve(root, `.env.${nodeEnv}.local`)
|
|
26
35
|
];
|
|
27
|
-
// Start fresh
|
|
28
36
|
envStore.clear();
|
|
29
|
-
// Snapshot system env before loading files
|
|
30
37
|
const systemEnv = { ...process.env };
|
|
31
38
|
for (const file of files) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
for (const [key, value] of Object.entries(result.parsed)) {
|
|
36
|
-
envStore.set(key, value);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
+
const parsed = loadEnvFile(fsSync, file);
|
|
40
|
+
for (const [key, value] of Object.entries(parsed)) {
|
|
41
|
+
envStore.set(key, value);
|
|
39
42
|
}
|
|
40
43
|
}
|
|
41
44
|
// System env always wins — restore original system values on top
|
|
@@ -55,7 +58,7 @@ export function getEnv(key, defaultValue) {
|
|
|
55
58
|
if (loaded) {
|
|
56
59
|
return envStore.get(key) ?? defaultValue;
|
|
57
60
|
}
|
|
58
|
-
return process.env[key] ?? defaultValue;
|
|
61
|
+
return (IS_NODE ? process.env[key] : undefined) ?? defaultValue;
|
|
59
62
|
}
|
|
60
63
|
/**
|
|
61
64
|
* Get a required environment variable. Throws if not set.
|
package/dist/environment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../src/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAO/D,MAAM,MAAM,GAAG,kBAAkB,CAAQ,SAAS,CAAC,CAAC;AACpD,MAAM,QAAQ,GAAG,kBAAkB,CAAU,WAAW,CAAC,CAAC;AAE1D,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC9C,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,wCAAwC;QACxC,MAAM,GAAG,IAAI,CAAC;QACd,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;IAEtD,MAAM,KAAK,GAAG;QACZ,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,OAAO,EAAE,CAAC;QACzC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,OAAO,QAAQ,CAAC;KAChD,CAAC;IAEF,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEjB,MAAM,SAAS,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,YAAqB;IACvD,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC;IAC3C,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,YAAY,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,aAAa,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,MAAM,GAAG,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-workspace.d.ts","sourceRoot":"","sources":["../src/google-workspace.ts"],"names":[],"mappings":"AAcA,mEAAmE;AACnE,wBAAgB,wBAAwB,IAAI,OAAO,CAKlD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Availability gate for the Google Workspace integration (Drive, Gmail, Docs,
|
|
3
|
+
* Sheets, Calendar).
|
|
4
|
+
*
|
|
5
|
+
* The `google` capability module authenticates with the Google access token the
|
|
6
|
+
* user's Supabase Google login hands back — there is no API key to paste. A
|
|
7
|
+
* local install has no login, so the integration would only ever surface an
|
|
8
|
+
* error; it is hidden there instead.
|
|
9
|
+
*
|
|
10
|
+
* Set `NODETOOL_GOOGLE_WORKSPACE=1` to force it on (useful when a local server
|
|
11
|
+
* points at a hosted Supabase project), or `0` to force it off.
|
|
12
|
+
*/
|
|
13
|
+
import { isAuthEnforced } from "./deployment.js";
|
|
14
|
+
/** Whether the Google Workspace capabilities should be offered. */
|
|
15
|
+
export function isGoogleWorkspaceEnabled() {
|
|
16
|
+
const override = process.env["NODETOOL_GOOGLE_WORKSPACE"]?.trim();
|
|
17
|
+
if (override === "1" || override === "true")
|
|
18
|
+
return true;
|
|
19
|
+
if (override === "0" || override === "false")
|
|
20
|
+
return false;
|
|
21
|
+
return isAuthEnforced();
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=google-workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-workspace.js","sourceRoot":"","sources":["../src/google-workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,mEAAmE;AACnE,MAAM,UAAU,wBAAwB;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,IAAI,EAAE,CAAC;IAClE,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACzD,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3D,OAAO,cAAc,EAAE,CAAC;AAC1B,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
export { IS_NODE, safeProcessEnv, safeProcessPlatform, importNodeBuiltin, getNodeBuiltinSync, importNodeBuiltinSync, importHidden } from "./node-import.js";
|
|
1
2
|
export { loadEnvironment, getEnv, requireEnv, resetEnvironment } from "./environment.js";
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
3
|
+
export { getByteLimitEnv } from "./byte-limits.js";
|
|
4
|
+
export { isAuthEnforced } from "./deployment.js";
|
|
5
|
+
export { CREDIT_MODELS_ENV, SIGNUP_CREDITS_ENV, DEFAULT_SIGNUP_CREDITS, creditModelAllowlist, isCreditModelAllowed, signupGrantCredits } from "./credit-policy.js";
|
|
6
|
+
export { isGoogleWorkspaceEnabled } from "./google-workspace.js";
|
|
7
|
+
export { isAutomaticStorageCleanupEnabled } from "./retention.js";
|
|
8
|
+
export { settingCatalog, settingDefinition, type SettingCatalogEntry } from "./setting-catalog.js";
|
|
9
|
+
export { setLogHook, type LogHook, type LogEntry, configureLogging, getLogLevel, createLogger, type LogLevel, type LoggingOptions, type Logger } from "./logging.js";
|
|
10
|
+
export { importOptionalModule } from "./optional-modules.js";
|
|
11
|
+
export { PACKAGE_RUNTIME_ASSETS, PACKAGE_RUNTIME_ASSET_DIRS, SHIPPED_SANDBOX_PACKS_SOURCE_DIR, SHIPPED_SANDBOX_PACKS_BUNDLE_DIR, SHIPPED_SYSTEM_SKILLS_SOURCE_DIR, SHIPPED_SYSTEM_SKILLS_BUNDLE_DIR, findPackageAsset, type PackageAssetRef } from "./package-asset-registry.js";
|
|
12
|
+
export { resolvePackageAssetPath, loadPackageAssetJson, getPackageAssetResolutions, type PackageAssetResolution } from "./package-assets.js";
|
|
13
|
+
export { getNodetoolDataDir, getNodetoolCacheDir, getDefaultDbPath, getPostgresDatabaseUrl, getDefaultVectorstoreDbPath, getDefaultAssetsPath, getDefaultTransformersJsCacheDir, getAssetFilePath, buildAssetUrl, getManagedWorkspacesDir, getManagedWorkspaceDir, managedWorkspaceKey, workspaceStorageKind } from "./paths.js";
|
|
14
|
+
export { loadAssetStorageConfig, loadTempStorageConfig, SIGNED_URL_TTL, type StorageConfig } from "./storage-config.js";
|
|
15
|
+
export { redactPrivateKeys, redactTraceText } from "./trace-redaction.js";
|
|
6
16
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,MAAM,EACN,UAAU,EACV,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,MAAM,EACN,UAAU,EACV,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,UAAU,EACV,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,MAAM,EACZ,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,gCAAgC,EAChC,gCAAgC,EAChC,gCAAgC,EAChC,gCAAgC,EAChC,gBAAgB,EAChB,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAC1B,KAAK,sBAAsB,EAC5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,gCAAgC,EAChC,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
export { IS_NODE, safeProcessEnv, safeProcessPlatform, importNodeBuiltin, getNodeBuiltinSync, importNodeBuiltinSync, importHidden } from "./node-import.js";
|
|
1
2
|
export { loadEnvironment, getEnv, requireEnv, resetEnvironment } from "./environment.js";
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
3
|
+
export { getByteLimitEnv } from "./byte-limits.js";
|
|
4
|
+
export { isAuthEnforced } from "./deployment.js";
|
|
5
|
+
export { CREDIT_MODELS_ENV, SIGNUP_CREDITS_ENV, DEFAULT_SIGNUP_CREDITS, creditModelAllowlist, isCreditModelAllowed, signupGrantCredits } from "./credit-policy.js";
|
|
6
|
+
export { isGoogleWorkspaceEnabled } from "./google-workspace.js";
|
|
7
|
+
export { isAutomaticStorageCleanupEnabled } from "./retention.js";
|
|
8
|
+
export { settingCatalog, settingDefinition } from "./setting-catalog.js";
|
|
9
|
+
export { setLogHook, configureLogging, getLogLevel, createLogger } from "./logging.js";
|
|
10
|
+
export { importOptionalModule } from "./optional-modules.js";
|
|
11
|
+
export { PACKAGE_RUNTIME_ASSETS, PACKAGE_RUNTIME_ASSET_DIRS, SHIPPED_SANDBOX_PACKS_SOURCE_DIR, SHIPPED_SANDBOX_PACKS_BUNDLE_DIR, SHIPPED_SYSTEM_SKILLS_SOURCE_DIR, SHIPPED_SYSTEM_SKILLS_BUNDLE_DIR, findPackageAsset } from "./package-asset-registry.js";
|
|
12
|
+
export { resolvePackageAssetPath, loadPackageAssetJson, getPackageAssetResolutions } from "./package-assets.js";
|
|
13
|
+
export { getNodetoolDataDir, getNodetoolCacheDir, getDefaultDbPath, getPostgresDatabaseUrl, getDefaultVectorstoreDbPath, getDefaultAssetsPath, getDefaultTransformersJsCacheDir, getAssetFilePath, buildAssetUrl, getManagedWorkspacesDir, getManagedWorkspaceDir, managedWorkspaceKey, workspaceStorageKind } from "./paths.js";
|
|
14
|
+
export { loadAssetStorageConfig, loadTempStorageConfig, SIGNED_URL_TTL } from "./storage-config.js";
|
|
15
|
+
export { redactPrivateKeys, redactTraceText } from "./trace-redaction.js";
|
|
6
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,MAAM,EACN,UAAU,EACV,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,MAAM,EACN,UAAU,EACV,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,gBAAgB,CAAC;AAElE,OAAO,EACL,cAAc,EACd,iBAAiB,EAElB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,UAAU,EAGV,gBAAgB,EAChB,WAAW,EACX,YAAY,EAIb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,gCAAgC,EAChC,gCAAgC,EAChC,gCAAgC,EAChC,gCAAgC,EAChC,gBAAgB,EAEjB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,EAE3B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC3B,oBAAoB,EACpB,gCAAgC,EAChC,gBAAgB,EAChB,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/logging.d.ts
CHANGED
|
@@ -17,6 +17,18 @@ export interface Logger {
|
|
|
17
17
|
export interface LoggingOptions {
|
|
18
18
|
level?: LogLevel;
|
|
19
19
|
}
|
|
20
|
+
export interface LogEntry {
|
|
21
|
+
readonly level: LogLevel;
|
|
22
|
+
readonly source: string;
|
|
23
|
+
readonly message: string;
|
|
24
|
+
readonly args: readonly unknown[];
|
|
25
|
+
}
|
|
26
|
+
export type LogHook = (entry: LogEntry) => {
|
|
27
|
+
message: string;
|
|
28
|
+
args: readonly unknown[];
|
|
29
|
+
};
|
|
30
|
+
/** Install the runtime hook without making configuration depend on telemetry. */
|
|
31
|
+
export declare function setLogHook(hook: LogHook | null): void;
|
|
20
32
|
/**
|
|
21
33
|
* Configure the global log level.
|
|
22
34
|
* Priority: explicit option > NODETOOL_LOG_LEVEL env > LOG_LEVEL env > "info"
|
package/dist/logging.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC5C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC5C,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;CACnC;AACD,MAAM,MAAM,OAAO,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAA;CAAE,CAAC;AAIzF,iFAAiF;AACjF,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAoB;AAoC1E;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,GAAE,cAAmB,GAAG,IAAI,CAiBhE;AAED,wCAAwC;AACxC,wBAAgB,WAAW,IAAI,QAAQ,CAEtC;AA2HD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOjD"}
|
package/dist/logging.js
CHANGED
|
@@ -7,7 +7,12 @@
|
|
|
7
7
|
* log.info("Workflow started", { jobId });
|
|
8
8
|
* log.debug("Node executing", { nodeId, type });
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { IS_NODE, getNodeBuiltinSync } from "./node-import.js";
|
|
11
|
+
const fsSync = getNodeBuiltinSync("node:fs");
|
|
12
|
+
let logHook = null;
|
|
13
|
+
let invokingHook = false;
|
|
14
|
+
/** Install the runtime hook without making configuration depend on telemetry. */
|
|
15
|
+
export function setLogHook(hook) { logHook = hook; }
|
|
11
16
|
const VALID_LEVELS = ["debug", "info", "warn", "error"];
|
|
12
17
|
const LEVEL_NUM = {
|
|
13
18
|
debug: 0,
|
|
@@ -16,19 +21,22 @@ const LEVEL_NUM = {
|
|
|
16
21
|
error: 3
|
|
17
22
|
};
|
|
18
23
|
/** Maps Python-style log level names to their JS equivalents. */
|
|
19
|
-
const LEVEL_ALIASES =
|
|
20
|
-
warning
|
|
21
|
-
critical
|
|
22
|
-
|
|
24
|
+
const LEVEL_ALIASES = new Map([
|
|
25
|
+
["warning", "warn"],
|
|
26
|
+
["critical", "error"]
|
|
27
|
+
]);
|
|
23
28
|
function normalizeLevel(raw) {
|
|
24
29
|
const lower = raw.toLowerCase();
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
return (VALID_LEVELS.find((level) => level === lower) ??
|
|
31
|
+
LEVEL_ALIASES.get(lower) ??
|
|
32
|
+
null);
|
|
28
33
|
}
|
|
29
34
|
// Initialize eagerly from env so configureLogging() is optional for entry
|
|
30
35
|
// points (e.g. the WebSocket server) that skip the explicit call.
|
|
31
|
-
|
|
36
|
+
// Use globalThis.process so the module loads on runtimes (browser, Edge)
|
|
37
|
+
// where `process` is undefined.
|
|
38
|
+
const ENV = IS_NODE ? process.env : {};
|
|
39
|
+
let currentLevel = normalizeLevel(ENV["NODETOOL_LOG_LEVEL"] ?? ENV["LOG_LEVEL"] ?? "") ?? "info";
|
|
32
40
|
/** File descriptor for log output. Defaults to stderr; set via NODETOOL_LOG_FILE. */
|
|
33
41
|
let logFd = null;
|
|
34
42
|
/**
|
|
@@ -43,14 +51,14 @@ export function configureLogging(opts = {}) {
|
|
|
43
51
|
currentLevel = opts.level;
|
|
44
52
|
}
|
|
45
53
|
else {
|
|
46
|
-
const envRaw =
|
|
54
|
+
const envRaw = ENV["NODETOOL_LOG_LEVEL"] ?? ENV["LOG_LEVEL"] ?? "info";
|
|
47
55
|
currentLevel = normalizeLevel(envRaw) ?? "info";
|
|
48
56
|
}
|
|
49
|
-
// Open log file if configured (
|
|
50
|
-
const logFile =
|
|
51
|
-
if (logFile && logFd === null) {
|
|
57
|
+
// Open log file if configured (only available on Node)
|
|
58
|
+
const logFile = ENV["NODETOOL_LOG_FILE"];
|
|
59
|
+
if (logFile && logFd === null && fsSync) {
|
|
52
60
|
try {
|
|
53
|
-
logFd = openSync(logFile, "a");
|
|
61
|
+
logFd = fsSync.openSync(logFile, "a");
|
|
54
62
|
}
|
|
55
63
|
catch {
|
|
56
64
|
// Fall back to stderr silently
|
|
@@ -61,8 +69,8 @@ export function configureLogging(opts = {}) {
|
|
|
61
69
|
export function getLogLevel() {
|
|
62
70
|
return currentLevel;
|
|
63
71
|
}
|
|
64
|
-
// Colour support
|
|
65
|
-
const USE_COLOR = process.stderr
|
|
72
|
+
// Colour support — only on Node where process.stderr.isTTY exists.
|
|
73
|
+
const USE_COLOR = IS_NODE && Boolean(process.stderr?.isTTY) && !ENV["NO_COLOR"];
|
|
66
74
|
const C = {
|
|
67
75
|
reset: USE_COLOR ? "\x1b[0m" : "",
|
|
68
76
|
dim: USE_COLOR ? "\x1b[2m" : "",
|
|
@@ -85,21 +93,26 @@ function timestamp() {
|
|
|
85
93
|
const ss = String(d.getSeconds()).padStart(2, "0");
|
|
86
94
|
return `${hh}:${mm}:${ss}`;
|
|
87
95
|
}
|
|
88
|
-
// JSON.stringify replacer that unwraps Error instances — their own fields
|
|
89
|
-
// (`message`, `stack`, `name`) are non-enumerable, so the default serializer
|
|
90
|
-
// produces "{}". Without this, nested errors like `{ provider, error }` lose
|
|
91
|
-
// all diagnostic information in the log output.
|
|
92
96
|
function jsonReplacer(_key, value) {
|
|
93
97
|
if (value instanceof Error) {
|
|
94
|
-
|
|
98
|
+
const serialized = {
|
|
95
99
|
name: value.name,
|
|
96
|
-
message: value.message
|
|
97
|
-
...(value.stack ? { stack: value.stack } : {}),
|
|
98
|
-
...(value.cause !== undefined ? { cause: value.cause } : {})
|
|
100
|
+
message: value.message
|
|
99
101
|
};
|
|
102
|
+
if (value.stack) {
|
|
103
|
+
serialized.stack = value.stack;
|
|
104
|
+
}
|
|
105
|
+
if (value.cause !== undefined) {
|
|
106
|
+
serialized.cause = value.cause;
|
|
107
|
+
}
|
|
108
|
+
return serialized;
|
|
100
109
|
}
|
|
101
110
|
return value;
|
|
102
111
|
}
|
|
112
|
+
/** A log argument worth rendering as JSON instead of stringifying. */
|
|
113
|
+
function isStructured(value) {
|
|
114
|
+
return typeof value === "object" && value !== null;
|
|
115
|
+
}
|
|
103
116
|
function formatArgs(args) {
|
|
104
117
|
if (args.length === 0)
|
|
105
118
|
return "";
|
|
@@ -108,7 +121,7 @@ function formatArgs(args) {
|
|
|
108
121
|
.map((a) => {
|
|
109
122
|
if (a instanceof Error)
|
|
110
123
|
return a.stack ?? a.message;
|
|
111
|
-
if (
|
|
124
|
+
if (isStructured(a)) {
|
|
112
125
|
try {
|
|
113
126
|
return JSON.stringify(a, jsonReplacer);
|
|
114
127
|
}
|
|
@@ -123,17 +136,41 @@ function formatArgs(args) {
|
|
|
123
136
|
function write(level, name, msg, args) {
|
|
124
137
|
if (LEVEL_NUM[level] < LEVEL_NUM[currentLevel])
|
|
125
138
|
return;
|
|
139
|
+
if (logHook && !invokingHook) {
|
|
140
|
+
invokingHook = true;
|
|
141
|
+
try {
|
|
142
|
+
const output = logHook({ level, source: name, message: msg, args });
|
|
143
|
+
msg = output.message;
|
|
144
|
+
args = [...output.args];
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
msg = "Log recording failed";
|
|
148
|
+
args = [];
|
|
149
|
+
}
|
|
150
|
+
finally {
|
|
151
|
+
invokingHook = false;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
126
154
|
const lc = LEVEL_COLOR[level];
|
|
127
155
|
const ts = `${C.dim}${timestamp()}${C.reset}`;
|
|
128
156
|
const lv = `${lc}${level.toUpperCase().padEnd(5)}${C.reset}`;
|
|
129
157
|
const nm = `${C.cyan}${name}${C.reset}`;
|
|
130
158
|
const line = `${ts} | ${lv} | ${nm} | ${msg}${formatArgs(args)}\n`;
|
|
131
|
-
if (logFd !== null) {
|
|
132
|
-
writeSync(logFd, line);
|
|
159
|
+
if (logFd !== null && fsSync) {
|
|
160
|
+
fsSync.writeSync(logFd, line);
|
|
133
161
|
}
|
|
134
|
-
else {
|
|
162
|
+
else if (IS_NODE) {
|
|
135
163
|
process.stderr.write(line);
|
|
136
164
|
}
|
|
165
|
+
else {
|
|
166
|
+
// Browser / V8 isolate — use console.
|
|
167
|
+
const fn = level === "error"
|
|
168
|
+
? console.error
|
|
169
|
+
: level === "warn"
|
|
170
|
+
? console.warn
|
|
171
|
+
: console.log;
|
|
172
|
+
fn(line.trimEnd());
|
|
173
|
+
}
|
|
137
174
|
}
|
|
138
175
|
/**
|
|
139
176
|
* Create a named logger. Mirrors Python's logging.getLogger(__name__).
|
package/dist/logging.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../src/logging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-runtime helpers for loading `node:*` built-ins lazily.
|
|
3
|
+
*
|
|
4
|
+
* Bundlers (Vite, esbuild) try to resolve `node:fs` etc. at build time
|
|
5
|
+
* even when the import is gated behind a runtime check, and `@vite-ignore`
|
|
6
|
+
* comments don't always stop the resolver. We use the `Function`
|
|
7
|
+
* constructor to construct an `import()` call the static analyser never
|
|
8
|
+
* sees.
|
|
9
|
+
*
|
|
10
|
+
* Returns `null` on non-Node runtimes (browser, V8 isolates without
|
|
11
|
+
* Node compat), so callers can fall back to platform-specific paths.
|
|
12
|
+
*/
|
|
13
|
+
export declare const IS_NODE: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* `process` is undefined in browser/edge runtimes, where a bare `process.env`
|
|
16
|
+
* read throws `ReferenceError` — including at module scope, which takes the
|
|
17
|
+
* whole bundle down at import time rather than at the call that wanted the
|
|
18
|
+
* variable. Any module that can end up in a browser graph reads env through
|
|
19
|
+
* this instead.
|
|
20
|
+
*/
|
|
21
|
+
export declare const safeProcessEnv: () => Record<string, string | undefined>;
|
|
22
|
+
/** `process.platform`, or `""` where there is no `process`. */
|
|
23
|
+
export declare const safeProcessPlatform: () => string;
|
|
24
|
+
export declare function importNodeBuiltin<T>(name: string): Promise<T | null>;
|
|
25
|
+
export declare function getNodeBuiltinSync<T>(name: string): T | null;
|
|
26
|
+
/** Alias for `getNodeBuiltinSync` — synchronous counterpart to `importNodeBuiltin`. */
|
|
27
|
+
export declare const importNodeBuiltinSync: typeof getNodeBuiltinSync;
|
|
28
|
+
/**
|
|
29
|
+
* Dynamic import of an arbitrary module specifier hidden from bundler
|
|
30
|
+
* static analysis. Use for native/Node-only npm packages (e.g. `sharp`,
|
|
31
|
+
* `better-sqlite3`) so a browser/edge bundle doesn't try to bundle them.
|
|
32
|
+
*
|
|
33
|
+
* Returns `null` on non-Node runtimes. Throws if the package can't be
|
|
34
|
+
* resolved on Node — callers should catch if the dependency is optional.
|
|
35
|
+
*/
|
|
36
|
+
export declare function importHidden<T>(name: string): Promise<T | null>;
|
|
37
|
+
//# sourceMappingURL=node-import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-import.d.ts","sourceRoot":"","sources":["../src/node-import.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AASH,eAAO,MAAM,OAAO,SAC8C,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,QAAO,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CACD,CAAC;AAEnE,+DAA+D;AAC/D,eAAO,MAAM,mBAAmB,QAAO,MACyB,CAAC;AAsCjE,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAS1E;AAoCD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAsB5D;AAED,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,2BAAqB,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAIrE"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-runtime helpers for loading `node:*` built-ins lazily.
|
|
3
|
+
*
|
|
4
|
+
* Bundlers (Vite, esbuild) try to resolve `node:fs` etc. at build time
|
|
5
|
+
* even when the import is gated behind a runtime check, and `@vite-ignore`
|
|
6
|
+
* comments don't always stop the resolver. We use the `Function`
|
|
7
|
+
* constructor to construct an `import()` call the static analyser never
|
|
8
|
+
* sees.
|
|
9
|
+
*
|
|
10
|
+
* Returns `null` on non-Node runtimes (browser, V8 isolates without
|
|
11
|
+
* Node compat), so callers can fall back to platform-specific paths.
|
|
12
|
+
*/
|
|
13
|
+
export const IS_NODE = typeof process !== "undefined" && process.versions?.node != null;
|
|
14
|
+
/**
|
|
15
|
+
* `process` is undefined in browser/edge runtimes, where a bare `process.env`
|
|
16
|
+
* read throws `ReferenceError` — including at module scope, which takes the
|
|
17
|
+
* whole bundle down at import time rather than at the call that wanted the
|
|
18
|
+
* variable. Any module that can end up in a browser graph reads env through
|
|
19
|
+
* this instead.
|
|
20
|
+
*/
|
|
21
|
+
export const safeProcessEnv = () => typeof process !== "undefined" && process.env ? process.env : {};
|
|
22
|
+
/** `process.platform`, or `""` where there is no `process`. */
|
|
23
|
+
export const safeProcessPlatform = () => typeof process !== "undefined" ? (process.platform ?? "") : "";
|
|
24
|
+
/**
|
|
25
|
+
* Dynamic import that bundlers can't statically resolve.
|
|
26
|
+
*
|
|
27
|
+
* The Function-constructor body hides the `import()` call from Vite /
|
|
28
|
+
* Rollup / esbuild static analysis so they don't try to bundle Node
|
|
29
|
+
* built-ins into a browser graph. At runtime we prefer the constructed
|
|
30
|
+
* function, but in some test loaders (vitest) Function-context dynamic
|
|
31
|
+
* imports don't have access to the loader callback ("A dynamic import
|
|
32
|
+
* callback was not specified.") — in that case we fall back to a plain
|
|
33
|
+
* dynamic `import(name)` evaluated in the calling module's context.
|
|
34
|
+
*/
|
|
35
|
+
const hiddenImport = (() => {
|
|
36
|
+
try {
|
|
37
|
+
// SAFETY: the constructed body is exactly `import(id)`, whose resolution
|
|
38
|
+
// value is always a module namespace object.
|
|
39
|
+
return new Function("id", "return import(id)");
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return (id) => import(/* @vite-ignore */ id);
|
|
43
|
+
}
|
|
44
|
+
})();
|
|
45
|
+
async function tryImport(name) {
|
|
46
|
+
try {
|
|
47
|
+
return await hiddenImport(name);
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
51
|
+
// Fall back to in-context dynamic import for vitest's VM loader.
|
|
52
|
+
if (msg.includes("dynamic import callback")) {
|
|
53
|
+
return await import(/* @vite-ignore */ name);
|
|
54
|
+
}
|
|
55
|
+
throw err;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export async function importNodeBuiltin(name) {
|
|
59
|
+
if (!IS_NODE)
|
|
60
|
+
return null;
|
|
61
|
+
try {
|
|
62
|
+
// SAFETY: `T` is the namespace shape the caller names for `name`; the
|
|
63
|
+
// pairing of specifier and type is the caller's to keep honest.
|
|
64
|
+
return (await tryImport(name));
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/** Whether this Node build exposes the `process.getBuiltinModule` accessor. */
|
|
71
|
+
function hasGetBuiltinModule(proc) {
|
|
72
|
+
return typeof proc?.getBuiltinModule === "function";
|
|
73
|
+
}
|
|
74
|
+
/** Whether this module was loaded from a CJS bundle, which carries `require`. */
|
|
75
|
+
function hasCjsRequire(global) {
|
|
76
|
+
return typeof global.require === "function";
|
|
77
|
+
}
|
|
78
|
+
export function getNodeBuiltinSync(name) {
|
|
79
|
+
if (!IS_NODE)
|
|
80
|
+
return null;
|
|
81
|
+
try {
|
|
82
|
+
// SAFETY: `getBuiltinModule` landed in Node 18.19 and is absent from the
|
|
83
|
+
// `@types/node` `Process` this repo compiles against; the guard below is
|
|
84
|
+
// what decides whether it is really there.
|
|
85
|
+
const proc = globalThis.process;
|
|
86
|
+
if (hasGetBuiltinModule(proc)) {
|
|
87
|
+
// SAFETY: `T` is the namespace shape the caller names for `name`.
|
|
88
|
+
return proc.getBuiltinModule(name);
|
|
89
|
+
}
|
|
90
|
+
// SAFETY: `require` exists only when this module is loaded from a CJS
|
|
91
|
+
// bundle, so it is not on the ESM `globalThis` type; the guard decides.
|
|
92
|
+
const globalScope = globalThis;
|
|
93
|
+
if (hasCjsRequire(globalScope)) {
|
|
94
|
+
// SAFETY: `T` is the export shape the caller names for `name`.
|
|
95
|
+
return globalScope.require(name);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
// fall through to null
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
/** Alias for `getNodeBuiltinSync` — synchronous counterpart to `importNodeBuiltin`. */
|
|
104
|
+
export const importNodeBuiltinSync = getNodeBuiltinSync;
|
|
105
|
+
/**
|
|
106
|
+
* Dynamic import of an arbitrary module specifier hidden from bundler
|
|
107
|
+
* static analysis. Use for native/Node-only npm packages (e.g. `sharp`,
|
|
108
|
+
* `better-sqlite3`) so a browser/edge bundle doesn't try to bundle them.
|
|
109
|
+
*
|
|
110
|
+
* Returns `null` on non-Node runtimes. Throws if the package can't be
|
|
111
|
+
* resolved on Node — callers should catch if the dependency is optional.
|
|
112
|
+
*/
|
|
113
|
+
export async function importHidden(name) {
|
|
114
|
+
if (!IS_NODE)
|
|
115
|
+
return null;
|
|
116
|
+
// SAFETY: `T` is the namespace shape the caller names for `name`.
|
|
117
|
+
return (await tryImport(name));
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=node-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-import.js","sourceRoot":"","sources":["../src/node-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Import an optional dependency from the normal module graph, or — on Node —
|
|
3
|
+
* from a user-managed `node_modules` directory pointed to by
|
|
4
|
+
* NODETOOL_OPTIONAL_NODE_MODULES. The fallback path is Node-only; on
|
|
5
|
+
* browsers / Edge we just re-throw the original import failure.
|
|
6
|
+
*/
|
|
7
|
+
export declare function importOptionalModule<T>(packageName: string, options?: {
|
|
8
|
+
commonJs?: boolean;
|
|
9
|
+
}): Promise<T>;
|
|
10
|
+
//# sourceMappingURL=optional-modules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optional-modules.d.ts","sourceRoot":"","sources":["../src/optional-modules.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,wBAAsB,oBAAoB,CAAC,CAAC,EAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,OAAO,CAAC,CAAC,CAAC,CAyDZ"}
|