varlock 0.0.14 → 0.1.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/README.md +1 -1
- package/dist/auto-load.js +3 -2
- package/dist/{chunk-QCKADJNV.js → chunk-7L3IF2MK.js} +15 -22
- package/dist/chunk-7L3IF2MK.js.map +1 -0
- package/dist/{chunk-OJFTFBQG.js → chunk-DTNPJJH4.js} +7 -5
- package/dist/chunk-DTNPJJH4.js.map +1 -0
- package/dist/{chunk-EQQCW3OI.js → chunk-GY623P3W.js} +4 -4
- package/dist/{chunk-EQQCW3OI.js.map → chunk-GY623P3W.js.map} +1 -1
- package/dist/{chunk-UPOIK25P.js → chunk-LIIRL4NK.js} +4 -4
- package/dist/{chunk-UPOIK25P.js.map → chunk-LIIRL4NK.js.map} +1 -1
- package/dist/{chunk-HGJF2DUO.js → chunk-MITVWKKH.js} +4 -4
- package/dist/{chunk-HGJF2DUO.js.map → chunk-MITVWKKH.js.map} +1 -1
- package/dist/{chunk-FCVBOYES.js → chunk-MLIGQWID.js} +1499 -578
- package/dist/chunk-MLIGQWID.js.map +1 -0
- package/dist/{chunk-4QTFFYV6.js → chunk-NGDIT6C3.js} +42 -22
- package/dist/chunk-NGDIT6C3.js.map +1 -0
- package/dist/{chunk-ZYL5D2UA.js → chunk-NMJ5YL5I.js} +10 -6
- package/dist/chunk-NMJ5YL5I.js.map +1 -0
- package/dist/chunk-QT5E2RY6.js +56 -0
- package/dist/chunk-QT5E2RY6.js.map +1 -0
- package/dist/cli/cli-executable.js +82 -51
- package/dist/cli/cli-executable.js.map +1 -1
- package/dist/dotenv-compat.js +3 -2
- package/dist/{env-DLUhFCnC.d.ts → env-graph-eF0B8G0j.d.ts} +210 -55
- package/dist/index.d.ts +5 -2
- package/dist/index.js +3 -3
- package/dist/init.command-ASK74XBV.js +8 -0
- package/dist/{init.command-VK4OGIYP.js.map → init.command-ASK74XBV.js.map} +1 -1
- package/dist/lib/exec-sync-varlock.d.ts +14 -0
- package/dist/lib/exec-sync-varlock.js +4 -0
- package/dist/lib/exec-sync-varlock.js.map +1 -0
- package/dist/load.command-VUKBSBEV.js +8 -0
- package/dist/{load.command-N7FMBREX.js.map → load.command-VUKBSBEV.js.map} +1 -1
- package/dist/plugin-lib.d.ts +9 -0
- package/dist/plugin-lib.js +3 -0
- package/dist/plugin-lib.js.map +1 -0
- package/dist/run.command-XQ64Z2TN.js +8 -0
- package/dist/{run.command-LYY2M5AP.js.map → run.command-XQ64Z2TN.js.map} +1 -1
- package/dist/runtime/env.d.ts +28 -1
- package/dist/telemetry.command-HHZVBFC7.js +8 -0
- package/dist/{telemetry.command-QTEDXKIG.js.map → telemetry.command-HHZVBFC7.js.map} +1 -1
- package/package.json +22 -10
- package/dist/chunk-4QTFFYV6.js.map +0 -1
- package/dist/chunk-FCVBOYES.js.map +0 -1
- package/dist/chunk-J5SIYSJV.js +0 -146
- package/dist/chunk-J5SIYSJV.js.map +0 -1
- package/dist/chunk-OJFTFBQG.js.map +0 -1
- package/dist/chunk-QCKADJNV.js.map +0 -1
- package/dist/chunk-ZYL5D2UA.js.map +0 -1
- package/dist/init.command-VK4OGIYP.js +0 -8
- package/dist/load.command-N7FMBREX.js +0 -8
- package/dist/login.command-GQCJY4NK.js +0 -8
- package/dist/login.command-GQCJY4NK.js.map +0 -1
- package/dist/run.command-LYY2M5AP.js +0 -8
- package/dist/telemetry.command-QTEDXKIG.js +0 -8
package/README.md
CHANGED
package/dist/auto-load.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import './chunk-
|
|
2
|
-
import './chunk-C5BEZMSO.js';
|
|
1
|
+
import './chunk-NMJ5YL5I.js';
|
|
3
2
|
import './chunk-OM3JCP4E.js';
|
|
4
3
|
import './chunk-7JMYT62X.js';
|
|
4
|
+
import './chunk-QT5E2RY6.js';
|
|
5
|
+
import './chunk-C5BEZMSO.js';
|
|
5
6
|
import './chunk-2SPIWTVE.js';
|
|
6
7
|
import './chunk-FGMXIEFA.js';
|
|
7
8
|
import './chunk-XN24GZXQ.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { define } from './chunk-33ROL4J5.js';
|
|
2
|
-
import { loadVarlockEnvGraph, checkForSchemaErrors, checkForConfigErrors } from './chunk-
|
|
3
|
-
import { my_dash_default, FileBasedDataSource, getItemSummary } from './chunk-
|
|
2
|
+
import { loadVarlockEnvGraph, checkForSchemaErrors, checkForConfigErrors } from './chunk-NGDIT6C3.js';
|
|
3
|
+
import { my_dash_default, FileBasedDataSource, getItemSummary } from './chunk-MLIGQWID.js';
|
|
4
4
|
import { __name } from './chunk-XN24GZXQ.js';
|
|
5
5
|
import path from 'path';
|
|
6
6
|
|
|
@@ -21,7 +21,7 @@ var commandSpec = define({
|
|
|
21
21
|
},
|
|
22
22
|
env: {
|
|
23
23
|
type: "string",
|
|
24
|
-
description: "Set the environment (e.g., production, development, etc) - will be overridden by @
|
|
24
|
+
description: "Set the environment (e.g., production, development, etc) - will be overridden by @currentEnv in the schema if present"
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
});
|
|
@@ -32,24 +32,17 @@ var commandFn = /* @__PURE__ */ __name(async (ctx) => {
|
|
|
32
32
|
});
|
|
33
33
|
checkForSchemaErrors(envGraph);
|
|
34
34
|
if (!envGraph.rootDataSource) throw new Error("expected root data source to be set");
|
|
35
|
-
const generateTypesDecoratorsPerSource = envGraph.getRootDecorators("generateTypes");
|
|
36
|
-
if (generateTypesDecoratorsPerSource.length) {
|
|
37
|
-
for (const [source, generateTypesDecorators] of generateTypesDecoratorsPerSource) {
|
|
38
|
-
for (const generateTypesDecorator of generateTypesDecorators) {
|
|
39
|
-
const typeGenSettings = generateTypesDecorator.bareFnArgs?.simplifiedValues;
|
|
40
|
-
if (!my_dash_default.isPlainObject(typeGenSettings)) {
|
|
41
|
-
throw new Error("@generateTypes - must be a fn call with key/value args");
|
|
42
|
-
}
|
|
43
|
-
if (!typeGenSettings.lang) throw new Error("@generateTypes - must set `lang` arg");
|
|
44
|
-
if (typeGenSettings.lang !== "ts") throw new Error(`@generateTypes - unsupported language: ${typeGenSettings.lang}`);
|
|
45
|
-
if (!typeGenSettings.path) throw new Error("@generateTypes - must set `path` arg");
|
|
46
|
-
if (!my_dash_default.isString(typeGenSettings.path)) throw new Error("@generateTypes - `path` arg must be a string");
|
|
47
|
-
const outputPath = source instanceof FileBasedDataSource ? path.resolve(source.fullPath, "..", typeGenSettings.path) : typeGenSettings.path;
|
|
48
|
-
await envGraph.generateTypes(typeGenSettings.lang, outputPath);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
35
|
await envGraph.resolveEnvValues();
|
|
36
|
+
const generateTypesDecs = envGraph.getRootDecFns("generateTypes");
|
|
37
|
+
for (const generateTypesDec of generateTypesDecs) {
|
|
38
|
+
const typeGenSettings = await generateTypesDec.resolve();
|
|
39
|
+
if (!typeGenSettings.obj.lang) throw new Error("@generateTypes - must set `lang` arg");
|
|
40
|
+
if (typeGenSettings.obj.lang !== "ts") throw new Error(`@generateTypes - unsupported language: ${typeGenSettings.obj.lang}`);
|
|
41
|
+
if (!typeGenSettings.obj.path) throw new Error("@generateTypes - must set `path` arg");
|
|
42
|
+
if (!my_dash_default.isString(typeGenSettings.obj.path)) throw new Error("@generateTypes - `path` arg must be a string");
|
|
43
|
+
const outputPath = generateTypesDec.dataSource instanceof FileBasedDataSource ? path.resolve(generateTypesDec.dataSource.fullPath, "..", typeGenSettings.obj.path) : typeGenSettings.obj.path;
|
|
44
|
+
await envGraph.generateTypes(typeGenSettings.obj.lang, outputPath);
|
|
45
|
+
}
|
|
53
46
|
checkForConfigErrors(envGraph, { showAll });
|
|
54
47
|
if (format === "pretty") {
|
|
55
48
|
for (const itemKey in envGraph.configSchema) {
|
|
@@ -80,5 +73,5 @@ var commandFn = /* @__PURE__ */ __name(async (ctx) => {
|
|
|
80
73
|
}, "commandFn");
|
|
81
74
|
|
|
82
75
|
export { commandFn, commandSpec };
|
|
83
|
-
//# sourceMappingURL=chunk-
|
|
84
|
-
//# sourceMappingURL=chunk-
|
|
76
|
+
//# sourceMappingURL=chunk-7L3IF2MK.js.map
|
|
77
|
+
//# sourceMappingURL=chunk-7L3IF2MK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/load.command.ts"],"names":[],"mappings":"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","file":"chunk-7L3IF2MK.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'],\n description: 'Format of output',\n default: 'pretty',\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 },\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 currentEnvFallback: ctx.values.env,\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 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') {\n console.log(JSON.stringify(envGraph.getSerializedGraph(), 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"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ansis_default, joinAndCompact, my_dash_default, pathExistsSync } from './chunk-
|
|
1
|
+
import { ansis_default, joinAndCompact, my_dash_default, pathExistsSync } from './chunk-MLIGQWID.js';
|
|
2
2
|
import { __name } from './chunk-XN24GZXQ.js';
|
|
3
3
|
import path from 'path';
|
|
4
4
|
import fs, { existsSync } from 'fs';
|
|
@@ -96,7 +96,9 @@ function detectJsPackageManager(opts) {
|
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
if (detectedPm) return JS_PACKAGE_MANAGERS[detectedPm];
|
|
99
|
-
|
|
99
|
+
const parentDir = path.dirname(cwd);
|
|
100
|
+
if (parentDir === cwd) break;
|
|
101
|
+
cwd = parentDir;
|
|
100
102
|
if (opts?.workspaceRootPath) {
|
|
101
103
|
if (opts.workspaceRootPath === cwd) {
|
|
102
104
|
debug("> found workspace root");
|
|
@@ -108,7 +110,7 @@ function detectJsPackageManager(opts) {
|
|
|
108
110
|
break;
|
|
109
111
|
}
|
|
110
112
|
}
|
|
111
|
-
} while (cwd
|
|
113
|
+
} while (cwd);
|
|
112
114
|
if (process.env.npm_config_user_agent) {
|
|
113
115
|
const pmFromAgent = process.env.npm_config_user_agent.split("/")[0];
|
|
114
116
|
if (Object.keys(JS_PACKAGE_MANAGERS).includes(pmFromAgent)) {
|
|
@@ -169,5 +171,5 @@ var logLines = /* @__PURE__ */ __name((lines) => {
|
|
|
169
171
|
}, "logLines");
|
|
170
172
|
|
|
171
173
|
export { CliExitError, detectJsPackageManager, fmt, installJsDependency, logLines };
|
|
172
|
-
//# sourceMappingURL=chunk-
|
|
173
|
-
//# sourceMappingURL=chunk-
|
|
174
|
+
//# sourceMappingURL=chunk-DTNPJJH4.js.map
|
|
175
|
+
//# sourceMappingURL=chunk-DTNPJJH4.js.map
|
|
@@ -0,0 +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-DTNPJJH4.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 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, we throw an error\n if (detectedPm) {\n throw new CliExitError('Found multiple js package manager lockfiles', {\n details: `${JS_PACKAGE_MANAGERS[pm].lockfile} and ${JS_PACKAGE_MANAGERS[detectedPm].lockfile}`,\n forceExit: true,\n });\n }\n debug(`> found ${JS_PACKAGE_MANAGERS[pm].lockfile}`);\n detectedPm = pm;\n }\n }\n if (detectedPm) return JS_PACKAGE_MANAGERS[detectedPm];\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 (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,6 +1,6 @@
|
|
|
1
|
-
import { detectJsPackageManager, logLines, fmt, installJsDependency } from './chunk-
|
|
1
|
+
import { detectJsPackageManager, logLines, fmt, installJsDependency } from './chunk-DTNPJJH4.js';
|
|
2
2
|
import { define } from './chunk-33ROL4J5.js';
|
|
3
|
-
import { tryCatch, gracefulExit, checkIsFileGitIgnored, ansis_default, pathExists } from './chunk-
|
|
3
|
+
import { tryCatch, gracefulExit, checkIsFileGitIgnored, ansis_default, pathExists } from './chunk-MLIGQWID.js';
|
|
4
4
|
import { __commonJS, __name, __toESM } from './chunk-XN24GZXQ.js';
|
|
5
5
|
import path2 from 'path';
|
|
6
6
|
import fs3 from 'fs/promises';
|
|
@@ -1187,5 +1187,5 @@ var commandFn = /* @__PURE__ */ __name(async (ctx) => {
|
|
|
1187
1187
|
}, "commandFn");
|
|
1188
1188
|
|
|
1189
1189
|
export { commandFn, commandSpec };
|
|
1190
|
-
//# sourceMappingURL=chunk-
|
|
1191
|
-
//# sourceMappingURL=chunk-
|
|
1190
|
+
//# sourceMappingURL=chunk-GY623P3W.js.map
|
|
1191
|
+
//# sourceMappingURL=chunk-GY623P3W.js.map
|