@savvy-web/silk 3.15.3 → 4.0.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/bin/savvy-mcp.js +20 -0
- package/bin/savvy.js +20 -0
- package/changesets-changelog.cjs +711 -644
- package/changesets-changelog.d.cts +183 -111
- package/changesets-changelog.d.ts +183 -111
- package/changesets-changelog.js +712 -648
- package/changesets-markdownlint.cjs +686 -632
- package/changesets-markdownlint.d.cts +7 -9237
- package/changesets-markdownlint.d.ts +7 -9237
- package/changesets-markdownlint.js +698 -644
- package/lint.js +1 -1
- package/package.json +9 -5
|
@@ -34,11 +34,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
34
34
|
enumerable: true
|
|
35
35
|
}) : target, mod));
|
|
36
36
|
//#endregion
|
|
37
|
-
let _effected_templates = require("@effected/templates");
|
|
38
37
|
let effect = require("effect");
|
|
38
|
+
let _effected_templates = require("@effected/templates");
|
|
39
|
+
let _effected_workspaces = require("@effected/workspaces");
|
|
39
40
|
let node_path = require("node:path");
|
|
40
41
|
node_path = __toESM(node_path, 1);
|
|
41
|
-
let _effected_workspaces = require("@effected/workspaces");
|
|
42
42
|
let node_fs_promises = require("node:fs/promises");
|
|
43
43
|
node_fs_promises = __toESM(node_fs_promises, 1);
|
|
44
44
|
let node_util = require("node:util");
|
|
@@ -79,7 +79,7 @@ let semver_functions_gt_js = require("semver/functions/gt.js");
|
|
|
79
79
|
semver_functions_gt_js = __toESM(semver_functions_gt_js, 1);
|
|
80
80
|
let semver_functions_inc_js = require("semver/functions/inc.js");
|
|
81
81
|
semver_functions_inc_js = __toESM(semver_functions_inc_js, 1);
|
|
82
|
-
//#region ../silk-
|
|
82
|
+
//#region ../silk-core/dist/dev/pkg/errors/ChangesetConfigError.js
|
|
83
83
|
/**
|
|
84
84
|
* Raised when the `.changeset/config.json` file cannot be read or decoded.
|
|
85
85
|
*
|
|
@@ -96,7 +96,441 @@ var ChangesetConfigError = class extends effect.Data.TaggedError("ChangesetConfi
|
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
98
|
//#endregion
|
|
99
|
-
//#region ../silk-
|
|
99
|
+
//#region ../silk-core/dist/dev/pkg/errors/PublishTargetBindingError.js
|
|
100
|
+
/**
|
|
101
|
+
* Raised when publishability detection selects a directory that the package's
|
|
102
|
+
* `dist/prod/targets.json` binding does not describe.
|
|
103
|
+
*
|
|
104
|
+
* @remarks
|
|
105
|
+
* The bundler's prod build writes `targets.json` naming every byte-group
|
|
106
|
+
* directory it produced. Once that binding exists it is authoritative: the only
|
|
107
|
+
* directories whose bytes may be published are the ones it lists. A detector
|
|
108
|
+
* that returns anything else — most often `publishConfig.directory` pointing at
|
|
109
|
+
* a **dev** build, because silk mode was misdetected — is about to pack an
|
|
110
|
+
* unresolved workspace manifest and ship it to a registry.
|
|
111
|
+
*
|
|
112
|
+
* That is the `yaml-effect@0.7.1` failure: detection picked `dist/dev/pkg`, the
|
|
113
|
+
* dev manifest still carried `catalog:` specifiers, and the published package
|
|
114
|
+
* was uninstallable (`EUNSUPPORTEDPROTOCOL`).
|
|
115
|
+
*
|
|
116
|
+
* @since 3.1.0
|
|
117
|
+
* @public
|
|
118
|
+
*/
|
|
119
|
+
var PublishTargetBindingError = class extends effect.Data.TaggedError("PublishTargetBindingError") {
|
|
120
|
+
get message() {
|
|
121
|
+
return `Package ${this.pkg} resolved publish directory "${this.directory}", which is not one of the directories bound by dist/prod/targets.json (${this.boundDirectories.join(", ")}). This means publishability detection did not select the prod build output — refusing to publish before packing an unresolved manifest.`;
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
//#endregion
|
|
125
|
+
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/IssueReferences.js
|
|
126
|
+
/**
|
|
127
|
+
* GitHub's closing-keyword issue-reference grammar, as pure functions.
|
|
128
|
+
*
|
|
129
|
+
* @remarks
|
|
130
|
+
* GitHub links an issue to a pull request when the PR's description carries
|
|
131
|
+
* `<keyword> #<number>` for one of nine documented keywords. Consumers speak
|
|
132
|
+
* that grammar in two distinct dialects, and this module models exactly those
|
|
133
|
+
* two — no service, no layer, nothing but strings in and values out:
|
|
134
|
+
*
|
|
135
|
+
* - **Inline-in-prose** ({@link harvestIssueReferences}): a reference may appear anywhere in
|
|
136
|
+
* running text — `"fixes #12 and closes #13"` — with mandatory whitespace
|
|
137
|
+
* and **no colon**, because that is the spelling GitHub itself scans PR
|
|
138
|
+
* bodies for. This is the dialect a release pipeline harvests from commit
|
|
139
|
+
* subjects and PR descriptions.
|
|
140
|
+
* - **Bare-line** ({@link parseBareLineReference}): the whole line, after trimming, *is*
|
|
141
|
+
* the reference — `"Closes: #12"` — with an **optional colon**, because a
|
|
142
|
+
* generated references region writes one reference per line and a colon
|
|
143
|
+
* reads better there. GitHub does not require the colon; the region format
|
|
144
|
+
* allows it, so the parser must too. The dialects differ because their
|
|
145
|
+
* producers do: prose is written by humans for GitHub's scanner, the region
|
|
146
|
+
* is written by tooling for humans.
|
|
147
|
+
*
|
|
148
|
+
* Deliberately out of scope this round: cross-repo references
|
|
149
|
+
* (`owner/repo#N`) and full-URL references
|
|
150
|
+
* (`https://github.com/owner/repo/issues/N`). Both are real GitHub spellings;
|
|
151
|
+
* neither dialect's consumers emit them yet, and guessing at their shape here
|
|
152
|
+
* would freeze an API nobody has driven.
|
|
153
|
+
*/
|
|
154
|
+
/**
|
|
155
|
+
* The nine closing keywords GitHub documents, lowercased.
|
|
156
|
+
*
|
|
157
|
+
* @public
|
|
158
|
+
*/
|
|
159
|
+
const CLOSING_KEYWORDS = [
|
|
160
|
+
"close",
|
|
161
|
+
"closes",
|
|
162
|
+
"closed",
|
|
163
|
+
"fix",
|
|
164
|
+
"fixes",
|
|
165
|
+
"fixed",
|
|
166
|
+
"resolve",
|
|
167
|
+
"resolves",
|
|
168
|
+
"resolved"
|
|
169
|
+
];
|
|
170
|
+
/**
|
|
171
|
+
* Both patterns derive from {@link CLOSING_KEYWORDS} so the constant and the
|
|
172
|
+
* grammar cannot drift. Alternation order is safe: the regex engine backtracks
|
|
173
|
+
* through alternatives, so `close` matching inside `closes` fails at the
|
|
174
|
+
* mandatory `#`-introducer and retries the longer keyword.
|
|
175
|
+
*/
|
|
176
|
+
const KEYWORDS = CLOSING_KEYWORDS.join("|");
|
|
177
|
+
new RegExp(`\\b(${KEYWORDS})\\s+#(\\d+)`, "gi");
|
|
178
|
+
new RegExp(`^(${KEYWORDS}):?[ \\t]+#(\\d+)$`, "i");
|
|
179
|
+
//#endregion
|
|
180
|
+
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/ClosingList.js
|
|
181
|
+
/**
|
|
182
|
+
* The closing-list dialect: one whole line naming several issues at once.
|
|
183
|
+
*
|
|
184
|
+
* @remarks
|
|
185
|
+
* The third dialect, alongside the two in `IssueReferences`: after trimming,
|
|
186
|
+
* the **entire** line must be `<keyword>[:] <list>` — keyword
|
|
187
|
+
* case-insensitive (lowercased to canonical form in the result), colon
|
|
188
|
+
* optional, and the list one or more `#<digits>` items separated by `,`,
|
|
189
|
+
* `and`, or the Oxford `, and`. Whitespace inside the line is `[ \t]` only,
|
|
190
|
+
* so an embedded newline cannot smuggle two lines past a parser whose
|
|
191
|
+
* contract is one — the same posture as the bare-line pattern. Any trailing
|
|
192
|
+
* content after the list rejects the line; duplicates are preserved in order,
|
|
193
|
+
* because whether `#1, #1` means one issue or two is the caller's business.
|
|
194
|
+
*
|
|
195
|
+
* Two keyword sets play here. {@link parseClosingList} accepts only the nine
|
|
196
|
+
* closing keywords and yields a {@link ClosingList}; {@link parseReferenceList}
|
|
197
|
+
* additionally accepts the non-closing {@link REFERENCE_KEYWORDS} (`ref`,
|
|
198
|
+
* `refs`, `references`) and reports which set matched via
|
|
199
|
+
* {@link ReferenceList}'s `closing` flag.
|
|
200
|
+
*
|
|
201
|
+
* An item whose digits exceed `Number.MAX_SAFE_INTEGER` rejects the **whole
|
|
202
|
+
* line**, where `harvestIssueReferences` merely skips the one match. The
|
|
203
|
+
* asymmetry is deliberate: a harvest drops one reference out of running
|
|
204
|
+
* prose, but a list line is a single claim about a set of issues, and
|
|
205
|
+
* returning the parseable subset would misrepresent the line as claiming
|
|
206
|
+
* less than it does.
|
|
207
|
+
*
|
|
208
|
+
* Complexity posture: parsing is a single left-to-right character scan —
|
|
209
|
+
* this module contains **no regular expressions at all** — so worst-case
|
|
210
|
+
* time is linear in the line length by construction. There is no
|
|
211
|
+
* backtracking engine to feed, no polynomial blow-up for a scanner to flag,
|
|
212
|
+
* and therefore no input truncation.
|
|
213
|
+
*
|
|
214
|
+
* Beyond the whole-line parsers, {@link harvestReferenceLists} generalizes
|
|
215
|
+
* the same list grammar to the inline-in-prose posture — several lists on
|
|
216
|
+
* one line of running text — and {@link parseClosingLists} /
|
|
217
|
+
* {@link parseReferenceLists} apply the whole-line parsers per line of a
|
|
218
|
+
* multi-line text. All of them ride the same character scan; the no-regex
|
|
219
|
+
* promise above covers every export here.
|
|
220
|
+
*/
|
|
221
|
+
/**
|
|
222
|
+
* The non-closing reference keywords the list dialect accepts, lowercased.
|
|
223
|
+
*
|
|
224
|
+
* @remarks
|
|
225
|
+
* GitHub does not act on these — they associate without closing — but a
|
|
226
|
+
* references region writes them, so the parser must read them.
|
|
227
|
+
*
|
|
228
|
+
* @public
|
|
229
|
+
*/
|
|
230
|
+
const REFERENCE_KEYWORDS = [
|
|
231
|
+
"ref",
|
|
232
|
+
"refs",
|
|
233
|
+
"references"
|
|
234
|
+
];
|
|
235
|
+
/**
|
|
236
|
+
* Both keyword tables ARE the exported constants — membership sets built from
|
|
237
|
+
* them once — so the constants and the grammar cannot drift.
|
|
238
|
+
*/
|
|
239
|
+
const ALL_KEYWORDS = /* @__PURE__ */ new Set([...CLOSING_KEYWORDS, ...REFERENCE_KEYWORDS]);
|
|
240
|
+
/** Membership test for reporting `closing`, widened once so no call casts. */
|
|
241
|
+
const CLOSING_SET = new Set(CLOSING_KEYWORDS);
|
|
242
|
+
const HASH = 35;
|
|
243
|
+
const COLON = 58;
|
|
244
|
+
const COMMA = 44;
|
|
245
|
+
/** `[ \t]` — the only whitespace the dialect admits, per the module remarks. */
|
|
246
|
+
const isSpaceTab = (code) => code === 32 || code === 9;
|
|
247
|
+
const isDigit$2 = (code) => code >= 48 && code <= 57;
|
|
248
|
+
const isAsciiLetter = (code) => code >= 65 && code <= 90 || code >= 97 && code <= 122;
|
|
249
|
+
/** The index after the run of `[ \t]` starting at `from` (possibly `from` itself). */
|
|
250
|
+
const skipSpaceTab = (line, from) => {
|
|
251
|
+
let index = from;
|
|
252
|
+
while (index < line.length && isSpaceTab(line.charCodeAt(index))) index += 1;
|
|
253
|
+
return index;
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* One list item at exactly `from`: `#<digits>` and the index one past it.
|
|
257
|
+
* Digits exceeding `Number.MAX_SAFE_INTEGER` report `"unsafe"` rather than a
|
|
258
|
+
* silently rounded issue number, still carrying the index one past the digit
|
|
259
|
+
* run so a caller can skip the item's extent; the whole-line parsers reject
|
|
260
|
+
* on it and {@link harvestReferenceLists} abandons the entire candidate —
|
|
261
|
+
* see the module remarks for why a list never yields a partial reading.
|
|
262
|
+
* Anything that is not `#<digits>` at all is `undefined`.
|
|
263
|
+
*/
|
|
264
|
+
const readItem = (line, from) => {
|
|
265
|
+
if (line.charCodeAt(from) !== HASH) return void 0;
|
|
266
|
+
const start = from + 1;
|
|
267
|
+
let index = start;
|
|
268
|
+
while (index < line.length && isDigit$2(line.charCodeAt(index))) index += 1;
|
|
269
|
+
if (index === start) return void 0;
|
|
270
|
+
const value = Number(line.slice(start, index));
|
|
271
|
+
return Number.isSafeInteger(value) ? {
|
|
272
|
+
kind: "item",
|
|
273
|
+
value,
|
|
274
|
+
next: index
|
|
275
|
+
} : {
|
|
276
|
+
kind: "unsafe",
|
|
277
|
+
next: index
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
/**
|
|
281
|
+
* One separator at exactly `from`: a comma with optional surrounding `[ \t]`
|
|
282
|
+
* and an optional Oxford `and` (consumed only when its own trailing `[ \t]+`
|
|
283
|
+
* is present), or a bare `and` requiring `[ \t]+` on both sides. `and` is
|
|
284
|
+
* lowercase-only — the keyword head is case-insensitive, the separator is
|
|
285
|
+
* not. Returns the index where the next item must start, or `undefined` when
|
|
286
|
+
* no separator is present.
|
|
287
|
+
*/
|
|
288
|
+
const scanSeparator = (line, from) => {
|
|
289
|
+
const afterLeading = skipSpaceTab(line, from);
|
|
290
|
+
if (line.charCodeAt(afterLeading) === COMMA) {
|
|
291
|
+
const afterComma = skipSpaceTab(line, afterLeading + 1);
|
|
292
|
+
if (line.startsWith("and", afterComma)) {
|
|
293
|
+
const afterAnd = skipSpaceTab(line, afterComma + 3);
|
|
294
|
+
if (afterAnd > afterComma + 3) return afterAnd;
|
|
295
|
+
}
|
|
296
|
+
return afterComma;
|
|
297
|
+
}
|
|
298
|
+
if (afterLeading > from && line.startsWith("and", afterLeading)) {
|
|
299
|
+
const afterAnd = skipSpaceTab(line, afterLeading + 3);
|
|
300
|
+
if (afterAnd > afterLeading + 3) return afterAnd;
|
|
301
|
+
}
|
|
302
|
+
};
|
|
303
|
+
/**
|
|
304
|
+
* The scan walk: item, then separator, then item, until the cursor stands
|
|
305
|
+
* exactly at the end of the string. Anything else — a malformed item, an
|
|
306
|
+
* unknown separator, trailing content, an unsafe issue number — is
|
|
307
|
+
* `undefined`, and the caller rejects the whole line.
|
|
308
|
+
*/
|
|
309
|
+
const parseItems = (line, from) => {
|
|
310
|
+
const issueNumbers = [];
|
|
311
|
+
let cursor = from;
|
|
312
|
+
for (;;) {
|
|
313
|
+
const item = readItem(line, cursor);
|
|
314
|
+
if (item === void 0 || item.kind === "unsafe") return void 0;
|
|
315
|
+
issueNumbers.push(item.value);
|
|
316
|
+
cursor = item.next;
|
|
317
|
+
if (cursor === line.length) return issueNumbers;
|
|
318
|
+
const next = scanSeparator(line, cursor);
|
|
319
|
+
if (next === void 0) return void 0;
|
|
320
|
+
cursor = next;
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
/**
|
|
324
|
+
* The list a whole line carries under either keyword set, or `Option.none()`.
|
|
325
|
+
*
|
|
326
|
+
* @remarks
|
|
327
|
+
* Accepts the nine closing keywords plus {@link REFERENCE_KEYWORDS}, and
|
|
328
|
+
* reports which set matched in the result's `closing` flag. Grammar,
|
|
329
|
+
* whole-line posture and the whole-line rejection of unsafe issue numbers
|
|
330
|
+
* are in the module remarks.
|
|
331
|
+
*
|
|
332
|
+
* @public
|
|
333
|
+
*/
|
|
334
|
+
const parseReferenceList = (line) => {
|
|
335
|
+
const trimmed = line.trim();
|
|
336
|
+
let letters = 0;
|
|
337
|
+
while (letters < trimmed.length && isAsciiLetter(trimmed.charCodeAt(letters))) letters += 1;
|
|
338
|
+
if (letters === 0) return effect.Option.none();
|
|
339
|
+
const keyword = trimmed.slice(0, letters).toLowerCase();
|
|
340
|
+
if (!ALL_KEYWORDS.has(keyword)) return effect.Option.none();
|
|
341
|
+
let cursor = letters;
|
|
342
|
+
if (trimmed.charCodeAt(cursor) === COLON) cursor += 1;
|
|
343
|
+
const afterWhitespace = skipSpaceTab(trimmed, cursor);
|
|
344
|
+
if (afterWhitespace === cursor) return effect.Option.none();
|
|
345
|
+
const issueNumbers = parseItems(trimmed, afterWhitespace);
|
|
346
|
+
if (issueNumbers === void 0) return effect.Option.none();
|
|
347
|
+
return effect.Option.some({
|
|
348
|
+
keyword,
|
|
349
|
+
closing: CLOSING_SET.has(keyword),
|
|
350
|
+
issueNumbers
|
|
351
|
+
});
|
|
352
|
+
};
|
|
353
|
+
/**
|
|
354
|
+
* Every reference list a text carries, line by line, across both postures.
|
|
355
|
+
*
|
|
356
|
+
* @remarks
|
|
357
|
+
* The trailer/prose interleave consumers otherwise hand-roll: each line is
|
|
358
|
+
* tried as a whole-line reference list first ({@link parseReferenceList} —
|
|
359
|
+
* colon-tolerant, per the line dialect), and only a line that is not one is
|
|
360
|
+
* harvested inline ({@link harvestReferenceLists} — no colon, per the inline
|
|
361
|
+
* dialect). The preference means a colon-less trailer line contributes its
|
|
362
|
+
* list exactly once, never once per posture.
|
|
363
|
+
*
|
|
364
|
+
* Results carry no offsets, deliberately: this is the line-granular
|
|
365
|
+
* composition, and a consumer that needs spans uses
|
|
366
|
+
* {@link harvestReferenceLists} directly. Duplicates are preserved, in
|
|
367
|
+
* document order.
|
|
368
|
+
*
|
|
369
|
+
* @public
|
|
370
|
+
*/
|
|
371
|
+
const collectReferenceLists = (text) => {
|
|
372
|
+
const lists = [];
|
|
373
|
+
for (const line of text.split("\n")) {
|
|
374
|
+
const whole = parseReferenceList(line);
|
|
375
|
+
if (effect.Option.isSome(whole)) {
|
|
376
|
+
lists.push(whole.value);
|
|
377
|
+
continue;
|
|
378
|
+
}
|
|
379
|
+
for (const harvested of harvestReferenceLists(line)) lists.push({
|
|
380
|
+
keyword: harvested.keyword,
|
|
381
|
+
closing: harvested.closing,
|
|
382
|
+
issueNumbers: harvested.issueNumbers
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
return lists;
|
|
386
|
+
};
|
|
387
|
+
/** `[A-Za-z0-9_]` — the word-boundary alphabet the inline dialects use. */
|
|
388
|
+
const isWordChar = (code) => isAsciiLetter(code) || isDigit$2(code) || code === 95;
|
|
389
|
+
/**
|
|
390
|
+
* The full JavaScript `\s` set, spelled as a predicate so the module keeps
|
|
391
|
+
* its no-regex promise: ASCII whitespace, NEL-adjacent controls, and the
|
|
392
|
+
* Unicode space separators. Only the keyword→first-item gap of
|
|
393
|
+
* {@link harvestReferenceLists} admits this set — everything inside a list
|
|
394
|
+
* stays `[ \t]`, per the module remarks.
|
|
395
|
+
*/
|
|
396
|
+
const isAnyWhitespace = (code) => code === 32 || code >= 9 && code <= 13 || code === 160 || code === 5760 || code >= 8192 && code <= 8202 || code === 8232 || code === 8233 || code === 8239 || code === 8287 || code === 12288 || code === 65279;
|
|
397
|
+
/**
|
|
398
|
+
* Every reference list found inline in `text`, in document order.
|
|
399
|
+
*
|
|
400
|
+
* @remarks
|
|
401
|
+
* The inline-in-prose posture generalized to lists:
|
|
402
|
+
* `Closes #123, Fixes #456` in one line of a commit body yields two
|
|
403
|
+
* single-item lists, where
|
|
404
|
+
* `harvestIssueReferences` reads only the first reference of each and the
|
|
405
|
+
* whole-line parsers read neither. The grammar per candidate:
|
|
406
|
+
*
|
|
407
|
+
* - The keyword is case-insensitive, drawn from either keyword set,
|
|
408
|
+
* lowercased to canonical form in the result, with `closing` reported by
|
|
409
|
+
* set membership. Word boundaries hold on both sides: the characters
|
|
410
|
+
* immediately before and after the keyword's letter run must not be
|
|
411
|
+
* `[A-Za-z0-9_]`, so `recloses #1` and `1closes #1` do not match.
|
|
412
|
+
* - **No colon** — exactly like `harvestIssueReferences`, the colon spelling
|
|
413
|
+
* belongs to the line dialects ({@link parseReferenceList} and the
|
|
414
|
+
* bare-line parser), so `closes: #1` inline yields nothing.
|
|
415
|
+
* - The keyword→first-item gap is any run of whitespace **including
|
|
416
|
+
* newlines**, mirroring the inline dialect's `\s+`.
|
|
417
|
+
* - List continuation uses the `,` / `and` / Oxford separators with `[ \t]`
|
|
418
|
+
* whitespace only, so a list cannot continue past a newline — a later
|
|
419
|
+
* line makes its own claims.
|
|
420
|
+
* - Items are `#<digits>`; duplicates are preserved in order.
|
|
421
|
+
*
|
|
422
|
+
* A list ends at its last valid item: in `closes #1 and fixes #2` the
|
|
423
|
+
* ` and ` before `fixes` fails as a separator because what follows is not
|
|
424
|
+
* `#`, so the text yields `closes: [1]` then `fixes: [2]`. An item past
|
|
425
|
+
* `Number.MAX_SAFE_INTEGER` anywhere in a candidate skips the **entire**
|
|
426
|
+
* candidate — never a partial list, for the same reason
|
|
427
|
+
* {@link parseReferenceList} rejects the whole line — and scanning resumes
|
|
428
|
+
* after the candidate's scanned extent.
|
|
429
|
+
*
|
|
430
|
+
* Like everything in this module, the harvest is a single left-to-right
|
|
431
|
+
* character scan with no regular expressions, so time stays linear in the
|
|
432
|
+
* text length and no input is truncated.
|
|
433
|
+
*
|
|
434
|
+
* @public
|
|
435
|
+
*/
|
|
436
|
+
const harvestReferenceLists = (text) => {
|
|
437
|
+
const lists = [];
|
|
438
|
+
let index = 0;
|
|
439
|
+
while (index < text.length) {
|
|
440
|
+
if (!isAsciiLetter(text.charCodeAt(index))) {
|
|
441
|
+
index += 1;
|
|
442
|
+
continue;
|
|
443
|
+
}
|
|
444
|
+
const runStart = index;
|
|
445
|
+
let runEnd = index + 1;
|
|
446
|
+
while (runEnd < text.length && isAsciiLetter(text.charCodeAt(runEnd))) runEnd += 1;
|
|
447
|
+
if (runStart > 0 && isWordChar(text.charCodeAt(runStart - 1)) || runEnd < text.length && isWordChar(text.charCodeAt(runEnd))) {
|
|
448
|
+
index = runEnd;
|
|
449
|
+
continue;
|
|
450
|
+
}
|
|
451
|
+
const keyword = text.slice(runStart, runEnd).toLowerCase();
|
|
452
|
+
if (!ALL_KEYWORDS.has(keyword)) {
|
|
453
|
+
index = runEnd;
|
|
454
|
+
continue;
|
|
455
|
+
}
|
|
456
|
+
let cursor = runEnd;
|
|
457
|
+
while (cursor < text.length && isAnyWhitespace(text.charCodeAt(cursor))) cursor += 1;
|
|
458
|
+
const first = cursor === runEnd ? void 0 : readItem(text, cursor);
|
|
459
|
+
if (first === void 0) {
|
|
460
|
+
index = runEnd;
|
|
461
|
+
continue;
|
|
462
|
+
}
|
|
463
|
+
if (first.kind === "unsafe") {
|
|
464
|
+
index = first.next;
|
|
465
|
+
continue;
|
|
466
|
+
}
|
|
467
|
+
const issueNumbers = [first.value];
|
|
468
|
+
let end = first.next;
|
|
469
|
+
let unsafeNext;
|
|
470
|
+
for (;;) {
|
|
471
|
+
const next = scanSeparator(text, end);
|
|
472
|
+
if (next === void 0) break;
|
|
473
|
+
const item = readItem(text, next);
|
|
474
|
+
if (item === void 0) break;
|
|
475
|
+
if (item.kind === "unsafe") {
|
|
476
|
+
unsafeNext = item.next;
|
|
477
|
+
break;
|
|
478
|
+
}
|
|
479
|
+
issueNumbers.push(item.value);
|
|
480
|
+
end = item.next;
|
|
481
|
+
}
|
|
482
|
+
if (unsafeNext !== void 0) {
|
|
483
|
+
index = unsafeNext;
|
|
484
|
+
continue;
|
|
485
|
+
}
|
|
486
|
+
lists.push({
|
|
487
|
+
keyword,
|
|
488
|
+
closing: CLOSING_SET.has(keyword),
|
|
489
|
+
issueNumbers,
|
|
490
|
+
start: runStart,
|
|
491
|
+
end
|
|
492
|
+
});
|
|
493
|
+
index = end;
|
|
494
|
+
}
|
|
495
|
+
return lists;
|
|
496
|
+
};
|
|
497
|
+
//#endregion
|
|
498
|
+
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/KeywordFamily.js
|
|
499
|
+
/**
|
|
500
|
+
* The projection table IS the totality proof: `Record` over the union of
|
|
501
|
+
* both keyword types makes a keyword added to either constant without an
|
|
502
|
+
* entry here fail to compile.
|
|
503
|
+
*/
|
|
504
|
+
const FAMILIES = {
|
|
505
|
+
close: "close",
|
|
506
|
+
closes: "close",
|
|
507
|
+
closed: "close",
|
|
508
|
+
fix: "fix",
|
|
509
|
+
fixes: "fix",
|
|
510
|
+
fixed: "fix",
|
|
511
|
+
resolve: "resolve",
|
|
512
|
+
resolves: "resolve",
|
|
513
|
+
resolved: "resolve",
|
|
514
|
+
ref: "ref",
|
|
515
|
+
refs: "ref",
|
|
516
|
+
references: "ref"
|
|
517
|
+
};
|
|
518
|
+
/**
|
|
519
|
+
* The family a keyword belongs to.
|
|
520
|
+
*
|
|
521
|
+
* @remarks
|
|
522
|
+
* Total over both keyword sets by construction — see the module remarks for
|
|
523
|
+
* why an explicit record beats a `startsWith` heuristic. `close`, `closes`
|
|
524
|
+
* and `closed` map to `"close"`; the `fix` and `resolve` conjugations
|
|
525
|
+
* likewise; `ref`, `refs` and `references` map to `"ref"`. The evidence for
|
|
526
|
+
* the projection is downstream: categorized harvesters key maps by family,
|
|
527
|
+
* and each was hand-rolling this collapse.
|
|
528
|
+
*
|
|
529
|
+
* @public
|
|
530
|
+
*/
|
|
531
|
+
const keywordFamily = (keyword) => FAMILIES[keyword];
|
|
532
|
+
//#endregion
|
|
533
|
+
//#region ../silk-core/dist/dev/pkg/schemas/VersioningSchemas.js
|
|
100
534
|
/**
|
|
101
535
|
* Configuration for how private packages are handled during versioning.
|
|
102
536
|
*
|
|
@@ -168,7 +602,7 @@ const ChangesetConfigFile = effect.Schema.Struct({
|
|
|
168
602
|
*
|
|
169
603
|
* @remarks
|
|
170
604
|
* Extends {@link (ChangesetConfigFile:type)} with a `_isSilk` marker flag that is automatically
|
|
171
|
-
* set to `true`. Detected by
|
|
605
|
+
* set to `true`. Detected by `ChangesetConfigReader` when the `changelog` field
|
|
172
606
|
* references `@savvy-web/changesets`.
|
|
173
607
|
*
|
|
174
608
|
* @since 0.1.0
|
|
@@ -179,6 +613,25 @@ const SilkChangesetConfigFile = effect.Schema.Struct({
|
|
|
179
613
|
_isSilk: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefaultType(effect.Effect.succeed(true)), effect.Schema.withConstructorDefault(effect.Effect.succeed(true)))
|
|
180
614
|
});
|
|
181
615
|
//#endregion
|
|
616
|
+
//#region ../silk-core/dist/dev/pkg/utils/TrailingSlash.js
|
|
617
|
+
/**
|
|
618
|
+
* Trim trailing slashes from a string.
|
|
619
|
+
*
|
|
620
|
+
* @remarks
|
|
621
|
+
* Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
|
|
622
|
+
* unanchored at the start, so the engine retries the match from every position
|
|
623
|
+
* and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
|
|
624
|
+
* Only a trailing run of slashes is removed; interior slash runs are untouched.
|
|
625
|
+
*
|
|
626
|
+
* @since 0.1.0
|
|
627
|
+
* @public
|
|
628
|
+
*/
|
|
629
|
+
const trimTrailingSlashes = (s) => {
|
|
630
|
+
let end = s.length;
|
|
631
|
+
while (end > 0 && s[end - 1] === "/") end -= 1;
|
|
632
|
+
return s.slice(0, end);
|
|
633
|
+
};
|
|
634
|
+
//#endregion
|
|
182
635
|
//#region ../silk-effects/dist/dev/pkg/services/ChangesetConfigReader.js
|
|
183
636
|
/**
|
|
184
637
|
* Substrings that identify a Silk changelog adapter entry in `.changeset/config.json`.
|
|
@@ -208,8 +661,8 @@ function isSilkChangelog(changelog) {
|
|
|
208
661
|
*
|
|
209
662
|
* @remarks
|
|
210
663
|
* Automatically detects whether the config uses the Silk changelog adapter
|
|
211
|
-
* (`@savvy-web/changesets`) and decodes as
|
|
212
|
-
* standard
|
|
664
|
+
* (`@savvy-web/changesets`) and decodes as `SilkChangesetConfigFile` or the
|
|
665
|
+
* standard `ChangesetConfigFile` accordingly.
|
|
213
666
|
*
|
|
214
667
|
* @example
|
|
215
668
|
* ```typescript
|
|
@@ -287,32 +740,6 @@ var ChangesetConfigReader = class extends effect.Context.Service()("@savvy-web/s
|
|
|
287
740
|
}));
|
|
288
741
|
};
|
|
289
742
|
//#endregion
|
|
290
|
-
//#region ../silk-effects/dist/dev/pkg/errors/PublishTargetBindingError.js
|
|
291
|
-
/**
|
|
292
|
-
* Raised when publishability detection selects a directory that the package's
|
|
293
|
-
* `dist/prod/targets.json` binding does not describe.
|
|
294
|
-
*
|
|
295
|
-
* @remarks
|
|
296
|
-
* The bundler's prod build writes `targets.json` naming every byte-group
|
|
297
|
-
* directory it produced. Once that binding exists it is authoritative: the only
|
|
298
|
-
* directories whose bytes may be published are the ones it lists. A detector
|
|
299
|
-
* that returns anything else — most often `publishConfig.directory` pointing at
|
|
300
|
-
* a **dev** build, because silk mode was misdetected — is about to pack an
|
|
301
|
-
* unresolved workspace manifest and ship it to a registry.
|
|
302
|
-
*
|
|
303
|
-
* That is the `yaml-effect@0.7.1` failure: detection picked `dist/dev/pkg`, the
|
|
304
|
-
* dev manifest still carried `catalog:` specifiers, and the published package
|
|
305
|
-
* was uninstallable (`EUNSUPPORTEDPROTOCOL`).
|
|
306
|
-
*
|
|
307
|
-
* @since 3.1.0
|
|
308
|
-
* @public
|
|
309
|
-
*/
|
|
310
|
-
var PublishTargetBindingError = class extends effect.Data.TaggedError("PublishTargetBindingError") {
|
|
311
|
-
get message() {
|
|
312
|
-
return `Package ${this.pkg} resolved publish directory "${this.directory}", which is not one of the directories bound by dist/prod/targets.json (${this.boundDirectories.join(", ")}). This means publishability detection did not select the prod build output — refusing to publish before packing an unresolved manifest.`;
|
|
313
|
-
}
|
|
314
|
-
};
|
|
315
|
-
//#endregion
|
|
316
743
|
//#region ../silk-effects/dist/dev/pkg/services/ChangesetConfig.js
|
|
317
744
|
const isSilk = (cfg) => "_isSilk" in cfg && cfg._isSilk === true;
|
|
318
745
|
/**
|
|
@@ -389,22 +816,6 @@ var ChangesetConfig = class ChangesetConfig extends effect.Context.Service()("@s
|
|
|
389
816
|
}));
|
|
390
817
|
};
|
|
391
818
|
//#endregion
|
|
392
|
-
//#region ../silk-effects/dist/dev/pkg/utils/TrailingSlash.js
|
|
393
|
-
/**
|
|
394
|
-
* Trim trailing slashes from a string.
|
|
395
|
-
*
|
|
396
|
-
* @remarks
|
|
397
|
-
* Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
|
|
398
|
-
* unanchored at the start, so the engine retries the match from every position
|
|
399
|
-
* and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
|
|
400
|
-
* Only a trailing run of slashes is removed; interior slash runs are untouched.
|
|
401
|
-
*/
|
|
402
|
-
const trimTrailingSlashes = (s) => {
|
|
403
|
-
let end = s.length;
|
|
404
|
-
while (end > 0 && s[end - 1] === "/") end -= 1;
|
|
405
|
-
return s.slice(0, end);
|
|
406
|
-
};
|
|
407
|
-
//#endregion
|
|
408
819
|
//#region ../silk-effects/dist/dev/pkg/services/SilkPublishability.js
|
|
409
820
|
const NPM_DEFAULT = "https://registry.npmjs.org/";
|
|
410
821
|
/**
|
|
@@ -527,7 +938,7 @@ var SilkPublishability = class SilkPublishability {
|
|
|
527
938
|
* directories it names. A directory outside the binding means detection did
|
|
528
939
|
* not select the prod output — the `yaml-effect@0.7.1` shape, where a dev
|
|
529
940
|
* manifest carrying `catalog:` specifiers was packed and published. Rather
|
|
530
|
-
* than ship those bytes, fail with
|
|
941
|
+
* than ship those bytes, fail with `PublishTargetBindingError`.
|
|
531
942
|
*
|
|
532
943
|
* Before the prod build runs there is no binding, and the detector's
|
|
533
944
|
* placeholder directories are left alone.
|
|
@@ -2655,6 +3066,66 @@ function makeGitHubTest(responses) {
|
|
|
2655
3066
|
} });
|
|
2656
3067
|
}
|
|
2657
3068
|
//#endregion
|
|
3069
|
+
//#region ../silk-effects/dist/dev/pkg/changesets/utils/logger.js
|
|
3070
|
+
/**
|
|
3071
|
+
* Warning output for changelog generation, parameterised by a
|
|
3072
|
+
* {@link ChangesetLogMode} reference instead of an ambient environment read.
|
|
3073
|
+
*
|
|
3074
|
+
* @remarks
|
|
3075
|
+
* This module is engine code shared by every front end, so it must not read
|
|
3076
|
+
* `process` — a `process.env` read here would bake one host's environment
|
|
3077
|
+
* into every other. The mode is a `Context.Reference` with a default of
|
|
3078
|
+
* `"stderr"`; a front end that knows it runs under GitHub Actions or a test
|
|
3079
|
+
* runner provides `"github"` or `"silent"` from its own `process.env` read.
|
|
3080
|
+
*
|
|
3081
|
+
* @packageDocumentation
|
|
3082
|
+
*/
|
|
3083
|
+
/**
|
|
3084
|
+
* The reference that selects the {@link ChangesetLogModeValue}.
|
|
3085
|
+
*
|
|
3086
|
+
* @remarks
|
|
3087
|
+
* Defaults to `"stderr"` when no front end provides it, so a program that
|
|
3088
|
+
* never touches the reference still reports. Provide with
|
|
3089
|
+
* `Layer.succeed(ChangesetLogMode, "github")` or
|
|
3090
|
+
* `Effect.provideService(ChangesetLogMode, "silent")`.
|
|
3091
|
+
*
|
|
3092
|
+
* @example
|
|
3093
|
+
* ```typescript
|
|
3094
|
+
* import { Effect } from "effect";
|
|
3095
|
+
* import { Changesets } from "\@savvy-web/silk-effects";
|
|
3096
|
+
*
|
|
3097
|
+
* const mode = process.env.GITHUB_ACTIONS === "true" ? "github" : "stderr";
|
|
3098
|
+
* program.pipe(Effect.provideService(Changesets.ChangesetLogMode, mode));
|
|
3099
|
+
* ```
|
|
3100
|
+
*
|
|
3101
|
+
* @public
|
|
3102
|
+
*/
|
|
3103
|
+
const ChangesetLogMode = effect.Context.Reference("@savvy-web/silk-effects/Changesets/ChangesetLogMode", { defaultValue: () => "stderr" });
|
|
3104
|
+
/**
|
|
3105
|
+
* Log a warning message according to the {@link ChangesetLogMode} in context.
|
|
3106
|
+
*
|
|
3107
|
+
* @param message - The warning message
|
|
3108
|
+
* @param args - Additional arguments (concatenated with a space in `"github"` mode)
|
|
3109
|
+
* @returns An `Effect` that never fails
|
|
3110
|
+
*
|
|
3111
|
+
* @internal
|
|
3112
|
+
*/
|
|
3113
|
+
function logWarning(message, ...args) {
|
|
3114
|
+
return effect.Effect.gen(function* () {
|
|
3115
|
+
switch (yield* ChangesetLogMode) {
|
|
3116
|
+
case "silent": return;
|
|
3117
|
+
case "github": {
|
|
3118
|
+
const text = args.length > 0 ? `${message} ${args.join(" ")}` : message;
|
|
3119
|
+
console.warn(`::warning::${text}`);
|
|
3120
|
+
return;
|
|
3121
|
+
}
|
|
3122
|
+
case "stderr":
|
|
3123
|
+
console.warn(message, ...args);
|
|
3124
|
+
return;
|
|
3125
|
+
}
|
|
3126
|
+
});
|
|
3127
|
+
}
|
|
3128
|
+
//#endregion
|
|
2658
3129
|
//#region ../silk-effects/dist/dev/pkg/changesets/schemas/primitives.js
|
|
2659
3130
|
/**
|
|
2660
3131
|
* Primitive reusable schemas for common constrained types.
|
|
@@ -3967,7 +4438,7 @@ function evaluateNode(node, depth) {
|
|
|
3967
4438
|
//#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/internal/scanner.js
|
|
3968
4439
|
const isWhitespace = (ch) => ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 65279;
|
|
3969
4440
|
const isLineBreak$1 = (ch) => ch === 10 || ch === 13 || ch === 8232 || ch === 8233;
|
|
3970
|
-
const isDigit$
|
|
4441
|
+
const isDigit$1 = (ch) => ch >= 48 && ch <= 57;
|
|
3971
4442
|
/**
|
|
3972
4443
|
* Create a stateful {@link Scanner} for the given JSONC string.
|
|
3973
4444
|
*
|
|
@@ -4072,31 +4543,31 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
|
|
|
4072
4543
|
if (text.charCodeAt(pos) === 45) pos++;
|
|
4073
4544
|
if (text.charCodeAt(pos) === 48) pos++;
|
|
4074
4545
|
else {
|
|
4075
|
-
if (!isDigit$
|
|
4546
|
+
if (!isDigit$1(text.charCodeAt(pos))) {
|
|
4076
4547
|
tokenError = "UnexpectedEndOfNumber";
|
|
4077
4548
|
return text.substring(start, pos);
|
|
4078
4549
|
}
|
|
4079
4550
|
pos++;
|
|
4080
|
-
while (pos < len && isDigit$
|
|
4551
|
+
while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
|
|
4081
4552
|
}
|
|
4082
4553
|
if (pos < len && text.charCodeAt(pos) === 46) {
|
|
4083
4554
|
pos++;
|
|
4084
|
-
if (!isDigit$
|
|
4555
|
+
if (!isDigit$1(text.charCodeAt(pos))) {
|
|
4085
4556
|
tokenError = "UnexpectedEndOfNumber";
|
|
4086
4557
|
return text.substring(start, pos);
|
|
4087
4558
|
}
|
|
4088
4559
|
pos++;
|
|
4089
|
-
while (pos < len && isDigit$
|
|
4560
|
+
while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
|
|
4090
4561
|
}
|
|
4091
4562
|
if (pos < len && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) {
|
|
4092
4563
|
pos++;
|
|
4093
4564
|
if (pos < len && (text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45)) pos++;
|
|
4094
|
-
if (!isDigit$
|
|
4565
|
+
if (!isDigit$1(text.charCodeAt(pos))) {
|
|
4095
4566
|
tokenError = "UnexpectedEndOfNumber";
|
|
4096
4567
|
return text.substring(start, pos);
|
|
4097
4568
|
}
|
|
4098
4569
|
pos++;
|
|
4099
|
-
while (pos < len && isDigit$
|
|
4570
|
+
while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
|
|
4100
4571
|
}
|
|
4101
4572
|
return text.substring(start, pos);
|
|
4102
4573
|
};
|
|
@@ -4202,7 +4673,7 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
|
|
|
4202
4673
|
return token;
|
|
4203
4674
|
}
|
|
4204
4675
|
case 45:
|
|
4205
|
-
if (pos + 1 < len && isDigit$
|
|
4676
|
+
if (pos + 1 < len && isDigit$1(text.charCodeAt(pos + 1))) {
|
|
4206
4677
|
tokenValue = scanNumber();
|
|
4207
4678
|
token = "Number";
|
|
4208
4679
|
return token;
|
|
@@ -4213,7 +4684,7 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
|
|
|
4213
4684
|
tokenError = "InvalidSymbol";
|
|
4214
4685
|
return token;
|
|
4215
4686
|
default:
|
|
4216
|
-
if (isDigit$
|
|
4687
|
+
if (isDigit$1(ch)) {
|
|
4217
4688
|
tokenValue = scanNumber();
|
|
4218
4689
|
token = "Number";
|
|
4219
4690
|
return token;
|
|
@@ -30984,414 +31455,6 @@ function parseCommitMessage(message) {
|
|
|
30984
31455
|
return { description: message };
|
|
30985
31456
|
}
|
|
30986
31457
|
//#endregion
|
|
30987
|
-
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/IssueReferences.js
|
|
30988
|
-
/**
|
|
30989
|
-
* GitHub's closing-keyword issue-reference grammar, as pure functions.
|
|
30990
|
-
*
|
|
30991
|
-
* @remarks
|
|
30992
|
-
* GitHub links an issue to a pull request when the PR's description carries
|
|
30993
|
-
* `<keyword> #<number>` for one of nine documented keywords. Consumers speak
|
|
30994
|
-
* that grammar in two distinct dialects, and this module models exactly those
|
|
30995
|
-
* two — no service, no layer, nothing but strings in and values out:
|
|
30996
|
-
*
|
|
30997
|
-
* - **Inline-in-prose** ({@link harvestIssueReferences}): a reference may appear anywhere in
|
|
30998
|
-
* running text — `"fixes #12 and closes #13"` — with mandatory whitespace
|
|
30999
|
-
* and **no colon**, because that is the spelling GitHub itself scans PR
|
|
31000
|
-
* bodies for. This is the dialect a release pipeline harvests from commit
|
|
31001
|
-
* subjects and PR descriptions.
|
|
31002
|
-
* - **Bare-line** ({@link parseBareLineReference}): the whole line, after trimming, *is*
|
|
31003
|
-
* the reference — `"Closes: #12"` — with an **optional colon**, because a
|
|
31004
|
-
* generated references region writes one reference per line and a colon
|
|
31005
|
-
* reads better there. GitHub does not require the colon; the region format
|
|
31006
|
-
* allows it, so the parser must too. The dialects differ because their
|
|
31007
|
-
* producers do: prose is written by humans for GitHub's scanner, the region
|
|
31008
|
-
* is written by tooling for humans.
|
|
31009
|
-
*
|
|
31010
|
-
* Deliberately out of scope this round: cross-repo references
|
|
31011
|
-
* (`owner/repo#N`) and full-URL references
|
|
31012
|
-
* (`https://github.com/owner/repo/issues/N`). Both are real GitHub spellings;
|
|
31013
|
-
* neither dialect's consumers emit them yet, and guessing at their shape here
|
|
31014
|
-
* would freeze an API nobody has driven.
|
|
31015
|
-
*/
|
|
31016
|
-
/**
|
|
31017
|
-
* The nine closing keywords GitHub documents, lowercased.
|
|
31018
|
-
*
|
|
31019
|
-
* @public
|
|
31020
|
-
*/
|
|
31021
|
-
const CLOSING_KEYWORDS = [
|
|
31022
|
-
"close",
|
|
31023
|
-
"closes",
|
|
31024
|
-
"closed",
|
|
31025
|
-
"fix",
|
|
31026
|
-
"fixes",
|
|
31027
|
-
"fixed",
|
|
31028
|
-
"resolve",
|
|
31029
|
-
"resolves",
|
|
31030
|
-
"resolved"
|
|
31031
|
-
];
|
|
31032
|
-
/**
|
|
31033
|
-
* Both patterns derive from {@link CLOSING_KEYWORDS} so the constant and the
|
|
31034
|
-
* grammar cannot drift. Alternation order is safe: the regex engine backtracks
|
|
31035
|
-
* through alternatives, so `close` matching inside `closes` fails at the
|
|
31036
|
-
* mandatory `#`-introducer and retries the longer keyword.
|
|
31037
|
-
*/
|
|
31038
|
-
const KEYWORDS = CLOSING_KEYWORDS.join("|");
|
|
31039
|
-
new RegExp(`\\b(${KEYWORDS})\\s+#(\\d+)`, "gi");
|
|
31040
|
-
new RegExp(`^(${KEYWORDS}):?[ \\t]+#(\\d+)$`, "i");
|
|
31041
|
-
//#endregion
|
|
31042
|
-
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/ClosingList.js
|
|
31043
|
-
/**
|
|
31044
|
-
* The closing-list dialect: one whole line naming several issues at once.
|
|
31045
|
-
*
|
|
31046
|
-
* @remarks
|
|
31047
|
-
* The third dialect, alongside the two in `IssueReferences`: after trimming,
|
|
31048
|
-
* the **entire** line must be `<keyword>[:] <list>` — keyword
|
|
31049
|
-
* case-insensitive (lowercased to canonical form in the result), colon
|
|
31050
|
-
* optional, and the list one or more `#<digits>` items separated by `,`,
|
|
31051
|
-
* `and`, or the Oxford `, and`. Whitespace inside the line is `[ \t]` only,
|
|
31052
|
-
* so an embedded newline cannot smuggle two lines past a parser whose
|
|
31053
|
-
* contract is one — the same posture as the bare-line pattern. Any trailing
|
|
31054
|
-
* content after the list rejects the line; duplicates are preserved in order,
|
|
31055
|
-
* because whether `#1, #1` means one issue or two is the caller's business.
|
|
31056
|
-
*
|
|
31057
|
-
* Two keyword sets play here. {@link parseClosingList} accepts only the nine
|
|
31058
|
-
* closing keywords and yields a {@link ClosingList}; {@link parseReferenceList}
|
|
31059
|
-
* additionally accepts the non-closing {@link REFERENCE_KEYWORDS} (`ref`,
|
|
31060
|
-
* `refs`, `references`) and reports which set matched via
|
|
31061
|
-
* {@link ReferenceList}'s `closing` flag.
|
|
31062
|
-
*
|
|
31063
|
-
* An item whose digits exceed `Number.MAX_SAFE_INTEGER` rejects the **whole
|
|
31064
|
-
* line**, where `harvestIssueReferences` merely skips the one match. The
|
|
31065
|
-
* asymmetry is deliberate: a harvest drops one reference out of running
|
|
31066
|
-
* prose, but a list line is a single claim about a set of issues, and
|
|
31067
|
-
* returning the parseable subset would misrepresent the line as claiming
|
|
31068
|
-
* less than it does.
|
|
31069
|
-
*
|
|
31070
|
-
* Complexity posture: parsing is a single left-to-right character scan —
|
|
31071
|
-
* this module contains **no regular expressions at all** — so worst-case
|
|
31072
|
-
* time is linear in the line length by construction. There is no
|
|
31073
|
-
* backtracking engine to feed, no polynomial blow-up for a scanner to flag,
|
|
31074
|
-
* and therefore no input truncation.
|
|
31075
|
-
*
|
|
31076
|
-
* Beyond the whole-line parsers, {@link harvestReferenceLists} generalizes
|
|
31077
|
-
* the same list grammar to the inline-in-prose posture — several lists on
|
|
31078
|
-
* one line of running text — and {@link parseClosingLists} /
|
|
31079
|
-
* {@link parseReferenceLists} apply the whole-line parsers per line of a
|
|
31080
|
-
* multi-line text. All of them ride the same character scan; the no-regex
|
|
31081
|
-
* promise above covers every export here.
|
|
31082
|
-
*/
|
|
31083
|
-
/**
|
|
31084
|
-
* The non-closing reference keywords the list dialect accepts, lowercased.
|
|
31085
|
-
*
|
|
31086
|
-
* @remarks
|
|
31087
|
-
* GitHub does not act on these — they associate without closing — but a
|
|
31088
|
-
* references region writes them, so the parser must read them.
|
|
31089
|
-
*
|
|
31090
|
-
* @public
|
|
31091
|
-
*/
|
|
31092
|
-
const REFERENCE_KEYWORDS = [
|
|
31093
|
-
"ref",
|
|
31094
|
-
"refs",
|
|
31095
|
-
"references"
|
|
31096
|
-
];
|
|
31097
|
-
/**
|
|
31098
|
-
* Both keyword tables ARE the exported constants — membership sets built from
|
|
31099
|
-
* them once — so the constants and the grammar cannot drift.
|
|
31100
|
-
*/
|
|
31101
|
-
const ALL_KEYWORDS = /* @__PURE__ */ new Set([...CLOSING_KEYWORDS, ...REFERENCE_KEYWORDS]);
|
|
31102
|
-
/** Membership test for reporting `closing`, widened once so no call casts. */
|
|
31103
|
-
const CLOSING_SET = new Set(CLOSING_KEYWORDS);
|
|
31104
|
-
const HASH = 35;
|
|
31105
|
-
const COLON = 58;
|
|
31106
|
-
const COMMA = 44;
|
|
31107
|
-
/** `[ \t]` — the only whitespace the dialect admits, per the module remarks. */
|
|
31108
|
-
const isSpaceTab = (code) => code === 32 || code === 9;
|
|
31109
|
-
const isDigit$1 = (code) => code >= 48 && code <= 57;
|
|
31110
|
-
const isAsciiLetter = (code) => code >= 65 && code <= 90 || code >= 97 && code <= 122;
|
|
31111
|
-
/** The index after the run of `[ \t]` starting at `from` (possibly `from` itself). */
|
|
31112
|
-
const skipSpaceTab = (line, from) => {
|
|
31113
|
-
let index = from;
|
|
31114
|
-
while (index < line.length && isSpaceTab(line.charCodeAt(index))) index += 1;
|
|
31115
|
-
return index;
|
|
31116
|
-
};
|
|
31117
|
-
/**
|
|
31118
|
-
* One list item at exactly `from`: `#<digits>` and the index one past it.
|
|
31119
|
-
* Digits exceeding `Number.MAX_SAFE_INTEGER` report `"unsafe"` rather than a
|
|
31120
|
-
* silently rounded issue number, still carrying the index one past the digit
|
|
31121
|
-
* run so a caller can skip the item's extent; the whole-line parsers reject
|
|
31122
|
-
* on it and {@link harvestReferenceLists} abandons the entire candidate —
|
|
31123
|
-
* see the module remarks for why a list never yields a partial reading.
|
|
31124
|
-
* Anything that is not `#<digits>` at all is `undefined`.
|
|
31125
|
-
*/
|
|
31126
|
-
const readItem = (line, from) => {
|
|
31127
|
-
if (line.charCodeAt(from) !== HASH) return void 0;
|
|
31128
|
-
const start = from + 1;
|
|
31129
|
-
let index = start;
|
|
31130
|
-
while (index < line.length && isDigit$1(line.charCodeAt(index))) index += 1;
|
|
31131
|
-
if (index === start) return void 0;
|
|
31132
|
-
const value = Number(line.slice(start, index));
|
|
31133
|
-
return Number.isSafeInteger(value) ? {
|
|
31134
|
-
kind: "item",
|
|
31135
|
-
value,
|
|
31136
|
-
next: index
|
|
31137
|
-
} : {
|
|
31138
|
-
kind: "unsafe",
|
|
31139
|
-
next: index
|
|
31140
|
-
};
|
|
31141
|
-
};
|
|
31142
|
-
/**
|
|
31143
|
-
* One separator at exactly `from`: a comma with optional surrounding `[ \t]`
|
|
31144
|
-
* and an optional Oxford `and` (consumed only when its own trailing `[ \t]+`
|
|
31145
|
-
* is present), or a bare `and` requiring `[ \t]+` on both sides. `and` is
|
|
31146
|
-
* lowercase-only — the keyword head is case-insensitive, the separator is
|
|
31147
|
-
* not. Returns the index where the next item must start, or `undefined` when
|
|
31148
|
-
* no separator is present.
|
|
31149
|
-
*/
|
|
31150
|
-
const scanSeparator = (line, from) => {
|
|
31151
|
-
const afterLeading = skipSpaceTab(line, from);
|
|
31152
|
-
if (line.charCodeAt(afterLeading) === COMMA) {
|
|
31153
|
-
const afterComma = skipSpaceTab(line, afterLeading + 1);
|
|
31154
|
-
if (line.startsWith("and", afterComma)) {
|
|
31155
|
-
const afterAnd = skipSpaceTab(line, afterComma + 3);
|
|
31156
|
-
if (afterAnd > afterComma + 3) return afterAnd;
|
|
31157
|
-
}
|
|
31158
|
-
return afterComma;
|
|
31159
|
-
}
|
|
31160
|
-
if (afterLeading > from && line.startsWith("and", afterLeading)) {
|
|
31161
|
-
const afterAnd = skipSpaceTab(line, afterLeading + 3);
|
|
31162
|
-
if (afterAnd > afterLeading + 3) return afterAnd;
|
|
31163
|
-
}
|
|
31164
|
-
};
|
|
31165
|
-
/**
|
|
31166
|
-
* The scan walk: item, then separator, then item, until the cursor stands
|
|
31167
|
-
* exactly at the end of the string. Anything else — a malformed item, an
|
|
31168
|
-
* unknown separator, trailing content, an unsafe issue number — is
|
|
31169
|
-
* `undefined`, and the caller rejects the whole line.
|
|
31170
|
-
*/
|
|
31171
|
-
const parseItems = (line, from) => {
|
|
31172
|
-
const issueNumbers = [];
|
|
31173
|
-
let cursor = from;
|
|
31174
|
-
for (;;) {
|
|
31175
|
-
const item = readItem(line, cursor);
|
|
31176
|
-
if (item === void 0 || item.kind === "unsafe") return void 0;
|
|
31177
|
-
issueNumbers.push(item.value);
|
|
31178
|
-
cursor = item.next;
|
|
31179
|
-
if (cursor === line.length) return issueNumbers;
|
|
31180
|
-
const next = scanSeparator(line, cursor);
|
|
31181
|
-
if (next === void 0) return void 0;
|
|
31182
|
-
cursor = next;
|
|
31183
|
-
}
|
|
31184
|
-
};
|
|
31185
|
-
/**
|
|
31186
|
-
* The list a whole line carries under either keyword set, or `Option.none()`.
|
|
31187
|
-
*
|
|
31188
|
-
* @remarks
|
|
31189
|
-
* Accepts the nine closing keywords plus {@link REFERENCE_KEYWORDS}, and
|
|
31190
|
-
* reports which set matched in the result's `closing` flag. Grammar,
|
|
31191
|
-
* whole-line posture and the whole-line rejection of unsafe issue numbers
|
|
31192
|
-
* are in the module remarks.
|
|
31193
|
-
*
|
|
31194
|
-
* @public
|
|
31195
|
-
*/
|
|
31196
|
-
const parseReferenceList = (line) => {
|
|
31197
|
-
const trimmed = line.trim();
|
|
31198
|
-
let letters = 0;
|
|
31199
|
-
while (letters < trimmed.length && isAsciiLetter(trimmed.charCodeAt(letters))) letters += 1;
|
|
31200
|
-
if (letters === 0) return effect.Option.none();
|
|
31201
|
-
const keyword = trimmed.slice(0, letters).toLowerCase();
|
|
31202
|
-
if (!ALL_KEYWORDS.has(keyword)) return effect.Option.none();
|
|
31203
|
-
let cursor = letters;
|
|
31204
|
-
if (trimmed.charCodeAt(cursor) === COLON) cursor += 1;
|
|
31205
|
-
const afterWhitespace = skipSpaceTab(trimmed, cursor);
|
|
31206
|
-
if (afterWhitespace === cursor) return effect.Option.none();
|
|
31207
|
-
const issueNumbers = parseItems(trimmed, afterWhitespace);
|
|
31208
|
-
if (issueNumbers === void 0) return effect.Option.none();
|
|
31209
|
-
return effect.Option.some({
|
|
31210
|
-
keyword,
|
|
31211
|
-
closing: CLOSING_SET.has(keyword),
|
|
31212
|
-
issueNumbers
|
|
31213
|
-
});
|
|
31214
|
-
};
|
|
31215
|
-
/**
|
|
31216
|
-
* Every reference list a text carries, line by line, across both postures.
|
|
31217
|
-
*
|
|
31218
|
-
* @remarks
|
|
31219
|
-
* The trailer/prose interleave consumers otherwise hand-roll: each line is
|
|
31220
|
-
* tried as a whole-line reference list first ({@link parseReferenceList} —
|
|
31221
|
-
* colon-tolerant, per the line dialect), and only a line that is not one is
|
|
31222
|
-
* harvested inline ({@link harvestReferenceLists} — no colon, per the inline
|
|
31223
|
-
* dialect). The preference means a colon-less trailer line contributes its
|
|
31224
|
-
* list exactly once, never once per posture.
|
|
31225
|
-
*
|
|
31226
|
-
* Results carry no offsets, deliberately: this is the line-granular
|
|
31227
|
-
* composition, and a consumer that needs spans uses
|
|
31228
|
-
* {@link harvestReferenceLists} directly. Duplicates are preserved, in
|
|
31229
|
-
* document order.
|
|
31230
|
-
*
|
|
31231
|
-
* @public
|
|
31232
|
-
*/
|
|
31233
|
-
const collectReferenceLists = (text) => {
|
|
31234
|
-
const lists = [];
|
|
31235
|
-
for (const line of text.split("\n")) {
|
|
31236
|
-
const whole = parseReferenceList(line);
|
|
31237
|
-
if (effect.Option.isSome(whole)) {
|
|
31238
|
-
lists.push(whole.value);
|
|
31239
|
-
continue;
|
|
31240
|
-
}
|
|
31241
|
-
for (const harvested of harvestReferenceLists(line)) lists.push({
|
|
31242
|
-
keyword: harvested.keyword,
|
|
31243
|
-
closing: harvested.closing,
|
|
31244
|
-
issueNumbers: harvested.issueNumbers
|
|
31245
|
-
});
|
|
31246
|
-
}
|
|
31247
|
-
return lists;
|
|
31248
|
-
};
|
|
31249
|
-
/** `[A-Za-z0-9_]` — the word-boundary alphabet the inline dialects use. */
|
|
31250
|
-
const isWordChar = (code) => isAsciiLetter(code) || isDigit$1(code) || code === 95;
|
|
31251
|
-
/**
|
|
31252
|
-
* The full JavaScript `\s` set, spelled as a predicate so the module keeps
|
|
31253
|
-
* its no-regex promise: ASCII whitespace, NEL-adjacent controls, and the
|
|
31254
|
-
* Unicode space separators. Only the keyword→first-item gap of
|
|
31255
|
-
* {@link harvestReferenceLists} admits this set — everything inside a list
|
|
31256
|
-
* stays `[ \t]`, per the module remarks.
|
|
31257
|
-
*/
|
|
31258
|
-
const isAnyWhitespace = (code) => code === 32 || code >= 9 && code <= 13 || code === 160 || code === 5760 || code >= 8192 && code <= 8202 || code === 8232 || code === 8233 || code === 8239 || code === 8287 || code === 12288 || code === 65279;
|
|
31259
|
-
/**
|
|
31260
|
-
* Every reference list found inline in `text`, in document order.
|
|
31261
|
-
*
|
|
31262
|
-
* @remarks
|
|
31263
|
-
* The inline-in-prose posture generalized to lists:
|
|
31264
|
-
* `Closes #123, Fixes #456` in one line of a commit body yields two
|
|
31265
|
-
* single-item lists, where
|
|
31266
|
-
* `harvestIssueReferences` reads only the first reference of each and the
|
|
31267
|
-
* whole-line parsers read neither. The grammar per candidate:
|
|
31268
|
-
*
|
|
31269
|
-
* - The keyword is case-insensitive, drawn from either keyword set,
|
|
31270
|
-
* lowercased to canonical form in the result, with `closing` reported by
|
|
31271
|
-
* set membership. Word boundaries hold on both sides: the characters
|
|
31272
|
-
* immediately before and after the keyword's letter run must not be
|
|
31273
|
-
* `[A-Za-z0-9_]`, so `recloses #1` and `1closes #1` do not match.
|
|
31274
|
-
* - **No colon** — exactly like `harvestIssueReferences`, the colon spelling
|
|
31275
|
-
* belongs to the line dialects ({@link parseReferenceList} and the
|
|
31276
|
-
* bare-line parser), so `closes: #1` inline yields nothing.
|
|
31277
|
-
* - The keyword→first-item gap is any run of whitespace **including
|
|
31278
|
-
* newlines**, mirroring the inline dialect's `\s+`.
|
|
31279
|
-
* - List continuation uses the `,` / `and` / Oxford separators with `[ \t]`
|
|
31280
|
-
* whitespace only, so a list cannot continue past a newline — a later
|
|
31281
|
-
* line makes its own claims.
|
|
31282
|
-
* - Items are `#<digits>`; duplicates are preserved in order.
|
|
31283
|
-
*
|
|
31284
|
-
* A list ends at its last valid item: in `closes #1 and fixes #2` the
|
|
31285
|
-
* ` and ` before `fixes` fails as a separator because what follows is not
|
|
31286
|
-
* `#`, so the text yields `closes: [1]` then `fixes: [2]`. An item past
|
|
31287
|
-
* `Number.MAX_SAFE_INTEGER` anywhere in a candidate skips the **entire**
|
|
31288
|
-
* candidate — never a partial list, for the same reason
|
|
31289
|
-
* {@link parseReferenceList} rejects the whole line — and scanning resumes
|
|
31290
|
-
* after the candidate's scanned extent.
|
|
31291
|
-
*
|
|
31292
|
-
* Like everything in this module, the harvest is a single left-to-right
|
|
31293
|
-
* character scan with no regular expressions, so time stays linear in the
|
|
31294
|
-
* text length and no input is truncated.
|
|
31295
|
-
*
|
|
31296
|
-
* @public
|
|
31297
|
-
*/
|
|
31298
|
-
const harvestReferenceLists = (text) => {
|
|
31299
|
-
const lists = [];
|
|
31300
|
-
let index = 0;
|
|
31301
|
-
while (index < text.length) {
|
|
31302
|
-
if (!isAsciiLetter(text.charCodeAt(index))) {
|
|
31303
|
-
index += 1;
|
|
31304
|
-
continue;
|
|
31305
|
-
}
|
|
31306
|
-
const runStart = index;
|
|
31307
|
-
let runEnd = index + 1;
|
|
31308
|
-
while (runEnd < text.length && isAsciiLetter(text.charCodeAt(runEnd))) runEnd += 1;
|
|
31309
|
-
if (runStart > 0 && isWordChar(text.charCodeAt(runStart - 1)) || runEnd < text.length && isWordChar(text.charCodeAt(runEnd))) {
|
|
31310
|
-
index = runEnd;
|
|
31311
|
-
continue;
|
|
31312
|
-
}
|
|
31313
|
-
const keyword = text.slice(runStart, runEnd).toLowerCase();
|
|
31314
|
-
if (!ALL_KEYWORDS.has(keyword)) {
|
|
31315
|
-
index = runEnd;
|
|
31316
|
-
continue;
|
|
31317
|
-
}
|
|
31318
|
-
let cursor = runEnd;
|
|
31319
|
-
while (cursor < text.length && isAnyWhitespace(text.charCodeAt(cursor))) cursor += 1;
|
|
31320
|
-
const first = cursor === runEnd ? void 0 : readItem(text, cursor);
|
|
31321
|
-
if (first === void 0) {
|
|
31322
|
-
index = runEnd;
|
|
31323
|
-
continue;
|
|
31324
|
-
}
|
|
31325
|
-
if (first.kind === "unsafe") {
|
|
31326
|
-
index = first.next;
|
|
31327
|
-
continue;
|
|
31328
|
-
}
|
|
31329
|
-
const issueNumbers = [first.value];
|
|
31330
|
-
let end = first.next;
|
|
31331
|
-
let unsafeNext;
|
|
31332
|
-
for (;;) {
|
|
31333
|
-
const next = scanSeparator(text, end);
|
|
31334
|
-
if (next === void 0) break;
|
|
31335
|
-
const item = readItem(text, next);
|
|
31336
|
-
if (item === void 0) break;
|
|
31337
|
-
if (item.kind === "unsafe") {
|
|
31338
|
-
unsafeNext = item.next;
|
|
31339
|
-
break;
|
|
31340
|
-
}
|
|
31341
|
-
issueNumbers.push(item.value);
|
|
31342
|
-
end = item.next;
|
|
31343
|
-
}
|
|
31344
|
-
if (unsafeNext !== void 0) {
|
|
31345
|
-
index = unsafeNext;
|
|
31346
|
-
continue;
|
|
31347
|
-
}
|
|
31348
|
-
lists.push({
|
|
31349
|
-
keyword,
|
|
31350
|
-
closing: CLOSING_SET.has(keyword),
|
|
31351
|
-
issueNumbers,
|
|
31352
|
-
start: runStart,
|
|
31353
|
-
end
|
|
31354
|
-
});
|
|
31355
|
-
index = end;
|
|
31356
|
-
}
|
|
31357
|
-
return lists;
|
|
31358
|
-
};
|
|
31359
|
-
//#endregion
|
|
31360
|
-
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/KeywordFamily.js
|
|
31361
|
-
/**
|
|
31362
|
-
* The projection table IS the totality proof: `Record` over the union of
|
|
31363
|
-
* both keyword types makes a keyword added to either constant without an
|
|
31364
|
-
* entry here fail to compile.
|
|
31365
|
-
*/
|
|
31366
|
-
const FAMILIES = {
|
|
31367
|
-
close: "close",
|
|
31368
|
-
closes: "close",
|
|
31369
|
-
closed: "close",
|
|
31370
|
-
fix: "fix",
|
|
31371
|
-
fixes: "fix",
|
|
31372
|
-
fixed: "fix",
|
|
31373
|
-
resolve: "resolve",
|
|
31374
|
-
resolves: "resolve",
|
|
31375
|
-
resolved: "resolve",
|
|
31376
|
-
ref: "ref",
|
|
31377
|
-
refs: "ref",
|
|
31378
|
-
references: "ref"
|
|
31379
|
-
};
|
|
31380
|
-
/**
|
|
31381
|
-
* The family a keyword belongs to.
|
|
31382
|
-
*
|
|
31383
|
-
* @remarks
|
|
31384
|
-
* Total over both keyword sets by construction — see the module remarks for
|
|
31385
|
-
* why an explicit record beats a `startsWith` heuristic. `close`, `closes`
|
|
31386
|
-
* and `closed` map to `"close"`; the `fix` and `resolve` conjugations
|
|
31387
|
-
* likewise; `ref`, `refs` and `references` map to `"ref"`. The evidence for
|
|
31388
|
-
* the projection is downstream: categorized harvesters key maps by family,
|
|
31389
|
-
* and each was hand-rolling this collapse.
|
|
31390
|
-
*
|
|
31391
|
-
* @public
|
|
31392
|
-
*/
|
|
31393
|
-
const keywordFamily = (keyword) => FAMILIES[keyword];
|
|
31394
|
-
//#endregion
|
|
31395
31458
|
//#region ../silk-effects/dist/dev/pkg/changesets/utils/issue-refs.js
|
|
31396
31459
|
/**
|
|
31397
31460
|
* The output category each keyword family lands in.
|
|
@@ -31458,41 +31521,6 @@ function parseIssueReferences(commitMessage) {
|
|
|
31458
31521
|
return references;
|
|
31459
31522
|
}
|
|
31460
31523
|
//#endregion
|
|
31461
|
-
//#region ../silk-effects/dist/dev/pkg/changesets/utils/logger.js
|
|
31462
|
-
/**
|
|
31463
|
-
* Log a warning message.
|
|
31464
|
-
*
|
|
31465
|
-
* @remarks
|
|
31466
|
-
* Detection order:
|
|
31467
|
-
* 1. If `process.env.VITEST` is set, the message is silently discarded.
|
|
31468
|
-
* 2. If `process.env.GITHUB_ACTIONS === "true"`, the message is emitted
|
|
31469
|
-
* as a `::warning::` annotation.
|
|
31470
|
-
* 3. Otherwise, `console.warn` is used.
|
|
31471
|
-
*
|
|
31472
|
-
* @param message - The warning message
|
|
31473
|
-
* @param args - Additional arguments (concatenated with a space in CI mode)
|
|
31474
|
-
*
|
|
31475
|
-
* @example
|
|
31476
|
-
* ```typescript
|
|
31477
|
-
* import { logWarning } from "../utils/logger.js";
|
|
31478
|
-
*
|
|
31479
|
-
* logWarning("Duplicate dependency entry", "effect@3.19.0");
|
|
31480
|
-
* // In CI: "::warning::Duplicate dependency entry effect@3.19.0"
|
|
31481
|
-
* // Locally: console.warn("Duplicate dependency entry", "effect@3.19.0")
|
|
31482
|
-
* ```
|
|
31483
|
-
*
|
|
31484
|
-
* @internal
|
|
31485
|
-
*/
|
|
31486
|
-
function logWarning(message, ...args) {
|
|
31487
|
-
/* v8 ignore start — environment-specific */
|
|
31488
|
-
if (typeof process !== "undefined" && process.env.VITEST) return;
|
|
31489
|
-
if (typeof process !== "undefined" && process.env.GITHUB_ACTIONS === "true") {
|
|
31490
|
-
const text = args.length > 0 ? `${message} ${args.join(" ")}` : message;
|
|
31491
|
-
console.warn(`::warning::${text}`);
|
|
31492
|
-
} else console.warn(message, ...args);
|
|
31493
|
-
/* v8 ignore stop */
|
|
31494
|
-
}
|
|
31495
|
-
//#endregion
|
|
31496
31524
|
//#region ../silk-effects/dist/dev/pkg/changesets/utils/section-parser.js
|
|
31497
31525
|
/**
|
|
31498
31526
|
* Parse a changeset summary into structured sections.
|
|
@@ -31862,10 +31890,7 @@ function getReleaseLine(changeset, versionType, options) {
|
|
|
31862
31890
|
if (changeset.commit) commitInfo = yield* (yield* GitHubService).getInfo({
|
|
31863
31891
|
commit: changeset.commit,
|
|
31864
31892
|
repo: options.repo
|
|
31865
|
-
}).pipe(effect.Effect.flatMap((raw) => effect.Schema.decodeUnknownEffect(GitHubInfoSchema)(raw).pipe(effect.Effect.map(() => raw), effect.Effect.catch(() => effect.Effect.succeed(raw)))), effect.Effect.catch((error) =>
|
|
31866
|
-
logWarning("Could not fetch GitHub info for commit:", changeset.commit ?? "", String(error));
|
|
31867
|
-
return effect.Effect.succeed(null);
|
|
31868
|
-
}));
|
|
31893
|
+
}).pipe(effect.Effect.flatMap((raw) => effect.Schema.decodeUnknownEffect(GitHubInfoSchema)(raw).pipe(effect.Effect.map(() => raw), effect.Effect.catch(() => effect.Effect.succeed(raw)))), effect.Effect.catch((error) => logWarning("Could not fetch GitHub info for commit:", changeset.commit ?? "", String(error)).pipe(effect.Effect.as(null))));
|
|
31869
31894
|
const parsed = parseChangesetSections(changeset.summary);
|
|
31870
31895
|
const firstLine = changeset.summary.split("\n")[0];
|
|
31871
31896
|
const commitMsg = parseCommitMessage(firstLine);
|
|
@@ -31960,29 +31985,48 @@ function getReleaseLine(changeset, versionType, options) {
|
|
|
31960
31985
|
*/
|
|
31961
31986
|
const MainLayer = GitHubService.layer;
|
|
31962
31987
|
/**
|
|
31963
|
-
* Changesets
|
|
31988
|
+
* Build a Changesets `ChangelogFunctions` implementation bound to a warning
|
|
31989
|
+
* mode.
|
|
31964
31990
|
*
|
|
31965
|
-
*
|
|
31966
|
-
*
|
|
31967
|
-
*
|
|
31968
|
-
*
|
|
31991
|
+
* @remarks
|
|
31992
|
+
* This module is engine code and reads no environment; the host that installs
|
|
31993
|
+
* the functions (the `\@savvy-web/changelog` package under the changesets CLI)
|
|
31994
|
+
* decides the mode from its own `process.env` and passes it here. Each method
|
|
31995
|
+
* validates options, runs the corresponding Effect program with the merged
|
|
31996
|
+
* service layer and the chosen {@link ChangesetLogMode}, and returns a
|
|
31997
|
+
* `Promise<string>`.
|
|
31969
31998
|
*
|
|
31970
|
-
* @
|
|
31999
|
+
* @param options - The warning mode to provide
|
|
32000
|
+
* @returns A `ChangelogFunctions` object for `.changeset/config.json`
|
|
32001
|
+
*
|
|
32002
|
+
* @public
|
|
31971
32003
|
*/
|
|
31972
|
-
|
|
31973
|
-
|
|
31974
|
-
const
|
|
32004
|
+
function makeChangelogFunctions(options = {}) {
|
|
32005
|
+
const run = (program) => {
|
|
32006
|
+
const provided = program.pipe(effect.Effect.provide(MainLayer));
|
|
32007
|
+
return effect.Effect.runPromise(options.logMode === void 0 ? provided : provided.pipe(effect.Effect.provideService(ChangesetLogMode, options.logMode)));
|
|
32008
|
+
};
|
|
32009
|
+
return {
|
|
32010
|
+
getReleaseLine: async (changeset, versionType, options) => run(effect.Effect.gen(function* () {
|
|
31975
32011
|
return yield* getReleaseLine(changeset, versionType, yield* validateChangesetOptions(options));
|
|
31976
|
-
})
|
|
31977
|
-
|
|
31978
|
-
},
|
|
31979
|
-
getDependencyReleaseLine: async (changesets, dependenciesUpdated, options) => {
|
|
31980
|
-
const program = effect.Effect.gen(function* () {
|
|
32012
|
+
})),
|
|
32013
|
+
getDependencyReleaseLine: async (changesets, dependenciesUpdated, options) => run(effect.Effect.gen(function* () {
|
|
31981
32014
|
return yield* getDependencyReleaseLine(changesets, dependenciesUpdated, yield* validateChangesetOptions(options));
|
|
31982
|
-
})
|
|
31983
|
-
|
|
31984
|
-
|
|
31985
|
-
|
|
32015
|
+
}))
|
|
32016
|
+
};
|
|
32017
|
+
}
|
|
32018
|
+
/**
|
|
32019
|
+
* Changesets API `ChangelogFunctions` implementation with the default warning
|
|
32020
|
+
* mode (`"stderr"`).
|
|
32021
|
+
*
|
|
32022
|
+
* @remarks
|
|
32023
|
+
* Equivalent to `makeChangelogFunctions()`. A host that runs under GitHub
|
|
32024
|
+
* Actions or a test runner should call {@link makeChangelogFunctions} with the
|
|
32025
|
+
* mode it detects instead.
|
|
32026
|
+
*
|
|
32027
|
+
* @internal
|
|
32028
|
+
*/
|
|
32029
|
+
const changelogFunctions$1 = makeChangelogFunctions();
|
|
31986
32030
|
//#endregion
|
|
31987
32031
|
//#region ../silk-effects/dist/dev/pkg/changesets/api/changelog.js
|
|
31988
32032
|
/**
|
|
@@ -32087,10 +32131,13 @@ var Changelog = class {
|
|
|
32087
32131
|
* @param versionType - The semantic version bump type (`"major"`, `"minor"`, or `"patch"`)
|
|
32088
32132
|
* @param options - Configuration object; must include `repo` in `"owner/repo"` format.
|
|
32089
32133
|
* Pass `null` to use defaults (no GitHub link resolution).
|
|
32134
|
+
* @param logMode - How a failed GitHub lookup is reported (`"stderr"` when omitted);
|
|
32135
|
+
* the host reads its own environment and passes `"github"` / `"silent"` — this
|
|
32136
|
+
* engine never does. See `ChangesetLogMode`.
|
|
32090
32137
|
* @returns A promise resolving to the formatted markdown string
|
|
32091
32138
|
*/
|
|
32092
|
-
static async formatReleaseLine(changeset, versionType, options) {
|
|
32093
|
-
return
|
|
32139
|
+
static async formatReleaseLine(changeset, versionType, options, logMode) {
|
|
32140
|
+
return makeChangelogFunctions(logMode === void 0 ? {} : { logMode }).getReleaseLine(changeset, versionType, options);
|
|
32094
32141
|
}
|
|
32095
32142
|
/**
|
|
32096
32143
|
* Format dependency update release lines into a markdown table.
|
|
@@ -32105,11 +32152,13 @@ var Changelog = class {
|
|
|
32105
32152
|
* old/new versions and package metadata
|
|
32106
32153
|
* @param options - Configuration object; must include `repo` in `"owner/repo"` format.
|
|
32107
32154
|
* Pass `null` to use defaults.
|
|
32155
|
+
* @param logMode - How a failed GitHub lookup is reported (`"stderr"` when omitted);
|
|
32156
|
+
* see {@link Changelog.formatReleaseLine}.
|
|
32108
32157
|
* @returns A promise resolving to the formatted markdown string containing
|
|
32109
32158
|
* the dependency update table
|
|
32110
32159
|
*/
|
|
32111
|
-
static async formatDependencyReleaseLine(changesets, dependenciesUpdated, options) {
|
|
32112
|
-
return
|
|
32160
|
+
static async formatDependencyReleaseLine(changesets, dependenciesUpdated, options, logMode) {
|
|
32161
|
+
return makeChangelogFunctions(logMode === void 0 ? {} : { logMode }).getDependencyReleaseLine(changesets, dependenciesUpdated, options);
|
|
32113
32162
|
}
|
|
32114
32163
|
};
|
|
32115
32164
|
//#endregion
|
|
@@ -40755,7 +40804,7 @@ function globSync(globInput, options) {
|
|
|
40755
40804
|
return crawler ? formatPaths(crawler.sync(), relative) : [];
|
|
40756
40805
|
}
|
|
40757
40806
|
//#endregion
|
|
40758
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
40807
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/identity.js
|
|
40759
40808
|
var require_identity = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
40760
40809
|
const ALIAS = Symbol.for("yaml.alias");
|
|
40761
40810
|
const DOC = Symbol.for("yaml.document");
|
|
@@ -40805,7 +40854,7 @@ var require_identity = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
40805
40854
|
exports.isSeq = isSeq;
|
|
40806
40855
|
}));
|
|
40807
40856
|
//#endregion
|
|
40808
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
40857
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/visit.js
|
|
40809
40858
|
var require_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
40810
40859
|
var identity = require_identity();
|
|
40811
40860
|
const BREAK = Symbol("break visit");
|
|
@@ -40996,7 +41045,7 @@ var require_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
40996
41045
|
exports.visitAsync = visitAsync;
|
|
40997
41046
|
}));
|
|
40998
41047
|
//#endregion
|
|
40999
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41048
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/directives.js
|
|
41000
41049
|
var require_directives = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41001
41050
|
var identity = require_identity();
|
|
41002
41051
|
var visit = require_visit();
|
|
@@ -41160,7 +41209,7 @@ var require_directives = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41160
41209
|
exports.Directives = Directives;
|
|
41161
41210
|
}));
|
|
41162
41211
|
//#endregion
|
|
41163
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41212
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/anchors.js
|
|
41164
41213
|
var require_anchors = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41165
41214
|
var identity = require_identity();
|
|
41166
41215
|
var visit = require_visit();
|
|
@@ -41227,7 +41276,7 @@ var require_anchors = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41227
41276
|
exports.findNewAnchor = findNewAnchor;
|
|
41228
41277
|
}));
|
|
41229
41278
|
//#endregion
|
|
41230
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41279
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/applyReviver.js
|
|
41231
41280
|
var require_applyReviver = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41232
41281
|
/**
|
|
41233
41282
|
* Applies the JSON.parse reviver algorithm as defined in the ECMA-262 spec,
|
|
@@ -41269,7 +41318,7 @@ var require_applyReviver = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41269
41318
|
exports.applyReviver = applyReviver;
|
|
41270
41319
|
}));
|
|
41271
41320
|
//#endregion
|
|
41272
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41321
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/toJS.js
|
|
41273
41322
|
var require_toJS = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41274
41323
|
var identity = require_identity();
|
|
41275
41324
|
/**
|
|
@@ -41306,7 +41355,7 @@ var require_toJS = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41306
41355
|
exports.toJS = toJS;
|
|
41307
41356
|
}));
|
|
41308
41357
|
//#endregion
|
|
41309
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41358
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Node.js
|
|
41310
41359
|
var require_Node = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41311
41360
|
var applyReviver = require_applyReviver();
|
|
41312
41361
|
var identity = require_identity();
|
|
@@ -41340,7 +41389,7 @@ var require_Node = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41340
41389
|
exports.NodeBase = NodeBase;
|
|
41341
41390
|
}));
|
|
41342
41391
|
//#endregion
|
|
41343
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41392
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Alias.js
|
|
41344
41393
|
var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41345
41394
|
var anchors = require_anchors();
|
|
41346
41395
|
var visit = require_visit();
|
|
@@ -41375,29 +41424,31 @@ var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41375
41424
|
if (node === this) break;
|
|
41376
41425
|
if (node.anchor === this.source) found = node;
|
|
41377
41426
|
}
|
|
41427
|
+
if (found && ctx) {
|
|
41428
|
+
const { anchors, doc, maxAliasCount } = ctx;
|
|
41429
|
+
let data = anchors.get(found);
|
|
41430
|
+
if (!data) {
|
|
41431
|
+
toJS.toJS(found, null, ctx);
|
|
41432
|
+
data = anchors.get(found);
|
|
41433
|
+
}
|
|
41434
|
+
/* istanbul ignore if */
|
|
41435
|
+
if (data?.res === void 0) throw new ReferenceError("This should not happen: Alias anchor was not resolved?");
|
|
41436
|
+
if (maxAliasCount >= 0) {
|
|
41437
|
+
data.count += 1;
|
|
41438
|
+
if (data.aliasCount === 0) data.aliasCount = getAliasCount(doc, found, anchors);
|
|
41439
|
+
if (data.count * data.aliasCount > maxAliasCount) throw new ReferenceError("Excessive alias count indicates a resource exhaustion attack");
|
|
41440
|
+
}
|
|
41441
|
+
}
|
|
41378
41442
|
return found;
|
|
41379
41443
|
}
|
|
41380
41444
|
toJSON(_arg, ctx) {
|
|
41381
41445
|
if (!ctx) return { source: this.source };
|
|
41382
|
-
const
|
|
41383
|
-
const source = this.resolve(doc, ctx);
|
|
41446
|
+
const source = this.resolve(ctx.doc, ctx);
|
|
41384
41447
|
if (!source) {
|
|
41385
41448
|
const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;
|
|
41386
41449
|
throw new ReferenceError(msg);
|
|
41387
41450
|
}
|
|
41388
|
-
|
|
41389
|
-
if (!data) {
|
|
41390
|
-
toJS.toJS(source, null, ctx);
|
|
41391
|
-
data = anchors.get(source);
|
|
41392
|
-
}
|
|
41393
|
-
/* istanbul ignore if */
|
|
41394
|
-
if (data?.res === void 0) throw new ReferenceError("This should not happen: Alias anchor was not resolved?");
|
|
41395
|
-
if (maxAliasCount >= 0) {
|
|
41396
|
-
data.count += 1;
|
|
41397
|
-
if (data.aliasCount === 0) data.aliasCount = getAliasCount(doc, source, anchors);
|
|
41398
|
-
if (data.count * data.aliasCount > maxAliasCount) throw new ReferenceError("Excessive alias count indicates a resource exhaustion attack");
|
|
41399
|
-
}
|
|
41400
|
-
return data.res;
|
|
41451
|
+
return ctx.anchors.get(source).res;
|
|
41401
41452
|
}
|
|
41402
41453
|
toString(ctx, _onComment, _onChompKeep) {
|
|
41403
41454
|
const src = `*${this.source}`;
|
|
@@ -41434,7 +41485,7 @@ var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41434
41485
|
exports.Alias = Alias;
|
|
41435
41486
|
}));
|
|
41436
41487
|
//#endregion
|
|
41437
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41488
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Scalar.js
|
|
41438
41489
|
var require_Scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41439
41490
|
var identity = require_identity();
|
|
41440
41491
|
var Node = require_Node();
|
|
@@ -41461,7 +41512,7 @@ var require_Scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41461
41512
|
exports.isScalarValue = isScalarValue;
|
|
41462
41513
|
}));
|
|
41463
41514
|
//#endregion
|
|
41464
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41515
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/createNode.js
|
|
41465
41516
|
var require_createNode = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41466
41517
|
var Alias = require_Alias();
|
|
41467
41518
|
var identity = require_identity();
|
|
@@ -41524,7 +41575,7 @@ var require_createNode = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41524
41575
|
exports.createNode = createNode;
|
|
41525
41576
|
}));
|
|
41526
41577
|
//#endregion
|
|
41527
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41578
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Collection.js
|
|
41528
41579
|
var require_Collection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41529
41580
|
var createNode = require_createNode();
|
|
41530
41581
|
var identity = require_identity();
|
|
@@ -41645,7 +41696,7 @@ var require_Collection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41645
41696
|
exports.isEmptyPath = isEmptyPath;
|
|
41646
41697
|
}));
|
|
41647
41698
|
//#endregion
|
|
41648
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41699
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyComment.js
|
|
41649
41700
|
var require_stringifyComment = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41650
41701
|
/**
|
|
41651
41702
|
* Stringifies a comment.
|
|
@@ -41665,7 +41716,7 @@ var require_stringifyComment = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41665
41716
|
exports.stringifyComment = stringifyComment;
|
|
41666
41717
|
}));
|
|
41667
41718
|
//#endregion
|
|
41668
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41719
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/foldFlowLines.js
|
|
41669
41720
|
var require_foldFlowLines = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41670
41721
|
const FOLD_FLOW = "flow";
|
|
41671
41722
|
const FOLD_BLOCK = "block";
|
|
@@ -41785,7 +41836,7 @@ var require_foldFlowLines = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41785
41836
|
exports.foldFlowLines = foldFlowLines;
|
|
41786
41837
|
}));
|
|
41787
41838
|
//#endregion
|
|
41788
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41839
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyString.js
|
|
41789
41840
|
var require_stringifyString = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41790
41841
|
var Scalar = require_Scalar();
|
|
41791
41842
|
var foldFlowLines = require_foldFlowLines();
|
|
@@ -42009,7 +42060,7 @@ var require_stringifyString = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42009
42060
|
exports.stringifyString = stringifyString;
|
|
42010
42061
|
}));
|
|
42011
42062
|
//#endregion
|
|
42012
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42063
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringify.js
|
|
42013
42064
|
var require_stringify$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42014
42065
|
var anchors = require_anchors();
|
|
42015
42066
|
var identity = require_identity();
|
|
@@ -42117,7 +42168,7 @@ var require_stringify$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42117
42168
|
exports.stringify = stringify;
|
|
42118
42169
|
}));
|
|
42119
42170
|
//#endregion
|
|
42120
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42171
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyPair.js
|
|
42121
42172
|
var require_stringifyPair = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42122
42173
|
var identity = require_identity();
|
|
42123
42174
|
var Scalar = require_Scalar();
|
|
@@ -42214,7 +42265,7 @@ var require_stringifyPair = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42214
42265
|
exports.stringifyPair = stringifyPair;
|
|
42215
42266
|
}));
|
|
42216
42267
|
//#endregion
|
|
42217
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42268
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/log.js
|
|
42218
42269
|
var require_log = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42219
42270
|
var node_process$3 = require("process");
|
|
42220
42271
|
function debug(logLevel, ...messages) {
|
|
@@ -42230,7 +42281,7 @@ var require_log = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42230
42281
|
exports.warn = warn;
|
|
42231
42282
|
}));
|
|
42232
42283
|
//#endregion
|
|
42233
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42284
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/merge.js
|
|
42234
42285
|
var require_merge = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42235
42286
|
var identity = require_identity();
|
|
42236
42287
|
var Scalar = require_Scalar();
|
|
@@ -42273,7 +42324,7 @@ var require_merge = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42273
42324
|
exports.merge = merge;
|
|
42274
42325
|
}));
|
|
42275
42326
|
//#endregion
|
|
42276
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42327
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/addPairToJSMap.js
|
|
42277
42328
|
var require_addPairToJSMap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42278
42329
|
var log = require_log();
|
|
42279
42330
|
var merge = require_merge();
|
|
@@ -42324,7 +42375,7 @@ var require_addPairToJSMap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42324
42375
|
exports.addPairToJSMap = addPairToJSMap;
|
|
42325
42376
|
}));
|
|
42326
42377
|
//#endregion
|
|
42327
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42378
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Pair.js
|
|
42328
42379
|
var require_Pair = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42329
42380
|
var createNode = require_createNode();
|
|
42330
42381
|
var stringifyPair = require_stringifyPair();
|
|
@@ -42357,7 +42408,7 @@ var require_Pair = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42357
42408
|
exports.createPair = createPair;
|
|
42358
42409
|
}));
|
|
42359
42410
|
//#endregion
|
|
42360
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42411
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyCollection.js
|
|
42361
42412
|
var require_stringifyCollection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42362
42413
|
var identity = require_identity();
|
|
42363
42414
|
var stringify = require_stringify$1();
|
|
@@ -42475,7 +42526,7 @@ var require_stringifyCollection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42475
42526
|
exports.stringifyCollection = stringifyCollection;
|
|
42476
42527
|
}));
|
|
42477
42528
|
//#endregion
|
|
42478
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42529
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/YAMLMap.js
|
|
42479
42530
|
var require_YAMLMap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42480
42531
|
var stringifyCollection = require_stringifyCollection();
|
|
42481
42532
|
var addPairToJSMap = require_addPairToJSMap();
|
|
@@ -42584,7 +42635,7 @@ var require_YAMLMap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42584
42635
|
exports.findPair = findPair;
|
|
42585
42636
|
}));
|
|
42586
42637
|
//#endregion
|
|
42587
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42638
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/map.js
|
|
42588
42639
|
var require_map = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42589
42640
|
var identity = require_identity();
|
|
42590
42641
|
var YAMLMap = require_YAMLMap();
|
|
@@ -42601,7 +42652,7 @@ var require_map = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42601
42652
|
};
|
|
42602
42653
|
}));
|
|
42603
42654
|
//#endregion
|
|
42604
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42655
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/YAMLSeq.js
|
|
42605
42656
|
var require_YAMLSeq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42606
42657
|
var createNode = require_createNode();
|
|
42607
42658
|
var stringifyCollection = require_stringifyCollection();
|
|
@@ -42707,7 +42758,7 @@ var require_YAMLSeq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42707
42758
|
exports.YAMLSeq = YAMLSeq;
|
|
42708
42759
|
}));
|
|
42709
42760
|
//#endregion
|
|
42710
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42761
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/seq.js
|
|
42711
42762
|
var require_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42712
42763
|
var identity = require_identity();
|
|
42713
42764
|
var YAMLSeq = require_YAMLSeq();
|
|
@@ -42724,7 +42775,7 @@ var require_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42724
42775
|
};
|
|
42725
42776
|
}));
|
|
42726
42777
|
//#endregion
|
|
42727
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42778
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/string.js
|
|
42728
42779
|
var require_string = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42729
42780
|
var stringifyString = require_stringifyString();
|
|
42730
42781
|
exports.string = {
|
|
@@ -42739,7 +42790,7 @@ var require_string = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42739
42790
|
};
|
|
42740
42791
|
}));
|
|
42741
42792
|
//#endregion
|
|
42742
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42793
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/null.js
|
|
42743
42794
|
var require_null = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42744
42795
|
var Scalar = require_Scalar();
|
|
42745
42796
|
const nullTag = {
|
|
@@ -42754,7 +42805,7 @@ var require_null = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42754
42805
|
exports.nullTag = nullTag;
|
|
42755
42806
|
}));
|
|
42756
42807
|
//#endregion
|
|
42757
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42808
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/bool.js
|
|
42758
42809
|
var require_bool$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42759
42810
|
var Scalar = require_Scalar();
|
|
42760
42811
|
const boolTag = {
|
|
@@ -42773,7 +42824,7 @@ var require_bool$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42773
42824
|
exports.boolTag = boolTag;
|
|
42774
42825
|
}));
|
|
42775
42826
|
//#endregion
|
|
42776
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42827
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyNumber.js
|
|
42777
42828
|
var require_stringifyNumber = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42778
42829
|
function stringifyNumber({ format, minFractionDigits, tag, value }) {
|
|
42779
42830
|
if (typeof value === "bigint") return String(value);
|
|
@@ -42794,7 +42845,7 @@ var require_stringifyNumber = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42794
42845
|
exports.stringifyNumber = stringifyNumber;
|
|
42795
42846
|
}));
|
|
42796
42847
|
//#endregion
|
|
42797
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42848
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/float.js
|
|
42798
42849
|
var require_float$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42799
42850
|
var Scalar = require_Scalar();
|
|
42800
42851
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -42835,7 +42886,7 @@ var require_float$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42835
42886
|
exports.floatNaN = floatNaN;
|
|
42836
42887
|
}));
|
|
42837
42888
|
//#endregion
|
|
42838
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42889
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/int.js
|
|
42839
42890
|
var require_int$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42840
42891
|
var stringifyNumber = require_stringifyNumber();
|
|
42841
42892
|
const intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -42876,7 +42927,7 @@ var require_int$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42876
42927
|
exports.intOct = intOct;
|
|
42877
42928
|
}));
|
|
42878
42929
|
//#endregion
|
|
42879
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42930
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/schema.js
|
|
42880
42931
|
var require_schema$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42881
42932
|
var map = require_map();
|
|
42882
42933
|
var _null = require_null();
|
|
@@ -42900,7 +42951,7 @@ var require_schema$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42900
42951
|
];
|
|
42901
42952
|
}));
|
|
42902
42953
|
//#endregion
|
|
42903
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42954
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/json/schema.js
|
|
42904
42955
|
var require_schema$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42905
42956
|
var Scalar = require_Scalar();
|
|
42906
42957
|
var map = require_map();
|
|
@@ -42962,7 +43013,7 @@ var require_schema$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42962
43013
|
});
|
|
42963
43014
|
}));
|
|
42964
43015
|
//#endregion
|
|
42965
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43016
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/binary.js
|
|
42966
43017
|
var require_binary = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42967
43018
|
var node_buffer = require("buffer");
|
|
42968
43019
|
var Scalar = require_Scalar();
|
|
@@ -43018,7 +43069,7 @@ var require_binary = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43018
43069
|
};
|
|
43019
43070
|
}));
|
|
43020
43071
|
//#endregion
|
|
43021
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43072
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
|
|
43022
43073
|
var require_pairs = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43023
43074
|
var identity = require_identity();
|
|
43024
43075
|
var Pair = require_Pair();
|
|
@@ -43079,7 +43130,7 @@ var require_pairs = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43079
43130
|
exports.resolvePairs = resolvePairs;
|
|
43080
43131
|
}));
|
|
43081
43132
|
//#endregion
|
|
43082
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43133
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/omap.js
|
|
43083
43134
|
var require_omap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43084
43135
|
var identity = require_identity();
|
|
43085
43136
|
var toJS = require_toJS();
|
|
@@ -43144,7 +43195,7 @@ var require_omap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43144
43195
|
exports.omap = omap;
|
|
43145
43196
|
}));
|
|
43146
43197
|
//#endregion
|
|
43147
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43198
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/bool.js
|
|
43148
43199
|
var require_bool = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43149
43200
|
var Scalar = require_Scalar();
|
|
43150
43201
|
function boolStringify({ value, source }, ctx) {
|
|
@@ -43171,7 +43222,7 @@ var require_bool = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43171
43222
|
exports.trueTag = trueTag;
|
|
43172
43223
|
}));
|
|
43173
43224
|
//#endregion
|
|
43174
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43225
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/float.js
|
|
43175
43226
|
var require_float = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43176
43227
|
var Scalar = require_Scalar();
|
|
43177
43228
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -43215,7 +43266,7 @@ var require_float = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43215
43266
|
exports.floatNaN = floatNaN;
|
|
43216
43267
|
}));
|
|
43217
43268
|
//#endregion
|
|
43218
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43269
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/int.js
|
|
43219
43270
|
var require_int = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43220
43271
|
var stringifyNumber = require_stringifyNumber();
|
|
43221
43272
|
const intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -43288,7 +43339,7 @@ var require_int = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43288
43339
|
exports.intOct = intOct;
|
|
43289
43340
|
}));
|
|
43290
43341
|
//#endregion
|
|
43291
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43342
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/set.js
|
|
43292
43343
|
var require_set = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43293
43344
|
var identity = require_identity();
|
|
43294
43345
|
var Pair = require_Pair();
|
|
@@ -43357,7 +43408,7 @@ var require_set = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43357
43408
|
exports.set = set;
|
|
43358
43409
|
}));
|
|
43359
43410
|
//#endregion
|
|
43360
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43411
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
|
|
43361
43412
|
var require_timestamp = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43362
43413
|
var stringifyNumber = require_stringifyNumber();
|
|
43363
43414
|
/** Internal types handle bigint as number, because TS can't figure it out. */
|
|
@@ -43440,7 +43491,7 @@ var require_timestamp = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43440
43491
|
exports.timestamp = timestamp;
|
|
43441
43492
|
}));
|
|
43442
43493
|
//#endregion
|
|
43443
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43494
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/schema.js
|
|
43444
43495
|
var require_schema = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43445
43496
|
var map = require_map();
|
|
43446
43497
|
var _null = require_null();
|
|
@@ -43480,7 +43531,7 @@ var require_schema = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43480
43531
|
];
|
|
43481
43532
|
}));
|
|
43482
43533
|
//#endregion
|
|
43483
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43534
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/tags.js
|
|
43484
43535
|
var require_tags = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43485
43536
|
var map = require_map();
|
|
43486
43537
|
var _null = require_null();
|
|
@@ -43566,7 +43617,7 @@ var require_tags = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43566
43617
|
exports.getTags = getTags;
|
|
43567
43618
|
}));
|
|
43568
43619
|
//#endregion
|
|
43569
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43620
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/Schema.js
|
|
43570
43621
|
var require_Schema = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43571
43622
|
var identity = require_identity();
|
|
43572
43623
|
var map = require_map();
|
|
@@ -43594,7 +43645,7 @@ var require_Schema = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43594
43645
|
};
|
|
43595
43646
|
}));
|
|
43596
43647
|
//#endregion
|
|
43597
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43648
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyDocument.js
|
|
43598
43649
|
var require_stringifyDocument = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43599
43650
|
var identity = require_identity();
|
|
43600
43651
|
var stringify = require_stringify$1();
|
|
@@ -43656,7 +43707,7 @@ var require_stringifyDocument = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43656
43707
|
exports.stringifyDocument = stringifyDocument;
|
|
43657
43708
|
}));
|
|
43658
43709
|
//#endregion
|
|
43659
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43710
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/Document.js
|
|
43660
43711
|
var require_Document = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43661
43712
|
var Alias = require_Alias();
|
|
43662
43713
|
var Collection = require_Collection();
|
|
@@ -43937,7 +43988,7 @@ var require_Document = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43937
43988
|
exports.Document = Document;
|
|
43938
43989
|
}));
|
|
43939
43990
|
//#endregion
|
|
43940
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43991
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/errors.js
|
|
43941
43992
|
var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43942
43993
|
var YAMLError = class extends Error {
|
|
43943
43994
|
constructor(name, pos, code, message) {
|
|
@@ -43990,7 +44041,7 @@ var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43990
44041
|
exports.prettifyError = prettifyError;
|
|
43991
44042
|
}));
|
|
43992
44043
|
//#endregion
|
|
43993
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44044
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-props.js
|
|
43994
44045
|
var require_resolve_props = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43995
44046
|
function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
|
|
43996
44047
|
let spaceBefore = false;
|
|
@@ -44097,7 +44148,7 @@ var require_resolve_props = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44097
44148
|
exports.resolveProps = resolveProps;
|
|
44098
44149
|
}));
|
|
44099
44150
|
//#endregion
|
|
44100
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44151
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-contains-newline.js
|
|
44101
44152
|
var require_util_contains_newline = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44102
44153
|
function containsNewline(key) {
|
|
44103
44154
|
if (!key) return null;
|
|
@@ -44126,7 +44177,7 @@ var require_util_contains_newline = /* @__PURE__ */ __commonJSMin(((exports) =>
|
|
|
44126
44177
|
exports.containsNewline = containsNewline;
|
|
44127
44178
|
}));
|
|
44128
44179
|
//#endregion
|
|
44129
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44180
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-flow-indent-check.js
|
|
44130
44181
|
var require_util_flow_indent_check = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44131
44182
|
var utilContainsNewline = require_util_contains_newline();
|
|
44132
44183
|
function flowIndentCheck(indent, fc, onError) {
|
|
@@ -44138,7 +44189,7 @@ var require_util_flow_indent_check = /* @__PURE__ */ __commonJSMin(((exports) =>
|
|
|
44138
44189
|
exports.flowIndentCheck = flowIndentCheck;
|
|
44139
44190
|
}));
|
|
44140
44191
|
//#endregion
|
|
44141
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44192
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-map-includes.js
|
|
44142
44193
|
var require_util_map_includes = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44143
44194
|
var identity = require_identity();
|
|
44144
44195
|
function mapIncludes(ctx, items, search) {
|
|
@@ -44150,7 +44201,7 @@ var require_util_map_includes = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44150
44201
|
exports.mapIncludes = mapIncludes;
|
|
44151
44202
|
}));
|
|
44152
44203
|
//#endregion
|
|
44153
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44204
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-map.js
|
|
44154
44205
|
var require_resolve_block_map = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44155
44206
|
var Pair = require_Pair();
|
|
44156
44207
|
var YAMLMap = require_YAMLMap();
|
|
@@ -44238,7 +44289,7 @@ var require_resolve_block_map = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44238
44289
|
exports.resolveBlockMap = resolveBlockMap;
|
|
44239
44290
|
}));
|
|
44240
44291
|
//#endregion
|
|
44241
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44292
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-seq.js
|
|
44242
44293
|
var require_resolve_block_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44243
44294
|
var YAMLSeq = require_YAMLSeq();
|
|
44244
44295
|
var resolveProps = require_resolve_props();
|
|
@@ -44283,7 +44334,7 @@ var require_resolve_block_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44283
44334
|
exports.resolveBlockSeq = resolveBlockSeq;
|
|
44284
44335
|
}));
|
|
44285
44336
|
//#endregion
|
|
44286
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44337
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-end.js
|
|
44287
44338
|
var require_resolve_end = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44288
44339
|
function resolveEnd(end, offset, reqSpace, onError) {
|
|
44289
44340
|
let comment = "";
|
|
@@ -44321,7 +44372,7 @@ var require_resolve_end = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44321
44372
|
exports.resolveEnd = resolveEnd;
|
|
44322
44373
|
}));
|
|
44323
44374
|
//#endregion
|
|
44324
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44375
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-flow-collection.js
|
|
44325
44376
|
var require_resolve_flow_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44326
44377
|
var identity = require_identity();
|
|
44327
44378
|
var Pair = require_Pair();
|
|
@@ -44484,7 +44535,7 @@ var require_resolve_flow_collection = /* @__PURE__ */ __commonJSMin(((exports) =
|
|
|
44484
44535
|
exports.resolveFlowCollection = resolveFlowCollection;
|
|
44485
44536
|
}));
|
|
44486
44537
|
//#endregion
|
|
44487
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44538
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-collection.js
|
|
44488
44539
|
var require_compose_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44489
44540
|
var identity = require_identity();
|
|
44490
44541
|
var Scalar = require_Scalar();
|
|
@@ -44536,7 +44587,7 @@ var require_compose_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44536
44587
|
exports.composeCollection = composeCollection;
|
|
44537
44588
|
}));
|
|
44538
44589
|
//#endregion
|
|
44539
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44590
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-scalar.js
|
|
44540
44591
|
var require_resolve_block_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44541
44592
|
var Scalar = require_Scalar();
|
|
44542
44593
|
function resolveBlockScalar(ctx, scalar, onError) {
|
|
@@ -44713,7 +44764,7 @@ var require_resolve_block_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44713
44764
|
exports.resolveBlockScalar = resolveBlockScalar;
|
|
44714
44765
|
}));
|
|
44715
44766
|
//#endregion
|
|
44716
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44767
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-flow-scalar.js
|
|
44717
44768
|
var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44718
44769
|
var Scalar = require_Scalar();
|
|
44719
44770
|
var resolveEnd = require_resolve_end();
|
|
@@ -44783,40 +44834,41 @@ var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44783
44834
|
case "`": badChar = `reserved character ${source[0]}`;
|
|
44784
44835
|
}
|
|
44785
44836
|
if (badChar) onError(0, "BAD_SCALAR_START", `Plain value cannot start with ${badChar}`);
|
|
44786
|
-
return
|
|
44837
|
+
return unfoldLines(source);
|
|
44787
44838
|
}
|
|
44788
44839
|
function singleQuotedValue(source, onError) {
|
|
44789
44840
|
if (source[source.length - 1] !== "'" || source.length === 1) onError(source.length, "MISSING_CHAR", "Missing closing 'quote");
|
|
44790
|
-
return
|
|
44841
|
+
return unfoldLines(source.slice(1, -1)).replace(/''/g, "'");
|
|
44791
44842
|
}
|
|
44792
|
-
function
|
|
44843
|
+
function unfoldLines(source) {
|
|
44844
|
+
const line = /(.*?)\r?\n/sy;
|
|
44845
|
+
let match = line.exec(source);
|
|
44846
|
+
if (!match) return source;
|
|
44793
44847
|
/**
|
|
44794
|
-
* The negative
|
|
44848
|
+
* The negative lookbehinds in these RegExps are to
|
|
44795
44849
|
* prevent causing a polynomial search time in certain cases.
|
|
44796
44850
|
*
|
|
44797
|
-
* The try-catch is for Safari
|
|
44851
|
+
* The try-catch is for Safari < 16.4 and other old browsers:
|
|
44798
44852
|
* https://caniuse.com/js-regexp-lookbehind
|
|
44799
44853
|
*/
|
|
44800
|
-
let
|
|
44854
|
+
let trimEnd, trimBoth;
|
|
44801
44855
|
try {
|
|
44802
|
-
|
|
44803
|
-
|
|
44856
|
+
trimEnd = new RegExp("(?<![ ])[ ]+$");
|
|
44857
|
+
trimBoth = new RegExp("^[ ]+|(?<![ ])[ ]+$", "g");
|
|
44804
44858
|
} catch {
|
|
44805
|
-
|
|
44806
|
-
|
|
44859
|
+
trimEnd = /[ \t]+$/;
|
|
44860
|
+
trimBoth = /^[ \t]+|[ \t]+$/g;
|
|
44807
44861
|
}
|
|
44808
|
-
let
|
|
44809
|
-
if (!match) return source;
|
|
44810
|
-
let res = match[1];
|
|
44862
|
+
let res = match[1].replace(trimEnd, "");
|
|
44811
44863
|
let sep = " ";
|
|
44812
|
-
let pos =
|
|
44813
|
-
line.lastIndex = pos;
|
|
44864
|
+
let pos = line.lastIndex;
|
|
44814
44865
|
while (match = line.exec(source)) {
|
|
44815
|
-
|
|
44866
|
+
const lm = match[1].replace(trimBoth, "");
|
|
44867
|
+
if (lm === "") {
|
|
44816
44868
|
if (sep === "\n") res += sep;
|
|
44817
44869
|
else sep = "\n";
|
|
44818
44870
|
} else {
|
|
44819
|
-
res += sep +
|
|
44871
|
+
res += sep + lm;
|
|
44820
44872
|
sep = " ";
|
|
44821
44873
|
}
|
|
44822
44874
|
pos = line.lastIndex;
|
|
@@ -44917,7 +44969,7 @@ var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44917
44969
|
exports.resolveFlowScalar = resolveFlowScalar;
|
|
44918
44970
|
}));
|
|
44919
44971
|
//#endregion
|
|
44920
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44972
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-scalar.js
|
|
44921
44973
|
var require_compose_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44922
44974
|
var identity = require_identity();
|
|
44923
44975
|
var Scalar = require_Scalar();
|
|
@@ -44978,7 +45030,7 @@ var require_compose_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44978
45030
|
exports.composeScalar = composeScalar;
|
|
44979
45031
|
}));
|
|
44980
45032
|
//#endregion
|
|
44981
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45033
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-empty-scalar-position.js
|
|
44982
45034
|
var require_util_empty_scalar_position = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44983
45035
|
function emptyScalarPosition(offset, before, pos) {
|
|
44984
45036
|
if (before) {
|
|
@@ -45005,7 +45057,7 @@ var require_util_empty_scalar_position = /* @__PURE__ */ __commonJSMin(((exports
|
|
|
45005
45057
|
exports.emptyScalarPosition = emptyScalarPosition;
|
|
45006
45058
|
}));
|
|
45007
45059
|
//#endregion
|
|
45008
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45060
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-node.js
|
|
45009
45061
|
var require_compose_node = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45010
45062
|
var Alias = require_Alias();
|
|
45011
45063
|
var identity = require_identity();
|
|
@@ -45096,7 +45148,7 @@ var require_compose_node = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45096
45148
|
exports.composeNode = composeNode;
|
|
45097
45149
|
}));
|
|
45098
45150
|
//#endregion
|
|
45099
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45151
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-doc.js
|
|
45100
45152
|
var require_compose_doc = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45101
45153
|
var Document = require_Document();
|
|
45102
45154
|
var composeNode = require_compose_node();
|
|
@@ -45138,7 +45190,7 @@ var require_compose_doc = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45138
45190
|
exports.composeDoc = composeDoc;
|
|
45139
45191
|
}));
|
|
45140
45192
|
//#endregion
|
|
45141
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45193
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/composer.js
|
|
45142
45194
|
var require_composer = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45143
45195
|
var node_process$2 = require("process");
|
|
45144
45196
|
var directives = require_directives();
|
|
@@ -45336,7 +45388,7 @@ var require_composer = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45336
45388
|
exports.Composer = Composer;
|
|
45337
45389
|
}));
|
|
45338
45390
|
//#endregion
|
|
45339
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45391
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-scalar.js
|
|
45340
45392
|
var require_cst_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45341
45393
|
var resolveBlockScalar = require_resolve_block_scalar();
|
|
45342
45394
|
var resolveFlowScalar = require_resolve_flow_scalar();
|
|
@@ -45603,7 +45655,7 @@ var require_cst_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45603
45655
|
exports.setScalarValue = setScalarValue;
|
|
45604
45656
|
}));
|
|
45605
45657
|
//#endregion
|
|
45606
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45658
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-stringify.js
|
|
45607
45659
|
var require_cst_stringify = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45608
45660
|
/**
|
|
45609
45661
|
* Stringify a CST document, token, or collection item
|
|
@@ -45654,7 +45706,7 @@ var require_cst_stringify = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45654
45706
|
exports.stringify = stringify;
|
|
45655
45707
|
}));
|
|
45656
45708
|
//#endregion
|
|
45657
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45709
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-visit.js
|
|
45658
45710
|
var require_cst_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45659
45711
|
const BREAK = Symbol("break visit");
|
|
45660
45712
|
const SKIP = Symbol("skip children");
|
|
@@ -45745,7 +45797,7 @@ var require_cst_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45745
45797
|
exports.visit = visit;
|
|
45746
45798
|
}));
|
|
45747
45799
|
//#endregion
|
|
45748
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45800
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst.js
|
|
45749
45801
|
var require_cst = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45750
45802
|
var cstScalar = require_cst_scalar();
|
|
45751
45803
|
var cstStringify = require_cst_stringify();
|
|
@@ -45824,7 +45876,7 @@ var require_cst = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45824
45876
|
exports.tokenType = tokenType;
|
|
45825
45877
|
}));
|
|
45826
45878
|
//#endregion
|
|
45827
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45879
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/lexer.js
|
|
45828
45880
|
var require_lexer = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45829
45881
|
var cst = require_cst();
|
|
45830
45882
|
function isEmpty(ch) {
|
|
@@ -46357,7 +46409,7 @@ var require_lexer = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
46357
46409
|
exports.Lexer = Lexer;
|
|
46358
46410
|
}));
|
|
46359
46411
|
//#endregion
|
|
46360
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
46412
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/line-counter.js
|
|
46361
46413
|
var require_line_counter = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
46362
46414
|
/**
|
|
46363
46415
|
* Tracks newlines during parsing in order to provide an efficient API for
|
|
@@ -46404,7 +46456,7 @@ var require_line_counter = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
46404
46456
|
exports.LineCounter = LineCounter;
|
|
46405
46457
|
}));
|
|
46406
46458
|
//#endregion
|
|
46407
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
46459
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/parser.js
|
|
46408
46460
|
var require_parser = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
46409
46461
|
var node_process$1 = require("process");
|
|
46410
46462
|
var cst = require_cst();
|
|
@@ -47270,7 +47322,7 @@ var require_parser = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
47270
47322
|
exports.Parser = Parser;
|
|
47271
47323
|
}));
|
|
47272
47324
|
//#endregion
|
|
47273
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
47325
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/public-api.js
|
|
47274
47326
|
var require_public_api = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
47275
47327
|
var composer = require_composer();
|
|
47276
47328
|
var Document = require_Document();
|
|
@@ -47359,7 +47411,7 @@ var require_public_api = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
47359
47411
|
exports.stringify = stringify;
|
|
47360
47412
|
}));
|
|
47361
47413
|
//#endregion
|
|
47362
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
47414
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/index.js
|
|
47363
47415
|
var require_dist = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
47364
47416
|
var composer = require_composer();
|
|
47365
47417
|
var Document = require_Document();
|
|
@@ -55752,6 +55804,7 @@ var changesets_exports = /* @__PURE__ */ __exportAll({
|
|
|
55752
55804
|
ChangelogTransformer: () => ChangelogTransformer,
|
|
55753
55805
|
ChangesetIOError: () => ChangesetIOError,
|
|
55754
55806
|
ChangesetLinter: () => ChangesetLinter,
|
|
55807
|
+
ChangesetLogMode: () => ChangesetLogMode,
|
|
55755
55808
|
ChangesetOptionsSchema: () => ChangesetOptionsSchema,
|
|
55756
55809
|
ChangesetPreviewSchema: () => ChangesetPreviewSchema,
|
|
55757
55810
|
ChangesetSchema: () => ChangesetSchema,
|
|
@@ -55838,6 +55891,7 @@ var changesets_exports = /* @__PURE__ */ __exportAll({
|
|
|
55838
55891
|
isPureDependencyChangeset: () => isPureDependencyChangeset,
|
|
55839
55892
|
listPublishablePackageNames: () => listPublishablePackageNames,
|
|
55840
55893
|
makeBranchAnalyzerTest: () => makeBranchAnalyzerTest,
|
|
55894
|
+
makeChangelogFunctions: () => makeChangelogFunctions,
|
|
55841
55895
|
makeConfigInspectorTest: () => makeConfigInspectorTest,
|
|
55842
55896
|
makeDepsRegenDefault: () => makeDepsRegenDefault,
|
|
55843
55897
|
makeGitHubTest: () => makeGitHubTest,
|