varlock 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audit.command-PXY2ZGU2.js +16 -0
- package/dist/{audit.command-6TUJY57M.js.map → audit.command-PXY2ZGU2.js.map} +1 -1
- package/dist/auto-load.js +5 -5
- package/dist/{chunk-CWC3IAQM.js → chunk-2GZ4APXU.js} +29 -14
- package/dist/chunk-2GZ4APXU.js.map +1 -0
- package/dist/{chunk-2OIOYMYO.js → chunk-66VKZYD7.js} +6 -6
- package/dist/{chunk-2OIOYMYO.js.map → chunk-66VKZYD7.js.map} +1 -1
- package/dist/{chunk-BR3DT5Z5.js → chunk-7VERU3F7.js} +3 -3
- package/dist/{chunk-BR3DT5Z5.js.map → chunk-7VERU3F7.js.map} +1 -1
- package/dist/{chunk-KCUEK4TX.js → chunk-A5L3SRQS.js} +7 -7
- package/dist/{chunk-KCUEK4TX.js.map → chunk-A5L3SRQS.js.map} +1 -1
- package/dist/{chunk-5DUWGI2N.js → chunk-DIPEXEIL.js} +3 -3
- package/dist/{chunk-5DUWGI2N.js.map → chunk-DIPEXEIL.js.map} +1 -1
- package/dist/{chunk-2NQLWXPX.js → chunk-DQTUCLA7.js} +5 -5
- package/dist/{chunk-2NQLWXPX.js.map → chunk-DQTUCLA7.js.map} +1 -1
- package/dist/{chunk-VIUMRSUR.js → chunk-EGFAEO7L.js} +8 -8
- package/dist/{chunk-VIUMRSUR.js.map → chunk-EGFAEO7L.js.map} +1 -1
- package/dist/{chunk-FCSQRLIC.js → chunk-F64DA7XN.js} +6 -6
- package/dist/{chunk-FCSQRLIC.js.map → chunk-F64DA7XN.js.map} +1 -1
- package/dist/{chunk-6CCHLM3U.js → chunk-FA5SNEKN.js} +30 -12
- package/dist/chunk-FA5SNEKN.js.map +1 -0
- package/dist/{chunk-F6RTQ5QX.js → chunk-KFALDUEO.js} +3 -3
- package/dist/{chunk-F6RTQ5QX.js.map → chunk-KFALDUEO.js.map} +1 -1
- package/dist/{chunk-OA6PRICO.js → chunk-M6QE3D2O.js} +6 -6
- package/dist/{chunk-OA6PRICO.js.map → chunk-M6QE3D2O.js.map} +1 -1
- package/dist/{chunk-4A54P4EM.js → chunk-MGUGRIW2.js} +1185 -1152
- package/dist/chunk-MGUGRIW2.js.map +1 -0
- package/dist/{chunk-26E4E2MY.js → chunk-N7FJTNE5.js} +11 -5
- package/dist/chunk-N7FJTNE5.js.map +1 -0
- package/dist/chunk-NHNQJTPB.js +171 -0
- package/dist/chunk-NHNQJTPB.js.map +1 -0
- package/dist/{chunk-6PZXN47A.js → chunk-NZTQKZND.js} +4 -4
- package/dist/{chunk-6PZXN47A.js.map → chunk-NZTQKZND.js.map} +1 -1
- package/dist/{chunk-GURKQO4J.js → chunk-P4HNABAM.js} +103 -20
- package/dist/chunk-P4HNABAM.js.map +1 -0
- package/dist/{chunk-6CRDPEUT.js → chunk-PBWMMYWL.js} +685 -684
- package/dist/chunk-PBWMMYWL.js.map +1 -0
- package/dist/{chunk-H2JVYUHZ.js → chunk-Q4I7MXFB.js} +6 -6
- package/dist/{chunk-H2JVYUHZ.js.map → chunk-Q4I7MXFB.js.map} +1 -1
- package/dist/{chunk-GJ7PTJM4.js → chunk-Q7XUQDLE.js} +3 -3
- package/dist/{chunk-GJ7PTJM4.js.map → chunk-Q7XUQDLE.js.map} +1 -1
- package/dist/{chunk-R73FENLU.js → chunk-QDEAHBCB.js} +3 -3
- package/dist/{chunk-R73FENLU.js.map → chunk-QDEAHBCB.js.map} +1 -1
- package/dist/{chunk-2PBFWISH.js → chunk-ROZITJAP.js} +8 -8
- package/dist/chunk-ROZITJAP.js.map +1 -0
- package/dist/{chunk-35LTPRXV.js → chunk-RTKFINP6.js} +6 -6
- package/dist/{chunk-35LTPRXV.js.map → chunk-RTKFINP6.js.map} +1 -1
- package/dist/{chunk-QSYH5IDD.js → chunk-RWXFFQWH.js} +4 -4
- package/dist/{chunk-QSYH5IDD.js.map → chunk-RWXFFQWH.js.map} +1 -1
- package/dist/{chunk-LGEHJHB2.js → chunk-SX2NUZCL.js} +6 -5
- package/dist/{chunk-LGEHJHB2.js.map → chunk-SX2NUZCL.js.map} +1 -1
- package/dist/{chunk-A2JUQ2GK.js → chunk-T3NMDBCU.js} +6 -6
- package/dist/{chunk-A2JUQ2GK.js.map → chunk-T3NMDBCU.js.map} +1 -1
- package/dist/{chunk-MGWUDHT5.js → chunk-UUJK65RS.js} +11 -3
- package/dist/chunk-UUJK65RS.js.map +1 -0
- package/dist/{chunk-YHN6GZHR.js → chunk-YZCCCHDD.js} +6 -6
- package/dist/{chunk-YHN6GZHR.js.map → chunk-YZCCCHDD.js.map} +1 -1
- package/dist/{chunk-EE4UNY25.js → chunk-ZCYV47TZ.js} +8 -8
- package/dist/{chunk-EE4UNY25.js.map → chunk-ZCYV47TZ.js.map} +1 -1
- package/dist/cli/cli-executable.js +1547 -40
- package/dist/cli/cli-executable.js.map +1 -1
- package/dist/config-item-HMRJLPJY.js +7 -0
- package/dist/{config-item-7X6PUXJF.js.map → config-item-HMRJLPJY.js.map} +1 -1
- package/dist/dotenv-compat.js +5 -5
- package/dist/encrypt.command-7M34IUJY.js +14 -0
- package/dist/{encrypt.command-4E5SM5M6.js.map → encrypt.command-7M34IUJY.js.map} +1 -1
- package/dist/{env-graph-iNQyTcya.d.ts → env-graph-DImkUkjl.d.ts} +30 -19
- package/dist/explain.command-LZJOP4TM.js +15 -0
- package/dist/{explain.command-7FRFYSJJ.js.map → explain.command-LZJOP4TM.js.map} +1 -1
- package/dist/help.command-VIBYZWCF.js +5 -0
- package/dist/{help.command-7E52XAOO.js.map → help.command-VIBYZWCF.js.map} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +13 -14
- package/dist/index.js.map +1 -1
- package/dist/init.command-FFORG2JL.js +14 -0
- package/dist/{init.command-EMPZK5D3.js.map → init.command-FFORG2JL.js.map} +1 -1
- package/dist/install-plugin.command-SFNHDKVE.js +13 -0
- package/dist/{install-plugin.command-SYQAPBII.js.map → install-plugin.command-SFNHDKVE.js.map} +1 -1
- package/dist/load.command-V3C5H6CZ.js +15 -0
- package/dist/{load.command-R7UTXX2X.js.map → load.command-V3C5H6CZ.js.map} +1 -1
- package/dist/lock.command-QQV2S6NY.js +7 -0
- package/dist/{lock.command-4LTGMJA3.js.map → lock.command-QQV2S6NY.js.map} +1 -1
- package/dist/plugin-lib.d.ts +2 -2
- package/dist/plugin-lib.js +2 -2
- package/dist/printenv.command-2BIP7FCF.js +15 -0
- package/dist/{printenv.command-EVYMVYEZ.js.map → printenv.command-2BIP7FCF.js.map} +1 -1
- package/dist/reveal.command-7LHNCYS4.js +15 -0
- package/dist/{reveal.command-6IH7XDVT.js.map → reveal.command-7LHNCYS4.js.map} +1 -1
- package/dist/run.command-TRSRYDOM.js +16 -0
- package/dist/{run.command-WW2YKPUP.js.map → run.command-TRSRYDOM.js.map} +1 -1
- package/dist/runtime/env.d.ts +1 -1
- package/dist/runtime/env.js +1 -1
- package/dist/runtime/init-edge.cjs +9 -1
- package/dist/runtime/init-server.cjs +9 -1
- package/dist/runtime/patch-console.js +2 -2
- package/dist/runtime/patch-response.js +2 -2
- package/dist/runtime/patch-server-response.js +2 -2
- package/dist/scan.command-NMBEPFUC.js +16 -0
- package/dist/{scan.command-6PSWFMI5.js.map → scan.command-NMBEPFUC.js.map} +1 -1
- package/dist/telemetry.command-SMIT5ZZB.js +13 -0
- package/dist/{telemetry.command-ZD6XCRBZ.js.map → telemetry.command-SMIT5ZZB.js.map} +1 -1
- package/dist/typegen.command-C5KWLYPL.js +14 -0
- package/dist/{typegen.command-IKXM7OSU.js.map → typegen.command-C5KWLYPL.js.map} +1 -1
- package/native-bins/darwin/VarlockEnclave.app/Contents/CodeResources +0 -0
- package/native-bins/darwin/VarlockEnclave.app/Contents/MacOS/varlock-local-encrypt +0 -0
- package/native-bins/linux-arm64/varlock-local-encrypt +0 -0
- package/native-bins/linux-x64/varlock-local-encrypt +0 -0
- package/native-bins/win32-x64/varlock-local-encrypt.exe +0 -0
- package/package.json +4 -3
- package/dist/audit.command-6TUJY57M.js +0 -16
- package/dist/chunk-26E4E2MY.js.map +0 -1
- package/dist/chunk-2PBFWISH.js.map +0 -1
- package/dist/chunk-45N5EFNL.js +0 -136
- package/dist/chunk-45N5EFNL.js.map +0 -1
- package/dist/chunk-4A54P4EM.js.map +0 -1
- package/dist/chunk-6CCHLM3U.js.map +0 -1
- package/dist/chunk-6CRDPEUT.js.map +0 -1
- package/dist/chunk-CWC3IAQM.js.map +0 -1
- package/dist/chunk-GURKQO4J.js.map +0 -1
- package/dist/chunk-MGWUDHT5.js.map +0 -1
- package/dist/config-item-7X6PUXJF.js +0 -7
- package/dist/encrypt.command-4E5SM5M6.js +0 -14
- package/dist/explain.command-7FRFYSJJ.js +0 -15
- package/dist/help.command-7E52XAOO.js +0 -5
- package/dist/init.command-EMPZK5D3.js +0 -14
- package/dist/install-plugin.command-SYQAPBII.js +0 -13
- package/dist/load.command-R7UTXX2X.js +0 -15
- package/dist/lock.command-4LTGMJA3.js +0 -7
- package/dist/printenv.command-EVYMVYEZ.js +0 -15
- package/dist/reveal.command-6IH7XDVT.js +0 -15
- package/dist/run.command-WW2YKPUP.js +0 -16
- package/dist/scan.command-6PSWFMI5.js +0 -16
- package/dist/telemetry.command-ZD6XCRBZ.js +0 -13
- package/dist/typegen.command-IKXM7OSU.js +0 -15
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { CliExitError, getItemSummary, joinAndCompact } from './chunk-SX2NUZCL.js';
|
|
2
|
+
import { ansis_default, FileBasedDataSource } from './chunk-PBWMMYWL.js';
|
|
3
|
+
import { ParseError, LoadingError } from './chunk-FA5SNEKN.js';
|
|
4
|
+
import { __name } from './chunk-6PEHRAEP.js';
|
|
5
|
+
|
|
6
|
+
// src/cli/helpers/error-checks.ts
|
|
7
|
+
function showErrorLocationDetails(err) {
|
|
8
|
+
if (!err.location) return;
|
|
9
|
+
const errLoc = err.location;
|
|
10
|
+
const errPreview = [
|
|
11
|
+
errLoc.lineStr,
|
|
12
|
+
`${ansis_default.gray("-".repeat(errLoc.colNumber - 1))}${ansis_default.red("^")}`
|
|
13
|
+
].join("\n");
|
|
14
|
+
console.error("");
|
|
15
|
+
console.error(`\u{1F4C2} ${errLoc.id}:${errLoc.lineNumber}:${errLoc.colNumber}`);
|
|
16
|
+
console.error(errPreview);
|
|
17
|
+
}
|
|
18
|
+
__name(showErrorLocationDetails, "showErrorLocationDetails");
|
|
19
|
+
function showErrorTip(err) {
|
|
20
|
+
if (!err.tip) return;
|
|
21
|
+
for (const line of err.tip.split("\n")) {
|
|
22
|
+
console.error(` ${line}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
__name(showErrorTip, "showErrorTip");
|
|
26
|
+
function checkForNoEnvFiles(envGraph, opts) {
|
|
27
|
+
if (Object.keys(envGraph.configSchema).length === 0) {
|
|
28
|
+
const hasParseErrors = envGraph.sortedDataSources.some((s) => s.loadingError instanceof ParseError);
|
|
29
|
+
if (hasParseErrors) {
|
|
30
|
+
if (opts?.noThrow) return;
|
|
31
|
+
throw new CliExitError("Parse error", { silent: true });
|
|
32
|
+
}
|
|
33
|
+
const displayPath = envGraph.basePath ?? process.cwd();
|
|
34
|
+
const hasLoadedFiles = envGraph.sortedDataSources.some((s) => s instanceof FileBasedDataSource);
|
|
35
|
+
if (!hasLoadedFiles) {
|
|
36
|
+
console.error(`\u{1F6A8} No .env files found in ${displayPath}
|
|
37
|
+
`);
|
|
38
|
+
console.error("Run `varlock init` to create a .env.schema file, or use `--path` to specify a file or directory.");
|
|
39
|
+
} else {
|
|
40
|
+
console.error(`\u{1F6A8} No config items defined in ${displayPath}
|
|
41
|
+
`);
|
|
42
|
+
console.error("Add items to your .env.schema file to get started.");
|
|
43
|
+
}
|
|
44
|
+
if (opts?.noThrow) return;
|
|
45
|
+
throw new CliExitError("No env files", { silent: true });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
__name(checkForNoEnvFiles, "checkForNoEnvFiles");
|
|
49
|
+
function checkForSchemaErrors(envGraph, opts) {
|
|
50
|
+
let hasErrors = false;
|
|
51
|
+
let hasOutput = false;
|
|
52
|
+
for (const source of envGraph.sortedDataSources) {
|
|
53
|
+
const warnings = source.errors.filter((e) => e.isWarning);
|
|
54
|
+
const errors = source.errors.filter((e) => !e.isWarning);
|
|
55
|
+
if (!warnings.length && !errors.length) continue;
|
|
56
|
+
hasOutput = true;
|
|
57
|
+
const loadingErrors = errors.filter((e) => e instanceof LoadingError || e instanceof ParseError);
|
|
58
|
+
const otherErrors = errors.filter((e) => !(e instanceof LoadingError || e instanceof ParseError));
|
|
59
|
+
console.error(ansis_default.bold[errors.length ? "red" : "yellow"](`-- Problems encountered in ${source.label} --`));
|
|
60
|
+
if (source instanceof FileBasedDataSource) {
|
|
61
|
+
console.error("\u{1F4C1}", ansis_default.dim(`${source.fullPath}`));
|
|
62
|
+
console.log("");
|
|
63
|
+
}
|
|
64
|
+
for (const warning of warnings) {
|
|
65
|
+
console.error(ansis_default.yellow(`- \u26A0\uFE0F ${warning.message}`));
|
|
66
|
+
showErrorLocationDetails(warning);
|
|
67
|
+
}
|
|
68
|
+
for (const err of loadingErrors) {
|
|
69
|
+
console.error(ansis_default.red(`- \u274C ${err.message}`));
|
|
70
|
+
showErrorLocationDetails(err);
|
|
71
|
+
if (err.isUnexpected && err.originalError?.stack) {
|
|
72
|
+
console.error(`
|
|
73
|
+
${ansis_default.dim("Stack trace:")}`);
|
|
74
|
+
console.error(ansis_default.dim(err.originalError.stack));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
for (const err of otherErrors) {
|
|
78
|
+
console.error(ansis_default.red(`- \u274C ${err.message}`));
|
|
79
|
+
showErrorTip(err);
|
|
80
|
+
showErrorLocationDetails(err);
|
|
81
|
+
}
|
|
82
|
+
if (errors.length) {
|
|
83
|
+
hasErrors = true;
|
|
84
|
+
if (!opts?.noThrow) throw new CliExitError("Schema error", { silent: true });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return { hasErrors, hasOutput };
|
|
88
|
+
}
|
|
89
|
+
__name(checkForSchemaErrors, "checkForSchemaErrors");
|
|
90
|
+
function showPluginWarnings(envGraph) {
|
|
91
|
+
for (const plugin of envGraph.plugins) {
|
|
92
|
+
if (!plugin.warnings.length) continue;
|
|
93
|
+
for (const warning of plugin.warnings) {
|
|
94
|
+
console.error(ansis_default.yellow(`[WARNING] ${warning.message}`));
|
|
95
|
+
if (warning.tip) {
|
|
96
|
+
for (const line of warning.tip.split("\n")) {
|
|
97
|
+
console.error(` ${line}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
__name(showPluginWarnings, "showPluginWarnings");
|
|
104
|
+
var InvalidEnvError = class extends Error {
|
|
105
|
+
static {
|
|
106
|
+
__name(this, "InvalidEnvError");
|
|
107
|
+
}
|
|
108
|
+
constructor() {
|
|
109
|
+
super("Resolved config/env did not pass validation");
|
|
110
|
+
}
|
|
111
|
+
getFormattedOutput() {
|
|
112
|
+
return `
|
|
113
|
+
\u{1F4A5} ${ansis_default.red(this.message)} \u{1F4A5}
|
|
114
|
+
`;
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
function checkForConfigErrors(envGraph, opts) {
|
|
118
|
+
let hasRootDecoratorErrors = false;
|
|
119
|
+
for (const source of envGraph.sortedDataSources) {
|
|
120
|
+
const resErrors = source.resolutionErrors;
|
|
121
|
+
if (resErrors.length) {
|
|
122
|
+
hasRootDecoratorErrors = true;
|
|
123
|
+
console.error(`\u{1F6A8} Root decorator error(s) in ${source.label}`);
|
|
124
|
+
if (source instanceof FileBasedDataSource) {
|
|
125
|
+
console.error(ansis_default.dim(` ${source.fullPath}`));
|
|
126
|
+
}
|
|
127
|
+
for (const err of resErrors) {
|
|
128
|
+
console.error(ansis_default.red(` - \u274C ${err.message}`));
|
|
129
|
+
showErrorTip(err);
|
|
130
|
+
showErrorLocationDetails(err);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (hasRootDecoratorErrors) {
|
|
135
|
+
if (!opts?.noThrow) throw new CliExitError("Schema error", { silent: true });
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const failingItems = envGraph.sortedConfigKeys.map((k) => envGraph.configSchema[k]).filter((item) => item.validationState === "error");
|
|
139
|
+
const warningItems = envGraph.sortedConfigKeys.map((k) => envGraph.configSchema[k]).filter((item) => item.validationState === "warn");
|
|
140
|
+
if (failingItems.length > 0) {
|
|
141
|
+
console.error(`
|
|
142
|
+
\u{1F6A8}\u{1F6A8}\u{1F6A8} ${ansis_default.bold.red.underline("Configuration is currently invalid")} \u{1F6A8}\u{1F6A8}\u{1F6A8}
|
|
143
|
+
`);
|
|
144
|
+
for (const item of failingItems) {
|
|
145
|
+
console.error(getItemSummary(item));
|
|
146
|
+
}
|
|
147
|
+
for (const item of warningItems) {
|
|
148
|
+
console.error(getItemSummary(item));
|
|
149
|
+
}
|
|
150
|
+
if (opts?.showAll) {
|
|
151
|
+
console.error();
|
|
152
|
+
console.error(joinAndCompact([
|
|
153
|
+
"Valid items:",
|
|
154
|
+
ansis_default.italic.gray("(remove `--show-all` flag to hide)")
|
|
155
|
+
]));
|
|
156
|
+
const validItems = envGraph.sortedConfigKeys.map((k) => envGraph.configSchema[k]).filter((i) => !!i.isValid);
|
|
157
|
+
for (const item of validItems) {
|
|
158
|
+
console.error(getItemSummary(item));
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
showPluginWarnings(envGraph);
|
|
162
|
+
if (!opts?.noThrow) {
|
|
163
|
+
throw new InvalidEnvError();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
__name(checkForConfigErrors, "checkForConfigErrors");
|
|
168
|
+
|
|
169
|
+
export { InvalidEnvError, checkForConfigErrors, checkForNoEnvFiles, checkForSchemaErrors, showPluginWarnings };
|
|
170
|
+
//# sourceMappingURL=chunk-NHNQJTPB.js.map
|
|
171
|
+
//# sourceMappingURL=chunk-NHNQJTPB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/helpers/error-checks.ts"],"names":[],"mappings":"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","file":"chunk-NHNQJTPB.js","sourcesContent":["import ansis from 'ansis';\nimport { EnvGraph, FileBasedDataSource } from '../../env-graph';\nimport { getItemSummary, joinAndCompact } from '../../lib/formatting';\nimport {\n LoadingError, ParseError, VarlockError,\n} from '../../env-graph/lib/errors';\nimport { CliExitError } from './exit-error';\n\nfunction showErrorLocationDetails(err: VarlockError) {\n if (!err.location) return;\n const errLoc = err.location;\n const errPreview = [\n errLoc.lineStr,\n `${ansis.gray('-'.repeat(errLoc.colNumber - 1))}${ansis.red('^')}`,\n ].join('\\n');\n\n console.error('');\n console.error(`📂 ${errLoc.id}:${errLoc.lineNumber}:${errLoc.colNumber}`);\n console.error(errPreview);\n}\n\nfunction showErrorTip(err: VarlockError) {\n if (!err.tip) return;\n for (const line of err.tip.split('\\n')) {\n console.error(` ${line}`);\n }\n}\n\nexport function checkForNoEnvFiles(envGraph: EnvGraph, opts?: { noThrow?: boolean }) {\n if (Object.keys(envGraph.configSchema).length === 0) {\n // If a source has a parse error, the schema couldn't be read at all so\n // \"no config items defined\" is misleading — the parse error (already\n // reported by checkForSchemaErrors) is the real problem.\n const hasParseErrors = envGraph.sortedDataSources.some((s) => s.loadingError instanceof ParseError);\n if (hasParseErrors) {\n if (opts?.noThrow) return;\n throw new CliExitError('Parse error', { silent: true });\n }\n\n const displayPath = envGraph.basePath ?? process.cwd();\n const hasLoadedFiles = envGraph.sortedDataSources.some((s) => s instanceof FileBasedDataSource);\n if (!hasLoadedFiles) {\n console.error(`🚨 No .env files found in ${displayPath}\\n`);\n console.error('Run `varlock init` to create a .env.schema file, or use `--path` to specify a file or directory.');\n } else {\n console.error(`🚨 No config items defined in ${displayPath}\\n`);\n console.error('Add items to your .env.schema file to get started.');\n }\n if (opts?.noThrow) return;\n throw new CliExitError('No env files', { silent: true });\n }\n}\n\nexport function checkForSchemaErrors(envGraph: EnvGraph, opts?: { noThrow?: boolean }) {\n let hasErrors = false;\n let hasOutput = false;\n for (const source of envGraph.sortedDataSources) {\n const warnings = source.errors.filter((e) => e.isWarning);\n const errors = source.errors.filter((e) => !e.isWarning);\n\n if (!warnings.length && !errors.length) continue;\n hasOutput = true;\n\n // group by error type for clearer output\n const loadingErrors = errors.filter((e) => e instanceof LoadingError || e instanceof ParseError);\n const otherErrors = errors.filter((e) => !(e instanceof LoadingError || e instanceof ParseError));\n\n // single header per file\n console.error(ansis.bold[errors.length ? 'red' : 'yellow'](`-- Problems encountered in ${source.label} --`));\n\n if (source instanceof FileBasedDataSource) {\n console.error('📁', ansis.dim(`${source.fullPath}`));\n console.log('');\n }\n\n for (const warning of warnings) {\n console.error(ansis.yellow(`- ⚠️ ${warning.message}`));\n showErrorLocationDetails(warning);\n }\n\n for (const err of loadingErrors) {\n console.error(ansis.red(`- ❌ ${err.message}`));\n showErrorLocationDetails(err);\n if (err.isUnexpected && err.originalError?.stack) {\n console.error(`\\n${ansis.dim('Stack trace:')}`);\n console.error(ansis.dim(err.originalError.stack));\n }\n }\n\n for (const err of otherErrors) {\n console.error(ansis.red(`- ❌ ${err.message}`));\n showErrorTip(err);\n showErrorLocationDetails(err);\n }\n\n if (errors.length) {\n hasErrors = true;\n if (!opts?.noThrow) throw new CliExitError('Schema error', { silent: true });\n }\n }\n return { hasErrors, hasOutput };\n}\n\n\nexport function showPluginWarnings(envGraph: EnvGraph) {\n for (const plugin of envGraph.plugins) {\n if (!plugin.warnings.length) continue;\n for (const warning of plugin.warnings) {\n console.error(ansis.yellow(`[WARNING] ${warning.message}`));\n if (warning.tip) {\n for (const line of warning.tip.split('\\n')) {\n console.error(` ${line}`);\n }\n }\n }\n }\n}\n\nexport class InvalidEnvError extends Error {\n constructor() {\n super('Resolved config/env did not pass validation');\n }\n getFormattedOutput() {\n return `\\n💥 ${ansis.red(this.message)} 💥\\n`;\n }\n}\n\nexport function checkForConfigErrors(envGraph: EnvGraph, opts?: {\n showAll?: boolean;\n /** Log errors to stderr but don't throw — used when the caller will handle errors itself (e.g. json-full output) */\n noThrow?: boolean;\n}) {\n // check for root decorator execution errors (fatal — stop before showing items)\n let hasRootDecoratorErrors = false;\n for (const source of envGraph.sortedDataSources) {\n const resErrors = source.resolutionErrors;\n if (resErrors.length) {\n hasRootDecoratorErrors = true;\n console.error(`🚨 Root decorator error(s) in ${source.label}`);\n if (source instanceof FileBasedDataSource) {\n console.error(ansis.dim(` ${source.fullPath}`));\n }\n\n for (const err of resErrors) {\n console.error(ansis.red(` - ❌ ${err.message}`));\n showErrorTip(err);\n showErrorLocationDetails(err);\n }\n }\n }\n\n if (hasRootDecoratorErrors) {\n if (!opts?.noThrow) throw new CliExitError('Schema error', { silent: true });\n return;\n }\n\n const failingItems = envGraph.sortedConfigKeys\n .map((k) => envGraph.configSchema[k])\n .filter((item) => item.validationState === 'error');\n const warningItems = envGraph.sortedConfigKeys\n .map((k) => envGraph.configSchema[k])\n .filter((item) => item.validationState === 'warn');\n\n if (failingItems.length > 0) {\n console.error(`\\n🚨🚨🚨 ${ansis.bold.red.underline('Configuration is currently invalid')} 🚨🚨🚨\\n`);\n\n for (const item of failingItems) {\n console.error(getItemSummary(item));\n }\n for (const item of warningItems) {\n console.error(getItemSummary(item));\n }\n\n if (opts?.showAll) {\n console.error();\n console.error(joinAndCompact([\n 'Valid items:',\n ansis.italic.gray('(remove `--show-all` flag to hide)'),\n ]));\n const validItems = envGraph.sortedConfigKeys\n .map((k) => envGraph.configSchema[k])\n .filter((i) => !!i.isValid);\n for (const item of validItems) {\n console.error(getItemSummary(item));\n }\n }\n\n showPluginWarnings(envGraph);\n if (!opts?.noThrow) {\n throw new InvalidEnvError();\n }\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CliExitError } from './chunk-
|
|
2
|
-
import { detectWorkspaceInfo, ansis_default } from './chunk-
|
|
1
|
+
import { CliExitError } from './chunk-SX2NUZCL.js';
|
|
2
|
+
import { detectWorkspaceInfo, ansis_default } from './chunk-PBWMMYWL.js';
|
|
3
3
|
import { __name } from './chunk-6PEHRAEP.js';
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import fs, { existsSync } from 'fs';
|
|
@@ -64,5 +64,5 @@ var logLines = /* @__PURE__ */ __name((lines) => {
|
|
|
64
64
|
}, "logLines");
|
|
65
65
|
|
|
66
66
|
export { detectJsPackageManager, fmt, installJsDependency, logLines };
|
|
67
|
-
//# sourceMappingURL=chunk-
|
|
68
|
-
//# sourceMappingURL=chunk-
|
|
67
|
+
//# sourceMappingURL=chunk-NZTQKZND.js.map
|
|
68
|
+
//# sourceMappingURL=chunk-NZTQKZND.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli/helpers/js-package-manager-utils.ts","../src/cli/helpers/pretty-format.ts"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/cli/helpers/js-package-manager-utils.ts","../src/cli/helpers/pretty-format.ts"],"names":[],"mappings":"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","file":"chunk-NZTQKZND.js","sourcesContent":["// Re-exports for backward compatibility - prefer importing from lib/workspace-utils directly\nexport {\n JS_PACKAGE_MANAGERS,\n detectWorkspaceInfo,\n getWorkspaceInfo,\n runWithWorkspaceInfo,\n type JsPackageManager,\n type JsPackageManagerMeta,\n type WorkspaceInfo,\n type MonorepoTool,\n} from '../../lib/workspace-utils';\n\nimport path from 'node:path';\nimport fs, { existsSync } from 'node:fs';\nimport { execSync } from 'node:child_process';\nimport { CliExitError } from './exit-error';\nimport { detectWorkspaceInfo, type JsPackageManager } from '../../lib/workspace-utils';\n\nexport function detectJsPackageManager(opts?: {\n cwd?: string,\n exitIfNotFound?: boolean,\n}) {\n const info = detectWorkspaceInfo({ cwd: opts?.cwd });\n if (!info) {\n if (opts?.exitIfNotFound) {\n throw new CliExitError('Unable to 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 return undefined;\n }\n return info.packageManager;\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","import ansis from 'ansis';\nimport { detectJsPackageManager, type 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"]}
|
|
@@ -551,6 +551,11 @@ var DaemonClient = class {
|
|
|
551
551
|
});
|
|
552
552
|
}
|
|
553
553
|
async spawnDaemon() {
|
|
554
|
+
if (isWSL()) {
|
|
555
|
+
throw new Error(
|
|
556
|
+
"DaemonClient is not supported on WSL2. The Windows encryption daemon uses a Windows named pipe that Linux socket APIs cannot connect to. Use the Windows binary directly instead."
|
|
557
|
+
);
|
|
558
|
+
}
|
|
554
559
|
const binaryPath = resolveNativeBinary();
|
|
555
560
|
if (!binaryPath) {
|
|
556
561
|
throw new Error("Native encryption binary not found \u2014 cannot start daemon");
|
|
@@ -853,13 +858,88 @@ function debug3(msg) {
|
|
|
853
858
|
}
|
|
854
859
|
}
|
|
855
860
|
__name(debug3, "debug");
|
|
856
|
-
var
|
|
857
|
-
|
|
858
|
-
|
|
861
|
+
var SHELL_RUNNER_NAMES = /* @__PURE__ */ new Set(["sh", "bash", "zsh", "dash", "fish", "ksh", "csh", "tcsh"]);
|
|
862
|
+
var VARLOCK_LAUNCHER_NAMES = /* @__PURE__ */ new Set(["varlock", "varlock.exe", "varlock.cmd"]);
|
|
863
|
+
var PACKAGE_MANAGER_RUNNER_NAMES = /* @__PURE__ */ new Set(["bun", "node", "npm", "npx", "pnpm", "pnpx", "yarn", "yarnpkg"]);
|
|
864
|
+
var NO_TTY_SESSION_ENV_KEYS = [
|
|
865
|
+
"CODEX_THREAD_ID",
|
|
866
|
+
"CLAUDE_CODE_SESSION_ID",
|
|
867
|
+
"CLAUDE_SESSION_ID"
|
|
868
|
+
];
|
|
869
|
+
function getProcessName(pid) {
|
|
870
|
+
try {
|
|
871
|
+
const exePath = fs.readlinkSync(`/proc/${pid}/exe`);
|
|
872
|
+
return exePath.split("/").pop()?.toLowerCase();
|
|
873
|
+
} catch {
|
|
874
|
+
}
|
|
875
|
+
try {
|
|
876
|
+
return fs.readFileSync(`/proc/${pid}/comm`, "utf-8").trim().toLowerCase();
|
|
877
|
+
} catch {
|
|
878
|
+
return void 0;
|
|
879
|
+
}
|
|
880
|
+
}
|
|
881
|
+
__name(getProcessName, "getProcessName");
|
|
882
|
+
function getProcessArgs(pid) {
|
|
883
|
+
try {
|
|
884
|
+
return fs.readFileSync(`/proc/${pid}/cmdline`, "utf-8").split("\0").filter(Boolean);
|
|
885
|
+
} catch {
|
|
886
|
+
return [];
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
__name(getProcessArgs, "getProcessArgs");
|
|
890
|
+
function processCommandLineLaunchesVarlock(pid) {
|
|
891
|
+
return getProcessArgs(pid).some((arg) => {
|
|
892
|
+
const name = arg.split("/").pop()?.toLowerCase();
|
|
893
|
+
return Boolean(
|
|
894
|
+
name && VARLOCK_LAUNCHER_NAMES.has(name) || arg.includes("/node_modules/.bin/varlock") || arg.includes("/varlock/bin/cli.js") || arg.includes("/packages/varlock/bin/cli.js")
|
|
895
|
+
);
|
|
896
|
+
});
|
|
897
|
+
}
|
|
898
|
+
__name(processCommandLineLaunchesVarlock, "processCommandLineLaunchesVarlock");
|
|
899
|
+
function isEphemeralRunner(pid) {
|
|
900
|
+
const name = getProcessName(pid);
|
|
901
|
+
if (!name) return false;
|
|
902
|
+
if (SHELL_RUNNER_NAMES.has(name) || VARLOCK_LAUNCHER_NAMES.has(name)) return true;
|
|
903
|
+
return PACKAGE_MANAGER_RUNNER_NAMES.has(name) && processCommandLineLaunchesVarlock(pid);
|
|
904
|
+
}
|
|
905
|
+
__name(isEphemeralRunner, "isEphemeralRunner");
|
|
906
|
+
function selectScopePidFromChain(chain) {
|
|
907
|
+
if (chain.length < 2) return void 0;
|
|
908
|
+
if (chain.length >= 4) {
|
|
909
|
+
let scopePid = chain[chain.length - 3];
|
|
910
|
+
if (isEphemeralRunner(scopePid)) {
|
|
911
|
+
const fallback = chain[chain.length - 2];
|
|
912
|
+
scopePid = isEphemeralRunner(fallback) ? chain[chain.length - 1] : fallback;
|
|
913
|
+
}
|
|
914
|
+
return scopePid;
|
|
915
|
+
}
|
|
916
|
+
return chain[chain.length - 1];
|
|
917
|
+
}
|
|
918
|
+
__name(selectScopePidFromChain, "selectScopePidFromChain");
|
|
919
|
+
function getProcessStartTime(pid) {
|
|
920
|
+
try {
|
|
921
|
+
const scopeStat = fs.readFileSync(`/proc/${pid}/stat`, "utf-8");
|
|
922
|
+
const scopeFields = scopeStat.split(") ");
|
|
923
|
+
if (scopeFields.length >= 2) {
|
|
924
|
+
return parseInt(scopeFields[1].split(" ")[19], 10) || 0;
|
|
925
|
+
}
|
|
926
|
+
} catch {
|
|
927
|
+
}
|
|
928
|
+
return 0;
|
|
929
|
+
}
|
|
930
|
+
__name(getProcessStartTime, "getProcessStartTime");
|
|
931
|
+
function getNoTtySessionIdFromEnv() {
|
|
932
|
+
for (const key of NO_TTY_SESSION_ENV_KEYS) {
|
|
933
|
+
const value = process.env[key]?.trim();
|
|
934
|
+
if (value) return `env:${key}:${value}`;
|
|
935
|
+
}
|
|
936
|
+
return void 0;
|
|
937
|
+
}
|
|
938
|
+
__name(getNoTtySessionIdFromEnv, "getNoTtySessionIdFromEnv");
|
|
939
|
+
function getParentSessionId() {
|
|
859
940
|
try {
|
|
860
941
|
const ttyPath = fs.readlinkSync("/proc/self/fd/0");
|
|
861
942
|
if (ttyPath && ttyPath.startsWith("/dev/")) {
|
|
862
|
-
_cachedSessionId = ttyPath;
|
|
863
943
|
return ttyPath;
|
|
864
944
|
}
|
|
865
945
|
} catch {
|
|
@@ -876,23 +956,26 @@ function getSelfSessionId() {
|
|
|
876
956
|
chain.push(ppid);
|
|
877
957
|
current = ppid;
|
|
878
958
|
}
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
const scopeStat = fs.readFileSync(`/proc/${scopePid}/stat`, "utf-8");
|
|
884
|
-
const scopeFields = scopeStat.split(") ");
|
|
885
|
-
if (scopeFields.length >= 2) {
|
|
886
|
-
startTime = parseInt(scopeFields[1].split(" ")[19], 10) || 0;
|
|
887
|
-
}
|
|
888
|
-
} catch {
|
|
889
|
-
}
|
|
890
|
-
_cachedSessionId = `ptree:${scopePid}:${startTime}`;
|
|
891
|
-
return _cachedSessionId;
|
|
959
|
+
const scopePid = selectScopePidFromChain(chain);
|
|
960
|
+
if (scopePid !== void 0) {
|
|
961
|
+
const startTime = getProcessStartTime(scopePid);
|
|
962
|
+
return `ptree:${scopePid}:${startTime}`;
|
|
892
963
|
}
|
|
893
964
|
} catch {
|
|
894
965
|
}
|
|
895
|
-
|
|
966
|
+
return `pid:${process.pid}`;
|
|
967
|
+
}
|
|
968
|
+
__name(getParentSessionId, "getParentSessionId");
|
|
969
|
+
var _cachedSessionId;
|
|
970
|
+
function getSelfSessionId() {
|
|
971
|
+
if (_cachedSessionId) return _cachedSessionId;
|
|
972
|
+
const parentSessionId = getParentSessionId();
|
|
973
|
+
const envSessionId = getNoTtySessionIdFromEnv();
|
|
974
|
+
if (envSessionId) {
|
|
975
|
+
_cachedSessionId = `${envSessionId}|${parentSessionId}`;
|
|
976
|
+
return _cachedSessionId;
|
|
977
|
+
}
|
|
978
|
+
_cachedSessionId = parentSessionId;
|
|
896
979
|
return _cachedSessionId;
|
|
897
980
|
}
|
|
898
981
|
__name(getSelfSessionId, "getSelfSessionId");
|
|
@@ -1198,5 +1281,5 @@ async function lockSession() {
|
|
|
1198
1281
|
__name(lockSession, "lockSession");
|
|
1199
1282
|
|
|
1200
1283
|
export { decryptValue2 as decryptValue, encryptValue2 as encryptValue, ensureKey, getBackendInfo, getDaemonClient, lockSession };
|
|
1201
|
-
//# sourceMappingURL=chunk-
|
|
1202
|
-
//# sourceMappingURL=chunk-
|
|
1284
|
+
//# sourceMappingURL=chunk-P4HNABAM.js.map
|
|
1285
|
+
//# sourceMappingURL=chunk-P4HNABAM.js.map
|