varlock 0.2.0 → 0.2.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 +2 -0
- package/dist/auto-load.js +8 -8
- package/dist/{chunk-RZT65DRA.js → chunk-35SAMS66.js} +4 -4
- package/dist/{chunk-RZT65DRA.js.map → chunk-35SAMS66.js.map} +1 -1
- package/dist/{chunk-XVVLI2E7.js → chunk-3FLO3UFZ.js} +17 -11
- package/dist/chunk-3FLO3UFZ.js.map +1 -0
- package/dist/{chunk-FPQYEKFF.js → chunk-4N3YR2QQ.js} +4 -4
- package/dist/{chunk-FPQYEKFF.js.map → chunk-4N3YR2QQ.js.map} +1 -1
- package/dist/{chunk-XN24GZXQ.js → chunk-6PEHRAEP.js} +3 -8
- package/dist/{chunk-XN24GZXQ.js.map → chunk-6PEHRAEP.js.map} +1 -1
- package/dist/chunk-BHHYQ7SH.js +18 -0
- package/dist/{chunk-7SH6C6WJ.js.map → chunk-BHHYQ7SH.js.map} +1 -1
- package/dist/{chunk-RD44SH5U.js → chunk-FETFVFG5.js} +117 -23
- package/dist/chunk-FETFVFG5.js.map +1 -0
- package/dist/{chunk-RFRTLWK3.js → chunk-HPUQ2CCN.js} +6 -6
- package/dist/{chunk-RFRTLWK3.js.map → chunk-HPUQ2CCN.js.map} +1 -1
- package/dist/{chunk-FGMXIEFA.js → chunk-MIBOBKI4.js} +3 -3
- package/dist/{chunk-FGMXIEFA.js.map → chunk-MIBOBKI4.js.map} +1 -1
- package/dist/chunk-N2HZMIGS.js +1532 -0
- package/dist/chunk-N2HZMIGS.js.map +1 -0
- package/dist/{chunk-NDRSG3XS.js → chunk-N4REMPVX.js} +23 -14
- package/dist/chunk-N4REMPVX.js.map +1 -0
- package/dist/{chunk-FUDH2TTI.js → chunk-TVFOIGJP.js} +3 -3
- package/dist/{chunk-FUDH2TTI.js.map → chunk-TVFOIGJP.js.map} +1 -1
- package/dist/{chunk-5IMCRQTM.js → chunk-TYIS6T2T.js} +4 -4
- package/dist/{chunk-5IMCRQTM.js.map → chunk-TYIS6T2T.js.map} +1 -1
- package/dist/chunk-UDXNNRWI.js +1386 -0
- package/dist/chunk-UDXNNRWI.js.map +1 -0
- package/dist/{chunk-HPNRKYVF.js → chunk-UIOEEWG5.js} +4 -4
- package/dist/{chunk-HPNRKYVF.js.map → chunk-UIOEEWG5.js.map} +1 -1
- package/dist/{chunk-MSRPV5WH.js → chunk-WAMBVZL2.js} +4 -4
- package/dist/{chunk-MSRPV5WH.js.map → chunk-WAMBVZL2.js.map} +1 -1
- package/dist/{chunk-L5REVVXG.js → chunk-ZUNB52KY.js} +9 -4
- package/dist/chunk-ZUNB52KY.js.map +1 -0
- package/dist/{chunk-NSY7JMFV.js → chunk-ZXJ4CEDK.js} +4 -4
- package/dist/{chunk-NSY7JMFV.js.map → chunk-ZXJ4CEDK.js.map} +1 -1
- package/dist/cli/cli-executable.js +18 -18
- package/dist/cli/cli-executable.js.map +1 -1
- package/dist/dotenv-compat.js +8 -8
- package/dist/help.command-MLH2WA5Y.js +5 -0
- package/dist/{help.command-B7VWA53B.js.map → help.command-MLH2WA5Y.js.map} +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +9 -9
- package/dist/init.command-DLPZ3R4T.js +8 -0
- package/dist/{init.command-AVNYY5CK.js.map → init.command-DLPZ3R4T.js.map} +1 -1
- package/dist/lib/exec-sync-varlock.js +2 -2
- package/dist/load.command-4G5POJYR.js +8 -0
- package/dist/{load.command-7CCTFAYS.js.map → load.command-4G5POJYR.js.map} +1 -1
- package/dist/run.command-L5LLHOW3.js +9 -0
- package/dist/{run.command-NGRKCLWP.js.map → run.command-L5LLHOW3.js.map} +1 -1
- package/dist/runtime/env.js +3 -3
- package/dist/runtime/patch-console.js +4 -4
- package/dist/runtime/patch-response.js +4 -4
- package/dist/runtime/patch-server-response.js +4 -4
- package/dist/telemetry.command-JF72FOYJ.js +8 -0
- package/dist/{telemetry.command-756WXWYK.js.map → telemetry.command-JF72FOYJ.js.map} +1 -1
- package/package.json +34 -15
- package/dist/chunk-33ROL4J5.js +0 -1013
- package/dist/chunk-33ROL4J5.js.map +0 -1
- package/dist/chunk-7SH6C6WJ.js +0 -18
- package/dist/chunk-L5REVVXG.js.map +0 -1
- package/dist/chunk-L5USEQO6.js +0 -1281
- package/dist/chunk-L5USEQO6.js.map +0 -1
- package/dist/chunk-NDRSG3XS.js.map +0 -1
- package/dist/chunk-RD44SH5U.js.map +0 -1
- package/dist/chunk-XVVLI2E7.js.map +0 -1
- package/dist/en-US-TSGNDI2P.js +0 -22
- package/dist/en-US-TSGNDI2P.js.map +0 -1
- package/dist/help.command-B7VWA53B.js +0 -5
- package/dist/init.command-AVNYY5CK.js +0 -8
- package/dist/ja-JP-UBPCQAAD.js +0 -22
- package/dist/ja-JP-UBPCQAAD.js.map +0 -1
- package/dist/load.command-7CCTFAYS.js +0 -8
- package/dist/run.command-NGRKCLWP.js +0 -9
- package/dist/telemetry.command-756WXWYK.js +0 -8
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Varlock
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/varlock) [](https://www.npmjs.com/package/varlock) [](https://github.com/dmno-dev/varlock) [](https://github.com/dmno-dev/varlock/blob/main/LICENSE)
|
|
4
|
+
|
|
3
5
|
> See https://varlock.dev for docs and examples.
|
|
4
6
|
|
|
5
7
|
_A sample `.env.schema`_:
|
package/dist/auto-load.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
8
|
-
import './chunk-
|
|
1
|
+
import './chunk-BHHYQ7SH.js';
|
|
2
|
+
import './chunk-UIOEEWG5.js';
|
|
3
|
+
import './chunk-ZXJ4CEDK.js';
|
|
4
|
+
import './chunk-TVFOIGJP.js';
|
|
5
|
+
import './chunk-TYIS6T2T.js';
|
|
6
|
+
import './chunk-WAMBVZL2.js';
|
|
7
|
+
import './chunk-MIBOBKI4.js';
|
|
8
|
+
import './chunk-6PEHRAEP.js';
|
|
9
9
|
//# sourceMappingURL=auto-load.js.map
|
|
10
10
|
//# sourceMappingURL=auto-load.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { define } from './chunk-
|
|
2
|
-
import { __name } from './chunk-
|
|
1
|
+
import { define } from './chunk-UDXNNRWI.js';
|
|
2
|
+
import { __name } from './chunk-6PEHRAEP.js';
|
|
3
3
|
|
|
4
4
|
// src/cli/commands/help.command.ts
|
|
5
5
|
var commandSpec = define({
|
|
@@ -11,5 +11,5 @@ var commandFn = /* @__PURE__ */ __name(async (ctx) => {
|
|
|
11
11
|
}, "commandFn");
|
|
12
12
|
|
|
13
13
|
export { commandFn, commandSpec };
|
|
14
|
-
//# sourceMappingURL=chunk-
|
|
15
|
-
//# sourceMappingURL=chunk-
|
|
14
|
+
//# sourceMappingURL=chunk-35SAMS66.js.map
|
|
15
|
+
//# sourceMappingURL=chunk-35SAMS66.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/commands/help.command.ts"],"names":[],"mappings":";;;;AAGO,IAAM,cAAc,MAAA,CAAO;AAAA,EAChC,IAAA,EAAM,MAAA;AAAA,EACN,WAAA,EAAa,4BAAA;AAAA,EACb,MAAM;AACR,CAAC;AAEM,IAAM,SAAA,iCAA6D,GAAA,KAAQ;AAElF,CAAA,EAFmE,WAAA","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/help.command.ts"],"names":[],"mappings":";;;;AAGO,IAAM,cAAc,MAAA,CAAO;AAAA,EAChC,IAAA,EAAM,MAAA;AAAA,EACN,WAAA,EAAa,4BAAA;AAAA,EACb,MAAM;AACR,CAAC;AAEM,IAAM,SAAA,iCAA6D,GAAA,KAAQ;AAElF,CAAA,EAFmE,WAAA","file":"chunk-35SAMS66.js","sourcesContent":["import { define } from 'gunshi';\nimport { type TypedGunshiCommandFn } from '../helpers/gunshi-type-utils';\n\nexport const commandSpec = define({\n name: 'help',\n description: 'Show help info for varlock',\n args: {},\n});\n\nexport const commandFn: TypedGunshiCommandFn<typeof commandSpec> = async (ctx) => {\n // no-op - we'll trigger help from main entry point\n};\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { define } from './chunk-
|
|
2
|
-
import { loadVarlockEnvGraph, checkForSchemaErrors, checkForConfigErrors } from './chunk-
|
|
3
|
-
import { my_dash_default, FileBasedDataSource, getItemSummary } from './chunk-
|
|
4
|
-
import { __name } from './chunk-
|
|
1
|
+
import { define } from './chunk-UDXNNRWI.js';
|
|
2
|
+
import { loadVarlockEnvGraph, checkForSchemaErrors, checkForConfigErrors } from './chunk-ZUNB52KY.js';
|
|
3
|
+
import { my_dash_default, FileBasedDataSource, getItemSummary } from './chunk-FETFVFG5.js';
|
|
4
|
+
import { __name } from './chunk-6PEHRAEP.js';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
|
|
7
7
|
var commandSpec = define({
|
|
@@ -26,6 +26,11 @@ var commandSpec = define({
|
|
|
26
26
|
env: {
|
|
27
27
|
type: "string",
|
|
28
28
|
description: "Set the environment (e.g., production, development, etc) - will be overridden by @currentEnv in the schema if present"
|
|
29
|
+
},
|
|
30
|
+
path: {
|
|
31
|
+
type: "string",
|
|
32
|
+
short: "p",
|
|
33
|
+
description: "Path to a specific .env file or directory (with trailing slash) to use as the entry point"
|
|
29
34
|
}
|
|
30
35
|
},
|
|
31
36
|
examples: `
|
|
@@ -34,17 +39,18 @@ Useful for debugging locally, and in CI to print out a summary of env vars.
|
|
|
34
39
|
|
|
35
40
|
Examples:
|
|
36
41
|
varlock load # Load and validate with pretty output
|
|
37
|
-
varlock load --env production # Load for a specific environment
|
|
38
42
|
varlock load --format json # Output in JSON format
|
|
39
43
|
varlock load --show-all # Show all items when validation fails
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
varlock load --path .env.prod # Load from a specific .env file
|
|
45
|
+
varlock looad --compact # Use compact format - skips undefined values, no indentation for json-full
|
|
46
|
+
varlock load --env production # Load for a specific environment (\u26A0\uFE0F ignored if using @currentEnv!)
|
|
47
|
+
`.trim()
|
|
43
48
|
});
|
|
44
49
|
var commandFn = /* @__PURE__ */ __name(async (ctx) => {
|
|
45
50
|
const { format, compact, "show-all": showAll } = ctx.values;
|
|
46
51
|
const envGraph = await loadVarlockEnvGraph({
|
|
47
|
-
currentEnvFallback: ctx.values.env
|
|
52
|
+
currentEnvFallback: ctx.values.env,
|
|
53
|
+
entryFilePath: ctx.values.path
|
|
48
54
|
});
|
|
49
55
|
checkForSchemaErrors(envGraph);
|
|
50
56
|
if (!envGraph.rootDataSource) throw new Error("expected root data source to be set");
|
|
@@ -95,5 +101,5 @@ var commandFn = /* @__PURE__ */ __name(async (ctx) => {
|
|
|
95
101
|
}, "commandFn");
|
|
96
102
|
|
|
97
103
|
export { commandFn, commandSpec };
|
|
98
|
-
//# sourceMappingURL=chunk-
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
104
|
+
//# sourceMappingURL=chunk-3FLO3UFZ.js.map
|
|
105
|
+
//# sourceMappingURL=chunk-3FLO3UFZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/load.command.ts"],"names":[],"mappings":"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","file":"chunk-3FLO3UFZ.js","sourcesContent":["import { define } from 'gunshi';\nimport _ from '@env-spec/utils/my-dash';\n\nimport { loadVarlockEnvGraph } from '../../lib/load-graph';\nimport { getItemSummary } from '../../lib/formatting';\nimport { checkForConfigErrors, checkForSchemaErrors } from '../helpers/error-checks';\nimport { type TypedGunshiCommandFn } from '../helpers/gunshi-type-utils';\nimport path from 'node:path';\nimport { FileBasedDataSource } from '../../env-graph';\n\nexport const commandSpec = define({\n name: 'load',\n description: 'Load env according to schema and resolve values',\n args: {\n format: {\n type: 'enum',\n short: 'f',\n choices: ['pretty', 'json', 'env', 'json-full', 'json-full-compact'],\n description: 'Format of output',\n default: 'pretty',\n },\n compact: {\n type: 'boolean',\n description: 'Use compact format (for json-full: no indentation, for env: skip undefined values)',\n },\n 'show-all': {\n type: 'boolean',\n description: 'When load is failing, show all items rather than only failing items',\n },\n env: {\n type: 'string',\n description: 'Set the environment (e.g., production, development, etc) - will be overridden by @currentEnv in the schema if present',\n },\n path: {\n type: 'string',\n short: 'p',\n description: 'Path to a specific .env file or directory (with trailing slash) to use as the entry point',\n },\n },\n examples: `\nLoads and validates environment variables according to your .env files, and prints the results.\nUseful for debugging locally, and in CI to print out a summary of env vars.\n\nExamples:\n varlock load # Load and validate with pretty output\n varlock load --format json # Output in JSON format\n varlock load --show-all # Show all items when validation fails\n varlock load --path .env.prod # Load from a specific .env file\n varlock looad --compact # Use compact format - skips undefined values, no indentation for json-full\n varlock load --env production # Load for a specific environment (⚠️ ignored if using @currentEnv!)\n`.trim(),\n});\n\n\nexport const commandFn: TypedGunshiCommandFn<typeof commandSpec> = async (ctx) => {\n const { format, compact, 'show-all': showAll } = ctx.values;\n\n const envGraph = await loadVarlockEnvGraph({\n currentEnvFallback: ctx.values.env,\n entryFilePath: ctx.values.path,\n });\n checkForSchemaErrors(envGraph);\n\n if (!envGraph.rootDataSource) throw new Error('expected root data source to be set');\n\n await envGraph.resolveEnvValues();\n\n // ideally we could be smarter about generating types without needing to resolve values\n // but for now the decorators are all resolved as part of the general resolution process\n const generateTypesDecs = envGraph.getRootDecFns('generateTypes');\n for (const generateTypesDec of generateTypesDecs) {\n const typeGenSettings = await generateTypesDec.resolve();\n\n // we skip generating types if `@generateTypes` was not in the main file\n // unless the `executeWhenImported` flag is set\n if (generateTypesDec.dataSource.isImport && !typeGenSettings.obj.executeWhenImported) continue;\n\n if (!typeGenSettings.obj.lang) throw new Error('@generateTypes - must set `lang` arg');\n if (typeGenSettings.obj.lang !== 'ts') throw new Error(`@generateTypes - unsupported language: ${typeGenSettings.obj.lang}`);\n if (!typeGenSettings.obj.path) throw new Error('@generateTypes - must set `path` arg');\n if (!_.isString(typeGenSettings.obj.path)) throw new Error('@generateTypes - `path` arg must be a string');\n\n const outputPath = generateTypesDec.dataSource instanceof FileBasedDataSource\n ? path.resolve(generateTypesDec.dataSource.fullPath, '..', typeGenSettings.obj.path)\n : typeGenSettings.obj.path;\n\n await envGraph.generateTypes(typeGenSettings.obj.lang, outputPath);\n }\n\n checkForConfigErrors(envGraph, { showAll });\n\n if (format === 'pretty') {\n for (const itemKey in envGraph.configSchema) {\n const item = envGraph.configSchema[itemKey];\n console.log(getItemSummary(item));\n }\n } else if (format === 'json') {\n console.log(JSON.stringify(envGraph.getResolvedEnvObject(), null, 2));\n } else if (format === 'json-full' || format === 'json-full-compact') {\n const indent = format === 'json-full-compact' || compact ? 0 : 2;\n console.log(JSON.stringify(envGraph.getSerializedGraph(), null, indent));\n } else if (format === 'env') {\n const resolvedEnv = envGraph.getResolvedEnvObject();\n const skipUndefined = compact === true;\n\n for (const key in resolvedEnv) {\n const value = resolvedEnv[key];\n\n if (value === undefined && skipUndefined) {\n continue;\n }\n\n let strValue: string;\n if (value === undefined) {\n strValue = '';\n } else if (typeof value === 'string') {\n strValue = `\"${value.replaceAll('\"', '\\\\\"').replaceAll('\\n', '\\\\n')}\"`;\n } else {\n strValue = JSON.stringify(value);\n }\n console.log(`${key}=${strValue}`);\n }\n } else {\n throw new Error(`Unknown format: ${format}`);\n }\n\n // const resolvedEnv = envGraph.getResolvedEnvObject();\n // console.log(resolvedEnv);\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ansis_default, joinAndCompact, my_dash_default, pathExistsSync } from './chunk-
|
|
2
|
-
import { __name } from './chunk-
|
|
1
|
+
import { ansis_default, joinAndCompact, my_dash_default, pathExistsSync } from './chunk-FETFVFG5.js';
|
|
2
|
+
import { __name } from './chunk-6PEHRAEP.js';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import fs, { existsSync } from 'fs';
|
|
5
5
|
import Debug from 'debug';
|
|
@@ -176,5 +176,5 @@ var logLines = /* @__PURE__ */ __name((lines) => {
|
|
|
176
176
|
}, "logLines");
|
|
177
177
|
|
|
178
178
|
export { CliExitError, detectJsPackageManager, fmt, installJsDependency, logLines };
|
|
179
|
-
//# sourceMappingURL=chunk-
|
|
180
|
-
//# sourceMappingURL=chunk-
|
|
179
|
+
//# sourceMappingURL=chunk-4N3YR2QQ.js.map
|
|
180
|
+
//# sourceMappingURL=chunk-4N3YR2QQ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/helpers/exit-error.ts","../src/cli/helpers/js-package-manager-utils.ts","../src/cli/helpers/pretty-format.ts"],"names":[],"mappings":"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","file":"chunk-FPQYEKFF.js","sourcesContent":["import ansis from 'ansis';\nimport _ from '@env-spec/utils/my-dash';\nimport { joinAndCompact } from '../../lib/formatting';\n\nexport class CliExitError extends Error {\n constructor(\n message: string,\n private more?: {\n details?: string | Array<string>,\n suggestion?: string | Array<string>,\n /** always triggers a full exit, even in watch mode - useful if problem is irrecoverable */\n forceExit?: boolean,\n },\n ) {\n super(message);\n }\n\n get forceExit() { return !!this.more?.forceExit; }\n\n getFormattedOutput() {\n let msg = `\\n💥 ${ansis.red(this.message)} 💥\\n`;\n\n if (this.more?.details) {\n msg += joinAndCompact(_.castArray(this.more?.details), '\\n');\n }\n\n if (this.more?.suggestion) {\n msg += joinAndCompact(_.castArray(this.more?.suggestion), '\\n');\n }\n\n msg += '\\n';\n return msg;\n }\n}\n","import path from 'node:path';\nimport fs, { existsSync } from 'node:fs';\nimport { pathExistsSync } from '@env-spec/utils/fs-utils';\nimport Debug from 'debug';\n\nimport { CliExitError } from './exit-error';\nimport { execSync } from 'node:child_process';\n\nconst debug = Debug('varlock:js-package-manager-utils');\n\nexport type JsPackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun' | 'deno';\n\nexport type JsPackageManagerMeta = {\n name: JsPackageManager;\n lockfile: string;\n add: string;\n exec: string;\n dlx: string;\n};\n\nexport const JS_PACKAGE_MANAGERS: Record<JsPackageManager, JsPackageManagerMeta> = Object.freeze({\n npm: {\n name: 'npm',\n lockfile: 'package-lock.json',\n add: 'npm install', // add also works\n exec: 'npm exec --',\n dlx: 'npx',\n },\n pnpm: {\n name: 'pnpm',\n lockfile: 'pnpm-lock.yaml',\n add: 'pnpm add',\n exec: 'pnpm exec',\n dlx: 'pnpm dlx',\n },\n yarn: {\n name: 'yarn',\n lockfile: 'yarn.lock',\n add: 'yarn add',\n exec: 'yarn exec --',\n dlx: 'yarn dlx',\n },\n bun: {\n name: 'bun',\n lockfile: 'bun.lockb',\n add: 'bun add',\n exec: 'bun run',\n dlx: 'bunx',\n },\n deno: { //! deno not fully supported yet\n name: 'deno',\n lockfile: 'deno.lock',\n add: 'deno add',\n // TODO: don't think these are quite right...\n exec: 'deno run',\n dlx: 'deno run',\n },\n});\n\n/**\n * detect js package manager\n *\n * currently go up the folder tree looking for lockfiles (ex: package-lock.json, pnpm-lock.yaml)\n * if nothing found, we'll look at process.env.npm_config_user_agent\n * */\nexport function detectJsPackageManager(opts?: {\n cwd?: string,\n workspaceRootPath?: string,\n exitIfNotFound?: boolean,\n}) {\n debug('Detecting js package manager');\n let cwd = opts?.cwd || process.cwd();\n let multipleLockfilesDetected: Array<JsPackageManager> | undefined;\n do {\n debug(`> scanning ${cwd}`);\n let pm: JsPackageManager;\n let detectedPm: JsPackageManager | undefined;\n for (pm in JS_PACKAGE_MANAGERS) {\n const lockFilePath = path.join(\n cwd,\n JS_PACKAGE_MANAGERS[pm].lockfile,\n );\n\n if (pathExistsSync(lockFilePath)) {\n // if we find 2 lockfiles at the same level, store them and continue\n // this can happen in monorepos or when switching package managers\n if (detectedPm) {\n debug(`> found multiple lockfiles: ${JS_PACKAGE_MANAGERS[pm].lockfile} and ${JS_PACKAGE_MANAGERS[detectedPm].lockfile}`);\n multipleLockfilesDetected = [detectedPm, pm];\n break;\n }\n debug(`> found ${JS_PACKAGE_MANAGERS[pm].lockfile}`);\n detectedPm = pm;\n }\n }\n if (detectedPm && !multipleLockfilesDetected) return JS_PACKAGE_MANAGERS[detectedPm];\n if (multipleLockfilesDetected) break;\n\n // will break when we reach the root\n const parentDir = path.dirname(cwd);\n if (parentDir === cwd) break;\n cwd = parentDir;\n\n if (opts?.workspaceRootPath) {\n if (opts.workspaceRootPath === cwd) {\n debug('> found workspace root');\n break;\n }\n } else {\n // if we don't have a workspace root path, we'll break if we hit the git repo root\n if (pathExistsSync(path.join(cwd, '.git'))) {\n debug('> found git root');\n break;\n }\n }\n } while (cwd);\n\n // if we did not find a lockfile, we'll look at env vars for other hints\n if (process.env.npm_config_user_agent) {\n const pmFromAgent = process.env.npm_config_user_agent.split('/')[0];\n if (Object.keys(JS_PACKAGE_MANAGERS).includes(pmFromAgent)) {\n debug(`> found ${pmFromAgent} using npm_config_user_agent`);\n return JS_PACKAGE_MANAGERS[pmFromAgent as JsPackageManager];\n }\n }\n\n // if we found multiple lockfiles and env var detection failed, return the first detected one\n // we choose the first one because the order is deterministic (based on the order in JS_PACKAGE_MANAGERS)\n // and this provides a reasonable fallback when we can't determine the active package manager\n if (multipleLockfilesDetected) {\n debug(`> using ${multipleLockfilesDetected[0]} from multiple detected lockfiles`);\n return JS_PACKAGE_MANAGERS[multipleLockfilesDetected[0]];\n }\n\n if (opts?.exitIfNotFound) {\n // show some hopefully useful error messaging if we hit the root folder without finding anything\n throw new CliExitError('Unable to find detect your JavaScript package manager!', {\n suggestion: 'We look for lock files (ex: package-lock.json) so you may just need to run a dependency install (ie `npm install`)',\n forceExit: true,\n });\n }\n}\n\n\n\n\nexport function installJsDependency(opts: {\n packageName: string,\n packageManager: JsPackageManager,\n packagePath?: string,\n isMonoRepoRoot?: boolean,\n}) {\n const packageJsonPath = path.join(opts.packagePath || process.cwd(), 'package.json');\n\n // for now, we'll just bail if we dont see a package.json\n if (!existsSync(packageJsonPath)) return false;\n\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));\n // bail if already installed\n if (packageJson.dependencies?.varlock) return false;\n\n // TODO: might want to check first if it's already installed?\n execSync([\n // move to the correct directory if needed\n opts.packagePath && `cd ${opts.packagePath} &&`,\n // `add` works in all of them\n `${opts.packageManager} add ${opts.packageName}`,\n // tells pnpm to either install in the workspace root explicitly\n // or to not check if we are the in the root\n opts.packageManager === 'pnpm' && (opts.isMonoRepoRoot ? '-w' : '--ignore-workspace-root-check'),\n ].filter(Boolean).join(' '));\n\n return true;\n}\n\n","import ansis from 'ansis';\nimport { detectJsPackageManager, JsPackageManagerMeta } from './js-package-manager-utils';\n\n\nexport const fmt = {\n decorator: (s: string) => ansis.magenta(s),\n filePath: (s: string) => `📂 ${ansis.cyan.italic(s)}`,\n fileName: (s: string) => `${ansis.cyan.italic(s)}`,\n command: (s: string, opts?: { jsPackageManager?: JsPackageManagerMeta | true }) => {\n let jsPackageManager: JsPackageManagerMeta | undefined;\n if (opts?.jsPackageManager === true) {\n jsPackageManager = detectJsPackageManager();\n } else if (opts?.jsPackageManager) {\n jsPackageManager = opts.jsPackageManager;\n }\n if (jsPackageManager) {\n s = `${jsPackageManager.exec} ${s}`;\n }\n return ansis.green.italic(s);\n },\n packageName: (s: string) => ansis.green.italic(s),\n};\n\nexport const logLines = (lines: Array<string | false | undefined>) => {\n for (const line of lines) {\n // skip false, null, undefined, but not empty strings\n if (!line && line !== '') continue;\n console.log(line);\n }\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/cli/helpers/exit-error.ts","../src/cli/helpers/js-package-manager-utils.ts","../src/cli/helpers/pretty-format.ts"],"names":[],"mappings":"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","file":"chunk-4N3YR2QQ.js","sourcesContent":["import ansis from 'ansis';\nimport _ from '@env-spec/utils/my-dash';\nimport { joinAndCompact } from '../../lib/formatting';\n\nexport class CliExitError extends Error {\n constructor(\n message: string,\n private more?: {\n details?: string | Array<string>,\n suggestion?: string | Array<string>,\n /** always triggers a full exit, even in watch mode - useful if problem is irrecoverable */\n forceExit?: boolean,\n },\n ) {\n super(message);\n }\n\n get forceExit() { return !!this.more?.forceExit; }\n\n getFormattedOutput() {\n let msg = `\\n💥 ${ansis.red(this.message)} 💥\\n`;\n\n if (this.more?.details) {\n msg += joinAndCompact(_.castArray(this.more?.details), '\\n');\n }\n\n if (this.more?.suggestion) {\n msg += joinAndCompact(_.castArray(this.more?.suggestion), '\\n');\n }\n\n msg += '\\n';\n return msg;\n }\n}\n","import path from 'node:path';\nimport fs, { existsSync } from 'node:fs';\nimport { pathExistsSync } from '@env-spec/utils/fs-utils';\nimport Debug from 'debug';\n\nimport { CliExitError } from './exit-error';\nimport { execSync } from 'node:child_process';\n\nconst debug = Debug('varlock:js-package-manager-utils');\n\nexport type JsPackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun' | 'deno';\n\nexport type JsPackageManagerMeta = {\n name: JsPackageManager;\n lockfile: string;\n add: string;\n exec: string;\n dlx: string;\n};\n\nexport const JS_PACKAGE_MANAGERS: Record<JsPackageManager, JsPackageManagerMeta> = Object.freeze({\n npm: {\n name: 'npm',\n lockfile: 'package-lock.json',\n add: 'npm install', // add also works\n exec: 'npm exec --',\n dlx: 'npx',\n },\n pnpm: {\n name: 'pnpm',\n lockfile: 'pnpm-lock.yaml',\n add: 'pnpm add',\n exec: 'pnpm exec',\n dlx: 'pnpm dlx',\n },\n yarn: {\n name: 'yarn',\n lockfile: 'yarn.lock',\n add: 'yarn add',\n exec: 'yarn exec --',\n dlx: 'yarn dlx',\n },\n bun: {\n name: 'bun',\n lockfile: 'bun.lockb',\n add: 'bun add',\n exec: 'bun run',\n dlx: 'bunx',\n },\n deno: { //! deno not fully supported yet\n name: 'deno',\n lockfile: 'deno.lock',\n add: 'deno add',\n // TODO: don't think these are quite right...\n exec: 'deno run',\n dlx: 'deno run',\n },\n});\n\n/**\n * detect js package manager\n *\n * currently go up the folder tree looking for lockfiles (ex: package-lock.json, pnpm-lock.yaml)\n * if nothing found, we'll look at process.env.npm_config_user_agent\n * */\nexport function detectJsPackageManager(opts?: {\n cwd?: string,\n workspaceRootPath?: string,\n exitIfNotFound?: boolean,\n}) {\n debug('Detecting js package manager');\n let cwd = opts?.cwd || process.cwd();\n let multipleLockfilesDetected: Array<JsPackageManager> | undefined;\n do {\n debug(`> scanning ${cwd}`);\n let pm: JsPackageManager;\n let detectedPm: JsPackageManager | undefined;\n for (pm in JS_PACKAGE_MANAGERS) {\n const lockFilePath = path.join(\n cwd,\n JS_PACKAGE_MANAGERS[pm].lockfile,\n );\n\n if (pathExistsSync(lockFilePath)) {\n // if we find 2 lockfiles at the same level, store them and continue\n // this can happen in monorepos or when switching package managers\n if (detectedPm) {\n debug(`> found multiple lockfiles: ${JS_PACKAGE_MANAGERS[pm].lockfile} and ${JS_PACKAGE_MANAGERS[detectedPm].lockfile}`);\n multipleLockfilesDetected = [detectedPm, pm];\n break;\n }\n debug(`> found ${JS_PACKAGE_MANAGERS[pm].lockfile}`);\n detectedPm = pm;\n }\n }\n if (detectedPm && !multipleLockfilesDetected) return JS_PACKAGE_MANAGERS[detectedPm];\n if (multipleLockfilesDetected) break;\n\n // will break when we reach the root\n const parentDir = path.dirname(cwd);\n if (parentDir === cwd) break;\n cwd = parentDir;\n\n if (opts?.workspaceRootPath) {\n if (opts.workspaceRootPath === cwd) {\n debug('> found workspace root');\n break;\n }\n } else {\n // if we don't have a workspace root path, we'll break if we hit the git repo root\n if (pathExistsSync(path.join(cwd, '.git'))) {\n debug('> found git root');\n break;\n }\n }\n } while (cwd);\n\n // if we did not find a lockfile, we'll look at env vars for other hints\n if (process.env.npm_config_user_agent) {\n const pmFromAgent = process.env.npm_config_user_agent.split('/')[0];\n if (Object.keys(JS_PACKAGE_MANAGERS).includes(pmFromAgent)) {\n debug(`> found ${pmFromAgent} using npm_config_user_agent`);\n return JS_PACKAGE_MANAGERS[pmFromAgent as JsPackageManager];\n }\n }\n\n // if we found multiple lockfiles and env var detection failed, return the first detected one\n // we choose the first one because the order is deterministic (based on the order in JS_PACKAGE_MANAGERS)\n // and this provides a reasonable fallback when we can't determine the active package manager\n if (multipleLockfilesDetected) {\n debug(`> using ${multipleLockfilesDetected[0]} from multiple detected lockfiles`);\n return JS_PACKAGE_MANAGERS[multipleLockfilesDetected[0]];\n }\n\n if (opts?.exitIfNotFound) {\n // show some hopefully useful error messaging if we hit the root folder without finding anything\n throw new CliExitError('Unable to find detect your JavaScript package manager!', {\n suggestion: 'We look for lock files (ex: package-lock.json) so you may just need to run a dependency install (ie `npm install`)',\n forceExit: true,\n });\n }\n}\n\n\n\n\nexport function installJsDependency(opts: {\n packageName: string,\n packageManager: JsPackageManager,\n packagePath?: string,\n isMonoRepoRoot?: boolean,\n}) {\n const packageJsonPath = path.join(opts.packagePath || process.cwd(), 'package.json');\n\n // for now, we'll just bail if we dont see a package.json\n if (!existsSync(packageJsonPath)) return false;\n\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));\n // bail if already installed\n if (packageJson.dependencies?.varlock) return false;\n\n // TODO: might want to check first if it's already installed?\n execSync([\n // move to the correct directory if needed\n opts.packagePath && `cd ${opts.packagePath} &&`,\n // `add` works in all of them\n `${opts.packageManager} add ${opts.packageName}`,\n // tells pnpm to either install in the workspace root explicitly\n // or to not check if we are the in the root\n opts.packageManager === 'pnpm' && (opts.isMonoRepoRoot ? '-w' : '--ignore-workspace-root-check'),\n ].filter(Boolean).join(' '));\n\n return true;\n}\n\n","import ansis from 'ansis';\nimport { detectJsPackageManager, JsPackageManagerMeta } from './js-package-manager-utils';\n\n\nexport const fmt = {\n decorator: (s: string) => ansis.magenta(s),\n filePath: (s: string) => `📂 ${ansis.cyan.italic(s)}`,\n fileName: (s: string) => `${ansis.cyan.italic(s)}`,\n command: (s: string, opts?: { jsPackageManager?: JsPackageManagerMeta | true }) => {\n let jsPackageManager: JsPackageManagerMeta | undefined;\n if (opts?.jsPackageManager === true) {\n jsPackageManager = detectJsPackageManager();\n } else if (opts?.jsPackageManager) {\n jsPackageManager = opts.jsPackageManager;\n }\n if (jsPackageManager) {\n s = `${jsPackageManager.exec} ${s}`;\n }\n return ansis.green.italic(s);\n },\n packageName: (s: string) => ansis.green.italic(s),\n};\n\nexport const logLines = (lines: Array<string | false | undefined>) => {\n for (const line of lines) {\n // skip false, null, undefined, but not empty strings\n if (!line && line !== '') continue;\n console.log(line);\n }\n};\n"]}
|
|
@@ -5,11 +5,6 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
-
var __glob = (map) => (path) => {
|
|
9
|
-
var fn = map[path];
|
|
10
|
-
if (fn) return fn();
|
|
11
|
-
throw new Error("Module not found in bundle: " + path);
|
|
12
|
-
};
|
|
13
8
|
var __commonJS = (cb, mod) => function __require() {
|
|
14
9
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
15
10
|
};
|
|
@@ -30,6 +25,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
30
25
|
mod
|
|
31
26
|
));
|
|
32
27
|
|
|
33
|
-
export { __commonJS,
|
|
34
|
-
//# sourceMappingURL=chunk-
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
export { __commonJS, __name, __toESM };
|
|
29
|
+
//# sourceMappingURL=chunk-6PEHRAEP.js.map
|
|
30
|
+
//# sourceMappingURL=chunk-6PEHRAEP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-6PEHRAEP.js"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { patchGlobalResponse } from './chunk-UIOEEWG5.js';
|
|
2
|
+
import { patchGlobalServerResponse } from './chunk-ZXJ4CEDK.js';
|
|
3
|
+
import { execSyncVarlock } from './chunk-TVFOIGJP.js';
|
|
4
|
+
import { patchGlobalConsole } from './chunk-TYIS6T2T.js';
|
|
5
|
+
import { initVarlockEnv } from './chunk-WAMBVZL2.js';
|
|
6
|
+
|
|
7
|
+
// src/auto-load.ts
|
|
8
|
+
var execResult = execSyncVarlock("load --format json-full-compact", {
|
|
9
|
+
exitOnError: true,
|
|
10
|
+
showLogsOnError: true
|
|
11
|
+
});
|
|
12
|
+
process.env.__VARLOCK_ENV = execResult;
|
|
13
|
+
initVarlockEnv();
|
|
14
|
+
patchGlobalConsole();
|
|
15
|
+
patchGlobalServerResponse();
|
|
16
|
+
patchGlobalResponse();
|
|
17
|
+
//# sourceMappingURL=chunk-BHHYQ7SH.js.map
|
|
18
|
+
//# sourceMappingURL=chunk-BHHYQ7SH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/auto-load.ts"],"names":[],"mappings":";;;;;;;AAaA,IAAM,UAAA,GAAa,gBAAgB,iCAAA,EAAmC;AAAA,EACpE,WAAA,EAAa,IAAA;AAAA,EACb,eAAA,EAAiB;AACnB,CAAC,CAAA;AACD,OAAA,CAAQ,IAAI,aAAA,GAAgB,UAAA;AAG5B,cAAA,EAAe;AAEf,kBAAA,EAAmB;AACnB,yBAAA,EAA0B;AAC1B,mBAAA,EAAoB","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/auto-load.ts"],"names":[],"mappings":";;;;;;;AAaA,IAAM,UAAA,GAAa,gBAAgB,iCAAA,EAAmC;AAAA,EACpE,WAAA,EAAa,IAAA;AAAA,EACb,eAAA,EAAiB;AACnB,CAAC,CAAA;AACD,OAAA,CAAQ,IAAI,aAAA,GAAgB,UAAA;AAG5B,cAAA,EAAe;AAEf,kBAAA,EAAmB;AACnB,yBAAA,EAA0B;AAC1B,mBAAA,EAAoB","file":"chunk-BHHYQ7SH.js","sourcesContent":["import { execSyncVarlock } from './lib/exec-sync-varlock';\n\nimport { initVarlockEnv } from './runtime/env';\nimport { patchGlobalConsole } from './runtime/patch-console';\nimport { patchGlobalServerResponse } from './runtime/patch-server-response';\nimport { patchGlobalResponse } from './runtime/patch-response';\n\n// The varlock loading process uses async calls, but we need this to run synchronously.\n// because even with top level await, we run into hoisting issues where things happen out of order\n// so we call out to the CLI using execSync\n// this also isolates the varlock loading process from the end user process\n\n\nconst execResult = execSyncVarlock('load --format json-full-compact', {\n exitOnError: true,\n showLogsOnError: true,\n});\nprocess.env.__VARLOCK_ENV = execResult;\n\n// initialize varlock and patch globals as necessary\ninitVarlockEnv();\n// these will be no-ops if these are disabled by settings\npatchGlobalConsole();\npatchGlobalServerResponse();\npatchGlobalResponse();\n\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { redactString } from './chunk-
|
|
2
|
-
import { __commonJS, __name, __toESM } from './chunk-
|
|
1
|
+
import { redactString } from './chunk-MIBOBKI4.js';
|
|
2
|
+
import { __commonJS, __name, __toESM } from './chunk-6PEHRAEP.js';
|
|
3
3
|
import process2 from 'process';
|
|
4
4
|
import fs, { accessSync } from 'fs';
|
|
5
5
|
import fs2, { access } from 'fs/promises';
|
|
@@ -92,6 +92,36 @@ var asyncCallbacks = /* @__PURE__ */ new Set();
|
|
|
92
92
|
var callbacks = /* @__PURE__ */ new Set();
|
|
93
93
|
var isCalled = false;
|
|
94
94
|
var isRegistered = false;
|
|
95
|
+
async function flushStdio() {
|
|
96
|
+
const flush = /* @__PURE__ */ __name((stream) => new Promise((resolve) => {
|
|
97
|
+
if (!stream || !stream.writable || stream.writableEnded || stream.destroyed) {
|
|
98
|
+
resolve();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const onError = /* @__PURE__ */ __name(() => {
|
|
102
|
+
stream.off("error", onError);
|
|
103
|
+
resolve();
|
|
104
|
+
}, "onError");
|
|
105
|
+
stream.once("error", onError);
|
|
106
|
+
try {
|
|
107
|
+
stream.write("", () => {
|
|
108
|
+
stream.off("error", onError);
|
|
109
|
+
resolve();
|
|
110
|
+
});
|
|
111
|
+
} catch {
|
|
112
|
+
stream.off("error", onError);
|
|
113
|
+
resolve();
|
|
114
|
+
}
|
|
115
|
+
}), "flush");
|
|
116
|
+
const timeout = new Promise((resolve) => {
|
|
117
|
+
setTimeout(resolve, 1e3);
|
|
118
|
+
});
|
|
119
|
+
await Promise.race([
|
|
120
|
+
Promise.all([flush(process2.stdout), flush(process2.stderr)]),
|
|
121
|
+
timeout
|
|
122
|
+
]);
|
|
123
|
+
}
|
|
124
|
+
__name(flushStdio, "flushStdio");
|
|
95
125
|
async function exit(shouldManuallyExit, isSynchronous, signal) {
|
|
96
126
|
if (isCalled) {
|
|
97
127
|
return;
|
|
@@ -106,7 +136,12 @@ async function exit(shouldManuallyExit, isSynchronous, signal) {
|
|
|
106
136
|
"sends a SIGINT to the process running this code."
|
|
107
137
|
].join(" "));
|
|
108
138
|
}
|
|
109
|
-
|
|
139
|
+
let exitCode = 0;
|
|
140
|
+
if (signal > 0) {
|
|
141
|
+
exitCode = 128 + signal;
|
|
142
|
+
} else if (typeof process2.exitCode === "number" || typeof process2.exitCode === "string") {
|
|
143
|
+
exitCode = process2.exitCode;
|
|
144
|
+
}
|
|
110
145
|
const done = /* @__PURE__ */ __name((force = false) => {
|
|
111
146
|
if (force === true || shouldManuallyExit === true) {
|
|
112
147
|
process2.exit(exitCode);
|
|
@@ -125,11 +160,12 @@ async function exit(shouldManuallyExit, isSynchronous, signal) {
|
|
|
125
160
|
forceAfter = Math.max(forceAfter, wait);
|
|
126
161
|
promises.push(Promise.resolve(callback(exitCode)));
|
|
127
162
|
}
|
|
128
|
-
const asyncTimer = setTimeout(() => {
|
|
163
|
+
const asyncTimer = forceAfter > 0 ? setTimeout(() => {
|
|
129
164
|
done(true);
|
|
130
|
-
}, forceAfter);
|
|
165
|
+
}, forceAfter) : void 0;
|
|
131
166
|
await Promise.all(promises);
|
|
132
167
|
clearTimeout(asyncTimer);
|
|
168
|
+
await flushStdio();
|
|
133
169
|
done();
|
|
134
170
|
}
|
|
135
171
|
__name(exit, "exit");
|
|
@@ -176,18 +212,21 @@ function asyncExitHook(onExit, options = {}) {
|
|
|
176
212
|
});
|
|
177
213
|
}
|
|
178
214
|
__name(asyncExitHook, "asyncExitHook");
|
|
179
|
-
function gracefulExit(signal
|
|
180
|
-
|
|
215
|
+
function gracefulExit(signal) {
|
|
216
|
+
if (signal !== void 0) {
|
|
217
|
+
process2.exitCode = signal;
|
|
218
|
+
}
|
|
219
|
+
exit(true, false, -128);
|
|
181
220
|
}
|
|
182
221
|
__name(gracefulExit, "gracefulExit");
|
|
183
222
|
|
|
184
|
-
// ../../node_modules/.pnpm/@sindresorhus+is@7.
|
|
223
|
+
// ../../node_modules/.pnpm/@sindresorhus+is@7.2.0/node_modules/@sindresorhus/is/distribution/utilities.js
|
|
185
224
|
function keysOf(value) {
|
|
186
225
|
return Object.keys(value);
|
|
187
226
|
}
|
|
188
227
|
__name(keysOf, "keysOf");
|
|
189
228
|
|
|
190
|
-
// ../../node_modules/.pnpm/@sindresorhus+is@7.
|
|
229
|
+
// ../../node_modules/.pnpm/@sindresorhus+is@7.2.0/node_modules/@sindresorhus/is/distribution/index.js
|
|
191
230
|
var typedArrayTypeNames = [
|
|
192
231
|
"Int8Array",
|
|
193
232
|
"Uint8Array",
|
|
@@ -414,13 +453,44 @@ function isAbsoluteModule2(remainder) {
|
|
|
414
453
|
return (value) => isInteger(value) && Math.abs(value % 2) === remainder;
|
|
415
454
|
}
|
|
416
455
|
__name(isAbsoluteModule2, "isAbsoluteModule2");
|
|
456
|
+
function validatePredicateArray(predicateArray, allowEmpty) {
|
|
457
|
+
if (predicateArray.length === 0) {
|
|
458
|
+
if (allowEmpty) ; else {
|
|
459
|
+
throw new TypeError("Invalid predicate array");
|
|
460
|
+
}
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
463
|
+
for (const predicate of predicateArray) {
|
|
464
|
+
if (!isFunction(predicate)) {
|
|
465
|
+
throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
__name(validatePredicateArray, "validatePredicateArray");
|
|
417
470
|
function isAll(predicate, ...values) {
|
|
471
|
+
if (Array.isArray(predicate)) {
|
|
472
|
+
const predicateArray = predicate;
|
|
473
|
+
validatePredicateArray(predicateArray, values.length === 0);
|
|
474
|
+
const combinedPredicate = /* @__PURE__ */ __name((value) => predicateArray.every((singlePredicate) => singlePredicate(value)), "combinedPredicate");
|
|
475
|
+
if (values.length === 0) {
|
|
476
|
+
return combinedPredicate;
|
|
477
|
+
}
|
|
478
|
+
return predicateOnArray(Array.prototype.every, combinedPredicate, values);
|
|
479
|
+
}
|
|
418
480
|
return predicateOnArray(Array.prototype.every, predicate, values);
|
|
419
481
|
}
|
|
420
482
|
__name(isAll, "isAll");
|
|
421
483
|
function isAny(predicate, ...values) {
|
|
422
|
-
|
|
423
|
-
|
|
484
|
+
if (Array.isArray(predicate)) {
|
|
485
|
+
const predicateArray = predicate;
|
|
486
|
+
validatePredicateArray(predicateArray, values.length === 0);
|
|
487
|
+
const combinedPredicate = /* @__PURE__ */ __name((value) => predicateArray.some((singlePredicate) => singlePredicate(value)), "combinedPredicate");
|
|
488
|
+
if (values.length === 0) {
|
|
489
|
+
return combinedPredicate;
|
|
490
|
+
}
|
|
491
|
+
return predicateOnArray(Array.prototype.some, combinedPredicate, values);
|
|
492
|
+
}
|
|
493
|
+
return predicateOnArray(Array.prototype.some, predicate, values);
|
|
424
494
|
}
|
|
425
495
|
__name(isAny, "isAny");
|
|
426
496
|
function isOptional(value, predicate) {
|
|
@@ -3268,6 +3338,9 @@ async function registerPluginInGraph(graph, plugin, pluginDecorator) {
|
|
|
3268
3338
|
plugin.installDecoratorInstances.push(pluginDecorator);
|
|
3269
3339
|
graph.plugins.push(plugin);
|
|
3270
3340
|
await plugin.executePluginModule();
|
|
3341
|
+
if (plugin.loadingError) {
|
|
3342
|
+
return;
|
|
3343
|
+
}
|
|
3271
3344
|
for (const rootDec of plugin.rootDecorators || []) {
|
|
3272
3345
|
graph.registerRootDecorator(rootDec);
|
|
3273
3346
|
}
|
|
@@ -3748,7 +3821,19 @@ var EnvGraphDataSource4 = class {
|
|
|
3748
3821
|
/** an error encountered while loading/parsing the data source */
|
|
3749
3822
|
_loadingError;
|
|
3750
3823
|
get loadingError() {
|
|
3751
|
-
return this._loadingError;
|
|
3824
|
+
if (this._loadingError) return this._loadingError;
|
|
3825
|
+
if (this.graph) {
|
|
3826
|
+
for (const plugin of this.graph.plugins) {
|
|
3827
|
+
if (plugin.loadingError) {
|
|
3828
|
+
for (const installDecorator of plugin.installDecoratorInstances) {
|
|
3829
|
+
if (installDecorator.dataSource === this) {
|
|
3830
|
+
return plugin.loadingError;
|
|
3831
|
+
}
|
|
3832
|
+
}
|
|
3833
|
+
}
|
|
3834
|
+
}
|
|
3835
|
+
}
|
|
3836
|
+
return void 0;
|
|
3752
3837
|
}
|
|
3753
3838
|
_schemaErrors = [];
|
|
3754
3839
|
get schemaErrors() {
|
|
@@ -3941,18 +4026,27 @@ var DirectoryDataSource = class extends EnvGraphDataSource4 {
|
|
|
3941
4026
|
}
|
|
3942
4027
|
}
|
|
3943
4028
|
};
|
|
3944
|
-
|
|
3945
|
-
// src/env-graph/lib/loader.ts
|
|
3946
4029
|
async function loadEnvGraph(opts) {
|
|
3947
4030
|
const graph = new EnvGraph2();
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
4031
|
+
if (opts?.entryFilePath) {
|
|
4032
|
+
const resolvedPath = path2.resolve(opts.entryFilePath);
|
|
4033
|
+
if (opts.entryFilePath.endsWith("/") || opts.entryFilePath.endsWith(path2.sep)) {
|
|
4034
|
+
graph.basePath = resolvedPath;
|
|
4035
|
+
if (opts?.afterInit) await opts.afterInit(graph);
|
|
4036
|
+
if (opts?.currentEnvFallback) graph.envFlagFallback = opts.currentEnvFallback;
|
|
4037
|
+
await graph.setRootDataSource(new DirectoryDataSource(resolvedPath));
|
|
4038
|
+
} else {
|
|
4039
|
+
graph.basePath = path2.dirname(resolvedPath);
|
|
4040
|
+
if (opts?.afterInit) await opts.afterInit(graph);
|
|
4041
|
+
if (opts?.currentEnvFallback) graph.envFlagFallback = opts.currentEnvFallback;
|
|
4042
|
+
await graph.setRootDataSource(new DotEnvFileDataSource(resolvedPath));
|
|
4043
|
+
}
|
|
4044
|
+
} else {
|
|
4045
|
+
graph.basePath = opts?.basePath ?? process.cwd();
|
|
4046
|
+
if (opts?.afterInit) await opts.afterInit(graph);
|
|
4047
|
+
if (opts?.currentEnvFallback) graph.envFlagFallback = opts.currentEnvFallback;
|
|
4048
|
+
await graph.setRootDataSource(new DirectoryDataSource(graph.basePath));
|
|
3954
4049
|
}
|
|
3955
|
-
await graph.setRootDataSource(new DirectoryDataSource(graph.basePath));
|
|
3956
4050
|
await graph.finishLoad();
|
|
3957
4051
|
return graph;
|
|
3958
4052
|
}
|
|
@@ -4048,5 +4142,5 @@ __name(getItemSummary, "getItemSummary");
|
|
|
4048
4142
|
//! these are probably not relevant anymore, or needs to move to a plugin layer?
|
|
4049
4143
|
|
|
4050
4144
|
export { CoercionError, ConfigLoadError, DotEnvFileDataSource, EnvGraph2 as EnvGraph, FileBasedDataSource, ResolutionError, SchemaError, ValidationError, VarlockError, ansis_default, asyncExitHook, getItemSummary, gracefulExit, joinAndCompact, loadEnvGraph, my_dash_default, pathExists, pathExistsSync, tryCatch };
|
|
4051
|
-
//# sourceMappingURL=chunk-
|
|
4052
|
-
//# sourceMappingURL=chunk-
|
|
4145
|
+
//# sourceMappingURL=chunk-FETFVFG5.js.map
|
|
4146
|
+
//# sourceMappingURL=chunk-FETFVFG5.js.map
|