gagen 0.4.0 → 0.5.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 +161 -8
- package/esm/cli.d.ts.map +1 -1
- package/esm/cli.js +40 -0
- package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.14}/build_message.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.14}/diff.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.14}/diff_str.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.14}/format.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.14}/styles.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/internal/{1.0.12 → 1.0.14}/types.d.ts.map +1 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_chars.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_dumper_state.d.ts +2 -2
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_dumper_state.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_dumper_state.js +2 -1
- package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_loader_state.d.ts +2 -2
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_loader_state.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_loader_state.js +41 -24
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_schema.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/binary.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/bool.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/float.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/float.js +4 -4
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/int.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/map.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/merge.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/nil.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/omap.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/pairs.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/regexp.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/seq.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/set.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/str.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/timestamp.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type/undefined.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_type.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/1.1.1/_utils.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/parse.d.ts +7 -5
- package/esm/deps/jsr.io/@std/yaml/1.1.1/parse.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/parse.js +3 -1
- package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/stringify.d.ts +1 -1
- package/esm/deps/jsr.io/@std/yaml/1.1.1/stringify.d.ts.map +1 -0
- package/esm/job.d.ts.map +1 -1
- package/esm/job.js +201 -62
- package/esm/mod.d.ts +3 -3
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +1 -1
- package/esm/pin.d.ts +34 -4
- package/esm/pin.d.ts.map +1 -1
- package/esm/pin.js +124 -40
- package/esm/step.d.ts +48 -1
- package/esm/step.d.ts.map +1 -1
- package/esm/step.js +117 -3
- package/esm/workflow.d.ts.map +1 -1
- package/esm/workflow.js +4 -4
- package/package.json +1 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_chars.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_dumper_state.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_loader_state.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_schema.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/binary.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/bool.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/float.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/int.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/map.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/merge.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/nil.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/omap.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/pairs.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/regexp.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/seq.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/set.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/str.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/timestamp.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type/undefined.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_type.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/_utils.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/parse.d.ts.map +0 -1
- package/esm/deps/jsr.io/@std/yaml/1.0.12/stringify.d.ts.map +0 -1
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_chars.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_chars.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_schema.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_schema.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/binary.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/binary.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/bool.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/bool.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/float.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/int.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/int.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/map.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/map.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/merge.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/merge.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/nil.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/nil.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/omap.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/omap.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/pairs.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/pairs.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/regexp.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/regexp.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/seq.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/seq.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/set.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/set.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/str.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/str.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/timestamp.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/timestamp.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/undefined.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type/undefined.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_type.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_utils.d.ts +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/_utils.js +0 -0
- /package/esm/deps/jsr.io/@std/yaml/{1.0.12 → 1.1.1}/stringify.js +0 -0
package/esm/pin.js
CHANGED
|
@@ -39,68 +39,143 @@ export function resolveRef(owner, repo, ref) {
|
|
|
39
39
|
}
|
|
40
40
|
throw new Error(`Could not resolve ref "${ref}" for ${owner}/${repo}`);
|
|
41
41
|
}
|
|
42
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* Resolves non-SHA refs in YAML content to commit hashes, writing the
|
|
44
|
+
* original ref as an inline comment after the pinned `uses:` value.
|
|
45
|
+
*/
|
|
43
46
|
export function pinYamlContent(yamlStr, resolve = resolveRef, cache) {
|
|
44
47
|
const pins = [];
|
|
45
|
-
const
|
|
48
|
+
const resolved = new Map();
|
|
46
49
|
if (cache) {
|
|
47
50
|
for (const entry of cache) {
|
|
48
|
-
|
|
51
|
+
resolved.set(entry.original, entry.hash);
|
|
49
52
|
}
|
|
50
53
|
}
|
|
51
|
-
const content = yamlStr.replace(/^(\s+(?:-\s+)?uses:\s+)(
|
|
52
|
-
const
|
|
53
|
-
const parsed = parseActionUses(trimmed);
|
|
54
|
+
const content = yamlStr.replace(/^(\s+(?:-\s+)?uses:\s+)(\S+)([^\n]*)$/gm, (_match, prefix, usesValue, rest) => {
|
|
55
|
+
const parsed = parseActionUses(usesValue);
|
|
54
56
|
if (!parsed)
|
|
55
|
-
return `${prefix}${usesValue}`;
|
|
57
|
+
return `${prefix}${usesValue}${rest}`;
|
|
56
58
|
if (isCommitHash(parsed.ref)) {
|
|
57
|
-
// already pinned —
|
|
58
|
-
|
|
59
|
+
// already pinned — recover the original ref from an inline comment
|
|
60
|
+
// or, failing that, from the legacy footer entries in the cache
|
|
61
|
+
const actionPath = usesValue.substring(0, usesValue.lastIndexOf("@"));
|
|
62
|
+
let originalRef;
|
|
63
|
+
const inlineMatch = rest.match(/^\s*#\s*(\S+)/);
|
|
64
|
+
if (inlineMatch) {
|
|
65
|
+
originalRef = inlineMatch[1];
|
|
66
|
+
}
|
|
67
|
+
else if (cache) {
|
|
59
68
|
for (const entry of cache) {
|
|
60
69
|
const ep = parseActionUses(entry.original);
|
|
61
70
|
if (ep &&
|
|
62
71
|
`${ep.owner}/${ep.repo}` === `${parsed.owner}/${parsed.repo}` &&
|
|
72
|
+
ep.path === parsed.path &&
|
|
63
73
|
entry.hash === parsed.ref) {
|
|
64
|
-
|
|
65
|
-
pins.push(entry);
|
|
66
|
-
}
|
|
74
|
+
originalRef = ep.ref;
|
|
67
75
|
break;
|
|
68
76
|
}
|
|
69
77
|
}
|
|
70
78
|
}
|
|
71
|
-
|
|
79
|
+
if (!originalRef)
|
|
80
|
+
return `${prefix}${usesValue}${rest}`;
|
|
81
|
+
const original = `${actionPath}@${originalRef}`;
|
|
82
|
+
if (!pins.some((p) => p.original === original)) {
|
|
83
|
+
pins.push({ original, hash: parsed.ref });
|
|
84
|
+
}
|
|
85
|
+
return `${prefix}${usesValue} # ${originalRef}`;
|
|
72
86
|
}
|
|
73
|
-
let hash =
|
|
87
|
+
let hash = resolved.get(usesValue);
|
|
74
88
|
if (!hash) {
|
|
75
89
|
hash = resolve(parsed.owner, parsed.repo, parsed.ref);
|
|
76
|
-
|
|
90
|
+
resolved.set(usesValue, hash);
|
|
77
91
|
}
|
|
78
|
-
if (!pins.some((p) => p.original ===
|
|
79
|
-
pins.push({ original:
|
|
92
|
+
if (!pins.some((p) => p.original === usesValue)) {
|
|
93
|
+
pins.push({ original: usesValue, hash });
|
|
80
94
|
}
|
|
81
|
-
const
|
|
82
|
-
return `${prefix}${
|
|
95
|
+
const actionPath = usesValue.substring(0, usesValue.lastIndexOf("@"));
|
|
96
|
+
return `${prefix}${actionPath}@${hash} # ${parsed.ref}`;
|
|
83
97
|
});
|
|
84
98
|
return { content, pins };
|
|
85
99
|
}
|
|
86
|
-
/**
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const lines = sorted.map((p) => `# gagen:pin ${p.original} = ${p.hash}`);
|
|
92
|
-
return "\n" + lines.join("\n") + "\n";
|
|
93
|
-
}
|
|
94
|
-
/** Extracts pin entries from file content. */
|
|
100
|
+
/**
|
|
101
|
+
* Extracts pin entries from file content. Reads the current inline format
|
|
102
|
+
* (`uses: owner/repo@HASH # ref`) and, for backwards compatibility, the
|
|
103
|
+
* legacy footer format (`# gagen:pin owner/repo@ref = HASH`).
|
|
104
|
+
*/
|
|
95
105
|
export function parsePinComments(content) {
|
|
96
106
|
const pins = [];
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
107
|
+
const seen = new Set();
|
|
108
|
+
const inlineRe = /^\s+(?:-\s+)?uses:\s+(\S+?)@([0-9a-f]{40})\s+#\s*(\S+)/gm;
|
|
109
|
+
let m;
|
|
110
|
+
while ((m = inlineRe.exec(content)) !== null) {
|
|
111
|
+
const original = `${m[1]}@${m[3]}`;
|
|
112
|
+
if (seen.has(original))
|
|
113
|
+
continue;
|
|
114
|
+
seen.add(original);
|
|
115
|
+
pins.push({ original, hash: m[2] });
|
|
116
|
+
}
|
|
117
|
+
const footerRe = /^# gagen:pin (.+) = ([0-9a-f]{40})$/gm;
|
|
118
|
+
while ((m = footerRe.exec(content)) !== null) {
|
|
119
|
+
if (seen.has(m[1]))
|
|
120
|
+
continue;
|
|
121
|
+
seen.add(m[1]);
|
|
122
|
+
pins.push({ original: m[1], hash: m[2] });
|
|
101
123
|
}
|
|
102
124
|
return pins;
|
|
103
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Collects the pinned version for each action across a set of generated
|
|
128
|
+
* YAML files. If an action appears in multiple files with different
|
|
129
|
+
* versions, it is returned as a conflict instead — conflicts must be
|
|
130
|
+
* resolved manually since there is no single correct target version.
|
|
131
|
+
*/
|
|
132
|
+
export function collectActionVersions(yamlContents) {
|
|
133
|
+
const seen = new Map();
|
|
134
|
+
for (const content of yamlContents) {
|
|
135
|
+
for (const pin of parsePinComments(content)) {
|
|
136
|
+
const parsed = parseActionUses(pin.original);
|
|
137
|
+
if (!parsed)
|
|
138
|
+
continue;
|
|
139
|
+
const action = parsed.path
|
|
140
|
+
? `${parsed.owner}/${parsed.repo}/${parsed.path}`
|
|
141
|
+
: `${parsed.owner}/${parsed.repo}`;
|
|
142
|
+
let set = seen.get(action);
|
|
143
|
+
if (!set) {
|
|
144
|
+
set = new Set();
|
|
145
|
+
seen.set(action, set);
|
|
146
|
+
}
|
|
147
|
+
set.add(parsed.ref);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const versions = new Map();
|
|
151
|
+
const conflicts = new Map();
|
|
152
|
+
for (const [action, set] of seen) {
|
|
153
|
+
if (set.size === 1) {
|
|
154
|
+
versions.set(action, [...set][0]);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
conflicts.set(action, [...set]);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return { versions, conflicts };
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Rewrites literal `"owner/repo@<ref>"` (or single-quoted) strings in
|
|
164
|
+
* source code to use the target version from the given map. Only matches
|
|
165
|
+
* literals with a single owner/repo[/path]@ref shape; variables, template
|
|
166
|
+
* substitutions, and non-string forms are left alone.
|
|
167
|
+
*/
|
|
168
|
+
export function pullVersionsInSource(source, versions) {
|
|
169
|
+
const changes = [];
|
|
170
|
+
const content = source.replace(/(["'])([^"'@\s/]+\/[^"'@\s/]+(?:\/[^"'@\s]+)?)@([^"'\s]+)\1/g, (match, quote, action, ref) => {
|
|
171
|
+
const target = versions.get(action);
|
|
172
|
+
if (!target || target === ref)
|
|
173
|
+
return match;
|
|
174
|
+
changes.push({ action, from: ref, to: target });
|
|
175
|
+
return `${quote}${action}@${target}${quote}`;
|
|
176
|
+
});
|
|
177
|
+
return { content, changes };
|
|
178
|
+
}
|
|
104
179
|
/**
|
|
105
180
|
* Replaces pinned hashes in a parsed YAML object with their original
|
|
106
181
|
* tag/branch refs using the provided pin mapping.
|
|
@@ -125,19 +200,28 @@ export function unpinParsedYaml(obj, pins) {
|
|
|
125
200
|
hashToOriginal.has(jobObj.uses)) {
|
|
126
201
|
jobObj.uses = hashToOriginal.get(jobObj.uses);
|
|
127
202
|
}
|
|
128
|
-
// steps
|
|
203
|
+
// steps (including steps nested inside parallel: blocks)
|
|
129
204
|
if (Array.isArray(jobObj.steps)) {
|
|
130
205
|
for (const s of jobObj.steps) {
|
|
131
|
-
|
|
132
|
-
const stepObj = s;
|
|
133
|
-
if (typeof stepObj.uses === "string" &&
|
|
134
|
-
hashToOriginal.has(stepObj.uses)) {
|
|
135
|
-
stepObj.uses = hashToOriginal.get(stepObj.uses);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
206
|
+
unpinStep(s, hashToOriginal);
|
|
138
207
|
}
|
|
139
208
|
}
|
|
140
209
|
}
|
|
141
210
|
}
|
|
142
211
|
return obj;
|
|
143
212
|
}
|
|
213
|
+
/** Reverts a pinned hash on a single step, recursing into `parallel:` blocks. */
|
|
214
|
+
function unpinStep(step, hashToOriginal) {
|
|
215
|
+
if (typeof step !== "object" || step === null)
|
|
216
|
+
return;
|
|
217
|
+
const stepObj = step;
|
|
218
|
+
if (typeof stepObj.uses === "string" &&
|
|
219
|
+
hashToOriginal.has(stepObj.uses)) {
|
|
220
|
+
stepObj.uses = hashToOriginal.get(stepObj.uses);
|
|
221
|
+
}
|
|
222
|
+
if (Array.isArray(stepObj.parallel)) {
|
|
223
|
+
for (const child of stepObj.parallel) {
|
|
224
|
+
unpinStep(child, hashToOriginal);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
package/esm/step.d.ts
CHANGED
|
@@ -14,9 +14,32 @@ export interface StepConfig<O extends string = never> {
|
|
|
14
14
|
readonly continueOnError?: boolean | string;
|
|
15
15
|
readonly timeoutMinutes?: number;
|
|
16
16
|
readonly outputs?: readonly O[];
|
|
17
|
+
/** Runs the step asynchronously so the job continues without waiting for it. */
|
|
18
|
+
readonly background?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Makes this a `wait` step that blocks until the referenced background
|
|
21
|
+
* step(s) finish. Prefer `step.waitFor(...)`, which also wires up ordering.
|
|
22
|
+
*/
|
|
23
|
+
readonly wait?: StepLike | readonly StepLike[];
|
|
24
|
+
/**
|
|
25
|
+
* Makes this a `wait-all` step that blocks until all active background steps
|
|
26
|
+
* finish. Prefer `step.waitForAll()`.
|
|
27
|
+
*/
|
|
28
|
+
readonly waitAll?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Makes this a `cancel` step that terminates the referenced background step.
|
|
31
|
+
* Prefer `step.cancel(...)`, which also wires up ordering.
|
|
32
|
+
*/
|
|
33
|
+
readonly cancel?: StepLike;
|
|
17
34
|
}
|
|
18
35
|
export declare function resetStepCounter(): void;
|
|
19
36
|
export type StepLike = Step<string> | StepRef<string> | StepConfig;
|
|
37
|
+
/**
|
|
38
|
+
* How a composite step's children relate to each other. "sequential" children
|
|
39
|
+
* run one after another (the default); "parallel" children run concurrently and
|
|
40
|
+
* serialize to a GitHub Actions `parallel:` block.
|
|
41
|
+
*/
|
|
42
|
+
export type CompositeKind = "sequential" | "parallel";
|
|
20
43
|
export declare class Step<O extends string = never> implements ExpressionSource {
|
|
21
44
|
#private;
|
|
22
45
|
readonly config: StepConfig<O>;
|
|
@@ -26,8 +49,10 @@ export declare class Step<O extends string = never> implements ExpressionSource
|
|
|
26
49
|
readonly _crossJobDeps: readonly Step<string>[];
|
|
27
50
|
readonly children: readonly StepLike[];
|
|
28
51
|
constructor(config: StepConfig<O>, crossJobDeps?: Step<string>[]);
|
|
29
|
-
constructor(children: readonly StepLike[]);
|
|
52
|
+
constructor(children: readonly StepLike[], kind?: CompositeKind);
|
|
30
53
|
get id(): string;
|
|
54
|
+
/** Whether this composite's children run sequentially or in parallel. */
|
|
55
|
+
get kind(): CompositeKind;
|
|
31
56
|
dependsOn(...deps: StepLike[]): StepRef<O>;
|
|
32
57
|
comesAfter(...deps: StepLike[]): StepRef<O>;
|
|
33
58
|
if(condition: ConditionLike): StepRef<O>;
|
|
@@ -38,12 +63,34 @@ export interface StepBuilder {
|
|
|
38
63
|
if(condition: ConditionLike): StepBuilder;
|
|
39
64
|
dependsOn(...deps: StepLike[]): StepBuilder;
|
|
40
65
|
comesAfter(...deps: StepLike[]): StepBuilder;
|
|
66
|
+
/** Builds a parallel group from the args, carrying this builder's deps/condition. */
|
|
67
|
+
parallel(...args: (StepConfig | Step<string> | StepRef<string>)[]): StepRef<string>;
|
|
41
68
|
}
|
|
42
69
|
export interface StepFunction {
|
|
43
70
|
<const O extends string = never>(...args: (StepConfig<O> | Step<string> | StepRef<string>)[]): Step<O>;
|
|
44
71
|
if(condition: ConditionLike): StepBuilder;
|
|
45
72
|
dependsOn(...deps: StepLike[]): StepBuilder;
|
|
46
73
|
comesAfter(...deps: StepLike[]): StepBuilder;
|
|
74
|
+
/**
|
|
75
|
+
* Groups steps into a parallel block. The steps run concurrently and
|
|
76
|
+
* serialize to a GitHub Actions `parallel:` block. Shared dependencies
|
|
77
|
+
* (pulled in via `dependsOn`) are hoisted to run before the block.
|
|
78
|
+
*/
|
|
79
|
+
parallel(...args: (StepConfig | Step<string> | StepRef<string>)[]): Step<string>;
|
|
80
|
+
/**
|
|
81
|
+
* Creates a `wait` step that blocks until the given background step(s)
|
|
82
|
+
* finish. The referenced steps are ordered before this one and must each be
|
|
83
|
+
* a background step with an explicit `id`.
|
|
84
|
+
*/
|
|
85
|
+
waitFor(...steps: (Step<string> | StepRef<string>)[]): StepRef<string>;
|
|
86
|
+
/** Creates a `wait-all` step that blocks until all background steps finish. */
|
|
87
|
+
waitForAll(): Step<string>;
|
|
88
|
+
/**
|
|
89
|
+
* Creates a `cancel` step that terminates the given background step. The
|
|
90
|
+
* referenced step is ordered before this one and must be a background step
|
|
91
|
+
* with an explicit `id`.
|
|
92
|
+
*/
|
|
93
|
+
cancel(target: Step<string> | StepRef<string>): StepRef<string>;
|
|
47
94
|
}
|
|
48
95
|
export declare const step: StepFunction;
|
|
49
96
|
export declare class StepRef<O extends string = never> {
|
package/esm/step.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../src/step.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,eAAe,EAIhB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,eAAe,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,eAAe,CAAC;AAEtE,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK;IAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../src/step.ts"],"names":[],"mappings":"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"}
|
package/esm/step.js
CHANGED
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _Step_id;
|
|
12
|
+
var _Step_id, _Step_kind;
|
|
13
13
|
import { Condition, ExpressionValue, isAlwaysTrue, RawCondition, sourcesFrom, } from "./expression.js";
|
|
14
14
|
let stepCounter = 0;
|
|
15
15
|
// exported for testing only
|
|
@@ -17,8 +17,9 @@ export function resetStepCounter() {
|
|
|
17
17
|
stepCounter = 0;
|
|
18
18
|
}
|
|
19
19
|
export class Step {
|
|
20
|
-
constructor(configOrChildren,
|
|
20
|
+
constructor(configOrChildren, second) {
|
|
21
21
|
_Step_id.set(this, void 0);
|
|
22
|
+
_Step_kind.set(this, void 0);
|
|
22
23
|
Object.defineProperty(this, "config", {
|
|
23
24
|
enumerable: true,
|
|
24
25
|
configurable: true,
|
|
@@ -50,16 +51,20 @@ export class Step {
|
|
|
50
51
|
throw new Error("step() requires at least one step");
|
|
51
52
|
}
|
|
52
53
|
__classPrivateFieldSet(this, _Step_id, `_step_${stepCounter++}`, "f");
|
|
54
|
+
__classPrivateFieldSet(this, _Step_kind, second ?? "sequential", "f");
|
|
53
55
|
this.config = {};
|
|
54
56
|
this._crossJobDeps = Object.freeze([]);
|
|
55
57
|
this.outputs = {};
|
|
56
58
|
this.children = Object.freeze([...configOrChildren]);
|
|
57
59
|
return;
|
|
58
60
|
}
|
|
61
|
+
__classPrivateFieldSet(this, _Step_kind, "sequential", "f");
|
|
62
|
+
const crossJobDeps = second;
|
|
59
63
|
const config = configOrChildren;
|
|
60
64
|
if (config.outputs?.length && !config.id) {
|
|
61
65
|
throw new Error("Step with outputs must have an explicit id");
|
|
62
66
|
}
|
|
67
|
+
assertStepShape(config);
|
|
63
68
|
__classPrivateFieldSet(this, _Step_id, config.id ?? `_step_${stepCounter++}`, "f");
|
|
64
69
|
this.config = config;
|
|
65
70
|
this._crossJobDeps = Object.freeze(crossJobDeps ?? []);
|
|
@@ -77,6 +82,10 @@ export class Step {
|
|
|
77
82
|
get id() {
|
|
78
83
|
return __classPrivateFieldGet(this, _Step_id, "f");
|
|
79
84
|
}
|
|
85
|
+
/** Whether this composite's children run sequentially or in parallel. */
|
|
86
|
+
get kind() {
|
|
87
|
+
return __classPrivateFieldGet(this, _Step_kind, "f");
|
|
88
|
+
}
|
|
80
89
|
dependsOn(...deps) {
|
|
81
90
|
return new StepRef(this, { dependencies: deps });
|
|
82
91
|
}
|
|
@@ -125,10 +134,26 @@ export class Step {
|
|
|
125
134
|
? this.config.run.join("\n")
|
|
126
135
|
: this.config.run;
|
|
127
136
|
}
|
|
137
|
+
if (this.config.background) {
|
|
138
|
+
result.background = true;
|
|
139
|
+
}
|
|
140
|
+
if (this.config.wait != null) {
|
|
141
|
+
const refs = Array.isArray(this.config.wait)
|
|
142
|
+
? this.config.wait
|
|
143
|
+
: [this.config.wait];
|
|
144
|
+
const ids = [...new Set(refs.map(waitCancelTargetId))];
|
|
145
|
+
result.wait = ids.length === 1 ? ids[0] : ids;
|
|
146
|
+
}
|
|
147
|
+
if (this.config.waitAll) {
|
|
148
|
+
result["wait-all"] = null;
|
|
149
|
+
}
|
|
150
|
+
if (this.config.cancel != null) {
|
|
151
|
+
result.cancel = waitCancelTargetId(this.config.cancel);
|
|
152
|
+
}
|
|
128
153
|
return result;
|
|
129
154
|
}
|
|
130
155
|
}
|
|
131
|
-
_Step_id = new WeakMap();
|
|
156
|
+
_Step_id = new WeakMap(), _Step_kind = new WeakMap();
|
|
132
157
|
function buildStepFromArgs(...args) {
|
|
133
158
|
if (args.length === 0) {
|
|
134
159
|
throw new Error("step() requires at least one argument");
|
|
@@ -192,13 +217,64 @@ function createStepBuilder(init) {
|
|
|
192
217
|
afterDependencies: [...(init.afterDependencies ?? []), ...deps],
|
|
193
218
|
});
|
|
194
219
|
};
|
|
220
|
+
builder.parallel = (...args) => {
|
|
221
|
+
return new StepRef(buildParallelFromArgs(...args), {
|
|
222
|
+
condition: init.condition,
|
|
223
|
+
dependencies: init.dependencies ?? [],
|
|
224
|
+
afterDependencies: init.afterDependencies ?? [],
|
|
225
|
+
});
|
|
226
|
+
};
|
|
195
227
|
return builder;
|
|
196
228
|
}
|
|
197
229
|
export const step = Object.assign(buildStepFromArgs, {
|
|
198
230
|
if: (condition) => createStepBuilder({ condition }),
|
|
199
231
|
dependsOn: (...deps) => createStepBuilder({ dependencies: deps }),
|
|
200
232
|
comesAfter: (...deps) => createStepBuilder({ afterDependencies: deps }),
|
|
233
|
+
parallel: (...args) => buildParallelFromArgs(...args),
|
|
234
|
+
waitFor: (...steps) => buildWaitFor(...steps),
|
|
235
|
+
waitForAll: () => new Step({ waitAll: true }),
|
|
236
|
+
cancel: (target) => buildCancel(target),
|
|
201
237
|
});
|
|
238
|
+
/** Builds a `wait` step that depends on (and orders after) its targets. */
|
|
239
|
+
function buildWaitFor(...steps) {
|
|
240
|
+
if (steps.length === 0) {
|
|
241
|
+
throw new Error("step.waitFor() requires at least one step");
|
|
242
|
+
}
|
|
243
|
+
for (const s of steps) {
|
|
244
|
+
assertWaitCancelTarget(s, "step.waitFor()", "each referenced step");
|
|
245
|
+
}
|
|
246
|
+
// keep the original Step/StepRef so the target's own deps are preserved
|
|
247
|
+
return new StepRef(new Step({ wait: steps }), {
|
|
248
|
+
dependencies: steps,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
/** Builds a `cancel` step that depends on (and orders after) its target. */
|
|
252
|
+
function buildCancel(target) {
|
|
253
|
+
assertWaitCancelTarget(target, "step.cancel()", "the referenced step");
|
|
254
|
+
return new StepRef(new Step({ cancel: target }), {
|
|
255
|
+
dependencies: [target],
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
/** Validates a `waitFor`/`cancel` target: a background step with an explicit id. */
|
|
259
|
+
function assertWaitCancelTarget(target, call, subject) {
|
|
260
|
+
const step = unwrapStep(target);
|
|
261
|
+
if (!step.config.id) {
|
|
262
|
+
throw new Error(`${call} requires ${subject} to have an explicit id`);
|
|
263
|
+
}
|
|
264
|
+
if (!step.config.background) {
|
|
265
|
+
throw new Error(`${call} can only target a background step`);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/** Builds a parallel composite step from the given args. */
|
|
269
|
+
function buildParallelFromArgs(...args) {
|
|
270
|
+
if (args.length === 0) {
|
|
271
|
+
throw new Error("step.parallel() requires at least one argument");
|
|
272
|
+
}
|
|
273
|
+
const children = args.map((item) => item instanceof Step || item instanceof StepRef
|
|
274
|
+
? item
|
|
275
|
+
: new Step(item));
|
|
276
|
+
return new Step(children, "parallel");
|
|
277
|
+
}
|
|
202
278
|
// --- StepRef: immutable wrapper for per-usage deps/conditions ---
|
|
203
279
|
export class StepRef {
|
|
204
280
|
constructor(step, init) {
|
|
@@ -263,6 +339,44 @@ export class StepRef {
|
|
|
263
339
|
}
|
|
264
340
|
}
|
|
265
341
|
// --- serialization helpers ---
|
|
342
|
+
/**
|
|
343
|
+
* Validates that a step does not combine mutually exclusive control keys.
|
|
344
|
+
* `wait`, `wait-all`, and `cancel` are distinct step kinds — each must stand
|
|
345
|
+
* alone (a step that waits or cancels does no work of its own).
|
|
346
|
+
*/
|
|
347
|
+
function assertStepShape(config) {
|
|
348
|
+
const controlKeys = [];
|
|
349
|
+
if (config.wait != null)
|
|
350
|
+
controlKeys.push("wait");
|
|
351
|
+
if (config.waitAll)
|
|
352
|
+
controlKeys.push("wait-all");
|
|
353
|
+
if (config.cancel != null)
|
|
354
|
+
controlKeys.push("cancel");
|
|
355
|
+
if (controlKeys.length > 1) {
|
|
356
|
+
throw new Error(`A step cannot combine ${controlKeys.join(", ")} — ` +
|
|
357
|
+
"wait, wait-all, and cancel are mutually exclusive.");
|
|
358
|
+
}
|
|
359
|
+
if (controlKeys.length === 1) {
|
|
360
|
+
const work = [];
|
|
361
|
+
if (config.run != null)
|
|
362
|
+
work.push("run");
|
|
363
|
+
if (config.uses != null)
|
|
364
|
+
work.push("uses");
|
|
365
|
+
if (config.background)
|
|
366
|
+
work.push("background");
|
|
367
|
+
if (work.length > 0) {
|
|
368
|
+
throw new Error(`A ${controlKeys[0]} step cannot also have ${work.join(", ")}.`);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
/** Resolves the explicit id of a step referenced by `wait`/`cancel`. */
|
|
373
|
+
function waitCancelTargetId(item) {
|
|
374
|
+
const step = unwrapStep(item);
|
|
375
|
+
if (!step.config.id) {
|
|
376
|
+
throw new Error("a step referenced by `wait` or `cancel` must have an explicit id");
|
|
377
|
+
}
|
|
378
|
+
return step.config.id;
|
|
379
|
+
}
|
|
266
380
|
export function serializeConditionLike(c) {
|
|
267
381
|
if (c instanceof Condition) {
|
|
268
382
|
return c.toExpression();
|
package/esm/workflow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAgB,KAAK,MAAM,EAAgB,MAAM,UAAU,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAQ,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
|
package/esm/workflow.js
CHANGED
|
@@ -11,11 +11,11 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
11
11
|
};
|
|
12
12
|
var _Workflow_config, _Workflow_jobs;
|
|
13
13
|
import process from "node:process";
|
|
14
|
-
import { parse } from "./deps/jsr.io/@std/yaml/1.
|
|
15
|
-
import { stringify } from "./deps/jsr.io/@std/yaml/1.
|
|
14
|
+
import { parse } from "./deps/jsr.io/@std/yaml/1.1.1/parse.js";
|
|
15
|
+
import { stringify } from "./deps/jsr.io/@std/yaml/1.1.1/stringify.js";
|
|
16
16
|
import { ExpressionValue } from "./expression.js";
|
|
17
17
|
import { Job, job as jobFn, resolveJobId } from "./job.js";
|
|
18
|
-
import {
|
|
18
|
+
import { parsePinComments, pinYamlContent, unpinParsedYaml } from "./pin.js";
|
|
19
19
|
import fs from "node:fs";
|
|
20
20
|
export class Workflow {
|
|
21
21
|
constructor(config) {
|
|
@@ -154,7 +154,7 @@ export class Workflow {
|
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
const result = pinYamlContent(expected, resolve, cache);
|
|
157
|
-
output = result.content
|
|
157
|
+
output = result.content;
|
|
158
158
|
}
|
|
159
159
|
fs.writeFileSync(options.filePath, output);
|
|
160
160
|
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_chars.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_chars.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,GAAG,QAAS,CAAC;AAC1B,eAAO,MAAM,GAAG,IAAO,CAAC;AACxB,eAAO,MAAM,SAAS,KAAO,CAAC;AAC9B,eAAO,MAAM,eAAe,KAAO,CAAC;AACpC,eAAO,MAAM,KAAK,KAAO,CAAC;AAC1B,eAAO,MAAM,WAAW,KAAO,CAAC;AAChC,eAAO,MAAM,YAAY,KAAO,CAAC;AACjC,eAAO,MAAM,KAAK,KAAO,CAAC;AAC1B,eAAO,MAAM,OAAO,KAAO,CAAC;AAC5B,eAAO,MAAM,SAAS,KAAO,CAAC;AAC9B,eAAO,MAAM,YAAY,KAAO,CAAC;AACjC,eAAO,MAAM,QAAQ,KAAO,CAAC;AAC7B,eAAO,MAAM,IAAI,KAAO,CAAC;AACzB,eAAO,MAAM,KAAK,KAAO,CAAC;AAC1B,eAAO,MAAM,KAAK,KAAO,CAAC;AAC1B,eAAO,MAAM,GAAG,KAAO,CAAC;AACxB,eAAO,MAAM,KAAK,KAAO,CAAC;AAC1B,eAAO,MAAM,YAAY,KAAO,CAAC;AACjC,eAAO,MAAM,YAAY,KAAO,CAAC;AACjC,eAAO,MAAM,QAAQ,KAAO,CAAC;AAC7B,eAAO,MAAM,aAAa,KAAO,CAAC;AAClC,eAAO,MAAM,mBAAmB,KAAO,CAAC;AACxC,eAAO,MAAM,SAAS,KAAO,CAAC;AAC9B,eAAO,MAAM,oBAAoB,KAAO,CAAC;AACzC,eAAO,MAAM,YAAY,KAAO,CAAC;AACjC,eAAO,MAAM,kBAAkB,MAAO,CAAC;AACvC,eAAO,MAAM,aAAa,MAAO,CAAC;AAClC,eAAO,MAAM,mBAAmB,MAAO,CAAC;AAExC,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAExC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAQlD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_dumper_state.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_dumper_state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_loader_state.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_loader_state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_schema.d.ts","sourceRoot":"","sources":["../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_schema.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAiBjD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAE/E;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,MAAM,OAAO,GAAG,MAAM,CAC1B,QAAQ,GAAG,UAAU,EACrB,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAC1B,CAAC;AAqBF,MAAM,WAAW,MAAM;IACrB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;CAClB;AA2CD;;GAEG;AACH,eAAO,MAAM,cAAc,QAIzB,CAAC;AA2BH,eAAO,MAAM,UAAU,yBAMrB,CAAC;AAEH,wBAAgB,SAAS,CACvB,MAAM,GAAE,UAAsB,EAC9B,KAAK,CAAC,EAAE,YAAY,EAAE,GACrB,MAAM,CAWR"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/binary.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAmHxC,eAAO,MAAM,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,CAO7C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bool.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/bool.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAMxC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAyBxC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"float.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/float.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAgB,IAAI,EAAE,MAAM,aAAa,CAAC;AAkGtD,eAAO,MAAM,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAQxC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"int.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/int.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAqIxC,eAAO,MAAM,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAmCtC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/map.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CASxC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/merge.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAKzC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nil.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/nil.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAmBpC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"omap.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/omap.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAiBxC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAOjE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pairs.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/pairs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAQxC,eAAO,MAAM,KAAK,EAAE,IAAI,CAAC,UAAU,CAQlC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regexp.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/regexp.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAIxC,eAAO,MAAM,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAuBzC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"seq.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/seq.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,CAK3C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/set.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAS7D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"str.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/str.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAKtC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timestamp.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/timestamp.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAsFxC,eAAO,MAAM,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAS1C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"undefined.d.ts","sourceRoot":"","sources":["../../../../../../../src/deps/jsr.io/@std/yaml/1.0.12/_type/undefined.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAenD,CAAC"}
|