windmill-cli 1.723.0 → 1.724.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/esm/main.js +104 -42
- package/package.json +1 -1
package/esm/main.js
CHANGED
|
@@ -16772,7 +16772,7 @@ var init_OpenAPI = __esm(() => {
|
|
|
16772
16772
|
PASSWORD: undefined,
|
|
16773
16773
|
TOKEN: getEnv3("WM_TOKEN"),
|
|
16774
16774
|
USERNAME: undefined,
|
|
16775
|
-
VERSION: "1.
|
|
16775
|
+
VERSION: "1.724.0",
|
|
16776
16776
|
WITH_CREDENTIALS: true,
|
|
16777
16777
|
interceptors: {
|
|
16778
16778
|
request: new Interceptors,
|
|
@@ -25304,7 +25304,7 @@ var init_auth = __esm(async () => {
|
|
|
25304
25304
|
});
|
|
25305
25305
|
|
|
25306
25306
|
// src/core/constants.ts
|
|
25307
|
-
var WM_FORK_PREFIX = "wm-fork", VERSION = "1.
|
|
25307
|
+
var WM_FORK_PREFIX = "wm-fork", VERSION = "1.724.0";
|
|
25308
25308
|
|
|
25309
25309
|
// src/utils/git.ts
|
|
25310
25310
|
var exports_git = {};
|
|
@@ -62847,14 +62847,27 @@ function extractRawscriptInline(id, summary, rawscript, mapping, separator, assi
|
|
|
62847
62847
|
rawscript.content = "!inline " + path6.replaceAll(separator, "/");
|
|
62848
62848
|
const lock = rawscript.lock;
|
|
62849
62849
|
if (lock && lock != "") {
|
|
62850
|
-
const
|
|
62851
|
-
const lockBasePath = mappedPath ? dotIdx > 0 ? mappedPath.substring(0, dotIdx + 1) : mappedPath + "." : basePath;
|
|
62850
|
+
const lockBasePath = mappedPath ? lockBasePathForContent(mappedPath, language) : basePath;
|
|
62852
62851
|
const lockPath = lockBasePath + "lock";
|
|
62853
62852
|
rawscript.lock = "!inline " + lockPath.replaceAll(separator, "/");
|
|
62854
62853
|
r.push({ path: lockPath, content: lock, language, is_lock: true });
|
|
62855
62854
|
}
|
|
62856
62855
|
return r;
|
|
62857
62856
|
}
|
|
62857
|
+
function lockBasePathForContent(contentPath, language) {
|
|
62858
|
+
const langExt = LANGUAGE_EXTENSIONS[language];
|
|
62859
|
+
if (langExt && contentPath.endsWith("." + langExt)) {
|
|
62860
|
+
return contentPath.substring(0, contentPath.length - langExt.length);
|
|
62861
|
+
}
|
|
62862
|
+
const dotIdx = contentPath.lastIndexOf(".");
|
|
62863
|
+
return dotIdx > 0 ? contentPath.substring(0, dotIdx + 1) : contentPath + ".";
|
|
62864
|
+
}
|
|
62865
|
+
function legacyLockPathForContent(contentPath, language) {
|
|
62866
|
+
const dotIdx = contentPath.lastIndexOf(".");
|
|
62867
|
+
const legacy = (dotIdx > 0 ? contentPath.substring(0, dotIdx + 1) : contentPath + ".") + "lock";
|
|
62868
|
+
const canonical = lockBasePathForContent(contentPath, language) + "lock";
|
|
62869
|
+
return legacy === canonical ? undefined : legacy;
|
|
62870
|
+
}
|
|
62858
62871
|
function extractInlineScripts(modules, mapping = {}, separator = "/", defaultTs, pathAssigner, options) {
|
|
62859
62872
|
const assigner = pathAssigner ?? newPathAssigner(defaultTs ?? "bun", { skipInlineScriptSuffix: options?.skipInlineScriptSuffix });
|
|
62860
62873
|
const failOnInlineDirective = options?.failOnInlineDirective ?? false;
|
|
@@ -63103,6 +63116,8 @@ function collectPathScriptPaths(flowValue) {
|
|
|
63103
63116
|
}
|
|
63104
63117
|
|
|
63105
63118
|
// src/commands/flow/flow_metadata.ts
|
|
63119
|
+
import { existsSync as existsSync4 } from "node:fs";
|
|
63120
|
+
import { rm } from "node:fs/promises";
|
|
63106
63121
|
import * as path6 from "node:path";
|
|
63107
63122
|
import { sep as SEP4 } from "node:path";
|
|
63108
63123
|
async function isFlowDirectlyStale(folder, hashes, conf) {
|
|
@@ -63260,6 +63275,22 @@ async function generateFlowLockInternal(folder, dryRun, workspace, opts, justUpd
|
|
|
63260
63275
|
inlineScripts.forEach((s) => {
|
|
63261
63276
|
writeIfChanged(process.cwd() + SEP4 + folder + SEP4 + s.path, s.content);
|
|
63262
63277
|
});
|
|
63278
|
+
for (const s of inlineScripts) {
|
|
63279
|
+
if (s.is_lock)
|
|
63280
|
+
continue;
|
|
63281
|
+
const legacyRelPath = legacyLockPathForContent(s.path, s.language);
|
|
63282
|
+
if (!legacyRelPath)
|
|
63283
|
+
continue;
|
|
63284
|
+
const legacyAbsPath = process.cwd() + SEP4 + folder + SEP4 + legacyRelPath;
|
|
63285
|
+
if (existsSync4(legacyAbsPath)) {
|
|
63286
|
+
try {
|
|
63287
|
+
await rm(legacyAbsPath);
|
|
63288
|
+
info(colors.gray(`Removed legacy lock file ${legacyRelPath} (renamed to canonical name)`));
|
|
63289
|
+
} catch (e) {
|
|
63290
|
+
info(colors.yellow(`Failed to remove legacy lock file ${legacyRelPath}: ${e}`));
|
|
63291
|
+
}
|
|
63292
|
+
}
|
|
63293
|
+
}
|
|
63263
63294
|
writeIfChanged(process.cwd() + SEP4 + folder + SEP4 + "flow.yaml", import_yaml6.stringify(flowValue, yamlOptions));
|
|
63264
63295
|
}
|
|
63265
63296
|
const depsForHash = tree ? {} : filteredDeps;
|
|
@@ -65916,7 +65947,7 @@ __export(exports_sync, {
|
|
|
65916
65947
|
canonicalizeCaseInsensitiveKeys: () => canonicalizeCaseInsensitiveKeys,
|
|
65917
65948
|
FSFSElement: () => FSFSElement
|
|
65918
65949
|
});
|
|
65919
|
-
import { writeFile as writeFile7, readdir as readdir4, stat as stat7, rm, copyFile, mkdir as mkdir5 } from "node:fs/promises";
|
|
65950
|
+
import { writeFile as writeFile7, readdir as readdir4, stat as stat7, rm as rm2, copyFile, mkdir as mkdir5 } from "node:fs/promises";
|
|
65920
65951
|
import * as path10 from "node:path";
|
|
65921
65952
|
import { sep as SEP9 } from "node:path";
|
|
65922
65953
|
function configKeyForItemKind(kind) {
|
|
@@ -67219,8 +67250,8 @@ async function isCaseInsensitiveFilesystem(dir) {
|
|
|
67219
67250
|
} catch {
|
|
67220
67251
|
result = false;
|
|
67221
67252
|
}
|
|
67222
|
-
await
|
|
67223
|
-
await
|
|
67253
|
+
await rm2(upper).catch(() => {});
|
|
67254
|
+
await rm2(lower).catch(() => {});
|
|
67224
67255
|
} catch {
|
|
67225
67256
|
result = false;
|
|
67226
67257
|
}
|
|
@@ -67794,13 +67825,13 @@ Both local and remote have been modified.`));
|
|
|
67794
67825
|
} else if (change.name === "deleted") {
|
|
67795
67826
|
try {
|
|
67796
67827
|
info(`Deleting ${getTypeStrFromPath(change.path)} ${change.path}`);
|
|
67797
|
-
await
|
|
67828
|
+
await rm2(target);
|
|
67798
67829
|
if (opts.stateful) {
|
|
67799
|
-
await
|
|
67830
|
+
await rm2(stateTarget);
|
|
67800
67831
|
}
|
|
67801
67832
|
} catch {
|
|
67802
67833
|
if (opts.stateful) {
|
|
67803
|
-
await
|
|
67834
|
+
await rm2(stateTarget);
|
|
67804
67835
|
}
|
|
67805
67836
|
}
|
|
67806
67837
|
}
|
|
@@ -68770,7 +68801,7 @@ Run 'wmill folder add-missing' to create them locally, then push again.`;
|
|
|
68770
68801
|
}
|
|
68771
68802
|
if (stateTarget) {
|
|
68772
68803
|
try {
|
|
68773
|
-
await
|
|
68804
|
+
await rm2(stateTarget);
|
|
68774
68805
|
} catch {}
|
|
68775
68806
|
}
|
|
68776
68807
|
} else if (change.name === "ws_specific_flag") {
|
|
@@ -69116,8 +69147,8 @@ var init_parse_schema = __esm(() => {
|
|
|
69116
69147
|
|
|
69117
69148
|
// src/utils/metadata.ts
|
|
69118
69149
|
import { sep as SEP10 } from "node:path";
|
|
69119
|
-
import { writeFile as writeFile8, stat as stat8, rm as
|
|
69120
|
-
import { readFileSync as readFileSync2, existsSync as
|
|
69150
|
+
import { writeFile as writeFile8, stat as stat8, rm as rm3, readdir as readdir5 } from "node:fs/promises";
|
|
69151
|
+
import { readFileSync as readFileSync2, existsSync as existsSync6, readdirSync, statSync, writeFileSync as writeFileSync4 } from "node:fs";
|
|
69121
69152
|
import * as path11 from "node:path";
|
|
69122
69153
|
import { createRequire as createRequire2 } from "node:module";
|
|
69123
69154
|
function loadParser(pkgName) {
|
|
@@ -69216,7 +69247,7 @@ async function generateScriptMetadataInternal(scriptPath, workspace, opts, dryRu
|
|
|
69216
69247
|
const metadataContent = await readTextFile(metadataWithType.path);
|
|
69217
69248
|
const filteredRawWorkspaceDependencies = filterWorkspaceDependencies(rawWorkspaceDependencies, scriptContent, language);
|
|
69218
69249
|
const moduleFolderPath = isFolderLayout ? path11.dirname(scriptPath) : scriptPath.substring(0, scriptPath.indexOf(".")) + getModuleFolderSuffix();
|
|
69219
|
-
const hasModules =
|
|
69250
|
+
const hasModules = existsSync6(moduleFolderPath) && statSync(moduleFolderPath).isDirectory();
|
|
69220
69251
|
const depsForHash = tree ? {} : filteredRawWorkspaceDependencies;
|
|
69221
69252
|
let hash2 = await generateScriptHash(depsForHash, scriptContent, metadataContent);
|
|
69222
69253
|
let moduleHashes = {};
|
|
@@ -69521,7 +69552,7 @@ async function updateScriptLock(workspace, scriptContent, language, remotePath,
|
|
|
69521
69552
|
} else {
|
|
69522
69553
|
try {
|
|
69523
69554
|
if (await stat8(lockPath)) {
|
|
69524
|
-
await
|
|
69555
|
+
await rm3(lockPath);
|
|
69525
69556
|
}
|
|
69526
69557
|
} catch (e) {
|
|
69527
69558
|
info(colors.yellow(`Error removing lock file ${lockPath}: ${e}`));
|
|
@@ -69561,7 +69592,7 @@ async function updateModuleLocks(workspace, dirPath, relPrefix, scriptRemotePath
|
|
|
69561
69592
|
writeFileSync4(lockPath, lock, "utf-8");
|
|
69562
69593
|
} else {
|
|
69563
69594
|
try {
|
|
69564
|
-
if (
|
|
69595
|
+
if (existsSync6(lockPath)) {
|
|
69565
69596
|
const { rm: rmAsync } = await import("node:fs/promises");
|
|
69566
69597
|
await rmAsync(lockPath);
|
|
69567
69598
|
}
|
|
@@ -72442,7 +72473,7 @@ var init_lint2 = __esm(async () => {
|
|
|
72442
72473
|
});
|
|
72443
72474
|
|
|
72444
72475
|
// src/commands/app/new.ts
|
|
72445
|
-
import { stat as stat9, writeFile as writeFile10, mkdir as mkdir7, rm as
|
|
72476
|
+
import { stat as stat9, writeFile as writeFile10, mkdir as mkdir7, rm as rm4 } from "node:fs/promises";
|
|
72446
72477
|
import path17 from "node:path";
|
|
72447
72478
|
import { execSync as execSync5, exec, execFile as execFile6 } from "node:child_process";
|
|
72448
72479
|
function validateAppPath(appPath) {
|
|
@@ -72721,7 +72752,7 @@ CREATE SCHEMA IF NOT EXISTS ${schemaName};
|
|
|
72721
72752
|
return;
|
|
72722
72753
|
}
|
|
72723
72754
|
}
|
|
72724
|
-
await
|
|
72755
|
+
await rm4(appDir, { recursive: true, force: true });
|
|
72725
72756
|
}
|
|
72726
72757
|
await mkdir7(appDir, { recursive: true });
|
|
72727
72758
|
await mkdir7(path17.join(appDir, "backend"), { recursive: true });
|
|
@@ -73740,24 +73771,51 @@ async function add2(opts, value, remotePath) {
|
|
|
73740
73771
|
if (!validatePath(remotePath)) {
|
|
73741
73772
|
return;
|
|
73742
73773
|
}
|
|
73774
|
+
const isSecret = opts.secret ?? (opts.public ? false : undefined);
|
|
73743
73775
|
if (await existsVariable({
|
|
73744
73776
|
workspace: workspace.workspaceId,
|
|
73745
73777
|
path: remotePath
|
|
73746
73778
|
})) {
|
|
73747
|
-
if (!await Confirm.prompt({
|
|
73779
|
+
if (!opts.yes && !await Confirm.prompt({
|
|
73748
73780
|
message: `Variable already exist, do you want to update its value?`,
|
|
73749
73781
|
default: true
|
|
73750
73782
|
})) {
|
|
73751
73783
|
return;
|
|
73752
73784
|
}
|
|
73785
|
+
if (isSecret === false) {
|
|
73786
|
+
const existing = await getVariable({
|
|
73787
|
+
workspace: workspace.workspaceId,
|
|
73788
|
+
path: remotePath,
|
|
73789
|
+
decryptSecret: false
|
|
73790
|
+
});
|
|
73791
|
+
if (existing.is_secret) {
|
|
73792
|
+
warn(colors.yellow(`Variable ${remotePath} is currently secret and will be downgraded to non-secret: its value will be stored in plaintext`));
|
|
73793
|
+
}
|
|
73794
|
+
}
|
|
73753
73795
|
info(colors.bold.yellow("Updating variable..."));
|
|
73796
|
+
await updateVariable({
|
|
73797
|
+
workspace: workspace.workspaceId,
|
|
73798
|
+
path: remotePath,
|
|
73799
|
+
alreadyEncrypted: false,
|
|
73800
|
+
requestBody: {
|
|
73801
|
+
value,
|
|
73802
|
+
...isSecret !== undefined ? { is_secret: isSecret } : {},
|
|
73803
|
+
...opts.description !== undefined ? { description: opts.description } : {}
|
|
73804
|
+
}
|
|
73805
|
+
});
|
|
73806
|
+
} else {
|
|
73807
|
+
info(colors.bold.yellow("Creating variable..."));
|
|
73808
|
+
await createVariable({
|
|
73809
|
+
workspace: workspace.workspaceId,
|
|
73810
|
+
alreadyEncrypted: false,
|
|
73811
|
+
requestBody: {
|
|
73812
|
+
path: remotePath,
|
|
73813
|
+
value,
|
|
73814
|
+
is_secret: isSecret ?? true,
|
|
73815
|
+
description: opts.description ?? ""
|
|
73816
|
+
}
|
|
73817
|
+
});
|
|
73754
73818
|
}
|
|
73755
|
-
info(colors.bold.yellow("Pushing variable..."));
|
|
73756
|
-
await pushVariable(workspace.workspaceId, remotePath + ".variable.yaml", undefined, {
|
|
73757
|
-
value,
|
|
73758
|
-
is_secret: !opts.public,
|
|
73759
|
-
description: ""
|
|
73760
|
-
}, true);
|
|
73761
73819
|
info(colors.bold.underline.green(`Variable ${remotePath} pushed`));
|
|
73762
73820
|
}
|
|
73763
73821
|
var import_yaml25, command15, variable_default;
|
|
@@ -73774,7 +73832,7 @@ var init_variable = __esm(async () => {
|
|
|
73774
73832
|
init_confirm()
|
|
73775
73833
|
]);
|
|
73776
73834
|
import_yaml25 = __toESM(require_dist(), 1);
|
|
73777
|
-
command15 = new Command().description("variable related commands").option("--json", "Output as JSON (for piping to jq)").action(list8).command("list", "list all variables").option("--json", "Output as JSON (for piping to jq)").action(list8).command("get", "get a variable's details").arguments("<path:string>").option("--json", "Output as JSON (for piping to jq)").action(get6).command("new", "create a new variable locally").arguments("<path:string>").action(newVariable).command("push", "Push a local variable spec. This overrides any remote versions.").arguments("<file_path:string> <remote_path:string>").option("--plain-secrets", "Push secrets as plain text").action(push7).command("add", "Create a new variable on the remote. This will update the variable if it already exists.").arguments("<value:string> <remote_path:string>").option("--plain-secrets", "Push secrets as plain text").option("--public", "Legacy option, use --
|
|
73835
|
+
command15 = new Command().description("variable related commands").option("--json", "Output as JSON (for piping to jq)").action(list8).command("list", "list all variables").option("--json", "Output as JSON (for piping to jq)").action(list8).command("get", "get a variable's details").arguments("<path:string>").option("--json", "Output as JSON (for piping to jq)").action(get6).command("new", "create a new variable locally").arguments("<path:string>").action(newVariable).command("push", "Push a local variable spec. This overrides any remote versions.").arguments("<file_path:string> <remote_path:string>").option("--plain-secrets", "Push secrets as plain text").action(push7).command("add", "Create a new variable on the remote. This will update the variable if it already exists.").arguments("<value:string> <remote_path:string>").option("--yes", "Skip confirmation prompt when updating an existing variable").option("--secret", "Mark the variable as secret (default when creating a new variable)").option("--no-secret", "Mark the variable as non-secret (when updating, the existing setting is preserved if neither --secret nor --no-secret is passed)").option("--description <description:string>", "Set the variable description (when updating, the existing description is preserved if not passed)").option("--plain-secrets", "Push secrets as plain text").option("--public", "Legacy option, use --no-secret instead").action(add2);
|
|
73778
73836
|
variable_default = command15;
|
|
73779
73837
|
});
|
|
73780
73838
|
|
|
@@ -74607,7 +74665,7 @@ var init_settings = __esm(async () => {
|
|
|
74607
74665
|
});
|
|
74608
74666
|
|
|
74609
74667
|
// src/commands/instance/instance.ts
|
|
74610
|
-
import { writeFile as writeFile15, readdir as readdir9, mkdir as mkdir11, rm as
|
|
74668
|
+
import { writeFile as writeFile15, readdir as readdir9, mkdir as mkdir11, rm as rm5, stat as stat14 } from "node:fs/promises";
|
|
74611
74669
|
import { appendFile } from "node:fs/promises";
|
|
74612
74670
|
import * as path18 from "node:path";
|
|
74613
74671
|
async function allInstances() {
|
|
@@ -74873,7 +74931,7 @@ Pulling workspace ` + remoteWorkspace.id);
|
|
|
74873
74931
|
if (confirmDelete) {
|
|
74874
74932
|
for (const workspace of localWorkspacesToDelete) {
|
|
74875
74933
|
await removeWorkspace(workspace.id, false, {});
|
|
74876
|
-
await
|
|
74934
|
+
await rm5(path18.join(rootDir, workspace.dir), {
|
|
74877
74935
|
recursive: true
|
|
74878
74936
|
});
|
|
74879
74937
|
}
|
|
@@ -85054,8 +85112,12 @@ variable related commands
|
|
|
85054
85112
|
- \`variable push <file_path:string> <remote_path:string>\` - Push a local variable spec. This overrides any remote versions.
|
|
85055
85113
|
- \`--plain-secrets\` - Push secrets as plain text
|
|
85056
85114
|
- \`variable add <value:string> <remote_path:string>\` - Create a new variable on the remote. This will update the variable if it already exists.
|
|
85115
|
+
- \`--yes\` - Skip confirmation prompt when updating an existing variable
|
|
85116
|
+
- \`--secret\` - Mark the variable as secret (default when creating a new variable)
|
|
85117
|
+
- \`--no-secret\` - Mark the variable as non-secret (when updating, the existing setting is preserved if neither --secret nor --no-secret is passed)
|
|
85118
|
+
- \`--description <description:string>\` - Set the variable description (when updating, the existing description is preserved if not passed)
|
|
85057
85119
|
- \`--plain-secrets\` - Push secrets as plain text
|
|
85058
|
-
- \`--public\` - Legacy option, use --
|
|
85120
|
+
- \`--public\` - Legacy option, use --no-secret instead
|
|
85059
85121
|
|
|
85060
85122
|
### version
|
|
85061
85123
|
|
|
@@ -86531,7 +86593,7 @@ __export(exports_tsconfig, {
|
|
|
86531
86593
|
});
|
|
86532
86594
|
import { execSync as execSync6 } from "node:child_process";
|
|
86533
86595
|
import { createHash as createHash2 } from "node:crypto";
|
|
86534
|
-
import { existsSync as
|
|
86596
|
+
import { existsSync as existsSync13, readFileSync as readFileSync4, writeFileSync as writeFileSync7 } from "node:fs";
|
|
86535
86597
|
import path21 from "node:path";
|
|
86536
86598
|
import process23 from "node:process";
|
|
86537
86599
|
function buildManagedTsconfig() {
|
|
@@ -86658,7 +86720,7 @@ async function refreshManagedDenoImportMap(mode) {
|
|
|
86658
86720
|
});
|
|
86659
86721
|
}
|
|
86660
86722
|
async function ensureUserReferencesManaged(opts) {
|
|
86661
|
-
const existing = [opts.file, ...opts.altFiles ?? []].map((f) => path21.join(process23.cwd(), f)).find((p) =>
|
|
86723
|
+
const existing = [opts.file, ...opts.altFiles ?? []].map((f) => path21.join(process23.cwd(), f)).find((p) => existsSync13(p));
|
|
86662
86724
|
if (!existing) {
|
|
86663
86725
|
const userPath = path21.join(process23.cwd(), opts.file);
|
|
86664
86726
|
writeFileSync7(userPath, JSON.stringify(opts.create, null, 2) + `
|
|
@@ -86710,7 +86772,7 @@ async function ensureUserReferencesManaged(opts) {
|
|
|
86710
86772
|
}
|
|
86711
86773
|
function ensureBunTypesAvailable() {
|
|
86712
86774
|
const cwd = process23.cwd();
|
|
86713
|
-
if (
|
|
86775
|
+
if (existsSync13(path21.join(cwd, "node_modules", "bun-types"))) {
|
|
86714
86776
|
return true;
|
|
86715
86777
|
}
|
|
86716
86778
|
try {
|
|
@@ -86733,7 +86795,7 @@ function ensureBunTypesAvailable() {
|
|
|
86733
86795
|
async function warnIfTsconfigStale(opts) {
|
|
86734
86796
|
const cwd = opts?.cwd ?? process23.cwd();
|
|
86735
86797
|
const managedPath = path21.join(cwd, MANAGED_TSCONFIG);
|
|
86736
|
-
if (!
|
|
86798
|
+
if (!existsSync13(managedPath))
|
|
86737
86799
|
return;
|
|
86738
86800
|
let managedText;
|
|
86739
86801
|
try {
|
|
@@ -88172,7 +88234,7 @@ await __promiseAll([
|
|
|
88172
88234
|
init_context()
|
|
88173
88235
|
]);
|
|
88174
88236
|
var import_yaml39 = __toESM(require_dist(), 1);
|
|
88175
|
-
import { existsSync as
|
|
88237
|
+
import { existsSync as existsSync10 } from "node:fs";
|
|
88176
88238
|
import { writeFile as writeFile19 } from "node:fs/promises";
|
|
88177
88239
|
import { dirname as dirname18, join as join18 } from "node:path";
|
|
88178
88240
|
var PROTECTION_RULES_FILENAME = "protection-rules.yaml";
|
|
@@ -88183,7 +88245,7 @@ function getProtectionRulesPath() {
|
|
|
88183
88245
|
return join18(dirname18(wmillPath), PROTECTION_RULES_FILENAME);
|
|
88184
88246
|
}
|
|
88185
88247
|
async function readProtectionRulesFile(path20) {
|
|
88186
|
-
if (!
|
|
88248
|
+
if (!existsSync10(path20))
|
|
88187
88249
|
return {};
|
|
88188
88250
|
const parsed = await yamlParseFile(path20);
|
|
88189
88251
|
return parsed ?? {};
|
|
@@ -88394,7 +88456,7 @@ await __promiseAll([
|
|
|
88394
88456
|
init_conf()
|
|
88395
88457
|
]);
|
|
88396
88458
|
import process22 from "node:process";
|
|
88397
|
-
import { existsSync as
|
|
88459
|
+
import { existsSync as existsSync11 } from "node:fs";
|
|
88398
88460
|
async function pushProtectionRules(opts, workspaceArg) {
|
|
88399
88461
|
if (opts.jsonOutput)
|
|
88400
88462
|
setSilent(true);
|
|
@@ -88404,7 +88466,7 @@ async function pushProtectionRules(opts, workspaceArg) {
|
|
|
88404
88466
|
error: "No wmill.yaml found. Run 'wmill init' first — protection-rules.yaml lives next to it."
|
|
88405
88467
|
});
|
|
88406
88468
|
}
|
|
88407
|
-
if (!
|
|
88469
|
+
if (!existsSync11(prPath)) {
|
|
88408
88470
|
fail(opts, {
|
|
88409
88471
|
error: "No protection-rules.yaml found. Run 'wmill protection-rules pull' first."
|
|
88410
88472
|
});
|
|
@@ -89609,7 +89671,7 @@ await __promiseAll([
|
|
|
89609
89671
|
init_workspace(),
|
|
89610
89672
|
init_resource_type()
|
|
89611
89673
|
]);
|
|
89612
|
-
import { stat as stat20, writeFile as writeFile22, rm as
|
|
89674
|
+
import { stat as stat20, writeFile as writeFile22, rm as rm7 } from "node:fs/promises";
|
|
89613
89675
|
|
|
89614
89676
|
// src/commands/init/template.ts
|
|
89615
89677
|
var NON_SCHEMA_KEYS = new Set([
|
|
@@ -90090,7 +90152,7 @@ await __promiseAll([
|
|
|
90090
90152
|
init_utils(),
|
|
90091
90153
|
init_freshness()
|
|
90092
90154
|
]);
|
|
90093
|
-
import { cp, mkdir as mkdir13, readdir as readdir11, rm as
|
|
90155
|
+
import { cp, mkdir as mkdir13, readdir as readdir11, rm as rm6, stat as stat19, writeFile as writeFile21 } from "node:fs/promises";
|
|
90094
90156
|
import { join as join20 } from "node:path";
|
|
90095
90157
|
var WMILL_INIT_AI_SKILLS_SOURCE_ENV = "WMILL_INIT_AI_SKILLS_SOURCE";
|
|
90096
90158
|
var WMILL_INIT_AI_AGENTS_SOURCE_ENV = "WMILL_INIT_AI_AGENTS_SOURCE";
|
|
@@ -90151,7 +90213,7 @@ async function migrateLegacyManagedFile(targetDir) {
|
|
|
90151
90213
|
const legacyPath = join20(targetDir, LEGACY_AGENTS_CLI_FILENAME);
|
|
90152
90214
|
const legacyExists = await stat19(legacyPath).catch(() => null) != null;
|
|
90153
90215
|
if (legacyExists) {
|
|
90154
|
-
await
|
|
90216
|
+
await rm6(legacyPath, { force: true });
|
|
90155
90217
|
}
|
|
90156
90218
|
return legacyExists;
|
|
90157
90219
|
}
|
|
@@ -90555,8 +90617,8 @@ async function initAction(opts) {
|
|
|
90555
90617
|
});
|
|
90556
90618
|
if (choice === "cancel") {
|
|
90557
90619
|
try {
|
|
90558
|
-
await
|
|
90559
|
-
await
|
|
90620
|
+
await rm7("wmill.yaml");
|
|
90621
|
+
await rm7("wmill-lock.yaml");
|
|
90560
90622
|
} catch {}
|
|
90561
90623
|
info("Init cancelled");
|
|
90562
90624
|
process.exit(0);
|