@savvy-web/silk 3.15.2 → 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.
@@ -1,9 +1,9 @@
1
1
  import { builtinModules, createRequire } from "node:module";
2
- import { CommentStyle, SectionId } from "@effected/templates";
3
2
  import { Context, Data, Effect, FileSystem, Layer, Option, Path, Result, Schema, SchemaIssue, SchemaTransformation } from "effect";
3
+ import { CommentStyle, SectionId } from "@effected/templates";
4
+ import { PublishTarget, PublishabilityDetector, WorkspaceDiscovery, WorkspaceSnapshots, WorkspaceStateSnapshot, Workspaces } from "@effected/workspaces";
4
5
  import * as path$1 from "node:path";
5
6
  import { basename, delimiter, dirname, isAbsolute, join, normalize, relative, resolve, sep } from "node:path";
6
- import { PublishTarget, PublishabilityDetector, WorkspaceDiscovery, WorkspaceSnapshots, WorkspaceStateSnapshot, Workspaces } from "@effected/workspaces";
7
7
  import * as fs$1 from "node:fs/promises";
8
8
  import * as util from "node:util";
9
9
  import { format, inspect, styleText } from "node:util";
@@ -75,7 +75,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
75
75
  var __require$1 = /* #__PURE__ */ (() => createRequire(import.meta.url))();
76
76
 
77
77
  //#endregion
78
- //#region ../silk-effects/dist/dev/pkg/errors/ChangesetConfigError.js
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
  *
@@ -93,7 +93,451 @@ var ChangesetConfigError = class extends Data.TaggedError("ChangesetConfigError"
93
93
  };
94
94
 
95
95
  //#endregion
