@vibesdotdev/secrets 0.0.1
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 +59 -0
- package/SPEC.md +47 -0
- package/dist/cli/check/schemas/check-result.d.ts +9 -0
- package/dist/cli/check/schemas/check-result.d.ts.map +1 -0
- package/dist/cli/check/schemas/check-result.js +2 -0
- package/dist/cli/check/schemas/check-result.js.map +1 -0
- package/dist/cli/check/secrets.check.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/check/secrets.check.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/check/secrets.check.cli-command.descriptor.js +19 -0
- package/dist/cli/check/secrets.check.cli-command.descriptor.js.map +1 -0
- package/dist/cli/check/secrets.check.cli-command.impl.d.ts +5 -0
- package/dist/cli/check/secrets.check.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/check/secrets.check.cli-command.impl.js +135 -0
- package/dist/cli/check/secrets.check.cli-command.impl.js.map +1 -0
- package/dist/cli/export/secrets.export.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/export/secrets.export.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/export/secrets.export.cli-command.descriptor.js +20 -0
- package/dist/cli/export/secrets.export.cli-command.descriptor.js.map +1 -0
- package/dist/cli/export/secrets.export.cli-command.impl.d.ts +5 -0
- package/dist/cli/export/secrets.export.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/export/secrets.export.cli-command.impl.js +104 -0
- package/dist/cli/export/secrets.export.cli-command.impl.js.map +1 -0
- package/dist/cli/hooks/pre-commit-secrets.d.ts +2 -0
- package/dist/cli/hooks/pre-commit-secrets.d.ts.map +1 -0
- package/dist/cli/hooks/pre-commit-secrets.js +68 -0
- package/dist/cli/hooks/pre-commit-secrets.js.map +1 -0
- package/dist/cli/import/secrets.import.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/import/secrets.import.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/import/secrets.import.cli-command.descriptor.js +19 -0
- package/dist/cli/import/secrets.import.cli-command.descriptor.js.map +1 -0
- package/dist/cli/import/secrets.import.cli-command.impl.d.ts +5 -0
- package/dist/cli/import/secrets.import.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/import/secrets.import.cli-command.impl.js +155 -0
- package/dist/cli/import/secrets.import.cli-command.impl.js.map +1 -0
- package/dist/cli/list/secrets.list.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/list/secrets.list.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/list/secrets.list.cli-command.descriptor.js +18 -0
- package/dist/cli/list/secrets.list.cli-command.descriptor.js.map +1 -0
- package/dist/cli/list/secrets.list.cli-command.impl.d.ts +5 -0
- package/dist/cli/list/secrets.list.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/list/secrets.list.cli-command.impl.js +61 -0
- package/dist/cli/list/secrets.list.cli-command.impl.js.map +1 -0
- package/dist/cli/pre-commit/secrets.pre-commit-check.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/pre-commit/secrets.pre-commit-check.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/pre-commit/secrets.pre-commit-check.cli-command.descriptor.js +16 -0
- package/dist/cli/pre-commit/secrets.pre-commit-check.cli-command.descriptor.js.map +1 -0
- package/dist/cli/pre-commit/secrets.pre-commit-check.cli-command.impl.d.ts +5 -0
- package/dist/cli/pre-commit/secrets.pre-commit-check.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/pre-commit/secrets.pre-commit-check.cli-command.impl.js +10 -0
- package/dist/cli/pre-commit/secrets.pre-commit-check.cli-command.impl.js.map +1 -0
- package/dist/cli/pull/secrets.pull.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/pull/secrets.pull.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/pull/secrets.pull.cli-command.descriptor.js +20 -0
- package/dist/cli/pull/secrets.pull.cli-command.descriptor.js.map +1 -0
- package/dist/cli/pull/secrets.pull.cli-command.impl.d.ts +5 -0
- package/dist/cli/pull/secrets.pull.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/pull/secrets.pull.cli-command.impl.js +76 -0
- package/dist/cli/pull/secrets.pull.cli-command.impl.js.map +1 -0
- package/dist/cli/push/secrets.push.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/push/secrets.push.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/push/secrets.push.cli-command.descriptor.js +22 -0
- package/dist/cli/push/secrets.push.cli-command.descriptor.js.map +1 -0
- package/dist/cli/push/secrets.push.cli-command.impl.d.ts +5 -0
- package/dist/cli/push/secrets.push.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/push/secrets.push.cli-command.impl.js +109 -0
- package/dist/cli/push/secrets.push.cli-command.impl.js.map +1 -0
- package/dist/cli/reveal/secrets.reveal.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/reveal/secrets.reveal.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/reveal/secrets.reveal.cli-command.descriptor.js +19 -0
- package/dist/cli/reveal/secrets.reveal.cli-command.descriptor.js.map +1 -0
- package/dist/cli/reveal/secrets.reveal.cli-command.impl.d.ts +5 -0
- package/dist/cli/reveal/secrets.reveal.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/reveal/secrets.reveal.cli-command.impl.js +85 -0
- package/dist/cli/reveal/secrets.reveal.cli-command.impl.js.map +1 -0
- package/dist/cli/secrets.cli-group.descriptor.d.ts +4 -0
- package/dist/cli/secrets.cli-group.descriptor.d.ts.map +1 -0
- package/dist/cli/secrets.cli-group.descriptor.js +11 -0
- package/dist/cli/secrets.cli-group.descriptor.js.map +1 -0
- package/dist/cli/set/secrets.set.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/set/secrets.set.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/set/secrets.set.cli-command.descriptor.js +21 -0
- package/dist/cli/set/secrets.set.cli-command.descriptor.js.map +1 -0
- package/dist/cli/set/secrets.set.cli-command.impl.d.ts +5 -0
- package/dist/cli/set/secrets.set.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/set/secrets.set.cli-command.impl.js +59 -0
- package/dist/cli/set/secrets.set.cli-command.impl.js.map +1 -0
- package/dist/cli/shared/resolve-environment.d.ts +14 -0
- package/dist/cli/shared/resolve-environment.d.ts.map +1 -0
- package/dist/cli/shared/resolve-environment.js +45 -0
- package/dist/cli/shared/resolve-environment.js.map +1 -0
- package/dist/cli/unset/secrets.unset.cli-command.descriptor.d.ts +4 -0
- package/dist/cli/unset/secrets.unset.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/unset/secrets.unset.cli-command.descriptor.js +20 -0
- package/dist/cli/unset/secrets.unset.cli-command.descriptor.js.map +1 -0
- package/dist/cli/unset/secrets.unset.cli-command.impl.d.ts +5 -0
- package/dist/cli/unset/secrets.unset.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/unset/secrets.unset.cli-command.impl.js +31 -0
- package/dist/cli/unset/secrets.unset.cli-command.impl.js.map +1 -0
- package/dist/docs/backends.docs.descriptor.d.ts +4 -0
- package/dist/docs/backends.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/backends.docs.descriptor.js +149 -0
- package/dist/docs/backends.docs.descriptor.js.map +1 -0
- package/dist/docs/encryption.docs.descriptor.d.ts +4 -0
- package/dist/docs/encryption.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/encryption.docs.descriptor.js +163 -0
- package/dist/docs/encryption.docs.descriptor.js.map +1 -0
- package/dist/docs/env-file.docs.descriptor.d.ts +4 -0
- package/dist/docs/env-file.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/env-file.docs.descriptor.js +207 -0
- package/dist/docs/env-file.docs.descriptor.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/kinds/index.d.ts +4 -0
- package/dist/kinds/index.d.ts.map +1 -0
- package/dist/kinds/index.js +3 -0
- package/dist/kinds/index.js.map +1 -0
- package/dist/kinds/schemas/store.schema.d.ts +49 -0
- package/dist/kinds/schemas/store.schema.d.ts.map +1 -0
- package/dist/kinds/schemas/store.schema.js +34 -0
- package/dist/kinds/schemas/store.schema.js.map +1 -0
- package/dist/kinds/schemas/store.types.d.ts +28 -0
- package/dist/kinds/schemas/store.types.d.ts.map +1 -0
- package/dist/kinds/schemas/store.types.js +2 -0
- package/dist/kinds/schemas/store.types.js.map +1 -0
- package/dist/kinds/store.interface.d.ts +2 -0
- package/dist/kinds/store.interface.d.ts.map +1 -0
- package/dist/kinds/store.interface.js +2 -0
- package/dist/kinds/store.interface.js.map +1 -0
- package/dist/kinds/store.kind.d.ts +10 -0
- package/dist/kinds/store.kind.d.ts.map +1 -0
- package/dist/kinds/store.kind.js +36 -0
- package/dist/kinds/store.kind.js.map +1 -0
- package/dist/kinds/store.schema.d.ts +2 -0
- package/dist/kinds/store.schema.d.ts.map +1 -0
- package/dist/kinds/store.schema.js +2 -0
- package/dist/kinds/store.schema.js.map +1 -0
- package/dist/manifest/canonical.d.ts +30 -0
- package/dist/manifest/canonical.d.ts.map +1 -0
- package/dist/manifest/canonical.js +313 -0
- package/dist/manifest/canonical.js.map +1 -0
- package/dist/manifest/import-manifest.schema.d.ts +77 -0
- package/dist/manifest/import-manifest.schema.d.ts.map +1 -0
- package/dist/manifest/import-manifest.schema.js +55 -0
- package/dist/manifest/import-manifest.schema.js.map +1 -0
- package/dist/manifest/index.d.ts +3 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +3 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/requirements/index.d.ts +2 -0
- package/dist/requirements/index.d.ts.map +1 -0
- package/dist/requirements/index.js +2 -0
- package/dist/requirements/index.js.map +1 -0
- package/dist/requirements/resolver.d.ts +52 -0
- package/dist/requirements/resolver.d.ts.map +1 -0
- package/dist/requirements/resolver.js +196 -0
- package/dist/requirements/resolver.js.map +1 -0
- package/dist/requirements/schemas/requirements.d.ts +27 -0
- package/dist/requirements/schemas/requirements.d.ts.map +1 -0
- package/dist/requirements/schemas/requirements.js +2 -0
- package/dist/requirements/schemas/requirements.js.map +1 -0
- package/dist/secrets.plugin.d.ts +8 -0
- package/dist/secrets.plugin.d.ts.map +1 -0
- package/dist/secrets.plugin.js +59 -0
- package/dist/secrets.plugin.js.map +1 -0
- package/package.json +108 -0
- package/src/cli/check/schemas/check-result.ts +8 -0
- package/src/cli/check/secrets.check.cli-command.descriptor.ts +21 -0
- package/src/cli/check/secrets.check.cli-command.impl.ts +163 -0
- package/src/cli/export/secrets.export.cli-command.descriptor.ts +22 -0
- package/src/cli/export/secrets.export.cli-command.impl.ts +139 -0
- package/src/cli/hooks/pre-commit-secrets.ts +73 -0
- package/src/cli/import/secrets.import.cli-command.descriptor.ts +21 -0
- package/src/cli/import/secrets.import.cli-command.impl.ts +178 -0
- package/src/cli/list/secrets.list.cli-command.descriptor.ts +21 -0
- package/src/cli/list/secrets.list.cli-command.impl.ts +79 -0
- package/src/cli/pre-commit/secrets.pre-commit-check.cli-command.descriptor.ts +18 -0
- package/src/cli/pre-commit/secrets.pre-commit-check.cli-command.impl.ts +11 -0
- package/src/cli/pull/secrets.pull.cli-command.descriptor.ts +22 -0
- package/src/cli/pull/secrets.pull.cli-command.impl.ts +103 -0
- package/src/cli/push/secrets.push.cli-command.descriptor.ts +24 -0
- package/src/cli/push/secrets.push.cli-command.impl.ts +149 -0
- package/src/cli/reveal/secrets.reveal.cli-command.descriptor.ts +21 -0
- package/src/cli/reveal/secrets.reveal.cli-command.impl.ts +108 -0
- package/src/cli/secrets.cli-group.descriptor.ts +13 -0
- package/src/cli/set/secrets.set.cli-command.descriptor.ts +23 -0
- package/src/cli/set/secrets.set.cli-command.impl.ts +77 -0
- package/src/cli/shared/resolve-environment.ts +57 -0
- package/src/cli/unset/secrets.unset.cli-command.descriptor.ts +22 -0
- package/src/cli/unset/secrets.unset.cli-command.impl.ts +41 -0
- package/src/docs/backends.docs.descriptor.ts +151 -0
- package/src/docs/encryption.docs.descriptor.ts +165 -0
- package/src/docs/env-file.docs.descriptor.ts +209 -0
- package/src/index.ts +35 -0
- package/src/kinds/index.ts +12 -0
- package/src/kinds/schemas/store.schema.ts +47 -0
- package/src/kinds/schemas/store.types.ts +35 -0
- package/src/kinds/store.interface.ts +1 -0
- package/src/kinds/store.kind.ts +52 -0
- package/src/kinds/store.schema.ts +8 -0
- package/src/manifest/canonical.ts +324 -0
- package/src/manifest/import-manifest.schema.ts +63 -0
- package/src/manifest/index.ts +12 -0
- package/src/requirements/index.ts +6 -0
- package/src/requirements/resolver.ts +216 -0
- package/src/requirements/schemas/requirements.ts +29 -0
- package/src/secrets.plugin.ts +65 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { resolve } from 'node:path';
|
|
2
|
+
import { readFile } from 'node:fs/promises';
|
|
3
|
+
import { getVibesRuntime } from '@vibesdotdev/runtime';
|
|
4
|
+
import { canonicalImportManifest } from '../../manifest/canonical';
|
|
5
|
+
import { resolveSecretsEnvironment } from '../shared/resolve-environment';
|
|
6
|
+
/**
|
|
7
|
+
* Tiny line-oriented .env parser. Returns a flat KEY → value map.
|
|
8
|
+
* Quoted values are unwrapped. Comments and blank lines are ignored.
|
|
9
|
+
* Missing files yield an empty map (not an error) — sources are bootstrap inputs.
|
|
10
|
+
*/
|
|
11
|
+
async function readEnvFile(path) {
|
|
12
|
+
let content;
|
|
13
|
+
try {
|
|
14
|
+
content = await readFile(path, 'utf-8');
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return {};
|
|
18
|
+
}
|
|
19
|
+
const result = {};
|
|
20
|
+
for (const raw of content.split('\n')) {
|
|
21
|
+
const line = raw.trim();
|
|
22
|
+
if (line === '' || line.startsWith('#'))
|
|
23
|
+
continue;
|
|
24
|
+
const eqIdx = raw.indexOf('=');
|
|
25
|
+
if (eqIdx === -1)
|
|
26
|
+
continue;
|
|
27
|
+
const key = raw.slice(0, eqIdx).trim();
|
|
28
|
+
let value = raw.slice(eqIdx + 1).trim();
|
|
29
|
+
if ((value.startsWith('"') && value.endsWith('"')) ||
|
|
30
|
+
(value.startsWith("'") && value.endsWith("'"))) {
|
|
31
|
+
value = value.slice(1, -1);
|
|
32
|
+
}
|
|
33
|
+
result[key] = value;
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
function pickValue(envMap, key, aliases) {
|
|
38
|
+
if (envMap[key] !== undefined && envMap[key] !== '')
|
|
39
|
+
return envMap[key];
|
|
40
|
+
for (const alias of aliases) {
|
|
41
|
+
if (envMap[alias] !== undefined && envMap[alias] !== '')
|
|
42
|
+
return envMap[alias];
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
45
|
+
}
|
|
46
|
+
export default {
|
|
47
|
+
async execute(_args, opts) {
|
|
48
|
+
const runtime = getVibesRuntime();
|
|
49
|
+
const ui = (await runtime.context('cli/ui'));
|
|
50
|
+
const options = opts;
|
|
51
|
+
const { name: envName, tier: envTier } = await resolveSecretsEnvironment(ui, options.environment);
|
|
52
|
+
const sourceFilter = options.source;
|
|
53
|
+
if (sourceFilter && !canonicalImportManifest.sources[sourceFilter]) {
|
|
54
|
+
ui.error(`Unknown source: ${sourceFilter}. Known: ${Object.keys(canonicalImportManifest.sources).join(', ')}`);
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
const repoRoot = process.cwd();
|
|
58
|
+
const sourceContents = new Map();
|
|
59
|
+
const manualSources = new Set();
|
|
60
|
+
for (const [id, src] of Object.entries(canonicalImportManifest.sources)) {
|
|
61
|
+
if (sourceFilter && id !== sourceFilter)
|
|
62
|
+
continue;
|
|
63
|
+
if (!src.path) {
|
|
64
|
+
manualSources.add(id);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
sourceContents.set(id, await readEnvFile(resolve(repoRoot, src.path)));
|
|
68
|
+
}
|
|
69
|
+
const found = {};
|
|
70
|
+
const missingRequired = [];
|
|
71
|
+
const missingOptional = [];
|
|
72
|
+
const manualEntries = [];
|
|
73
|
+
for (const entry of canonicalImportManifest.secrets) {
|
|
74
|
+
if (sourceFilter && entry.source !== sourceFilter)
|
|
75
|
+
continue;
|
|
76
|
+
if (manualSources.has(entry.source)) {
|
|
77
|
+
manualEntries.push({ key: entry.key, required: entry.required });
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
const sourceMap = sourceContents.get(entry.source);
|
|
81
|
+
if (!sourceMap) {
|
|
82
|
+
if (entry.required)
|
|
83
|
+
missingRequired.push(entry.key);
|
|
84
|
+
else
|
|
85
|
+
missingOptional.push(entry.key);
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
const value = pickValue(sourceMap, entry.key, entry.aliases);
|
|
89
|
+
if (value === undefined) {
|
|
90
|
+
if (entry.required)
|
|
91
|
+
missingRequired.push(entry.key);
|
|
92
|
+
else
|
|
93
|
+
missingOptional.push(entry.key);
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
found[entry.key] = value;
|
|
97
|
+
}
|
|
98
|
+
const foundCount = Object.keys(found).length;
|
|
99
|
+
if (options.dryRun) {
|
|
100
|
+
ui.log(`\nDry run: would import ${foundCount} secret(s) for ${envName}\n`);
|
|
101
|
+
for (const key of Object.keys(found).sort())
|
|
102
|
+
ui.log(` + ${key}`);
|
|
103
|
+
if (missingRequired.length) {
|
|
104
|
+
ui.log(`\n ${missingRequired.length} required secret(s) not found:`);
|
|
105
|
+
for (const key of missingRequired)
|
|
106
|
+
ui.log(` ! ${key}`);
|
|
107
|
+
}
|
|
108
|
+
if (missingOptional.length) {
|
|
109
|
+
ui.log(`\n ${missingOptional.length} optional secret(s) not found:`);
|
|
110
|
+
for (const key of missingOptional)
|
|
111
|
+
ui.log(` ? ${key}`);
|
|
112
|
+
}
|
|
113
|
+
if (manualEntries.length) {
|
|
114
|
+
ui.log(`\n ${manualEntries.length} manual entry/entries (set via 'vibes secrets set'):`);
|
|
115
|
+
for (const { key, required } of manualEntries) {
|
|
116
|
+
ui.log(` m ${key} (${required ? 'required' : 'optional'})`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
ui.log('');
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (foundCount === 0) {
|
|
123
|
+
ui.warn('No secrets found in any source file. Nothing to import.');
|
|
124
|
+
if (missingRequired.length > 0)
|
|
125
|
+
process.exit(1);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const descriptors = runtime.assets('secrets/store').descriptors();
|
|
129
|
+
const targetId = options.to ?? 'encrypted-local';
|
|
130
|
+
const target = descriptors.find((d) => d.id === targetId)
|
|
131
|
+
?? descriptors.filter((d) => d.tiers.includes(envTier) && d.backend === 'encrypted-local')[0];
|
|
132
|
+
if (!target) {
|
|
133
|
+
ui.error(`No backend available with id [${targetId}] for tier ${envTier}`);
|
|
134
|
+
process.exit(1);
|
|
135
|
+
}
|
|
136
|
+
const impl = (await runtime
|
|
137
|
+
.query('secrets/store')
|
|
138
|
+
.withId(target.id)
|
|
139
|
+
.resolve());
|
|
140
|
+
await impl.setAll(envName, found);
|
|
141
|
+
ui.success(`Imported ${foundCount} secret(s) into [${target.id}] for ${envName}`);
|
|
142
|
+
const missingManualRequired = manualEntries.filter((e) => e.required).map((e) => e.key);
|
|
143
|
+
if (manualEntries.length > 0) {
|
|
144
|
+
ui.info(`${manualEntries.length} manual entry/entries — set via 'vibes secrets set <KEY>' (${missingManualRequired.length} required)`);
|
|
145
|
+
}
|
|
146
|
+
if (missingRequired.length > 0) {
|
|
147
|
+
ui.warn(`${missingRequired.length} required secret(s) missing from sources: ${missingRequired.join(', ')}`);
|
|
148
|
+
process.exit(1);
|
|
149
|
+
}
|
|
150
|
+
if (missingOptional.length > 0) {
|
|
151
|
+
ui.info(`${missingOptional.length} optional secret(s) skipped: ${missingOptional.join(', ')}`);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
//# sourceMappingURL=secrets.import.cli-command.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.import.cli-command.impl.js","sourceRoot":"","sources":["../../../src/cli/import/secrets.import.cli-command.impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.list.cli-command.descriptor.d.ts","sourceRoot":"","sources":["../../../src/cli/list/secrets.list.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,QAAA,MAAM,UAAU,EAAE,yBAgBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
const descriptor = {
|
|
2
|
+
kind: 'cli/command',
|
|
3
|
+
id: 'secrets.list',
|
|
4
|
+
name: 'list',
|
|
5
|
+
description: 'List secrets for the current environment',
|
|
6
|
+
group: 'secrets',
|
|
7
|
+
options: [
|
|
8
|
+
{ flags: '--environment <name>', description: 'Target environment (default: current)' },
|
|
9
|
+
{ flags: '--backend <id>', description: 'Filter to a specific backend' },
|
|
10
|
+
{ flags: '--json', description: 'Output as JSON' }
|
|
11
|
+
],
|
|
12
|
+
surfaces: ['cli'],
|
|
13
|
+
hardware: ['consumer'],
|
|
14
|
+
enabled: true,
|
|
15
|
+
order: 10
|
|
16
|
+
};
|
|
17
|
+
export default descriptor;
|
|
18
|
+
//# sourceMappingURL=secrets.list.cli-command.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.list.cli-command.descriptor.js","sourceRoot":"","sources":["../../../src/cli/list/secrets.list.cli-command.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAA8B;IAC7C,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,0CAA0C;IACvD,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,uCAAuC,EAAE;QACvF,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,8BAA8B,EAAE;QAExE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;KAClD;IACD,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,EAAE;CACT,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.list.cli-command.impl.d.ts","sourceRoot":"","sources":["../../../src/cli/list/secrets.list.cli-command.impl.ts"],"names":[],"mappings":";mBAQsB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;;AAD5F,wBAuEE"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { getVibesRuntime } from '@vibesdotdev/runtime';
|
|
2
|
+
import { resolveSecretRequirements } from '../../requirements/resolver';
|
|
3
|
+
import { resolveSecretsEnvironment } from '../shared/resolve-environment';
|
|
4
|
+
export default {
|
|
5
|
+
async execute(_args, opts) {
|
|
6
|
+
const runtime = getVibesRuntime();
|
|
7
|
+
const ui = (await runtime.context('cli/ui'));
|
|
8
|
+
const options = opts;
|
|
9
|
+
const { name: envName, tier: envTier } = await resolveSecretsEnvironment(ui, options.environment);
|
|
10
|
+
const descriptors = runtime.assets('secrets/store').descriptors();
|
|
11
|
+
const matching = descriptors.filter((d) => {
|
|
12
|
+
if (options.backend && d.id !== options.backend)
|
|
13
|
+
return false;
|
|
14
|
+
return d.tiers.includes(envTier);
|
|
15
|
+
});
|
|
16
|
+
const aggregated = new Map();
|
|
17
|
+
const storesByPriority = [...matching].sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));
|
|
18
|
+
for (const desc of storesByPriority) {
|
|
19
|
+
const impl = (await runtime
|
|
20
|
+
.query('secrets/store')
|
|
21
|
+
.withId(desc.id)
|
|
22
|
+
.resolve());
|
|
23
|
+
const entries = await impl.list(envName);
|
|
24
|
+
for (const entry of entries) {
|
|
25
|
+
aggregated.set(entry.key, entry);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const entries = [...aggregated.values()].sort((a, b) => a.key.localeCompare(b.key));
|
|
29
|
+
if (options.json) {
|
|
30
|
+
const secrets = entries.map((e) => ({ key: e.key, hasValue: e.hasValue, source: e.source }));
|
|
31
|
+
ui.render({ environment: envName, secrets }, { format: 'json' });
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (entries.length === 0) {
|
|
35
|
+
ui.info(`No secrets found for environment: ${envName}`);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
ui.log(`\nSecrets for environment: ${envName}\n`);
|
|
39
|
+
ui.log(' KEY'.padEnd(45) + 'SOURCE'.padEnd(20) + 'STATUS');
|
|
40
|
+
ui.log(' ' + '─'.repeat(70));
|
|
41
|
+
for (const entry of entries) {
|
|
42
|
+
const status = entry.hasValue ? 'set' : 'empty';
|
|
43
|
+
ui.log(` ${entry.key.padEnd(43)} ${entry.source.padEnd(18)} ${status}`);
|
|
44
|
+
}
|
|
45
|
+
ui.log('');
|
|
46
|
+
try {
|
|
47
|
+
const requirements = await resolveSecretRequirements(runtime);
|
|
48
|
+
const required = requirements.filter((r) => r.required);
|
|
49
|
+
const setKeys = new Set(entries.filter((e) => e.hasValue).map((e) => e.key));
|
|
50
|
+
const missing = required.filter((r) => !setKeys.has(r.key));
|
|
51
|
+
if (missing.length > 0) {
|
|
52
|
+
ui.log(` ${missing.length} required secret(s) missing. Run 'vibes secrets check' for details.`);
|
|
53
|
+
ui.log('');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// infra kinds may not be loaded in all contexts
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=secrets.list.cli-command.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.list.cli-command.impl.js","sourceRoot":"","sources":["../../../src/cli/list/secrets.list.cli-command.impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.pre-commit-check.cli-command.descriptor.d.ts","sourceRoot":"","sources":["../../../src/cli/pre-commit/secrets.pre-commit-check.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,QAAA,MAAM,UAAU,EAAE,yBAajB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const descriptor = {
|
|
2
|
+
kind: 'cli/command',
|
|
3
|
+
id: 'dev.secrets.pre-commit-check',
|
|
4
|
+
name: 'pre-commit-check',
|
|
5
|
+
description: 'Run secrets pattern detection on staged files',
|
|
6
|
+
group: 'secrets',
|
|
7
|
+
options: [
|
|
8
|
+
{ flags: '--workspace <path>', description: 'Workspace root (default: cwd)' }
|
|
9
|
+
],
|
|
10
|
+
surfaces: ['cli'],
|
|
11
|
+
hardware: ['consumer'],
|
|
12
|
+
enabled: true,
|
|
13
|
+
order: 1
|
|
14
|
+
};
|
|
15
|
+
export default descriptor;
|
|
16
|
+
//# sourceMappingURL=secrets.pre-commit-check.cli-command.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.pre-commit-check.cli-command.descriptor.js","sourceRoot":"","sources":["../../../src/cli/pre-commit/secrets.pre-commit-check.cli-command.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAA8B;IAC7C,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,8BAA8B;IAClC,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,+CAA+C;IAC5D,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,+BAA+B,EAAE;KAC7E;IACD,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,CAAC;CACR,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.pre-commit-check.cli-command.impl.d.ts","sourceRoot":"","sources":["../../../src/cli/pre-commit/secrets.pre-commit-check.cli-command.impl.ts"],"names":[],"mappings":";mBAGsB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;;AAD5F,wBAQE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { runSecretsPreCommitCheck } from '../hooks/pre-commit-secrets.js';
|
|
2
|
+
export default {
|
|
3
|
+
async execute(_args, opts) {
|
|
4
|
+
const options = opts;
|
|
5
|
+
const workspacePath = options.workspace ?? process.cwd();
|
|
6
|
+
const exitCode = await runSecretsPreCommitCheck(workspacePath);
|
|
7
|
+
process.exit(exitCode);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=secrets.pre-commit-check.cli-command.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.pre-commit-check.cli-command.impl.js","sourceRoot":"","sources":["../../../src/cli/pre-commit/secrets.pre-commit-check.cli-command.impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,eAAe;IACd,KAAK,CAAC,OAAO,CAAC,KAA8B,EAAE,IAA6B;QAC1E,MAAM,OAAO,GAAG,IAA8B,CAAC;QAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAEzD,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,aAAa,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.pull.cli-command.descriptor.d.ts","sourceRoot":"","sources":["../../../src/cli/pull/secrets.pull.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,QAAA,MAAM,UAAU,EAAE,yBAiBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const descriptor = {
|
|
2
|
+
kind: 'cli/command',
|
|
3
|
+
id: 'secrets.pull',
|
|
4
|
+
name: 'pull',
|
|
5
|
+
description: 'Pull secrets from a remote backend to local store',
|
|
6
|
+
group: 'secrets',
|
|
7
|
+
options: [
|
|
8
|
+
{ flags: '--environment <name>', description: 'Target environment (default: current)' },
|
|
9
|
+
{ flags: '--from <backend>', description: 'Source remote backend (default: vault)' },
|
|
10
|
+
{ flags: '--to <backend>', description: 'Target local backend (default: encrypted-local)' },
|
|
11
|
+
{ flags: '--key <key>', description: 'Pull only one secret key (repeat or comma-separate for multiple keys)' },
|
|
12
|
+
{ flags: '--dry-run', description: 'Show what would be pulled without pulling' }
|
|
13
|
+
],
|
|
14
|
+
surfaces: ['cli'],
|
|
15
|
+
hardware: ['consumer'],
|
|
16
|
+
enabled: true,
|
|
17
|
+
order: 70
|
|
18
|
+
};
|
|
19
|
+
export default descriptor;
|
|
20
|
+
//# sourceMappingURL=secrets.pull.cli-command.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.pull.cli-command.descriptor.js","sourceRoot":"","sources":["../../../src/cli/pull/secrets.pull.cli-command.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAA8B;IAC7C,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,mDAAmD;IAChE,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,uCAAuC,EAAE;QACvF,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,wCAAwC,EAAE;QACpF,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,iDAAiD,EAAE;QAC3F,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,uEAAuE,EAAE;QAC9G,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,2CAA2C,EAAE;KAChF;IACD,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,EAAE;CACT,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.pull.cli-command.impl.d.ts","sourceRoot":"","sources":["../../../src/cli/pull/secrets.pull.cli-command.impl.ts"],"names":[],"mappings":";mBAuBsB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;;AAD5F,wBAgFE"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { getVibesRuntime } from '@vibesdotdev/runtime';
|
|
2
|
+
import { resolveSecretsEnvironment } from '../shared/resolve-environment';
|
|
3
|
+
const LOCAL_BACKENDS = new Set(['env-file', 'encrypted-local']);
|
|
4
|
+
const REMOTE_BACKENDS = new Set(['cloudflare-api', 'vault']);
|
|
5
|
+
function parseKeyFilter(value) {
|
|
6
|
+
const rawValues = Array.isArray(value)
|
|
7
|
+
? value.filter((entry) => typeof entry === 'string')
|
|
8
|
+
: typeof value === 'string'
|
|
9
|
+
? [value]
|
|
10
|
+
: [];
|
|
11
|
+
const keys = rawValues
|
|
12
|
+
.flatMap((entry) => entry.split(','))
|
|
13
|
+
.map((entry) => entry.trim())
|
|
14
|
+
.filter((entry) => entry.length > 0);
|
|
15
|
+
return keys.length > 0 ? new Set(keys) : undefined;
|
|
16
|
+
}
|
|
17
|
+
export default {
|
|
18
|
+
async execute(_args, opts) {
|
|
19
|
+
const runtime = getVibesRuntime();
|
|
20
|
+
const ui = (await runtime.context('cli/ui'));
|
|
21
|
+
const options = opts;
|
|
22
|
+
const { name: envName, tier: envTier } = await resolveSecretsEnvironment(ui, options.environment);
|
|
23
|
+
const descriptors = runtime.assets('secrets/store').descriptors();
|
|
24
|
+
const source = options.from
|
|
25
|
+
? descriptors.find((d) => d.id === options.from)
|
|
26
|
+
: descriptors
|
|
27
|
+
.filter((d) => d.tiers.includes(envTier) && REMOTE_BACKENDS.has(d.backend))
|
|
28
|
+
.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0))[0];
|
|
29
|
+
const target = options.to
|
|
30
|
+
? descriptors.find((d) => d.id === options.to)
|
|
31
|
+
: descriptors
|
|
32
|
+
.filter((d) => d.tiers.includes(envTier) && LOCAL_BACKENDS.has(d.backend))
|
|
33
|
+
.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0))[0];
|
|
34
|
+
if (!source) {
|
|
35
|
+
ui.error('No remote secrets store available. Cloudflare does not support pulling secret values.');
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
if (!target) {
|
|
39
|
+
ui.error('No local secrets store available.');
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
if (source.backend === 'cloudflare-api' || source.backend === 'cloudflare-secrets-store') {
|
|
43
|
+
ui.warn('Cloudflare secrets backends do not expose secret values. Pull is only supported from Vault.');
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
const sourceImpl = (await runtime
|
|
47
|
+
.query('secrets/store')
|
|
48
|
+
.withId(source.id)
|
|
49
|
+
.resolve());
|
|
50
|
+
let secrets = await sourceImpl.getAll(envName);
|
|
51
|
+
const keyFilter = parseKeyFilter(options.key);
|
|
52
|
+
if (keyFilter) {
|
|
53
|
+
secrets = Object.fromEntries(Object.entries(secrets).filter(([key]) => keyFilter.has(key)));
|
|
54
|
+
}
|
|
55
|
+
const keys = Object.keys(secrets);
|
|
56
|
+
if (keys.length === 0) {
|
|
57
|
+
ui.info(`No secrets found in [${source.id}] for environment: ${envName}`);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (options.dryRun) {
|
|
61
|
+
ui.log(`\nDry run: would pull ${keys.length} secret(s) from [${source.id}] to [${target.id}]\n`);
|
|
62
|
+
for (const key of keys.sort()) {
|
|
63
|
+
ui.log(` ${key}`);
|
|
64
|
+
}
|
|
65
|
+
ui.log('');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const targetImpl = (await runtime
|
|
69
|
+
.query('secrets/store')
|
|
70
|
+
.withId(target.id)
|
|
71
|
+
.resolve());
|
|
72
|
+
await targetImpl.setAll(envName, secrets);
|
|
73
|
+
ui.success(`Pulled ${keys.length} secret(s) from [${source.id}] to [${target.id}] for ${envName}`);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=secrets.pull.cli-command.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.pull.cli-command.impl.js","sourceRoot":"","sources":["../../../src/cli/pull/secrets.pull.cli-command.impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.push.cli-command.descriptor.d.ts","sourceRoot":"","sources":["../../../src/cli/push/secrets.push.cli-command.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF,QAAA,MAAM,UAAU,EAAE,yBAmBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const descriptor = {
|
|
2
|
+
kind: 'cli/command',
|
|
3
|
+
id: 'secrets.push',
|
|
4
|
+
name: 'push',
|
|
5
|
+
description: 'Deploy secrets from local store to a remote backend',
|
|
6
|
+
group: 'secrets',
|
|
7
|
+
options: [
|
|
8
|
+
{ flags: '--environment <name>', description: 'Target environment (default: current)' },
|
|
9
|
+
{ flags: '--source-env <name>', description: 'Source environment in the source backend (default: source backend\'s primary tier, e.g. "local" for encrypted-local)' },
|
|
10
|
+
{ flags: '--from <backend>', description: 'Source backend (default: highest-priority local)' },
|
|
11
|
+
{ flags: '--to <backend>', description: 'Target backend (default: highest-priority remote)' },
|
|
12
|
+
{ flags: '--key <key>', description: 'Push only one secret key (repeat or comma-separate for multiple keys)' },
|
|
13
|
+
{ flags: '--app <id>', description: 'Push only secrets required by this app' },
|
|
14
|
+
{ flags: '--dry-run', description: 'Show what would be pushed without pushing' }
|
|
15
|
+
],
|
|
16
|
+
surfaces: ['cli'],
|
|
17
|
+
hardware: ['consumer'],
|
|
18
|
+
enabled: true,
|
|
19
|
+
order: 60
|
|
20
|
+
};
|
|
21
|
+
export default descriptor;
|
|
22
|
+
//# sourceMappingURL=secrets.push.cli-command.descriptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.push.cli-command.descriptor.js","sourceRoot":"","sources":["../../../src/cli/push/secrets.push.cli-command.descriptor.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,GAA8B;IAC7C,IAAI,EAAE,aAAa;IACnB,EAAE,EAAE,cAAc;IAClB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,qDAAqD;IAClE,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE;QACR,EAAE,KAAK,EAAE,sBAAsB,EAAE,WAAW,EAAE,uCAAuC,EAAE;QACvF,EAAE,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,sHAAsH,EAAE;QACrK,EAAE,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,kDAAkD,EAAE;QAC9F,EAAE,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,mDAAmD,EAAE;QAC7F,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,uEAAuE,EAAE;QAC9G,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,wCAAwC,EAAE;QAC9E,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,2CAA2C,EAAE;KAChF;IACD,QAAQ,EAAE,CAAC,KAAK,CAAC;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,EAAE;CACT,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.push.cli-command.impl.d.ts","sourceRoot":"","sources":["../../../src/cli/push/secrets.push.cli-command.impl.ts"],"names":[],"mappings":";mBAmDsB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;;AAD5F,wBAkGE"}
|