@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
package/changesets-changelog.cjs
CHANGED
|
@@ -30,11 +30,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
30
30
|
enumerable: true
|
|
31
31
|
}) : target, mod));
|
|
32
32
|
//#endregion
|
|
33
|
-
let _effected_templates = require("@effected/templates");
|
|
34
33
|
let effect = require("effect");
|
|
34
|
+
let _effected_templates = require("@effected/templates");
|
|
35
|
+
let _effected_workspaces = require("@effected/workspaces");
|
|
35
36
|
let node_path = require("node:path");
|
|
36
37
|
node_path = __toESM(node_path, 1);
|
|
37
|
-
let _effected_workspaces = require("@effected/workspaces");
|
|
38
38
|
let node_fs_promises = require("node:fs/promises");
|
|
39
39
|
node_fs_promises = __toESM(node_fs_promises, 1);
|
|
40
40
|
let node_util = require("node:util");
|
|
@@ -75,7 +75,7 @@ let semver_functions_gt_js = require("semver/functions/gt.js");
|
|
|
75
75
|
semver_functions_gt_js = __toESM(semver_functions_gt_js, 1);
|
|
76
76
|
let semver_functions_inc_js = require("semver/functions/inc.js");
|
|
77
77
|
semver_functions_inc_js = __toESM(semver_functions_inc_js, 1);
|
|
78
|
-
//#region ../silk-
|
|
78
|
+
//#region ../silk-core/dist/dev/pkg/errors/ChangesetConfigError.js
|
|
79
79
|
/**
|
|
80
80
|
* Raised when the `.changeset/config.json` file cannot be read or decoded.
|
|
81
81
|
*
|
|
@@ -92,7 +92,441 @@ var ChangesetConfigError = class extends effect.Data.TaggedError("ChangesetConfi
|
|
|
92
92
|
}
|
|
93
93
|
};
|
|
94
94
|
//#endregion
|
|
95
|
-
//#region ../silk-
|
|
95
|
+
//#region ../silk-core/dist/dev/pkg/errors/PublishTargetBindingError.js
|
|
96
|
+
/**
|
|
97
|
+
* Raised when publishability detection selects a directory that the package's
|
|
98
|
+
* `dist/prod/targets.json` binding does not describe.
|
|
99
|
+
*
|
|
100
|
+
* @remarks
|
|
101
|
+
* The bundler's prod build writes `targets.json` naming every byte-group
|
|
102
|
+
* directory it produced. Once that binding exists it is authoritative: the only
|
|
103
|
+
* directories whose bytes may be published are the ones it lists. A detector
|
|
104
|
+
* that returns anything else — most often `publishConfig.directory` pointing at
|
|
105
|
+
* a **dev** build, because silk mode was misdetected — is about to pack an
|
|
106
|
+
* unresolved workspace manifest and ship it to a registry.
|
|
107
|
+
*
|
|
108
|
+
* That is the `yaml-effect@0.7.1` failure: detection picked `dist/dev/pkg`, the
|
|
109
|
+
* dev manifest still carried `catalog:` specifiers, and the published package
|
|
110
|
+
* was uninstallable (`EUNSUPPORTEDPROTOCOL`).
|
|
111
|
+
*
|
|
112
|
+
* @since 3.1.0
|
|
113
|
+
* @public
|
|
114
|
+
*/
|
|
115
|
+
var PublishTargetBindingError = class extends effect.Data.TaggedError("PublishTargetBindingError") {
|
|
116
|
+
get message() {
|
|
117
|
+
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.`;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
//#endregion
|
|
121
|
+
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/IssueReferences.js
|
|
122
|
+
/**
|
|
123
|
+
* GitHub's closing-keyword issue-reference grammar, as pure functions.
|
|
124
|
+
*
|
|
125
|
+
* @remarks
|
|
126
|
+
* GitHub links an issue to a pull request when the PR's description carries
|
|
127
|
+
* `<keyword> #<number>` for one of nine documented keywords. Consumers speak
|
|
128
|
+
* that grammar in two distinct dialects, and this module models exactly those
|
|
129
|
+
* two — no service, no layer, nothing but strings in and values out:
|
|
130
|
+
*
|
|
131
|
+
* - **Inline-in-prose** ({@link harvestIssueReferences}): a reference may appear anywhere in
|
|
132
|
+
* running text — `"fixes #12 and closes #13"` — with mandatory whitespace
|
|
133
|
+
* and **no colon**, because that is the spelling GitHub itself scans PR
|
|
134
|
+
* bodies for. This is the dialect a release pipeline harvests from commit
|
|
135
|
+
* subjects and PR descriptions.
|
|
136
|
+
* - **Bare-line** ({@link parseBareLineReference}): the whole line, after trimming, *is*
|
|
137
|
+
* the reference — `"Closes: #12"` — with an **optional colon**, because a
|
|
138
|
+
* generated references region writes one reference per line and a colon
|
|
139
|
+
* reads better there. GitHub does not require the colon; the region format
|
|
140
|
+
* allows it, so the parser must too. The dialects differ because their
|
|
141
|
+
* producers do: prose is written by humans for GitHub's scanner, the region
|
|
142
|
+
* is written by tooling for humans.
|
|
143
|
+
*
|
|
144
|
+
* Deliberately out of scope this round: cross-repo references
|
|
145
|
+
* (`owner/repo#N`) and full-URL references
|
|
146
|
+
* (`https://github.com/owner/repo/issues/N`). Both are real GitHub spellings;
|
|
147
|
+
* neither dialect's consumers emit them yet, and guessing at their shape here
|
|
148
|
+
* would freeze an API nobody has driven.
|
|
149
|
+
*/
|
|
150
|
+
/**
|
|
151
|
+
* The nine closing keywords GitHub documents, lowercased.
|
|
152
|
+
*
|
|
153
|
+
* @public
|
|
154
|
+
*/
|
|
155
|
+
const CLOSING_KEYWORDS = [
|
|
156
|
+
"close",
|
|
157
|
+
"closes",
|
|
158
|
+
"closed",
|
|
159
|
+
"fix",
|
|
160
|
+
"fixes",
|
|
161
|
+
"fixed",
|
|
162
|
+
"resolve",
|
|
163
|
+
"resolves",
|
|
164
|
+
"resolved"
|
|
165
|
+
];
|
|
166
|
+
/**
|
|
167
|
+
* Both patterns derive from {@link CLOSING_KEYWORDS} so the constant and the
|
|
168
|
+
* grammar cannot drift. Alternation order is safe: the regex engine backtracks
|
|
169
|
+
* through alternatives, so `close` matching inside `closes` fails at the
|
|
170
|
+
* mandatory `#`-introducer and retries the longer keyword.
|
|
171
|
+
*/
|
|
172
|
+
const KEYWORDS = CLOSING_KEYWORDS.join("|");
|
|
173
|
+
new RegExp(`\\b(${KEYWORDS})\\s+#(\\d+)`, "gi");
|
|
174
|
+
new RegExp(`^(${KEYWORDS}):?[ \\t]+#(\\d+)$`, "i");
|
|
175
|
+
//#endregion
|
|
176
|
+
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/ClosingList.js
|
|
177
|
+
/**
|
|
178
|
+
* The closing-list dialect: one whole line naming several issues at once.
|
|
179
|
+
*
|
|
180
|
+
* @remarks
|
|
181
|
+
* The third dialect, alongside the two in `IssueReferences`: after trimming,
|
|
182
|
+
* the **entire** line must be `<keyword>[:] <list>` — keyword
|
|
183
|
+
* case-insensitive (lowercased to canonical form in the result), colon
|
|
184
|
+
* optional, and the list one or more `#<digits>` items separated by `,`,
|
|
185
|
+
* `and`, or the Oxford `, and`. Whitespace inside the line is `[ \t]` only,
|
|
186
|
+
* so an embedded newline cannot smuggle two lines past a parser whose
|
|
187
|
+
* contract is one — the same posture as the bare-line pattern. Any trailing
|
|
188
|
+
* content after the list rejects the line; duplicates are preserved in order,
|
|
189
|
+
* because whether `#1, #1` means one issue or two is the caller's business.
|
|
190
|
+
*
|
|
191
|
+
* Two keyword sets play here. {@link parseClosingList} accepts only the nine
|
|
192
|
+
* closing keywords and yields a {@link ClosingList}; {@link parseReferenceList}
|
|
193
|
+
* additionally accepts the non-closing {@link REFERENCE_KEYWORDS} (`ref`,
|
|
194
|
+
* `refs`, `references`) and reports which set matched via
|
|
195
|
+
* {@link ReferenceList}'s `closing` flag.
|
|
196
|
+
*
|
|
197
|
+
* An item whose digits exceed `Number.MAX_SAFE_INTEGER` rejects the **whole
|
|
198
|
+
* line**, where `harvestIssueReferences` merely skips the one match. The
|
|
199
|
+
* asymmetry is deliberate: a harvest drops one reference out of running
|
|
200
|
+
* prose, but a list line is a single claim about a set of issues, and
|
|
201
|
+
* returning the parseable subset would misrepresent the line as claiming
|
|
202
|
+
* less than it does.
|
|
203
|
+
*
|
|
204
|
+
* Complexity posture: parsing is a single left-to-right character scan —
|
|
205
|
+
* this module contains **no regular expressions at all** — so worst-case
|
|
206
|
+
* time is linear in the line length by construction. There is no
|
|
207
|
+
* backtracking engine to feed, no polynomial blow-up for a scanner to flag,
|
|
208
|
+
* and therefore no input truncation.
|
|
209
|
+
*
|
|
210
|
+
* Beyond the whole-line parsers, {@link harvestReferenceLists} generalizes
|
|
211
|
+
* the same list grammar to the inline-in-prose posture — several lists on
|
|
212
|
+
* one line of running text — and {@link parseClosingLists} /
|
|
213
|
+
* {@link parseReferenceLists} apply the whole-line parsers per line of a
|
|
214
|
+
* multi-line text. All of them ride the same character scan; the no-regex
|
|
215
|
+
* promise above covers every export here.
|
|
216
|
+
*/
|
|
217
|
+
/**
|
|
218
|
+
* The non-closing reference keywords the list dialect accepts, lowercased.
|
|
219
|
+
*
|
|
220
|
+
* @remarks
|
|
221
|
+
* GitHub does not act on these — they associate without closing — but a
|
|
222
|
+
* references region writes them, so the parser must read them.
|
|
223
|
+
*
|
|
224
|
+
* @public
|
|
225
|
+
*/
|
|
226
|
+
const REFERENCE_KEYWORDS = [
|
|
227
|
+
"ref",
|
|
228
|
+
"refs",
|
|
229
|
+
"references"
|
|
230
|
+
];
|
|
231
|
+
/**
|
|
232
|
+
* Both keyword tables ARE the exported constants — membership sets built from
|
|
233
|
+
* them once — so the constants and the grammar cannot drift.
|
|
234
|
+
*/
|
|
235
|
+
const ALL_KEYWORDS = /* @__PURE__ */ new Set([...CLOSING_KEYWORDS, ...REFERENCE_KEYWORDS]);
|
|
236
|
+
/** Membership test for reporting `closing`, widened once so no call casts. */
|
|
237
|
+
const CLOSING_SET = new Set(CLOSING_KEYWORDS);
|
|
238
|
+
const HASH = 35;
|
|
239
|
+
const COLON = 58;
|
|
240
|
+
const COMMA = 44;
|
|
241
|
+
/** `[ \t]` — the only whitespace the dialect admits, per the module remarks. */
|
|
242
|
+
const isSpaceTab = (code) => code === 32 || code === 9;
|
|
243
|
+
const isDigit$2 = (code) => code >= 48 && code <= 57;
|
|
244
|
+
const isAsciiLetter = (code) => code >= 65 && code <= 90 || code >= 97 && code <= 122;
|
|
245
|
+
/** The index after the run of `[ \t]` starting at `from` (possibly `from` itself). */
|
|
246
|
+
const skipSpaceTab = (line, from) => {
|
|
247
|
+
let index = from;
|
|
248
|
+
while (index < line.length && isSpaceTab(line.charCodeAt(index))) index += 1;
|
|
249
|
+
return index;
|
|
250
|
+
};
|
|
251
|
+
/**
|
|
252
|
+
* One list item at exactly `from`: `#<digits>` and the index one past it.
|
|
253
|
+
* Digits exceeding `Number.MAX_SAFE_INTEGER` report `"unsafe"` rather than a
|
|
254
|
+
* silently rounded issue number, still carrying the index one past the digit
|
|
255
|
+
* run so a caller can skip the item's extent; the whole-line parsers reject
|
|
256
|
+
* on it and {@link harvestReferenceLists} abandons the entire candidate —
|
|
257
|
+
* see the module remarks for why a list never yields a partial reading.
|
|
258
|
+
* Anything that is not `#<digits>` at all is `undefined`.
|
|
259
|
+
*/
|
|
260
|
+
const readItem = (line, from) => {
|
|
261
|
+
if (line.charCodeAt(from) !== HASH) return void 0;
|
|
262
|
+
const start = from + 1;
|
|
263
|
+
let index = start;
|
|
264
|
+
while (index < line.length && isDigit$2(line.charCodeAt(index))) index += 1;
|
|
265
|
+
if (index === start) return void 0;
|
|
266
|
+
const value = Number(line.slice(start, index));
|
|
267
|
+
return Number.isSafeInteger(value) ? {
|
|
268
|
+
kind: "item",
|
|
269
|
+
value,
|
|
270
|
+
next: index
|
|
271
|
+
} : {
|
|
272
|
+
kind: "unsafe",
|
|
273
|
+
next: index
|
|
274
|
+
};
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* One separator at exactly `from`: a comma with optional surrounding `[ \t]`
|
|
278
|
+
* and an optional Oxford `and` (consumed only when its own trailing `[ \t]+`
|
|
279
|
+
* is present), or a bare `and` requiring `[ \t]+` on both sides. `and` is
|
|
280
|
+
* lowercase-only — the keyword head is case-insensitive, the separator is
|
|
281
|
+
* not. Returns the index where the next item must start, or `undefined` when
|
|
282
|
+
* no separator is present.
|
|
283
|
+
*/
|
|
284
|
+
const scanSeparator = (line, from) => {
|
|
285
|
+
const afterLeading = skipSpaceTab(line, from);
|
|
286
|
+
if (line.charCodeAt(afterLeading) === COMMA) {
|
|
287
|
+
const afterComma = skipSpaceTab(line, afterLeading + 1);
|
|
288
|
+
if (line.startsWith("and", afterComma)) {
|
|
289
|
+
const afterAnd = skipSpaceTab(line, afterComma + 3);
|
|
290
|
+
if (afterAnd > afterComma + 3) return afterAnd;
|
|
291
|
+
}
|
|
292
|
+
return afterComma;
|
|
293
|
+
}
|
|
294
|
+
if (afterLeading > from && line.startsWith("and", afterLeading)) {
|
|
295
|
+
const afterAnd = skipSpaceTab(line, afterLeading + 3);
|
|
296
|
+
if (afterAnd > afterLeading + 3) return afterAnd;
|
|
297
|
+
}
|
|
298
|
+
};
|
|
299
|
+
/**
|
|
300
|
+
* The scan walk: item, then separator, then item, until the cursor stands
|
|
301
|
+
* exactly at the end of the string. Anything else — a malformed item, an
|
|
302
|
+
* unknown separator, trailing content, an unsafe issue number — is
|
|
303
|
+
* `undefined`, and the caller rejects the whole line.
|
|
304
|
+
*/
|
|
305
|
+
const parseItems = (line, from) => {
|
|
306
|
+
const issueNumbers = [];
|
|
307
|
+
let cursor = from;
|
|
308
|
+
for (;;) {
|
|
309
|
+
const item = readItem(line, cursor);
|
|
310
|
+
if (item === void 0 || item.kind === "unsafe") return void 0;
|
|
311
|
+
issueNumbers.push(item.value);
|
|
312
|
+
cursor = item.next;
|
|
313
|
+
if (cursor === line.length) return issueNumbers;
|
|
314
|
+
const next = scanSeparator(line, cursor);
|
|
315
|
+
if (next === void 0) return void 0;
|
|
316
|
+
cursor = next;
|
|
317
|
+
}
|
|
318
|
+
};
|
|
319
|
+
/**
|
|
320
|
+
* The list a whole line carries under either keyword set, or `Option.none()`.
|
|
321
|
+
*
|
|
322
|
+
* @remarks
|
|
323
|
+
* Accepts the nine closing keywords plus {@link REFERENCE_KEYWORDS}, and
|
|
324
|
+
* reports which set matched in the result's `closing` flag. Grammar,
|
|
325
|
+
* whole-line posture and the whole-line rejection of unsafe issue numbers
|
|
326
|
+
* are in the module remarks.
|
|
327
|
+
*
|
|
328
|
+
* @public
|
|
329
|
+
*/
|
|
330
|
+
const parseReferenceList = (line) => {
|
|
331
|
+
const trimmed = line.trim();
|
|
332
|
+
let letters = 0;
|
|
333
|
+
while (letters < trimmed.length && isAsciiLetter(trimmed.charCodeAt(letters))) letters += 1;
|
|
334
|
+
if (letters === 0) return effect.Option.none();
|
|
335
|
+
const keyword = trimmed.slice(0, letters).toLowerCase();
|
|
336
|
+
if (!ALL_KEYWORDS.has(keyword)) return effect.Option.none();
|
|
337
|
+
let cursor = letters;
|
|
338
|
+
if (trimmed.charCodeAt(cursor) === COLON) cursor += 1;
|
|
339
|
+
const afterWhitespace = skipSpaceTab(trimmed, cursor);
|
|
340
|
+
if (afterWhitespace === cursor) return effect.Option.none();
|
|
341
|
+
const issueNumbers = parseItems(trimmed, afterWhitespace);
|
|
342
|
+
if (issueNumbers === void 0) return effect.Option.none();
|
|
343
|
+
return effect.Option.some({
|
|
344
|
+
keyword,
|
|
345
|
+
closing: CLOSING_SET.has(keyword),
|
|
346
|
+
issueNumbers
|
|
347
|
+
});
|
|
348
|
+
};
|
|
349
|
+
/**
|
|
350
|
+
* Every reference list a text carries, line by line, across both postures.
|
|
351
|
+
*
|
|
352
|
+
* @remarks
|
|
353
|
+
* The trailer/prose interleave consumers otherwise hand-roll: each line is
|
|
354
|
+
* tried as a whole-line reference list first ({@link parseReferenceList} —
|
|
355
|
+
* colon-tolerant, per the line dialect), and only a line that is not one is
|
|
356
|
+
* harvested inline ({@link harvestReferenceLists} — no colon, per the inline
|
|
357
|
+
* dialect). The preference means a colon-less trailer line contributes its
|
|
358
|
+
* list exactly once, never once per posture.
|
|
359
|
+
*
|
|
360
|
+
* Results carry no offsets, deliberately: this is the line-granular
|
|
361
|
+
* composition, and a consumer that needs spans uses
|
|
362
|
+
* {@link harvestReferenceLists} directly. Duplicates are preserved, in
|
|
363
|
+
* document order.
|
|
364
|
+
*
|
|
365
|
+
* @public
|
|
366
|
+
*/
|
|
367
|
+
const collectReferenceLists = (text) => {
|
|
368
|
+
const lists = [];
|
|
369
|
+
for (const line of text.split("\n")) {
|
|
370
|
+
const whole = parseReferenceList(line);
|
|
371
|
+
if (effect.Option.isSome(whole)) {
|
|
372
|
+
lists.push(whole.value);
|
|
373
|
+
continue;
|
|
374
|
+
}
|
|
375
|
+
for (const harvested of harvestReferenceLists(line)) lists.push({
|
|
376
|
+
keyword: harvested.keyword,
|
|
377
|
+
closing: harvested.closing,
|
|
378
|
+
issueNumbers: harvested.issueNumbers
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
return lists;
|
|
382
|
+
};
|
|
383
|
+
/** `[A-Za-z0-9_]` — the word-boundary alphabet the inline dialects use. */
|
|
384
|
+
const isWordChar = (code) => isAsciiLetter(code) || isDigit$2(code) || code === 95;
|
|
385
|
+
/**
|
|
386
|
+
* The full JavaScript `\s` set, spelled as a predicate so the module keeps
|
|
387
|
+
* its no-regex promise: ASCII whitespace, NEL-adjacent controls, and the
|
|
388
|
+
* Unicode space separators. Only the keyword→first-item gap of
|
|
389
|
+
* {@link harvestReferenceLists} admits this set — everything inside a list
|
|
390
|
+
* stays `[ \t]`, per the module remarks.
|
|
391
|
+
*/
|
|
392
|
+
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;
|
|
393
|
+
/**
|
|
394
|
+
* Every reference list found inline in `text`, in document order.
|
|
395
|
+
*
|
|
396
|
+
* @remarks
|
|
397
|
+
* The inline-in-prose posture generalized to lists:
|
|
398
|
+
* `Closes #123, Fixes #456` in one line of a commit body yields two
|
|
399
|
+
* single-item lists, where
|
|
400
|
+
* `harvestIssueReferences` reads only the first reference of each and the
|
|
401
|
+
* whole-line parsers read neither. The grammar per candidate:
|
|
402
|
+
*
|
|
403
|
+
* - The keyword is case-insensitive, drawn from either keyword set,
|
|
404
|
+
* lowercased to canonical form in the result, with `closing` reported by
|
|
405
|
+
* set membership. Word boundaries hold on both sides: the characters
|
|
406
|
+
* immediately before and after the keyword's letter run must not be
|
|
407
|
+
* `[A-Za-z0-9_]`, so `recloses #1` and `1closes #1` do not match.
|
|
408
|
+
* - **No colon** — exactly like `harvestIssueReferences`, the colon spelling
|
|
409
|
+
* belongs to the line dialects ({@link parseReferenceList} and the
|
|
410
|
+
* bare-line parser), so `closes: #1` inline yields nothing.
|
|
411
|
+
* - The keyword→first-item gap is any run of whitespace **including
|
|
412
|
+
* newlines**, mirroring the inline dialect's `\s+`.
|
|
413
|
+
* - List continuation uses the `,` / `and` / Oxford separators with `[ \t]`
|
|
414
|
+
* whitespace only, so a list cannot continue past a newline — a later
|
|
415
|
+
* line makes its own claims.
|
|
416
|
+
* - Items are `#<digits>`; duplicates are preserved in order.
|
|
417
|
+
*
|
|
418
|
+
* A list ends at its last valid item: in `closes #1 and fixes #2` the
|
|
419
|
+
* ` and ` before `fixes` fails as a separator because what follows is not
|
|
420
|
+
* `#`, so the text yields `closes: [1]` then `fixes: [2]`. An item past
|
|
421
|
+
* `Number.MAX_SAFE_INTEGER` anywhere in a candidate skips the **entire**
|
|
422
|
+
* candidate — never a partial list, for the same reason
|
|
423
|
+
* {@link parseReferenceList} rejects the whole line — and scanning resumes
|
|
424
|
+
* after the candidate's scanned extent.
|
|
425
|
+
*
|
|
426
|
+
* Like everything in this module, the harvest is a single left-to-right
|
|
427
|
+
* character scan with no regular expressions, so time stays linear in the
|
|
428
|
+
* text length and no input is truncated.
|
|
429
|
+
*
|
|
430
|
+
* @public
|
|
431
|
+
*/
|
|
432
|
+
const harvestReferenceLists = (text) => {
|
|
433
|
+
const lists = [];
|
|
434
|
+
let index = 0;
|
|
435
|
+
while (index < text.length) {
|
|
436
|
+
if (!isAsciiLetter(text.charCodeAt(index))) {
|
|
437
|
+
index += 1;
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
440
|
+
const runStart = index;
|
|
441
|
+
let runEnd = index + 1;
|
|
442
|
+
while (runEnd < text.length && isAsciiLetter(text.charCodeAt(runEnd))) runEnd += 1;
|
|
443
|
+
if (runStart > 0 && isWordChar(text.charCodeAt(runStart - 1)) || runEnd < text.length && isWordChar(text.charCodeAt(runEnd))) {
|
|
444
|
+
index = runEnd;
|
|
445
|
+
continue;
|
|
446
|
+
}
|
|
447
|
+
const keyword = text.slice(runStart, runEnd).toLowerCase();
|
|
448
|
+
if (!ALL_KEYWORDS.has(keyword)) {
|
|
449
|
+
index = runEnd;
|
|
450
|
+
continue;
|
|
451
|
+
}
|
|
452
|
+
let cursor = runEnd;
|
|
453
|
+
while (cursor < text.length && isAnyWhitespace(text.charCodeAt(cursor))) cursor += 1;
|
|
454
|
+
const first = cursor === runEnd ? void 0 : readItem(text, cursor);
|
|
455
|
+
if (first === void 0) {
|
|
456
|
+
index = runEnd;
|
|
457
|
+
continue;
|
|
458
|
+
}
|
|
459
|
+
if (first.kind === "unsafe") {
|
|
460
|
+
index = first.next;
|
|
461
|
+
continue;
|
|
462
|
+
}
|
|
463
|
+
const issueNumbers = [first.value];
|
|
464
|
+
let end = first.next;
|
|
465
|
+
let unsafeNext;
|
|
466
|
+
for (;;) {
|
|
467
|
+
const next = scanSeparator(text, end);
|
|
468
|
+
if (next === void 0) break;
|
|
469
|
+
const item = readItem(text, next);
|
|
470
|
+
if (item === void 0) break;
|
|
471
|
+
if (item.kind === "unsafe") {
|
|
472
|
+
unsafeNext = item.next;
|
|
473
|
+
break;
|
|
474
|
+
}
|
|
475
|
+
issueNumbers.push(item.value);
|
|
476
|
+
end = item.next;
|
|
477
|
+
}
|
|
478
|
+
if (unsafeNext !== void 0) {
|
|
479
|
+
index = unsafeNext;
|
|
480
|
+
continue;
|
|
481
|
+
}
|
|
482
|
+
lists.push({
|
|
483
|
+
keyword,
|
|
484
|
+
closing: CLOSING_SET.has(keyword),
|
|
485
|
+
issueNumbers,
|
|
486
|
+
start: runStart,
|
|
487
|
+
end
|
|
488
|
+
});
|
|
489
|
+
index = end;
|
|
490
|
+
}
|
|
491
|
+
return lists;
|
|
492
|
+
};
|
|
493
|
+
//#endregion
|
|
494
|
+
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/KeywordFamily.js
|
|
495
|
+
/**
|
|
496
|
+
* The projection table IS the totality proof: `Record` over the union of
|
|
497
|
+
* both keyword types makes a keyword added to either constant without an
|
|
498
|
+
* entry here fail to compile.
|
|
499
|
+
*/
|
|
500
|
+
const FAMILIES = {
|
|
501
|
+
close: "close",
|
|
502
|
+
closes: "close",
|
|
503
|
+
closed: "close",
|
|
504
|
+
fix: "fix",
|
|
505
|
+
fixes: "fix",
|
|
506
|
+
fixed: "fix",
|
|
507
|
+
resolve: "resolve",
|
|
508
|
+
resolves: "resolve",
|
|
509
|
+
resolved: "resolve",
|
|
510
|
+
ref: "ref",
|
|
511
|
+
refs: "ref",
|
|
512
|
+
references: "ref"
|
|
513
|
+
};
|
|
514
|
+
/**
|
|
515
|
+
* The family a keyword belongs to.
|
|
516
|
+
*
|
|
517
|
+
* @remarks
|
|
518
|
+
* Total over both keyword sets by construction — see the module remarks for
|
|
519
|
+
* why an explicit record beats a `startsWith` heuristic. `close`, `closes`
|
|
520
|
+
* and `closed` map to `"close"`; the `fix` and `resolve` conjugations
|
|
521
|
+
* likewise; `ref`, `refs` and `references` map to `"ref"`. The evidence for
|
|
522
|
+
* the projection is downstream: categorized harvesters key maps by family,
|
|
523
|
+
* and each was hand-rolling this collapse.
|
|
524
|
+
*
|
|
525
|
+
* @public
|
|
526
|
+
*/
|
|
527
|
+
const keywordFamily = (keyword) => FAMILIES[keyword];
|
|
528
|
+
//#endregion
|
|
529
|
+
//#region ../silk-core/dist/dev/pkg/schemas/VersioningSchemas.js
|
|
96
530
|
/**
|
|
97
531
|
* Configuration for how private packages are handled during versioning.
|
|
98
532
|
*
|
|
@@ -164,7 +598,7 @@ const ChangesetConfigFile = effect.Schema.Struct({
|
|
|
164
598
|
*
|
|
165
599
|
* @remarks
|
|
166
600
|
* Extends {@link (ChangesetConfigFile:type)} with a `_isSilk` marker flag that is automatically
|
|
167
|
-
* set to `true`. Detected by
|
|
601
|
+
* set to `true`. Detected by `ChangesetConfigReader` when the `changelog` field
|
|
168
602
|
* references `@savvy-web/changesets`.
|
|
169
603
|
*
|
|
170
604
|
* @since 0.1.0
|
|
@@ -175,6 +609,25 @@ const SilkChangesetConfigFile = effect.Schema.Struct({
|
|
|
175
609
|
_isSilk: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefaultType(effect.Effect.succeed(true)), effect.Schema.withConstructorDefault(effect.Effect.succeed(true)))
|
|
176
610
|
});
|
|
177
611
|
//#endregion
|
|
612
|
+
//#region ../silk-core/dist/dev/pkg/utils/TrailingSlash.js
|
|
613
|
+
/**
|
|
614
|
+
* Trim trailing slashes from a string.
|
|
615
|
+
*
|
|
616
|
+
* @remarks
|
|
617
|
+
* Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
|
|
618
|
+
* unanchored at the start, so the engine retries the match from every position
|
|
619
|
+
* and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
|
|
620
|
+
* Only a trailing run of slashes is removed; interior slash runs are untouched.
|
|
621
|
+
*
|
|
622
|
+
* @since 0.1.0
|
|
623
|
+
* @public
|
|
624
|
+
*/
|
|
625
|
+
const trimTrailingSlashes = (s) => {
|
|
626
|
+
let end = s.length;
|
|
627
|
+
while (end > 0 && s[end - 1] === "/") end -= 1;
|
|
628
|
+
return s.slice(0, end);
|
|
629
|
+
};
|
|
630
|
+
//#endregion
|
|
178
631
|
//#region ../silk-effects/dist/dev/pkg/services/ChangesetConfigReader.js
|
|
179
632
|
/**
|
|
180
633
|
* Substrings that identify a Silk changelog adapter entry in `.changeset/config.json`.
|
|
@@ -204,8 +657,8 @@ function isSilkChangelog(changelog) {
|
|
|
204
657
|
*
|
|
205
658
|
* @remarks
|
|
206
659
|
* Automatically detects whether the config uses the Silk changelog adapter
|
|
207
|
-
* (`@savvy-web/changesets`) and decodes as
|
|
208
|
-
* standard
|
|
660
|
+
* (`@savvy-web/changesets`) and decodes as `SilkChangesetConfigFile` or the
|
|
661
|
+
* standard `ChangesetConfigFile` accordingly.
|
|
209
662
|
*
|
|
210
663
|
* @example
|
|
211
664
|
* ```typescript
|
|
@@ -283,32 +736,6 @@ var ChangesetConfigReader = class extends effect.Context.Service()("@savvy-web/s
|
|
|
283
736
|
}));
|
|
284
737
|
};
|
|
285
738
|
//#endregion
|
|
286
|
-
//#region ../silk-effects/dist/dev/pkg/errors/PublishTargetBindingError.js
|
|
287
|
-
/**
|
|
288
|
-
* Raised when publishability detection selects a directory that the package's
|
|
289
|
-
* `dist/prod/targets.json` binding does not describe.
|
|
290
|
-
*
|
|
291
|
-
* @remarks
|
|
292
|
-
* The bundler's prod build writes `targets.json` naming every byte-group
|
|
293
|
-
* directory it produced. Once that binding exists it is authoritative: the only
|
|
294
|
-
* directories whose bytes may be published are the ones it lists. A detector
|
|
295
|
-
* that returns anything else — most often `publishConfig.directory` pointing at
|
|
296
|
-
* a **dev** build, because silk mode was misdetected — is about to pack an
|
|
297
|
-
* unresolved workspace manifest and ship it to a registry.
|
|
298
|
-
*
|
|
299
|
-
* That is the `yaml-effect@0.7.1` failure: detection picked `dist/dev/pkg`, the
|
|
300
|
-
* dev manifest still carried `catalog:` specifiers, and the published package
|
|
301
|
-
* was uninstallable (`EUNSUPPORTEDPROTOCOL`).
|
|
302
|
-
*
|
|
303
|
-
* @since 3.1.0
|
|
304
|
-
* @public
|
|
305
|
-
*/
|
|
306
|
-
var PublishTargetBindingError = class extends effect.Data.TaggedError("PublishTargetBindingError") {
|
|
307
|
-
get message() {
|
|
308
|
-
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.`;
|
|
309
|
-
}
|
|
310
|
-
};
|
|
311
|
-
//#endregion
|
|
312
739
|
//#region ../silk-effects/dist/dev/pkg/services/ChangesetConfig.js
|
|
313
740
|
const isSilk = (cfg) => "_isSilk" in cfg && cfg._isSilk === true;
|
|
314
741
|
/**
|
|
@@ -385,22 +812,6 @@ var ChangesetConfig = class ChangesetConfig extends effect.Context.Service()("@s
|
|
|
385
812
|
}));
|
|
386
813
|
};
|
|
387
814
|
//#endregion
|
|
388
|
-
//#region ../silk-effects/dist/dev/pkg/utils/TrailingSlash.js
|
|
389
|
-
/**
|
|
390
|
-
* Trim trailing slashes from a string.
|
|
391
|
-
*
|
|
392
|
-
* @remarks
|
|
393
|
-
* Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
|
|
394
|
-
* unanchored at the start, so the engine retries the match from every position
|
|
395
|
-
* and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
|
|
396
|
-
* Only a trailing run of slashes is removed; interior slash runs are untouched.
|
|
397
|
-
*/
|
|
398
|
-
const trimTrailingSlashes = (s) => {
|
|
399
|
-
let end = s.length;
|
|
400
|
-
while (end > 0 && s[end - 1] === "/") end -= 1;
|
|
401
|
-
return s.slice(0, end);
|
|
402
|
-
};
|
|
403
|
-
//#endregion
|
|
404
815
|
//#region ../silk-effects/dist/dev/pkg/services/SilkPublishability.js
|
|
405
816
|
const NPM_DEFAULT = "https://registry.npmjs.org/";
|
|
406
817
|
/**
|
|
@@ -523,7 +934,7 @@ var SilkPublishability = class SilkPublishability {
|
|
|
523
934
|
* directories it names. A directory outside the binding means detection did
|
|
524
935
|
* not select the prod output — the `yaml-effect@0.7.1` shape, where a dev
|
|
525
936
|
* manifest carrying `catalog:` specifiers was packed and published. Rather
|
|
526
|
-
* than ship those bytes, fail with
|
|
937
|
+
* than ship those bytes, fail with `PublishTargetBindingError`.
|
|
527
938
|
*
|
|
528
939
|
* Before the prod build runs there is no binding, and the detector's
|
|
529
940
|
* placeholder directories are left alone.
|
|
@@ -2651,6 +3062,66 @@ function makeGitHubTest(responses) {
|
|
|
2651
3062
|
} });
|
|
2652
3063
|
}
|
|
2653
3064
|
//#endregion
|
|
3065
|
+
//#region ../silk-effects/dist/dev/pkg/changesets/utils/logger.js
|
|
3066
|
+
/**
|
|
3067
|
+
* Warning output for changelog generation, parameterised by a
|
|
3068
|
+
* {@link ChangesetLogMode} reference instead of an ambient environment read.
|
|
3069
|
+
*
|
|
3070
|
+
* @remarks
|
|
3071
|
+
* This module is engine code shared by every front end, so it must not read
|
|
3072
|
+
* `process` — a `process.env` read here would bake one host's environment
|
|
3073
|
+
* into every other. The mode is a `Context.Reference` with a default of
|
|
3074
|
+
* `"stderr"`; a front end that knows it runs under GitHub Actions or a test
|
|
3075
|
+
* runner provides `"github"` or `"silent"` from its own `process.env` read.
|
|
3076
|
+
*
|
|
3077
|
+
* @packageDocumentation
|
|
3078
|
+
*/
|
|
3079
|
+
/**
|
|
3080
|
+
* The reference that selects the {@link ChangesetLogModeValue}.
|
|
3081
|
+
*
|
|
3082
|
+
* @remarks
|
|
3083
|
+
* Defaults to `"stderr"` when no front end provides it, so a program that
|
|
3084
|
+
* never touches the reference still reports. Provide with
|
|
3085
|
+
* `Layer.succeed(ChangesetLogMode, "github")` or
|
|
3086
|
+
* `Effect.provideService(ChangesetLogMode, "silent")`.
|
|
3087
|
+
*
|
|
3088
|
+
* @example
|
|
3089
|
+
* ```typescript
|
|
3090
|
+
* import { Effect } from "effect";
|
|
3091
|
+
* import { Changesets } from "\@savvy-web/silk-effects";
|
|
3092
|
+
*
|
|
3093
|
+
* const mode = process.env.GITHUB_ACTIONS === "true" ? "github" : "stderr";
|
|
3094
|
+
* program.pipe(Effect.provideService(Changesets.ChangesetLogMode, mode));
|
|
3095
|
+
* ```
|
|
3096
|
+
*
|
|
3097
|
+
* @public
|
|
3098
|
+
*/
|
|
3099
|
+
const ChangesetLogMode = effect.Context.Reference("@savvy-web/silk-effects/Changesets/ChangesetLogMode", { defaultValue: () => "stderr" });
|
|
3100
|
+
/**
|
|
3101
|
+
* Log a warning message according to the {@link ChangesetLogMode} in context.
|
|
3102
|
+
*
|
|
3103
|
+
* @param message - The warning message
|
|
3104
|
+
* @param args - Additional arguments (concatenated with a space in `"github"` mode)
|
|
3105
|
+
* @returns An `Effect` that never fails
|
|
3106
|
+
*
|
|
3107
|
+
* @internal
|
|
3108
|
+
*/
|
|
3109
|
+
function logWarning(message, ...args) {
|
|
3110
|
+
return effect.Effect.gen(function* () {
|
|
3111
|
+
switch (yield* ChangesetLogMode) {
|
|
3112
|
+
case "silent": return;
|
|
3113
|
+
case "github": {
|
|
3114
|
+
const text = args.length > 0 ? `${message} ${args.join(" ")}` : message;
|
|
3115
|
+
console.warn(`::warning::${text}`);
|
|
3116
|
+
return;
|
|
3117
|
+
}
|
|
3118
|
+
case "stderr":
|
|
3119
|
+
console.warn(message, ...args);
|
|
3120
|
+
return;
|
|
3121
|
+
}
|
|
3122
|
+
});
|
|
3123
|
+
}
|
|
3124
|
+
//#endregion
|
|
2654
3125
|
//#region ../silk-effects/dist/dev/pkg/changesets/schemas/primitives.js
|
|
2655
3126
|
/**
|
|
2656
3127
|
* Primitive reusable schemas for common constrained types.
|
|
@@ -3963,7 +4434,7 @@ function evaluateNode(node, depth) {
|
|
|
3963
4434
|
//#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/internal/scanner.js
|
|
3964
4435
|
const isWhitespace = (ch) => ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 65279;
|
|
3965
4436
|
const isLineBreak$1 = (ch) => ch === 10 || ch === 13 || ch === 8232 || ch === 8233;
|
|
3966
|
-
const isDigit$
|
|
4437
|
+
const isDigit$1 = (ch) => ch >= 48 && ch <= 57;
|
|
3967
4438
|
/**
|
|
3968
4439
|
* Create a stateful {@link Scanner} for the given JSONC string.
|
|
3969
4440
|
*
|
|
@@ -4068,31 +4539,31 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
|
|
|
4068
4539
|
if (text.charCodeAt(pos) === 45) pos++;
|
|
4069
4540
|
if (text.charCodeAt(pos) === 48) pos++;
|
|
4070
4541
|
else {
|
|
4071
|
-
if (!isDigit$
|
|
4542
|
+
if (!isDigit$1(text.charCodeAt(pos))) {
|
|
4072
4543
|
tokenError = "UnexpectedEndOfNumber";
|
|
4073
4544
|
return text.substring(start, pos);
|
|
4074
4545
|
}
|
|
4075
4546
|
pos++;
|
|
4076
|
-
while (pos < len && isDigit$
|
|
4547
|
+
while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
|
|
4077
4548
|
}
|
|
4078
4549
|
if (pos < len && text.charCodeAt(pos) === 46) {
|
|
4079
4550
|
pos++;
|
|
4080
|
-
if (!isDigit$
|
|
4551
|
+
if (!isDigit$1(text.charCodeAt(pos))) {
|
|
4081
4552
|
tokenError = "UnexpectedEndOfNumber";
|
|
4082
4553
|
return text.substring(start, pos);
|
|
4083
4554
|
}
|
|
4084
4555
|
pos++;
|
|
4085
|
-
while (pos < len && isDigit$
|
|
4556
|
+
while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
|
|
4086
4557
|
}
|
|
4087
4558
|
if (pos < len && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) {
|
|
4088
4559
|
pos++;
|
|
4089
4560
|
if (pos < len && (text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45)) pos++;
|
|
4090
|
-
if (!isDigit$
|
|
4561
|
+
if (!isDigit$1(text.charCodeAt(pos))) {
|
|
4091
4562
|
tokenError = "UnexpectedEndOfNumber";
|
|
4092
4563
|
return text.substring(start, pos);
|
|
4093
4564
|
}
|
|
4094
4565
|
pos++;
|
|
4095
|
-
while (pos < len && isDigit$
|
|
4566
|
+
while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
|
|
4096
4567
|
}
|
|
4097
4568
|
return text.substring(start, pos);
|
|
4098
4569
|
};
|
|
@@ -4198,7 +4669,7 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
|
|
|
4198
4669
|
return token;
|
|
4199
4670
|
}
|
|
4200
4671
|
case 45:
|
|
4201
|
-
if (pos + 1 < len && isDigit$
|
|
4672
|
+
if (pos + 1 < len && isDigit$1(text.charCodeAt(pos + 1))) {
|
|
4202
4673
|
tokenValue = scanNumber();
|
|
4203
4674
|
token = "Number";
|
|
4204
4675
|
return token;
|
|
@@ -4209,7 +4680,7 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
|
|
|
4209
4680
|
tokenError = "InvalidSymbol";
|
|
4210
4681
|
return token;
|
|
4211
4682
|
default:
|
|
4212
|
-
if (isDigit$
|
|
4683
|
+
if (isDigit$1(ch)) {
|
|
4213
4684
|
tokenValue = scanNumber();
|
|
4214
4685
|
token = "Number";
|
|
4215
4686
|
return token;
|
|
@@ -30980,414 +31451,6 @@ function parseCommitMessage(message) {
|
|
|
30980
31451
|
return { description: message };
|
|
30981
31452
|
}
|
|
30982
31453
|
//#endregion
|
|
30983
|
-
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/IssueReferences.js
|
|
30984
|
-
/**
|
|
30985
|
-
* GitHub's closing-keyword issue-reference grammar, as pure functions.
|
|
30986
|
-
*
|
|
30987
|
-
* @remarks
|
|
30988
|
-
* GitHub links an issue to a pull request when the PR's description carries
|
|
30989
|
-
* `<keyword> #<number>` for one of nine documented keywords. Consumers speak
|
|
30990
|
-
* that grammar in two distinct dialects, and this module models exactly those
|
|
30991
|
-
* two — no service, no layer, nothing but strings in and values out:
|
|
30992
|
-
*
|
|
30993
|
-
* - **Inline-in-prose** ({@link harvestIssueReferences}): a reference may appear anywhere in
|
|
30994
|
-
* running text — `"fixes #12 and closes #13"` — with mandatory whitespace
|
|
30995
|
-
* and **no colon**, because that is the spelling GitHub itself scans PR
|
|
30996
|
-
* bodies for. This is the dialect a release pipeline harvests from commit
|
|
30997
|
-
* subjects and PR descriptions.
|
|
30998
|
-
* - **Bare-line** ({@link parseBareLineReference}): the whole line, after trimming, *is*
|
|
30999
|
-
* the reference — `"Closes: #12"` — with an **optional colon**, because a
|
|
31000
|
-
* generated references region writes one reference per line and a colon
|
|
31001
|
-
* reads better there. GitHub does not require the colon; the region format
|
|
31002
|
-
* allows it, so the parser must too. The dialects differ because their
|
|
31003
|
-
* producers do: prose is written by humans for GitHub's scanner, the region
|
|
31004
|
-
* is written by tooling for humans.
|
|
31005
|
-
*
|
|
31006
|
-
* Deliberately out of scope this round: cross-repo references
|
|
31007
|
-
* (`owner/repo#N`) and full-URL references
|
|
31008
|
-
* (`https://github.com/owner/repo/issues/N`). Both are real GitHub spellings;
|
|
31009
|
-
* neither dialect's consumers emit them yet, and guessing at their shape here
|
|
31010
|
-
* would freeze an API nobody has driven.
|
|
31011
|
-
*/
|
|
31012
|
-
/**
|
|
31013
|
-
* The nine closing keywords GitHub documents, lowercased.
|
|
31014
|
-
*
|
|
31015
|
-
* @public
|
|
31016
|
-
*/
|
|
31017
|
-
const CLOSING_KEYWORDS = [
|
|
31018
|
-
"close",
|
|
31019
|
-
"closes",
|
|
31020
|
-
"closed",
|
|
31021
|
-
"fix",
|
|
31022
|
-
"fixes",
|
|
31023
|
-
"fixed",
|
|
31024
|
-
"resolve",
|
|
31025
|
-
"resolves",
|
|
31026
|
-
"resolved"
|
|
31027
|
-
];
|
|
31028
|
-
/**
|
|
31029
|
-
* Both patterns derive from {@link CLOSING_KEYWORDS} so the constant and the
|
|
31030
|
-
* grammar cannot drift. Alternation order is safe: the regex engine backtracks
|
|
31031
|
-
* through alternatives, so `close` matching inside `closes` fails at the
|
|
31032
|
-
* mandatory `#`-introducer and retries the longer keyword.
|
|
31033
|
-
*/
|
|
31034
|
-
const KEYWORDS = CLOSING_KEYWORDS.join("|");
|
|
31035
|
-
new RegExp(`\\b(${KEYWORDS})\\s+#(\\d+)`, "gi");
|
|
31036
|
-
new RegExp(`^(${KEYWORDS}):?[ \\t]+#(\\d+)$`, "i");
|
|
31037
|
-
//#endregion
|
|
31038
|
-
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/ClosingList.js
|
|
31039
|
-
/**
|
|
31040
|
-
* The closing-list dialect: one whole line naming several issues at once.
|
|
31041
|
-
*
|
|
31042
|
-
* @remarks
|
|
31043
|
-
* The third dialect, alongside the two in `IssueReferences`: after trimming,
|
|
31044
|
-
* the **entire** line must be `<keyword>[:] <list>` — keyword
|
|
31045
|
-
* case-insensitive (lowercased to canonical form in the result), colon
|
|
31046
|
-
* optional, and the list one or more `#<digits>` items separated by `,`,
|
|
31047
|
-
* `and`, or the Oxford `, and`. Whitespace inside the line is `[ \t]` only,
|
|
31048
|
-
* so an embedded newline cannot smuggle two lines past a parser whose
|
|
31049
|
-
* contract is one — the same posture as the bare-line pattern. Any trailing
|
|
31050
|
-
* content after the list rejects the line; duplicates are preserved in order,
|
|
31051
|
-
* because whether `#1, #1` means one issue or two is the caller's business.
|
|
31052
|
-
*
|
|
31053
|
-
* Two keyword sets play here. {@link parseClosingList} accepts only the nine
|
|
31054
|
-
* closing keywords and yields a {@link ClosingList}; {@link parseReferenceList}
|
|
31055
|
-
* additionally accepts the non-closing {@link REFERENCE_KEYWORDS} (`ref`,
|
|
31056
|
-
* `refs`, `references`) and reports which set matched via
|
|
31057
|
-
* {@link ReferenceList}'s `closing` flag.
|
|
31058
|
-
*
|
|
31059
|
-
* An item whose digits exceed `Number.MAX_SAFE_INTEGER` rejects the **whole
|
|
31060
|
-
* line**, where `harvestIssueReferences` merely skips the one match. The
|
|
31061
|
-
* asymmetry is deliberate: a harvest drops one reference out of running
|
|
31062
|
-
* prose, but a list line is a single claim about a set of issues, and
|
|
31063
|
-
* returning the parseable subset would misrepresent the line as claiming
|
|
31064
|
-
* less than it does.
|
|
31065
|
-
*
|
|
31066
|
-
* Complexity posture: parsing is a single left-to-right character scan —
|
|
31067
|
-
* this module contains **no regular expressions at all** — so worst-case
|
|
31068
|
-
* time is linear in the line length by construction. There is no
|
|
31069
|
-
* backtracking engine to feed, no polynomial blow-up for a scanner to flag,
|
|
31070
|
-
* and therefore no input truncation.
|
|
31071
|
-
*
|
|
31072
|
-
* Beyond the whole-line parsers, {@link harvestReferenceLists} generalizes
|
|
31073
|
-
* the same list grammar to the inline-in-prose posture — several lists on
|
|
31074
|
-
* one line of running text — and {@link parseClosingLists} /
|
|
31075
|
-
* {@link parseReferenceLists} apply the whole-line parsers per line of a
|
|
31076
|
-
* multi-line text. All of them ride the same character scan; the no-regex
|
|
31077
|
-
* promise above covers every export here.
|
|
31078
|
-
*/
|
|
31079
|
-
/**
|
|
31080
|
-
* The non-closing reference keywords the list dialect accepts, lowercased.
|
|
31081
|
-
*
|
|
31082
|
-
* @remarks
|
|
31083
|
-
* GitHub does not act on these — they associate without closing — but a
|
|
31084
|
-
* references region writes them, so the parser must read them.
|
|
31085
|
-
*
|
|
31086
|
-
* @public
|
|
31087
|
-
*/
|
|
31088
|
-
const REFERENCE_KEYWORDS = [
|
|
31089
|
-
"ref",
|
|
31090
|
-
"refs",
|
|
31091
|
-
"references"
|
|
31092
|
-
];
|
|
31093
|
-
/**
|
|
31094
|
-
* Both keyword tables ARE the exported constants — membership sets built from
|
|
31095
|
-
* them once — so the constants and the grammar cannot drift.
|
|
31096
|
-
*/
|
|
31097
|
-
const ALL_KEYWORDS = /* @__PURE__ */ new Set([...CLOSING_KEYWORDS, ...REFERENCE_KEYWORDS]);
|
|
31098
|
-
/** Membership test for reporting `closing`, widened once so no call casts. */
|
|
31099
|
-
const CLOSING_SET = new Set(CLOSING_KEYWORDS);
|
|
31100
|
-
const HASH = 35;
|
|
31101
|
-
const COLON = 58;
|
|
31102
|
-
const COMMA = 44;
|
|
31103
|
-
/** `[ \t]` — the only whitespace the dialect admits, per the module remarks. */
|
|
31104
|
-
const isSpaceTab = (code) => code === 32 || code === 9;
|
|
31105
|
-
const isDigit$1 = (code) => code >= 48 && code <= 57;
|
|
31106
|
-
const isAsciiLetter = (code) => code >= 65 && code <= 90 || code >= 97 && code <= 122;
|
|
31107
|
-
/** The index after the run of `[ \t]` starting at `from` (possibly `from` itself). */
|
|
31108
|
-
const skipSpaceTab = (line, from) => {
|
|
31109
|
-
let index = from;
|
|
31110
|
-
while (index < line.length && isSpaceTab(line.charCodeAt(index))) index += 1;
|
|
31111
|
-
return index;
|
|
31112
|
-
};
|
|
31113
|
-
/**
|
|
31114
|
-
* One list item at exactly `from`: `#<digits>` and the index one past it.
|
|
31115
|
-
* Digits exceeding `Number.MAX_SAFE_INTEGER` report `"unsafe"` rather than a
|
|
31116
|
-
* silently rounded issue number, still carrying the index one past the digit
|
|
31117
|
-
* run so a caller can skip the item's extent; the whole-line parsers reject
|
|
31118
|
-
* on it and {@link harvestReferenceLists} abandons the entire candidate —
|
|
31119
|
-
* see the module remarks for why a list never yields a partial reading.
|
|
31120
|
-
* Anything that is not `#<digits>` at all is `undefined`.
|
|
31121
|
-
*/
|
|
31122
|
-
const readItem = (line, from) => {
|
|
31123
|
-
if (line.charCodeAt(from) !== HASH) return void 0;
|
|
31124
|
-
const start = from + 1;
|
|
31125
|
-
let index = start;
|
|
31126
|
-
while (index < line.length && isDigit$1(line.charCodeAt(index))) index += 1;
|
|
31127
|
-
if (index === start) return void 0;
|
|
31128
|
-
const value = Number(line.slice(start, index));
|
|
31129
|
-
return Number.isSafeInteger(value) ? {
|
|
31130
|
-
kind: "item",
|
|
31131
|
-
value,
|
|
31132
|
-
next: index
|
|
31133
|
-
} : {
|
|
31134
|
-
kind: "unsafe",
|
|
31135
|
-
next: index
|
|
31136
|
-
};
|
|
31137
|
-
};
|
|
31138
|
-
/**
|
|
31139
|
-
* One separator at exactly `from`: a comma with optional surrounding `[ \t]`
|
|
31140
|
-
* and an optional Oxford `and` (consumed only when its own trailing `[ \t]+`
|
|
31141
|
-
* is present), or a bare `and` requiring `[ \t]+` on both sides. `and` is
|
|
31142
|
-
* lowercase-only — the keyword head is case-insensitive, the separator is
|
|
31143
|
-
* not. Returns the index where the next item must start, or `undefined` when
|
|
31144
|
-
* no separator is present.
|
|
31145
|
-
*/
|
|
31146
|
-
const scanSeparator = (line, from) => {
|
|
31147
|
-
const afterLeading = skipSpaceTab(line, from);
|
|
31148
|
-
if (line.charCodeAt(afterLeading) === COMMA) {
|
|
31149
|
-
const afterComma = skipSpaceTab(line, afterLeading + 1);
|
|
31150
|
-
if (line.startsWith("and", afterComma)) {
|
|
31151
|
-
const afterAnd = skipSpaceTab(line, afterComma + 3);
|
|
31152
|
-
if (afterAnd > afterComma + 3) return afterAnd;
|
|
31153
|
-
}
|
|
31154
|
-
return afterComma;
|
|
31155
|
-
}
|
|
31156
|
-
if (afterLeading > from && line.startsWith("and", afterLeading)) {
|
|
31157
|
-
const afterAnd = skipSpaceTab(line, afterLeading + 3);
|
|
31158
|
-
if (afterAnd > afterLeading + 3) return afterAnd;
|
|
31159
|
-
}
|
|
31160
|
-
};
|
|
31161
|
-
/**
|
|
31162
|
-
* The scan walk: item, then separator, then item, until the cursor stands
|
|
31163
|
-
* exactly at the end of the string. Anything else — a malformed item, an
|
|
31164
|
-
* unknown separator, trailing content, an unsafe issue number — is
|
|
31165
|
-
* `undefined`, and the caller rejects the whole line.
|
|
31166
|
-
*/
|
|
31167
|
-
const parseItems = (line, from) => {
|
|
31168
|
-
const issueNumbers = [];
|
|
31169
|
-
let cursor = from;
|
|
31170
|
-
for (;;) {
|
|
31171
|
-
const item = readItem(line, cursor);
|
|
31172
|
-
if (item === void 0 || item.kind === "unsafe") return void 0;
|
|
31173
|
-
issueNumbers.push(item.value);
|
|
31174
|
-
cursor = item.next;
|
|
31175
|
-
if (cursor === line.length) return issueNumbers;
|
|
31176
|
-
const next = scanSeparator(line, cursor);
|
|
31177
|
-
if (next === void 0) return void 0;
|
|
31178
|
-
cursor = next;
|
|
31179
|
-
}
|
|
31180
|
-
};
|
|
31181
|
-
/**
|
|
31182
|
-
* The list a whole line carries under either keyword set, or `Option.none()`.
|
|
31183
|
-
*
|
|
31184
|
-
* @remarks
|
|
31185
|
-
* Accepts the nine closing keywords plus {@link REFERENCE_KEYWORDS}, and
|
|
31186
|
-
* reports which set matched in the result's `closing` flag. Grammar,
|
|
31187
|
-
* whole-line posture and the whole-line rejection of unsafe issue numbers
|
|
31188
|
-
* are in the module remarks.
|
|
31189
|
-
*
|
|
31190
|
-
* @public
|
|
31191
|
-
*/
|
|
31192
|
-
const parseReferenceList = (line) => {
|
|
31193
|
-
const trimmed = line.trim();
|
|
31194
|
-
let letters = 0;
|
|
31195
|
-
while (letters < trimmed.length && isAsciiLetter(trimmed.charCodeAt(letters))) letters += 1;
|
|
31196
|
-
if (letters === 0) return effect.Option.none();
|
|
31197
|
-
const keyword = trimmed.slice(0, letters).toLowerCase();
|
|
31198
|
-
if (!ALL_KEYWORDS.has(keyword)) return effect.Option.none();
|
|
31199
|
-
let cursor = letters;
|
|
31200
|
-
if (trimmed.charCodeAt(cursor) === COLON) cursor += 1;
|
|
31201
|
-
const afterWhitespace = skipSpaceTab(trimmed, cursor);
|
|
31202
|
-
if (afterWhitespace === cursor) return effect.Option.none();
|
|
31203
|
-
const issueNumbers = parseItems(trimmed, afterWhitespace);
|
|
31204
|
-
if (issueNumbers === void 0) return effect.Option.none();
|
|
31205
|
-
return effect.Option.some({
|
|
31206
|
-
keyword,
|
|
31207
|
-
closing: CLOSING_SET.has(keyword),
|
|
31208
|
-
issueNumbers
|
|
31209
|
-
});
|
|
31210
|
-
};
|
|
31211
|
-
/**
|
|
31212
|
-
* Every reference list a text carries, line by line, across both postures.
|
|
31213
|
-
*
|
|
31214
|
-
* @remarks
|
|
31215
|
-
* The trailer/prose interleave consumers otherwise hand-roll: each line is
|
|
31216
|
-
* tried as a whole-line reference list first ({@link parseReferenceList} —
|
|
31217
|
-
* colon-tolerant, per the line dialect), and only a line that is not one is
|
|
31218
|
-
* harvested inline ({@link harvestReferenceLists} — no colon, per the inline
|
|
31219
|
-
* dialect). The preference means a colon-less trailer line contributes its
|
|
31220
|
-
* list exactly once, never once per posture.
|
|
31221
|
-
*
|
|
31222
|
-
* Results carry no offsets, deliberately: this is the line-granular
|
|
31223
|
-
* composition, and a consumer that needs spans uses
|
|
31224
|
-
* {@link harvestReferenceLists} directly. Duplicates are preserved, in
|
|
31225
|
-
* document order.
|
|
31226
|
-
*
|
|
31227
|
-
* @public
|
|
31228
|
-
*/
|
|
31229
|
-
const collectReferenceLists = (text) => {
|
|
31230
|
-
const lists = [];
|
|
31231
|
-
for (const line of text.split("\n")) {
|
|
31232
|
-
const whole = parseReferenceList(line);
|
|
31233
|
-
if (effect.Option.isSome(whole)) {
|
|
31234
|
-
lists.push(whole.value);
|
|
31235
|
-
continue;
|
|
31236
|
-
}
|
|
31237
|
-
for (const harvested of harvestReferenceLists(line)) lists.push({
|
|
31238
|
-
keyword: harvested.keyword,
|
|
31239
|
-
closing: harvested.closing,
|
|
31240
|
-
issueNumbers: harvested.issueNumbers
|
|
31241
|
-
});
|
|
31242
|
-
}
|
|
31243
|
-
return lists;
|
|
31244
|
-
};
|
|
31245
|
-
/** `[A-Za-z0-9_]` — the word-boundary alphabet the inline dialects use. */
|
|
31246
|
-
const isWordChar = (code) => isAsciiLetter(code) || isDigit$1(code) || code === 95;
|
|
31247
|
-
/**
|
|
31248
|
-
* The full JavaScript `\s` set, spelled as a predicate so the module keeps
|
|
31249
|
-
* its no-regex promise: ASCII whitespace, NEL-adjacent controls, and the
|
|
31250
|
-
* Unicode space separators. Only the keyword→first-item gap of
|
|
31251
|
-
* {@link harvestReferenceLists} admits this set — everything inside a list
|
|
31252
|
-
* stays `[ \t]`, per the module remarks.
|
|
31253
|
-
*/
|
|
31254
|
-
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;
|
|
31255
|
-
/**
|
|
31256
|
-
* Every reference list found inline in `text`, in document order.
|
|
31257
|
-
*
|
|
31258
|
-
* @remarks
|
|
31259
|
-
* The inline-in-prose posture generalized to lists:
|
|
31260
|
-
* `Closes #123, Fixes #456` in one line of a commit body yields two
|
|
31261
|
-
* single-item lists, where
|
|
31262
|
-
* `harvestIssueReferences` reads only the first reference of each and the
|
|
31263
|
-
* whole-line parsers read neither. The grammar per candidate:
|
|
31264
|
-
*
|
|
31265
|
-
* - The keyword is case-insensitive, drawn from either keyword set,
|
|
31266
|
-
* lowercased to canonical form in the result, with `closing` reported by
|
|
31267
|
-
* set membership. Word boundaries hold on both sides: the characters
|
|
31268
|
-
* immediately before and after the keyword's letter run must not be
|
|
31269
|
-
* `[A-Za-z0-9_]`, so `recloses #1` and `1closes #1` do not match.
|
|
31270
|
-
* - **No colon** — exactly like `harvestIssueReferences`, the colon spelling
|
|
31271
|
-
* belongs to the line dialects ({@link parseReferenceList} and the
|
|
31272
|
-
* bare-line parser), so `closes: #1` inline yields nothing.
|
|
31273
|
-
* - The keyword→first-item gap is any run of whitespace **including
|
|
31274
|
-
* newlines**, mirroring the inline dialect's `\s+`.
|
|
31275
|
-
* - List continuation uses the `,` / `and` / Oxford separators with `[ \t]`
|
|
31276
|
-
* whitespace only, so a list cannot continue past a newline — a later
|
|
31277
|
-
* line makes its own claims.
|
|
31278
|
-
* - Items are `#<digits>`; duplicates are preserved in order.
|
|
31279
|
-
*
|
|
31280
|
-
* A list ends at its last valid item: in `closes #1 and fixes #2` the
|
|
31281
|
-
* ` and ` before `fixes` fails as a separator because what follows is not
|
|
31282
|
-
* `#`, so the text yields `closes: [1]` then `fixes: [2]`. An item past
|
|
31283
|
-
* `Number.MAX_SAFE_INTEGER` anywhere in a candidate skips the **entire**
|
|
31284
|
-
* candidate — never a partial list, for the same reason
|
|
31285
|
-
* {@link parseReferenceList} rejects the whole line — and scanning resumes
|
|
31286
|
-
* after the candidate's scanned extent.
|
|
31287
|
-
*
|
|
31288
|
-
* Like everything in this module, the harvest is a single left-to-right
|
|
31289
|
-
* character scan with no regular expressions, so time stays linear in the
|
|
31290
|
-
* text length and no input is truncated.
|
|
31291
|
-
*
|
|
31292
|
-
* @public
|
|
31293
|
-
*/
|
|
31294
|
-
const harvestReferenceLists = (text) => {
|
|
31295
|
-
const lists = [];
|
|
31296
|
-
let index = 0;
|
|
31297
|
-
while (index < text.length) {
|
|
31298
|
-
if (!isAsciiLetter(text.charCodeAt(index))) {
|
|
31299
|
-
index += 1;
|
|
31300
|
-
continue;
|
|
31301
|
-
}
|
|
31302
|
-
const runStart = index;
|
|
31303
|
-
let runEnd = index + 1;
|
|
31304
|
-
while (runEnd < text.length && isAsciiLetter(text.charCodeAt(runEnd))) runEnd += 1;
|
|
31305
|
-
if (runStart > 0 && isWordChar(text.charCodeAt(runStart - 1)) || runEnd < text.length && isWordChar(text.charCodeAt(runEnd))) {
|
|
31306
|
-
index = runEnd;
|
|
31307
|
-
continue;
|
|
31308
|
-
}
|
|
31309
|
-
const keyword = text.slice(runStart, runEnd).toLowerCase();
|
|
31310
|
-
if (!ALL_KEYWORDS.has(keyword)) {
|
|
31311
|
-
index = runEnd;
|
|
31312
|
-
continue;
|
|
31313
|
-
}
|
|
31314
|
-
let cursor = runEnd;
|
|
31315
|
-
while (cursor < text.length && isAnyWhitespace(text.charCodeAt(cursor))) cursor += 1;
|
|
31316
|
-
const first = cursor === runEnd ? void 0 : readItem(text, cursor);
|
|
31317
|
-
if (first === void 0) {
|
|
31318
|
-
index = runEnd;
|
|
31319
|
-
continue;
|
|
31320
|
-
}
|
|
31321
|
-
if (first.kind === "unsafe") {
|
|
31322
|
-
index = first.next;
|
|
31323
|
-
continue;
|
|
31324
|
-
}
|
|
31325
|
-
const issueNumbers = [first.value];
|
|
31326
|
-
let end = first.next;
|
|
31327
|
-
let unsafeNext;
|
|
31328
|
-
for (;;) {
|
|
31329
|
-
const next = scanSeparator(text, end);
|
|
31330
|
-
if (next === void 0) break;
|
|
31331
|
-
const item = readItem(text, next);
|
|
31332
|
-
if (item === void 0) break;
|
|
31333
|
-
if (item.kind === "unsafe") {
|
|
31334
|
-
unsafeNext = item.next;
|
|
31335
|
-
break;
|
|
31336
|
-
}
|
|
31337
|
-
issueNumbers.push(item.value);
|
|
31338
|
-
end = item.next;
|
|
31339
|
-
}
|
|
31340
|
-
if (unsafeNext !== void 0) {
|
|
31341
|
-
index = unsafeNext;
|
|
31342
|
-
continue;
|
|
31343
|
-
}
|
|
31344
|
-
lists.push({
|
|
31345
|
-
keyword,
|
|
31346
|
-
closing: CLOSING_SET.has(keyword),
|
|
31347
|
-
issueNumbers,
|
|
31348
|
-
start: runStart,
|
|
31349
|
-
end
|
|
31350
|
-
});
|
|
31351
|
-
index = end;
|
|
31352
|
-
}
|
|
31353
|
-
return lists;
|
|
31354
|
-
};
|
|
31355
|
-
//#endregion
|
|
31356
|
-
//#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/KeywordFamily.js
|
|
31357
|
-
/**
|
|
31358
|
-
* The projection table IS the totality proof: `Record` over the union of
|
|
31359
|
-
* both keyword types makes a keyword added to either constant without an
|
|
31360
|
-
* entry here fail to compile.
|
|
31361
|
-
*/
|
|
31362
|
-
const FAMILIES = {
|
|
31363
|
-
close: "close",
|
|
31364
|
-
closes: "close",
|
|
31365
|
-
closed: "close",
|
|
31366
|
-
fix: "fix",
|
|
31367
|
-
fixes: "fix",
|
|
31368
|
-
fixed: "fix",
|
|
31369
|
-
resolve: "resolve",
|
|
31370
|
-
resolves: "resolve",
|
|
31371
|
-
resolved: "resolve",
|
|
31372
|
-
ref: "ref",
|
|
31373
|
-
refs: "ref",
|
|
31374
|
-
references: "ref"
|
|
31375
|
-
};
|
|
31376
|
-
/**
|
|
31377
|
-
* The family a keyword belongs to.
|
|
31378
|
-
*
|
|
31379
|
-
* @remarks
|
|
31380
|
-
* Total over both keyword sets by construction — see the module remarks for
|
|
31381
|
-
* why an explicit record beats a `startsWith` heuristic. `close`, `closes`
|
|
31382
|
-
* and `closed` map to `"close"`; the `fix` and `resolve` conjugations
|
|
31383
|
-
* likewise; `ref`, `refs` and `references` map to `"ref"`. The evidence for
|
|
31384
|
-
* the projection is downstream: categorized harvesters key maps by family,
|
|
31385
|
-
* and each was hand-rolling this collapse.
|
|
31386
|
-
*
|
|
31387
|
-
* @public
|
|
31388
|
-
*/
|
|
31389
|
-
const keywordFamily = (keyword) => FAMILIES[keyword];
|
|
31390
|
-
//#endregion
|
|
31391
31454
|
//#region ../silk-effects/dist/dev/pkg/changesets/utils/issue-refs.js
|
|
31392
31455
|
/**
|
|
31393
31456
|
* The output category each keyword family lands in.
|
|
@@ -31454,41 +31517,6 @@ function parseIssueReferences(commitMessage) {
|
|
|
31454
31517
|
return references;
|
|
31455
31518
|
}
|
|
31456
31519
|
//#endregion
|
|
31457
|
-
//#region ../silk-effects/dist/dev/pkg/changesets/utils/logger.js
|
|
31458
|
-
/**
|
|
31459
|
-
* Log a warning message.
|
|
31460
|
-
*
|
|
31461
|
-
* @remarks
|
|
31462
|
-
* Detection order:
|
|
31463
|
-
* 1. If `process.env.VITEST` is set, the message is silently discarded.
|
|
31464
|
-
* 2. If `process.env.GITHUB_ACTIONS === "true"`, the message is emitted
|
|
31465
|
-
* as a `::warning::` annotation.
|
|
31466
|
-
* 3. Otherwise, `console.warn` is used.
|
|
31467
|
-
*
|
|
31468
|
-
* @param message - The warning message
|
|
31469
|
-
* @param args - Additional arguments (concatenated with a space in CI mode)
|
|
31470
|
-
*
|
|
31471
|
-
* @example
|
|
31472
|
-
* ```typescript
|
|
31473
|
-
* import { logWarning } from "../utils/logger.js";
|
|
31474
|
-
*
|
|
31475
|
-
* logWarning("Duplicate dependency entry", "effect@3.19.0");
|
|
31476
|
-
* // In CI: "::warning::Duplicate dependency entry effect@3.19.0"
|
|
31477
|
-
* // Locally: console.warn("Duplicate dependency entry", "effect@3.19.0")
|
|
31478
|
-
* ```
|
|
31479
|
-
*
|
|
31480
|
-
* @internal
|
|
31481
|
-
*/
|
|
31482
|
-
function logWarning(message, ...args) {
|
|
31483
|
-
/* v8 ignore start — environment-specific */
|
|
31484
|
-
if (typeof process !== "undefined" && process.env.VITEST) return;
|
|
31485
|
-
if (typeof process !== "undefined" && process.env.GITHUB_ACTIONS === "true") {
|
|
31486
|
-
const text = args.length > 0 ? `${message} ${args.join(" ")}` : message;
|
|
31487
|
-
console.warn(`::warning::${text}`);
|
|
31488
|
-
} else console.warn(message, ...args);
|
|
31489
|
-
/* v8 ignore stop */
|
|
31490
|
-
}
|
|
31491
|
-
//#endregion
|
|
31492
31520
|
//#region ../silk-effects/dist/dev/pkg/changesets/utils/section-parser.js
|
|
31493
31521
|
/**
|
|
31494
31522
|
* Parse a changeset summary into structured sections.
|
|
@@ -31858,10 +31886,7 @@ function getReleaseLine(changeset, versionType, options) {
|
|
|
31858
31886
|
if (changeset.commit) commitInfo = yield* (yield* GitHubService).getInfo({
|
|
31859
31887
|
commit: changeset.commit,
|
|
31860
31888
|
repo: options.repo
|
|
31861
|
-
}).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) =>
|
|
31862
|
-
logWarning("Could not fetch GitHub info for commit:", changeset.commit ?? "", String(error));
|
|
31863
|
-
return effect.Effect.succeed(null);
|
|
31864
|
-
}));
|
|
31889
|
+
}).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))));
|
|
31865
31890
|
const parsed = parseChangesetSections(changeset.summary);
|
|
31866
31891
|
const firstLine = changeset.summary.split("\n")[0];
|
|
31867
31892
|
const commitMsg = parseCommitMessage(firstLine);
|
|
@@ -31956,29 +31981,48 @@ function getReleaseLine(changeset, versionType, options) {
|
|
|
31956
31981
|
*/
|
|
31957
31982
|
const MainLayer = GitHubService.layer;
|
|
31958
31983
|
/**
|
|
31959
|
-
* Changesets
|
|
31984
|
+
* Build a Changesets `ChangelogFunctions` implementation bound to a warning
|
|
31985
|
+
* mode.
|
|
31960
31986
|
*
|
|
31961
|
-
*
|
|
31962
|
-
*
|
|
31963
|
-
*
|
|
31964
|
-
*
|
|
31987
|
+
* @remarks
|
|
31988
|
+
* This module is engine code and reads no environment; the host that installs
|
|
31989
|
+
* the functions (the `\@savvy-web/changelog` package under the changesets CLI)
|
|
31990
|
+
* decides the mode from its own `process.env` and passes it here. Each method
|
|
31991
|
+
* validates options, runs the corresponding Effect program with the merged
|
|
31992
|
+
* service layer and the chosen {@link ChangesetLogMode}, and returns a
|
|
31993
|
+
* `Promise<string>`.
|
|
31965
31994
|
*
|
|
31966
|
-
* @
|
|
31995
|
+
* @param options - The warning mode to provide
|
|
31996
|
+
* @returns A `ChangelogFunctions` object for `.changeset/config.json`
|
|
31997
|
+
*
|
|
31998
|
+
* @public
|
|
31967
31999
|
*/
|
|
31968
|
-
|
|
31969
|
-
|
|
31970
|
-
const
|
|
32000
|
+
function makeChangelogFunctions(options = {}) {
|
|
32001
|
+
const run = (program) => {
|
|
32002
|
+
const provided = program.pipe(effect.Effect.provide(MainLayer));
|
|
32003
|
+
return effect.Effect.runPromise(options.logMode === void 0 ? provided : provided.pipe(effect.Effect.provideService(ChangesetLogMode, options.logMode)));
|
|
32004
|
+
};
|
|
32005
|
+
return {
|
|
32006
|
+
getReleaseLine: async (changeset, versionType, options) => run(effect.Effect.gen(function* () {
|
|
31971
32007
|
return yield* getReleaseLine(changeset, versionType, yield* validateChangesetOptions(options));
|
|
31972
|
-
})
|
|
31973
|
-
|
|
31974
|
-
},
|
|
31975
|
-
getDependencyReleaseLine: async (changesets, dependenciesUpdated, options) => {
|
|
31976
|
-
const program = effect.Effect.gen(function* () {
|
|
32008
|
+
})),
|
|
32009
|
+
getDependencyReleaseLine: async (changesets, dependenciesUpdated, options) => run(effect.Effect.gen(function* () {
|
|
31977
32010
|
return yield* getDependencyReleaseLine(changesets, dependenciesUpdated, yield* validateChangesetOptions(options));
|
|
31978
|
-
})
|
|
31979
|
-
|
|
31980
|
-
|
|
31981
|
-
|
|
32011
|
+
}))
|
|
32012
|
+
};
|
|
32013
|
+
}
|
|
32014
|
+
/**
|
|
32015
|
+
* Changesets API `ChangelogFunctions` implementation with the default warning
|
|
32016
|
+
* mode (`"stderr"`).
|
|
32017
|
+
*
|
|
32018
|
+
* @remarks
|
|
32019
|
+
* Equivalent to `makeChangelogFunctions()`. A host that runs under GitHub
|
|
32020
|
+
* Actions or a test runner should call {@link makeChangelogFunctions} with the
|
|
32021
|
+
* mode it detects instead.
|
|
32022
|
+
*
|
|
32023
|
+
* @internal
|
|
32024
|
+
*/
|
|
32025
|
+
const changelogFunctions$2 = makeChangelogFunctions();
|
|
31982
32026
|
//#endregion
|
|
31983
32027
|
//#region ../silk-effects/dist/dev/pkg/changesets/api/changelog.js
|
|
31984
32028
|
/**
|
|
@@ -32083,10 +32127,13 @@ var Changelog = class {
|
|
|
32083
32127
|
* @param versionType - The semantic version bump type (`"major"`, `"minor"`, or `"patch"`)
|
|
32084
32128
|
* @param options - Configuration object; must include `repo` in `"owner/repo"` format.
|
|
32085
32129
|
* Pass `null` to use defaults (no GitHub link resolution).
|
|
32130
|
+
* @param logMode - How a failed GitHub lookup is reported (`"stderr"` when omitted);
|
|
32131
|
+
* the host reads its own environment and passes `"github"` / `"silent"` — this
|
|
32132
|
+
* engine never does. See `ChangesetLogMode`.
|
|
32086
32133
|
* @returns A promise resolving to the formatted markdown string
|
|
32087
32134
|
*/
|
|
32088
|
-
static async formatReleaseLine(changeset, versionType, options) {
|
|
32089
|
-
return
|
|
32135
|
+
static async formatReleaseLine(changeset, versionType, options, logMode) {
|
|
32136
|
+
return makeChangelogFunctions(logMode === void 0 ? {} : { logMode }).getReleaseLine(changeset, versionType, options);
|
|
32090
32137
|
}
|
|
32091
32138
|
/**
|
|
32092
32139
|
* Format dependency update release lines into a markdown table.
|
|
@@ -32101,11 +32148,13 @@ var Changelog = class {
|
|
|
32101
32148
|
* old/new versions and package metadata
|
|
32102
32149
|
* @param options - Configuration object; must include `repo` in `"owner/repo"` format.
|
|
32103
32150
|
* Pass `null` to use defaults.
|
|
32151
|
+
* @param logMode - How a failed GitHub lookup is reported (`"stderr"` when omitted);
|
|
32152
|
+
* see {@link Changelog.formatReleaseLine}.
|
|
32104
32153
|
* @returns A promise resolving to the formatted markdown string containing
|
|
32105
32154
|
* the dependency update table
|
|
32106
32155
|
*/
|
|
32107
|
-
static async formatDependencyReleaseLine(changesets, dependenciesUpdated, options) {
|
|
32108
|
-
return
|
|
32156
|
+
static async formatDependencyReleaseLine(changesets, dependenciesUpdated, options, logMode) {
|
|
32157
|
+
return makeChangelogFunctions(logMode === void 0 ? {} : { logMode }).getDependencyReleaseLine(changesets, dependenciesUpdated, options);
|
|
32109
32158
|
}
|
|
32110
32159
|
};
|
|
32111
32160
|
//#endregion
|
|
@@ -40751,7 +40800,7 @@ function globSync(globInput, options) {
|
|
|
40751
40800
|
return crawler ? formatPaths(crawler.sync(), relative) : [];
|
|
40752
40801
|
}
|
|
40753
40802
|
//#endregion
|
|
40754
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
40803
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/identity.js
|
|
40755
40804
|
var require_identity = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
40756
40805
|
const ALIAS = Symbol.for("yaml.alias");
|
|
40757
40806
|
const DOC = Symbol.for("yaml.document");
|
|
@@ -40801,7 +40850,7 @@ var require_identity = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
40801
40850
|
exports.isSeq = isSeq;
|
|
40802
40851
|
}));
|
|
40803
40852
|
//#endregion
|
|
40804
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
40853
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/visit.js
|
|
40805
40854
|
var require_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
40806
40855
|
var identity = require_identity();
|
|
40807
40856
|
const BREAK = Symbol("break visit");
|
|
@@ -40992,7 +41041,7 @@ var require_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
40992
41041
|
exports.visitAsync = visitAsync;
|
|
40993
41042
|
}));
|
|
40994
41043
|
//#endregion
|
|
40995
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41044
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/directives.js
|
|
40996
41045
|
var require_directives = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
40997
41046
|
var identity = require_identity();
|
|
40998
41047
|
var visit = require_visit();
|
|
@@ -41156,7 +41205,7 @@ var require_directives = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41156
41205
|
exports.Directives = Directives;
|
|
41157
41206
|
}));
|
|
41158
41207
|
//#endregion
|
|
41159
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41208
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/anchors.js
|
|
41160
41209
|
var require_anchors = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41161
41210
|
var identity = require_identity();
|
|
41162
41211
|
var visit = require_visit();
|
|
@@ -41223,7 +41272,7 @@ var require_anchors = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41223
41272
|
exports.findNewAnchor = findNewAnchor;
|
|
41224
41273
|
}));
|
|
41225
41274
|
//#endregion
|
|
41226
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41275
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/applyReviver.js
|
|
41227
41276
|
var require_applyReviver = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41228
41277
|
/**
|
|
41229
41278
|
* Applies the JSON.parse reviver algorithm as defined in the ECMA-262 spec,
|
|
@@ -41265,7 +41314,7 @@ var require_applyReviver = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41265
41314
|
exports.applyReviver = applyReviver;
|
|
41266
41315
|
}));
|
|
41267
41316
|
//#endregion
|
|
41268
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41317
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/toJS.js
|
|
41269
41318
|
var require_toJS = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41270
41319
|
var identity = require_identity();
|
|
41271
41320
|
/**
|
|
@@ -41302,7 +41351,7 @@ var require_toJS = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41302
41351
|
exports.toJS = toJS;
|
|
41303
41352
|
}));
|
|
41304
41353
|
//#endregion
|
|
41305
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41354
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Node.js
|
|
41306
41355
|
var require_Node = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41307
41356
|
var applyReviver = require_applyReviver();
|
|
41308
41357
|
var identity = require_identity();
|
|
@@ -41336,7 +41385,7 @@ var require_Node = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41336
41385
|
exports.NodeBase = NodeBase;
|
|
41337
41386
|
}));
|
|
41338
41387
|
//#endregion
|
|
41339
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41388
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Alias.js
|
|
41340
41389
|
var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41341
41390
|
var anchors = require_anchors();
|
|
41342
41391
|
var visit = require_visit();
|
|
@@ -41371,29 +41420,31 @@ var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41371
41420
|
if (node === this) break;
|
|
41372
41421
|
if (node.anchor === this.source) found = node;
|
|
41373
41422
|
}
|
|
41423
|
+
if (found && ctx) {
|
|
41424
|
+
const { anchors, doc, maxAliasCount } = ctx;
|
|
41425
|
+
let data = anchors.get(found);
|
|
41426
|
+
if (!data) {
|
|
41427
|
+
toJS.toJS(found, null, ctx);
|
|
41428
|
+
data = anchors.get(found);
|
|
41429
|
+
}
|
|
41430
|
+
/* istanbul ignore if */
|
|
41431
|
+
if (data?.res === void 0) throw new ReferenceError("This should not happen: Alias anchor was not resolved?");
|
|
41432
|
+
if (maxAliasCount >= 0) {
|
|
41433
|
+
data.count += 1;
|
|
41434
|
+
if (data.aliasCount === 0) data.aliasCount = getAliasCount(doc, found, anchors);
|
|
41435
|
+
if (data.count * data.aliasCount > maxAliasCount) throw new ReferenceError("Excessive alias count indicates a resource exhaustion attack");
|
|
41436
|
+
}
|
|
41437
|
+
}
|
|
41374
41438
|
return found;
|
|
41375
41439
|
}
|
|
41376
41440
|
toJSON(_arg, ctx) {
|
|
41377
41441
|
if (!ctx) return { source: this.source };
|
|
41378
|
-
const
|
|
41379
|
-
const source = this.resolve(doc, ctx);
|
|
41442
|
+
const source = this.resolve(ctx.doc, ctx);
|
|
41380
41443
|
if (!source) {
|
|
41381
41444
|
const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;
|
|
41382
41445
|
throw new ReferenceError(msg);
|
|
41383
41446
|
}
|
|
41384
|
-
|
|
41385
|
-
if (!data) {
|
|
41386
|
-
toJS.toJS(source, null, ctx);
|
|
41387
|
-
data = anchors.get(source);
|
|
41388
|
-
}
|
|
41389
|
-
/* istanbul ignore if */
|
|
41390
|
-
if (data?.res === void 0) throw new ReferenceError("This should not happen: Alias anchor was not resolved?");
|
|
41391
|
-
if (maxAliasCount >= 0) {
|
|
41392
|
-
data.count += 1;
|
|
41393
|
-
if (data.aliasCount === 0) data.aliasCount = getAliasCount(doc, source, anchors);
|
|
41394
|
-
if (data.count * data.aliasCount > maxAliasCount) throw new ReferenceError("Excessive alias count indicates a resource exhaustion attack");
|
|
41395
|
-
}
|
|
41396
|
-
return data.res;
|
|
41447
|
+
return ctx.anchors.get(source).res;
|
|
41397
41448
|
}
|
|
41398
41449
|
toString(ctx, _onComment, _onChompKeep) {
|
|
41399
41450
|
const src = `*${this.source}`;
|
|
@@ -41430,7 +41481,7 @@ var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41430
41481
|
exports.Alias = Alias;
|
|
41431
41482
|
}));
|
|
41432
41483
|
//#endregion
|
|
41433
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41484
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Scalar.js
|
|
41434
41485
|
var require_Scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41435
41486
|
var identity = require_identity();
|
|
41436
41487
|
var Node = require_Node();
|
|
@@ -41457,7 +41508,7 @@ var require_Scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41457
41508
|
exports.isScalarValue = isScalarValue;
|
|
41458
41509
|
}));
|
|
41459
41510
|
//#endregion
|
|
41460
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41511
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/createNode.js
|
|
41461
41512
|
var require_createNode = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41462
41513
|
var Alias = require_Alias();
|
|
41463
41514
|
var identity = require_identity();
|
|
@@ -41520,7 +41571,7 @@ var require_createNode = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41520
41571
|
exports.createNode = createNode;
|
|
41521
41572
|
}));
|
|
41522
41573
|
//#endregion
|
|
41523
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41574
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Collection.js
|
|
41524
41575
|
var require_Collection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41525
41576
|
var createNode = require_createNode();
|
|
41526
41577
|
var identity = require_identity();
|
|
@@ -41641,7 +41692,7 @@ var require_Collection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41641
41692
|
exports.isEmptyPath = isEmptyPath;
|
|
41642
41693
|
}));
|
|
41643
41694
|
//#endregion
|
|
41644
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41695
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyComment.js
|
|
41645
41696
|
var require_stringifyComment = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41646
41697
|
/**
|
|
41647
41698
|
* Stringifies a comment.
|
|
@@ -41661,7 +41712,7 @@ var require_stringifyComment = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41661
41712
|
exports.stringifyComment = stringifyComment;
|
|
41662
41713
|
}));
|
|
41663
41714
|
//#endregion
|
|
41664
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41715
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/foldFlowLines.js
|
|
41665
41716
|
var require_foldFlowLines = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41666
41717
|
const FOLD_FLOW = "flow";
|
|
41667
41718
|
const FOLD_BLOCK = "block";
|
|
@@ -41781,7 +41832,7 @@ var require_foldFlowLines = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
41781
41832
|
exports.foldFlowLines = foldFlowLines;
|
|
41782
41833
|
}));
|
|
41783
41834
|
//#endregion
|
|
41784
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
41835
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyString.js
|
|
41785
41836
|
var require_stringifyString = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
41786
41837
|
var Scalar = require_Scalar();
|
|
41787
41838
|
var foldFlowLines = require_foldFlowLines();
|
|
@@ -42005,7 +42056,7 @@ var require_stringifyString = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42005
42056
|
exports.stringifyString = stringifyString;
|
|
42006
42057
|
}));
|
|
42007
42058
|
//#endregion
|
|
42008
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42059
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringify.js
|
|
42009
42060
|
var require_stringify$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42010
42061
|
var anchors = require_anchors();
|
|
42011
42062
|
var identity = require_identity();
|
|
@@ -42113,7 +42164,7 @@ var require_stringify$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42113
42164
|
exports.stringify = stringify;
|
|
42114
42165
|
}));
|
|
42115
42166
|
//#endregion
|
|
42116
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42167
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyPair.js
|
|
42117
42168
|
var require_stringifyPair = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42118
42169
|
var identity = require_identity();
|
|
42119
42170
|
var Scalar = require_Scalar();
|
|
@@ -42210,7 +42261,7 @@ var require_stringifyPair = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42210
42261
|
exports.stringifyPair = stringifyPair;
|
|
42211
42262
|
}));
|
|
42212
42263
|
//#endregion
|
|
42213
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42264
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/log.js
|
|
42214
42265
|
var require_log = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42215
42266
|
var node_process$3 = require("process");
|
|
42216
42267
|
function debug(logLevel, ...messages) {
|
|
@@ -42226,7 +42277,7 @@ var require_log = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42226
42277
|
exports.warn = warn;
|
|
42227
42278
|
}));
|
|
42228
42279
|
//#endregion
|
|
42229
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42280
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/merge.js
|
|
42230
42281
|
var require_merge = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42231
42282
|
var identity = require_identity();
|
|
42232
42283
|
var Scalar = require_Scalar();
|
|
@@ -42269,7 +42320,7 @@ var require_merge = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42269
42320
|
exports.merge = merge;
|
|
42270
42321
|
}));
|
|
42271
42322
|
//#endregion
|
|
42272
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42323
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/addPairToJSMap.js
|
|
42273
42324
|
var require_addPairToJSMap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42274
42325
|
var log = require_log();
|
|
42275
42326
|
var merge = require_merge();
|
|
@@ -42320,7 +42371,7 @@ var require_addPairToJSMap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42320
42371
|
exports.addPairToJSMap = addPairToJSMap;
|
|
42321
42372
|
}));
|
|
42322
42373
|
//#endregion
|
|
42323
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42374
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Pair.js
|
|
42324
42375
|
var require_Pair = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42325
42376
|
var createNode = require_createNode();
|
|
42326
42377
|
var stringifyPair = require_stringifyPair();
|
|
@@ -42353,7 +42404,7 @@ var require_Pair = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42353
42404
|
exports.createPair = createPair;
|
|
42354
42405
|
}));
|
|
42355
42406
|
//#endregion
|
|
42356
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42407
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyCollection.js
|
|
42357
42408
|
var require_stringifyCollection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42358
42409
|
var identity = require_identity();
|
|
42359
42410
|
var stringify = require_stringify$1();
|
|
@@ -42471,7 +42522,7 @@ var require_stringifyCollection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42471
42522
|
exports.stringifyCollection = stringifyCollection;
|
|
42472
42523
|
}));
|
|
42473
42524
|
//#endregion
|
|
42474
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42525
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/YAMLMap.js
|
|
42475
42526
|
var require_YAMLMap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42476
42527
|
var stringifyCollection = require_stringifyCollection();
|
|
42477
42528
|
var addPairToJSMap = require_addPairToJSMap();
|
|
@@ -42580,7 +42631,7 @@ var require_YAMLMap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42580
42631
|
exports.findPair = findPair;
|
|
42581
42632
|
}));
|
|
42582
42633
|
//#endregion
|
|
42583
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42634
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/map.js
|
|
42584
42635
|
var require_map = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42585
42636
|
var identity = require_identity();
|
|
42586
42637
|
var YAMLMap = require_YAMLMap();
|
|
@@ -42597,7 +42648,7 @@ var require_map = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42597
42648
|
};
|
|
42598
42649
|
}));
|
|
42599
42650
|
//#endregion
|
|
42600
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42651
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/YAMLSeq.js
|
|
42601
42652
|
var require_YAMLSeq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42602
42653
|
var createNode = require_createNode();
|
|
42603
42654
|
var stringifyCollection = require_stringifyCollection();
|
|
@@ -42703,7 +42754,7 @@ var require_YAMLSeq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42703
42754
|
exports.YAMLSeq = YAMLSeq;
|
|
42704
42755
|
}));
|
|
42705
42756
|
//#endregion
|
|
42706
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42757
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/seq.js
|
|
42707
42758
|
var require_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42708
42759
|
var identity = require_identity();
|
|
42709
42760
|
var YAMLSeq = require_YAMLSeq();
|
|
@@ -42720,7 +42771,7 @@ var require_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42720
42771
|
};
|
|
42721
42772
|
}));
|
|
42722
42773
|
//#endregion
|
|
42723
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42774
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/string.js
|
|
42724
42775
|
var require_string = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42725
42776
|
var stringifyString = require_stringifyString();
|
|
42726
42777
|
exports.string = {
|
|
@@ -42735,7 +42786,7 @@ var require_string = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42735
42786
|
};
|
|
42736
42787
|
}));
|
|
42737
42788
|
//#endregion
|
|
42738
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42789
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/null.js
|
|
42739
42790
|
var require_null = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42740
42791
|
var Scalar = require_Scalar();
|
|
42741
42792
|
const nullTag = {
|
|
@@ -42750,7 +42801,7 @@ var require_null = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42750
42801
|
exports.nullTag = nullTag;
|
|
42751
42802
|
}));
|
|
42752
42803
|
//#endregion
|
|
42753
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42804
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/bool.js
|
|
42754
42805
|
var require_bool$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42755
42806
|
var Scalar = require_Scalar();
|
|
42756
42807
|
const boolTag = {
|
|
@@ -42769,7 +42820,7 @@ var require_bool$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42769
42820
|
exports.boolTag = boolTag;
|
|
42770
42821
|
}));
|
|
42771
42822
|
//#endregion
|
|
42772
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42823
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyNumber.js
|
|
42773
42824
|
var require_stringifyNumber = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42774
42825
|
function stringifyNumber({ format, minFractionDigits, tag, value }) {
|
|
42775
42826
|
if (typeof value === "bigint") return String(value);
|
|
@@ -42790,7 +42841,7 @@ var require_stringifyNumber = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42790
42841
|
exports.stringifyNumber = stringifyNumber;
|
|
42791
42842
|
}));
|
|
42792
42843
|
//#endregion
|
|
42793
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42844
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/float.js
|
|
42794
42845
|
var require_float$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42795
42846
|
var Scalar = require_Scalar();
|
|
42796
42847
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -42831,7 +42882,7 @@ var require_float$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42831
42882
|
exports.floatNaN = floatNaN;
|
|
42832
42883
|
}));
|
|
42833
42884
|
//#endregion
|
|
42834
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42885
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/int.js
|
|
42835
42886
|
var require_int$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42836
42887
|
var stringifyNumber = require_stringifyNumber();
|
|
42837
42888
|
const intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -42872,7 +42923,7 @@ var require_int$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42872
42923
|
exports.intOct = intOct;
|
|
42873
42924
|
}));
|
|
42874
42925
|
//#endregion
|
|
42875
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42926
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/schema.js
|
|
42876
42927
|
var require_schema$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42877
42928
|
var map = require_map();
|
|
42878
42929
|
var _null = require_null();
|
|
@@ -42896,7 +42947,7 @@ var require_schema$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42896
42947
|
];
|
|
42897
42948
|
}));
|
|
42898
42949
|
//#endregion
|
|
42899
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
42950
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/json/schema.js
|
|
42900
42951
|
var require_schema$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42901
42952
|
var Scalar = require_Scalar();
|
|
42902
42953
|
var map = require_map();
|
|
@@ -42958,7 +43009,7 @@ var require_schema$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
42958
43009
|
});
|
|
42959
43010
|
}));
|
|
42960
43011
|
//#endregion
|
|
42961
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43012
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/binary.js
|
|
42962
43013
|
var require_binary = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
42963
43014
|
var node_buffer = require("buffer");
|
|
42964
43015
|
var Scalar = require_Scalar();
|
|
@@ -43014,7 +43065,7 @@ var require_binary = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43014
43065
|
};
|
|
43015
43066
|
}));
|
|
43016
43067
|
//#endregion
|
|
43017
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43068
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
|
|
43018
43069
|
var require_pairs = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43019
43070
|
var identity = require_identity();
|
|
43020
43071
|
var Pair = require_Pair();
|
|
@@ -43075,7 +43126,7 @@ var require_pairs = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43075
43126
|
exports.resolvePairs = resolvePairs;
|
|
43076
43127
|
}));
|
|
43077
43128
|
//#endregion
|
|
43078
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43129
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/omap.js
|
|
43079
43130
|
var require_omap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43080
43131
|
var identity = require_identity();
|
|
43081
43132
|
var toJS = require_toJS();
|
|
@@ -43140,7 +43191,7 @@ var require_omap = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43140
43191
|
exports.omap = omap;
|
|
43141
43192
|
}));
|
|
43142
43193
|
//#endregion
|
|
43143
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43194
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/bool.js
|
|
43144
43195
|
var require_bool = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43145
43196
|
var Scalar = require_Scalar();
|
|
43146
43197
|
function boolStringify({ value, source }, ctx) {
|
|
@@ -43167,7 +43218,7 @@ var require_bool = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43167
43218
|
exports.trueTag = trueTag;
|
|
43168
43219
|
}));
|
|
43169
43220
|
//#endregion
|
|
43170
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43221
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/float.js
|
|
43171
43222
|
var require_float = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43172
43223
|
var Scalar = require_Scalar();
|
|
43173
43224
|
var stringifyNumber = require_stringifyNumber();
|
|
@@ -43211,7 +43262,7 @@ var require_float = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43211
43262
|
exports.floatNaN = floatNaN;
|
|
43212
43263
|
}));
|
|
43213
43264
|
//#endregion
|
|
43214
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43265
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/int.js
|
|
43215
43266
|
var require_int = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43216
43267
|
var stringifyNumber = require_stringifyNumber();
|
|
43217
43268
|
const intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
|
|
@@ -43284,7 +43335,7 @@ var require_int = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43284
43335
|
exports.intOct = intOct;
|
|
43285
43336
|
}));
|
|
43286
43337
|
//#endregion
|
|
43287
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43338
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/set.js
|
|
43288
43339
|
var require_set = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43289
43340
|
var identity = require_identity();
|
|
43290
43341
|
var Pair = require_Pair();
|
|
@@ -43353,7 +43404,7 @@ var require_set = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43353
43404
|
exports.set = set;
|
|
43354
43405
|
}));
|
|
43355
43406
|
//#endregion
|
|
43356
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43407
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
|
|
43357
43408
|
var require_timestamp = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43358
43409
|
var stringifyNumber = require_stringifyNumber();
|
|
43359
43410
|
/** Internal types handle bigint as number, because TS can't figure it out. */
|
|
@@ -43436,7 +43487,7 @@ var require_timestamp = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43436
43487
|
exports.timestamp = timestamp;
|
|
43437
43488
|
}));
|
|
43438
43489
|
//#endregion
|
|
43439
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43490
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/schema.js
|
|
43440
43491
|
var require_schema = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43441
43492
|
var map = require_map();
|
|
43442
43493
|
var _null = require_null();
|
|
@@ -43476,7 +43527,7 @@ var require_schema = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43476
43527
|
];
|
|
43477
43528
|
}));
|
|
43478
43529
|
//#endregion
|
|
43479
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43530
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/tags.js
|
|
43480
43531
|
var require_tags = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43481
43532
|
var map = require_map();
|
|
43482
43533
|
var _null = require_null();
|
|
@@ -43562,7 +43613,7 @@ var require_tags = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43562
43613
|
exports.getTags = getTags;
|
|
43563
43614
|
}));
|
|
43564
43615
|
//#endregion
|
|
43565
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43616
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/Schema.js
|
|
43566
43617
|
var require_Schema = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43567
43618
|
var identity = require_identity();
|
|
43568
43619
|
var map = require_map();
|
|
@@ -43590,7 +43641,7 @@ var require_Schema = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43590
43641
|
};
|
|
43591
43642
|
}));
|
|
43592
43643
|
//#endregion
|
|
43593
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43644
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyDocument.js
|
|
43594
43645
|
var require_stringifyDocument = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43595
43646
|
var identity = require_identity();
|
|
43596
43647
|
var stringify = require_stringify$1();
|
|
@@ -43652,7 +43703,7 @@ var require_stringifyDocument = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43652
43703
|
exports.stringifyDocument = stringifyDocument;
|
|
43653
43704
|
}));
|
|
43654
43705
|
//#endregion
|
|
43655
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43706
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/Document.js
|
|
43656
43707
|
var require_Document = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43657
43708
|
var Alias = require_Alias();
|
|
43658
43709
|
var Collection = require_Collection();
|
|
@@ -43933,7 +43984,7 @@ var require_Document = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43933
43984
|
exports.Document = Document;
|
|
43934
43985
|
}));
|
|
43935
43986
|
//#endregion
|
|
43936
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
43987
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/errors.js
|
|
43937
43988
|
var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43938
43989
|
var YAMLError = class extends Error {
|
|
43939
43990
|
constructor(name, pos, code, message) {
|
|
@@ -43986,7 +44037,7 @@ var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
43986
44037
|
exports.prettifyError = prettifyError;
|
|
43987
44038
|
}));
|
|
43988
44039
|
//#endregion
|
|
43989
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44040
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-props.js
|
|
43990
44041
|
var require_resolve_props = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
43991
44042
|
function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
|
|
43992
44043
|
let spaceBefore = false;
|
|
@@ -44093,7 +44144,7 @@ var require_resolve_props = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44093
44144
|
exports.resolveProps = resolveProps;
|
|
44094
44145
|
}));
|
|
44095
44146
|
//#endregion
|
|
44096
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44147
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-contains-newline.js
|
|
44097
44148
|
var require_util_contains_newline = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44098
44149
|
function containsNewline(key) {
|
|
44099
44150
|
if (!key) return null;
|
|
@@ -44122,7 +44173,7 @@ var require_util_contains_newline = /* @__PURE__ */ __commonJSMin(((exports) =>
|
|
|
44122
44173
|
exports.containsNewline = containsNewline;
|
|
44123
44174
|
}));
|
|
44124
44175
|
//#endregion
|
|
44125
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44176
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-flow-indent-check.js
|
|
44126
44177
|
var require_util_flow_indent_check = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44127
44178
|
var utilContainsNewline = require_util_contains_newline();
|
|
44128
44179
|
function flowIndentCheck(indent, fc, onError) {
|
|
@@ -44134,7 +44185,7 @@ var require_util_flow_indent_check = /* @__PURE__ */ __commonJSMin(((exports) =>
|
|
|
44134
44185
|
exports.flowIndentCheck = flowIndentCheck;
|
|
44135
44186
|
}));
|
|
44136
44187
|
//#endregion
|
|
44137
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44188
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-map-includes.js
|
|
44138
44189
|
var require_util_map_includes = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44139
44190
|
var identity = require_identity();
|
|
44140
44191
|
function mapIncludes(ctx, items, search) {
|
|
@@ -44146,7 +44197,7 @@ var require_util_map_includes = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44146
44197
|
exports.mapIncludes = mapIncludes;
|
|
44147
44198
|
}));
|
|
44148
44199
|
//#endregion
|
|
44149
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44200
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-map.js
|
|
44150
44201
|
var require_resolve_block_map = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44151
44202
|
var Pair = require_Pair();
|
|
44152
44203
|
var YAMLMap = require_YAMLMap();
|
|
@@ -44234,7 +44285,7 @@ var require_resolve_block_map = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44234
44285
|
exports.resolveBlockMap = resolveBlockMap;
|
|
44235
44286
|
}));
|
|
44236
44287
|
//#endregion
|
|
44237
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44288
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-seq.js
|
|
44238
44289
|
var require_resolve_block_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44239
44290
|
var YAMLSeq = require_YAMLSeq();
|
|
44240
44291
|
var resolveProps = require_resolve_props();
|
|
@@ -44279,7 +44330,7 @@ var require_resolve_block_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44279
44330
|
exports.resolveBlockSeq = resolveBlockSeq;
|
|
44280
44331
|
}));
|
|
44281
44332
|
//#endregion
|
|
44282
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44333
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-end.js
|
|
44283
44334
|
var require_resolve_end = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44284
44335
|
function resolveEnd(end, offset, reqSpace, onError) {
|
|
44285
44336
|
let comment = "";
|
|
@@ -44317,7 +44368,7 @@ var require_resolve_end = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44317
44368
|
exports.resolveEnd = resolveEnd;
|
|
44318
44369
|
}));
|
|
44319
44370
|
//#endregion
|
|
44320
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44371
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-flow-collection.js
|
|
44321
44372
|
var require_resolve_flow_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44322
44373
|
var identity = require_identity();
|
|
44323
44374
|
var Pair = require_Pair();
|
|
@@ -44480,7 +44531,7 @@ var require_resolve_flow_collection = /* @__PURE__ */ __commonJSMin(((exports) =
|
|
|
44480
44531
|
exports.resolveFlowCollection = resolveFlowCollection;
|
|
44481
44532
|
}));
|
|
44482
44533
|
//#endregion
|
|
44483
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44534
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-collection.js
|
|
44484
44535
|
var require_compose_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44485
44536
|
var identity = require_identity();
|
|
44486
44537
|
var Scalar = require_Scalar();
|
|
@@ -44532,7 +44583,7 @@ var require_compose_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44532
44583
|
exports.composeCollection = composeCollection;
|
|
44533
44584
|
}));
|
|
44534
44585
|
//#endregion
|
|
44535
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44586
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-scalar.js
|
|
44536
44587
|
var require_resolve_block_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44537
44588
|
var Scalar = require_Scalar();
|
|
44538
44589
|
function resolveBlockScalar(ctx, scalar, onError) {
|
|
@@ -44709,7 +44760,7 @@ var require_resolve_block_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44709
44760
|
exports.resolveBlockScalar = resolveBlockScalar;
|
|
44710
44761
|
}));
|
|
44711
44762
|
//#endregion
|
|
44712
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44763
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-flow-scalar.js
|
|
44713
44764
|
var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44714
44765
|
var Scalar = require_Scalar();
|
|
44715
44766
|
var resolveEnd = require_resolve_end();
|
|
@@ -44779,40 +44830,41 @@ var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44779
44830
|
case "`": badChar = `reserved character ${source[0]}`;
|
|
44780
44831
|
}
|
|
44781
44832
|
if (badChar) onError(0, "BAD_SCALAR_START", `Plain value cannot start with ${badChar}`);
|
|
44782
|
-
return
|
|
44833
|
+
return unfoldLines(source);
|
|
44783
44834
|
}
|
|
44784
44835
|
function singleQuotedValue(source, onError) {
|
|
44785
44836
|
if (source[source.length - 1] !== "'" || source.length === 1) onError(source.length, "MISSING_CHAR", "Missing closing 'quote");
|
|
44786
|
-
return
|
|
44837
|
+
return unfoldLines(source.slice(1, -1)).replace(/''/g, "'");
|
|
44787
44838
|
}
|
|
44788
|
-
function
|
|
44839
|
+
function unfoldLines(source) {
|
|
44840
|
+
const line = /(.*?)\r?\n/sy;
|
|
44841
|
+
let match = line.exec(source);
|
|
44842
|
+
if (!match) return source;
|
|
44789
44843
|
/**
|
|
44790
|
-
* The negative
|
|
44844
|
+
* The negative lookbehinds in these RegExps are to
|
|
44791
44845
|
* prevent causing a polynomial search time in certain cases.
|
|
44792
44846
|
*
|
|
44793
|
-
* The try-catch is for Safari
|
|
44847
|
+
* The try-catch is for Safari < 16.4 and other old browsers:
|
|
44794
44848
|
* https://caniuse.com/js-regexp-lookbehind
|
|
44795
44849
|
*/
|
|
44796
|
-
let
|
|
44850
|
+
let trimEnd, trimBoth;
|
|
44797
44851
|
try {
|
|
44798
|
-
|
|
44799
|
-
|
|
44852
|
+
trimEnd = new RegExp("(?<![ ])[ ]+$");
|
|
44853
|
+
trimBoth = new RegExp("^[ ]+|(?<![ ])[ ]+$", "g");
|
|
44800
44854
|
} catch {
|
|
44801
|
-
|
|
44802
|
-
|
|
44855
|
+
trimEnd = /[ \t]+$/;
|
|
44856
|
+
trimBoth = /^[ \t]+|[ \t]+$/g;
|
|
44803
44857
|
}
|
|
44804
|
-
let
|
|
44805
|
-
if (!match) return source;
|
|
44806
|
-
let res = match[1];
|
|
44858
|
+
let res = match[1].replace(trimEnd, "");
|
|
44807
44859
|
let sep = " ";
|
|
44808
|
-
let pos =
|
|
44809
|
-
line.lastIndex = pos;
|
|
44860
|
+
let pos = line.lastIndex;
|
|
44810
44861
|
while (match = line.exec(source)) {
|
|
44811
|
-
|
|
44862
|
+
const lm = match[1].replace(trimBoth, "");
|
|
44863
|
+
if (lm === "") {
|
|
44812
44864
|
if (sep === "\n") res += sep;
|
|
44813
44865
|
else sep = "\n";
|
|
44814
44866
|
} else {
|
|
44815
|
-
res += sep +
|
|
44867
|
+
res += sep + lm;
|
|
44816
44868
|
sep = " ";
|
|
44817
44869
|
}
|
|
44818
44870
|
pos = line.lastIndex;
|
|
@@ -44913,7 +44965,7 @@ var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44913
44965
|
exports.resolveFlowScalar = resolveFlowScalar;
|
|
44914
44966
|
}));
|
|
44915
44967
|
//#endregion
|
|
44916
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
44968
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-scalar.js
|
|
44917
44969
|
var require_compose_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44918
44970
|
var identity = require_identity();
|
|
44919
44971
|
var Scalar = require_Scalar();
|
|
@@ -44974,7 +45026,7 @@ var require_compose_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
44974
45026
|
exports.composeScalar = composeScalar;
|
|
44975
45027
|
}));
|
|
44976
45028
|
//#endregion
|
|
44977
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45029
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-empty-scalar-position.js
|
|
44978
45030
|
var require_util_empty_scalar_position = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
44979
45031
|
function emptyScalarPosition(offset, before, pos) {
|
|
44980
45032
|
if (before) {
|
|
@@ -45001,7 +45053,7 @@ var require_util_empty_scalar_position = /* @__PURE__ */ __commonJSMin(((exports
|
|
|
45001
45053
|
exports.emptyScalarPosition = emptyScalarPosition;
|
|
45002
45054
|
}));
|
|
45003
45055
|
//#endregion
|
|
45004
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45056
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-node.js
|
|
45005
45057
|
var require_compose_node = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45006
45058
|
var Alias = require_Alias();
|
|
45007
45059
|
var identity = require_identity();
|
|
@@ -45092,7 +45144,7 @@ var require_compose_node = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45092
45144
|
exports.composeNode = composeNode;
|
|
45093
45145
|
}));
|
|
45094
45146
|
//#endregion
|
|
45095
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45147
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-doc.js
|
|
45096
45148
|
var require_compose_doc = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45097
45149
|
var Document = require_Document();
|
|
45098
45150
|
var composeNode = require_compose_node();
|
|
@@ -45134,7 +45186,7 @@ var require_compose_doc = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45134
45186
|
exports.composeDoc = composeDoc;
|
|
45135
45187
|
}));
|
|
45136
45188
|
//#endregion
|
|
45137
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45189
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/composer.js
|
|
45138
45190
|
var require_composer = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45139
45191
|
var node_process$2 = require("process");
|
|
45140
45192
|
var directives = require_directives();
|
|
@@ -45332,7 +45384,7 @@ var require_composer = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45332
45384
|
exports.Composer = Composer;
|
|
45333
45385
|
}));
|
|
45334
45386
|
//#endregion
|
|
45335
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45387
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-scalar.js
|
|
45336
45388
|
var require_cst_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45337
45389
|
var resolveBlockScalar = require_resolve_block_scalar();
|
|
45338
45390
|
var resolveFlowScalar = require_resolve_flow_scalar();
|
|
@@ -45599,7 +45651,7 @@ var require_cst_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45599
45651
|
exports.setScalarValue = setScalarValue;
|
|
45600
45652
|
}));
|
|
45601
45653
|
//#endregion
|
|
45602
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45654
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-stringify.js
|
|
45603
45655
|
var require_cst_stringify = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45604
45656
|
/**
|
|
45605
45657
|
* Stringify a CST document, token, or collection item
|
|
@@ -45650,7 +45702,7 @@ var require_cst_stringify = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45650
45702
|
exports.stringify = stringify;
|
|
45651
45703
|
}));
|
|
45652
45704
|
//#endregion
|
|
45653
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45705
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-visit.js
|
|
45654
45706
|
var require_cst_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45655
45707
|
const BREAK = Symbol("break visit");
|
|
45656
45708
|
const SKIP = Symbol("skip children");
|
|
@@ -45741,7 +45793,7 @@ var require_cst_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45741
45793
|
exports.visit = visit;
|
|
45742
45794
|
}));
|
|
45743
45795
|
//#endregion
|
|
45744
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45796
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst.js
|
|
45745
45797
|
var require_cst = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45746
45798
|
var cstScalar = require_cst_scalar();
|
|
45747
45799
|
var cstStringify = require_cst_stringify();
|
|
@@ -45820,7 +45872,7 @@ var require_cst = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
45820
45872
|
exports.tokenType = tokenType;
|
|
45821
45873
|
}));
|
|
45822
45874
|
//#endregion
|
|
45823
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
45875
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/lexer.js
|
|
45824
45876
|
var require_lexer = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
45825
45877
|
var cst = require_cst();
|
|
45826
45878
|
function isEmpty(ch) {
|
|
@@ -46353,7 +46405,7 @@ var require_lexer = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
46353
46405
|
exports.Lexer = Lexer;
|
|
46354
46406
|
}));
|
|
46355
46407
|
//#endregion
|
|
46356
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
46408
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/line-counter.js
|
|
46357
46409
|
var require_line_counter = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
46358
46410
|
/**
|
|
46359
46411
|
* Tracks newlines during parsing in order to provide an efficient API for
|
|
@@ -46400,7 +46452,7 @@ var require_line_counter = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
46400
46452
|
exports.LineCounter = LineCounter;
|
|
46401
46453
|
}));
|
|
46402
46454
|
//#endregion
|
|
46403
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
46455
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/parser.js
|
|
46404
46456
|
var require_parser = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
46405
46457
|
var node_process$1 = require("process");
|
|
46406
46458
|
var cst = require_cst();
|
|
@@ -47266,7 +47318,7 @@ var require_parser = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
47266
47318
|
exports.Parser = Parser;
|
|
47267
47319
|
}));
|
|
47268
47320
|
//#endregion
|
|
47269
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
47321
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/public-api.js
|
|
47270
47322
|
var require_public_api = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
47271
47323
|
var composer = require_composer();
|
|
47272
47324
|
var Document = require_Document();
|
|
@@ -47355,7 +47407,7 @@ var require_public_api = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
47355
47407
|
exports.stringify = stringify;
|
|
47356
47408
|
}));
|
|
47357
47409
|
//#endregion
|
|
47358
|
-
//#region ../../node_modules/.pnpm/yaml@2.9.
|
|
47410
|
+
//#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/index.js
|
|
47359
47411
|
var require_dist = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
47360
47412
|
var composer = require_composer();
|
|
47361
47413
|
var Document = require_Document();
|
|
@@ -55733,17 +55785,8 @@ const SilkChangesetsRules = [
|
|
|
55733
55785
|
DependencyTableFormatRule
|
|
55734
55786
|
];
|
|
55735
55787
|
//#endregion
|
|
55736
|
-
//#region
|
|
55737
|
-
|
|
55738
|
-
* Changesets API changelog formatter shim for \@savvy-web/silk.
|
|
55739
|
-
*
|
|
55740
|
-
* Drop-in replacement for \@savvy-web/changesets/changelog.
|
|
55741
|
-
* The default export is the ChangelogFunctions object consumed by the
|
|
55742
|
-
* Changesets CLI via the changelog field in .changeset/config.json.
|
|
55743
|
-
*
|
|
55744
|
-
* @packageDocumentation
|
|
55745
|
-
*/
|
|
55746
|
-
const changelogFunctions = (/* @__PURE__ */ __exportAll({
|
|
55788
|
+
//#region ../silk-effects/dist/dev/pkg/changesets/index.js
|
|
55789
|
+
var changesets_exports = /* @__PURE__ */ __exportAll({
|
|
55747
55790
|
AggregateDependencyTablesPlugin: () => AggregateDependencyTablesPlugin,
|
|
55748
55791
|
AppliedReleaseEntrySchema: () => AppliedReleaseEntrySchema,
|
|
55749
55792
|
AppliedReleaseSchema: () => AppliedReleaseSchema,
|
|
@@ -55757,6 +55800,7 @@ const changelogFunctions = (/* @__PURE__ */ __exportAll({
|
|
|
55757
55800
|
ChangelogTransformer: () => ChangelogTransformer,
|
|
55758
55801
|
ChangesetIOError: () => ChangesetIOError,
|
|
55759
55802
|
ChangesetLinter: () => ChangesetLinter,
|
|
55803
|
+
ChangesetLogMode: () => ChangesetLogMode,
|
|
55760
55804
|
ChangesetOptionsSchema: () => ChangesetOptionsSchema,
|
|
55761
55805
|
ChangesetPreviewSchema: () => ChangesetPreviewSchema,
|
|
55762
55806
|
ChangesetSchema: () => ChangesetSchema,
|
|
@@ -55843,6 +55887,7 @@ const changelogFunctions = (/* @__PURE__ */ __exportAll({
|
|
|
55843
55887
|
isPureDependencyChangeset: () => isPureDependencyChangeset,
|
|
55844
55888
|
listPublishablePackageNames: () => listPublishablePackageNames,
|
|
55845
55889
|
makeBranchAnalyzerTest: () => makeBranchAnalyzerTest,
|
|
55890
|
+
makeChangelogFunctions: () => makeChangelogFunctions,
|
|
55846
55891
|
makeConfigInspectorTest: () => makeConfigInspectorTest,
|
|
55847
55892
|
makeDepsRegenDefault: () => makeDepsRegenDefault,
|
|
55848
55893
|
makeGitHubTest: () => makeGitHubTest,
|
|
@@ -55850,6 +55895,28 @@ const changelogFunctions = (/* @__PURE__ */ __exportAll({
|
|
|
55850
55895
|
parseChangesetPackages: () => parseChangesetPackages,
|
|
55851
55896
|
serializeDependencyTableToMarkdown: () => serializeDependencyTableToMarkdown,
|
|
55852
55897
|
vanillaChangelogFunctions: () => vanillaChangelogFunctions
|
|
55853
|
-
})
|
|
55898
|
+
});
|
|
55899
|
+
//#endregion
|
|
55900
|
+
//#region src/changesets/changelog.ts
|
|
55901
|
+
/**
|
|
55902
|
+
* Changesets API changelog formatter shim for \@savvy-web/silk.
|
|
55903
|
+
*
|
|
55904
|
+
* Drop-in replacement for \@savvy-web/changesets/changelog (superseded by
|
|
55905
|
+
* \@savvy-web/changelog, which this mirrors exactly). The default export is
|
|
55906
|
+
* the ChangelogFunctions object consumed by the Changesets CLI via the
|
|
55907
|
+
* changelog field in .changeset/config.json.
|
|
55908
|
+
*
|
|
55909
|
+
* This shim is the host adapter for the changesets CLI, a foreign process
|
|
55910
|
+
* that supplies no context of its own, so the warning mode is read from
|
|
55911
|
+
* `process.env` HERE and handed to the engine, which never reads it.
|
|
55912
|
+
*
|
|
55913
|
+
* @packageDocumentation
|
|
55914
|
+
*/
|
|
55915
|
+
const logMode = () => {
|
|
55916
|
+
if (process.env.VITEST) return "silent";
|
|
55917
|
+
if (process.env.GITHUB_ACTIONS === "true") return "github";
|
|
55918
|
+
return "stderr";
|
|
55919
|
+
};
|
|
55920
|
+
const changelogFunctions = changesets_exports.makeChangelogFunctions({ logMode: logMode() });
|
|
55854
55921
|
//#endregion
|
|
55855
55922
|
module.exports = changelogFunctions;
|