96
- //#region ../silk-effects/dist/dev/pkg/schemas/VersioningSchemas.js
96
+ //#region ../silk-core/dist/dev/pkg/errors/PublishTargetBindingError.js
97
+ /**
98
+ * Raised when publishability detection selects a directory that the package's
99
+ * `dist/prod/targets.json` binding does not describe.
100
+ *
101
+ * @remarks
102
+ * The bundler's prod build writes `targets.json` naming every byte-group
103
+ * directory it produced. Once that binding exists it is authoritative: the only
104
+ * directories whose bytes may be published are the ones it lists. A detector
105
+ * that returns anything else — most often `publishConfig.directory` pointing at
106
+ * a **dev** build, because silk mode was misdetected — is about to pack an
107
+ * unresolved workspace manifest and ship it to a registry.
108
+ *
109
+ * That is the `yaml-effect@0.7.1` failure: detection picked `dist/dev/pkg`, the
110
+ * dev manifest still carried `catalog:` specifiers, and the published package
111
+ * was uninstallable (`EUNSUPPORTEDPROTOCOL`).
112
+ *
113
+ * @since 3.1.0
114
+ * @public
115
+ */
116
+ var PublishTargetBindingError = class extends Data.TaggedError("PublishTargetBindingError") {
117
+ get message() {
118
+ 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.`;
119
+ }
120
+ };
121
+
122
+ //#endregion
123
+ //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/IssueReferences.js
124
+ /**
125
+ * GitHub's closing-keyword issue-reference grammar, as pure functions.
126
+ *
127
+ * @remarks
128
+ * GitHub links an issue to a pull request when the PR's description carries
129
+ * `<keyword> #<number>` for one of nine documented keywords. Consumers speak
130
+ * that grammar in two distinct dialects, and this module models exactly those
131
+ * two — no service, no layer, nothing but strings in and values out:
132
+ *
133
+ * - **Inline-in-prose** ({@link harvestIssueReferences}): a reference may appear anywhere in
134
+ * running text — `"fixes #12 and closes #13"` — with mandatory whitespace
135
+ * and **no colon**, because that is the spelling GitHub itself scans PR
136
+ * bodies for. This is the dialect a release pipeline harvests from commit
137
+ * subjects and PR descriptions.
138
+ * - **Bare-line** ({@link parseBareLineReference}): the whole line, after trimming, *is*
139
+ * the reference — `"Closes: #12"` — with an **optional colon**, because a
140
+ * generated references region writes one reference per line and a colon
141
+ * reads better there. GitHub does not require the colon; the region format
142
+ * allows it, so the parser must too. The dialects differ because their
143
+ * producers do: prose is written by humans for GitHub's scanner, the region
144
+ * is written by tooling for humans.
145
+ *
146
+ * Deliberately out of scope this round: cross-repo references
147
+ * (`owner/repo#N`) and full-URL references
148
+ * (`https://github.com/owner/repo/issues/N`). Both are real GitHub spellings;
149
+ * neither dialect's consumers emit them yet, and guessing at their shape here
150
+ * would freeze an API nobody has driven.
151
+ */
152
+ /**
153
+ * The nine closing keywords GitHub documents, lowercased.
154
+ *
155
+ * @public
156
+ */
157
+ const CLOSING_KEYWORDS = [
158
+ "close",
159
+ "closes",
160
+ "closed",
161
+ "fix",
162
+ "fixes",
163
+ "fixed",
164
+ "resolve",
165
+ "resolves",
166
+ "resolved"
167
+ ];
168
+ /**
169
+ * Both patterns derive from {@link CLOSING_KEYWORDS} so the constant and the
170
+ * grammar cannot drift. Alternation order is safe: the regex engine backtracks
171
+ * through alternatives, so `close` matching inside `closes` fails at the
172
+ * mandatory `#`-introducer and retries the longer keyword.
173
+ */
174
+ const KEYWORDS = CLOSING_KEYWORDS.join("|");
175
+ /** Inline-in-prose: mandatory whitespace, no colon. */
176
+ const INLINE_PATTERN = new RegExp(`\\b(${KEYWORDS})\\s+#(\\d+)`, "gi");
177
+ /**
178
+ * Bare-line: optional colon, then mandatory same-line whitespace. `[ \t]`
179
+ * rather than `\s`, so an embedded newline cannot smuggle two lines past a
180
+ * parser whose contract is one.
181
+ */
182
+ const BARE_LINE_PATTERN = new RegExp(`^(${KEYWORDS}):?[ \\t]+#(\\d+)$`, "i");
183
+
184
+ //#endregion
185
+ //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/ClosingList.js
186
+ /**
187
+ * The closing-list dialect: one whole line naming several issues at once.
188
+ *
189
+ * @remarks
190
+ * The third dialect, alongside the two in `IssueReferences`: after trimming,
191
+ * the **entire** line must be `<keyword>[:] <list>` — keyword
192
+ * case-insensitive (lowercased to canonical form in the result), colon
193
+ * optional, and the list one or more `#<digits>` items separated by `,`,
194
+ * `and`, or the Oxford `, and`. Whitespace inside the line is `[ \t]` only,
195
+ * so an embedded newline cannot smuggle two lines past a parser whose
196
+ * contract is one — the same posture as the bare-line pattern. Any trailing
197
+ * content after the list rejects the line; duplicates are preserved in order,
198
+ * because whether `#1, #1` means one issue or two is the caller's business.
199
+ *
200
+ * Two keyword sets play here. {@link parseClosingList} accepts only the nine
201
+ * closing keywords and yields a {@link ClosingList}; {@link parseReferenceList}
202
+ * additionally accepts the non-closing {@link REFERENCE_KEYWORDS} (`ref`,
203
+ * `refs`, `references`) and reports which set matched via
204
+ * {@link ReferenceList}'s `closing` flag.
205
+ *
206
+ * An item whose digits exceed `Number.MAX_SAFE_INTEGER` rejects the **whole
207
+ * line**, where `harvestIssueReferences` merely skips the one match. The
208
+ * asymmetry is deliberate: a harvest drops one reference out of running
209
+ * prose, but a list line is a single claim about a set of issues, and
210
+ * returning the parseable subset would misrepresent the line as claiming
211
+ * less than it does.
212
+ *
213
+ * Complexity posture: parsing is a single left-to-right character scan —
214
+ * this module contains **no regular expressions at all** — so worst-case
215
+ * time is linear in the line length by construction. There is no
216
+ * backtracking engine to feed, no polynomial blow-up for a scanner to flag,
217
+ * and therefore no input truncation.
218
+ *
219
+ * Beyond the whole-line parsers, {@link harvestReferenceLists} generalizes
220
+ * the same list grammar to the inline-in-prose posture — several lists on
221
+ * one line of running text — and {@link parseClosingLists} /
222
+ * {@link parseReferenceLists} apply the whole-line parsers per line of a
223
+ * multi-line text. All of them ride the same character scan; the no-regex
224
+ * promise above covers every export here.
225
+ */
226
+ /**
227
+ * The non-closing reference keywords the list dialect accepts, lowercased.
228
+ *
229
+ * @remarks
230
+ * GitHub does not act on these — they associate without closing — but a
231
+ * references region writes them, so the parser must read them.
232
+ *
233
+ * @public
234
+ */
235
+ const REFERENCE_KEYWORDS = [
236
+ "ref",
237
+ "refs",
238
+ "references"
239
+ ];
240
+ /**
241
+ * Both keyword tables ARE the exported constants — membership sets built from
242
+ * them once — so the constants and the grammar cannot drift.
243
+ */
244
+ const ALL_KEYWORDS = /* @__PURE__ */ new Set([...CLOSING_KEYWORDS, ...REFERENCE_KEYWORDS]);
245
+ /** Membership test for reporting `closing`, widened once so no call casts. */
246
+ const CLOSING_SET = new Set(CLOSING_KEYWORDS);
247
+ const HASH = 35;
248
+ const COLON = 58;
249
+ const COMMA = 44;
250
+ /** `[ \t]` — the only whitespace the dialect admits, per the module remarks. */
251
+ const isSpaceTab = (code) => code === 32 || code === 9;
252
+ const isDigit$2 = (code) => code >= 48 && code <= 57;
253
+ const isAsciiLetter = (code) => code >= 65 && code <= 90 || code >= 97 && code <= 122;
254
+ /** The index after the run of `[ \t]` starting at `from` (possibly `from` itself). */
255
+ const skipSpaceTab = (line, from) => {
256
+ let index = from;
257
+ while (index < line.length && isSpaceTab(line.charCodeAt(index))) index += 1;
258
+ return index;
259
+ };
260
+ /**
261
+ * One list item at exactly `from`: `#<digits>` and the index one past it.
262
+ * Digits exceeding `Number.MAX_SAFE_INTEGER` report `"unsafe"` rather than a
263
+ * silently rounded issue number, still carrying the index one past the digit
264
+ * run so a caller can skip the item's extent; the whole-line parsers reject
265
+ * on it and {@link harvestReferenceLists} abandons the entire candidate —
266
+ * see the module remarks for why a list never yields a partial reading.
267
+ * Anything that is not `#<digits>` at all is `undefined`.
268
+ */
269
+ const readItem = (line, from) => {
270
+ if (line.charCodeAt(from) !== HASH) return void 0;
271
+ const start = from + 1;
272
+ let index = start;
273
+ while (index < line.length && isDigit$2(line.charCodeAt(index))) index += 1;
274
+ if (index === start) return void 0;
275
+ const value = Number(line.slice(start, index));
276
+ return Number.isSafeInteger(value) ? {
277
+ kind: "item",
278
+ value,
279
+ next: index
280
+ } : {
281
+ kind: "unsafe",
282
+ next: index
283
+ };
284
+ };
285
+ /**
286
+ * One separator at exactly `from`: a comma with optional surrounding `[ \t]`
287
+ * and an optional Oxford `and` (consumed only when its own trailing `[ \t]+`
288
+ * is present), or a bare `and` requiring `[ \t]+` on both sides. `and` is
289
+ * lowercase-only — the keyword head is case-insensitive, the separator is
290
+ * not. Returns the index where the next item must start, or `undefined` when
291
+ * no separator is present.
292
+ */
293
+ const scanSeparator = (line, from) => {
294
+ const afterLeading = skipSpaceTab(line, from);
295
+ if (line.charCodeAt(afterLeading) === COMMA) {
296
+ const afterComma = skipSpaceTab(line, afterLeading + 1);
297
+ if (line.startsWith("and", afterComma)) {
298
+ const afterAnd = skipSpaceTab(line, afterComma + 3);
299
+ if (afterAnd > afterComma + 3) return afterAnd;
300
+ }
301
+ return afterComma;
302
+ }
303
+ if (afterLeading > from && line.startsWith("and", afterLeading)) {
304
+ const afterAnd = skipSpaceTab(line, afterLeading + 3);
305
+ if (afterAnd > afterLeading + 3) return afterAnd;
306
+ }
307
+ };
308
+ /**
309
+ * The scan walk: item, then separator, then item, until the cursor stands
310
+ * exactly at the end of the string. Anything else — a malformed item, an
311
+ * unknown separator, trailing content, an unsafe issue number — is
312
+ * `undefined`, and the caller rejects the whole line.
313
+ */
314
+ const parseItems = (line, from) => {
315
+ const issueNumbers = [];
316
+ let cursor = from;
317
+ for (;;) {
318
+ const item = readItem(line, cursor);
319
+ if (item === void 0 || item.kind === "unsafe") return void 0;
320
+ issueNumbers.push(item.value);
321
+ cursor = item.next;
322
+ if (cursor === line.length) return issueNumbers;
323
+ const next = scanSeparator(line, cursor);
324
+ if (next === void 0) return void 0;
325
+ cursor = next;
326
+ }
327
+ };
328
+ /**
329
+ * The list a whole line carries under either keyword set, or `Option.none()`.
330
+ *
331
+ * @remarks
332
+ * Accepts the nine closing keywords plus {@link REFERENCE_KEYWORDS}, and
333
+ * reports which set matched in the result's `closing` flag. Grammar,
334
+ * whole-line posture and the whole-line rejection of unsafe issue numbers
335
+ * are in the module remarks.
336
+ *
337
+ * @public
338
+ */
339
+ const parseReferenceList = (line) => {
340
+ const trimmed = line.trim();
341
+ let letters = 0;
342
+ while (letters < trimmed.length && isAsciiLetter(trimmed.charCodeAt(letters))) letters += 1;
343
+ if (letters === 0) return Option.none();
344
+ const keyword = trimmed.slice(0, letters).toLowerCase();
345
+ if (!ALL_KEYWORDS.has(keyword)) return Option.none();
346
+ let cursor = letters;
347
+ if (trimmed.charCodeAt(cursor) === COLON) cursor += 1;
348
+ const afterWhitespace = skipSpaceTab(trimmed, cursor);
349
+ if (afterWhitespace === cursor) return Option.none();
350
+ const issueNumbers = parseItems(trimmed, afterWhitespace);
351
+ if (issueNumbers === void 0) return Option.none();
352
+ return Option.some({
353
+ keyword,
354
+ closing: CLOSING_SET.has(keyword),
355
+ issueNumbers
356
+ });
357
+ };
358
+ /**
359
+ * Every reference list a text carries, line by line, across both postures.
360
+ *
361
+ * @remarks
362
+ * The trailer/prose interleave consumers otherwise hand-roll: each line is
363
+ * tried as a whole-line reference list first ({@link parseReferenceList} —
364
+ * colon-tolerant, per the line dialect), and only a line that is not one is
365
+ * harvested inline ({@link harvestReferenceLists} — no colon, per the inline
366
+ * dialect). The preference means a colon-less trailer line contributes its
367
+ * list exactly once, never once per posture.
368
+ *
369
+ * Results carry no offsets, deliberately: this is the line-granular
370
+ * composition, and a consumer that needs spans uses
371
+ * {@link harvestReferenceLists} directly. Duplicates are preserved, in
372
+ * document order.
373
+ *
374
+ * @public
375
+ */
376
+ const collectReferenceLists = (text) => {
377
+ const lists = [];
378
+ for (const line of text.split("\n")) {
379
+ const whole = parseReferenceList(line);
380
+ if (Option.isSome(whole)) {
381
+ lists.push(whole.value);
382
+ continue;
383
+ }
384
+ for (const harvested of harvestReferenceLists(line)) lists.push({
385
+ keyword: harvested.keyword,
386
+ closing: harvested.closing,
387
+ issueNumbers: harvested.issueNumbers
388
+ });
389
+ }
390
+ return lists;
391
+ };
392
+ /** `[A-Za-z0-9_]` — the word-boundary alphabet the inline dialects use. */
393
+ const isWordChar = (code) => isAsciiLetter(code) || isDigit$2(code) || code === 95;
394
+ /**
395
+ * The full JavaScript `\s` set, spelled as a predicate so the module keeps
396
+ * its no-regex promise: ASCII whitespace, NEL-adjacent controls, and the
397
+ * Unicode space separators. Only the keyword→first-item gap of
398
+ * {@link harvestReferenceLists} admits this set — everything inside a list
399
+ * stays `[ \t]`, per the module remarks.
400
+ */
401
+ 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;
402
+ /**
403
+ * Every reference list found inline in `text`, in document order.
404
+ *
405
+ * @remarks
406
+ * The inline-in-prose posture generalized to lists:
407
+ * `Closes #123, Fixes #456` in one line of a commit body yields two
408
+ * single-item lists, where
409
+ * `harvestIssueReferences` reads only the first reference of each and the
410
+ * whole-line parsers read neither. The grammar per candidate:
411
+ *
412
+ * - The keyword is case-insensitive, drawn from either keyword set,
413
+ * lowercased to canonical form in the result, with `closing` reported by
414
+ * set membership. Word boundaries hold on both sides: the characters
415
+ * immediately before and after the keyword's letter run must not be
416
+ * `[A-Za-z0-9_]`, so `recloses #1` and `1closes #1` do not match.
417
+ * - **No colon** — exactly like `harvestIssueReferences`, the colon spelling
418
+ * belongs to the line dialects ({@link parseReferenceList} and the
419
+ * bare-line parser), so `closes: #1` inline yields nothing.
420
+ * - The keyword→first-item gap is any run of whitespace **including
421
+ * newlines**, mirroring the inline dialect's `\s+`.
422
+ * - List continuation uses the `,` / `and` / Oxford separators with `[ \t]`
423
+ * whitespace only, so a list cannot continue past a newline — a later
424
+ * line makes its own claims.
425
+ * - Items are `#<digits>`; duplicates are preserved in order.
426
+ *
427
+ * A list ends at its last valid item: in `closes #1 and fixes #2` the
428
+ * ` and ` before `fixes` fails as a separator because what follows is not
429
+ * `#`, so the text yields `closes: [1]` then `fixes: [2]`. An item past
430
+ * `Number.MAX_SAFE_INTEGER` anywhere in a candidate skips the **entire**
431
+ * candidate — never a partial list, for the same reason
432
+ * {@link parseReferenceList} rejects the whole line — and scanning resumes
433
+ * after the candidate's scanned extent.
434
+ *
435
+ * Like everything in this module, the harvest is a single left-to-right
436
+ * character scan with no regular expressions, so time stays linear in the
437
+ * text length and no input is truncated.
438
+ *
439
+ * @public
440
+ */
441
+ const harvestReferenceLists = (text) => {
442
+ const lists = [];
443
+ let index = 0;
444
+ while (index < text.length) {
445
+ if (!isAsciiLetter(text.charCodeAt(index))) {
446
+ index += 1;
447
+ continue;
448
+ }
449
+ const runStart = index;
450
+ let runEnd = index + 1;
451
+ while (runEnd < text.length && isAsciiLetter(text.charCodeAt(runEnd))) runEnd += 1;
452
+ if (runStart > 0 && isWordChar(text.charCodeAt(runStart - 1)) || runEnd < text.length && isWordChar(text.charCodeAt(runEnd))) {
453
+ index = runEnd;
454
+ continue;
455
+ }
456
+ const keyword = text.slice(runStart, runEnd).toLowerCase();
457
+ if (!ALL_KEYWORDS.has(keyword)) {
458
+ index = runEnd;
459
+ continue;
460
+ }
461
+ let cursor = runEnd;
462
+ while (cursor < text.length && isAnyWhitespace(text.charCodeAt(cursor))) cursor += 1;
463
+ const first = cursor === runEnd ? void 0 : readItem(text, cursor);
464
+ if (first === void 0) {
465
+ index = runEnd;
466
+ continue;
467
+ }
468
+ if (first.kind === "unsafe") {
469
+ index = first.next;
470
+ continue;
471
+ }
472
+ const issueNumbers = [first.value];
473
+ let end = first.next;
474
+ let unsafeNext;
475
+ for (;;) {
476
+ const next = scanSeparator(text, end);
477
+ if (next === void 0) break;
478
+ const item = readItem(text, next);
479
+ if (item === void 0) break;
480
+ if (item.kind === "unsafe") {
481
+ unsafeNext = item.next;
482
+ break;
483
+ }
484
+ issueNumbers.push(item.value);
485
+ end = item.next;
486
+ }
487
+ if (unsafeNext !== void 0) {
488
+ index = unsafeNext;
489
+ continue;
490
+ }
491
+ lists.push({
492
+ keyword,
493
+ closing: CLOSING_SET.has(keyword),
494
+ issueNumbers,
495
+ start: runStart,
496
+ end
497
+ });
498
+ index = end;
499
+ }
500
+ return lists;
501
+ };
502
+
503
+ //#endregion
504
+ //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/KeywordFamily.js
505
+ /**
506
+ * The projection table IS the totality proof: `Record` over the union of
507
+ * both keyword types makes a keyword added to either constant without an
508
+ * entry here fail to compile.
509
+ */
510
+ const FAMILIES = {
511
+ close: "close",
512
+ closes: "close",
513
+ closed: "close",
514
+ fix: "fix",
515
+ fixes: "fix",
516
+ fixed: "fix",
517
+ resolve: "resolve",
518
+ resolves: "resolve",
519
+ resolved: "resolve",
520
+ ref: "ref",
521
+ refs: "ref",
522
+ references: "ref"
523
+ };
524
+ /**
525
+ * The family a keyword belongs to.
526
+ *
527
+ * @remarks
528
+ * Total over both keyword sets by construction — see the module remarks for
529
+ * why an explicit record beats a `startsWith` heuristic. `close`, `closes`
530
+ * and `closed` map to `"close"`; the `fix` and `resolve` conjugations
531
+ * likewise; `ref`, `refs` and `references` map to `"ref"`. The evidence for
532
+ * the projection is downstream: categorized harvesters key maps by family,
533
+ * and each was hand-rolling this collapse.
534
+ *
535
+ * @public
536
+ */
537
+ const keywordFamily = (keyword) => FAMILIES[keyword];
538
+
539
+ //#endregion
540
+ //#region ../silk-core/dist/dev/pkg/schemas/VersioningSchemas.js
97
541
  /**
98
542
  * Configuration for how private packages are handled during versioning.
99
543
  *
@@ -165,7 +609,7 @@ const ChangesetConfigFile = Schema.Struct({
165
609
  *
166
610
  * @remarks
167
611
  * Extends {@link (ChangesetConfigFile:type)} with a `_isSilk` marker flag that is automatically
168
- * set to `true`. Detected by {@link ChangesetConfigReader} when the `changelog` field
612
+ * set to `true`. Detected by `ChangesetConfigReader` when the `changelog` field
169
613
  * references `@savvy-web/changesets`.
170
614
  *
171
615
  * @since 0.1.0
@@ -176,6 +620,26 @@ const SilkChangesetConfigFile = Schema.Struct({
176
620
  _isSilk: Schema.Boolean.pipe(Schema.withDecodingDefaultType(Effect.succeed(true)), Schema.withConstructorDefault(Effect.succeed(true)))
177
621
  });
178
622
 
623
+ //#endregion
624
+ //#region ../silk-core/dist/dev/pkg/utils/TrailingSlash.js
625
+ /**
626
+ * Trim trailing slashes from a string.
627
+ *
628
+ * @remarks
629
+ * Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
630
+ * unanchored at the start, so the engine retries the match from every position
631
+ * and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
632
+ * Only a trailing run of slashes is removed; interior slash runs are untouched.
633
+ *
634
+ * @since 0.1.0
635
+ * @public
636
+ */
637
+ const trimTrailingSlashes = (s) => {
638
+ let end = s.length;
639
+ while (end > 0 && s[end - 1] === "/") end -= 1;
640
+ return s.slice(0, end);
641
+ };
642
+
179
643
  //#endregion
180
644
  //#region ../silk-effects/dist/dev/pkg/services/ChangesetConfigReader.js
181
645
  /**
@@ -206,8 +670,8 @@ function isSilkChangelog(changelog) {
206
670
  *
207
671
  * @remarks
208
672
  * Automatically detects whether the config uses the Silk changelog adapter
209
- * (`@savvy-web/changesets`) and decodes as {@link (SilkChangesetConfigFile:type)} or the
210
- * standard {@link (ChangesetConfigFile:type)} accordingly.
673
+ * (`@savvy-web/changesets`) and decodes as `SilkChangesetConfigFile` or the
674
+ * standard `ChangesetConfigFile` accordingly.
211
675
  *
212
676
  * @example
213
677
  * ```typescript
@@ -285,33 +749,6 @@ var ChangesetConfigReader = class extends Context.Service()("@savvy-web/silk-eff
285
749
  }));
286
750
  };
287
751
 
288
- //#endregion
289
- //#region ../silk-effects/dist/dev/pkg/errors/PublishTargetBindingError.js
290
- /**
291
- * Raised when publishability detection selects a directory that the package's
292
- * `dist/prod/targets.json` binding does not describe.
293
- *
294
- * @remarks
295
- * The bundler's prod build writes `targets.json` naming every byte-group
296
- * directory it produced. Once that binding exists it is authoritative: the only
297
- * directories whose bytes may be published are the ones it lists. A detector
298
- * that returns anything else — most often `publishConfig.directory` pointing at
299
- * a **dev** build, because silk mode was misdetected — is about to pack an
300
- * unresolved workspace manifest and ship it to a registry.
301
- *
302
- * That is the `yaml-effect@0.7.1` failure: detection picked `dist/dev/pkg`, the
303
- * dev manifest still carried `catalog:` specifiers, and the published package
304
- * was uninstallable (`EUNSUPPORTEDPROTOCOL`).
305
- *
306
- * @since 3.1.0
307
- * @public
308
- */
309
- var PublishTargetBindingError = class extends Data.TaggedError("PublishTargetBindingError") {
310
- get message() {
311
- 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.`;
312
- }
313
- };
314
-
315
752
  //#endregion
316
753
  //#region ../silk-effects/dist/dev/pkg/services/ChangesetConfig.js
317
754
  const isSilk = (cfg) => "_isSilk" in cfg && cfg._isSilk === true;
@@ -389,23 +826,6 @@ var ChangesetConfig = class ChangesetConfig extends Context.Service()("@savvy-we
389
826
  }));
390
827
  };
391
828
 
392
- //#endregion
393
- //#region ../silk-effects/dist/dev/pkg/utils/TrailingSlash.js
394
- /**
395
- * Trim trailing slashes from a string.
396
- *
397
- * @remarks
398
- * Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
399
- * unanchored at the start, so the engine retries the match from every position
400
- * and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
401
- * Only a trailing run of slashes is removed; interior slash runs are untouched.
402
- */
403
- const trimTrailingSlashes = (s) => {
404
- let end = s.length;
405
- while (end > 0 && s[end - 1] === "/") end -= 1;
406
- return s.slice(0, end);
407
- };
408
-
409
829
  //#endregion
410
830
  //#region ../silk-effects/dist/dev/pkg/services/SilkPublishability.js
411
831
  const NPM_DEFAULT = "https://registry.npmjs.org/";
@@ -529,7 +949,7 @@ var SilkPublishability = class SilkPublishability {
529
949
  * directories it names. A directory outside the binding means detection did
530
950
  * not select the prod output — the `yaml-effect@0.7.1` shape, where a dev
531
951
  * manifest carrying `catalog:` specifiers was packed and published. Rather
532
- * than ship those bytes, fail with {@link PublishTargetBindingError}.
952
+ * than ship those bytes, fail with `PublishTargetBindingError`.
533
953
  *
534
954
  * Before the prod build runs there is no binding, and the detector's
535
955
  * placeholder directories are left alone.
@@ -2671,6 +3091,67 @@ function makeGitHubTest(responses) {
2671
3091
  } });
2672
3092
  }
2673
3093
 
3094
+ //#endregion
3095
+ //#region ../silk-effects/dist/dev/pkg/changesets/utils/logger.js
3096
+ /**
3097
+ * Warning output for changelog generation, parameterised by a
3098
+ * {@link ChangesetLogMode} reference instead of an ambient environment read.
3099
+ *
3100
+ * @remarks
3101
+ * This module is engine code shared by every front end, so it must not read
3102
+ * `process` — a `process.env` read here would bake one host's environment
3103
+ * into every other. The mode is a `Context.Reference` with a default of
3104
+ * `"stderr"`; a front end that knows it runs under GitHub Actions or a test
3105
+ * runner provides `"github"` or `"silent"` from its own `process.env` read.
3106
+ *
3107
+ * @packageDocumentation
3108
+ */
3109
+ /**
3110
+ * The reference that selects the {@link ChangesetLogModeValue}.
3111
+ *
3112
+ * @remarks
3113
+ * Defaults to `"stderr"` when no front end provides it, so a program that
3114
+ * never touches the reference still reports. Provide with
3115
+ * `Layer.succeed(ChangesetLogMode, "github")` or
3116
+ * `Effect.provideService(ChangesetLogMode, "silent")`.
3117
+ *
3118
+ * @example
3119
+ * ```typescript
3120
+ * import { Effect } from "effect";
3121
+ * import { Changesets } from "\@savvy-web/silk-effects";
3122
+ *
3123
+ * const mode = process.env.GITHUB_ACTIONS === "true" ? "github" : "stderr";
3124
+ * program.pipe(Effect.provideService(Changesets.ChangesetLogMode, mode));
3125
+ * ```
3126
+ *
3127
+ * @public
3128
+ */
3129
+ const ChangesetLogMode = Context.Reference("@savvy-web/silk-effects/Changesets/ChangesetLogMode", { defaultValue: () => "stderr" });
3130
+ /**
3131
+ * Log a warning message according to the {@link ChangesetLogMode} in context.
3132
+ *
3133
+ * @param message - The warning message
3134
+ * @param args - Additional arguments (concatenated with a space in `"github"` mode)
3135
+ * @returns An `Effect` that never fails
3136
+ *
3137
+ * @internal
3138
+ */
3139
+ function logWarning(message, ...args) {
3140
+ return Effect.gen(function* () {
3141
+ switch (yield* ChangesetLogMode) {
3142
+ case "silent": return;
3143
+ case "github": {
3144
+ const text = args.length > 0 ? `${message} ${args.join(" ")}` : message;
3145
+ console.warn(`::warning::${text}`);
3146
+ return;
3147
+ }
3148
+ case "stderr":
3149
+ console.warn(message, ...args);
3150
+ return;
3151
+ }
3152
+ });
3153
+ }
3154
+
2674
3155
  //#endregion
2675
3156
  //#region ../silk-effects/dist/dev/pkg/changesets/schemas/primitives.js
2676
3157
  /**
@@ -2953,7 +3434,7 @@ const DependencyTableRowSchema = Schema.Struct({
2953
3434
  const DependencyTableSchema = Schema.Array(DependencyTableRowSchema).check(Schema.isMinLength(1));
2954
3435
 
2955
3436
  //#endregion
2956
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/MarkdownNode.js
3437
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/MarkdownNode.js
2957
3438
  /**
2958
3439
  * A single point in a source document: 1-based `line` and `column`, 0-based
2959
3440
  * `offset`.
@@ -3760,7 +4241,7 @@ const MarkdownNode = Schema.suspend(() => Schema.Union([
3760
4241
  ]));
3761
4242
 
3762
4243
  //#endregion
3763
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/frontmatter.js
4244
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/frontmatter.js
3764
4245
  const FENCES = /* @__PURE__ */ new Map([
3765
4246
  ["---", {
3766
4247
  format: "yaml",
@@ -3815,7 +4296,7 @@ const scanFrontmatter = (lines, text) => {
3815
4296
  };
3816
4297
 
3817
4298
  //#endregion
3818
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.9.0_effect@4.0.0-rc.112/node_modules/@effected/jsonc/JsoncNode.js
4299
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/JsoncNode.js
3819
4300
  /**
3820
4301
  * Discriminator values for JSONC AST node types: the JSON value types
3821
4302
  * (`string`/`number`/`boolean`/`null`), the structural types
@@ -3991,10 +4472,10 @@ function evaluateNode(node, depth) {
3991
4472
  }
3992
4473
 
3993
4474
  //#endregion
3994
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.9.0_effect@4.0.0-rc.112/node_modules/@effected/jsonc/internal/scanner.js
4475
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/internal/scanner.js
3995
4476
  const isWhitespace = (ch) => ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 65279;
3996
4477
  const isLineBreak$1 = (ch) => ch === 10 || ch === 13 || ch === 8232 || ch === 8233;
3997
- const isDigit$2 = (ch) => ch >= 48 && ch <= 57;
4478
+ const isDigit$1 = (ch) => ch >= 48 && ch <= 57;
3998
4479
  /**
3999
4480
  * Create a stateful {@link Scanner} for the given JSONC string.
4000
4481
  *
@@ -4099,31 +4580,31 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
4099
4580
  if (text.charCodeAt(pos) === 45) pos++;
4100
4581
  if (text.charCodeAt(pos) === 48) pos++;
4101
4582
  else {
4102
- if (!isDigit$2(text.charCodeAt(pos))) {
4583
+ if (!isDigit$1(text.charCodeAt(pos))) {
4103
4584
  tokenError = "UnexpectedEndOfNumber";
4104
4585
  return text.substring(start, pos);
4105
4586
  }
4106
4587
  pos++;
4107
- while (pos < len && isDigit$2(text.charCodeAt(pos))) pos++;
4588
+ while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
4108
4589
  }
4109
4590
  if (pos < len && text.charCodeAt(pos) === 46) {
4110
4591
  pos++;
4111
- if (!isDigit$2(text.charCodeAt(pos))) {
4592
+ if (!isDigit$1(text.charCodeAt(pos))) {
4112
4593
  tokenError = "UnexpectedEndOfNumber";
4113
4594
  return text.substring(start, pos);
4114
4595
  }
4115
4596
  pos++;
4116
- while (pos < len && isDigit$2(text.charCodeAt(pos))) pos++;
4597
+ while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
4117
4598
  }
4118
4599
  if (pos < len && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) {
4119
4600
  pos++;
4120
4601
  if (pos < len && (text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45)) pos++;
4121
- if (!isDigit$2(text.charCodeAt(pos))) {
4602
+ if (!isDigit$1(text.charCodeAt(pos))) {
4122
4603
  tokenError = "UnexpectedEndOfNumber";
4123
4604
  return text.substring(start, pos);
4124
4605
  }
4125
4606
  pos++;
4126
- while (pos < len && isDigit$2(text.charCodeAt(pos))) pos++;
4607
+ while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
4127
4608
  }
4128
4609
  return text.substring(start, pos);
4129
4610
  };
@@ -4229,7 +4710,7 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
4229
4710
  return token;
4230
4711
  }
4231
4712
  case 45:
4232
- if (pos + 1 < len && isDigit$2(text.charCodeAt(pos + 1))) {
4713
+ if (pos + 1 < len && isDigit$1(text.charCodeAt(pos + 1))) {
4233
4714
  tokenValue = scanNumber();
4234
4715
  token = "Number";
4235
4716
  return token;
@@ -4240,7 +4721,7 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
4240
4721
  tokenError = "InvalidSymbol";
4241
4722
  return token;
4242
4723
  default:
4243
- if (isDigit$2(ch)) {
4724
+ if (isDigit$1(ch)) {
4244
4725
  tokenValue = scanNumber();
4245
4726
  token = "Number";
4246
4727
  return token;
@@ -4293,7 +4774,7 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
4293
4774
  };
4294
4775
 
4295
4776
  //#endregion
4296
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.9.0_effect@4.0.0-rc.112/node_modules/@effected/jsonc/internal/skip.js
4777
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/internal/skip.js
4297
4778
  /**
4298
4779
  * Iteratively consume the value beginning at the cursor's current token and
4299
4780
  * return its tight end offset (excludes trailing whitespace/comments).
@@ -4324,7 +4805,7 @@ const skipBalancedValue = (cursor) => {
4324
4805
  };
4325
4806
 
4326
4807
  //#endregion
4327
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.9.0_effect@4.0.0-rc.112/node_modules/@effected/jsonc/internal/parser.js
4808
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/internal/parser.js
4328
4809
  /**
4329
4810
  * The public parse-error code vocabulary. The facade builds its `@public`
4330
4811
  * `JsoncParseErrorCode` schema from this array; the parser produces these codes
@@ -4738,7 +5219,7 @@ const parseTree$2 = (text, flags) => {
4738
5219
  };
4739
5220
 
4740
5221
  //#endregion
4741
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.9.0_effect@4.0.0-rc.112/node_modules/@effected/jsonc/Jsonc.js
5222
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/Jsonc.js
4742
5223
  /**
4743
5224
  * The single public parse-error code vocabulary, appearing as the `code` field
4744
5225
  * of {@link JsoncParseErrorDetail}.
@@ -5223,7 +5704,7 @@ var Jsonc = class Jsonc {
5223
5704
  */
5224
5705
  static fromString(options) {
5225
5706
  const flags = toFlags(options);
5226
- return Schema.String.pipe(Schema.decodeTo(Schema.Unknown, SchemaTransformation.transformOrFail({
5707
+ return Schema.String.pipe(Schema.decodeTo(Schema.Unknown, SchemaTransformation.transformEffect({
5227
5708
  decode: (input) => {
5228
5709
  const { value, errors } = parseValue(input, flags);
5229
5710
  if (errors.length > 0) {
@@ -5307,7 +5788,7 @@ var Jsonc = class Jsonc {
5307
5788
  };
5308
5789
 
5309
5790
  //#endregion
5310
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.9.0_effect@4.0.0-rc.112/node_modules/@effected/jsonc/JsoncEdit.js
5791
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/JsoncEdit.js
5311
5792
  /**
5312
5793
  * A range within a JSONC document, expressed as a zero-based character
5313
5794
  * `offset` and a `length` in UTF-16 code units. Pass to `JsoncFormatter.format`
@@ -5378,7 +5859,7 @@ var JsoncEdit = class extends Schema.Class("JsoncEdit")({
5378
5859
  };
5379
5860
 
5380
5861
  //#endregion
5381
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.9.0_effect@4.0.0-rc.112/node_modules/@effected/jsonc/internal/navigate.js
5862
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/internal/navigate.js
5382
5863
  /**
5383
5864
  * Resolve `path` against `text`, returning where the target is (or where it
5384
5865
  * would be inserted). `path` must be non-empty — the whole-document case is
@@ -5506,7 +5987,7 @@ function navigate(text, path) {
5506
5987
  }
5507
5988
 
5508
5989
  //#endregion
5509
- //#region ../../node_modules/.pnpm/@effected+jsonc@0.9.0_effect@4.0.0-rc.112/node_modules/@effected/jsonc/JsoncModifier.js
5990
+ //#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/JsoncModifier.js
5510
5991
  /**
5511
5992
  * Raised when `JsoncModifier.modify` cannot navigate the requested path: the
5512
5993
  * value at `depth` is not the container kind (`expected`) the next path segment
@@ -5635,7 +6116,7 @@ var JsoncModifier = class {
5635
6116
  };
5636
6117
 
5637
6118
  //#endregion
5638
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/carriers.js
6119
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/carriers.js
5639
6120
  /**
5640
6121
  * P1's error-code vocabulary. Widens as later phases add parse-error kinds;
5641
6122
  * P1 registers exactly one, the hardening-guard trip.
@@ -5676,7 +6157,7 @@ var GuardExceeded$1 = class extends Error {
5676
6157
  const isGuardExceeded$1 = (u) => u instanceof GuardExceeded$1;
5677
6158
 
5678
6159
  //#endregion
5679
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/MarkdownDiagnostic.js
6160
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/MarkdownDiagnostic.js
5680
6161
  /**
5681
6162
  * Error codes `Markdown.parse`/`MarkdownDocument.parse` can fail with. P1
5682
6163
  * registers exactly the hardening-guard trip; later phases widen the union
@@ -5757,7 +6238,7 @@ function lineChar(text, offset) {
5757
6238
  }
5758
6239
 
5759
6240
  //#endregion
5760
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blockTypes.js
6241
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blockTypes.js
5761
6242
  /** Narrow materialized children to the flow content most constructs contain. */
5762
6243
  const flowChildren = (children) => children.filter((child) => child.type !== "root" && child.type !== "listItem" && child.type !== "tableRow" && child.type !== "tableCell");
5763
6244
  /** Narrow materialized children to the list items a list contains. */
@@ -5783,7 +6264,7 @@ const makeBlockNode = (type, startOffset, startLine, depth = 0) => ({
5783
6264
  });
5784
6265
 
5785
6266
  //#endregion
5786
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/preprocess.js
6267
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/preprocess.js
5787
6268
  /**
5788
6269
  * Split `text` into lines, preserving each line's absolute start offset.
5789
6270
  *
@@ -5838,7 +6319,7 @@ const peekCode = (line, position) => position >= 0 && position < line.length ? l
5838
6319
  const columnsToNextTabStop = (column) => 4 - column % 4;
5839
6320
 
5840
6321
  //#endregion
5841
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/htmlTags.js
6322
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/htmlTags.js
5842
6323
  const TAGNAME = "[A-Za-z][A-Za-z0-9-]*";
5843
6324
  /** An opening tag, with any attributes and an optional self-closing slash. */
5844
6325
  const OPENTAG = `<${TAGNAME}(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^"'=<>\`\\x00-\\x20]+|'[^']*'|"[^"]*"))?)*\\s*/?>`;
@@ -5850,7 +6331,7 @@ const HTMLTAG = `(?:${OPENTAG}|${CLOSETAG}|<!-->|<!--->|<!--[\\s\\S]*?-->|[<][?]
5850
6331
  const reHtmlTag = new RegExp(`^${HTMLTAG}`);
5851
6332
 
5852
6333
  //#endregion
5853
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/htmlBlock.js
6334
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/htmlBlock.js
5854
6335
  const C_LESSTHAN$3 = 60;
5855
6336
  const reHtmlBlockOpen = [
5856
6337
  /./,
@@ -5917,7 +6398,7 @@ const htmlBlockStart = {
5917
6398
  };
5918
6399
 
5919
6400
  //#endregion
5920
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/atxHeading.js
6401
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/atxHeading.js
5921
6402
  const reATXHeadingMarker = /^#{1,6}(?:[ \t]+|$)/;
5922
6403
  const reOnlyTrailingHashes = /^[ \t]*#+[ \t]*$/;
5923
6404
  const reClosingHashes = /[ \t]+#+[ \t]*$/;
@@ -5968,7 +6449,7 @@ const atxHeadingStart = {
5968
6449
  };
5969
6450
 
5970
6451
  //#endregion
5971
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/blockquote.js
6452
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/blockquote.js
5972
6453
  const C_GREATERTHAN = 62;
5973
6454
  /** Blockquote: continues while each line carries its `>` marker. */
5974
6455
  const blockquoteConstruct = {
@@ -6003,12 +6484,12 @@ const blockquoteStart = {
6003
6484
  };
6004
6485
 
6005
6486
  //#endregion
6006
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/entityMap.js
6487
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/entityMap.js
6007
6488
  /** The HTML5 named character references, keyed without `&` or `;`. */
6008
6489
  const ENTITY_MAP = new Map(JSON.parse("[[\"AElig\",\"Æ\"],[\"AMP\",\"&\"],[\"Aacute\",\"Á\"],[\"Abreve\",\"Ă\"],[\"Acirc\",\"Â\"],[\"Acy\",\"А\"],[\"Afr\",\"𝔄\"],[\"Agrave\",\"À\"],[\"Alpha\",\"Α\"],[\"Amacr\",\"Ā\"],[\"And\",\"⩓\"],[\"Aogon\",\"Ą\"],[\"Aopf\",\"𝔸\"],[\"ApplyFunction\",\"⁡\"],[\"Aring\",\"Å\"],[\"Ascr\",\"𝒜\"],[\"Assign\",\"≔\"],[\"Atilde\",\"Ã\"],[\"Auml\",\"Ä\"],[\"Backslash\",\"∖\"],[\"Barv\",\"⫧\"],[\"Barwed\",\"⌆\"],[\"Bcy\",\"Б\"],[\"Because\",\"∵\"],[\"Bernoullis\",\"ℬ\"],[\"Beta\",\"Β\"],[\"Bfr\",\"𝔅\"],[\"Bopf\",\"𝔹\"],[\"Breve\",\"˘\"],[\"Bscr\",\"ℬ\"],[\"Bumpeq\",\"≎\"],[\"CHcy\",\"Ч\"],[\"COPY\",\"©\"],[\"Cacute\",\"Ć\"],[\"Cap\",\"⋒\"],[\"CapitalDifferentialD\",\"ⅅ\"],[\"Cayleys\",\"ℭ\"],[\"Ccaron\",\"Č\"],[\"Ccedil\",\"Ç\"],[\"Ccirc\",\"Ĉ\"],[\"Cconint\",\"∰\"],[\"Cdot\",\"Ċ\"],[\"Cedilla\",\"¸\"],[\"CenterDot\",\"·\"],[\"Cfr\",\"ℭ\"],[\"Chi\",\"Χ\"],[\"CircleDot\",\"⊙\"],[\"CircleMinus\",\"⊖\"],[\"CirclePlus\",\"⊕\"],[\"CircleTimes\",\"⊗\"],[\"ClockwiseContourIntegral\",\"∲\"],[\"CloseCurlyDoubleQuote\",\"”\"],[\"CloseCurlyQuote\",\"’\"],[\"Colon\",\"∷\"],[\"Colone\",\"⩴\"],[\"Congruent\",\"≡\"],[\"Conint\",\"∯\"],[\"ContourIntegral\",\"∮\"],[\"Copf\",\"ℂ\"],[\"Coproduct\",\"∐\"],[\"CounterClockwiseContourIntegral\",\"∳\"],[\"Cross\",\"⨯\"],[\"Cscr\",\"𝒞\"],[\"Cup\",\"⋓\"],[\"CupCap\",\"≍\"],[\"DD\",\"ⅅ\"],[\"DDotrahd\",\"⤑\"],[\"DJcy\",\"Ђ\"],[\"DScy\",\"Ѕ\"],[\"DZcy\",\"Џ\"],[\"Dagger\",\"‡\"],[\"Darr\",\"↡\"],[\"Dashv\",\"⫤\"],[\"Dcaron\",\"Ď\"],[\"Dcy\",\"Д\"],[\"Del\",\"∇\"],[\"Delta\",\"Δ\"],[\"Dfr\",\"𝔇\"],[\"DiacriticalAcute\",\"´\"],[\"DiacriticalDot\",\"˙\"],[\"DiacriticalDoubleAcute\",\"˝\"],[\"DiacriticalGrave\",\"`\"],[\"DiacriticalTilde\",\"˜\"],[\"Diamond\",\"⋄\"],[\"DifferentialD\",\"ⅆ\"],[\"Dopf\",\"𝔻\"],[\"Dot\",\"¨\"],[\"DotDot\",\"⃜\"],[\"DotEqual\",\"≐\"],[\"DoubleContourIntegral\",\"∯\"],[\"DoubleDot\",\"¨\"],[\"DoubleDownArrow\",\"⇓\"],[\"DoubleLeftArrow\",\"⇐\"],[\"DoubleLeftRightArrow\",\"⇔\"],[\"DoubleLeftTee\",\"⫤\"],[\"DoubleLongLeftArrow\",\"⟸\"],[\"DoubleLongLeftRightArrow\",\"⟺\"],[\"DoubleLongRightArrow\",\"⟹\"],[\"DoubleRightArrow\",\"⇒\"],[\"DoubleRightTee\",\"⊨\"],[\"DoubleUpArrow\",\"⇑\"],[\"DoubleUpDownArrow\",\"⇕\"],[\"DoubleVerticalBar\",\"∥\"],[\"DownArrow\",\"↓\"],[\"DownArrowBar\",\"⤓\"],[\"DownArrowUpArrow\",\"⇵\"],[\"DownBreve\",\"̑\"],[\"DownLeftRightVector\",\"⥐\"],[\"DownLeftTeeVector\",\"⥞\"],[\"DownLeftVector\",\"↽\"],[\"DownLeftVectorBar\",\"⥖\"],[\"DownRightTeeVector\",\"⥟\"],[\"DownRightVector\",\"⇁\"],[\"DownRightVectorBar\",\"⥗\"],[\"DownTee\",\"⊤\"],[\"DownTeeArrow\",\"↧\"],[\"Downarrow\",\"⇓\"],[\"Dscr\",\"𝒟\"],[\"Dstrok\",\"Đ\"],[\"ENG\",\"Ŋ\"],[\"ETH\",\"Ð\"],[\"Eacute\",\"É\"],[\"Ecaron\",\"Ě\"],[\"Ecirc\",\"Ê\"],[\"Ecy\",\"Э\"],[\"Edot\",\"Ė\"],[\"Efr\",\"𝔈\"],[\"Egrave\",\"È\"],[\"Element\",\"∈\"],[\"Emacr\",\"Ē\"],[\"EmptySmallSquare\",\"◻\"],[\"EmptyVerySmallSquare\",\"▫\"],[\"Eogon\",\"Ę\"],[\"Eopf\",\"𝔼\"],[\"Epsilon\",\"Ε\"],[\"Equal\",\"⩵\"],[\"EqualTilde\",\"≂\"],[\"Equilibrium\",\"⇌\"],[\"Escr\",\"ℰ\"],[\"Esim\",\"⩳\"],[\"Eta\",\"Η\"],[\"Euml\",\"Ë\"],[\"Exists\",\"∃\"],[\"ExponentialE\",\"ⅇ\"],[\"Fcy\",\"Ф\"],[\"Ffr\",\"𝔉\"],[\"FilledSmallSquare\",\"◼\"],[\"FilledVerySmallSquare\",\"▪\"],[\"Fopf\",\"𝔽\"],[\"ForAll\",\"∀\"],[\"Fouriertrf\",\"ℱ\"],[\"Fscr\",\"ℱ\"],[\"GJcy\",\"Ѓ\"],[\"GT\",\">\"],[\"Gamma\",\"Γ\"],[\"Gammad\",\"Ϝ\"],[\"Gbreve\",\"Ğ\"],[\"Gcedil\",\"Ģ\"],[\"Gcirc\",\"Ĝ\"],[\"Gcy\",\"Г\"],[\"Gdot\",\"Ġ\"],[\"Gfr\",\"𝔊\"],[\"Gg\",\"⋙\"],[\"Gopf\",\"𝔾\"],[\"GreaterEqual\",\"≥\"],[\"GreaterEqualLess\",\"⋛\"],[\"GreaterFullEqual\",\"≧\"],[\"GreaterGreater\",\"⪢\"],[\"GreaterLess\",\"≷\"],[\"GreaterSlantEqual\",\"⩾\"],[\"GreaterTilde\",\"≳\"],[\"Gscr\",\"𝒢\"],[\"Gt\",\"≫\"],[\"HARDcy\",\"Ъ\"],[\"Hacek\",\"ˇ\"],[\"Hat\",\"^\"],[\"Hcirc\",\"Ĥ\"],[\"Hfr\",\"ℌ\"],[\"HilbertSpace\",\"ℋ\"],[\"Hopf\",\"ℍ\"],[\"HorizontalLine\",\"─\"],[\"Hscr\",\"ℋ\"],[\"Hstrok\",\"Ħ\"],[\"HumpDownHump\",\"≎\"],[\"HumpEqual\",\"≏\"],[\"IEcy\",\"Е\"],[\"IJlig\",\"IJ\"],[\"IOcy\",\"Ё\"],[\"Iacute\",\"Í\"],[\"Icirc\",\"Î\"],[\"Icy\",\"И\"],[\"Idot\",\"İ\"],[\"Ifr\",\"ℑ\"],[\"Igrave\",\"Ì\"],[\"Im\",\"ℑ\"],[\"Imacr\",\"Ī\"],[\"ImaginaryI\",\"ⅈ\"],[\"Implies\",\"⇒\"],[\"Int\",\"∬\"],[\"Integral\",\"∫\"],[\"Intersection\",\"⋂\"],[\"InvisibleComma\",\"⁣\"],[\"InvisibleTimes\",\"⁢\"],[\"Iogon\",\"Į\"],[\"Iopf\",\"𝕀\"],[\"Iota\",\"Ι\"],[\"Iscr\",\"ℐ\"],[\"Itilde\",\"Ĩ\"],[\"Iukcy\",\"І\"],[\"Iuml\",\"Ï\"],[\"Jcirc\",\"Ĵ\"],[\"Jcy\",\"Й\"],[\"Jfr\",\"𝔍\"],[\"Jopf\",\"𝕁\"],[\"Jscr\",\"𝒥\"],[\"Jsercy\",\"Ј\"],[\"Jukcy\",\"Є\"],[\"KHcy\",\"Х\"],[\"KJcy\",\"Ќ\"],[\"Kappa\",\"Κ\"],[\"Kcedil\",\"Ķ\"],[\"Kcy\",\"К\"],[\"Kfr\",\"𝔎\"],[\"Kopf\",\"𝕂\"],[\"Kscr\",\"𝒦\"],[\"LJcy\",\"Љ\"],[\"LT\",\"<\"],[\"Lacute\",\"Ĺ\"],[\"Lambda\",\"Λ\"],[\"Lang\",\"⟪\"],[\"Laplacetrf\",\"ℒ\"],[\"Larr\",\"↞\"],[\"Lcaron\",\"Ľ\"],[\"Lcedil\",\"Ļ\"],[\"Lcy\",\"Л\"],[\"LeftAngleBracket\",\"⟨\"],[\"LeftArrow\",\"←\"],[\"LeftArrowBar\",\"⇤\"],[\"LeftArrowRightArrow\",\"⇆\"],[\"LeftCeiling\",\"⌈\"],[\"LeftDoubleBracket\",\"⟦\"],[\"LeftDownTeeVector\",\"⥡\"],[\"LeftDownVector\",\"⇃\"],[\"LeftDownVectorBar\",\"⥙\"],[\"LeftFloor\",\"⌊\"],[\"LeftRightArrow\",\"↔\"],[\"LeftRightVector\",\"⥎\"],[\"LeftTee\",\"⊣\"],[\"LeftTeeArrow\",\"↤\"],[\"LeftTeeVector\",\"⥚\"],[\"LeftTriangle\",\"⊲\"],[\"LeftTriangleBar\",\"⧏\"],[\"LeftTriangleEqual\",\"⊴\"],[\"LeftUpDownVector\",\"⥑\"],[\"LeftUpTeeVector\",\"⥠\"],[\"LeftUpVector\",\"↿\"],[\"LeftUpVectorBar\",\"⥘\"],[\"LeftVector\",\"↼\"],[\"LeftVectorBar\",\"⥒\"],[\"Leftarrow\",\"⇐\"],[\"Leftrightarrow\",\"⇔\"],[\"LessEqualGreater\",\"⋚\"],[\"LessFullEqual\",\"≦\"],[\"LessGreater\",\"≶\"],[\"LessLess\",\"⪡\"],[\"LessSlantEqual\",\"⩽\"],[\"LessTilde\",\"≲\"],[\"Lfr\",\"𝔏\"],[\"Ll\",\"⋘\"],[\"Lleftarrow\",\"⇚\"],[\"Lmidot\",\"Ŀ\"],[\"LongLeftArrow\",\"⟵\"],[\"LongLeftRightArrow\",\"⟷\"],[\"LongRightArrow\",\"⟶\"],[\"Longleftarrow\",\"⟸\"],[\"Longleftrightarrow\",\"⟺\"],[\"Longrightarrow\",\"⟹\"],[\"Lopf\",\"𝕃\"],[\"LowerLeftArrow\",\"↙\"],[\"LowerRightArrow\",\"↘\"],[\"Lscr\",\"ℒ\"],[\"Lsh\",\"↰\"],[\"Lstrok\",\"Ł\"],[\"Lt\",\"≪\"],[\"Map\",\"⤅\"],[\"Mcy\",\"М\"],[\"MediumSpace\",\" \"],[\"Mellintrf\",\"ℳ\"],[\"Mfr\",\"𝔐\"],[\"MinusPlus\",\"∓\"],[\"Mopf\",\"𝕄\"],[\"Mscr\",\"ℳ\"],[\"Mu\",\"Μ\"],[\"NJcy\",\"Њ\"],[\"Nacute\",\"Ń\"],[\"Ncaron\",\"Ň\"],[\"Ncedil\",\"Ņ\"],[\"Ncy\",\"Н\"],[\"NegativeMediumSpace\",\"​\"],[\"NegativeThickSpace\",\"​\"],[\"NegativeThinSpace\",\"​\"],[\"NegativeVeryThinSpace\",\"​\"],[\"NestedGreaterGreater\",\"≫\"],[\"NestedLessLess\",\"≪\"],[\"NewLine\",\"\\n\"],[\"Nfr\",\"𝔑\"],[\"NoBreak\",\"⁠\"],[\"NonBreakingSpace\",\"\xA0\"],[\"Nopf\",\"ℕ\"],[\"Not\",\"⫬\"],[\"NotCongruent\",\"≢\"],[\"NotCupCap\",\"≭\"],[\"NotDoubleVerticalBar\",\"∦\"],[\"NotElement\",\"∉\"],[\"NotEqual\",\"≠\"],[\"NotEqualTilde\",\"≂̸\"],[\"NotExists\",\"∄\"],[\"NotGreater\",\"≯\"],[\"NotGreaterEqual\",\"≱\"],[\"NotGreaterFullEqual\",\"≧̸\"],[\"NotGreaterGreater\",\"≫̸\"],[\"NotGreaterLess\",\"≹\"],[\"NotGreaterSlantEqual\",\"⩾̸\"],[\"NotGreaterTilde\",\"≵\"],[\"NotHumpDownHump\",\"≎̸\"],[\"NotHumpEqual\",\"≏̸\"],[\"NotLeftTriangle\",\"⋪\"],[\"NotLeftTriangleBar\",\"⧏̸\"],[\"NotLeftTriangleEqual\",\"⋬\"],[\"NotLess\",\"≮\"],[\"NotLessEqual\",\"≰\"],[\"NotLessGreater\",\"≸\"],[\"NotLessLess\",\"≪̸\"],[\"NotLessSlantEqual\",\"⩽̸\"],[\"NotLessTilde\",\"≴\"],[\"NotNestedGreaterGreater\",\"⪢̸\"],[\"NotNestedLessLess\",\"⪡̸\"],[\"NotPrecedes\",\"⊀\"],[\"NotPrecedesEqual\",\"⪯̸\"],[\"NotPrecedesSlantEqual\",\"⋠\"],[\"NotReverseElement\",\"∌\"],[\"NotRightTriangle\",\"⋫\"],[\"NotRightTriangleBar\",\"⧐̸\"],[\"NotRightTriangleEqual\",\"⋭\"],[\"NotSquareSubset\",\"⊏̸\"],[\"NotSquareSubsetEqual\",\"⋢\"],[\"NotSquareSuperset\",\"⊐̸\"],[\"NotSquareSupersetEqual\",\"⋣\"],[\"NotSubset\",\"⊂⃒\"],[\"NotSubsetEqual\",\"⊈\"],[\"NotSucceeds\",\"⊁\"],[\"NotSucceedsEqual\",\"⪰̸\"],[\"NotSucceedsSlantEqual\",\"⋡\"],[\"NotSucceedsTilde\",\"≿̸\"],[\"NotSuperset\",\"⊃⃒\"],[\"NotSupersetEqual\",\"⊉\"],[\"NotTilde\",\"≁\"],[\"NotTildeEqual\",\"≄\"],[\"NotTildeFullEqual\",\"≇\"],[\"NotTildeTilde\",\"≉\"],[\"NotVerticalBar\",\"∤\"],[\"Nscr\",\"𝒩\"],[\"Ntilde\",\"Ñ\"],[\"Nu\",\"Ν\"],[\"OElig\",\"Œ\"],[\"Oacute\",\"Ó\"],[\"Ocirc\",\"Ô\"],[\"Ocy\",\"О\"],[\"Odblac\",\"Ő\"],[\"Ofr\",\"𝔒\"],[\"Ograve\",\"Ò\"],[\"Omacr\",\"Ō\"],[\"Omega\",\"Ω\"],[\"Omicron\",\"Ο\"],[\"Oopf\",\"𝕆\"],[\"OpenCurlyDoubleQuote\",\"“\"],[\"OpenCurlyQuote\",\"‘\"],[\"Or\",\"⩔\"],[\"Oscr\",\"𝒪\"],[\"Oslash\",\"Ø\"],[\"Otilde\",\"Õ\"],[\"Otimes\",\"⨷\"],[\"Ouml\",\"Ö\"],[\"OverBar\",\"‾\"],[\"OverBrace\",\"⏞\"],[\"OverBracket\",\"⎴\"],[\"OverParenthesis\",\"⏜\"],[\"PartialD\",\"∂\"],[\"Pcy\",\"П\"],[\"Pfr\",\"𝔓\"],[\"Phi\",\"Φ\"],[\"Pi\",\"Π\"],[\"PlusMinus\",\"±\"],[\"Poincareplane\",\"ℌ\"],[\"Popf\",\"ℙ\"],[\"Pr\",\"⪻\"],[\"Precedes\",\"≺\"],[\"PrecedesEqual\",\"⪯\"],[\"PrecedesSlantEqual\",\"≼\"],[\"PrecedesTilde\",\"≾\"],[\"Prime\",\"″\"],[\"Product\",\"∏\"],[\"Proportion\",\"∷\"],[\"Proportional\",\"∝\"],[\"Pscr\",\"𝒫\"],[\"Psi\",\"Ψ\"],[\"QUOT\",\"\\\"\"],[\"Qfr\",\"𝔔\"],[\"Qopf\",\"ℚ\"],[\"Qscr\",\"𝒬\"],[\"RBarr\",\"⤐\"],[\"REG\",\"®\"],[\"Racute\",\"Ŕ\"],[\"Rang\",\"⟫\"],[\"Rarr\",\"↠\"],[\"Rarrtl\",\"⤖\"],[\"Rcaron\",\"Ř\"],[\"Rcedil\",\"Ŗ\"],[\"Rcy\",\"Р\"],[\"Re\",\"ℜ\"],[\"ReverseElement\",\"∋\"],[\"ReverseEquilibrium\",\"⇋\"],[\"ReverseUpEquilibrium\",\"⥯\"],[\"Rfr\",\"ℜ\"],[\"Rho\",\"Ρ\"],[\"RightAngleBracket\",\"⟩\"],[\"RightArrow\",\"→\"],[\"RightArrowBar\",\"⇥\"],[\"RightArrowLeftArrow\",\"⇄\"],[\"RightCeiling\",\"⌉\"],[\"RightDoubleBracket\",\"⟧\"],[\"RightDownTeeVector\",\"⥝\"],[\"RightDownVector\",\"⇂\"],[\"RightDownVectorBar\",\"⥕\"],[\"RightFloor\",\"⌋\"],[\"RightTee\",\"⊢\"],[\"RightTeeArrow\",\"↦\"],[\"RightTeeVector\",\"⥛\"],[\"RightTriangle\",\"⊳\"],[\"RightTriangleBar\",\"⧐\"],[\"RightTriangleEqual\",\"⊵\"],[\"RightUpDownVector\",\"⥏\"],[\"RightUpTeeVector\",\"⥜\"],[\"RightUpVector\",\"↾\"],[\"RightUpVectorBar\",\"⥔\"],[\"RightVector\",\"⇀\"],[\"RightVectorBar\",\"⥓\"],[\"Rightarrow\",\"⇒\"],[\"Ropf\",\"ℝ\"],[\"RoundImplies\",\"⥰\"],[\"Rrightarrow\",\"⇛\"],[\"Rscr\",\"ℛ\"],[\"Rsh\",\"↱\"],[\"RuleDelayed\",\"⧴\"],[\"SHCHcy\",\"Щ\"],[\"SHcy\",\"Ш\"],[\"SOFTcy\",\"Ь\"],[\"Sacute\",\"Ś\"],[\"Sc\",\"⪼\"],[\"Scaron\",\"Š\"],[\"Scedil\",\"Ş\"],[\"Scirc\",\"Ŝ\"],[\"Scy\",\"С\"],[\"Sfr\",\"𝔖\"],[\"ShortDownArrow\",\"↓\"],[\"ShortLeftArrow\",\"←\"],[\"ShortRightArrow\",\"→\"],[\"ShortUpArrow\",\"↑\"],[\"Sigma\",\"Σ\"],[\"SmallCircle\",\"∘\"],[\"Sopf\",\"𝕊\"],[\"Sqrt\",\"√\"],[\"Square\",\"□\"],[\"SquareIntersection\",\"⊓\"],[\"SquareSubset\",\"⊏\"],[\"SquareSubsetEqual\",\"⊑\"],[\"SquareSuperset\",\"⊐\"],[\"SquareSupersetEqual\",\"⊒\"],[\"SquareUnion\",\"⊔\"],[\"Sscr\",\"𝒮\"],[\"Star\",\"⋆\"],[\"Sub\",\"⋐\"],[\"Subset\",\"⋐\"],[\"SubsetEqual\",\"⊆\"],[\"Succeeds\",\"≻\"],[\"SucceedsEqual\",\"⪰\"],[\"SucceedsSlantEqual\",\"≽\"],[\"SucceedsTilde\",\"≿\"],[\"SuchThat\",\"∋\"],[\"Sum\",\"∑\"],[\"Sup\",\"⋑\"],[\"Superset\",\"⊃\"],[\"SupersetEqual\",\"⊇\"],[\"Supset\",\"⋑\"],[\"THORN\",\"Þ\"],[\"TRADE\",\"™\"],[\"TSHcy\",\"Ћ\"],[\"TScy\",\"Ц\"],[\"Tab\",\"\\t\"],[\"Tau\",\"Τ\"],[\"Tcaron\",\"Ť\"],[\"Tcedil\",\"Ţ\"],[\"Tcy\",\"Т\"],[\"Tfr\",\"𝔗\"],[\"Therefore\",\"∴\"],[\"Theta\",\"Θ\"],[\"ThickSpace\",\"  \"],[\"ThinSpace\",\" \"],[\"Tilde\",\"∼\"],[\"TildeEqual\",\"≃\"],[\"TildeFullEqual\",\"≅\"],[\"TildeTilde\",\"≈\"],[\"Topf\",\"𝕋\"],[\"TripleDot\",\"⃛\"],[\"Tscr\",\"𝒯\"],[\"Tstrok\",\"Ŧ\"],[\"Uacute\",\"Ú\"],[\"Uarr\",\"↟\"],[\"Uarrocir\",\"⥉\"],[\"Ubrcy\",\"Ў\"],[\"Ubreve\",\"Ŭ\"],[\"Ucirc\",\"Û\"],[\"Ucy\",\"У\"],[\"Udblac\",\"Ű\"],[\"Ufr\",\"𝔘\"],[\"Ugrave\",\"Ù\"],[\"Umacr\",\"Ū\"],[\"UnderBar\",\"_\"],[\"UnderBrace\",\"⏟\"],[\"UnderBracket\",\"⎵\"],[\"UnderParenthesis\",\"⏝\"],[\"Union\",\"⋃\"],[\"UnionPlus\",\"⊎\"],[\"Uogon\",\"Ų\"],[\"Uopf\",\"𝕌\"],[\"UpArrow\",\"↑\"],[\"UpArrowBar\",\"⤒\"],[\"UpArrowDownArrow\",\"⇅\"],[\"UpDownArrow\",\"↕\"],[\"UpEquilibrium\",\"⥮\"],[\"UpTee\",\"⊥\"],[\"UpTeeArrow\",\"↥\"],[\"Uparrow\",\"⇑\"],[\"Updownarrow\",\"⇕\"],[\"UpperLeftArrow\",\"↖\"],[\"UpperRightArrow\",\"↗\"],[\"Upsi\",\"ϒ\"],[\"Upsilon\",\"Υ\"],[\"Uring\",\"Ů\"],[\"Uscr\",\"𝒰\"],[\"Utilde\",\"Ũ\"],[\"Uuml\",\"Ü\"],[\"VDash\",\"⊫\"],[\"Vbar\",\"⫫\"],[\"Vcy\",\"В\"],[\"Vdash\",\"⊩\"],[\"Vdashl\",\"⫦\"],[\"Vee\",\"⋁\"],[\"Verbar\",\"‖\"],[\"Vert\",\"‖\"],[\"VerticalBar\",\"∣\"],[\"VerticalLine\",\"|\"],[\"VerticalSeparator\",\"❘\"],[\"VerticalTilde\",\"≀\"],[\"VeryThinSpace\",\" \"],[\"Vfr\",\"𝔙\"],[\"Vopf\",\"𝕍\"],[\"Vscr\",\"𝒱\"],[\"Vvdash\",\"⊪\"],[\"Wcirc\",\"Ŵ\"],[\"Wedge\",\"⋀\"],[\"Wfr\",\"𝔚\"],[\"Wopf\",\"𝕎\"],[\"Wscr\",\"𝒲\"],[\"Xfr\",\"𝔛\"],[\"Xi\",\"Ξ\"],[\"Xopf\",\"𝕏\"],[\"Xscr\",\"𝒳\"],[\"YAcy\",\"Я\"],[\"YIcy\",\"Ї\"],[\"YUcy\",\"Ю\"],[\"Yacute\",\"Ý\"],[\"Ycirc\",\"Ŷ\"],[\"Ycy\",\"Ы\"],[\"Yfr\",\"𝔜\"],[\"Yopf\",\"𝕐\"],[\"Yscr\",\"𝒴\"],[\"Yuml\",\"Ÿ\"],[\"ZHcy\",\"Ж\"],[\"Zacute\",\"Ź\"],[\"Zcaron\",\"Ž\"],[\"Zcy\",\"З\"],[\"Zdot\",\"Ż\"],[\"ZeroWidthSpace\",\"​\"],[\"Zeta\",\"Ζ\"],[\"Zfr\",\"ℨ\"],[\"Zopf\",\"ℤ\"],[\"Zscr\",\"𝒵\"],[\"aacute\",\"á\"],[\"abreve\",\"ă\"],[\"ac\",\"∾\"],[\"acE\",\"∾̳\"],[\"acd\",\"∿\"],[\"acirc\",\"â\"],[\"acute\",\"´\"],[\"acy\",\"а\"],[\"aelig\",\"æ\"],[\"af\",\"⁡\"],[\"afr\",\"𝔞\"],[\"agrave\",\"à\"],[\"alefsym\",\"ℵ\"],[\"aleph\",\"ℵ\"],[\"alpha\",\"α\"],[\"amacr\",\"ā\"],[\"amalg\",\"⨿\"],[\"amp\",\"&\"],[\"and\",\"∧\"],[\"andand\",\"⩕\"],[\"andd\",\"⩜\"],[\"andslope\",\"⩘\"],[\"andv\",\"⩚\"],[\"ang\",\"∠\"],[\"ange\",\"⦤\"],[\"angle\",\"∠\"],[\"angmsd\",\"∡\"],[\"angmsdaa\",\"⦨\"],[\"angmsdab\",\"⦩\"],[\"angmsdac\",\"⦪\"],[\"angmsdad\",\"⦫\"],[\"angmsdae\",\"⦬\"],[\"angmsdaf\",\"⦭\"],[\"angmsdag\",\"⦮\"],[\"angmsdah\",\"⦯\"],[\"angrt\",\"∟\"],[\"angrtvb\",\"⊾\"],[\"angrtvbd\",\"⦝\"],[\"angsph\",\"∢\"],[\"angst\",\"Å\"],[\"angzarr\",\"⍼\"],[\"aogon\",\"ą\"],[\"aopf\",\"𝕒\"],[\"ap\",\"≈\"],[\"apE\",\"⩰\"],[\"apacir\",\"⩯\"],[\"ape\",\"≊\"],[\"apid\",\"≋\"],[\"apos\",\"'\"],[\"approx\",\"≈\"],[\"approxeq\",\"≊\"],[\"aring\",\"å\"],[\"ascr\",\"𝒶\"],[\"ast\",\"*\"],[\"asymp\",\"≈\"],[\"asympeq\",\"≍\"],[\"atilde\",\"ã\"],[\"auml\",\"ä\"],[\"awconint\",\"∳\"],[\"awint\",\"⨑\"],[\"bNot\",\"⫭\"],[\"backcong\",\"≌\"],[\"backepsilon\",\"϶\"],[\"backprime\",\"‵\"],[\"backsim\",\"∽\"],[\"backsimeq\",\"⋍\"],[\"barvee\",\"⊽\"],[\"barwed\",\"⌅\"],[\"barwedge\",\"⌅\"],[\"bbrk\",\"⎵\"],[\"bbrktbrk\",\"⎶\"],[\"bcong\",\"≌\"],[\"bcy\",\"б\"],[\"bdquo\",\"„\"],[\"becaus\",\"∵\"],[\"because\",\"∵\"],[\"bemptyv\",\"⦰\"],[\"bepsi\",\"϶\"],[\"bernou\",\"ℬ\"],[\"beta\",\"β\"],[\"beth\",\"ℶ\"],[\"between\",\"≬\"],[\"bfr\",\"𝔟\"],[\"bigcap\",\"⋂\"],[\"bigcirc\",\"◯\"],[\"bigcup\",\"⋃\"],[\"bigodot\",\"⨀\"],[\"bigoplus\",\"⨁\"],[\"bigotimes\",\"⨂\"],[\"bigsqcup\",\"⨆\"],[\"bigstar\",\"★\"],[\"bigtriangledown\",\"▽\"],[\"bigtriangleup\",\"△\"],[\"biguplus\",\"⨄\"],[\"bigvee\",\"⋁\"],[\"bigwedge\",\"⋀\"],[\"bkarow\",\"⤍\"],[\"blacklozenge\",\"⧫\"],[\"blacksquare\",\"▪\"],[\"blacktriangle\",\"▴\"],[\"blacktriangledown\",\"▾\"],[\"blacktriangleleft\",\"◂\"],[\"blacktriangleright\",\"▸\"],[\"blank\",\"␣\"],[\"blk12\",\"▒\"],[\"blk14\",\"░\"],[\"blk34\",\"▓\"],[\"block\",\"█\"],[\"bne\",\"=⃥\"],[\"bnequiv\",\"≡⃥\"],[\"bnot\",\"⌐\"],[\"bopf\",\"𝕓\"],[\"bot\",\"⊥\"],[\"bottom\",\"⊥\"],[\"bowtie\",\"⋈\"],[\"boxDL\",\"╗\"],[\"boxDR\",\"╔\"],[\"boxDl\",\"╖\"],[\"boxDr\",\"╓\"],[\"boxH\",\"═\"],[\"boxHD\",\"╦\"],[\"boxHU\",\"╩\"],[\"boxHd\",\"╤\"],[\"boxHu\",\"╧\"],[\"boxUL\",\"╝\"],[\"boxUR\",\"╚\"],[\"boxUl\",\"╜\"],[\"boxUr\",\"╙\"],[\"boxV\",\"║\"],[\"boxVH\",\"╬\"],[\"boxVL\",\"╣\"],[\"boxVR\",\"╠\"],[\"boxVh\",\"╫\"],[\"boxVl\",\"╢\"],[\"boxVr\",\"╟\"],[\"boxbox\",\"⧉\"],[\"boxdL\",\"╕\"],[\"boxdR\",\"╒\"],[\"boxdl\",\"┐\"],[\"boxdr\",\"┌\"],[\"boxh\",\"─\"],[\"boxhD\",\"╥\"],[\"boxhU\",\"╨\"],[\"boxhd\",\"┬\"],[\"boxhu\",\"┴\"],[\"boxminus\",\"⊟\"],[\"boxplus\",\"⊞\"],[\"boxtimes\",\"⊠\"],[\"boxuL\",\"╛\"],[\"boxuR\",\"╘\"],[\"boxul\",\"┘\"],[\"boxur\",\"└\"],[\"boxv\",\"│\"],[\"boxvH\",\"╪\"],[\"boxvL\",\"╡\"],[\"boxvR\",\"╞\"],[\"boxvh\",\"┼\"],[\"boxvl\",\"┤\"],[\"boxvr\",\"├\"],[\"bprime\",\"‵\"],[\"breve\",\"˘\"],[\"brvbar\",\"¦\"],[\"bscr\",\"𝒷\"],[\"bsemi\",\"⁏\"],[\"bsim\",\"∽\"],[\"bsime\",\"⋍\"],[\"bsol\",\"\\\\\"],[\"bsolb\",\"⧅\"],[\"bsolhsub\",\"⟈\"],[\"bull\",\"•\"],[\"bullet\",\"•\"],[\"bump\",\"≎\"],[\"bumpE\",\"⪮\"],[\"bumpe\",\"≏\"],[\"bumpeq\",\"≏\"],[\"cacute\",\"ć\"],[\"cap\",\"∩\"],[\"capand\",\"⩄\"],[\"capbrcup\",\"⩉\"],[\"capcap\",\"⩋\"],[\"capcup\",\"⩇\"],[\"capdot\",\"⩀\"],[\"caps\",\"∩︀\"],[\"caret\",\"⁁\"],[\"caron\",\"ˇ\"],[\"ccaps\",\"⩍\"],[\"ccaron\",\"č\"],[\"ccedil\",\"ç\"],[\"ccirc\",\"ĉ\"],[\"ccups\",\"⩌\"],[\"ccupssm\",\"⩐\"],[\"cdot\",\"ċ\"],[\"cedil\",\"¸\"],[\"cemptyv\",\"⦲\"],[\"cent\",\"¢\"],[\"centerdot\",\"·\"],[\"cfr\",\"𝔠\"],[\"chcy\",\"ч\"],[\"check\",\"✓\"],[\"checkmark\",\"✓\"],[\"chi\",\"χ\"],[\"cir\",\"○\"],[\"cirE\",\"⧃\"],[\"circ\",\"ˆ\"],[\"circeq\",\"≗\"],[\"circlearrowleft\",\"↺\"],[\"circlearrowright\",\"↻\"],[\"circledR\",\"®\"],[\"circledS\",\"Ⓢ\"],[\"circledast\",\"⊛\"],[\"circledcirc\",\"⊚\"],[\"circleddash\",\"⊝\"],[\"cire\",\"≗\"],[\"cirfnint\",\"⨐\"],[\"cirmid\",\"⫯\"],[\"cirscir\",\"⧂\"],[\"clubs\",\"♣\"],[\"clubsuit\",\"♣\"],[\"colon\",\":\"],[\"colone\",\"≔\"],[\"coloneq\",\"≔\"],[\"comma\",\",\"],[\"commat\",\"@\"],[\"comp\",\"∁\"],[\"compfn\",\"∘\"],[\"complement\",\"∁\"],[\"complexes\",\"ℂ\"],[\"cong\",\"≅\"],[\"congdot\",\"⩭\"],[\"conint\",\"∮\"],[\"copf\",\"𝕔\"],[\"coprod\",\"∐\"],[\"copy\",\"©\"],[\"copysr\",\"℗\"],[\"crarr\",\"↵\"],[\"cross\",\"✗\"],[\"cscr\",\"𝒸\"],[\"csub\",\"⫏\"],[\"csube\",\"⫑\"],[\"csup\",\"⫐\"],[\"csupe\",\"⫒\"],[\"ctdot\",\"⋯\"],[\"cudarrl\",\"⤸\"],[\"cudarrr\",\"⤵\"],[\"cuepr\",\"⋞\"],[\"cuesc\",\"⋟\"],[\"cularr\",\"↶\"],[\"cularrp\",\"⤽\"],[\"cup\",\"∪\"],[\"cupbrcap\",\"⩈\"],[\"cupcap\",\"⩆\"],[\"cupcup\",\"⩊\"],[\"cupdot\",\"⊍\"],[\"cupor\",\"⩅\"],[\"cups\",\"∪︀\"],[\"curarr\",\"↷\"],[\"curarrm\",\"⤼\"],[\"curlyeqprec\",\"⋞\"],[\"curlyeqsucc\",\"⋟\"],[\"curlyvee\",\"⋎\"],[\"curlywedge\",\"⋏\"],[\"curren\",\"¤\"],[\"curvearrowleft\",\"↶\"],[\"curvearrowright\",\"↷\"],[\"cuvee\",\"⋎\"],[\"cuwed\",\"⋏\"],[\"cwconint\",\"∲\"],[\"cwint\",\"∱\"],[\"cylcty\",\"⌭\"],[\"dArr\",\"⇓\"],[\"dHar\",\"⥥\"],[\"dagger\",\"†\"],[\"daleth\",\"ℸ\"],[\"darr\",\"↓\"],[\"dash\",\"‐\"],[\"dashv\",\"⊣\"],[\"dbkarow\",\"⤏\"],[\"dblac\",\"˝\"],[\"dcaron\",\"ď\"],[\"dcy\",\"д\"],[\"dd\",\"ⅆ\"],[\"ddagger\",\"‡\"],[\"ddarr\",\"⇊\"],[\"ddotseq\",\"⩷\"],[\"deg\",\"°\"],[\"delta\",\"δ\"],[\"demptyv\",\"⦱\"],[\"dfisht\",\"⥿\"],[\"dfr\",\"𝔡\"],[\"dharl\",\"⇃\"],[\"dharr\",\"⇂\"],[\"diam\",\"⋄\"],[\"diamond\",\"⋄\"],[\"diamondsuit\",\"♦\"],[\"diams\",\"♦\"],[\"die\",\"¨\"],[\"digamma\",\"ϝ\"],[\"disin\",\"⋲\"],[\"div\",\"÷\"],[\"divide\",\"÷\"],[\"divideontimes\",\"⋇\"],[\"divonx\",\"⋇\"],[\"djcy\",\"ђ\"],[\"dlcorn\",\"⌞\"],[\"dlcrop\",\"⌍\"],[\"dollar\",\"$\"],[\"dopf\",\"𝕕\"],[\"dot\",\"˙\"],[\"doteq\",\"≐\"],[\"doteqdot\",\"≑\"],[\"dotminus\",\"∸\"],[\"dotplus\",\"∔\"],[\"dotsquare\",\"⊡\"],[\"doublebarwedge\",\"⌆\"],[\"downarrow\",\"↓\"],[\"downdownarrows\",\"⇊\"],[\"downharpoonleft\",\"⇃\"],[\"downharpoonright\",\"⇂\"],[\"drbkarow\",\"⤐\"],[\"drcorn\",\"⌟\"],[\"drcrop\",\"⌌\"],[\"dscr\",\"𝒹\"],[\"dscy\",\"ѕ\"],[\"dsol\",\"⧶\"],[\"dstrok\",\"đ\"],[\"dtdot\",\"⋱\"],[\"dtri\",\"▿\"],[\"dtrif\",\"▾\"],[\"duarr\",\"⇵\"],[\"duhar\",\"⥯\"],[\"dwangle\",\"⦦\"],[\"dzcy\",\"џ\"],[\"dzigrarr\",\"⟿\"],[\"eDDot\",\"⩷\"],[\"eDot\",\"≑\"],[\"eacute\",\"é\"],[\"easter\",\"⩮\"],[\"ecaron\",\"ě\"],[\"ecir\",\"≖\"],[\"ecirc\",\"ê\"],[\"ecolon\",\"≕\"],[\"ecy\",\"э\"],[\"edot\",\"ė\"],[\"ee\",\"ⅇ\"],[\"efDot\",\"≒\"],[\"efr\",\"𝔢\"],[\"eg\",\"⪚\"],[\"egrave\",\"è\"],[\"egs\",\"⪖\"],[\"egsdot\",\"⪘\"],[\"el\",\"⪙\"],[\"elinters\",\"⏧\"],[\"ell\",\"ℓ\"],[\"els\",\"⪕\"],[\"elsdot\",\"⪗\"],[\"emacr\",\"ē\"],[\"empty\",\"∅\"],[\"emptyset\",\"∅\"],[\"emptyv\",\"∅\"],[\"emsp\",\" \"],[\"emsp13\",\" \"],[\"emsp14\",\" \"],[\"eng\",\"ŋ\"],[\"ensp\",\" \"],[\"eogon\",\"ę\"],[\"eopf\",\"𝕖\"],[\"epar\",\"⋕\"],[\"eparsl\",\"⧣\"],[\"eplus\",\"⩱\"],[\"epsi\",\"ε\"],[\"epsilon\",\"ε\"],[\"epsiv\",\"ϵ\"],[\"eqcirc\",\"≖\"],[\"eqcolon\",\"≕\"],[\"eqsim\",\"≂\"],[\"eqslantgtr\",\"⪖\"],[\"eqslantless\",\"⪕\"],[\"equals\",\"=\"],[\"equest\",\"≟\"],[\"equiv\",\"≡\"],[\"equivDD\",\"⩸\"],[\"eqvparsl\",\"⧥\"],[\"erDot\",\"≓\"],[\"erarr\",\"⥱\"],[\"escr\",\"ℯ\"],[\"esdot\",\"≐\"],[\"esim\",\"≂\"],[\"eta\",\"η\"],[\"eth\",\"ð\"],[\"euml\",\"ë\"],[\"euro\",\"€\"],[\"excl\",\"!\"],[\"exist\",\"∃\"],[\"expectation\",\"ℰ\"],[\"exponentiale\",\"ⅇ\"],[\"fallingdotseq\",\"≒\"],[\"fcy\",\"ф\"],[\"female\",\"♀\"],[\"ffilig\",\"ffi\"],[\"fflig\",\"ff\"],[\"ffllig\",\"ffl\"],[\"ffr\",\"𝔣\"],[\"filig\",\"fi\"],[\"fjlig\",\"fj\"],[\"flat\",\"♭\"],[\"fllig\",\"fl\"],[\"fltns\",\"▱\"],[\"fnof\",\"ƒ\"],[\"fopf\",\"𝕗\"],[\"forall\",\"∀\"],[\"fork\",\"⋔\"],[\"forkv\",\"⫙\"],[\"fpartint\",\"⨍\"],[\"frac12\",\"½\"],[\"frac13\",\"⅓\"],[\"frac14\",\"¼\"],[\"frac15\",\"⅕\"],[\"frac16\",\"⅙\"],[\"frac18\",\"⅛\"],[\"frac23\",\"⅔\"],[\"frac25\",\"⅖\"],[\"frac34\",\"¾\"],[\"frac35\",\"⅗\"],[\"frac38\",\"⅜\"],[\"frac45\",\"⅘\"],[\"frac56\",\"⅚\"],[\"frac58\",\"⅝\"],[\"frac78\",\"⅞\"],[\"frasl\",\"⁄\"],[\"frown\",\"⌢\"],[\"fscr\",\"𝒻\"],[\"gE\",\"≧\"],[\"gEl\",\"⪌\"],[\"gacute\",\"ǵ\"],[\"gamma\",\"γ\"],[\"gammad\",\"ϝ\"],[\"gap\",\"⪆\"],[\"gbreve\",\"ğ\"],[\"gcirc\",\"ĝ\"],[\"gcy\",\"г\"],[\"gdot\",\"ġ\"],[\"ge\",\"≥\"],[\"gel\",\"⋛\"],[\"geq\",\"≥\"],[\"geqq\",\"≧\"],[\"geqslant\",\"⩾\"],[\"ges\",\"⩾\"],[\"gescc\",\"⪩\"],[\"gesdot\",\"⪀\"],[\"gesdoto\",\"⪂\"],[\"gesdotol\",\"⪄\"],[\"gesl\",\"⋛︀\"],[\"gesles\",\"⪔\"],[\"gfr\",\"𝔤\"],[\"gg\",\"≫\"],[\"ggg\",\"⋙\"],[\"gimel\",\"ℷ\"],[\"gjcy\",\"ѓ\"],[\"gl\",\"≷\"],[\"glE\",\"⪒\"],[\"gla\",\"⪥\"],[\"glj\",\"⪤\"],[\"gnE\",\"≩\"],[\"gnap\",\"⪊\"],[\"gnapprox\",\"⪊\"],[\"gne\",\"⪈\"],[\"gneq\",\"⪈\"],[\"gneqq\",\"≩\"],[\"gnsim\",\"⋧\"],[\"gopf\",\"𝕘\"],[\"grave\",\"`\"],[\"gscr\",\"ℊ\"],[\"gsim\",\"≳\"],[\"gsime\",\"⪎\"],[\"gsiml\",\"⪐\"],[\"gt\",\">\"],[\"gtcc\",\"⪧\"],[\"gtcir\",\"⩺\"],[\"gtdot\",\"⋗\"],[\"gtlPar\",\"⦕\"],[\"gtquest\",\"⩼\"],[\"gtrapprox\",\"⪆\"],[\"gtrarr\",\"⥸\"],[\"gtrdot\",\"⋗\"],[\"gtreqless\",\"⋛\"],[\"gtreqqless\",\"⪌\"],[\"gtrless\",\"≷\"],[\"gtrsim\",\"≳\"],[\"gvertneqq\",\"≩︀\"],[\"gvnE\",\"≩︀\"],[\"hArr\",\"⇔\"],[\"hairsp\",\" \"],[\"half\",\"½\"],[\"hamilt\",\"ℋ\"],[\"hardcy\",\"ъ\"],[\"harr\",\"↔\"],[\"harrcir\",\"⥈\"],[\"harrw\",\"↭\"],[\"hbar\",\"ℏ\"],[\"hcirc\",\"ĥ\"],[\"hearts\",\"♥\"],[\"heartsuit\",\"♥\"],[\"hellip\",\"…\"],[\"hercon\",\"⊹\"],[\"hfr\",\"𝔥\"],[\"hksearow\",\"⤥\"],[\"hkswarow\",\"⤦\"],[\"hoarr\",\"⇿\"],[\"homtht\",\"∻\"],[\"hookleftarrow\",\"↩\"],[\"hookrightarrow\",\"↪\"],[\"hopf\",\"𝕙\"],[\"horbar\",\"―\"],[\"hscr\",\"𝒽\"],[\"hslash\",\"ℏ\"],[\"hstrok\",\"ħ\"],[\"hybull\",\"⁃\"],[\"hyphen\",\"‐\"],[\"iacute\",\"í\"],[\"ic\",\"⁣\"],[\"icirc\",\"î\"],[\"icy\",\"и\"],[\"iecy\",\"е\"],[\"iexcl\",\"¡\"],[\"iff\",\"⇔\"],[\"ifr\",\"𝔦\"],[\"igrave\",\"ì\"],[\"ii\",\"ⅈ\"],[\"iiiint\",\"⨌\"],[\"iiint\",\"∭\"],[\"iinfin\",\"⧜\"],[\"iiota\",\"℩\"],[\"ijlig\",\"ij\"],[\"imacr\",\"ī\"],[\"image\",\"ℑ\"],[\"imagline\",\"ℐ\"],[\"imagpart\",\"ℑ\"],[\"imath\",\"ı\"],[\"imof\",\"⊷\"],[\"imped\",\"Ƶ\"],[\"in\",\"∈\"],[\"incare\",\"℅\"],[\"infin\",\"∞\"],[\"infintie\",\"⧝\"],[\"inodot\",\"ı\"],[\"int\",\"∫\"],[\"intcal\",\"⊺\"],[\"integers\",\"ℤ\"],[\"intercal\",\"⊺\"],[\"intlarhk\",\"⨗\"],[\"intprod\",\"⨼\"],[\"iocy\",\"ё\"],[\"iogon\",\"į\"],[\"iopf\",\"𝕚\"],[\"iota\",\"ι\"],[\"iprod\",\"⨼\"],[\"iquest\",\"¿\"],[\"iscr\",\"𝒾\"],[\"isin\",\"∈\"],[\"isinE\",\"⋹\"],[\"isindot\",\"⋵\"],[\"isins\",\"⋴\"],[\"isinsv\",\"⋳\"],[\"isinv\",\"∈\"],[\"it\",\"⁢\"],[\"itilde\",\"ĩ\"],[\"iukcy\",\"і\"],[\"iuml\",\"ï\"],[\"jcirc\",\"ĵ\"],[\"jcy\",\"й\"],[\"jfr\",\"𝔧\"],[\"jmath\",\"ȷ\"],[\"jopf\",\"𝕛\"],[\"jscr\",\"𝒿\"],[\"jsercy\",\"ј\"],[\"jukcy\",\"є\"],[\"kappa\",\"κ\"],[\"kappav\",\"ϰ\"],[\"kcedil\",\"ķ\"],[\"kcy\",\"к\"],[\"kfr\",\"𝔨\"],[\"kgreen\",\"ĸ\"],[\"khcy\",\"х\"],[\"kjcy\",\"ќ\"],[\"kopf\",\"𝕜\"],[\"kscr\",\"𝓀\"],[\"lAarr\",\"⇚\"],[\"lArr\",\"⇐\"],[\"lAtail\",\"⤛\"],[\"lBarr\",\"⤎\"],[\"lE\",\"≦\"],[\"lEg\",\"⪋\"],[\"lHar\",\"⥢\"],[\"lacute\",\"ĺ\"],[\"laemptyv\",\"⦴\"],[\"lagran\",\"ℒ\"],[\"lambda\",\"λ\"],[\"lang\",\"⟨\"],[\"langd\",\"⦑\"],[\"langle\",\"⟨\"],[\"lap\",\"⪅\"],[\"laquo\",\"«\"],[\"larr\",\"←\"],[\"larrb\",\"⇤\"],[\"larrbfs\",\"⤟\"],[\"larrfs\",\"⤝\"],[\"larrhk\",\"↩\"],[\"larrlp\",\"↫\"],[\"larrpl\",\"⤹\"],[\"larrsim\",\"⥳\"],[\"larrtl\",\"↢\"],[\"lat\",\"⪫\"],[\"latail\",\"⤙\"],[\"late\",\"⪭\"],[\"lates\",\"⪭︀\"],[\"lbarr\",\"⤌\"],[\"lbbrk\",\"❲\"],[\"lbrace\",\"{\"],[\"lbrack\",\"[\"],[\"lbrke\",\"⦋\"],[\"lbrksld\",\"⦏\"],[\"lbrkslu\",\"⦍\"],[\"lcaron\",\"ľ\"],[\"lcedil\",\"ļ\"],[\"lceil\",\"⌈\"],[\"lcub\",\"{\"],[\"lcy\",\"л\"],[\"ldca\",\"⤶\"],[\"ldquo\",\"“\"],[\"ldquor\",\"„\"],[\"ldrdhar\",\"⥧\"],[\"ldrushar\",\"⥋\"],[\"ldsh\",\"↲\"],[\"le\",\"≤\"],[\"leftarrow\",\"←\"],[\"leftarrowtail\",\"↢\"],[\"leftharpoondown\",\"↽\"],[\"leftharpoonup\",\"↼\"],[\"leftleftarrows\",\"⇇\"],[\"leftrightarrow\",\"↔\"],[\"leftrightarrows\",\"⇆\"],[\"leftrightharpoons\",\"⇋\"],[\"leftrightsquigarrow\",\"↭\"],[\"leftthreetimes\",\"⋋\"],[\"leg\",\"⋚\"],[\"leq\",\"≤\"],[\"leqq\",\"≦\"],[\"leqslant\",\"⩽\"],[\"les\",\"⩽\"],[\"lescc\",\"⪨\"],[\"lesdot\",\"⩿\"],[\"lesdoto\",\"⪁\"],[\"lesdotor\",\"⪃\"],[\"lesg\",\"⋚︀\"],[\"lesges\",\"⪓\"],[\"lessapprox\",\"⪅\"],[\"lessdot\",\"⋖\"],[\"lesseqgtr\",\"⋚\"],[\"lesseqqgtr\",\"⪋\"],[\"lessgtr\",\"≶\"],[\"lesssim\",\"≲\"],[\"lfisht\",\"⥼\"],[\"lfloor\",\"⌊\"],[\"lfr\",\"𝔩\"],[\"lg\",\"≶\"],[\"lgE\",\"⪑\"],[\"lhard\",\"↽\"],[\"lharu\",\"↼\"],[\"lharul\",\"⥪\"],[\"lhblk\",\"▄\"],[\"ljcy\",\"љ\"],[\"ll\",\"≪\"],[\"llarr\",\"⇇\"],[\"llcorner\",\"⌞\"],[\"llhard\",\"⥫\"],[\"lltri\",\"◺\"],[\"lmidot\",\"ŀ\"],[\"lmoust\",\"⎰\"],[\"lmoustache\",\"⎰\"],[\"lnE\",\"≨\"],[\"lnap\",\"⪉\"],[\"lnapprox\",\"⪉\"],[\"lne\",\"⪇\"],[\"lneq\",\"⪇\"],[\"lneqq\",\"≨\"],[\"lnsim\",\"⋦\"],[\"loang\",\"⟬\"],[\"loarr\",\"⇽\"],[\"lobrk\",\"⟦\"],[\"longleftarrow\",\"⟵\"],[\"longleftrightarrow\",\"⟷\"],[\"longmapsto\",\"⟼\"],[\"longrightarrow\",\"⟶\"],[\"looparrowleft\",\"↫\"],[\"looparrowright\",\"↬\"],[\"lopar\",\"⦅\"],[\"lopf\",\"𝕝\"],[\"loplus\",\"⨭\"],[\"lotimes\",\"⨴\"],[\"lowast\",\"∗\"],[\"lowbar\",\"_\"],[\"loz\",\"◊\"],[\"lozenge\",\"◊\"],[\"lozf\",\"⧫\"],[\"lpar\",\"(\"],[\"lparlt\",\"⦓\"],[\"lrarr\",\"⇆\"],[\"lrcorner\",\"⌟\"],[\"lrhar\",\"⇋\"],[\"lrhard\",\"⥭\"],[\"lrm\",\"‎\"],[\"lrtri\",\"⊿\"],[\"lsaquo\",\"‹\"],[\"lscr\",\"𝓁\"],[\"lsh\",\"↰\"],[\"lsim\",\"≲\"],[\"lsime\",\"⪍\"],[\"lsimg\",\"⪏\"],[\"lsqb\",\"[\"],[\"lsquo\",\"‘\"],[\"lsquor\",\"‚\"],[\"lstrok\",\"ł\"],[\"lt\",\"<\"],[\"ltcc\",\"⪦\"],[\"ltcir\",\"⩹\"],[\"ltdot\",\"⋖\"],[\"lthree\",\"⋋\"],[\"ltimes\",\"⋉\"],[\"ltlarr\",\"⥶\"],[\"ltquest\",\"⩻\"],[\"ltrPar\",\"⦖\"],[\"ltri\",\"◃\"],[\"ltrie\",\"⊴\"],[\"ltrif\",\"◂\"],[\"lurdshar\",\"⥊\"],[\"luruhar\",\"⥦\"],[\"lvertneqq\",\"≨︀\"],[\"lvnE\",\"≨︀\"],[\"mDDot\",\"∺\"],[\"macr\",\"¯\"],[\"male\",\"♂\"],[\"malt\",\"✠\"],[\"maltese\",\"✠\"],[\"map\",\"↦\"],[\"mapsto\",\"↦\"],[\"mapstodown\",\"↧\"],[\"mapstoleft\",\"↤\"],[\"mapstoup\",\"↥\"],[\"marker\",\"▮\"],[\"mcomma\",\"⨩\"],[\"mcy\",\"м\"],[\"mdash\",\"—\"],[\"measuredangle\",\"∡\"],[\"mfr\",\"𝔪\"],[\"mho\",\"℧\"],[\"micro\",\"µ\"],[\"mid\",\"∣\"],[\"midast\",\"*\"],[\"midcir\",\"⫰\"],[\"middot\",\"·\"],[\"minus\",\"−\"],[\"minusb\",\"⊟\"],[\"minusd\",\"∸\"],[\"minusdu\",\"⨪\"],[\"mlcp\",\"⫛\"],[\"mldr\",\"…\"],[\"mnplus\",\"∓\"],[\"models\",\"⊧\"],[\"mopf\",\"𝕞\"],[\"mp\",\"∓\"],[\"mscr\",\"𝓂\"],[\"mstpos\",\"∾\"],[\"mu\",\"μ\"],[\"multimap\",\"⊸\"],[\"mumap\",\"⊸\"],[\"nGg\",\"⋙̸\"],[\"nGt\",\"≫⃒\"],[\"nGtv\",\"≫̸\"],[\"nLeftarrow\",\"⇍\"],[\"nLeftrightarrow\",\"⇎\"],[\"nLl\",\"⋘̸\"],[\"nLt\",\"≪⃒\"],[\"nLtv\",\"≪̸\"],[\"nRightarrow\",\"⇏\"],[\"nVDash\",\"⊯\"],[\"nVdash\",\"⊮\"],[\"nabla\",\"∇\"],[\"nacute\",\"ń\"],[\"nang\",\"∠⃒\"],[\"nap\",\"≉\"],[\"napE\",\"⩰̸\"],[\"napid\",\"≋̸\"],[\"napos\",\"ʼn\"],[\"napprox\",\"≉\"],[\"natur\",\"♮\"],[\"natural\",\"♮\"],[\"naturals\",\"ℕ\"],[\"nbsp\",\"\xA0\"],[\"nbump\",\"≎̸\"],[\"nbumpe\",\"≏̸\"],[\"ncap\",\"⩃\"],[\"ncaron\",\"ň\"],[\"ncedil\",\"ņ\"],[\"ncong\",\"≇\"],[\"ncongdot\",\"⩭̸\"],[\"ncup\",\"⩂\"],[\"ncy\",\"н\"],[\"ndash\",\"–\"],[\"ne\",\"≠\"],[\"neArr\",\"⇗\"],[\"nearhk\",\"⤤\"],[\"nearr\",\"↗\"],[\"nearrow\",\"↗\"],[\"nedot\",\"≐̸\"],[\"nequiv\",\"≢\"],[\"nesear\",\"⤨\"],[\"nesim\",\"≂̸\"],[\"nexist\",\"∄\"],[\"nexists\",\"∄\"],[\"nfr\",\"𝔫\"],[\"ngE\",\"≧̸\"],[\"nge\",\"≱\"],[\"ngeq\",\"≱\"],[\"ngeqq\",\"≧̸\"],[\"ngeqslant\",\"⩾̸\"],[\"nges\",\"⩾̸\"],[\"ngsim\",\"≵\"],[\"ngt\",\"≯\"],[\"ngtr\",\"≯\"],[\"nhArr\",\"⇎\"],[\"nharr\",\"↮\"],[\"nhpar\",\"⫲\"],[\"ni\",\"∋\"],[\"nis\",\"⋼\"],[\"nisd\",\"⋺\"],[\"niv\",\"∋\"],[\"njcy\",\"њ\"],[\"nlArr\",\"⇍\"],[\"nlE\",\"≦̸\"],[\"nlarr\",\"↚\"],[\"nldr\",\"‥\"],[\"nle\",\"≰\"],[\"nleftarrow\",\"↚\"],[\"nleftrightarrow\",\"↮\"],[\"nleq\",\"≰\"],[\"nleqq\",\"≦̸\"],[\"nleqslant\",\"⩽̸\"],[\"nles\",\"⩽̸\"],[\"nless\",\"≮\"],[\"nlsim\",\"≴\"],[\"nlt\",\"≮\"],[\"nltri\",\"⋪\"],[\"nltrie\",\"⋬\"],[\"nmid\",\"∤\"],[\"nopf\",\"𝕟\"],[\"not\",\"¬\"],[\"notin\",\"∉\"],[\"notinE\",\"⋹̸\"],[\"notindot\",\"⋵̸\"],[\"notinva\",\"∉\"],[\"notinvb\",\"⋷\"],[\"notinvc\",\"⋶\"],[\"notni\",\"∌\"],[\"notniva\",\"∌\"],[\"notnivb\",\"⋾\"],[\"notnivc\",\"⋽\"],[\"npar\",\"∦\"],[\"nparallel\",\"∦\"],[\"nparsl\",\"⫽⃥\"],[\"npart\",\"∂̸\"],[\"npolint\",\"⨔\"],[\"npr\",\"⊀\"],[\"nprcue\",\"⋠\"],[\"npre\",\"⪯̸\"],[\"nprec\",\"⊀\"],[\"npreceq\",\"⪯̸\"],[\"nrArr\",\"⇏\"],[\"nrarr\",\"↛\"],[\"nrarrc\",\"⤳̸\"],[\"nrarrw\",\"↝̸\"],[\"nrightarrow\",\"↛\"],[\"nrtri\",\"⋫\"],[\"nrtrie\",\"⋭\"],[\"nsc\",\"⊁\"],[\"nsccue\",\"⋡\"],[\"nsce\",\"⪰̸\"],[\"nscr\",\"𝓃\"],[\"nshortmid\",\"∤\"],[\"nshortparallel\",\"∦\"],[\"nsim\",\"≁\"],[\"nsime\",\"≄\"],[\"nsimeq\",\"≄\"],[\"nsmid\",\"∤\"],[\"nspar\",\"∦\"],[\"nsqsube\",\"⋢\"],[\"nsqsupe\",\"⋣\"],[\"nsub\",\"⊄\"],[\"nsubE\",\"⫅̸\"],[\"nsube\",\"⊈\"],[\"nsubset\",\"⊂⃒\"],[\"nsubseteq\",\"⊈\"],[\"nsubseteqq\",\"⫅̸\"],[\"nsucc\",\"⊁\"],[\"nsucceq\",\"⪰̸\"],[\"nsup\",\"⊅\"],[\"nsupE\",\"⫆̸\"],[\"nsupe\",\"⊉\"],[\"nsupset\",\"⊃⃒\"],[\"nsupseteq\",\"⊉\"],[\"nsupseteqq\",\"⫆̸\"],[\"ntgl\",\"≹\"],[\"ntilde\",\"ñ\"],[\"ntlg\",\"≸\"],[\"ntriangleleft\",\"⋪\"],[\"ntrianglelefteq\",\"⋬\"],[\"ntriangleright\",\"⋫\"],[\"ntrianglerighteq\",\"⋭\"],[\"nu\",\"ν\"],[\"num\",\"#\"],[\"numero\",\"№\"],[\"numsp\",\" \"],[\"nvDash\",\"⊭\"],[\"nvHarr\",\"⤄\"],[\"nvap\",\"≍⃒\"],[\"nvdash\",\"⊬\"],[\"nvge\",\"≥⃒\"],[\"nvgt\",\">⃒\"],[\"nvinfin\",\"⧞\"],[\"nvlArr\",\"⤂\"],[\"nvle\",\"≤⃒\"],[\"nvlt\",\"<⃒\"],[\"nvltrie\",\"⊴⃒\"],[\"nvrArr\",\"⤃\"],[\"nvrtrie\",\"⊵⃒\"],[\"nvsim\",\"∼⃒\"],[\"nwArr\",\"⇖\"],[\"nwarhk\",\"⤣\"],[\"nwarr\",\"↖\"],[\"nwarrow\",\"↖\"],[\"nwnear\",\"⤧\"],[\"oS\",\"Ⓢ\"],[\"oacute\",\"ó\"],[\"oast\",\"⊛\"],[\"ocir\",\"⊚\"],[\"ocirc\",\"ô\"],[\"ocy\",\"о\"],[\"odash\",\"⊝\"],[\"odblac\",\"ő\"],[\"odiv\",\"⨸\"],[\"odot\",\"⊙\"],[\"odsold\",\"⦼\"],[\"oelig\",\"œ\"],[\"ofcir\",\"⦿\"],[\"ofr\",\"𝔬\"],[\"ogon\",\"˛\"],[\"ograve\",\"ò\"],[\"ogt\",\"⧁\"],[\"ohbar\",\"⦵\"],[\"ohm\",\"Ω\"],[\"oint\",\"∮\"],[\"olarr\",\"↺\"],[\"olcir\",\"⦾\"],[\"olcross\",\"⦻\"],[\"oline\",\"‾\"],[\"olt\",\"⧀\"],[\"omacr\",\"ō\"],[\"omega\",\"ω\"],[\"omicron\",\"ο\"],[\"omid\",\"⦶\"],[\"ominus\",\"⊖\"],[\"oopf\",\"𝕠\"],[\"opar\",\"⦷\"],[\"operp\",\"⦹\"],[\"oplus\",\"⊕\"],[\"or\",\"∨\"],[\"orarr\",\"↻\"],[\"ord\",\"⩝\"],[\"order\",\"ℴ\"],[\"orderof\",\"ℴ\"],[\"ordf\",\"ª\"],[\"ordm\",\"º\"],[\"origof\",\"⊶\"],[\"oror\",\"⩖\"],[\"orslope\",\"⩗\"],[\"orv\",\"⩛\"],[\"oscr\",\"ℴ\"],[\"oslash\",\"ø\"],[\"osol\",\"⊘\"],[\"otilde\",\"õ\"],[\"otimes\",\"⊗\"],[\"otimesas\",\"⨶\"],[\"ouml\",\"ö\"],[\"ovbar\",\"⌽\"],[\"par\",\"∥\"],[\"para\",\"¶\"],[\"parallel\",\"∥\"],[\"parsim\",\"⫳\"],[\"parsl\",\"⫽\"],[\"part\",\"∂\"],[\"pcy\",\"п\"],[\"percnt\",\"%\"],[\"period\",\".\"],[\"permil\",\"‰\"],[\"perp\",\"⊥\"],[\"pertenk\",\"‱\"],[\"pfr\",\"𝔭\"],[\"phi\",\"φ\"],[\"phiv\",\"ϕ\"],[\"phmmat\",\"ℳ\"],[\"phone\",\"☎\"],[\"pi\",\"π\"],[\"pitchfork\",\"⋔\"],[\"piv\",\"ϖ\"],[\"planck\",\"ℏ\"],[\"planckh\",\"ℎ\"],[\"plankv\",\"ℏ\"],[\"plus\",\"+\"],[\"plusacir\",\"⨣\"],[\"plusb\",\"⊞\"],[\"pluscir\",\"⨢\"],[\"plusdo\",\"∔\"],[\"plusdu\",\"⨥\"],[\"pluse\",\"⩲\"],[\"plusmn\",\"±\"],[\"plussim\",\"⨦\"],[\"plustwo\",\"⨧\"],[\"pm\",\"±\"],[\"pointint\",\"⨕\"],[\"popf\",\"𝕡\"],[\"pound\",\"£\"],[\"pr\",\"≺\"],[\"prE\",\"⪳\"],[\"prap\",\"⪷\"],[\"prcue\",\"≼\"],[\"pre\",\"⪯\"],[\"prec\",\"≺\"],[\"precapprox\",\"⪷\"],[\"preccurlyeq\",\"≼\"],[\"preceq\",\"⪯\"],[\"precnapprox\",\"⪹\"],[\"precneqq\",\"⪵\"],[\"precnsim\",\"⋨\"],[\"precsim\",\"≾\"],[\"prime\",\"′\"],[\"primes\",\"ℙ\"],[\"prnE\",\"⪵\"],[\"prnap\",\"⪹\"],[\"prnsim\",\"⋨\"],[\"prod\",\"∏\"],[\"profalar\",\"⌮\"],[\"profline\",\"⌒\"],[\"profsurf\",\"⌓\"],[\"prop\",\"∝\"],[\"propto\",\"∝\"],[\"prsim\",\"≾\"],[\"prurel\",\"⊰\"],[\"pscr\",\"𝓅\"],[\"psi\",\"ψ\"],[\"puncsp\",\" \"],[\"qfr\",\"𝔮\"],[\"qint\",\"⨌\"],[\"qopf\",\"𝕢\"],[\"qprime\",\"⁗\"],[\"qscr\",\"𝓆\"],[\"quaternions\",\"ℍ\"],[\"quatint\",\"⨖\"],[\"quest\",\"?\"],[\"questeq\",\"≟\"],[\"quot\",\"\\\"\"],[\"rAarr\",\"⇛\"],[\"rArr\",\"⇒\"],[\"rAtail\",\"⤜\"],[\"rBarr\",\"⤏\"],[\"rHar\",\"⥤\"],[\"race\",\"∽̱\"],[\"racute\",\"ŕ\"],[\"radic\",\"√\"],[\"raemptyv\",\"⦳\"],[\"rang\",\"⟩\"],[\"rangd\",\"⦒\"],[\"range\",\"⦥\"],[\"rangle\",\"⟩\"],[\"raquo\",\"»\"],[\"rarr\",\"→\"],[\"rarrap\",\"⥵\"],[\"rarrb\",\"⇥\"],[\"rarrbfs\",\"⤠\"],[\"rarrc\",\"⤳\"],[\"rarrfs\",\"⤞\"],[\"rarrhk\",\"↪\"],[\"rarrlp\",\"↬\"],[\"rarrpl\",\"⥅\"],[\"rarrsim\",\"⥴\"],[\"rarrtl\",\"↣\"],[\"rarrw\",\"↝\"],[\"ratail\",\"⤚\"],[\"ratio\",\"∶\"],[\"rationals\",\"ℚ\"],[\"rbarr\",\"⤍\"],[\"rbbrk\",\"❳\"],[\"rbrace\",\"}\"],[\"rbrack\",\"]\"],[\"rbrke\",\"⦌\"],[\"rbrksld\",\"⦎\"],[\"rbrkslu\",\"⦐\"],[\"rcaron\",\"ř\"],[\"rcedil\",\"ŗ\"],[\"rceil\",\"⌉\"],[\"rcub\",\"}\"],[\"rcy\",\"р\"],[\"rdca\",\"⤷\"],[\"rdldhar\",\"⥩\"],[\"rdquo\",\"”\"],[\"rdquor\",\"”\"],[\"rdsh\",\"↳\"],[\"real\",\"ℜ\"],[\"realine\",\"ℛ\"],[\"realpart\",\"ℜ\"],[\"reals\",\"ℝ\"],[\"rect\",\"▭\"],[\"reg\",\"®\"],[\"rfisht\",\"⥽\"],[\"rfloor\",\"⌋\"],[\"rfr\",\"𝔯\"],[\"rhard\",\"⇁\"],[\"rharu\",\"⇀\"],[\"rharul\",\"⥬\"],[\"rho\",\"ρ\"],[\"rhov\",\"ϱ\"],[\"rightarrow\",\"→\"],[\"rightarrowtail\",\"↣\"],[\"rightharpoondown\",\"⇁\"],[\"rightharpoonup\",\"⇀\"],[\"rightleftarrows\",\"⇄\"],[\"rightleftharpoons\",\"⇌\"],[\"rightrightarrows\",\"⇉\"],[\"rightsquigarrow\",\"↝\"],[\"rightthreetimes\",\"⋌\"],[\"ring\",\"˚\"],[\"risingdotseq\",\"≓\"],[\"rlarr\",\"⇄\"],[\"rlhar\",\"⇌\"],[\"rlm\",\"‏\"],[\"rmoust\",\"⎱\"],[\"rmoustache\",\"⎱\"],[\"rnmid\",\"⫮\"],[\"roang\",\"⟭\"],[\"roarr\",\"⇾\"],[\"robrk\",\"⟧\"],[\"ropar\",\"⦆\"],[\"ropf\",\"𝕣\"],[\"roplus\",\"⨮\"],[\"rotimes\",\"⨵\"],[\"rpar\",\")\"],[\"rpargt\",\"⦔\"],[\"rppolint\",\"⨒\"],[\"rrarr\",\"⇉\"],[\"rsaquo\",\"›\"],[\"rscr\",\"𝓇\"],[\"rsh\",\"↱\"],[\"rsqb\",\"]\"],[\"rsquo\",\"’\"],[\"rsquor\",\"’\"],[\"rthree\",\"⋌\"],[\"rtimes\",\"⋊\"],[\"rtri\",\"▹\"],[\"rtrie\",\"⊵\"],[\"rtrif\",\"▸\"],[\"rtriltri\",\"⧎\"],[\"ruluhar\",\"⥨\"],[\"rx\",\"℞\"],[\"sacute\",\"ś\"],[\"sbquo\",\"‚\"],[\"sc\",\"≻\"],[\"scE\",\"⪴\"],[\"scap\",\"⪸\"],[\"scaron\",\"š\"],[\"sccue\",\"≽\"],[\"sce\",\"⪰\"],[\"scedil\",\"ş\"],[\"scirc\",\"ŝ\"],[\"scnE\",\"⪶\"],[\"scnap\",\"⪺\"],[\"scnsim\",\"⋩\"],[\"scpolint\",\"⨓\"],[\"scsim\",\"≿\"],[\"scy\",\"с\"],[\"sdot\",\"⋅\"],[\"sdotb\",\"⊡\"],[\"sdote\",\"⩦\"],[\"seArr\",\"⇘\"],[\"searhk\",\"⤥\"],[\"searr\",\"↘\"],[\"searrow\",\"↘\"],[\"sect\",\"§\"],[\"semi\",\";\"],[\"seswar\",\"⤩\"],[\"setminus\",\"∖\"],[\"setmn\",\"∖\"],[\"sext\",\"✶\"],[\"sfr\",\"𝔰\"],[\"sfrown\",\"⌢\"],[\"sharp\",\"♯\"],[\"shchcy\",\"щ\"],[\"shcy\",\"ш\"],[\"shortmid\",\"∣\"],[\"shortparallel\",\"∥\"],[\"shy\",\"­\"],[\"sigma\",\"σ\"],[\"sigmaf\",\"ς\"],[\"sigmav\",\"ς\"],[\"sim\",\"∼\"],[\"simdot\",\"⩪\"],[\"sime\",\"≃\"],[\"simeq\",\"≃\"],[\"simg\",\"⪞\"],[\"simgE\",\"⪠\"],[\"siml\",\"⪝\"],[\"simlE\",\"⪟\"],[\"simne\",\"≆\"],[\"simplus\",\"⨤\"],[\"simrarr\",\"⥲\"],[\"slarr\",\"←\"],[\"smallsetminus\",\"∖\"],[\"smashp\",\"⨳\"],[\"smeparsl\",\"⧤\"],[\"smid\",\"∣\"],[\"smile\",\"⌣\"],[\"smt\",\"⪪\"],[\"smte\",\"⪬\"],[\"smtes\",\"⪬︀\"],[\"softcy\",\"ь\"],[\"sol\",\"/\"],[\"solb\",\"⧄\"],[\"solbar\",\"⌿\"],[\"sopf\",\"𝕤\"],[\"spades\",\"♠\"],[\"spadesuit\",\"♠\"],[\"spar\",\"∥\"],[\"sqcap\",\"⊓\"],[\"sqcaps\",\"⊓︀\"],[\"sqcup\",\"⊔\"],[\"sqcups\",\"⊔︀\"],[\"sqsub\",\"⊏\"],[\"sqsube\",\"⊑\"],[\"sqsubset\",\"⊏\"],[\"sqsubseteq\",\"⊑\"],[\"sqsup\",\"⊐\"],[\"sqsupe\",\"⊒\"],[\"sqsupset\",\"⊐\"],[\"sqsupseteq\",\"⊒\"],[\"squ\",\"□\"],[\"square\",\"□\"],[\"squarf\",\"▪\"],[\"squf\",\"▪\"],[\"srarr\",\"→\"],[\"sscr\",\"𝓈\"],[\"ssetmn\",\"∖\"],[\"ssmile\",\"⌣\"],[\"sstarf\",\"⋆\"],[\"star\",\"☆\"],[\"starf\",\"★\"],[\"straightepsilon\",\"ϵ\"],[\"straightphi\",\"ϕ\"],[\"strns\",\"¯\"],[\"sub\",\"⊂\"],[\"subE\",\"⫅\"],[\"subdot\",\"⪽\"],[\"sube\",\"⊆\"],[\"subedot\",\"⫃\"],[\"submult\",\"⫁\"],[\"subnE\",\"⫋\"],[\"subne\",\"⊊\"],[\"subplus\",\"⪿\"],[\"subrarr\",\"⥹\"],[\"subset\",\"⊂\"],[\"subseteq\",\"⊆\"],[\"subseteqq\",\"⫅\"],[\"subsetneq\",\"⊊\"],[\"subsetneqq\",\"⫋\"],[\"subsim\",\"⫇\"],[\"subsub\",\"⫕\"],[\"subsup\",\"⫓\"],[\"succ\",\"≻\"],[\"succapprox\",\"⪸\"],[\"succcurlyeq\",\"≽\"],[\"succeq\",\"⪰\"],[\"succnapprox\",\"⪺\"],[\"succneqq\",\"⪶\"],[\"succnsim\",\"⋩\"],[\"succsim\",\"≿\"],[\"sum\",\"∑\"],[\"sung\",\"♪\"],[\"sup\",\"⊃\"],[\"sup1\",\"¹\"],[\"sup2\",\"²\"],[\"sup3\",\"³\"],[\"supE\",\"⫆\"],[\"supdot\",\"⪾\"],[\"supdsub\",\"⫘\"],[\"supe\",\"⊇\"],[\"supedot\",\"⫄\"],[\"suphsol\",\"⟉\"],[\"suphsub\",\"⫗\"],[\"suplarr\",\"⥻\"],[\"supmult\",\"⫂\"],[\"supnE\",\"⫌\"],[\"supne\",\"⊋\"],[\"supplus\",\"⫀\"],[\"supset\",\"⊃\"],[\"supseteq\",\"⊇\"],[\"supseteqq\",\"⫆\"],[\"supsetneq\",\"⊋\"],[\"supsetneqq\",\"⫌\"],[\"supsim\",\"⫈\"],[\"supsub\",\"⫔\"],[\"supsup\",\"⫖\"],[\"swArr\",\"⇙\"],[\"swarhk\",\"⤦\"],[\"swarr\",\"↙\"],[\"swarrow\",\"↙\"],[\"swnwar\",\"⤪\"],[\"szlig\",\"ß\"],[\"target\",\"⌖\"],[\"tau\",\"τ\"],[\"tbrk\",\"⎴\"],[\"tcaron\",\"ť\"],[\"tcedil\",\"ţ\"],[\"tcy\",\"т\"],[\"tdot\",\"⃛\"],[\"telrec\",\"⌕\"],[\"tfr\",\"𝔱\"],[\"there4\",\"∴\"],[\"therefore\",\"∴\"],[\"theta\",\"θ\"],[\"thetasym\",\"ϑ\"],[\"thetav\",\"ϑ\"],[\"thickapprox\",\"≈\"],[\"thicksim\",\"∼\"],[\"thinsp\",\" \"],[\"thkap\",\"≈\"],[\"thksim\",\"∼\"],[\"thorn\",\"þ\"],[\"tilde\",\"˜\"],[\"times\",\"×\"],[\"timesb\",\"⊠\"],[\"timesbar\",\"⨱\"],[\"timesd\",\"⨰\"],[\"tint\",\"∭\"],[\"toea\",\"⤨\"],[\"top\",\"⊤\"],[\"topbot\",\"⌶\"],[\"topcir\",\"⫱\"],[\"topf\",\"𝕥\"],[\"topfork\",\"⫚\"],[\"tosa\",\"⤩\"],[\"tprime\",\"‴\"],[\"trade\",\"™\"],[\"triangle\",\"▵\"],[\"triangledown\",\"▿\"],[\"triangleleft\",\"◃\"],[\"trianglelefteq\",\"⊴\"],[\"triangleq\",\"≜\"],[\"triangleright\",\"▹\"],[\"trianglerighteq\",\"⊵\"],[\"tridot\",\"◬\"],[\"trie\",\"≜\"],[\"triminus\",\"⨺\"],[\"triplus\",\"⨹\"],[\"trisb\",\"⧍\"],[\"tritime\",\"⨻\"],[\"trpezium\",\"⏢\"],[\"tscr\",\"𝓉\"],[\"tscy\",\"ц\"],[\"tshcy\",\"ћ\"],[\"tstrok\",\"ŧ\"],[\"twixt\",\"≬\"],[\"twoheadleftarrow\",\"↞\"],[\"twoheadrightarrow\",\"↠\"],[\"uArr\",\"⇑\"],[\"uHar\",\"⥣\"],[\"uacute\",\"ú\"],[\"uarr\",\"↑\"],[\"ubrcy\",\"ў\"],[\"ubreve\",\"ŭ\"],[\"ucirc\",\"û\"],[\"ucy\",\"у\"],[\"udarr\",\"⇅\"],[\"udblac\",\"ű\"],[\"udhar\",\"⥮\"],[\"ufisht\",\"⥾\"],[\"ufr\",\"𝔲\"],[\"ugrave\",\"ù\"],[\"uharl\",\"↿\"],[\"uharr\",\"↾\"],[\"uhblk\",\"▀\"],[\"ulcorn\",\"⌜\"],[\"ulcorner\",\"⌜\"],[\"ulcrop\",\"⌏\"],[\"ultri\",\"◸\"],[\"umacr\",\"ū\"],[\"uml\",\"¨\"],[\"uogon\",\"ų\"],[\"uopf\",\"𝕦\"],[\"uparrow\",\"↑\"],[\"updownarrow\",\"↕\"],[\"upharpoonleft\",\"↿\"],[\"upharpoonright\",\"↾\"],[\"uplus\",\"⊎\"],[\"upsi\",\"υ\"],[\"upsih\",\"ϒ\"],[\"upsilon\",\"υ\"],[\"upuparrows\",\"⇈\"],[\"urcorn\",\"⌝\"],[\"urcorner\",\"⌝\"],[\"urcrop\",\"⌎\"],[\"uring\",\"ů\"],[\"urtri\",\"◹\"],[\"uscr\",\"𝓊\"],[\"utdot\",\"⋰\"],[\"utilde\",\"ũ\"],[\"utri\",\"▵\"],[\"utrif\",\"▴\"],[\"uuarr\",\"⇈\"],[\"uuml\",\"ü\"],[\"uwangle\",\"⦧\"],[\"vArr\",\"⇕\"],[\"vBar\",\"⫨\"],[\"vBarv\",\"⫩\"],[\"vDash\",\"⊨\"],[\"vangrt\",\"⦜\"],[\"varepsilon\",\"ϵ\"],[\"varkappa\",\"ϰ\"],[\"varnothing\",\"∅\"],[\"varphi\",\"ϕ\"],[\"varpi\",\"ϖ\"],[\"varpropto\",\"∝\"],[\"varr\",\"↕\"],[\"varrho\",\"ϱ\"],[\"varsigma\",\"ς\"],[\"varsubsetneq\",\"⊊︀\"],[\"varsubsetneqq\",\"⫋︀\"],[\"varsupsetneq\",\"⊋︀\"],[\"varsupsetneqq\",\"⫌︀\"],[\"vartheta\",\"ϑ\"],[\"vartriangleleft\",\"⊲\"],[\"vartriangleright\",\"⊳\"],[\"vcy\",\"в\"],[\"vdash\",\"⊢\"],[\"vee\",\"∨\"],[\"veebar\",\"⊻\"],[\"veeeq\",\"≚\"],[\"vellip\",\"⋮\"],[\"verbar\",\"|\"],[\"vert\",\"|\"],[\"vfr\",\"𝔳\"],[\"vltri\",\"⊲\"],[\"vnsub\",\"⊂⃒\"],[\"vnsup\",\"⊃⃒\"],[\"vopf\",\"𝕧\"],[\"vprop\",\"∝\"],[\"vrtri\",\"⊳\"],[\"vscr\",\"𝓋\"],[\"vsubnE\",\"⫋︀\"],[\"vsubne\",\"⊊︀\"],[\"vsupnE\",\"⫌︀\"],[\"vsupne\",\"⊋︀\"],[\"vzigzag\",\"⦚\"],[\"wcirc\",\"ŵ\"],[\"wedbar\",\"⩟\"],[\"wedge\",\"∧\"],[\"wedgeq\",\"≙\"],[\"weierp\",\"℘\"],[\"wfr\",\"𝔴\"],[\"wopf\",\"𝕨\"],[\"wp\",\"℘\"],[\"wr\",\"≀\"],[\"wreath\",\"≀\"],[\"wscr\",\"𝓌\"],[\"xcap\",\"⋂\"],[\"xcirc\",\"◯\"],[\"xcup\",\"⋃\"],[\"xdtri\",\"▽\"],[\"xfr\",\"𝔵\"],[\"xhArr\",\"⟺\"],[\"xharr\",\"⟷\"],[\"xi\",\"ξ\"],[\"xlArr\",\"⟸\"],[\"xlarr\",\"⟵\"],[\"xmap\",\"⟼\"],[\"xnis\",\"⋻\"],[\"xodot\",\"⨀\"],[\"xopf\",\"𝕩\"],[\"xoplus\",\"⨁\"],[\"xotime\",\"⨂\"],[\"xrArr\",\"⟹\"],[\"xrarr\",\"⟶\"],[\"xscr\",\"𝓍\"],[\"xsqcup\",\"⨆\"],[\"xuplus\",\"⨄\"],[\"xutri\",\"△\"],[\"xvee\",\"⋁\"],[\"xwedge\",\"⋀\"],[\"yacute\",\"ý\"],[\"yacy\",\"я\"],[\"ycirc\",\"ŷ\"],[\"ycy\",\"ы\"],[\"yen\",\"¥\"],[\"yfr\",\"𝔶\"],[\"yicy\",\"ї\"],[\"yopf\",\"𝕪\"],[\"yscr\",\"𝓎\"],[\"yucy\",\"ю\"],[\"yuml\",\"ÿ\"],[\"zacute\",\"ź\"],[\"zcaron\",\"ž\"],[\"zcy\",\"з\"],[\"zdot\",\"ż\"],[\"zeetrf\",\"ℨ\"],[\"zeta\",\"ζ\"],[\"zfr\",\"𝔷\"],[\"zhcy\",\"ж\"],[\"zigrarr\",\"⇝\"],[\"zopf\",\"𝕫\"],[\"zscr\",\"𝓏\"],[\"zwj\",\"‍\"],[\"zwnj\",\"‌\"]]"));
6009
6490
 
6010
6491
  //#endregion
6011
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/entities.js
6492
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/entities.js
6012
6493
  /** The largest code point Unicode defines. */
6013
6494
  const MAX_CODE_POINT = 1114111;
6014
6495
  /**
@@ -6031,7 +6512,7 @@ const decodeEntity = (entity) => {
6031
6512
  };
6032
6513
 
6033
6514
  //#endregion
6034
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/unescape.js
6515
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/unescape.js
6035
6516
  /** The punctuation set a backslash may escape, per the spec. */
6036
6517
  const ESCAPABLE$1 = "[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]";
6037
6518
  /** One entity, in any of the three spec forms. */
@@ -6046,7 +6527,7 @@ const unescapeChar = (source) => {
6046
6527
  const unescapeString = (source) => reBackslashOrAmp.test(source) ? source.replace(reEntityOrEscapedChar, unescapeChar) : source;
6047
6528
 
6048
6529
  //#endregion
6049
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/code.js
6530
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/code.js
6050
6531
  const reBlankLine = /^[ \t]*$/;
6051
6532
  const reClosingCodeFence = /^(?:`{3,}|~{3,})(?=[ \t]*$)/;
6052
6533
  /**
@@ -6131,7 +6612,7 @@ const codeConstruct = {
6131
6612
  };
6132
6613
 
6133
6614
  //#endregion
6134
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/document.js
6615
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/document.js
6135
6616
  /** The document root: contains everything except a bare list item. */
6136
6617
  const documentConstruct = {
6137
6618
  type: "document",
@@ -6145,7 +6626,7 @@ const documentConstruct = {
6145
6626
  };
6146
6627
 
6147
6628
  //#endregion
6148
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/fencedCode.js
6629
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/fencedCode.js
6149
6630
  const reCodeFence = /^`{3,}(?!.*`)|^~{3,}/;
6150
6631
  const fenceCharOf = (char) => char === "`" || char === "~" ? char : void 0;
6151
6632
  /** The fenced-code block start: three or more backticks or tildes. */
@@ -6170,7 +6651,7 @@ const fencedCodeStart = {
6170
6651
  };
6171
6652
 
6172
6653
  //#endregion
6173
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/patterns.js
6654
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/patterns.js
6174
6655
  const stickyCache = /* @__PURE__ */ new WeakMap();
6175
6656
  const globalCache = /* @__PURE__ */ new WeakMap();
6176
6657
  const clone = (pattern, flag, dropCaret) => {
@@ -6195,7 +6676,7 @@ const globalOf = (pattern) => {
6195
6676
  };
6196
6677
 
6197
6678
  //#endregion
6198
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/references.js
6679
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/references.js
6199
6680
  const ESCAPABLE = "[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]";
6200
6681
  const ESCAPED_CHAR = `\\\\${ESCAPABLE}`;
6201
6682
  const reLinkTitle = new RegExp(`^(?:"(${ESCAPED_CHAR}|\\\\[^\\\\]|[^\\\\"\\x00])*"|'(${ESCAPED_CHAR}|\\\\[^\\\\]|[^\\\\'\\x00])*'|\\((${ESCAPED_CHAR}|\\\\[^\\\\]|[^\\\\()\\x00])*\\))`);
@@ -6370,7 +6851,7 @@ const parseReference = (text) => {
6370
6851
  };
6371
6852
 
6372
6853
  //#endregion
6373
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/footnoteDefinition.js
6854
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/footnoteDefinition.js
6374
6855
  /**
6375
6856
  * `_scan_footnote_definition` from `src/scanners.re`:
6376
6857
  *
@@ -6448,7 +6929,7 @@ const footnoteDefinitionStart = {
6448
6929
  };
6449
6930
 
6450
6931
  //#endregion
6451
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/indentedCode.js
6932
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/indentedCode.js
6452
6933
  /** The indented-code block start: four columns of indentation. */
6453
6934
  const indentedCodeStart = {
6454
6935
  name: "indentedCode",
@@ -6463,7 +6944,7 @@ const indentedCodeStart = {
6463
6944
  };
6464
6945
 
6465
6946
  //#endregion
6466
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/segments.js
6947
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/segments.js
6467
6948
  /**
6468
6949
  * The absolute source offset of `textIndex` within a segmented content run.
6469
6950
  *
@@ -6498,7 +6979,7 @@ const sliceWithSegments = (segments, from, to) => {
6498
6979
  };
6499
6980
 
6500
6981
  //#endregion
6501
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/linkReferenceDefinition.js
6982
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/linkReferenceDefinition.js
6502
6983
  const C_OPEN_BRACKET$1 = 91;
6503
6984
  /**
6504
6985
  * Split every leading link reference definition out of `block`, inserting one
@@ -6564,7 +7045,7 @@ const definitionConstruct = {
6564
7045
  };
6565
7046
 
6566
7047
  //#endregion
6567
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/list.js
7048
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/list.js
6568
7049
  const reBulletListMarker = /^[*+-]/;
6569
7050
  const reOrderedListMarker = /^(\d{1,9})([.)])/;
6570
7051
  const reNonSpace$1 = /[^ \t\f\v\r\n]/;
@@ -6718,7 +7199,7 @@ const listItemStart = {
6718
7199
  };
6719
7200
 
6720
7201
  //#endregion
6721
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/paragraph.js
7202
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/paragraph.js
6722
7203
  /** Paragraph: absorbs lines until a blank one, and contains nothing. */
6723
7204
  const paragraphConstruct = {
6724
7205
  type: "paragraph",
@@ -6741,7 +7222,7 @@ const paragraphConstruct = {
6741
7222
  };
6742
7223
 
6743
7224
  //#endregion
6744
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/setextHeading.js
7225
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/setextHeading.js
6745
7226
  const reSetextHeadingLine = /^(?:=+|-+)[ \t]*$/;
6746
7227
  /** The setext heading block start: a run of `=` or `-` under a paragraph. */
6747
7228
  const setextHeadingStart = {
@@ -6762,7 +7243,7 @@ const setextHeadingStart = {
6762
7243
  };
6763
7244
 
6764
7245
  //#endregion
6765
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/table.js
7246
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/table.js
6766
7247
  /**
6767
7248
  * Upstream's `MAX_AUTOCOMPLETED_CELLS`: the ceiling on cells the parser
6768
7249
  * invents to pad short rows, which is what stops a wide header followed by a
@@ -7134,7 +7615,7 @@ const tableCellConstruct = {
7134
7615
  };
7135
7616
 
7136
7617
  //#endregion
7137
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/taskListItem.js
7618
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/taskListItem.js
7138
7619
  /**
7139
7620
  * `_scan_tasklist`, as the generated scanner accepts it.
7140
7621
  *
@@ -7169,7 +7650,7 @@ const taskListItemStart = {
7169
7650
  };
7170
7651
 
7171
7652
  //#endregion
7172
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blocks/thematicBreak.js
7653
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blocks/thematicBreak.js
7173
7654
  const reThematicBreak = /^(?:\*[ \t]*){3,}$|^(?:_[ \t]*){3,}$|^(?:-[ \t]*){3,}$/;
7174
7655
  const markerCharOf$1 = (char) => char === "-" || char === "_" || char === "*" ? char : void 0;
7175
7656
  /** Thematic break: one line, no children. */
@@ -7201,7 +7682,7 @@ const thematicBreakStart = {
7201
7682
  };
7202
7683
 
7203
7684
  //#endregion
7204
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blockRegistry.js
7685
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blockRegistry.js
7205
7686
  const constructTable = (constructs) => new Map(constructs.map((construct) => [construct.type, construct]));
7206
7687
  const commonmarkDialect$1 = {
7207
7688
  constructs: constructTable([
@@ -7274,7 +7755,7 @@ const blockDialect = (dialect) => {
7274
7755
  };
7275
7756
 
7276
7757
  //#endregion
7277
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/lineIndex.js
7758
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/lineIndex.js
7278
7759
  /**
7279
7760
  * A precomputed index of line-start offsets over a fixed source text,
7280
7761
  * answering `positionAt(offset)` in `O(log n)` via binary search rather than
@@ -7349,7 +7830,7 @@ var LineIndex = class LineIndex {
7349
7830
  };
7350
7831
 
7351
7832
  //#endregion
7352
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlineNode.js
7833
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlineNode.js
7353
7834
  /** Open a node with no links. */
7354
7835
  const makeInlineNode = (type, start, end, value = "") => ({
7355
7836
  type,
@@ -7402,7 +7883,7 @@ const childrenOf = (node) => {
7402
7883
  };
7403
7884
 
7404
7885
  //#endregion
7405
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/emphasis.js
7886
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/emphasis.js
7406
7887
  const C_ASTERISK$1 = 42;
7407
7888
  const C_UNDERSCORE$1 = 95;
7408
7889
  const rePunctuation = /^[!"#$%&'()*+,\-./:;<=>?@[\]\\^_`{|}~\p{P}\p{S}]/u;
@@ -7480,7 +7961,7 @@ const emphasisConstruct = {
7480
7961
  };
7481
7962
 
7482
7963
  //#endregion
7483
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/strikethrough.js
7964
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/strikethrough.js
7484
7965
  /**
7485
7966
  * Consume a `~` run as literal text and, when it is a viable one- or
7486
7967
  * two-tilde run, push it onto the shared delimiter stack.
@@ -7555,7 +8036,7 @@ const strikethroughConstruct = {
7555
8036
  };
7556
8037
 
7557
8038
  //#endregion
7558
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/autolink.js
8039
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/autolink.js
7559
8040
  const C_LESSTHAN$1 = 60;
7560
8041
  const reEmailAutolink = /^<([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;
7561
8042
  const reAutolink = /^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\0- ]*>/i;
@@ -7588,7 +8069,7 @@ const autolinkConstruct = {
7588
8069
  };
7589
8070
 
7590
8071
  //#endregion
7591
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/autolinkLiteral.js
8072
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/autolinkLiteral.js
7592
8073
  const C_LOWER_W = 119;
7593
8074
  const C_COLON = 58;
7594
8075
  /** `cmark_isspace`: ASCII only, deliberately — upstream's URL scan uses it. */
@@ -7959,7 +8440,7 @@ const linkifyEmails = (root) => {
7959
8440
  };
7960
8441
 
7961
8442
  //#endregion
7962
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/codeSpan.js
8443
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/codeSpan.js
7963
8444
  const C_BACKTICK$1 = 96;
7964
8445
  const reTicksHere = /^`+/;
7965
8446
  const reNewline = /\n/gm;
@@ -7988,7 +8469,7 @@ const codeSpanConstruct = {
7988
8469
  };
7989
8470
 
7990
8471
  //#endregion
7991
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/entity.js
8472
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/entity.js
7992
8473
  const C_AMPERSAND = 38;
7993
8474
  const reEntityHere = new RegExp(`^${ENTITY}`, "i");
7994
8475
  /** A named, decimal or hexadecimal character reference. */
@@ -8005,7 +8486,7 @@ const entityConstruct = {
8005
8486
  };
8006
8487
 
8007
8488
  //#endregion
8008
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/escape.js
8489
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/escape.js
8009
8490
  const C_BACKSLASH = 92;
8010
8491
  const C_NEWLINE$1 = 10;
8011
8492
  const reEscapable = new RegExp(`^${ESCAPABLE$1}`);
@@ -8035,7 +8516,7 @@ const escapeConstruct = {
8035
8516
  };
8036
8517
 
8037
8518
  //#endregion
8038
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/link.js
8519
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/link.js
8039
8520
  const C_BANG = 33;
8040
8521
  const C_CARET$1 = 94;
8041
8522
  const C_OPEN_BRACKET = 91;
@@ -8243,7 +8724,7 @@ const makeLinkCloseConstruct = (onNoMatch) => ({
8243
8724
  const linkCloseConstruct = makeLinkCloseConstruct();
8244
8725
 
8245
8726
  //#endregion
8246
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/footnoteReference.js
8727
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/footnoteReference.js
8247
8728
  const C_CARET = 94;
8248
8729
  /**
8249
8730
  * Whether the bracket that just closed looks like `[^...]` with something
@@ -8301,7 +8782,7 @@ const gfmLinkCloseConstruct = makeLinkCloseConstruct(footnoteReferenceFallback);
8301
8782
  const gfmImageOpenConstruct = makeImageOpenConstruct(false);
8302
8783
 
8303
8784
  //#endregion
8304
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/lineBreak.js
8785
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/lineBreak.js
8305
8786
  const C_NEWLINE = 10;
8306
8787
  const reInitialSpace = /^ */;
8307
8788
  /** A soft or hard line break. */
@@ -8323,7 +8804,7 @@ const lineBreakConstruct = {
8323
8804
  };
8324
8805
 
8325
8806
  //#endregion
8326
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/rawHtml.js
8807
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/rawHtml.js
8327
8808
  const C_LESSTHAN = 60;
8328
8809
  /** The raw-HTML forms that scan forward for a fixed closing sequence. */
8329
8810
  const UNTERMINATED_FORMS = [
@@ -8346,7 +8827,7 @@ const rawHtmlConstruct = {
8346
8827
  };
8347
8828
 
8348
8829
  //#endregion
8349
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlines/text.js
8830
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlines/text.js
8350
8831
  const reMain = /^[^\n`[\]\\!<&*_'"]+/;
8351
8832
  const reMainGfm = /^[^\n`[\]\\!<&*_'"~w:]+/;
8352
8833
  /** Consume a run of ordinary characters, stopping before any construct's. */
@@ -8367,7 +8848,7 @@ const textConstruct = runConstruct("text", reMain);
8367
8848
  const gfmTextConstruct = runConstruct("text", reMainGfm);
8368
8849
 
8369
8850
  //#endregion
8370
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlineRegistry.js
8851
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlineRegistry.js
8371
8852
  const triggerTable = (constructs) => {
8372
8853
  const table = /* @__PURE__ */ new Map();
8373
8854
  for (const construct of constructs) for (const trigger of construct.triggers) {
@@ -8421,7 +8902,7 @@ const inlineDialect = (dialect) => {
8421
8902
  };
8422
8903
 
8423
8904
  //#endregion
8424
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/inlineParser.js
8905
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/inlineParser.js
8425
8906
  const C_UNDERSCORE = 95;
8426
8907
  const C_ASTERISK = 42;
8427
8908
  const reTrailingSpaces = / +$/;
@@ -8816,7 +9297,7 @@ var InlineParser = class {
8816
9297
  const parseInlines = (source, refmap, position, dialect = "commonmark", footnoteLabels = /* @__PURE__ */ new Set()) => new InlineParser(source, inlineDialect(dialect), position, refmap, footnoteLabels).parse();
8817
9298
 
8818
9299
  //#endregion
8819
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/rawInline.js
9300
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/rawInline.js
8820
9301
  const reWhitespace = /\s/;
8821
9302
  const reCmarkSpace = /[ \t\n\r]/;
8822
9303
  /**
@@ -8872,7 +9353,7 @@ const prepareInline = (block, position, refmap, dialect = "commonmark", footnote
8872
9353
  };
8873
9354
 
8874
9355
  //#endregion
8875
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/blockParser.js
9356
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/blockParser.js
8876
9357
  /** Upstream's cheap pre-filter: a line that cannot start any block. */
8877
9358
  const reMaybeSpecial = /^[#`~*+_=<>0-9-]/;
8878
9359
  var BlockParser = class {
@@ -9280,7 +9761,7 @@ var BlockParser = class {
9280
9761
  const parseBlocks = (text, dialect = "commonmark", frontmatter = false) => new BlockParser(text, blockDialect(dialect), dialect, frontmatter).parse();
9281
9762
 
9282
9763
  //#endregion
9283
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/phrasing.js
9764
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/phrasing.js
9284
9765
  const EMPTY_REFMAP = /* @__PURE__ */ new Map();
9285
9766
  const EMPTY_FOOTNOTE_LABELS = /* @__PURE__ */ new Set();
9286
9767
  /**
@@ -9330,7 +9811,7 @@ const parsePhrasingText = (text, dialect) => {
9330
9811
  };
9331
9812
 
9332
9813
  //#endregion
9333
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/internal/stringify.js
9814
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/internal/stringify.js
9334
9815
  const FLOW_CONTEXT = {
9335
9816
  singleLine: false,
9336
9817
  inTable: false,
@@ -10027,7 +10508,7 @@ const stringifyTree = (root) => {
10027
10508
  };
10028
10509
 
10029
10510
  //#endregion
10030
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/Markdown.js
10511
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/Markdown.js
10031
10512
  /**
10032
10513
  * The markdown dialects the parser can be pointed at. `"gfm"` — CommonMark
10033
10514
  * 0.31.2 plus the GitHub extensions (tables, strikethrough, autolink
@@ -10408,7 +10889,7 @@ var Markdown = class Markdown {
10408
10889
  * @returns A `Schema.Codec<Root, string>`.
10409
10890
  */
10410
10891
  static fromString(options) {
10411
- return Schema.String.pipe(Schema.decodeTo(Root, SchemaTransformation.transformOrFail({
10892
+ return Schema.String.pipe(Schema.decodeTo(Root, SchemaTransformation.transformEffect({
10412
10893
  decode: (input) => Effect.mapError(Markdown.parse(input, options), (error) => new SchemaIssue.InvalidValue({ message: error.message }, input)),
10413
10894
  encode: (value) => Effect.mapError(Markdown.stringify(value), (error) => new SchemaIssue.InvalidValue({ message: error.message }, value))
10414
10895
  })));
@@ -10421,7 +10902,7 @@ var Markdown = class Markdown {
10421
10902
  };
10422
10903
 
10423
10904
  //#endregion
10424
- //#region ../../node_modules/.pnpm/@effected+markdown@0.9.1_@effected+jsonc@0.9.0_effect@4.0.0-rc.112__@effected+toml@0.6._0ab5922234f3f49b1f06bf2c0ce581fc/node_modules/@effected/markdown/Mdast.js
10905
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._fef2d84f4989873ee8536485b8b3c1ec/node_modules/@effected/markdown/Mdast.js
10425
10906
  /**
10426
10907
  * The remark-ecosystem interop boundary: projection between this package's
10427
10908
  * node classes and plain mdast JSON.
@@ -24954,7 +25435,7 @@ function gfmStrikethrough(options) {
24954
25435
  }
24955
25436
 
24956
25437
  //#endregion
24957
- //#region ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/edit-map.js
25438
+ //#region ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.2/node_modules/micromark-extension-gfm-table/lib/edit-map.js
24958
25439
  /**
24959
25440
  * @import {Event} from 'micromark-util-types'
24960
25441
  */
@@ -24976,14 +25457,25 @@ var EditMap = class {
24976
25457
  * @type {Array<Change>}
24977
25458
  */
24978
25459
  this.map = [];
25460
+ /**
25461
+ * Changes by index, so `add` does not scan `map` (quadratic on
25462
+ * table-heavy documents).
25463
+ *
25464
+ * @type {Map<number, Change>}
25465
+ */
25466
+ this.index = /* @__PURE__ */ new Map();
24979
25467
  }
24980
25468
  /**
24981
25469
  * Create an edit: a remove and/or add at a certain place.
24982
25470
  *
24983
25471
  * @param {number} index
25472
+ * Index at which to apply the edit.
24984
25473
  * @param {number} remove
25474
+ * Count of items to remove at the index.
24985
25475
  * @param {Array<Event>} add
25476
+ * Items to add at the index.
24986
25477
  * @returns {undefined}
25478
+ * Nothing.
24987
25479
  */
24988
25480
  add(index, remove, add) {
24989
25481
  addImplementation(this, index, remove, add);
@@ -24992,7 +25484,9 @@ var EditMap = class {
24992
25484
  * Done, change the events.
24993
25485
  *
24994
25486
  * @param {Array<Event>} events
25487
+ * List of events to apply the edits to.
24995
25488
  * @returns {undefined}
25489
+ * Nothing.
24996
25490
  */
24997
25491
  consume(events) {
24998
25492
  this.map.sort(function(a, b) {
@@ -25016,38 +25510,44 @@ var EditMap = class {
25016
25510
  slice = vecs.pop();
25017
25511
  }
25018
25512
  this.map.length = 0;
25513
+ this.index.clear();
25019
25514
  }
25020
25515
  };
25021
25516
  /**
25022
25517
  * Create an edit.
25023
25518
  *
25024
25519
  * @param {EditMap} editMap
25520
+ * Edit map to apply to.
25025
25521
  * @param {number} at
25522
+ * Index at which to apply the edit.
25026
25523
  * @param {number} remove
25524
+ * Count of items to remove at the index.
25027
25525
  * @param {Array<Event>} add
25526
+ * Items to add at the index.
25028
25527
  * @returns {undefined}
25528
+ * Nothing.
25029
25529
  */
25030
25530
  function addImplementation(editMap, at, remove, add) {
25031
- let index = 0;
25032
25531
  /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */
25033
25532
  if (remove === 0 && add.length === 0) return;
25034
- while (index < editMap.map.length) {
25035
- if (editMap.map[index][0] === at) {
25036
- editMap.map[index][1] += remove;
25037
- editMap.map[index][2].push(...add);
25038
- return;
25039
- }
25040
- index += 1;
25533
+ const existing = editMap.index.get(at);
25534
+ if (existing) {
25535
+ existing[1] += remove;
25536
+ existing[2].push(...add);
25537
+ return;
25041
25538
  }
25042
- editMap.map.push([
25539
+ /** @type {Change} */
25540
+ const change = [
25043
25541
  at,
25044
25542
  remove,
25045
25543
  add
25046
- ]);
25544
+ ];
25545
+ editMap.map.push(change);
25546
+ editMap.index.set(at, change);
25047
25547
  }
25048
25548
 
25049
25549
  //#endregion
25050
- //#region ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/infer.js
25550
+ //#region ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.2/node_modules/micromark-extension-gfm-table/lib/infer.js
25051
25551
  /**
25052
25552
  * @import {Event} from 'micromark-util-types'
25053
25553
  */
@@ -25086,7 +25586,7 @@ function gfmTableAlign(events, index) {
25086
25586
  }
25087
25587
 
25088
25588
  //#endregion
25089
- //#region ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.1/node_modules/micromark-extension-gfm-table/lib/syntax.js
25589
+ //#region ../../node_modules/.pnpm/micromark-extension-gfm-table@2.1.2/node_modules/micromark-extension-gfm-table/lib/syntax.js
25090
25590
  /**
25091
25591
  * @import {Event, Extension, Point, Resolver, State, Token, TokenizeContext, Tokenizer} from 'micromark-util-types'
25092
25592
  */
@@ -25112,6 +25612,8 @@ function gfmTable() {
25112
25612
  } } };
25113
25613
  }
25114
25614
  /**
25615
+ * Tokenizer for GFM tables.
25616
+ *
25115
25617
  * @this {TokenizeContext}
25116
25618
  * @type {Tokenizer}
25117
25619
  */
@@ -25141,7 +25643,7 @@ function tokenizeTable(effects, ok, nok) {
25141
25643
  function start(code) {
25142
25644
  let index = self.events.length - 1;
25143
25645
  while (index > -1) {
25144
- const type = self.events[index][1].type;
25646
+ const { type } = self.events[index][1];
25145
25647
  if (type === "lineEnding" || type === "linePrefix") index--;
25146
25648
  else break;
25147
25649
  }
@@ -25670,12 +26172,19 @@ function resolveTable(events, context) {
25670
26172
  * Generate a cell.
25671
26173
  *
25672
26174
  * @param {EditMap} map
26175
+ * Edit map to apply to.
25673
26176
  * @param {Readonly<TokenizeContext>} context
26177
+ * Tokenize context.
25674
26178
  * @param {Readonly<Range>} range
26179
+ * Range of the cell within events.
25675
26180
  * @param {RowKind} rowKind
26181
+ * Type of row.
25676
26182
  * @param {number | undefined} rowEnd
26183
+ * Index of the end of the row, if known.
25677
26184
  * @param {Token | undefined} previousCell
26185
+ * Previous cell token, if any.
25678
26186
  * @returns {Token | undefined}
26187
+ * Current cell token after flushing, if any.
25679
26188
  */
25680
26189
  function flushCell(map, context, range, rowKind, rowEnd, previousCell) {
25681
26190
  const groupName = rowKind === 1 ? "tableHeader" : rowKind === 2 ? "tableDelimiter" : "tableData";
@@ -25746,10 +26255,17 @@ function flushCell(map, context, range, rowKind, rowEnd, previousCell) {
25746
26255
  * Generate table end (and table body end).
25747
26256
  *
25748
26257
  * @param {Readonly<EditMap>} map
26258
+ * Edit map to apply to.
25749
26259
  * @param {Readonly<TokenizeContext>} context
26260
+ * Tokenize context.
25750
26261
  * @param {number} index
26262
+ * Index within the events where the table end should be inserted.
25751
26263
  * @param {Token} table
26264
+ * Table token.
25752
26265
  * @param {Token | undefined} tableBody
26266
+ * Table body token, if any.
26267
+ * @returns {undefined}
26268
+ * Nothing.
25753
26269
  */
25754
26270
  function flushTableEnd(map, context, index, table, tableBody) {
25755
26271
  /** @type {Array<Event>} */
@@ -25772,9 +26288,14 @@ function flushTableEnd(map, context, index, table, tableBody) {
25772
26288
  map.add(index + 1, 0, exits);
25773
26289
  }
25774
26290
  /**
26291
+ * Get the point (start or end) for a given event in the list of events.
26292
+ *
25775
26293
  * @param {Readonly<Array<Event>>} events
26294
+ * List of events.
25776
26295
  * @param {number} index
26296
+ * Index of the event to get the point for.
25777
26297
  * @returns {Readonly<Point>}
26298
+ * Start point for enter and end point for exit.
25778
26299
  */
25779
26300
  function getPoint(events, index) {
25780
26301
  const event = events[index];
@@ -31256,423 +31777,6 @@ function parseCommitMessage(message) {
31256
31777
  return { description: message };
31257
31778
  }
31258
31779
 
31259
- //#endregion
31260
- //#region ../../node_modules/.pnpm/@effected+github-references@0.2.0_effect@4.0.0-rc.112/node_modules/@effected/github-references/IssueReferences.js
31261
- /**
31262
- * GitHub's closing-keyword issue-reference grammar, as pure functions.
31263
- *
31264
- * @remarks
31265
- * GitHub links an issue to a pull request when the PR's description carries
31266
- * `<keyword> #<number>` for one of nine documented keywords. Consumers speak
31267
- * that grammar in two distinct dialects, and this module models exactly those
31268
- * two — no service, no layer, nothing but strings in and values out:
31269
- *
31270
- * - **Inline-in-prose** ({@link harvestIssueReferences}): a reference may appear anywhere in
31271
- * running text — `"fixes #12 and closes #13"` — with mandatory whitespace
31272
- * and **no colon**, because that is the spelling GitHub itself scans PR
31273
- * bodies for. This is the dialect a release pipeline harvests from commit
31274
- * subjects and PR descriptions.
31275
- * - **Bare-line** ({@link parseBareLineReference}): the whole line, after trimming, *is*
31276
- * the reference — `"Closes: #12"` — with an **optional colon**, because a
31277
- * generated references region writes one reference per line and a colon
31278
- * reads better there. GitHub does not require the colon; the region format
31279
- * allows it, so the parser must too. The dialects differ because their
31280
- * producers do: prose is written by humans for GitHub's scanner, the region
31281
- * is written by tooling for humans.
31282
- *
31283
- * Deliberately out of scope this round: cross-repo references
31284
- * (`owner/repo#N`) and full-URL references
31285
- * (`https://github.com/owner/repo/issues/N`). Both are real GitHub spellings;
31286
- * neither dialect's consumers emit them yet, and guessing at their shape here
31287
- * would freeze an API nobody has driven.
31288
- */
31289
- /**
31290
- * The nine closing keywords GitHub documents, lowercased.
31291
- *
31292
- * @public
31293
- */
31294
- const CLOSING_KEYWORDS = [
31295
- "close",
31296
- "closes",
31297
- "closed",
31298
- "fix",
31299
- "fixes",
31300
- "fixed",
31301
- "resolve",
31302
- "resolves",
31303
- "resolved"
31304
- ];
31305
- /**
31306
- * Both patterns derive from {@link CLOSING_KEYWORDS} so the constant and the
31307
- * grammar cannot drift. Alternation order is safe: the regex engine backtracks
31308
- * through alternatives, so `close` matching inside `closes` fails at the
31309
- * mandatory `#`-introducer and retries the longer keyword.
31310
- */
31311
- const KEYWORDS = CLOSING_KEYWORDS.join("|");
31312
- /** Inline-in-prose: mandatory whitespace, no colon. */
31313
- const INLINE_PATTERN = new RegExp(`\\b(${KEYWORDS})\\s+#(\\d+)`, "gi");
31314
- /**
31315
- * Bare-line: optional colon, then mandatory same-line whitespace. `[ \t]`
31316
- * rather than `\s`, so an embedded newline cannot smuggle two lines past a
31317
- * parser whose contract is one.
31318
- */
31319
- const BARE_LINE_PATTERN = new RegExp(`^(${KEYWORDS}):?[ \\t]+#(\\d+)$`, "i");
31320
-
31321
- //#endregion
31322
- //#region ../../node_modules/.pnpm/@effected+github-references@0.2.0_effect@4.0.0-rc.112/node_modules/@effected/github-references/ClosingList.js
31323
- /**
31324
- * The closing-list dialect: one whole line naming several issues at once.
31325
- *
31326
- * @remarks
31327
- * The third dialect, alongside the two in `IssueReferences`: after trimming,
31328
- * the **entire** line must be `<keyword>[:] <list>` — keyword
31329
- * case-insensitive (lowercased to canonical form in the result), colon
31330
- * optional, and the list one or more `#<digits>` items separated by `,`,
31331
- * `and`, or the Oxford `, and`. Whitespace inside the line is `[ \t]` only,
31332
- * so an embedded newline cannot smuggle two lines past a parser whose
31333
- * contract is one — the same posture as the bare-line pattern. Any trailing
31334
- * content after the list rejects the line; duplicates are preserved in order,
31335
- * because whether `#1, #1` means one issue or two is the caller's business.
31336
- *
31337
- * Two keyword sets play here. {@link parseClosingList} accepts only the nine
31338
- * closing keywords and yields a {@link ClosingList}; {@link parseReferenceList}
31339
- * additionally accepts the non-closing {@link REFERENCE_KEYWORDS} (`ref`,
31340
- * `refs`, `references`) and reports which set matched via
31341
- * {@link ReferenceList}'s `closing` flag.
31342
- *
31343
- * An item whose digits exceed `Number.MAX_SAFE_INTEGER` rejects the **whole
31344
- * line**, where `harvestIssueReferences` merely skips the one match. The
31345
- * asymmetry is deliberate: a harvest drops one reference out of running
31346
- * prose, but a list line is a single claim about a set of issues, and
31347
- * returning the parseable subset would misrepresent the line as claiming
31348
- * less than it does.
31349
- *
31350
- * Complexity posture: parsing is a single left-to-right character scan —
31351
- * this module contains **no regular expressions at all** — so worst-case
31352
- * time is linear in the line length by construction. There is no
31353
- * backtracking engine to feed, no polynomial blow-up for a scanner to flag,
31354
- * and therefore no input truncation.
31355
- *
31356
- * Beyond the whole-line parsers, {@link harvestReferenceLists} generalizes
31357
- * the same list grammar to the inline-in-prose posture — several lists on
31358
- * one line of running text — and {@link parseClosingLists} /
31359
- * {@link parseReferenceLists} apply the whole-line parsers per line of a
31360
- * multi-line text. All of them ride the same character scan; the no-regex
31361
- * promise above covers every export here.
31362
- */
31363
- /**
31364
- * The non-closing reference keywords the list dialect accepts, lowercased.
31365
- *
31366
- * @remarks
31367
- * GitHub does not act on these — they associate without closing — but a
31368
- * references region writes them, so the parser must read them.
31369
- *
31370
- * @public
31371
- */
31372
- const REFERENCE_KEYWORDS = [
31373
- "ref",
31374
- "refs",
31375
- "references"
31376
- ];
31377
- /**
31378
- * Both keyword tables ARE the exported constants — membership sets built from
31379
- * them once — so the constants and the grammar cannot drift.
31380
- */
31381
- const ALL_KEYWORDS = /* @__PURE__ */ new Set([...CLOSING_KEYWORDS, ...REFERENCE_KEYWORDS]);
31382
- /** Membership test for reporting `closing`, widened once so no call casts. */
31383
- const CLOSING_SET = new Set(CLOSING_KEYWORDS);
31384
- const HASH = 35;
31385
- const COLON = 58;
31386
- const COMMA = 44;
31387
- /** `[ \t]` — the only whitespace the dialect admits, per the module remarks. */
31388
- const isSpaceTab = (code) => code === 32 || code === 9;
31389
- const isDigit$1 = (code) => code >= 48 && code <= 57;
31390
- const isAsciiLetter = (code) => code >= 65 && code <= 90 || code >= 97 && code <= 122;
31391
- /** The index after the run of `[ \t]` starting at `from` (possibly `from` itself). */
31392
- const skipSpaceTab = (line, from) => {
31393
- let index = from;
31394
- while (index < line.length && isSpaceTab(line.charCodeAt(index))) index += 1;
31395
- return index;
31396
- };
31397
- /**
31398
- * One list item at exactly `from`: `#<digits>` and the index one past it.
31399
- * Digits exceeding `Number.MAX_SAFE_INTEGER` report `"unsafe"` rather than a
31400
- * silently rounded issue number, still carrying the index one past the digit
31401
- * run so a caller can skip the item's extent; the whole-line parsers reject
31402
- * on it and {@link harvestReferenceLists} abandons the entire candidate —
31403
- * see the module remarks for why a list never yields a partial reading.
31404
- * Anything that is not `#<digits>` at all is `undefined`.
31405
- */
31406
- const readItem = (line, from) => {
31407
- if (line.charCodeAt(from) !== HASH) return void 0;
31408
- const start = from + 1;
31409
- let index = start;
31410
- while (index < line.length && isDigit$1(line.charCodeAt(index))) index += 1;
31411
- if (index === start) return void 0;
31412
- const value = Number(line.slice(start, index));
31413
- return Number.isSafeInteger(value) ? {
31414
- kind: "item",
31415
- value,
31416
- next: index
31417
- } : {
31418
- kind: "unsafe",
31419
- next: index
31420
- };
31421
- };
31422
- /**
31423
- * One separator at exactly `from`: a comma with optional surrounding `[ \t]`
31424
- * and an optional Oxford `and` (consumed only when its own trailing `[ \t]+`
31425
- * is present), or a bare `and` requiring `[ \t]+` on both sides. `and` is
31426
- * lowercase-only — the keyword head is case-insensitive, the separator is
31427
- * not. Returns the index where the next item must start, or `undefined` when
31428
- * no separator is present.
31429
- */
31430
- const scanSeparator = (line, from) => {
31431
- const afterLeading = skipSpaceTab(line, from);
31432
- if (line.charCodeAt(afterLeading) === COMMA) {
31433
- const afterComma = skipSpaceTab(line, afterLeading + 1);
31434
- if (line.startsWith("and", afterComma)) {
31435
- const afterAnd = skipSpaceTab(line, afterComma + 3);
31436
- if (afterAnd > afterComma + 3) return afterAnd;
31437
- }
31438
- return afterComma;
31439
- }
31440
- if (afterLeading > from && line.startsWith("and", afterLeading)) {
31441
- const afterAnd = skipSpaceTab(line, afterLeading + 3);
31442
- if (afterAnd > afterLeading + 3) return afterAnd;
31443
- }
31444
- };
31445
- /**
31446
- * The scan walk: item, then separator, then item, until the cursor stands
31447
- * exactly at the end of the string. Anything else — a malformed item, an
31448
- * unknown separator, trailing content, an unsafe issue number — is
31449
- * `undefined`, and the caller rejects the whole line.
31450
- */
31451
- const parseItems = (line, from) => {
31452
- const issueNumbers = [];
31453
- let cursor = from;
31454
- for (;;) {
31455
- const item = readItem(line, cursor);
31456
- if (item === void 0 || item.kind === "unsafe") return void 0;
31457
- issueNumbers.push(item.value);
31458
- cursor = item.next;
31459
- if (cursor === line.length) return issueNumbers;
31460
- const next = scanSeparator(line, cursor);
31461
- if (next === void 0) return void 0;
31462
- cursor = next;
31463
- }
31464
- };
31465
- /**
31466
- * The list a whole line carries under either keyword set, or `Option.none()`.
31467
- *
31468
- * @remarks
31469
- * Accepts the nine closing keywords plus {@link REFERENCE_KEYWORDS}, and
31470
- * reports which set matched in the result's `closing` flag. Grammar,
31471
- * whole-line posture and the whole-line rejection of unsafe issue numbers
31472
- * are in the module remarks.
31473
- *
31474
- * @public
31475
- */
31476
- const parseReferenceList = (line) => {
31477
- const trimmed = line.trim();
31478
- let letters = 0;
31479
- while (letters < trimmed.length && isAsciiLetter(trimmed.charCodeAt(letters))) letters += 1;
31480
- if (letters === 0) return Option.none();
31481
- const keyword = trimmed.slice(0, letters).toLowerCase();
31482
- if (!ALL_KEYWORDS.has(keyword)) return Option.none();
31483
- let cursor = letters;
31484
- if (trimmed.charCodeAt(cursor) === COLON) cursor += 1;
31485
- const afterWhitespace = skipSpaceTab(trimmed, cursor);
31486
- if (afterWhitespace === cursor) return Option.none();
31487
- const issueNumbers = parseItems(trimmed, afterWhitespace);
31488
- if (issueNumbers === void 0) return Option.none();
31489
- return Option.some({
31490
- keyword,
31491
- closing: CLOSING_SET.has(keyword),
31492
- issueNumbers
31493
- });
31494
- };
31495
- /**
31496
- * Every reference list a text carries, line by line, across both postures.
31497
- *
31498
- * @remarks
31499
- * The trailer/prose interleave consumers otherwise hand-roll: each line is
31500
- * tried as a whole-line reference list first ({@link parseReferenceList} —
31501
- * colon-tolerant, per the line dialect), and only a line that is not one is
31502
- * harvested inline ({@link harvestReferenceLists} — no colon, per the inline
31503
- * dialect). The preference means a colon-less trailer line contributes its
31504
- * list exactly once, never once per posture.
31505
- *
31506
- * Results carry no offsets, deliberately: this is the line-granular
31507
- * composition, and a consumer that needs spans uses
31508
- * {@link harvestReferenceLists} directly. Duplicates are preserved, in
31509
- * document order.
31510
- *
31511
- * @public
31512
- */
31513
- const collectReferenceLists = (text) => {
31514
- const lists = [];
31515
- for (const line of text.split("\n")) {
31516
- const whole = parseReferenceList(line);
31517
- if (Option.isSome(whole)) {
31518
- lists.push(whole.value);
31519
- continue;
31520
- }
31521
- for (const harvested of harvestReferenceLists(line)) lists.push({
31522
- keyword: harvested.keyword,
31523
- closing: harvested.closing,
31524
- issueNumbers: harvested.issueNumbers
31525
- });
31526
- }
31527
- return lists;
31528
- };
31529
- /** `[A-Za-z0-9_]` — the word-boundary alphabet the inline dialects use. */
31530
- const isWordChar = (code) => isAsciiLetter(code) || isDigit$1(code) || code === 95;
31531
- /**
31532
- * The full JavaScript `\s` set, spelled as a predicate so the module keeps
31533
- * its no-regex promise: ASCII whitespace, NEL-adjacent controls, and the
31534
- * Unicode space separators. Only the keyword→first-item gap of
31535
- * {@link harvestReferenceLists} admits this set — everything inside a list
31536
- * stays `[ \t]`, per the module remarks.
31537
- */
31538
- 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;
31539
- /**
31540
- * Every reference list found inline in `text`, in document order.
31541
- *
31542
- * @remarks
31543
- * The inline-in-prose posture generalized to lists:
31544
- * `Closes #123, Fixes #456` in one line of a commit body yields two
31545
- * single-item lists, where
31546
- * `harvestIssueReferences` reads only the first reference of each and the
31547
- * whole-line parsers read neither. The grammar per candidate:
31548
- *
31549
- * - The keyword is case-insensitive, drawn from either keyword set,
31550
- * lowercased to canonical form in the result, with `closing` reported by
31551
- * set membership. Word boundaries hold on both sides: the characters
31552
- * immediately before and after the keyword's letter run must not be
31553
- * `[A-Za-z0-9_]`, so `recloses #1` and `1closes #1` do not match.
31554
- * - **No colon** — exactly like `harvestIssueReferences`, the colon spelling
31555
- * belongs to the line dialects ({@link parseReferenceList} and the
31556
- * bare-line parser), so `closes: #1` inline yields nothing.
31557
- * - The keyword→first-item gap is any run of whitespace **including
31558
- * newlines**, mirroring the inline dialect's `\s+`.
31559
- * - List continuation uses the `,` / `and` / Oxford separators with `[ \t]`
31560
- * whitespace only, so a list cannot continue past a newline — a later
31561
- * line makes its own claims.
31562
- * - Items are `#<digits>`; duplicates are preserved in order.
31563
- *
31564
- * A list ends at its last valid item: in `closes #1 and fixes #2` the
31565
- * ` and ` before `fixes` fails as a separator because what follows is not
31566
- * `#`, so the text yields `closes: [1]` then `fixes: [2]`. An item past
31567
- * `Number.MAX_SAFE_INTEGER` anywhere in a candidate skips the **entire**
31568
- * candidate — never a partial list, for the same reason
31569
- * {@link parseReferenceList} rejects the whole line — and scanning resumes
31570
- * after the candidate's scanned extent.
31571
- *
31572
- * Like everything in this module, the harvest is a single left-to-right
31573
- * character scan with no regular expressions, so time stays linear in the
31574
- * text length and no input is truncated.
31575
- *
31576
- * @public
31577
- */
31578
- const harvestReferenceLists = (text) => {
31579
- const lists = [];
31580
- let index = 0;
31581
- while (index < text.length) {
31582
- if (!isAsciiLetter(text.charCodeAt(index))) {
31583
- index += 1;
31584
- continue;
31585
- }
31586
- const runStart = index;
31587
- let runEnd = index + 1;
31588
- while (runEnd < text.length && isAsciiLetter(text.charCodeAt(runEnd))) runEnd += 1;
31589
- if (runStart > 0 && isWordChar(text.charCodeAt(runStart - 1)) || runEnd < text.length && isWordChar(text.charCodeAt(runEnd))) {
31590
- index = runEnd;
31591
- continue;
31592
- }
31593
- const keyword = text.slice(runStart, runEnd).toLowerCase();
31594
- if (!ALL_KEYWORDS.has(keyword)) {
31595
- index = runEnd;
31596
- continue;
31597
- }
31598
- let cursor = runEnd;
31599
- while (cursor < text.length && isAnyWhitespace(text.charCodeAt(cursor))) cursor += 1;
31600
- const first = cursor === runEnd ? void 0 : readItem(text, cursor);
31601
- if (first === void 0) {
31602
- index = runEnd;
31603
- continue;
31604
- }
31605
- if (first.kind === "unsafe") {
31606
- index = first.next;
31607
- continue;
31608
- }
31609
- const issueNumbers = [first.value];
31610
- let end = first.next;
31611
- let unsafeNext;
31612
- for (;;) {
31613
- const next = scanSeparator(text, end);
31614
- if (next === void 0) break;
31615
- const item = readItem(text, next);
31616
- if (item === void 0) break;
31617
- if (item.kind === "unsafe") {
31618
- unsafeNext = item.next;
31619
- break;
31620
- }
31621
- issueNumbers.push(item.value);
31622
- end = item.next;
31623
- }
31624
- if (unsafeNext !== void 0) {
31625
- index = unsafeNext;
31626
- continue;
31627
- }
31628
- lists.push({
31629
- keyword,
31630
- closing: CLOSING_SET.has(keyword),
31631
- issueNumbers,
31632
- start: runStart,
31633
- end
31634
- });
31635
- index = end;
31636
- }
31637
- return lists;
31638
- };
31639
-
31640
- //#endregion
31641
- //#region ../../node_modules/.pnpm/@effected+github-references@0.2.0_effect@4.0.0-rc.112/node_modules/@effected/github-references/KeywordFamily.js
31642
- /**
31643
- * The projection table IS the totality proof: `Record` over the union of
31644
- * both keyword types makes a keyword added to either constant without an
31645
- * entry here fail to compile.
31646
- */
31647
- const FAMILIES = {
31648
- close: "close",
31649
- closes: "close",
31650
- closed: "close",
31651
- fix: "fix",
31652
- fixes: "fix",
31653
- fixed: "fix",
31654
- resolve: "resolve",
31655
- resolves: "resolve",
31656
- resolved: "resolve",
31657
- ref: "ref",
31658
- refs: "ref",
31659
- references: "ref"
31660
- };
31661
- /**
31662
- * The family a keyword belongs to.
31663
- *
31664
- * @remarks
31665
- * Total over both keyword sets by construction — see the module remarks for
31666
- * why an explicit record beats a `startsWith` heuristic. `close`, `closes`
31667
- * and `closed` map to `"close"`; the `fix` and `resolve` conjugations
31668
- * likewise; `ref`, `refs` and `references` map to `"ref"`. The evidence for
31669
- * the projection is downstream: categorized harvesters key maps by family,
31670
- * and each was hand-rolling this collapse.
31671
- *
31672
- * @public
31673
- */
31674
- const keywordFamily = (keyword) => FAMILIES[keyword];
31675
-
31676
31780
  //#endregion
31677
31781
  //#region ../silk-effects/dist/dev/pkg/changesets/utils/issue-refs.js
31678
31782
  /**
@@ -31740,42 +31844,6 @@ function parseIssueReferences(commitMessage) {
31740
31844
  return references;
31741
31845
  }
31742
31846
 
31743
- //#endregion
31744
- //#region ../silk-effects/dist/dev/pkg/changesets/utils/logger.js
31745
- /**
31746
- * Log a warning message.
31747
- *
31748
- * @remarks
31749
- * Detection order:
31750
- * 1. If `process.env.VITEST` is set, the message is silently discarded.
31751
- * 2. If `process.env.GITHUB_ACTIONS === "true"`, the message is emitted
31752
- * as a `::warning::` annotation.
31753
- * 3. Otherwise, `console.warn` is used.
31754
- *
31755
- * @param message - The warning message
31756
- * @param args - Additional arguments (concatenated with a space in CI mode)
31757
- *
31758
- * @example
31759
- * ```typescript
31760
- * import { logWarning } from "../utils/logger.js";
31761
- *
31762
- * logWarning("Duplicate dependency entry", "effect@3.19.0");
31763
- * // In CI: "::warning::Duplicate dependency entry effect@3.19.0"
31764
- * // Locally: console.warn("Duplicate dependency entry", "effect@3.19.0")
31765
- * ```
31766
- *
31767
- * @internal
31768
- */
31769
- function logWarning(message, ...args) {
31770
- /* v8 ignore start — environment-specific */
31771
- if (typeof process !== "undefined" && process.env.VITEST) return;
31772
- if (typeof process !== "undefined" && process.env.GITHUB_ACTIONS === "true") {
31773
- const text = args.length > 0 ? `${message} ${args.join(" ")}` : message;
31774
- console.warn(`::warning::${text}`);
31775
- } else console.warn(message, ...args);
31776
- /* v8 ignore stop */
31777
- }
31778
-
31779
31847
  //#endregion
31780
31848
  //#region ../silk-effects/dist/dev/pkg/changesets/utils/section-parser.js
31781
31849
  /**
@@ -32148,10 +32216,7 @@ function getReleaseLine(changeset, versionType, options) {
32148
32216
  if (changeset.commit) commitInfo = yield* (yield* GitHubService).getInfo({
32149
32217
  commit: changeset.commit,
32150
32218
  repo: options.repo
32151
- }).pipe(Effect.flatMap((raw) => Schema.decodeUnknownEffect(GitHubInfoSchema)(raw).pipe(Effect.map(() => raw), Effect.catch(() => Effect.succeed(raw)))), Effect.catch((error) => {
32152
- logWarning("Could not fetch GitHub info for commit:", changeset.commit ?? "", String(error));
32153
- return Effect.succeed(null);
32154
- }));
32219
+ }).pipe(Effect.flatMap((raw) => Schema.decodeUnknownEffect(GitHubInfoSchema)(raw).pipe(Effect.map(() => raw), Effect.catch(() => Effect.succeed(raw)))), Effect.catch((error) => logWarning("Could not fetch GitHub info for commit:", changeset.commit ?? "", String(error)).pipe(Effect.as(null))));
32155
32220
  const parsed = parseChangesetSections(changeset.summary);
32156
32221
  const firstLine = changeset.summary.split("\n")[0];
32157
32222
  const commitMsg = parseCommitMessage(firstLine);
@@ -32250,31 +32315,50 @@ function getReleaseLine(changeset, versionType, options) {
32250
32315
  */
32251
32316
  const MainLayer = GitHubService.layer;
32252
32317
  /**
32253
- * Changesets API `ChangelogFunctions` implementation.
32318
+ * Build a Changesets `ChangelogFunctions` implementation bound to a warning
32319
+ * mode.
32254
32320
  *
32255
- * This object satisfies the `ChangelogFunctions` contract from
32256
- * `\@changesets/types`. Each method validates options, runs the
32257
- * corresponding Effect program with the merged service layer, and
32258
- * returns a `Promise<string>`.
32321
+ * @remarks
32322
+ * This module is engine code and reads no environment; the host that installs
32323
+ * the functions (the `\@savvy-web/changelog` package under the changesets CLI)
32324
+ * decides the mode from its own `process.env` and passes it here. Each method
32325
+ * validates options, runs the corresponding Effect program with the merged
32326
+ * service layer and the chosen {@link ChangesetLogMode}, and returns a
32327
+ * `Promise<string>`.
32259
32328
  *
32260
- * @internal
32329
+ * @param options - The warning mode to provide
32330
+ * @returns A `ChangelogFunctions` object for `.changeset/config.json`
32331
+ *
32332
+ * @public
32261
32333
  */
32262
- const changelogFunctions$2 = {
32263
- getReleaseLine: async (changeset, versionType, options) => {
32264
- const program = Effect.gen(function* () {
32334
+ function makeChangelogFunctions(options = {}) {
32335
+ const run = (program) => {
32336
+ const provided = program.pipe(Effect.provide(MainLayer));
32337
+ return Effect.runPromise(options.logMode === void 0 ? provided : provided.pipe(Effect.provideService(ChangesetLogMode, options.logMode)));
32338
+ };
32339
+ return {
32340
+ getReleaseLine: async (changeset, versionType, options) => run(Effect.gen(function* () {
32265
32341
  const opts = yield* validateChangesetOptions(options);
32266
32342
  return yield* getReleaseLine(changeset, versionType, opts);
32267
- });
32268
- return Effect.runPromise(program.pipe(Effect.provide(MainLayer)));
32269
- },
32270
- getDependencyReleaseLine: async (changesets, dependenciesUpdated, options) => {
32271
- const program = Effect.gen(function* () {
32343
+ })),
32344
+ getDependencyReleaseLine: async (changesets, dependenciesUpdated, options) => run(Effect.gen(function* () {
32272
32345
  const opts = yield* validateChangesetOptions(options);
32273
32346
  return yield* getDependencyReleaseLine(changesets, dependenciesUpdated, opts);
32274
- });
32275
- return Effect.runPromise(program.pipe(Effect.provide(MainLayer)));
32276
- }
32277
- };
32347
+ }))
32348
+ };
32349
+ }
32350
+ /**
32351
+ * Changesets API `ChangelogFunctions` implementation with the default warning
32352
+ * mode (`"stderr"`).
32353
+ *
32354
+ * @remarks
32355
+ * Equivalent to `makeChangelogFunctions()`. A host that runs under GitHub
32356
+ * Actions or a test runner should call {@link makeChangelogFunctions} with the
32357
+ * mode it detects instead.
32358
+ *
32359
+ * @internal
32360
+ */
32361
+ const changelogFunctions$2 = makeChangelogFunctions();
32278
32362
 
32279
32363
  //#endregion
32280
32364
  //#region ../silk-effects/dist/dev/pkg/changesets/api/changelog.js
@@ -32380,10 +32464,13 @@ var Changelog = class {
32380
32464
  * @param versionType - The semantic version bump type (`"major"`, `"minor"`, or `"patch"`)
32381
32465
  * @param options - Configuration object; must include `repo` in `"owner/repo"` format.
32382
32466
  * Pass `null` to use defaults (no GitHub link resolution).
32467
+ * @param logMode - How a failed GitHub lookup is reported (`"stderr"` when omitted);
32468
+ * the host reads its own environment and passes `"github"` / `"silent"` — this
32469
+ * engine never does. See `ChangesetLogMode`.
32383
32470
  * @returns A promise resolving to the formatted markdown string
32384
32471
  */
32385
- static async formatReleaseLine(changeset, versionType, options) {
32386
- return changelogFunctions$2.getReleaseLine(changeset, versionType, options);
32472
+ static async formatReleaseLine(changeset, versionType, options, logMode) {
32473
+ return makeChangelogFunctions(logMode === void 0 ? {} : { logMode }).getReleaseLine(changeset, versionType, options);
32387
32474
  }
32388
32475
  /**
32389
32476
  * Format dependency update release lines into a markdown table.
@@ -32398,11 +32485,13 @@ var Changelog = class {
32398
32485
  * old/new versions and package metadata
32399
32486
  * @param options - Configuration object; must include `repo` in `"owner/repo"` format.
32400
32487
  * Pass `null` to use defaults.
32488
+ * @param logMode - How a failed GitHub lookup is reported (`"stderr"` when omitted);
32489
+ * see {@link Changelog.formatReleaseLine}.
32401
32490
  * @returns A promise resolving to the formatted markdown string containing
32402
32491
  * the dependency update table
32403
32492
  */
32404
- static async formatDependencyReleaseLine(changesets, dependenciesUpdated, options) {
32405
- return changelogFunctions$2.getDependencyReleaseLine(changesets, dependenciesUpdated, options);
32493
+ static async formatDependencyReleaseLine(changesets, dependenciesUpdated, options, logMode) {
32494
+ return makeChangelogFunctions(logMode === void 0 ? {} : { logMode }).getDependencyReleaseLine(changesets, dependenciesUpdated, options);
32406
32495
  }
32407
32496
  };
32408
32497
 
@@ -34191,7 +34280,7 @@ const LegacySavvyLintHygieneDef = SectionId.make({
34191
34280
  });
34192
34281
 
34193
34282
  //#endregion
34194
- //#region ../../node_modules/.pnpm/@effected+glob@0.5.0_effect@4.0.0-rc.112/node_modules/@effected/glob/internal/limits.js
34283
+ //#region ../../node_modules/.pnpm/@effected+glob@0.6.0_effect@4.0.0-rc.115/node_modules/@effected/glob/internal/limits.js
34195
34284
  /** Hard cap on pattern length. Upstream minimatch's MAX_PATTERN_LENGTH (64KB). */
34196
34285
  const MAX_PATTERN_LENGTH = 65536;
34197
34286
  /** Default brace-expansion output budget. Upstream brace-expansion's EXPANSION_MAX. */
@@ -34226,7 +34315,7 @@ const assertCap = (name, value) => {
34226
34315
  };
34227
34316
 
34228
34317
  //#endregion
34229
- //#region ../../node_modules/.pnpm/@effected+glob@0.5.0_effect@4.0.0-rc.112/node_modules/@effected/glob/internal/unescape.js
34318
+ //#region ../../node_modules/.pnpm/@effected+glob@0.6.0_effect@4.0.0-rc.115/node_modules/@effected/glob/internal/unescape.js
34230
34319
  /**
34231
34320
  * Un-escape a string that has been escaped with `escape`.
34232
34321
  *
@@ -34250,12 +34339,12 @@ const unescapePattern = (s, { windowsPathsNoEscape = false, magicalBraces = true
34250
34339
  };
34251
34340
 
34252
34341
  //#endregion
34253
- //#region ../../node_modules/.pnpm/@effected+glob@0.5.0_effect@4.0.0-rc.112/node_modules/@effected/glob/internal/types.js
34342
+ //#region ../../node_modules/.pnpm/@effected+glob@0.6.0_effect@4.0.0-rc.115/node_modules/@effected/glob/internal/types.js
34254
34343
  /** The globstar marker in a compiled pattern set. */
34255
34344
  const GLOBSTAR = Symbol("globstar **");
34256
34345
 
34257
34346
  //#endregion
34258
- //#region ../../node_modules/.pnpm/@effected+glob@0.5.0_effect@4.0.0-rc.112/node_modules/@effected/glob/internal/escape.js
34347
+ //#region ../../node_modules/.pnpm/@effected+glob@0.6.0_effect@4.0.0-rc.115/node_modules/@effected/glob/internal/escape.js
34259
34348
  /**
34260
34349
  * Escape all magic characters in a glob pattern.
34261
34350
  *
@@ -34274,14 +34363,14 @@ const escapePattern = (s, { windowsPathsNoEscape = false, magicalBraces = false
34274
34363
  };
34275
34364
 
34276
34365
  //#endregion
34277
- //#region ../../node_modules/.pnpm/@effected+glob@0.5.0_effect@4.0.0-rc.112/node_modules/@effected/glob/internal/assertValidPattern.js
34366
+ //#region ../../node_modules/.pnpm/@effected+glob@0.6.0_effect@4.0.0-rc.115/node_modules/@effected/glob/internal/assertValidPattern.js
34278
34367
  const assertValidPattern = (pattern) => {
34279
34368
  if (typeof pattern !== "string") throw new TypeError("invalid pattern");
34280
34369
  if (pattern.length > 65536) throw new GuardExceeded("PatternTooLong", MAX_PATTERN_LENGTH, pattern.length);
34281
34370
  };
34282
34371
 
34283
34372
  //#endregion
34284
- //#region ../../node_modules/.pnpm/@effected+glob@0.5.0_effect@4.0.0-rc.112/node_modules/@effected/glob/internal/braceExpressions.js
34373
+ //#region ../../node_modules/.pnpm/@effected+glob@0.6.0_effect@4.0.0-rc.115/node_modules/@effected/glob/internal/braceExpressions.js
34285
34374
  const posixClasses = {
34286
34375
  "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", true],
34287
34376
  "[:alpha:]": ["\\p{L}\\p{Nl}", true],
@@ -34405,7 +34494,7 @@ const parseClass = (glob, position) => {
34405
34494
  };
34406
34495
 
34407
34496
  //#endregion
34408
- //#region ../../node_modules/.pnpm/@effected+glob@0.5.0_effect@4.0.0-rc.112/node_modules/@effected/glob/internal/ast.js
34497
+ //#region ../../node_modules/.pnpm/@effected+glob@0.6.0_effect@4.0.0-rc.115/node_modules/@effected/glob/internal/ast.js
34409
34498
  const types = /* @__PURE__ */ new Set([
34410
34499
  "!",
34411
34500
  "?",
@@ -34923,7 +35012,7 @@ var AST = class AST {
34923
35012
  };
34924
35013
 
34925
35014
  //#endregion
34926
- //#region ../../node_modules/.pnpm/@effected+glob@0.5.0_effect@4.0.0-rc.112/node_modules/@effected/glob/internal/balancedMatch.js
35015
+ //#region ../../node_modules/.pnpm/@effected+glob@0.6.0_effect@4.0.0-rc.115/node_modules/@effected/glob/internal/balancedMatch.js
34927
35016
  const maybeMatch = (reg, str) => {
34928
35017
  const m = str.match(reg);
34929
35018
  return m ? m[0] : null;
@@ -34982,7 +35071,7 @@ const range = (a, b, str) => {
34982
35071
  };
34983
35072
 
34984
35073
  //#endregion
34985
- //#region ../../node_modules/.pnpm/@effected+glob@0.5.0_effect@4.0.0-rc.112/node_modules/@effected/glob/internal/braceExpansion.js
35074
+ //#region ../../node_modules/.pnpm/@effected+glob@0.6.0_effect@4.0.0-rc.115/node_modules/@effected/glob/internal/braceExpansion.js
34986
35075
  const escSlash = `\0SLASH${Math.random()}\0`;
34987
35076
  const escOpen = `\0OPEN${Math.random()}\0`;
34988
35077
  const escClose = `\0CLOSE${Math.random()}\0`;
@@ -35130,7 +35219,7 @@ function expand_(str, max, isTopInput, depth) {
35130
35219
  }
35131
35220
 
35132
35221
  //#endregion
35133
- //#region ../../node_modules/.pnpm/@effected+glob@0.5.0_effect@4.0.0-rc.112/node_modules/@effected/glob/internal/minimatch.js
35222
+ //#region ../../node_modules/.pnpm/@effected+glob@0.6.0_effect@4.0.0-rc.115/node_modules/@effected/glob/internal/minimatch.js
35134
35223
  const starDotExtRE = /^\*+([^+@!?*[(]*)$/;
35135
35224
  const starDotExtTest = (ext) => (f) => !f.startsWith(".") && f.endsWith(ext);
35136
35225
  const starDotExtTestDot = (ext) => (f) => f.endsWith(ext);
@@ -35704,7 +35793,7 @@ var Minimatch = class {
35704
35793
  };
35705
35794
 
35706
35795
  //#endregion
35707
- //#region ../../node_modules/.pnpm/@effected+glob@0.5.0_effect@4.0.0-rc.112/node_modules/@effected/glob/GlobPattern.js
35796
+ //#region ../../node_modules/.pnpm/@effected+glob@0.6.0_effect@4.0.0-rc.115/node_modules/@effected/glob/GlobPattern.js
35708
35797
  /**
35709
35798
  * Typed failure raised when a glob pattern trips a compile-time guard:
35710
35799
  * over-length, brace-expansion budget exhaustion, or nesting past the depth
@@ -35984,7 +36073,7 @@ var GlobPattern = class GlobPattern extends Schema.Class("GlobPattern")(Schema.S
35984
36073
  };
35985
36074
 
35986
36075
  //#endregion
35987
- //#region ../../node_modules/.pnpm/@effected+walker@0.7.0_@effected+glob@0.5.0_effect@4.0.0-rc.112__effect@4.0.0-rc.112/node_modules/@effected/walker/Descend.js
36076
+ //#region ../../node_modules/.pnpm/@effected+walker@0.8.0_@effected+glob@0.6.0_effect@4.0.0-rc.115__effect@4.0.0-rc.115/node_modules/@effected/walker/Descend.js
35988
36077
  /**
35989
36078
  * Typed failure raised by `descend`: a directory mid-walk was unreadable
35990
36079
  * (under `onUnreadable: "fail"`), or the walk descended past `maxDepth`. Depth
@@ -36103,7 +36192,7 @@ function descend(pattern, options) {
36103
36192
  }
36104
36193
 
36105
36194
  //#endregion
36106
- //#region ../../node_modules/.pnpm/@effected+walker@0.7.0_@effected+glob@0.5.0_effect@4.0.0-rc.112__effect@4.0.0-rc.112/node_modules/@effected/walker/Expand.js
36195
+ //#region ../../node_modules/.pnpm/@effected+walker@0.8.0_@effected+glob@0.6.0_effect@4.0.0-rc.115__effect@4.0.0-rc.115/node_modules/@effected/walker/Expand.js
36107
36196
  /**
36108
36197
  * Typed failure raised by {@link compileAndExpand}: the single error the
36109
36198
  * compile+expand recipe fails with, so a caller catches one tag rather than
@@ -41131,7 +41220,7 @@ function globSync(globInput, options) {
41131
41220
  }
41132
41221
 
41133
41222
  //#endregion
41134
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/identity.js
41223
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/identity.js
41135
41224
  var require_identity = /* @__PURE__ */ __commonJSMin(((exports) => {
41136
41225
  const ALIAS = Symbol.for("yaml.alias");
41137
41226
  const DOC = Symbol.for("yaml.document");
@@ -41182,7 +41271,7 @@ var require_identity = /* @__PURE__ */ __commonJSMin(((exports) => {
41182
41271
  }));
41183
41272
 
41184
41273
  //#endregion
41185
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/visit.js
41274
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/visit.js
41186
41275
  var require_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
41187
41276
  var identity = require_identity();
41188
41277
  const BREAK = Symbol("break visit");
@@ -41374,7 +41463,7 @@ var require_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
41374
41463
  }));
41375
41464
 
41376
41465
  //#endregion
41377
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/directives.js
41466
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/directives.js
41378
41467
  var require_directives = /* @__PURE__ */ __commonJSMin(((exports) => {
41379
41468
  var identity = require_identity();
41380
41469
  var visit = require_visit();
@@ -41539,7 +41628,7 @@ var require_directives = /* @__PURE__ */ __commonJSMin(((exports) => {
41539
41628
  }));
41540
41629
 
41541
41630
  //#endregion
41542
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/anchors.js
41631
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/anchors.js
41543
41632
  var require_anchors = /* @__PURE__ */ __commonJSMin(((exports) => {
41544
41633
  var identity = require_identity();
41545
41634
  var visit = require_visit();
@@ -41607,7 +41696,7 @@ var require_anchors = /* @__PURE__ */ __commonJSMin(((exports) => {
41607
41696
  }));
41608
41697
 
41609
41698
  //#endregion
41610
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/applyReviver.js
41699
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/applyReviver.js
41611
41700
  var require_applyReviver = /* @__PURE__ */ __commonJSMin(((exports) => {
41612
41701
  /**
41613
41702
  * Applies the JSON.parse reviver algorithm as defined in the ECMA-262 spec,
@@ -41650,7 +41739,7 @@ var require_applyReviver = /* @__PURE__ */ __commonJSMin(((exports) => {
41650
41739
  }));
41651
41740
 
41652
41741
  //#endregion
41653
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/toJS.js
41742
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/toJS.js
41654
41743
  var require_toJS = /* @__PURE__ */ __commonJSMin(((exports) => {
41655
41744
  var identity = require_identity();
41656
41745
  /**
@@ -41688,7 +41777,7 @@ var require_toJS = /* @__PURE__ */ __commonJSMin(((exports) => {
41688
41777
  }));
41689
41778
 
41690
41779
  //#endregion
41691
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Node.js
41780
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Node.js
41692
41781
  var require_Node = /* @__PURE__ */ __commonJSMin(((exports) => {
41693
41782
  var applyReviver = require_applyReviver();
41694
41783
  var identity = require_identity();
@@ -41723,7 +41812,7 @@ var require_Node = /* @__PURE__ */ __commonJSMin(((exports) => {
41723
41812
  }));
41724
41813
 
41725
41814
  //#endregion
41726
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Alias.js
41815
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Alias.js
41727
41816
  var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
41728
41817
  var anchors = require_anchors();
41729
41818
  var visit = require_visit();
@@ -41758,29 +41847,31 @@ var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
41758
41847
  if (node === this) break;
41759
41848
  if (node.anchor === this.source) found = node;
41760
41849
  }
41850
+ if (found && ctx) {
41851
+ const { anchors, doc, maxAliasCount } = ctx;
41852
+ let data = anchors.get(found);
41853
+ if (!data) {
41854
+ toJS.toJS(found, null, ctx);
41855
+ data = anchors.get(found);
41856
+ }
41857
+ /* istanbul ignore if */
41858
+ if (data?.res === void 0) throw new ReferenceError("This should not happen: Alias anchor was not resolved?");
41859
+ if (maxAliasCount >= 0) {
41860
+ data.count += 1;
41861
+ if (data.aliasCount === 0) data.aliasCount = getAliasCount(doc, found, anchors);
41862
+ if (data.count * data.aliasCount > maxAliasCount) throw new ReferenceError("Excessive alias count indicates a resource exhaustion attack");
41863
+ }
41864
+ }
41761
41865
  return found;
41762
41866
  }
41763
41867
  toJSON(_arg, ctx) {
41764
41868
  if (!ctx) return { source: this.source };
41765
- const { anchors, doc, maxAliasCount } = ctx;
41766
- const source = this.resolve(doc, ctx);
41869
+ const source = this.resolve(ctx.doc, ctx);
41767
41870
  if (!source) {
41768
41871
  const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;
41769
41872
  throw new ReferenceError(msg);
41770
41873
  }
41771
- let data = anchors.get(source);
41772
- if (!data) {
41773
- toJS.toJS(source, null, ctx);
41774
- data = anchors.get(source);
41775
- }
41776
- /* istanbul ignore if */
41777
- if (data?.res === void 0) throw new ReferenceError("This should not happen: Alias anchor was not resolved?");
41778
- if (maxAliasCount >= 0) {
41779
- data.count += 1;
41780
- if (data.aliasCount === 0) data.aliasCount = getAliasCount(doc, source, anchors);
41781
- if (data.count * data.aliasCount > maxAliasCount) throw new ReferenceError("Excessive alias count indicates a resource exhaustion attack");
41782
- }
41783
- return data.res;
41874
+ return ctx.anchors.get(source).res;
41784
41875
  }
41785
41876
  toString(ctx, _onComment, _onChompKeep) {
41786
41877
  const src = `*${this.source}`;
@@ -41818,7 +41909,7 @@ var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
41818
41909
  }));
41819
41910
 
41820
41911
  //#endregion
41821
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Scalar.js
41912
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Scalar.js
41822
41913
  var require_Scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
41823
41914
  var identity = require_identity();
41824
41915
  var Node = require_Node();
@@ -41846,7 +41937,7 @@ var require_Scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
41846
41937
  }));
41847
41938
 
41848
41939
  //#endregion
41849
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/createNode.js
41940
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/createNode.js
41850
41941
  var require_createNode = /* @__PURE__ */ __commonJSMin(((exports) => {
41851
41942
  var Alias = require_Alias();
41852
41943
  var identity = require_identity();
@@ -41910,7 +42001,7 @@ var require_createNode = /* @__PURE__ */ __commonJSMin(((exports) => {
41910
42001
  }));
41911
42002
 
41912
42003
  //#endregion
41913
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Collection.js
42004
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Collection.js
41914
42005
  var require_Collection = /* @__PURE__ */ __commonJSMin(((exports) => {
41915
42006
  var createNode = require_createNode();
41916
42007
  var identity = require_identity();
@@ -42032,7 +42123,7 @@ var require_Collection = /* @__PURE__ */ __commonJSMin(((exports) => {
42032
42123
  }));
42033
42124
 
42034
42125
  //#endregion
42035
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyComment.js
42126
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyComment.js
42036
42127
  var require_stringifyComment = /* @__PURE__ */ __commonJSMin(((exports) => {
42037
42128
  /**
42038
42129
  * Stringifies a comment.
@@ -42053,7 +42144,7 @@ var require_stringifyComment = /* @__PURE__ */ __commonJSMin(((exports) => {
42053
42144
  }));
42054
42145
 
42055
42146
  //#endregion
42056
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/foldFlowLines.js
42147
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/foldFlowLines.js
42057
42148
  var require_foldFlowLines = /* @__PURE__ */ __commonJSMin(((exports) => {
42058
42149
  const FOLD_FLOW = "flow";
42059
42150
  const FOLD_BLOCK = "block";
@@ -42174,7 +42265,7 @@ var require_foldFlowLines = /* @__PURE__ */ __commonJSMin(((exports) => {
42174
42265
  }));
42175
42266
 
42176
42267
  //#endregion
42177
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyString.js
42268
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyString.js
42178
42269
  var require_stringifyString = /* @__PURE__ */ __commonJSMin(((exports) => {
42179
42270
  var Scalar = require_Scalar();
42180
42271
  var foldFlowLines = require_foldFlowLines();
@@ -42399,7 +42490,7 @@ var require_stringifyString = /* @__PURE__ */ __commonJSMin(((exports) => {
42399
42490
  }));
42400
42491
 
42401
42492
  //#endregion
42402
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringify.js
42493
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringify.js
42403
42494
  var require_stringify$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42404
42495
  var anchors = require_anchors();
42405
42496
  var identity = require_identity();
@@ -42508,7 +42599,7 @@ var require_stringify$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42508
42599
  }));
42509
42600
 
42510
42601
  //#endregion
42511
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyPair.js
42602
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyPair.js
42512
42603
  var require_stringifyPair = /* @__PURE__ */ __commonJSMin(((exports) => {
42513
42604
  var identity = require_identity();
42514
42605
  var Scalar = require_Scalar();
@@ -42606,7 +42697,7 @@ var require_stringifyPair = /* @__PURE__ */ __commonJSMin(((exports) => {
42606
42697
  }));
42607
42698
 
42608
42699
  //#endregion
42609
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/log.js
42700
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/log.js
42610
42701
  var require_log = /* @__PURE__ */ __commonJSMin(((exports) => {
42611
42702
  var node_process$2 = __require$1("process");
42612
42703
  function debug(logLevel, ...messages) {
@@ -42623,7 +42714,7 @@ var require_log = /* @__PURE__ */ __commonJSMin(((exports) => {
42623
42714
  }));
42624
42715
 
42625
42716
  //#endregion
42626
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/merge.js
42717
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/merge.js
42627
42718
  var require_merge = /* @__PURE__ */ __commonJSMin(((exports) => {
42628
42719
  var identity = require_identity();
42629
42720
  var Scalar = require_Scalar();
@@ -42667,7 +42758,7 @@ var require_merge = /* @__PURE__ */ __commonJSMin(((exports) => {
42667
42758
  }));
42668
42759
 
42669
42760
  //#endregion
42670
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/addPairToJSMap.js
42761
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/addPairToJSMap.js
42671
42762
  var require_addPairToJSMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42672
42763
  var log = require_log();
42673
42764
  var merge = require_merge();
@@ -42719,7 +42810,7 @@ var require_addPairToJSMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42719
42810
  }));
42720
42811
 
42721
42812
  //#endregion
42722
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Pair.js
42813
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Pair.js
42723
42814
  var require_Pair = /* @__PURE__ */ __commonJSMin(((exports) => {
42724
42815
  var createNode = require_createNode();
42725
42816
  var stringifyPair = require_stringifyPair();
@@ -42755,7 +42846,7 @@ var require_Pair = /* @__PURE__ */ __commonJSMin(((exports) => {
42755
42846
  }));
42756
42847
 
42757
42848
  //#endregion
42758
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyCollection.js
42849
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyCollection.js
42759
42850
  var require_stringifyCollection = /* @__PURE__ */ __commonJSMin(((exports) => {
42760
42851
  var identity = require_identity();
42761
42852
  var stringify = require_stringify$1();
@@ -42874,7 +42965,7 @@ var require_stringifyCollection = /* @__PURE__ */ __commonJSMin(((exports) => {
42874
42965
  }));
42875
42966
 
42876
42967
  //#endregion
42877
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLMap.js
42968
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/YAMLMap.js
42878
42969
  var require_YAMLMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42879
42970
  var stringifyCollection = require_stringifyCollection();
42880
42971
  var addPairToJSMap = require_addPairToJSMap();
@@ -42984,7 +43075,7 @@ var require_YAMLMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42984
43075
  }));
42985
43076
 
42986
43077
  //#endregion
42987
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/map.js
43078
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/map.js
42988
43079
  var require_map = /* @__PURE__ */ __commonJSMin(((exports) => {
42989
43080
  var identity = require_identity();
42990
43081
  var YAMLMap = require_YAMLMap();
@@ -43003,7 +43094,7 @@ var require_map = /* @__PURE__ */ __commonJSMin(((exports) => {
43003
43094
  }));
43004
43095
 
43005
43096
  //#endregion
43006
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLSeq.js
43097
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/YAMLSeq.js
43007
43098
  var require_YAMLSeq = /* @__PURE__ */ __commonJSMin(((exports) => {
43008
43099
  var createNode = require_createNode();
43009
43100
  var stringifyCollection = require_stringifyCollection();
@@ -43110,7 +43201,7 @@ var require_YAMLSeq = /* @__PURE__ */ __commonJSMin(((exports) => {
43110
43201
  }));
43111
43202
 
43112
43203
  //#endregion
43113
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/seq.js
43204
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/seq.js
43114
43205
  var require_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
43115
43206
  var identity = require_identity();
43116
43207
  var YAMLSeq = require_YAMLSeq();
@@ -43129,7 +43220,7 @@ var require_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
43129
43220
  }));
43130
43221
 
43131
43222
  //#endregion
43132
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/string.js
43223
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/string.js
43133
43224
  var require_string = /* @__PURE__ */ __commonJSMin(((exports) => {
43134
43225
  var stringifyString = require_stringifyString();
43135
43226
  const string = {
@@ -43146,7 +43237,7 @@ var require_string = /* @__PURE__ */ __commonJSMin(((exports) => {
43146
43237
  }));
43147
43238
 
43148
43239
  //#endregion
43149
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/null.js
43240
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/null.js
43150
43241
  var require_null = /* @__PURE__ */ __commonJSMin(((exports) => {
43151
43242
  var Scalar = require_Scalar();
43152
43243
  const nullTag = {
@@ -43162,7 +43253,7 @@ var require_null = /* @__PURE__ */ __commonJSMin(((exports) => {
43162
43253
  }));
43163
43254
 
43164
43255
  //#endregion
43165
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/bool.js
43256
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/bool.js
43166
43257
  var require_bool$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
43167
43258
  var Scalar = require_Scalar();
43168
43259
  const boolTag = {
@@ -43182,7 +43273,7 @@ var require_bool$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
43182
43273
  }));
43183
43274
 
43184
43275
  //#endregion
43185
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyNumber.js
43276
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyNumber.js
43186
43277
  var require_stringifyNumber = /* @__PURE__ */ __commonJSMin(((exports) => {
43187
43278
  function stringifyNumber({ format, minFractionDigits, tag, value }) {
43188
43279
  if (typeof value === "bigint") return String(value);
@@ -43204,7 +43295,7 @@ var require_stringifyNumber = /* @__PURE__ */ __commonJSMin(((exports) => {
43204
43295
  }));
43205
43296
 
43206
43297
  //#endregion
43207
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/float.js
43298
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/float.js
43208
43299
  var require_float$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
43209
43300
  var Scalar = require_Scalar();
43210
43301
  var stringifyNumber = require_stringifyNumber();
@@ -43247,7 +43338,7 @@ var require_float$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
43247
43338
  }));
43248
43339
 
43249
43340
  //#endregion
43250
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/int.js
43341
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/int.js
43251
43342
  var require_int$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
43252
43343
  var stringifyNumber = require_stringifyNumber();
43253
43344
  const intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -43289,7 +43380,7 @@ var require_int$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
43289
43380
  }));
43290
43381
 
43291
43382
  //#endregion
43292
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/schema.js
43383
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/schema.js
43293
43384
  var require_schema$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
43294
43385
  var map = require_map();
43295
43386
  var _null = require_null();
@@ -43315,7 +43406,7 @@ var require_schema$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
43315
43406
  }));
43316
43407
 
43317
43408
  //#endregion
43318
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/json/schema.js
43409
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/json/schema.js
43319
43410
  var require_schema$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
43320
43411
  var Scalar = require_Scalar();
43321
43412
  var map = require_map();
@@ -43379,7 +43470,7 @@ var require_schema$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
43379
43470
  }));
43380
43471
 
43381
43472
  //#endregion
43382
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/binary.js
43473
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/binary.js
43383
43474
  var require_binary = /* @__PURE__ */ __commonJSMin(((exports) => {
43384
43475
  var node_buffer = __require$1("buffer");
43385
43476
  var Scalar = require_Scalar();
@@ -43437,7 +43528,7 @@ var require_binary = /* @__PURE__ */ __commonJSMin(((exports) => {
43437
43528
  }));
43438
43529
 
43439
43530
  //#endregion
43440
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
43531
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
43441
43532
  var require_pairs = /* @__PURE__ */ __commonJSMin(((exports) => {
43442
43533
  var identity = require_identity();
43443
43534
  var Pair = require_Pair();
@@ -43499,7 +43590,7 @@ var require_pairs = /* @__PURE__ */ __commonJSMin(((exports) => {
43499
43590
  }));
43500
43591
 
43501
43592
  //#endregion
43502
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/omap.js
43593
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/omap.js
43503
43594
  var require_omap = /* @__PURE__ */ __commonJSMin(((exports) => {
43504
43595
  var identity = require_identity();
43505
43596
  var toJS = require_toJS();
@@ -43565,7 +43656,7 @@ var require_omap = /* @__PURE__ */ __commonJSMin(((exports) => {
43565
43656
  }));
43566
43657
 
43567
43658
  //#endregion
43568
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/bool.js
43659
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/bool.js
43569
43660
  var require_bool = /* @__PURE__ */ __commonJSMin(((exports) => {
43570
43661
  var Scalar = require_Scalar();
43571
43662
  function boolStringify({ value, source }, ctx) {
@@ -43593,7 +43684,7 @@ var require_bool = /* @__PURE__ */ __commonJSMin(((exports) => {
43593
43684
  }));
43594
43685
 
43595
43686
  //#endregion
43596
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/float.js
43687
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/float.js
43597
43688
  var require_float = /* @__PURE__ */ __commonJSMin(((exports) => {
43598
43689
  var Scalar = require_Scalar();
43599
43690
  var stringifyNumber = require_stringifyNumber();
@@ -43639,7 +43730,7 @@ var require_float = /* @__PURE__ */ __commonJSMin(((exports) => {
43639
43730
  }));
43640
43731
 
43641
43732
  //#endregion
43642
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/int.js
43733
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/int.js
43643
43734
  var require_int = /* @__PURE__ */ __commonJSMin(((exports) => {
43644
43735
  var stringifyNumber = require_stringifyNumber();
43645
43736
  const intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -43713,7 +43804,7 @@ var require_int = /* @__PURE__ */ __commonJSMin(((exports) => {
43713
43804
  }));
43714
43805
 
43715
43806
  //#endregion
43716
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/set.js
43807
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/set.js
43717
43808
  var require_set = /* @__PURE__ */ __commonJSMin(((exports) => {
43718
43809
  var identity = require_identity();
43719
43810
  var Pair = require_Pair();
@@ -43783,7 +43874,7 @@ var require_set = /* @__PURE__ */ __commonJSMin(((exports) => {
43783
43874
  }));
43784
43875
 
43785
43876
  //#endregion
43786
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
43877
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
43787
43878
  var require_timestamp = /* @__PURE__ */ __commonJSMin(((exports) => {
43788
43879
  var stringifyNumber = require_stringifyNumber();
43789
43880
  /** Internal types handle bigint as number, because TS can't figure it out. */
@@ -43867,7 +43958,7 @@ var require_timestamp = /* @__PURE__ */ __commonJSMin(((exports) => {
43867
43958
  }));
43868
43959
 
43869
43960
  //#endregion
43870
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/schema.js
43961
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/schema.js
43871
43962
  var require_schema = /* @__PURE__ */ __commonJSMin(((exports) => {
43872
43963
  var map = require_map();
43873
43964
  var _null = require_null();
@@ -43909,7 +44000,7 @@ var require_schema = /* @__PURE__ */ __commonJSMin(((exports) => {
43909
44000
  }));
43910
44001
 
43911
44002
  //#endregion
43912
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/tags.js
44003
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/tags.js
43913
44004
  var require_tags = /* @__PURE__ */ __commonJSMin(((exports) => {
43914
44005
  var map = require_map();
43915
44006
  var _null = require_null();
@@ -43996,7 +44087,7 @@ var require_tags = /* @__PURE__ */ __commonJSMin(((exports) => {
43996
44087
  }));
43997
44088
 
43998
44089
  //#endregion
43999
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/Schema.js
44090
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/Schema.js
44000
44091
  var require_Schema = /* @__PURE__ */ __commonJSMin(((exports) => {
44001
44092
  var identity = require_identity();
44002
44093
  var map = require_map();
@@ -44026,7 +44117,7 @@ var require_Schema = /* @__PURE__ */ __commonJSMin(((exports) => {
44026
44117
  }));
44027
44118
 
44028
44119
  //#endregion
44029
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyDocument.js
44120
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyDocument.js
44030
44121
  var require_stringifyDocument = /* @__PURE__ */ __commonJSMin(((exports) => {
44031
44122
  var identity = require_identity();
44032
44123
  var stringify = require_stringify$1();
@@ -44089,7 +44180,7 @@ var require_stringifyDocument = /* @__PURE__ */ __commonJSMin(((exports) => {
44089
44180
  }));
44090
44181
 
44091
44182
  //#endregion
44092
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/Document.js
44183
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/Document.js
44093
44184
  var require_Document = /* @__PURE__ */ __commonJSMin(((exports) => {
44094
44185
  var Alias = require_Alias();
44095
44186
  var Collection = require_Collection();
@@ -44371,7 +44462,7 @@ var require_Document = /* @__PURE__ */ __commonJSMin(((exports) => {
44371
44462
  }));
44372
44463
 
44373
44464
  //#endregion
44374
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/errors.js
44465
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/errors.js
44375
44466
  var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => {
44376
44467
  var YAMLError = class extends Error {
44377
44468
  constructor(name, pos, code, message) {
@@ -44425,7 +44516,7 @@ var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => {
44425
44516
  }));
44426
44517
 
44427
44518
  //#endregion
44428
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-props.js
44519
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-props.js
44429
44520
  var require_resolve_props = /* @__PURE__ */ __commonJSMin(((exports) => {
44430
44521
  function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
44431
44522
  let spaceBefore = false;
@@ -44533,7 +44624,7 @@ var require_resolve_props = /* @__PURE__ */ __commonJSMin(((exports) => {
44533
44624
  }));
44534
44625
 
44535
44626
  //#endregion
44536
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-contains-newline.js
44627
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-contains-newline.js
44537
44628
  var require_util_contains_newline = /* @__PURE__ */ __commonJSMin(((exports) => {
44538
44629
  function containsNewline(key) {
44539
44630
  if (!key) return null;
@@ -44563,7 +44654,7 @@ var require_util_contains_newline = /* @__PURE__ */ __commonJSMin(((exports) =>
44563
44654
  }));
44564
44655
 
44565
44656
  //#endregion
44566
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-flow-indent-check.js
44657
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-flow-indent-check.js
44567
44658
  var require_util_flow_indent_check = /* @__PURE__ */ __commonJSMin(((exports) => {
44568
44659
  var utilContainsNewline = require_util_contains_newline();
44569
44660
  function flowIndentCheck(indent, fc, onError) {
@@ -44576,7 +44667,7 @@ var require_util_flow_indent_check = /* @__PURE__ */ __commonJSMin(((exports) =>
44576
44667
  }));
44577
44668
 
44578
44669
  //#endregion
44579
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-map-includes.js
44670
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-map-includes.js
44580
44671
  var require_util_map_includes = /* @__PURE__ */ __commonJSMin(((exports) => {
44581
44672
  var identity = require_identity();
44582
44673
  function mapIncludes(ctx, items, search) {
@@ -44589,7 +44680,7 @@ var require_util_map_includes = /* @__PURE__ */ __commonJSMin(((exports) => {
44589
44680
  }));
44590
44681
 
44591
44682
  //#endregion
44592
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-map.js
44683
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-map.js
44593
44684
  var require_resolve_block_map = /* @__PURE__ */ __commonJSMin(((exports) => {
44594
44685
  var Pair = require_Pair();
44595
44686
  var YAMLMap = require_YAMLMap();
@@ -44678,7 +44769,7 @@ var require_resolve_block_map = /* @__PURE__ */ __commonJSMin(((exports) => {
44678
44769
  }));
44679
44770
 
44680
44771
  //#endregion
44681
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-seq.js
44772
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-seq.js
44682
44773
  var require_resolve_block_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
44683
44774
  var YAMLSeq = require_YAMLSeq();
44684
44775
  var resolveProps = require_resolve_props();
@@ -44724,7 +44815,7 @@ var require_resolve_block_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
44724
44815
  }));
44725
44816
 
44726
44817
  //#endregion
44727
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-end.js
44818
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-end.js
44728
44819
  var require_resolve_end = /* @__PURE__ */ __commonJSMin(((exports) => {
44729
44820
  function resolveEnd(end, offset, reqSpace, onError) {
44730
44821
  let comment = "";
@@ -44763,7 +44854,7 @@ var require_resolve_end = /* @__PURE__ */ __commonJSMin(((exports) => {
44763
44854
  }));
44764
44855
 
44765
44856
  //#endregion
44766
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-collection.js
44857
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-flow-collection.js
44767
44858
  var require_resolve_flow_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
44768
44859
  var identity = require_identity();
44769
44860
  var Pair = require_Pair();
@@ -44927,7 +45018,7 @@ var require_resolve_flow_collection = /* @__PURE__ */ __commonJSMin(((exports) =
44927
45018
  }));
44928
45019
 
44929
45020
  //#endregion
44930
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-collection.js
45021
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-collection.js
44931
45022
  var require_compose_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
44932
45023
  var identity = require_identity();
44933
45024
  var Scalar = require_Scalar();
@@ -44980,7 +45071,7 @@ var require_compose_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
44980
45071
  }));
44981
45072
 
44982
45073
  //#endregion
44983
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-scalar.js
45074
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-scalar.js
44984
45075
  var require_resolve_block_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44985
45076
  var Scalar = require_Scalar();
44986
45077
  function resolveBlockScalar(ctx, scalar, onError) {
@@ -45158,7 +45249,7 @@ var require_resolve_block_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
45158
45249
  }));
45159
45250
 
45160
45251
  //#endregion
45161
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-scalar.js
45252
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-flow-scalar.js
45162
45253
  var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
45163
45254
  var Scalar = require_Scalar();
45164
45255
  var resolveEnd = require_resolve_end();
@@ -45228,40 +45319,41 @@ var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
45228
45319
  case "`": badChar = `reserved character ${source[0]}`;
45229
45320
  }
45230
45321
  if (badChar) onError(0, "BAD_SCALAR_START", `Plain value cannot start with ${badChar}`);
45231
- return foldLines(source);
45322
+ return unfoldLines(source);
45232
45323
  }
45233
45324
  function singleQuotedValue(source, onError) {
45234
45325
  if (source[source.length - 1] !== "'" || source.length === 1) onError(source.length, "MISSING_CHAR", "Missing closing 'quote");
45235
- return foldLines(source.slice(1, -1)).replace(/''/g, "'");
45326
+ return unfoldLines(source.slice(1, -1)).replace(/''/g, "'");
45236
45327
  }
45237
- function foldLines(source) {
45328
+ function unfoldLines(source) {
45329
+ const line = /(.*?)\r?\n/sy;
45330
+ let match = line.exec(source);
45331
+ if (!match) return source;
45238
45332
  /**
45239
- * The negative lookbehind here and in the `re` RegExp is to
45333
+ * The negative lookbehinds in these RegExps are to
45240
45334
  * prevent causing a polynomial search time in certain cases.
45241
45335
  *
45242
- * The try-catch is for Safari, which doesn't support this yet:
45336
+ * The try-catch is for Safari < 16.4 and other old browsers:
45243
45337
  * https://caniuse.com/js-regexp-lookbehind
45244
45338
  */
45245
- let first, line;
45339
+ let trimEnd, trimBoth;
45246
45340
  try {
45247
- first = new RegExp("(.*?)(?<![ ])[ ]*\r?\n", "sy");
45248
- line = new RegExp("[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?\n", "sy");
45341
+ trimEnd = new RegExp("(?<![ ])[ ]+$");
45342
+ trimBoth = new RegExp("^[ ]+|(?<![ ])[ ]+$", "g");
45249
45343
  } catch {
45250
- first = /(.*?)[ \t]*\r?\n/sy;
45251
- line = /[ \t]*(.*?)[ \t]*\r?\n/sy;
45344
+ trimEnd = /[ \t]+$/;
45345
+ trimBoth = /^[ \t]+|[ \t]+$/g;
45252
45346
  }
45253
- let match = first.exec(source);
45254
- if (!match) return source;
45255
- let res = match[1];
45347
+ let res = match[1].replace(trimEnd, "");
45256
45348
  let sep = " ";
45257
- let pos = first.lastIndex;
45258
- line.lastIndex = pos;
45349
+ let pos = line.lastIndex;
45259
45350
  while (match = line.exec(source)) {
45260
- if (match[1] === "") {
45351
+ const lm = match[1].replace(trimBoth, "");
45352
+ if (lm === "") {
45261
45353
  if (sep === "\n") res += sep;
45262
45354
  else sep = "\n";
45263
45355
  } else {
45264
- res += sep + match[1];
45356
+ res += sep + lm;
45265
45357
  sep = " ";
45266
45358
  }
45267
45359
  pos = line.lastIndex;
@@ -45363,7 +45455,7 @@ var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
45363
45455
  }));
45364
45456
 
45365
45457
  //#endregion
45366
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-scalar.js
45458
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-scalar.js
45367
45459
  var require_compose_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
45368
45460
  var identity = require_identity();
45369
45461
  var Scalar = require_Scalar();
@@ -45425,7 +45517,7 @@ var require_compose_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
45425
45517
  }));
45426
45518
 
45427
45519
  //#endregion
45428
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-empty-scalar-position.js
45520
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-empty-scalar-position.js
45429
45521
  var require_util_empty_scalar_position = /* @__PURE__ */ __commonJSMin(((exports) => {
45430
45522
  function emptyScalarPosition(offset, before, pos) {
45431
45523
  if (before) {
@@ -45453,7 +45545,7 @@ var require_util_empty_scalar_position = /* @__PURE__ */ __commonJSMin(((exports
45453
45545
  }));
45454
45546
 
45455
45547
  //#endregion
45456
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-node.js
45548
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-node.js
45457
45549
  var require_compose_node = /* @__PURE__ */ __commonJSMin(((exports) => {
45458
45550
  var Alias = require_Alias();
45459
45551
  var identity = require_identity();
@@ -45545,7 +45637,7 @@ var require_compose_node = /* @__PURE__ */ __commonJSMin(((exports) => {
45545
45637
  }));
45546
45638
 
45547
45639
  //#endregion
45548
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-doc.js
45640
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-doc.js
45549
45641
  var require_compose_doc = /* @__PURE__ */ __commonJSMin(((exports) => {
45550
45642
  var Document = require_Document();
45551
45643
  var composeNode = require_compose_node();
@@ -45588,7 +45680,7 @@ var require_compose_doc = /* @__PURE__ */ __commonJSMin(((exports) => {
45588
45680
  }));
45589
45681
 
45590
45682
  //#endregion
45591
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/composer.js
45683
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/composer.js
45592
45684
  var require_composer = /* @__PURE__ */ __commonJSMin(((exports) => {
45593
45685
  var node_process$1 = __require$1("process");
45594
45686
  var directives = require_directives();
@@ -45787,7 +45879,7 @@ var require_composer = /* @__PURE__ */ __commonJSMin(((exports) => {
45787
45879
  }));
45788
45880
 
45789
45881
  //#endregion
45790
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-scalar.js
45882
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-scalar.js
45791
45883
  var require_cst_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
45792
45884
  var resolveBlockScalar = require_resolve_block_scalar();
45793
45885
  var resolveFlowScalar = require_resolve_flow_scalar();
@@ -46055,7 +46147,7 @@ var require_cst_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
46055
46147
  }));
46056
46148
 
46057
46149
  //#endregion
46058
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-stringify.js
46150
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-stringify.js
46059
46151
  var require_cst_stringify = /* @__PURE__ */ __commonJSMin(((exports) => {
46060
46152
  /**
46061
46153
  * Stringify a CST document, token, or collection item
@@ -46107,7 +46199,7 @@ var require_cst_stringify = /* @__PURE__ */ __commonJSMin(((exports) => {
46107
46199
  }));
46108
46200
 
46109
46201
  //#endregion
46110
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-visit.js
46202
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-visit.js
46111
46203
  var require_cst_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
46112
46204
  const BREAK = Symbol("break visit");
46113
46205
  const SKIP = Symbol("skip children");
@@ -46199,7 +46291,7 @@ var require_cst_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
46199
46291
  }));
46200
46292
 
46201
46293
  //#endregion
46202
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst.js
46294
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst.js
46203
46295
  var require_cst = /* @__PURE__ */ __commonJSMin(((exports) => {
46204
46296
  var cstScalar = require_cst_scalar();
46205
46297
  var cstStringify = require_cst_stringify();
@@ -46279,7 +46371,7 @@ var require_cst = /* @__PURE__ */ __commonJSMin(((exports) => {
46279
46371
  }));
46280
46372
 
46281
46373
  //#endregion
46282
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/lexer.js
46374
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/lexer.js
46283
46375
  var require_lexer = /* @__PURE__ */ __commonJSMin(((exports) => {
46284
46376
  var cst = require_cst();
46285
46377
  function isEmpty(ch) {
@@ -46813,7 +46905,7 @@ var require_lexer = /* @__PURE__ */ __commonJSMin(((exports) => {
46813
46905
  }));
46814
46906
 
46815
46907
  //#endregion
46816
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/line-counter.js
46908
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/line-counter.js
46817
46909
  var require_line_counter = /* @__PURE__ */ __commonJSMin(((exports) => {
46818
46910
  /**
46819
46911
  * Tracks newlines during parsing in order to provide an efficient API for
@@ -46861,7 +46953,7 @@ var require_line_counter = /* @__PURE__ */ __commonJSMin(((exports) => {
46861
46953
  }));
46862
46954
 
46863
46955
  //#endregion
46864
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/parser.js
46956
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/parser.js
46865
46957
  var require_parser = /* @__PURE__ */ __commonJSMin(((exports) => {
46866
46958
  var node_process = __require$1("process");
46867
46959
  var cst = require_cst();
@@ -47728,7 +47820,7 @@ var require_parser = /* @__PURE__ */ __commonJSMin(((exports) => {
47728
47820
  }));
47729
47821
 
47730
47822
  //#endregion
47731
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/public-api.js
47823
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/public-api.js
47732
47824
  var require_public_api = /* @__PURE__ */ __commonJSMin(((exports) => {
47733
47825
  var composer = require_composer();
47734
47826
  var Document = require_Document();
@@ -47818,7 +47910,7 @@ var require_public_api = /* @__PURE__ */ __commonJSMin(((exports) => {
47818
47910
  }));
47819
47911
 
47820
47912
  //#endregion
47821
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/index.js
47913
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/index.js
47822
47914
  var require_dist = /* @__PURE__ */ __commonJSMin(((exports) => {
47823
47915
  var composer = require_composer();
47824
47916
  var Document = require_Document();
@@ -56277,6 +56369,7 @@ var changesets_exports = /* @__PURE__ */ __exportAll({
56277
56369
  ChangelogTransformer: () => ChangelogTransformer,
56278
56370
  ChangesetIOError: () => ChangesetIOError,
56279
56371
  ChangesetLinter: () => ChangesetLinter,
56372
+ ChangesetLogMode: () => ChangesetLogMode,
56280
56373
  ChangesetOptionsSchema: () => ChangesetOptionsSchema,
56281
56374
  ChangesetPreviewSchema: () => ChangesetPreviewSchema,
56282
56375
  ChangesetSchema: () => ChangesetSchema,
@@ -56363,6 +56456,7 @@ var changesets_exports = /* @__PURE__ */ __exportAll({
56363
56456
  isPureDependencyChangeset: () => isPureDependencyChangeset,
56364
56457
  listPublishablePackageNames: () => listPublishablePackageNames,
56365
56458
  makeBranchAnalyzerTest: () => makeBranchAnalyzerTest,
56459
+ makeChangelogFunctions: () => makeChangelogFunctions,
56366
56460
  makeConfigInspectorTest: () => makeConfigInspectorTest,
56367
56461
  makeDepsRegenDefault: () => makeDepsRegenDefault,
56368
56462
  makeGitHubTest: () => makeGitHubTest,
@@ -56377,13 +56471,23 @@ var changesets_exports = /* @__PURE__ */ __exportAll({
56377
56471
  /**
56378
56472
  * Changesets API changelog formatter shim for \@savvy-web/silk.
56379
56473
  *
56380
- * Drop-in replacement for \@savvy-web/changesets/changelog.
56381
- * The default export is the ChangelogFunctions object consumed by the
56382
- * Changesets CLI via the changelog field in .changeset/config.json.
56474
+ * Drop-in replacement for \@savvy-web/changesets/changelog (superseded by
56475
+ * \@savvy-web/changelog, which this mirrors exactly). The default export is
56476
+ * the ChangelogFunctions object consumed by the Changesets CLI via the
56477
+ * changelog field in .changeset/config.json.
56478
+ *
56479
+ * This shim is the host adapter for the changesets CLI, a foreign process
56480
+ * that supplies no context of its own, so the warning mode is read from
56481
+ * `process.env` HERE and handed to the engine, which never reads it.
56383
56482
  *
56384
56483
  * @packageDocumentation
56385
56484
  */
56386
- const changelogFunctions = changesets_exports.changelogFunctions;
56485
+ const logMode = () => {
56486
+ if (process.env.VITEST) return "silent";
56487
+ if (process.env.GITHUB_ACTIONS === "true") return "github";
56488
+ return "stderr";
56489
+ };
56490
+ const changelogFunctions = changesets_exports.makeChangelogFunctions({ logMode: logMode() });
56387
56491
 
56388
56492
  //#endregion
56389
56493
  export { changelogFunctions as default };