windmill-cli 1.639.0 → 1.640.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/deps/jsr.io/@std/log/0.224.14/rotating_file_handler.js +1 -1
- package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_loader_state.js +216 -175
- package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/parse.js +0 -2
- package/esm/deps.js +3 -3
- package/esm/gen/core/OpenAPI.js +1 -1
- package/esm/src/commands/lint/lint.js +417 -1
- package/esm/src/commands/sync/sync.js +16 -1
- package/esm/src/main.js +1 -1
- package/esm/src/utils/script_common.js +10 -0
- package/package.json +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_create_walk_entry.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_get_file_info_type.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_is_same_path.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_is_subdir.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_to_path_string.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/copy.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/empty_dir.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_dir.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_file.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_link.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_symlink.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/eol.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/exists.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/expand_glob.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/mod.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/move.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/walk.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_chars.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_dumper_state.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_loader_state.d.ts +0 -5
- package/types/deps/jsr.io/@std/yaml/1.0.12/_loader_state.d.ts.map +1 -0
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_schema.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/binary.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/bool.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/float.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/int.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/map.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/merge.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/nil.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/omap.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/pairs.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/regexp.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/seq.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/set.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/str.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/timestamp.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/undefined.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_utils.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/mod.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/parse.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/stringify.d.ts.map +1 -1
- package/types/deps.d.ts +3 -3
- package/types/src/commands/lint/lint.d.ts +11 -0
- package/types/src/commands/lint/lint.d.ts.map +1 -1
- package/types/src/commands/sync/sync.d.ts +2 -0
- package/types/src/commands/sync/sync.d.ts.map +1 -1
- package/types/src/core/conf.d.ts +1 -0
- package/types/src/core/conf.d.ts.map +1 -1
- package/types/src/main.d.ts +1 -1
- package/types/src/utils/script_common.d.ts +5 -0
- package/types/src/utils/script_common.d.ts.map +1 -1
- package/types/deps/jsr.io/@std/yaml/1.0.11/_loader_state.d.ts.map +0 -1
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_create_walk_entry.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_get_file_info_type.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_is_same_path.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_is_subdir.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_to_path_string.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/copy.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/empty_dir.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_dir.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_file.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_link.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_symlink.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/eol.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/exists.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/expand_glob.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/mod.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/move.js +0 -0
- /package/esm/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/walk.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_chars.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_dumper_state.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_schema.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/binary.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/bool.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/float.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/int.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/map.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/merge.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/nil.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/omap.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/pairs.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/regexp.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/seq.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/set.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/str.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/timestamp.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/undefined.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_utils.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/mod.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/stringify.js +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_create_walk_entry.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_get_file_info_type.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_is_same_path.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_is_subdir.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/_to_path_string.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/copy.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/empty_dir.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_dir.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_file.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_link.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/ensure_symlink.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/eol.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/exists.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/expand_glob.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/mod.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/move.d.ts +0 -0
- /package/types/deps/jsr.io/@std/fs/{1.0.22 → 1.0.23}/walk.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_chars.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_dumper_state.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_schema.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/binary.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/bool.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/float.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/int.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/map.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/merge.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/nil.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/omap.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/pairs.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/regexp.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/seq.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/set.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/str.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/timestamp.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type/undefined.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_type.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/_utils.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/mod.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/parse.d.ts +0 -0
- /package/types/deps/jsr.io/@std/yaml/{1.0.11 → 1.0.12}/stringify.d.ts +0 -0
package/esm/deps.js
CHANGED
|
@@ -12,7 +12,7 @@ export { NpmProvider } from "./deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-r
|
|
|
12
12
|
export { Provider } from "./deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-rc.5/upgrade/mod.js";
|
|
13
13
|
export { CompletionsCommand } from "./deps/jsr.io/@windmill-labs/cliffy-command/1.0.0-rc.5/completions/mod.js";
|
|
14
14
|
// std
|
|
15
|
-
export { ensureDir } from "./deps/jsr.io/@std/fs/1.0.
|
|
15
|
+
export { ensureDir } from "./deps/jsr.io/@std/fs/1.0.23/mod.js";
|
|
16
16
|
export { SEPARATOR as SEP } from "./deps/jsr.io/@std/path/1.1.4/mod.js";
|
|
17
17
|
export * as path from "./deps/jsr.io/@std/path/1.1.4/mod.js";
|
|
18
18
|
export { encodeHex } from "./deps/jsr.io/@std/encoding/1.0.4/mod.js";
|
|
@@ -20,8 +20,8 @@ export { writeAllSync } from "./deps/jsr.io/@std/io/0.225.3/write_all.js";
|
|
|
20
20
|
export { copy } from "./deps/jsr.io/@std/io/0.225.3/copy.js";
|
|
21
21
|
export { readAll } from "./deps/jsr.io/@std/io/0.225.3/read_all.js";
|
|
22
22
|
export * as log from "./deps/jsr.io/@std/log/0.224.14/mod.js";
|
|
23
|
-
export { stringify as yamlStringify } from "./deps/jsr.io/@std/yaml/1.0.
|
|
24
|
-
import { parse as yamlParse } from "./deps/jsr.io/@std/yaml/1.0.
|
|
23
|
+
export { stringify as yamlStringify } from "./deps/jsr.io/@std/yaml/1.0.12/mod.js";
|
|
24
|
+
import { parse as yamlParse } from "./deps/jsr.io/@std/yaml/1.0.12/mod.js";
|
|
25
25
|
export async function yamlParseFile(path, options = {}) {
|
|
26
26
|
try {
|
|
27
27
|
return yamlParse(await dntShim.Deno.readTextFile(path), options);
|
package/esm/gen/core/OpenAPI.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import * as dntShim from "../../../_dnt.shims.js";
|
|
2
|
-
import { colors, Command, log, path, SEP } from "../../../deps.js";
|
|
2
|
+
import { colors, Command, log, path, SEP, yamlParseFile, } from "../../../deps.js";
|
|
3
3
|
import { mergeConfigWithConfigFile } from "../../core/conf.js";
|
|
4
4
|
import { FSFSElement, ignoreF, readDirRecursiveWithIgnore, } from "../sync/sync.js";
|
|
5
5
|
import { getValidationTargetFromFilename, WindmillYamlValidator, } from "windmill-yaml-validator";
|
|
6
|
+
import { inferContentTypeFromFilePath, languageNeedsLock, } from "../../utils/script_common.js";
|
|
7
|
+
import { isFlowInlineScriptPath, isAppInlineScriptPath, getFolderSuffix, } from "../../utils/resource_folders.js";
|
|
8
|
+
import { exts } from "../script/script.js";
|
|
6
9
|
const YAML_FILE_REGEX = /\.ya?ml$/i;
|
|
7
10
|
const NATIVE_TRIGGER_REGEX = /\.[^.]+_native_trigger\.ya?ml$/i;
|
|
8
11
|
function normalizePath(p) {
|
|
@@ -47,6 +50,413 @@ function formatYamlDiagnostics(parsed) {
|
|
|
47
50
|
}
|
|
48
51
|
return diagnostics.map((d) => d?.message || "Invalid YAML document");
|
|
49
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Check if a lock value represents an actually resolved lock.
|
|
55
|
+
* Returns true if the lock is present and valid, false if missing.
|
|
56
|
+
* For `!inline` references, checks that the referenced file exists and is non-empty.
|
|
57
|
+
*/
|
|
58
|
+
async function isLockResolved(lockValue, baseDir) {
|
|
59
|
+
if (lockValue === undefined)
|
|
60
|
+
return false;
|
|
61
|
+
// Array lock (v2 format) - if non-empty, locks are present
|
|
62
|
+
if (Array.isArray(lockValue)) {
|
|
63
|
+
const joined = lockValue.join("\n");
|
|
64
|
+
if (joined === "")
|
|
65
|
+
return false;
|
|
66
|
+
if (joined.startsWith("!inline ")) {
|
|
67
|
+
return await checkInlineFile(joined.substring("!inline ".length), baseDir);
|
|
68
|
+
}
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
if (lockValue === "")
|
|
72
|
+
return false;
|
|
73
|
+
// Inline file reference
|
|
74
|
+
if (lockValue.startsWith("!inline ")) {
|
|
75
|
+
return await checkInlineFile(lockValue.substring("!inline ".length), baseDir);
|
|
76
|
+
}
|
|
77
|
+
// Embedded lock content
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
async function checkInlineFile(relativePath, baseDir) {
|
|
81
|
+
const fullPath = path.join(baseDir, relativePath.trim());
|
|
82
|
+
try {
|
|
83
|
+
const stat = await dntShim.Deno.stat(fullPath);
|
|
84
|
+
return stat.size > 0;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Recursively find rawscript modules in a flow's module tree.
|
|
92
|
+
*/
|
|
93
|
+
function findRawScriptsInModules(modules) {
|
|
94
|
+
const results = [];
|
|
95
|
+
if (!modules || !Array.isArray(modules))
|
|
96
|
+
return results;
|
|
97
|
+
for (const m of modules) {
|
|
98
|
+
if (!m?.value?.type)
|
|
99
|
+
continue;
|
|
100
|
+
if (m.value.type === "rawscript") {
|
|
101
|
+
results.push({
|
|
102
|
+
language: m.value.language,
|
|
103
|
+
lock: m.value.lock,
|
|
104
|
+
id: m.id ?? "unknown",
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
else if (m.value.type === "forloopflow" ||
|
|
108
|
+
m.value.type === "whileloopflow") {
|
|
109
|
+
results.push(...findRawScriptsInModules(m.value.modules));
|
|
110
|
+
}
|
|
111
|
+
else if (m.value.type === "branchall") {
|
|
112
|
+
for (const b of m.value.branches ?? []) {
|
|
113
|
+
results.push(...findRawScriptsInModules(b.modules));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else if (m.value.type === "branchone") {
|
|
117
|
+
for (const b of m.value.branches ?? []) {
|
|
118
|
+
results.push(...findRawScriptsInModules(b.modules));
|
|
119
|
+
}
|
|
120
|
+
if (m.value.default) {
|
|
121
|
+
results.push(...findRawScriptsInModules(m.value.default));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else if (m.value.type === "aiagent") {
|
|
125
|
+
for (const tool of m.value.tools ?? []) {
|
|
126
|
+
const toolValue = tool.value;
|
|
127
|
+
if (toolValue?.tool_type === "flowmodule" &&
|
|
128
|
+
toolValue?.type === "rawscript") {
|
|
129
|
+
results.push({
|
|
130
|
+
language: toolValue.language,
|
|
131
|
+
lock: toolValue.lock,
|
|
132
|
+
id: tool.id ?? "unknown",
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return results;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Recursively find inlineScript objects in a normal app's value structure.
|
|
142
|
+
* Follows the same traversal as traverseAndProcessInlineScripts in app_metadata.ts.
|
|
143
|
+
*/
|
|
144
|
+
function findInlineScriptsInApp(obj, currentPath = []) {
|
|
145
|
+
const results = [];
|
|
146
|
+
if (!obj || typeof obj !== "object")
|
|
147
|
+
return results;
|
|
148
|
+
if (Array.isArray(obj)) {
|
|
149
|
+
for (let i = 0; i < obj.length; i++) {
|
|
150
|
+
results.push(...findInlineScriptsInApp(obj[i], [...currentPath, `[${i}]`]));
|
|
151
|
+
}
|
|
152
|
+
return results;
|
|
153
|
+
}
|
|
154
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
155
|
+
if (key === "inlineScript" && typeof value === "object" && value !== null) {
|
|
156
|
+
const script = value;
|
|
157
|
+
if (script.language) {
|
|
158
|
+
results.push({
|
|
159
|
+
language: script.language,
|
|
160
|
+
lock: script.lock,
|
|
161
|
+
path: [...currentPath, key].join("."),
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
results.push(...findInlineScriptsInApp(value, [...currentPath, key]));
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return results;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Check raw app backend runnables for missing locks.
|
|
173
|
+
* Reads YAML config files and code files from the backend/ folder.
|
|
174
|
+
*/
|
|
175
|
+
async function checkRawAppRunnables(backendDir, rawAppYamlPath, defaultTs) {
|
|
176
|
+
const issues = [];
|
|
177
|
+
const allFiles = [];
|
|
178
|
+
for await (const entry of dntShim.Deno.readDir(backendDir)) {
|
|
179
|
+
if (entry.isFile) {
|
|
180
|
+
allFiles.push(entry.name);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
// Track processed IDs to avoid duplicates
|
|
184
|
+
const processedIds = new Set();
|
|
185
|
+
// Process YAML files (explicit config)
|
|
186
|
+
for (const fileName of allFiles) {
|
|
187
|
+
if (!fileName.endsWith(".yaml"))
|
|
188
|
+
continue;
|
|
189
|
+
const runnableId = fileName.replace(".yaml", "");
|
|
190
|
+
processedIds.add(runnableId);
|
|
191
|
+
const filePath = path.join(backendDir, fileName);
|
|
192
|
+
let runnable;
|
|
193
|
+
try {
|
|
194
|
+
runnable = (await yamlParseFile(filePath));
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
// Only inline runnables need lock checking
|
|
200
|
+
if (runnable?.type !== "inline")
|
|
201
|
+
continue;
|
|
202
|
+
// Find the content file to determine language
|
|
203
|
+
let language = null;
|
|
204
|
+
for (const codeFile of allFiles) {
|
|
205
|
+
if (codeFile.endsWith(".yaml") || codeFile.endsWith(".lock") ||
|
|
206
|
+
!codeFile.startsWith(runnableId + "."))
|
|
207
|
+
continue;
|
|
208
|
+
language = inferContentTypeFromFilePath(codeFile, defaultTs);
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
if (!language || !languageNeedsLock(language))
|
|
212
|
+
continue;
|
|
213
|
+
// Check for lock file
|
|
214
|
+
const lockFile = path.join(backendDir, `${runnableId}.lock`);
|
|
215
|
+
let hasLock = false;
|
|
216
|
+
try {
|
|
217
|
+
const stat = await dntShim.Deno.stat(lockFile);
|
|
218
|
+
hasLock = stat.size > 0;
|
|
219
|
+
}
|
|
220
|
+
catch {
|
|
221
|
+
// No lock file
|
|
222
|
+
}
|
|
223
|
+
// Also check if the runnable YAML has inlineScript.lock
|
|
224
|
+
if (!hasLock && runnable.inlineScript?.lock) {
|
|
225
|
+
hasLock = await isLockResolved(runnable.inlineScript.lock, backendDir);
|
|
226
|
+
}
|
|
227
|
+
if (!hasLock) {
|
|
228
|
+
issues.push({
|
|
229
|
+
path: rawAppYamlPath,
|
|
230
|
+
target: "raw_app_inline_script",
|
|
231
|
+
errors: [
|
|
232
|
+
`Missing lock for ${language} runnable '${runnableId}'. Run 'wmill app generate-locks' to generate locks.`,
|
|
233
|
+
],
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// Auto-detect code files without YAML config
|
|
238
|
+
for (const fileName of allFiles) {
|
|
239
|
+
if (fileName.endsWith(".yaml") || fileName.endsWith(".lock"))
|
|
240
|
+
continue;
|
|
241
|
+
// Extract runnableId from code file
|
|
242
|
+
let runnableId = null;
|
|
243
|
+
try {
|
|
244
|
+
const lang = inferContentTypeFromFilePath(fileName, defaultTs);
|
|
245
|
+
if (lang) {
|
|
246
|
+
// The runnableId is the filename without the extension portion
|
|
247
|
+
// We need to find which extension matches
|
|
248
|
+
for (const ext of exts) {
|
|
249
|
+
if (fileName.endsWith(ext)) {
|
|
250
|
+
runnableId = fileName.slice(0, -ext.length);
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
continue;
|
|
258
|
+
}
|
|
259
|
+
if (!runnableId || processedIds.has(runnableId))
|
|
260
|
+
continue;
|
|
261
|
+
processedIds.add(runnableId);
|
|
262
|
+
let language;
|
|
263
|
+
try {
|
|
264
|
+
language = inferContentTypeFromFilePath(fileName, defaultTs);
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
continue;
|
|
268
|
+
}
|
|
269
|
+
if (!languageNeedsLock(language))
|
|
270
|
+
continue;
|
|
271
|
+
const lockFile = path.join(backendDir, `${runnableId}.lock`);
|
|
272
|
+
let hasLock = false;
|
|
273
|
+
try {
|
|
274
|
+
const stat = await dntShim.Deno.stat(lockFile);
|
|
275
|
+
hasLock = stat.size > 0;
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
// No lock file
|
|
279
|
+
}
|
|
280
|
+
if (!hasLock) {
|
|
281
|
+
issues.push({
|
|
282
|
+
path: rawAppYamlPath,
|
|
283
|
+
target: "raw_app_inline_script",
|
|
284
|
+
errors: [
|
|
285
|
+
`Missing lock for ${language} runnable '${runnableId}'. Run 'wmill app generate-locks' to generate locks.`,
|
|
286
|
+
],
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
return issues;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Check for missing lock files across scripts, flow inline scripts,
|
|
294
|
+
* app inline scripts, and raw app backend scripts.
|
|
295
|
+
* Returns a list of issues for scripts/inline scripts that should have locks but don't.
|
|
296
|
+
*/
|
|
297
|
+
export async function checkMissingLocks(opts, directory) {
|
|
298
|
+
const initialCwd = dntShim.Deno.cwd();
|
|
299
|
+
const targetDirectory = directory
|
|
300
|
+
? path.resolve(initialCwd, directory)
|
|
301
|
+
: dntShim.Deno.cwd();
|
|
302
|
+
const { ...syncOpts } = opts;
|
|
303
|
+
const mergedOpts = await mergeConfigWithConfigFile(syncOpts);
|
|
304
|
+
const ignore = await ignoreF(mergedOpts);
|
|
305
|
+
const root = await FSFSElement(targetDirectory, [], false);
|
|
306
|
+
const issues = [];
|
|
307
|
+
const defaultTs = mergedOpts.defaultTs;
|
|
308
|
+
const flowSuffix = getFolderSuffix("flow");
|
|
309
|
+
const appSuffix = getFolderSuffix("app");
|
|
310
|
+
const rawAppSuffix = getFolderSuffix("raw_app");
|
|
311
|
+
// Collect all file paths and categorize them
|
|
312
|
+
const scriptYamls = [];
|
|
313
|
+
const flowYamls = [];
|
|
314
|
+
const appYamls = [];
|
|
315
|
+
const rawAppYamls = [];
|
|
316
|
+
for await (const entry of readDirRecursiveWithIgnore(ignore, root)) {
|
|
317
|
+
if (entry.isDirectory || entry.ignored)
|
|
318
|
+
continue;
|
|
319
|
+
const normalizedPath = normalizePath(entry.path);
|
|
320
|
+
// Standalone script metadata files (not inside flow/app folders)
|
|
321
|
+
if (normalizedPath.endsWith(".script.yaml") &&
|
|
322
|
+
!isFlowInlineScriptPath(normalizedPath) &&
|
|
323
|
+
!isAppInlineScriptPath(normalizedPath)) {
|
|
324
|
+
scriptYamls.push(normalizedPath);
|
|
325
|
+
}
|
|
326
|
+
// Flow definition files
|
|
327
|
+
if (normalizedPath.endsWith("/flow.yaml") &&
|
|
328
|
+
normalizedPath.includes(flowSuffix + "/")) {
|
|
329
|
+
flowYamls.push({
|
|
330
|
+
normalizedPath,
|
|
331
|
+
fullPath: path.join(targetDirectory, entry.path),
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
// Normal app definition files
|
|
335
|
+
if (normalizedPath.endsWith("/app.yaml") &&
|
|
336
|
+
normalizedPath.includes(appSuffix + "/")) {
|
|
337
|
+
appYamls.push({
|
|
338
|
+
normalizedPath,
|
|
339
|
+
fullPath: path.join(targetDirectory, entry.path),
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
// Raw app definition files
|
|
343
|
+
if (normalizedPath.endsWith("/raw_app.yaml") &&
|
|
344
|
+
normalizedPath.includes(rawAppSuffix + "/")) {
|
|
345
|
+
rawAppYamls.push({
|
|
346
|
+
normalizedPath,
|
|
347
|
+
fullPath: path.join(targetDirectory, entry.path),
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
// Check standalone scripts
|
|
352
|
+
for (const yamlPath of scriptYamls) {
|
|
353
|
+
const basePath = yamlPath.replace(/\.script\.yaml$/, "");
|
|
354
|
+
// Find the content file to determine language
|
|
355
|
+
let language = null;
|
|
356
|
+
for (const ext of exts) {
|
|
357
|
+
try {
|
|
358
|
+
await dntShim.Deno.stat(path.join(targetDirectory, basePath + ext));
|
|
359
|
+
language = inferContentTypeFromFilePath(basePath + ext, defaultTs);
|
|
360
|
+
break;
|
|
361
|
+
}
|
|
362
|
+
catch {
|
|
363
|
+
// Content file with this extension doesn't exist, try next
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
if (language && languageNeedsLock(language)) {
|
|
367
|
+
// Read the metadata to check the lock field
|
|
368
|
+
try {
|
|
369
|
+
const metadata = (await yamlParseFile(path.join(targetDirectory, yamlPath)));
|
|
370
|
+
const lockResolved = await isLockResolved(metadata?.lock, targetDirectory);
|
|
371
|
+
if (!lockResolved) {
|
|
372
|
+
issues.push({
|
|
373
|
+
path: yamlPath,
|
|
374
|
+
target: "script",
|
|
375
|
+
errors: [
|
|
376
|
+
`Missing lock for ${language} script. Run 'wmill script generate-metadata' to generate locks.`,
|
|
377
|
+
],
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
catch (e) {
|
|
382
|
+
log.debug(`Failed to parse ${yamlPath}: ${e}`);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
// Check flow inline scripts
|
|
387
|
+
for (const { normalizedPath: flowYamlPath, fullPath } of flowYamls) {
|
|
388
|
+
const flowDir = path.dirname(fullPath);
|
|
389
|
+
try {
|
|
390
|
+
const flowFile = (await yamlParseFile(fullPath));
|
|
391
|
+
if (!flowFile?.value?.modules)
|
|
392
|
+
continue;
|
|
393
|
+
const rawScripts = findRawScriptsInModules(flowFile.value.modules);
|
|
394
|
+
for (const script of rawScripts) {
|
|
395
|
+
if (!languageNeedsLock(script.language))
|
|
396
|
+
continue;
|
|
397
|
+
const lockResolved = await isLockResolved(script.lock, flowDir);
|
|
398
|
+
if (!lockResolved) {
|
|
399
|
+
issues.push({
|
|
400
|
+
path: flowYamlPath,
|
|
401
|
+
target: "flow_inline_script",
|
|
402
|
+
errors: [
|
|
403
|
+
`Missing lock for ${script.language} inline script '${script.id}'. Run 'wmill flow generate-locks' to generate locks.`,
|
|
404
|
+
],
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
catch (e) {
|
|
410
|
+
log.debug(`Failed to parse flow ${flowYamlPath}: ${e}`);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
// Check normal app inline scripts
|
|
414
|
+
for (const { normalizedPath: appYamlPath, fullPath } of appYamls) {
|
|
415
|
+
const appDir = path.dirname(fullPath);
|
|
416
|
+
try {
|
|
417
|
+
const appFile = (await yamlParseFile(fullPath));
|
|
418
|
+
if (!appFile?.value)
|
|
419
|
+
continue;
|
|
420
|
+
const inlineScripts = findInlineScriptsInApp(appFile.value);
|
|
421
|
+
for (const script of inlineScripts) {
|
|
422
|
+
if (!languageNeedsLock(script.language))
|
|
423
|
+
continue;
|
|
424
|
+
const lockResolved = await isLockResolved(script.lock, appDir);
|
|
425
|
+
if (!lockResolved) {
|
|
426
|
+
issues.push({
|
|
427
|
+
path: appYamlPath,
|
|
428
|
+
target: "app_inline_script",
|
|
429
|
+
errors: [
|
|
430
|
+
`Missing lock for ${script.language} inline script at '${script.path}'. Run 'wmill app generate-locks' to generate locks.`,
|
|
431
|
+
],
|
|
432
|
+
});
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
catch (e) {
|
|
437
|
+
log.debug(`Failed to parse app ${appYamlPath}: ${e}`);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
// Check raw app backend scripts
|
|
441
|
+
for (const { normalizedPath: rawAppYamlPath, fullPath } of rawAppYamls) {
|
|
442
|
+
const rawAppDir = path.dirname(fullPath);
|
|
443
|
+
const backendDir = path.join(rawAppDir, "backend");
|
|
444
|
+
try {
|
|
445
|
+
await dntShim.Deno.stat(backendDir);
|
|
446
|
+
}
|
|
447
|
+
catch {
|
|
448
|
+
continue; // No backend folder
|
|
449
|
+
}
|
|
450
|
+
try {
|
|
451
|
+
const runnableIssues = await checkRawAppRunnables(backendDir, rawAppYamlPath, defaultTs);
|
|
452
|
+
issues.push(...runnableIssues);
|
|
453
|
+
}
|
|
454
|
+
catch (e) {
|
|
455
|
+
log.debug(`Failed to check raw app runnables ${rawAppYamlPath}: ${e}`);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
return issues;
|
|
459
|
+
}
|
|
50
460
|
export async function runLint(opts, directory) {
|
|
51
461
|
const initialCwd = dntShim.Deno.cwd();
|
|
52
462
|
const explicitTargetDirectory = directory
|
|
@@ -110,6 +520,11 @@ export async function runLint(opts, directory) {
|
|
|
110
520
|
validFiles += 1;
|
|
111
521
|
}
|
|
112
522
|
}
|
|
523
|
+
// Check for missing locks if --locks-required is set
|
|
524
|
+
if (opts.locksRequired) {
|
|
525
|
+
const lockIssues = await checkMissingLocks(opts, explicitTargetDirectory);
|
|
526
|
+
issues.push(...lockIssues);
|
|
527
|
+
}
|
|
113
528
|
const invalidFiles = issues.length;
|
|
114
529
|
const shouldFail = invalidFiles > 0 ||
|
|
115
530
|
(!!opts.failOnWarn && warnings.length > 0);
|
|
@@ -180,5 +595,6 @@ const command = new Command()
|
|
|
180
595
|
.arguments("[directory:string]")
|
|
181
596
|
.option("--json", "Output results in JSON format")
|
|
182
597
|
.option("--fail-on-warn", "Exit with code 1 when warnings are emitted")
|
|
598
|
+
.option("--locks-required", "Fail if scripts or flow inline scripts that need locks have no locks")
|
|
183
599
|
.action(lint);
|
|
184
600
|
export default command;
|
|
@@ -5,7 +5,7 @@ import { colors, Command, Confirm, ensureDir, log, minimatch, path, SEP, yamlPar
|
|
|
5
5
|
import * as wmill from "../../../gen/services.gen.js";
|
|
6
6
|
import { getTypeStrFromPath, parseFromPath, pushObj, showConflict, showDiff, extractNativeTriggerInfo, } from "../../types.js";
|
|
7
7
|
import { downloadZip } from "./pull.js";
|
|
8
|
-
import { runLint, printReport } from "../lint/lint.js";
|
|
8
|
+
import { runLint, printReport, checkMissingLocks } from "../lint/lint.js";
|
|
9
9
|
import { exts, findContentFile, findResourceFile, handleScriptMetadata, removeExtensionToPath, } from "../script/script.js";
|
|
10
10
|
import { handleFile } from "../script/script.js";
|
|
11
11
|
import { deepEqual, fetchRemoteVersion, isFileResource, isRawAppFile, isWorkspaceDependencies, } from "../../utils/utils.js";
|
|
@@ -1713,6 +1713,20 @@ export async function push(opts) {
|
|
|
1713
1713
|
dntShim.Deno.exit(1);
|
|
1714
1714
|
}
|
|
1715
1715
|
}
|
|
1716
|
+
if (opts.locksRequired) {
|
|
1717
|
+
log.info("Checking for missing locks...");
|
|
1718
|
+
const lockIssues = await checkMissingLocks(opts);
|
|
1719
|
+
if (lockIssues.length > 0) {
|
|
1720
|
+
for (const issue of lockIssues) {
|
|
1721
|
+
for (const error of issue.errors) {
|
|
1722
|
+
log.error(colors.red(` ${issue.path}: ${error}`));
|
|
1723
|
+
}
|
|
1724
|
+
}
|
|
1725
|
+
log.error(colors.red(`\nPush aborted: ${lockIssues.length} script(s) missing locks.`));
|
|
1726
|
+
dntShim.Deno.exit(1);
|
|
1727
|
+
}
|
|
1728
|
+
log.info(colors.green("All scripts have valid locks."));
|
|
1729
|
+
}
|
|
1716
1730
|
const codebases = await listSyncCodebases(opts);
|
|
1717
1731
|
if (opts.raw) {
|
|
1718
1732
|
log.info("--raw is now the default, you can remove it as a flag");
|
|
@@ -2289,6 +2303,7 @@ const command = new Command()
|
|
|
2289
2303
|
.option("--repository <repo:string>", "Specify repository path (e.g., u/user/repo) when multiple repositories exist")
|
|
2290
2304
|
.option("--branch <branch:string>", "Override the current git branch (works even outside a git repository)")
|
|
2291
2305
|
.option("--lint", "Run lint validation before pushing")
|
|
2306
|
+
.option("--locks-required", "Fail if scripts or flow inline scripts that need locks have no locks")
|
|
2292
2307
|
// deno-lint-ignore no-explicit-any
|
|
2293
2308
|
.action(push);
|
|
2294
2309
|
export default command;
|
package/esm/src/main.js
CHANGED
|
@@ -47,7 +47,7 @@ export { flow, app, script, workspace, resource, resourceType, user, variable, h
|
|
|
47
47
|
// console.error(JSON.stringify(event.error, null, 4));
|
|
48
48
|
// }
|
|
49
49
|
// });
|
|
50
|
-
export const VERSION = "1.
|
|
50
|
+
export const VERSION = "1.640.0";
|
|
51
51
|
// Re-exported from constants.ts to maintain backwards compatibility
|
|
52
52
|
export { WM_FORK_PREFIX } from "./core/constants.js";
|
|
53
53
|
const command = new Command()
|
|
@@ -4,6 +4,16 @@ export const workspaceDependenciesLanguages = [
|
|
|
4
4
|
{ language: "php", filename: "composer.json" },
|
|
5
5
|
{ language: "go", filename: "go.mod" },
|
|
6
6
|
];
|
|
7
|
+
/**
|
|
8
|
+
* Returns true if a script in the given language requires a lock file.
|
|
9
|
+
* Matches the condition in updateScriptLock (metadata.ts).
|
|
10
|
+
*/
|
|
11
|
+
export function languageNeedsLock(language) {
|
|
12
|
+
return (workspaceDependenciesLanguages.some((l) => l.language === language) ||
|
|
13
|
+
language === "deno" ||
|
|
14
|
+
language === "rust" ||
|
|
15
|
+
language === "ansible");
|
|
16
|
+
}
|
|
7
17
|
export function inferContentTypeFromFilePath(contentPath, defaultTs) {
|
|
8
18
|
if (contentPath.endsWith(".py")) {
|
|
9
19
|
return "python3";
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_create_walk_entry.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"_create_walk_entry.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/_create_walk_entry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AAOxD;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,OAAO,CAAC,IAAI,CAAC,QAAQ;IACtD,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS,CAYjE;AAED,kEAAkE;AAClE,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAY5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_get_file_info_type.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"_get_file_info_type.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/_get_file_info_type.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAC;AAGxD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;AAElD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAQrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_is_same_path.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"_is_same_path.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/_is_same_path.ts"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,IAAI,EAAE,MAAM,GAAG,GAAG,GACjB,OAAO,CAKT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_is_subdir.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"_is_subdir.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/_is_subdir.ts"],"names":[],"mappings":"AAOA;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,GAAG,aAAY,GACd,OAAO,CAYT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_to_path_string.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"_to_path_string.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/_to_path_string.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,GAAG,GAAG,GACpB,MAAM,CAER"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"copy.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/copy.ts"],"names":[],"mappings":"AAaA,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;;;OASG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAoOD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAsB,IAAI,CACxB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,OAAO,GAAE,WAAgB,iBAwB1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,GAAG,GAAG,EACjB,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,OAAO,GAAE,WAAgB,QAwB1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empty_dir.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"empty_dir.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/empty_dir.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,iBAkB/C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,QAmB7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure_dir.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"ensure_dir.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/ensure_dir.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,iBAuBhD;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,QAuB9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure_file.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"ensure_file.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/ensure_file.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBtE;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAsB3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure_link.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"ensure_link.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/ensure_link.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,iBAKrE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,QAKnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure_symlink.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"ensure_symlink.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/ensure_symlink.ts"],"names":[],"mappings":"AAyBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,GAAG,GAAG,EACpB,QAAQ,EAAE,MAAM,GAAG,GAAG,iBAyCvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,GAAG,GAAG,EACpB,QAAQ,EAAE,MAAM,GAAG,GAAG,QAyCvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eol.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"eol.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/eol.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,EAAE,EAAG,IAAa,CAAC;AAEhC,mDAAmD;AACnD,eAAO,MAAM,IAAI,EAAG,MAAe,CAAC;AAEpC;;;;;;;;;GASG;AACH,eAAO,MAAM,GAAG,EAAE,IAAI,GAAG,MAEgD,CAAC;AAI1E;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,GAAG,IAAI,CAQzD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,MAAM,CAE/D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exists.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"exists.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/exists.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgGG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAsClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAqCT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expand_glob.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"expand_glob.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/expand_glob.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,oCAAoC,CAAC;AAQpF,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AAEvC,yEAAyE;AACzE,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC;IAChE;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAuCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmLG;AACH,wBAAuB,UAAU,CAC/B,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,qBAAqB,CAAC,SAAS,CAAC,CAyGlC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAiB,cAAc,CAC7B,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,gBAAgB,CAAC,SAAS,CAAC,CAuG7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/fs/1.0.23/mod.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC"}
|