varlock 0.0.1 → 0.0.3
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/LICENSE +21 -0
- package/dist/auto-load.js +7 -8
- package/dist/auto-load.js.map +1 -1
- package/dist/{chunk-35HGPX6I.js → chunk-2CM6PMED.js} +7 -6
- package/dist/chunk-2CM6PMED.js.map +1 -0
- package/dist/chunk-3EBGAOLH.js +14 -0
- package/dist/chunk-3EBGAOLH.js.map +1 -0
- package/dist/chunk-3KZR56NU.js +45 -0
- package/dist/chunk-3KZR56NU.js.map +1 -0
- package/dist/{chunk-EMPXU5TW.js → chunk-5HDQH7UC.js} +5 -5
- package/dist/{chunk-EMPXU5TW.js.map → chunk-5HDQH7UC.js.map} +1 -1
- package/dist/chunk-7QXRUUDC.js +137 -0
- package/dist/chunk-7QXRUUDC.js.map +1 -0
- package/dist/chunk-FGMXIEFA.js +20 -0
- package/dist/chunk-FGMXIEFA.js.map +1 -0
- package/dist/{chunk-BRP5MZU6.js → chunk-NAZPFZOO.js} +15 -8
- package/dist/chunk-NAZPFZOO.js.map +1 -0
- package/dist/{chunk-NZDUC7Q3.js → chunk-OSSLRXKM.js} +4 -4
- package/dist/{chunk-NZDUC7Q3.js.map → chunk-OSSLRXKM.js.map} +1 -1
- package/dist/chunk-OXV76U3Y.js +39 -0
- package/dist/chunk-OXV76U3Y.js.map +1 -0
- package/dist/chunk-Q5P7F3WA.js +107 -0
- package/dist/chunk-Q5P7F3WA.js.map +1 -0
- package/dist/chunk-RF3YMFUX.js +93 -0
- package/dist/chunk-RF3YMFUX.js.map +1 -0
- package/dist/{chunk-R53MTEAM.js → chunk-RPLDMNWT.js} +3 -3
- package/dist/{chunk-R53MTEAM.js.map → chunk-RPLDMNWT.js.map} +1 -1
- package/dist/{chunk-HZADDTO5.js → chunk-TYL3Q4QG.js} +233 -76
- package/dist/chunk-TYL3Q4QG.js.map +1 -0
- package/dist/chunk-XHOJF7U7.js +12 -0
- package/dist/chunk-XHOJF7U7.js.map +1 -0
- package/dist/cli/cli-executable.js +72 -27
- package/dist/cli/cli-executable.js.map +1 -1
- package/dist/doctor.command-L3P5LBOW.js +6 -0
- package/dist/{doctor.command-N5JAIXRM.js.map → doctor.command-L3P5LBOW.js.map} +1 -1
- package/dist/dotenv-compat.js +7 -8
- package/dist/dotenv-compat.js.map +1 -1
- package/dist/index.d.ts +10 -34
- package/dist/index.js +36 -5
- package/dist/index.js.map +1 -1
- package/dist/init.command-Q4YBHAEG.js +11 -0
- package/dist/{init.command-7BSALNL5.js.map → init.command-Q4YBHAEG.js.map} +1 -1
- package/dist/load.command-K22PEH3D.js +10 -0
- package/dist/{load.command-4MJR5J43.js.map → load.command-K22PEH3D.js.map} +1 -1
- package/dist/run.command-DUAYGL6F.js +10 -0
- package/dist/{run.command-ASKXIWBC.js.map → run.command-DUAYGL6F.js.map} +1 -1
- package/dist/runtime/env.d.ts +27 -0
- package/dist/runtime/env.js +5 -0
- package/dist/runtime/env.js.map +1 -0
- package/dist/runtime/patch-console.d.ts +14 -0
- package/dist/runtime/patch-console.js +7 -0
- package/dist/runtime/patch-console.js.map +1 -0
- package/dist/runtime/patch-response.d.ts +3 -0
- package/dist/runtime/patch-response.js +7 -0
- package/dist/runtime/patch-response.js.map +1 -0
- package/dist/runtime/patch-server-response.d.ts +6 -0
- package/dist/runtime/patch-server-response.js +7 -0
- package/dist/runtime/patch-server-response.js.map +1 -0
- package/package.json +53 -8
- package/dist/chunk-35HGPX6I.js.map +0 -1
- package/dist/chunk-BRP5MZU6.js.map +0 -1
- package/dist/chunk-BS3AGAHF.js +0 -53
- package/dist/chunk-BS3AGAHF.js.map +0 -1
- package/dist/chunk-HZADDTO5.js.map +0 -1
- package/dist/chunk-QTYVZQSF.js +0 -225
- package/dist/chunk-QTYVZQSF.js.map +0 -1
- package/dist/doctor.command-N5JAIXRM.js +0 -6
- package/dist/init.command-7BSALNL5.js +0 -10
- package/dist/load.command-4MJR5J43.js +0 -9
- package/dist/run.command-ASKXIWBC.js +0 -9
package/package.json
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "varlock",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"author": "dmno-dev",
|
|
8
8
|
"license": "MIT",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/dmno-dev/varlock.git",
|
|
12
|
+
"directory": "packages/varlock"
|
|
13
|
+
},
|
|
9
14
|
"keywords": [],
|
|
10
15
|
"files": [
|
|
11
16
|
"/bin",
|
|
@@ -14,17 +19,56 @@
|
|
|
14
19
|
"bin": {
|
|
15
20
|
"varlock": "./bin/cli.js"
|
|
16
21
|
},
|
|
22
|
+
"engines": {
|
|
23
|
+
"node": ">=22"
|
|
24
|
+
},
|
|
17
25
|
"exports": {
|
|
18
|
-
".":
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
26
|
+
".": {
|
|
27
|
+
"ts-src": "./src/index.ts",
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"default": "./dist/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./env": {
|
|
32
|
+
"ts-src": "./src/runtime/env.ts",
|
|
33
|
+
"types": "./dist/runtime/env.d.ts",
|
|
34
|
+
"default": "./dist/runtime/env.js"
|
|
35
|
+
},
|
|
36
|
+
"./auto-load": {
|
|
37
|
+
"ts-src": "./src/auto-load.ts",
|
|
38
|
+
"types": "./dist/auto-load.d.ts",
|
|
39
|
+
"default": "./dist/auto-load.js"
|
|
40
|
+
},
|
|
41
|
+
"./patch-console": {
|
|
42
|
+
"ts-src": "./src/runtime/patch-console.ts",
|
|
43
|
+
"types": "./dist/runtime/patch-console.d.ts",
|
|
44
|
+
"default": "./dist/runtime/patch-console.js"
|
|
45
|
+
},
|
|
46
|
+
"./patch-response": {
|
|
47
|
+
"ts-src": "./src/runtime/patch-response.ts",
|
|
48
|
+
"types": "./dist/runtime/patch-response.d.ts",
|
|
49
|
+
"default": "./dist/runtime/patch-response.js"
|
|
50
|
+
},
|
|
51
|
+
"./patch-server-response": {
|
|
52
|
+
"ts-src": "./src/runtime/patch-server-response.ts",
|
|
53
|
+
"types": "./dist/runtime/patch-server-response.d.ts",
|
|
54
|
+
"default": "./dist/runtime/patch-server-response.js"
|
|
55
|
+
},
|
|
56
|
+
"./config": {
|
|
57
|
+
"ts-src": "./src/config.ts",
|
|
58
|
+
"types": "./dist/dotenv-compat.d.ts",
|
|
59
|
+
"default": "./dist/dotenv-compat.js"
|
|
60
|
+
},
|
|
61
|
+
"./config.js": {
|
|
62
|
+
"ts-src": "./src/config.ts",
|
|
63
|
+
"types": "./dist/dotenv-compat.d.ts",
|
|
64
|
+
"default": "./dist/dotenv-compat.js"
|
|
65
|
+
}
|
|
22
66
|
},
|
|
23
67
|
"dependencies": {
|
|
24
68
|
"debug": "^4.3.4",
|
|
25
|
-
"execa": "^9.
|
|
69
|
+
"execa": "^9.6.0",
|
|
26
70
|
"which": "^5.0.0",
|
|
27
|
-
"@env-spec/parser": "0.0.
|
|
71
|
+
"@env-spec/parser": "0.0.2"
|
|
28
72
|
},
|
|
29
73
|
"devDependencies": {
|
|
30
74
|
"@clack/core": "^0.5.0",
|
|
@@ -33,8 +77,9 @@
|
|
|
33
77
|
"@types/debug": "^4.1.12",
|
|
34
78
|
"@types/node": "^22.15.32",
|
|
35
79
|
"@types/which": "^3.0.4",
|
|
36
|
-
"@yao-pkg/pkg": "^6.
|
|
80
|
+
"@yao-pkg/pkg": "^6.5.1",
|
|
37
81
|
"ansis": "^4.1.0",
|
|
82
|
+
"browser-or-node": "^3.0.0",
|
|
38
83
|
"gunshi": "^0.26.3",
|
|
39
84
|
"is-unicode-supported": "^2.1.0",
|
|
40
85
|
"outdent": "^0.8.0",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/commands/run.command.ts"],"names":[],"mappings":"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","file":"chunk-35HGPX6I.js","sourcesContent":["import { execa, type ResultPromise } from 'execa';\nimport which from 'which';\nimport { define } from 'gunshi';\n\nimport { loadVarlockEnvGraph } from '../../lib/load-graph';\nimport { checkForConfigErrors, checkForSchemaErrors } from '../helpers/error-checks';\nimport { TypedGunshiCommandFn } from '../helpers/gunshi-type-utils';\n\n\nexport const commandSpec = define({\n name: 'run',\n description: 'Run a command with the environment variables loaded from the .env file',\n args: {\n watch: {\n type: 'boolean',\n short: 'w',\n description: 'Watch mode',\n },\n },\n});\n\nlet commandProcess: ResultPromise | undefined;\nlet childCommandKilledFromRestart = false;\nlet isWatchModeRestart = false;\n\nexport const commandFn: TypedGunshiCommandFn<typeof commandSpec> = async (ctx) => {\n // if \"--\" is present, split the args into our command and the rest, which will be another external command\n const argv = process.argv.slice(2);\n let commandArgs: Array<string> = [];\n let restCommandArgs: Array<string> = [];\n if (argv.includes('--')) {\n const doubleDashIndex = argv.indexOf('--');\n commandArgs = argv.slice(0, doubleDashIndex);\n restCommandArgs = argv.slice(doubleDashIndex + 1);\n } else {\n throw new Error('No command to run! Your command should look like `varlock run -- <your-command>`');\n }\n const commandToRunAsArgs = restCommandArgs;\n const commandToRunStr = restCommandArgs.join(' ');\n\n const rawCommand = commandToRunAsArgs[0];\n const commandArgsOnly = commandToRunAsArgs.slice(1);\n const pathAwareCommand = which.sync(rawCommand, { nothrow: true });\n\n const isWatchEnabled = ctx.values.watch;\n\n // console.log('running command', pathAwareCommand || rawCommand, commandArgsOnly);\n\n\n const envGraph = await loadVarlockEnvGraph();\n checkForSchemaErrors(envGraph);\n await envGraph.resolveEnvValues();\n checkForConfigErrors(envGraph);\n\n // will fail above if there are any errors\n\n const resolvedEnv = envGraph.getResolvedEnvObject();\n // console.log(resolvedEnv);\n\n // needs more thought here\n const fullInjectedEnv = {\n ...process.env,\n ...resolvedEnv,\n _VARLOCK_RUN: '1', // flag so we know our env is already injected\n };\n\n commandProcess = execa(pathAwareCommand || rawCommand, commandArgsOnly, {\n stdio: 'inherit',\n env: fullInjectedEnv,\n });\n // console.log('PARENT PID = ', process.pid);\n // console.log('CHILD PID = ', commandProcess.pid);\n\n // if first run, we need to attach some extra exit handling\n if (!isWatchModeRestart) {\n // try to make sure we shut down cleanly and kill the child process\n process.on('exit', (code: any, signal: any) => {\n // if (childCommandKilledFromRestart) {\n // childCommandKilledFromRestart = false;\n // return;\n // }\n // console.log('exit!', code, signal);\n commandProcess?.kill(9);\n });\n\n ['SIGTERM', 'SIGINT'].forEach((signal) => {\n process.on(signal, () => {\n // console.log('SIGNAL = ', signal);\n commandProcess?.kill(9);\n process.exit(1);\n });\n });\n // TODO: handle other signals?\n }\n\n\n let exitCode: any; // TODO: fix this any\n try {\n const commandResult = await commandProcess;\n exitCode = commandResult.exitCode;\n } catch (error) {\n // console.log('child command error!', error);\n if ((error as any).signal === 'SIGINT' && childCommandKilledFromRestart) {\n // console.log('child command failed due to being killed form restart');\n childCommandKilledFromRestart = false;\n return;\n }\n\n // console.log('child command result error', error);\n if ((error as any).signal === 'SIGINT' || (error as any).signal === 'SIGKILL') {\n process.exit(1);\n } else {\n console.log((error as Error).message);\n console.log(`command [${commandToRunStr}] failed`);\n console.log('try running the same command without dmno');\n console.log('if you get a different result, dmno may be the problem...');\n // console.log(`Please report issue here: <${REPORT_ISSUE_LINK}>`);\n }\n exitCode = (error as any).exitCode || 1;\n }\n\n if (isWatchEnabled) {\n if (!childCommandKilledFromRestart) {\n if (exitCode === 0) {\n console.log('\\n✅ command completed successfully');\n } else {\n console.log(`\\n💥 command failed - exit code = ${exitCode}`);\n }\n }\n }\n\n if (!isWatchEnabled) {\n process.exit(exitCode);\n } else {\n console.log('... watching for changes ...');\n // TODO: watch for changes and restart the command\n }\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/commands/load.command.ts"],"names":[],"mappings":"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","file":"chunk-BRP5MZU6.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 { TypedGunshiCommandFn } from '../helpers/gunshi-type-utils';\n\nexport const commandSpec = define({\n name: 'load',\n description: 'Load env according to schema and resolve values',\n args: {\n format: {\n type: 'string',\n short: 'f',\n description: 'Format of output (if not pretty printed to console)',\n default: 'pretty',\n },\n 'show-all': {\n type: 'boolean',\n description: 'When load is fialing, show all items rather than only failing items',\n },\n },\n});\n\n\nexport const commandFn: TypedGunshiCommandFn<typeof commandSpec> = async (ctx) => {\n const { format, 'show-all': showAll } = ctx.values;\n\n const envGraph = await loadVarlockEnvGraph();\n checkForSchemaErrors(envGraph);\n\n // TODO: move into a more general post-load hook system\n if (envGraph.schemaDataSource?.decorators.generateTypes) {\n // TODO: much of this logic should move to the definition of the decorator itself\n const typeGenSettings = envGraph.schemaDataSource?.decorators.generateTypes.bareFnArgs?.simplifiedValues;\n if (!_.isPlainObject(typeGenSettings)) {\n throw new Error('@generateTypes - must be a fn call with key/value args');\n }\n if (!typeGenSettings.lang) throw new Error('@generateTypes - must set `lang` arg');\n if (typeGenSettings.lang !== 'ts') throw new Error(`@generateTypes - unsupported language: ${typeGenSettings.lang}`);\n if (!typeGenSettings.path) throw new Error('@generateTypes - must set `path` arg');\n if (!_.isString(typeGenSettings.path)) throw new Error('@generateTypes - `path` arg must be a string');\n await envGraph.generateTypes(typeGenSettings.lang, typeGenSettings.path);\n }\n\n await envGraph.resolveEnvValues();\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 const resolvedEnv = envGraph.getResolvedEnvObject();\n console.log(JSON.stringify(resolvedEnv, null, 2));\n } else if (format === 'env') {\n const resolvedEnv = envGraph.getResolvedEnvObject();\n for (const key in resolvedEnv) {\n const value = resolvedEnv[key];\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"]}
|
package/dist/chunk-BS3AGAHF.js
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { checkForConfigErrors } from './chunk-NZDUC7Q3.js';
|
|
2
|
-
import { loadVarlockEnvGraph, resetRedactionMap } from './chunk-QTYVZQSF.js';
|
|
3
|
-
import { __name } from './chunk-XN24GZXQ.js';
|
|
4
|
-
|
|
5
|
-
// src/index.ts
|
|
6
|
-
var envValues = {};
|
|
7
|
-
var publicKeys = [];
|
|
8
|
-
var EnvProxy = new Proxy({}, {
|
|
9
|
-
get(target, prop) {
|
|
10
|
-
if (typeof prop !== "string") throw new Error("prop keys cannot be symbols");
|
|
11
|
-
if (!(prop in envValues)) throw new Error(`Env key \`${prop}\` does not exist`);
|
|
12
|
-
return envValues[prop.toString()];
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
var PublicEnvProxy = new Proxy({}, {
|
|
16
|
-
get(target, prop) {
|
|
17
|
-
if (typeof prop !== "string") throw new Error("prop keys cannot be symbols");
|
|
18
|
-
if (!(prop in envValues)) throw new Error(`Env key \`${prop}\` does not exist`);
|
|
19
|
-
if (!publicKeys.includes(prop.toString())) throw new Error(`${prop.toString()} is sensitive, use ENV instead of PUBLIC_ENV`);
|
|
20
|
-
return envValues[prop.toString()];
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
var ENV = EnvProxy;
|
|
24
|
-
var PUBLIC_ENV = PublicEnvProxy;
|
|
25
|
-
function loadSync() {
|
|
26
|
-
throw new Error("Not yet supported");
|
|
27
|
-
}
|
|
28
|
-
__name(loadSync, "loadSync");
|
|
29
|
-
async function load() {
|
|
30
|
-
const envGraph = await loadVarlockEnvGraph();
|
|
31
|
-
await envGraph.resolveEnvValues();
|
|
32
|
-
checkForConfigErrors(envGraph);
|
|
33
|
-
const resolvedEnv = envGraph.getResolvedEnvObject();
|
|
34
|
-
resetRedactionMap(envGraph);
|
|
35
|
-
envValues = {};
|
|
36
|
-
publicKeys = [];
|
|
37
|
-
for (const key in resolvedEnv) {
|
|
38
|
-
if (!envGraph.configSchema[key].isSensitive) publicKeys.push(key);
|
|
39
|
-
const resolvedValue = resolvedEnv[key];
|
|
40
|
-
if (resolvedValue === void 0 || resolvedValue === null) {
|
|
41
|
-
envValues[key] = void 0;
|
|
42
|
-
process.env[key] = void 0;
|
|
43
|
-
} else {
|
|
44
|
-
envValues[key] = resolvedValue;
|
|
45
|
-
process.env[key] = resolvedValue.toString();
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
__name(load, "load");
|
|
50
|
-
|
|
51
|
-
export { ENV, PUBLIC_ENV, load, loadSync };
|
|
52
|
-
//# sourceMappingURL=chunk-BS3AGAHF.js.map
|
|
53
|
-
//# sourceMappingURL=chunk-BS3AGAHF.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAKA,IAAI,YAAY,EAAC;AACjB,IAAI,aAAa,EAAC;AAMlB,IAAM,QAAW,GAAA,IAAI,KAAsB,CAAA,EAAI,EAAA;AAAA,EAC7C,GAAA,CAAI,QAAQ,IAAM,EAAA;AAChB,IAAA,IAAI,OAAO,IAAS,KAAA,QAAA,EAAgB,MAAA,IAAI,MAAM,6BAA6B,CAAA;AAC3E,IAAI,IAAA,EAAE,QAAQ,SAAY,CAAA,EAAA,MAAM,IAAI,KAAM,CAAA,CAAA,UAAA,EAAa,IAAI,CAAmB,iBAAA,CAAA,CAAA;AAC9E,IAAO,OAAA,SAAA,CAAU,IAAK,CAAA,QAAA,EAAU,CAAA;AAAA;AAEpC,CAAC,CAAA;AACD,IAAM,cAAiB,GAAA,IAAI,KAA4B,CAAA,EAAI,EAAA;AAAA,EACzD,GAAA,CAAI,QAAQ,IAAM,EAAA;AAChB,IAAA,IAAI,OAAO,IAAS,KAAA,QAAA,EAAgB,MAAA,IAAI,MAAM,6BAA6B,CAAA;AAC3E,IAAI,IAAA,EAAE,QAAQ,SAAY,CAAA,EAAA,MAAM,IAAI,KAAM,CAAA,CAAA,UAAA,EAAa,IAAI,CAAmB,iBAAA,CAAA,CAAA;AAC9E,IAAA,IAAI,CAAC,UAAA,CAAW,QAAS,CAAA,IAAA,CAAK,UAAU,CAAA,EAAS,MAAA,IAAI,KAAM,CAAA,CAAA,EAAG,IAAK,CAAA,QAAA,EAAU,CAA8C,4CAAA,CAAA,CAAA;AAC3H,IAAO,OAAA,SAAA,CAAU,IAAK,CAAA,QAAA,EAAU,CAAA;AAAA;AAEpC,CAAC,CAAA;AAEM,IAAM,GAAM,GAAA;AACZ,IAAM,UAAa,GAAA;AAEnB,SAAS,QAAW,GAAA;AACzB,EAAM,MAAA,IAAI,MAAM,mBAAmB,CAAA;AACrC;AAFgB,MAAA,CAAA,QAAA,EAAA,UAAA,CAAA;AAIhB,eAAsB,IAAO,GAAA;AAK3B,EAAM,MAAA,QAAA,GAAW,MAAM,mBAAoB,EAAA;AAC3C,EAAA,MAAM,SAAS,gBAAiB,EAAA;AAEhC,EAAA,oBAAA,CAAqB,QAAQ,CAAA;AAE7B,EAAM,MAAA,WAAA,GAAc,SAAS,oBAAqB,EAAA;AAElD,EAAA,iBAAA,CAAkB,QAAQ,CAAA;AAG1B,EAAA,SAAA,GAAY,EAAC;AACb,EAAA,UAAA,GAAa,EAAC;AAEd,EAAA,KAAA,MAAW,OAAO,WAAa,EAAA;AAC7B,IAAI,IAAA,CAAC,SAAS,YAAa,CAAA,GAAG,EAAE,WAAa,EAAA,UAAA,CAAW,KAAK,GAAG,CAAA;AAEhE,IAAM,MAAA,aAAA,GAAgB,YAAY,GAAG,CAAA;AACrC,IAAI,IAAA,aAAA,KAAkB,MAAa,IAAA,aAAA,KAAkB,IAAM,EAAA;AACzD,MAAA,SAAA,CAAU,GAAG,CAAI,GAAA,MAAA;AACjB,MAAQ,OAAA,CAAA,GAAA,CAAI,GAAG,CAAI,GAAA,MAAA;AAAA,KACd,MAAA;AACL,MAAA,SAAA,CAAU,GAAG,CAAI,GAAA,aAAA;AACjB,MAAA,OAAA,CAAQ,GAAI,CAAA,GAAG,CAAI,GAAA,aAAA,CAAc,QAAS,EAAA;AAAA;AAC5C;AAIJ;AAhCsB,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA","file":"chunk-BS3AGAHF.js","sourcesContent":["import { checkForConfigErrors } from './cli/helpers/error-checks';\nimport { loadVarlockEnvGraph } from './lib/load-graph';\nimport { resetRedactionMap } from './lib/redaction-helpers';\n\n\nlet envValues = {} as Record<string, any>;\nlet publicKeys = [] as Array<string>;\n\n// these types will be overridden/augmented by the generated types\nexport interface TypedEnvSchema {}\nexport interface PublicTypedEnvSchema {}\n\nconst EnvProxy = new Proxy<TypedEnvSchema>({}, {\n get(target, prop) {\n if (typeof prop !== 'string') throw new Error('prop keys cannot be symbols');\n if (!(prop in envValues)) throw new Error(`Env key \\`${prop}\\` does not exist`);\n return envValues[prop.toString()];\n },\n});\nconst PublicEnvProxy = new Proxy<PublicTypedEnvSchema>({}, {\n get(target, prop) {\n if (typeof prop !== 'string') throw new Error('prop keys cannot be symbols');\n if (!(prop in envValues)) throw new Error(`Env key \\`${prop}\\` does not exist`);\n if (!publicKeys.includes(prop.toString())) throw new Error(`${prop.toString()} is sensitive, use ENV instead of PUBLIC_ENV`);\n return envValues[prop.toString()];\n },\n});\n\nexport const ENV = EnvProxy;\nexport const PUBLIC_ENV = PublicEnvProxy;\n\nexport function loadSync() {\n throw new Error('Not yet supported');\n}\n\nexport async function load() {\n // TODO: add some options\n // console.log('loading varlock (async)');\n\n\n const envGraph = await loadVarlockEnvGraph();\n await envGraph.resolveEnvValues();\n\n checkForConfigErrors(envGraph);\n\n const resolvedEnv = envGraph.getResolvedEnvObject();\n\n resetRedactionMap(envGraph);\n\n // reset env values\n envValues = {};\n publicKeys = [];\n\n for (const key in resolvedEnv) {\n if (!envGraph.configSchema[key].isSensitive) publicKeys.push(key);\n\n const resolvedValue = resolvedEnv[key];\n if (resolvedValue === undefined || resolvedValue === null) {\n envValues[key] = undefined;\n process.env[key] = undefined; // not sure what to do here\n } else {\n envValues[key] = resolvedValue;\n process.env[key] = resolvedValue.toString();\n }\n }\n\n // TODO: return resolved env and schema / meta info\n}\n\n// expose redaction utils\nexport { VarlockRedactor } from './lib/redaction-helpers';\n"]}
|