@savvy-web/silk 3.15.3 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -34,11 +34,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
34
34
  enumerable: true
35
35
  }) : target, mod));
36
36
  //#endregion
37
- let _effected_templates = require("@effected/templates");
38
37
  let effect = require("effect");
38
+ let _effected_templates = require("@effected/templates");
39
+ let _effected_workspaces = require("@effected/workspaces");
39
40
  let node_path = require("node:path");
40
41
  node_path = __toESM(node_path, 1);
41
- let _effected_workspaces = require("@effected/workspaces");
42
42
  let node_fs_promises = require("node:fs/promises");
43
43
  node_fs_promises = __toESM(node_fs_promises, 1);
44
44
  let node_util = require("node:util");
@@ -79,7 +79,7 @@ let semver_functions_gt_js = require("semver/functions/gt.js");
79
79
  semver_functions_gt_js = __toESM(semver_functions_gt_js, 1);
80
80
  let semver_functions_inc_js = require("semver/functions/inc.js");
81
81
  semver_functions_inc_js = __toESM(semver_functions_inc_js, 1);
82
- //#region ../silk-effects/dist/dev/pkg/errors/ChangesetConfigError.js
82
+ //#region ../silk-core/dist/dev/pkg/errors/ChangesetConfigError.js
83
83
  /**
84
84
  * Raised when the `.changeset/config.json` file cannot be read or decoded.
85
85
  *
@@ -96,7 +96,441 @@ var ChangesetConfigError = class extends effect.Data.TaggedError("ChangesetConfi
96
96
  }
97
97
  };
98
98
  //#endregion
99
- //#region ../silk-effects/dist/dev/pkg/schemas/VersioningSchemas.js
99
+ //#region ../silk-core/dist/dev/pkg/errors/PublishTargetBindingError.js
100
+ /**
101
+ * Raised when publishability detection selects a directory that the package's
102
+ * `dist/prod/targets.json` binding does not describe.
103
+ *
104
+ * @remarks
105
+ * The bundler's prod build writes `targets.json` naming every byte-group
106
+ * directory it produced. Once that binding exists it is authoritative: the only
107
+ * directories whose bytes may be published are the ones it lists. A detector
108
+ * that returns anything else — most often `publishConfig.directory` pointing at
109
+ * a **dev** build, because silk mode was misdetected — is about to pack an
110
+ * unresolved workspace manifest and ship it to a registry.
111
+ *
112
+ * That is the `yaml-effect@0.7.1` failure: detection picked `dist/dev/pkg`, the
113
+ * dev manifest still carried `catalog:` specifiers, and the published package
114
+ * was uninstallable (`EUNSUPPORTEDPROTOCOL`).
115
+ *
116
+ * @since 3.1.0
117
+ * @public
118
+ */
119
+ var PublishTargetBindingError = class extends effect.Data.TaggedError("PublishTargetBindingError") {
120
+ get message() {
121
+ return `Package ${this.pkg} resolved publish directory "${this.directory}", which is not one of the directories bound by dist/prod/targets.json (${this.boundDirectories.join(", ")}). This means publishability detection did not select the prod build output — refusing to publish before packing an unresolved manifest.`;
122
+ }
123
+ };
124
+ //#endregion
125
+ //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/IssueReferences.js
126
+ /**
127
+ * GitHub's closing-keyword issue-reference grammar, as pure functions.
128
+ *
129
+ * @remarks
130
+ * GitHub links an issue to a pull request when the PR's description carries
131
+ * `<keyword> #<number>` for one of nine documented keywords. Consumers speak
132
+ * that grammar in two distinct dialects, and this module models exactly those
133
+ * two — no service, no layer, nothing but strings in and values out:
134
+ *
135
+ * - **Inline-in-prose** ({@link harvestIssueReferences}): a reference may appear anywhere in
136
+ * running text — `"fixes #12 and closes #13"` — with mandatory whitespace
137
+ * and **no colon**, because that is the spelling GitHub itself scans PR
138
+ * bodies for. This is the dialect a release pipeline harvests from commit
139
+ * subjects and PR descriptions.
140
+ * - **Bare-line** ({@link parseBareLineReference}): the whole line, after trimming, *is*
141
+ * the reference — `"Closes: #12"` — with an **optional colon**, because a
142
+ * generated references region writes one reference per line and a colon
143
+ * reads better there. GitHub does not require the colon; the region format
144
+ * allows it, so the parser must too. The dialects differ because their
145
+ * producers do: prose is written by humans for GitHub's scanner, the region
146
+ * is written by tooling for humans.
147
+ *
148
+ * Deliberately out of scope this round: cross-repo references
149
+ * (`owner/repo#N`) and full-URL references
150
+ * (`https://github.com/owner/repo/issues/N`). Both are real GitHub spellings;
151
+ * neither dialect's consumers emit them yet, and guessing at their shape here
152
+ * would freeze an API nobody has driven.
153
+ */
154
+ /**
155
+ * The nine closing keywords GitHub documents, lowercased.
156
+ *
157
+ * @public
158
+ */
159
+ const CLOSING_KEYWORDS = [
160
+ "close",
161
+ "closes",
162
+ "closed",
163
+ "fix",
164
+ "fixes",
165
+ "fixed",
166
+ "resolve",
167
+ "resolves",
168
+ "resolved"
169
+ ];
170
+ /**
171
+ * Both patterns derive from {@link CLOSING_KEYWORDS} so the constant and the
172
+ * grammar cannot drift. Alternation order is safe: the regex engine backtracks
173
+ * through alternatives, so `close` matching inside `closes` fails at the
174
+ * mandatory `#`-introducer and retries the longer keyword.
175
+ */
176
+ const KEYWORDS = CLOSING_KEYWORDS.join("|");
177
+ new RegExp(`\\b(${KEYWORDS})\\s+#(\\d+)`, "gi");
178
+ new RegExp(`^(${KEYWORDS}):?[ \\t]+#(\\d+)$`, "i");
179
+ //#endregion
180
+ //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/ClosingList.js
181
+ /**
182
+ * The closing-list dialect: one whole line naming several issues at once.
183
+ *
184
+ * @remarks
185
+ * The third dialect, alongside the two in `IssueReferences`: after trimming,
186
+ * the **entire** line must be `<keyword>[:] <list>` — keyword
187
+ * case-insensitive (lowercased to canonical form in the result), colon
188
+ * optional, and the list one or more `#<digits>` items separated by `,`,
189
+ * `and`, or the Oxford `, and`. Whitespace inside the line is `[ \t]` only,
190
+ * so an embedded newline cannot smuggle two lines past a parser whose
191
+ * contract is one — the same posture as the bare-line pattern. Any trailing
192
+ * content after the list rejects the line; duplicates are preserved in order,
193
+ * because whether `#1, #1` means one issue or two is the caller's business.
194
+ *
195
+ * Two keyword sets play here. {@link parseClosingList} accepts only the nine
196
+ * closing keywords and yields a {@link ClosingList}; {@link parseReferenceList}
197
+ * additionally accepts the non-closing {@link REFERENCE_KEYWORDS} (`ref`,
198
+ * `refs`, `references`) and reports which set matched via
199
+ * {@link ReferenceList}'s `closing` flag.
200
+ *
201
+ * An item whose digits exceed `Number.MAX_SAFE_INTEGER` rejects the **whole
202
+ * line**, where `harvestIssueReferences` merely skips the one match. The
203
+ * asymmetry is deliberate: a harvest drops one reference out of running
204
+ * prose, but a list line is a single claim about a set of issues, and
205
+ * returning the parseable subset would misrepresent the line as claiming
206
+ * less than it does.
207
+ *
208
+ * Complexity posture: parsing is a single left-to-right character scan —
209
+ * this module contains **no regular expressions at all** — so worst-case
210
+ * time is linear in the line length by construction. There is no
211
+ * backtracking engine to feed, no polynomial blow-up for a scanner to flag,
212
+ * and therefore no input truncation.
213
+ *
214
+ * Beyond the whole-line parsers, {@link harvestReferenceLists} generalizes
215
+ * the same list grammar to the inline-in-prose posture — several lists on
216
+ * one line of running text — and {@link parseClosingLists} /
217
+ * {@link parseReferenceLists} apply the whole-line parsers per line of a
218
+ * multi-line text. All of them ride the same character scan; the no-regex
219
+ * promise above covers every export here.
220
+ */
221
+ /**
222
+ * The non-closing reference keywords the list dialect accepts, lowercased.
223
+ *
224
+ * @remarks
225
+ * GitHub does not act on these — they associate without closing — but a
226
+ * references region writes them, so the parser must read them.
227
+ *
228
+ * @public
229
+ */
230
+ const REFERENCE_KEYWORDS = [
231
+ "ref",
232
+ "refs",
233
+ "references"
234
+ ];
235
+ /**
236
+ * Both keyword tables ARE the exported constants — membership sets built from
237
+ * them once — so the constants and the grammar cannot drift.
238
+ */
239
+ const ALL_KEYWORDS = /* @__PURE__ */ new Set([...CLOSING_KEYWORDS, ...REFERENCE_KEYWORDS]);
240
+ /** Membership test for reporting `closing`, widened once so no call casts. */
241
+ const CLOSING_SET = new Set(CLOSING_KEYWORDS);
242
+ const HASH = 35;
243
+ const COLON = 58;
244
+ const COMMA = 44;
245
+ /** `[ \t]` — the only whitespace the dialect admits, per the module remarks. */
246
+ const isSpaceTab = (code) => code === 32 || code === 9;
247
+ const isDigit$2 = (code) => code >= 48 && code <= 57;
248
+ const isAsciiLetter = (code) => code >= 65 && code <= 90 || code >= 97 && code <= 122;
249
+ /** The index after the run of `[ \t]` starting at `from` (possibly `from` itself). */
250
+ const skipSpaceTab = (line, from) => {
251
+ let index = from;
252
+ while (index < line.length && isSpaceTab(line.charCodeAt(index))) index += 1;
253
+ return index;
254
+ };
255
+ /**
256
+ * One list item at exactly `from`: `#<digits>` and the index one past it.
257
+ * Digits exceeding `Number.MAX_SAFE_INTEGER` report `"unsafe"` rather than a
258
+ * silently rounded issue number, still carrying the index one past the digit
259
+ * run so a caller can skip the item's extent; the whole-line parsers reject
260
+ * on it and {@link harvestReferenceLists} abandons the entire candidate —
261
+ * see the module remarks for why a list never yields a partial reading.
262
+ * Anything that is not `#<digits>` at all is `undefined`.
263
+ */
264
+ const readItem = (line, from) => {
265
+ if (line.charCodeAt(from) !== HASH) return void 0;
266
+ const start = from + 1;
267
+ let index = start;
268
+ while (index < line.length && isDigit$2(line.charCodeAt(index))) index += 1;
269
+ if (index === start) return void 0;
270
+ const value = Number(line.slice(start, index));
271
+ return Number.isSafeInteger(value) ? {
272
+ kind: "item",
273
+ value,
274
+ next: index
275
+ } : {
276
+ kind: "unsafe",
277
+ next: index
278
+ };
279
+ };
280
+ /**
281
+ * One separator at exactly `from`: a comma with optional surrounding `[ \t]`
282
+ * and an optional Oxford `and` (consumed only when its own trailing `[ \t]+`
283
+ * is present), or a bare `and` requiring `[ \t]+` on both sides. `and` is
284
+ * lowercase-only — the keyword head is case-insensitive, the separator is
285
+ * not. Returns the index where the next item must start, or `undefined` when
286
+ * no separator is present.
287
+ */
288
+ const scanSeparator = (line, from) => {
289
+ const afterLeading = skipSpaceTab(line, from);
290
+ if (line.charCodeAt(afterLeading) === COMMA) {
291
+ const afterComma = skipSpaceTab(line, afterLeading + 1);
292
+ if (line.startsWith("and", afterComma)) {
293
+ const afterAnd = skipSpaceTab(line, afterComma + 3);
294
+ if (afterAnd > afterComma + 3) return afterAnd;
295
+ }
296
+ return afterComma;
297
+ }
298
+ if (afterLeading > from && line.startsWith("and", afterLeading)) {
299
+ const afterAnd = skipSpaceTab(line, afterLeading + 3);
300
+ if (afterAnd > afterLeading + 3) return afterAnd;
301
+ }
302
+ };
303
+ /**
304
+ * The scan walk: item, then separator, then item, until the cursor stands
305
+ * exactly at the end of the string. Anything else — a malformed item, an
306
+ * unknown separator, trailing content, an unsafe issue number — is
307
+ * `undefined`, and the caller rejects the whole line.
308
+ */
309
+ const parseItems = (line, from) => {
310
+ const issueNumbers = [];
311
+ let cursor = from;
312
+ for (;;) {
313
+ const item = readItem(line, cursor);
314
+ if (item === void 0 || item.kind === "unsafe") return void 0;
315
+ issueNumbers.push(item.value);
316
+ cursor = item.next;
317
+ if (cursor === line.length) return issueNumbers;
318
+ const next = scanSeparator(line, cursor);
319
+ if (next === void 0) return void 0;
320
+ cursor = next;
321
+ }
322
+ };
323
+ /**
324
+ * The list a whole line carries under either keyword set, or `Option.none()`.
325
+ *
326
+ * @remarks
327
+ * Accepts the nine closing keywords plus {@link REFERENCE_KEYWORDS}, and
328
+ * reports which set matched in the result's `closing` flag. Grammar,
329
+ * whole-line posture and the whole-line rejection of unsafe issue numbers
330
+ * are in the module remarks.
331
+ *
332
+ * @public
333
+ */
334
+ const parseReferenceList = (line) => {
335
+ const trimmed = line.trim();
336
+ let letters = 0;
337
+ while (letters < trimmed.length && isAsciiLetter(trimmed.charCodeAt(letters))) letters += 1;
338
+ if (letters === 0) return effect.Option.none();
339
+ const keyword = trimmed.slice(0, letters).toLowerCase();
340
+ if (!ALL_KEYWORDS.has(keyword)) return effect.Option.none();
341
+ let cursor = letters;
342
+ if (trimmed.charCodeAt(cursor) === COLON) cursor += 1;
343
+ const afterWhitespace = skipSpaceTab(trimmed, cursor);
344
+ if (afterWhitespace === cursor) return effect.Option.none();
345
+ const issueNumbers = parseItems(trimmed, afterWhitespace);
346
+ if (issueNumbers === void 0) return effect.Option.none();
347
+ return effect.Option.some({
348
+ keyword,
349
+ closing: CLOSING_SET.has(keyword),
350
+ issueNumbers
351
+ });
352
+ };
353
+ /**
354
+ * Every reference list a text carries, line by line, across both postures.
355
+ *
356
+ * @remarks
357
+ * The trailer/prose interleave consumers otherwise hand-roll: each line is
358
+ * tried as a whole-line reference list first ({@link parseReferenceList} —
359
+ * colon-tolerant, per the line dialect), and only a line that is not one is
360
+ * harvested inline ({@link harvestReferenceLists} — no colon, per the inline
361
+ * dialect). The preference means a colon-less trailer line contributes its
362
+ * list exactly once, never once per posture.
363
+ *
364
+ * Results carry no offsets, deliberately: this is the line-granular
365
+ * composition, and a consumer that needs spans uses
366
+ * {@link harvestReferenceLists} directly. Duplicates are preserved, in
367
+ * document order.
368
+ *
369
+ * @public
370
+ */
371
+ const collectReferenceLists = (text) => {
372
+ const lists = [];
373
+ for (const line of text.split("\n")) {
374
+ const whole = parseReferenceList(line);
375
+ if (effect.Option.isSome(whole)) {
376
+ lists.push(whole.value);
377
+ continue;
378
+ }
379
+ for (const harvested of harvestReferenceLists(line)) lists.push({
380
+ keyword: harvested.keyword,
381
+ closing: harvested.closing,
382
+ issueNumbers: harvested.issueNumbers
383
+ });
384
+ }
385
+ return lists;
386
+ };
387
+ /** `[A-Za-z0-9_]` — the word-boundary alphabet the inline dialects use. */
388
+ const isWordChar = (code) => isAsciiLetter(code) || isDigit$2(code) || code === 95;
389
+ /**
390
+ * The full JavaScript `\s` set, spelled as a predicate so the module keeps
391
+ * its no-regex promise: ASCII whitespace, NEL-adjacent controls, and the
392
+ * Unicode space separators. Only the keyword→first-item gap of
393
+ * {@link harvestReferenceLists} admits this set — everything inside a list
394
+ * stays `[ \t]`, per the module remarks.
395
+ */
396
+ const isAnyWhitespace = (code) => code === 32 || code >= 9 && code <= 13 || code === 160 || code === 5760 || code >= 8192 && code <= 8202 || code === 8232 || code === 8233 || code === 8239 || code === 8287 || code === 12288 || code === 65279;
397
+ /**
398
+ * Every reference list found inline in `text`, in document order.
399
+ *
400
+ * @remarks
401
+ * The inline-in-prose posture generalized to lists:
402
+ * `Closes #123, Fixes #456` in one line of a commit body yields two
403
+ * single-item lists, where
404
+ * `harvestIssueReferences` reads only the first reference of each and the
405
+ * whole-line parsers read neither. The grammar per candidate:
406
+ *
407
+ * - The keyword is case-insensitive, drawn from either keyword set,
408
+ * lowercased to canonical form in the result, with `closing` reported by
409
+ * set membership. Word boundaries hold on both sides: the characters
410
+ * immediately before and after the keyword's letter run must not be
411
+ * `[A-Za-z0-9_]`, so `recloses #1` and `1closes #1` do not match.
412
+ * - **No colon** — exactly like `harvestIssueReferences`, the colon spelling
413
+ * belongs to the line dialects ({@link parseReferenceList} and the
414
+ * bare-line parser), so `closes: #1` inline yields nothing.
415
+ * - The keyword→first-item gap is any run of whitespace **including
416
+ * newlines**, mirroring the inline dialect's `\s+`.
417
+ * - List continuation uses the `,` / `and` / Oxford separators with `[ \t]`
418
+ * whitespace only, so a list cannot continue past a newline — a later
419
+ * line makes its own claims.
420
+ * - Items are `#<digits>`; duplicates are preserved in order.
421
+ *
422
+ * A list ends at its last valid item: in `closes #1 and fixes #2` the
423
+ * ` and ` before `fixes` fails as a separator because what follows is not
424
+ * `#`, so the text yields `closes: [1]` then `fixes: [2]`. An item past
425
+ * `Number.MAX_SAFE_INTEGER` anywhere in a candidate skips the **entire**
426
+ * candidate — never a partial list, for the same reason
427
+ * {@link parseReferenceList} rejects the whole line — and scanning resumes
428
+ * after the candidate's scanned extent.
429
+ *
430
+ * Like everything in this module, the harvest is a single left-to-right
431
+ * character scan with no regular expressions, so time stays linear in the
432
+ * text length and no input is truncated.
433
+ *
434
+ * @public
435
+ */
436
+ const harvestReferenceLists = (text) => {
437
+ const lists = [];
438
+ let index = 0;
439
+ while (index < text.length) {
440
+ if (!isAsciiLetter(text.charCodeAt(index))) {
441
+ index += 1;
442
+ continue;
443
+ }
444
+ const runStart = index;
445
+ let runEnd = index + 1;
446
+ while (runEnd < text.length && isAsciiLetter(text.charCodeAt(runEnd))) runEnd += 1;
447
+ if (runStart > 0 && isWordChar(text.charCodeAt(runStart - 1)) || runEnd < text.length && isWordChar(text.charCodeAt(runEnd))) {
448
+ index = runEnd;
449
+ continue;
450
+ }
451
+ const keyword = text.slice(runStart, runEnd).toLowerCase();
452
+ if (!ALL_KEYWORDS.has(keyword)) {
453
+ index = runEnd;
454
+ continue;
455
+ }
456
+ let cursor = runEnd;
457
+ while (cursor < text.length && isAnyWhitespace(text.charCodeAt(cursor))) cursor += 1;
458
+ const first = cursor === runEnd ? void 0 : readItem(text, cursor);
459
+ if (first === void 0) {
460
+ index = runEnd;
461
+ continue;
462
+ }
463
+ if (first.kind === "unsafe") {
464
+ index = first.next;
465
+ continue;
466
+ }
467
+ const issueNumbers = [first.value];
468
+ let end = first.next;
469
+ let unsafeNext;
470
+ for (;;) {
471
+ const next = scanSeparator(text, end);
472
+ if (next === void 0) break;
473
+ const item = readItem(text, next);
474
+ if (item === void 0) break;
475
+ if (item.kind === "unsafe") {
476
+ unsafeNext = item.next;
477
+ break;
478
+ }
479
+ issueNumbers.push(item.value);
480
+ end = item.next;
481
+ }
482
+ if (unsafeNext !== void 0) {
483
+ index = unsafeNext;
484
+ continue;
485
+ }
486
+ lists.push({
487
+ keyword,
488
+ closing: CLOSING_SET.has(keyword),
489
+ issueNumbers,
490
+ start: runStart,
491
+ end
492
+ });
493
+ index = end;
494
+ }
495
+ return lists;
496
+ };
497
+ //#endregion
498
+ //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/KeywordFamily.js
499
+ /**
500
+ * The projection table IS the totality proof: `Record` over the union of
501
+ * both keyword types makes a keyword added to either constant without an
502
+ * entry here fail to compile.
503
+ */
504
+ const FAMILIES = {
505
+ close: "close",
506
+ closes: "close",
507
+ closed: "close",
508
+ fix: "fix",
509
+ fixes: "fix",
510
+ fixed: "fix",
511
+ resolve: "resolve",
512
+ resolves: "resolve",
513
+ resolved: "resolve",
514
+ ref: "ref",
515
+ refs: "ref",
516
+ references: "ref"
517
+ };
518
+ /**
519
+ * The family a keyword belongs to.
520
+ *
521
+ * @remarks
522
+ * Total over both keyword sets by construction — see the module remarks for
523
+ * why an explicit record beats a `startsWith` heuristic. `close`, `closes`
524
+ * and `closed` map to `"close"`; the `fix` and `resolve` conjugations
525
+ * likewise; `ref`, `refs` and `references` map to `"ref"`. The evidence for
526
+ * the projection is downstream: categorized harvesters key maps by family,
527
+ * and each was hand-rolling this collapse.
528
+ *
529
+ * @public
530
+ */
531
+ const keywordFamily = (keyword) => FAMILIES[keyword];
532
+ //#endregion
533
+ //#region ../silk-core/dist/dev/pkg/schemas/VersioningSchemas.js
100
534
  /**
101
535
  * Configuration for how private packages are handled during versioning.
102
536
  *
@@ -168,7 +602,7 @@ const ChangesetConfigFile = effect.Schema.Struct({
168
602
  *
169
603
  * @remarks
170
604
  * Extends {@link (ChangesetConfigFile:type)} with a `_isSilk` marker flag that is automatically
171
- * set to `true`. Detected by {@link ChangesetConfigReader} when the `changelog` field
605
+ * set to `true`. Detected by `ChangesetConfigReader` when the `changelog` field
172
606
  * references `@savvy-web/changesets`.
173
607
  *
174
608
  * @since 0.1.0
@@ -179,6 +613,25 @@ const SilkChangesetConfigFile = effect.Schema.Struct({
179
613
  _isSilk: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefaultType(effect.Effect.succeed(true)), effect.Schema.withConstructorDefault(effect.Effect.succeed(true)))
180
614
  });
181
615
  //#endregion
616
+ //#region ../silk-core/dist/dev/pkg/utils/TrailingSlash.js
617
+ /**
618
+ * Trim trailing slashes from a string.
619
+ *
620
+ * @remarks
621
+ * Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
622
+ * unanchored at the start, so the engine retries the match from every position
623
+ * and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
624
+ * Only a trailing run of slashes is removed; interior slash runs are untouched.
625
+ *
626
+ * @since 0.1.0
627
+ * @public
628
+ */
629
+ const trimTrailingSlashes = (s) => {
630
+ let end = s.length;
631
+ while (end > 0 && s[end - 1] === "/") end -= 1;
632
+ return s.slice(0, end);
633
+ };
634
+ //#endregion
182
635
  //#region ../silk-effects/dist/dev/pkg/services/ChangesetConfigReader.js
183
636
  /**
184
637
  * Substrings that identify a Silk changelog adapter entry in `.changeset/config.json`.
@@ -208,8 +661,8 @@ function isSilkChangelog(changelog) {
208
661
  *
209
662
  * @remarks
210
663
  * Automatically detects whether the config uses the Silk changelog adapter
211
- * (`@savvy-web/changesets`) and decodes as {@link (SilkChangesetConfigFile:type)} or the
212
- * standard {@link (ChangesetConfigFile:type)} accordingly.
664
+ * (`@savvy-web/changesets`) and decodes as `SilkChangesetConfigFile` or the
665
+ * standard `ChangesetConfigFile` accordingly.
213
666
  *
214
667
  * @example
215
668
  * ```typescript
@@ -287,32 +740,6 @@ var ChangesetConfigReader = class extends effect.Context.Service()("@savvy-web/s
287
740
  }));
288
741
  };
289
742
  //#endregion
290
- //#region ../silk-effects/dist/dev/pkg/errors/PublishTargetBindingError.js
291
- /**
292
- * Raised when publishability detection selects a directory that the package's
293
- * `dist/prod/targets.json` binding does not describe.
294
- *
295
- * @remarks
296
- * The bundler's prod build writes `targets.json` naming every byte-group
297
- * directory it produced. Once that binding exists it is authoritative: the only
298
- * directories whose bytes may be published are the ones it lists. A detector
299
- * that returns anything else — most often `publishConfig.directory` pointing at
300
- * a **dev** build, because silk mode was misdetected — is about to pack an
301
- * unresolved workspace manifest and ship it to a registry.
302
- *
303
- * That is the `yaml-effect@0.7.1` failure: detection picked `dist/dev/pkg`, the
304
- * dev manifest still carried `catalog:` specifiers, and the published package
305
- * was uninstallable (`EUNSUPPORTEDPROTOCOL`).
306
- *
307
- * @since 3.1.0
308
- * @public
309
- */
310
- var PublishTargetBindingError = class extends effect.Data.TaggedError("PublishTargetBindingError") {
311
- get message() {
312
- return `Package ${this.pkg} resolved publish directory "${this.directory}", which is not one of the directories bound by dist/prod/targets.json (${this.boundDirectories.join(", ")}). This means publishability detection did not select the prod build output — refusing to publish before packing an unresolved manifest.`;
313
- }
314
- };
315
- //#endregion
316
743
  //#region ../silk-effects/dist/dev/pkg/services/ChangesetConfig.js
317
744
  const isSilk = (cfg) => "_isSilk" in cfg && cfg._isSilk === true;
318
745
  /**
@@ -389,22 +816,6 @@ var ChangesetConfig = class ChangesetConfig extends effect.Context.Service()("@s
389
816
  }));
390
817
  };
391
818
  //#endregion
392
- //#region ../silk-effects/dist/dev/pkg/utils/TrailingSlash.js
393
- /**
394
- * Trim trailing slashes from a string.
395
- *
396
- * @remarks
397
- * Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
398
- * unanchored at the start, so the engine retries the match from every position
399
- * and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
400
- * Only a trailing run of slashes is removed; interior slash runs are untouched.
401
- */
402
- const trimTrailingSlashes = (s) => {
403
- let end = s.length;
404
- while (end > 0 && s[end - 1] === "/") end -= 1;
405
- return s.slice(0, end);
406
- };
407
- //#endregion
408
819
  //#region ../silk-effects/dist/dev/pkg/services/SilkPublishability.js
409
820
  const NPM_DEFAULT = "https://registry.npmjs.org/";
410
821
  /**
@@ -527,7 +938,7 @@ var SilkPublishability = class SilkPublishability {
527
938
  * directories it names. A directory outside the binding means detection did
528
939
  * not select the prod output — the `yaml-effect@0.7.1` shape, where a dev
529
940
  * manifest carrying `catalog:` specifiers was packed and published. Rather
530
- * than ship those bytes, fail with {@link PublishTargetBindingError}.
941
+ * than ship those bytes, fail with `PublishTargetBindingError`.
531
942
  *
532
943
  * Before the prod build runs there is no binding, and the detector's
533
944
  * placeholder directories are left alone.
@@ -2655,6 +3066,66 @@ function makeGitHubTest(responses) {
2655
3066
  } });
2656
3067
  }
2657
3068
  //#endregion
3069
+ //#region ../silk-effects/dist/dev/pkg/changesets/utils/logger.js
3070
+ /**
3071
+ * Warning output for changelog generation, parameterised by a
3072
+ * {@link ChangesetLogMode} reference instead of an ambient environment read.
3073
+ *
3074
+ * @remarks
3075
+ * This module is engine code shared by every front end, so it must not read
3076
+ * `process` — a `process.env` read here would bake one host's environment
3077
+ * into every other. The mode is a `Context.Reference` with a default of
3078
+ * `"stderr"`; a front end that knows it runs under GitHub Actions or a test
3079
+ * runner provides `"github"` or `"silent"` from its own `process.env` read.
3080
+ *
3081
+ * @packageDocumentation
3082
+ */
3083
+ /**
3084
+ * The reference that selects the {@link ChangesetLogModeValue}.
3085
+ *
3086
+ * @remarks
3087
+ * Defaults to `"stderr"` when no front end provides it, so a program that
3088
+ * never touches the reference still reports. Provide with
3089
+ * `Layer.succeed(ChangesetLogMode, "github")` or
3090
+ * `Effect.provideService(ChangesetLogMode, "silent")`.
3091
+ *
3092
+ * @example
3093
+ * ```typescript
3094
+ * import { Effect } from "effect";
3095
+ * import { Changesets } from "\@savvy-web/silk-effects";
3096
+ *
3097
+ * const mode = process.env.GITHUB_ACTIONS === "true" ? "github" : "stderr";
3098
+ * program.pipe(Effect.provideService(Changesets.ChangesetLogMode, mode));
3099
+ * ```
3100
+ *
3101
+ * @public
3102
+ */
3103
+ const ChangesetLogMode = effect.Context.Reference("@savvy-web/silk-effects/Changesets/ChangesetLogMode", { defaultValue: () => "stderr" });
3104
+ /**
3105
+ * Log a warning message according to the {@link ChangesetLogMode} in context.
3106
+ *
3107
+ * @param message - The warning message
3108
+ * @param args - Additional arguments (concatenated with a space in `"github"` mode)
3109
+ * @returns An `Effect` that never fails
3110
+ *
3111
+ * @internal
3112
+ */
3113
+ function logWarning(message, ...args) {
3114
+ return effect.Effect.gen(function* () {
3115
+ switch (yield* ChangesetLogMode) {
3116
+ case "silent": return;
3117
+ case "github": {
3118
+ const text = args.length > 0 ? `${message} ${args.join(" ")}` : message;
3119
+ console.warn(`::warning::${text}`);
3120
+ return;
3121
+ }
3122
+ case "stderr":
3123
+ console.warn(message, ...args);
3124
+ return;
3125
+ }
3126
+ });
3127
+ }
3128
+ //#endregion
2658
3129
  //#region ../silk-effects/dist/dev/pkg/changesets/schemas/primitives.js
2659
3130
  /**
2660
3131
  * Primitive reusable schemas for common constrained types.
@@ -2934,7 +3405,7 @@ const DependencyTableRowSchema = effect.Schema.Struct({
2934
3405
  */
2935
3406
  const DependencyTableSchema = effect.Schema.Array(DependencyTableRowSchema).check(effect.Schema.isMinLength(1));
2936
3407
  //#endregion
2937
- //#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
3408
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/MarkdownNode.js
2938
3409
  /**
2939
3410
  * A single point in a source document: 1-based `line` and `column`, 0-based
2940
3411
  * `offset`.
@@ -3735,7 +4206,7 @@ effect.Schema.suspend(() => effect.Schema.Union([
3735
4206
  TableContent
3736
4207
  ]));
3737
4208
  //#endregion
3738
- //#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
4209
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/frontmatter.js
3739
4210
  const FENCES = /* @__PURE__ */ new Map([
3740
4211
  ["---", {
3741
4212
  format: "yaml",
@@ -3967,7 +4438,7 @@ function evaluateNode(node, depth) {
3967
4438
  //#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/internal/scanner.js
3968
4439
  const isWhitespace = (ch) => ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 65279;
3969
4440
  const isLineBreak$1 = (ch) => ch === 10 || ch === 13 || ch === 8232 || ch === 8233;
3970
- const isDigit$2 = (ch) => ch >= 48 && ch <= 57;
4441
+ const isDigit$1 = (ch) => ch >= 48 && ch <= 57;
3971
4442
  /**
3972
4443
  * Create a stateful {@link Scanner} for the given JSONC string.
3973
4444
  *
@@ -4072,31 +4543,31 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
4072
4543
  if (text.charCodeAt(pos) === 45) pos++;
4073
4544
  if (text.charCodeAt(pos) === 48) pos++;
4074
4545
  else {
4075
- if (!isDigit$2(text.charCodeAt(pos))) {
4546
+ if (!isDigit$1(text.charCodeAt(pos))) {
4076
4547
  tokenError = "UnexpectedEndOfNumber";
4077
4548
  return text.substring(start, pos);
4078
4549
  }
4079
4550
  pos++;
4080
- while (pos < len && isDigit$2(text.charCodeAt(pos))) pos++;
4551
+ while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
4081
4552
  }
4082
4553
  if (pos < len && text.charCodeAt(pos) === 46) {
4083
4554
  pos++;
4084
- if (!isDigit$2(text.charCodeAt(pos))) {
4555
+ if (!isDigit$1(text.charCodeAt(pos))) {
4085
4556
  tokenError = "UnexpectedEndOfNumber";
4086
4557
  return text.substring(start, pos);
4087
4558
  }
4088
4559
  pos++;
4089
- while (pos < len && isDigit$2(text.charCodeAt(pos))) pos++;
4560
+ while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
4090
4561
  }
4091
4562
  if (pos < len && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) {
4092
4563
  pos++;
4093
4564
  if (pos < len && (text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45)) pos++;
4094
- if (!isDigit$2(text.charCodeAt(pos))) {
4565
+ if (!isDigit$1(text.charCodeAt(pos))) {
4095
4566
  tokenError = "UnexpectedEndOfNumber";
4096
4567
  return text.substring(start, pos);
4097
4568
  }
4098
4569
  pos++;
4099
- while (pos < len && isDigit$2(text.charCodeAt(pos))) pos++;
4570
+ while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
4100
4571
  }
4101
4572
  return text.substring(start, pos);
4102
4573
  };
@@ -4202,7 +4673,7 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
4202
4673
  return token;
4203
4674
  }
4204
4675
  case 45:
4205
- if (pos + 1 < len && isDigit$2(text.charCodeAt(pos + 1))) {
4676
+ if (pos + 1 < len && isDigit$1(text.charCodeAt(pos + 1))) {
4206
4677
  tokenValue = scanNumber();
4207
4678
  token = "Number";
4208
4679
  return token;
@@ -4213,7 +4684,7 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
4213
4684
  tokenError = "InvalidSymbol";
4214
4685
  return token;
4215
4686
  default:
4216
- if (isDigit$2(ch)) {
4687
+ if (isDigit$1(ch)) {
4217
4688
  tokenValue = scanNumber();
4218
4689
  token = "Number";
4219
4690
  return token;
@@ -5567,7 +6038,7 @@ var JsoncModifier = class {
5567
6038
  });
5568
6039
  };
5569
6040
  //#endregion
5570
- //#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
6041
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/carriers.js
5571
6042
  /**
5572
6043
  * P1's error-code vocabulary. Widens as later phases add parse-error kinds;
5573
6044
  * P1 registers exactly one, the hardening-guard trip.
@@ -5607,7 +6078,7 @@ var GuardExceeded$1 = class extends Error {
5607
6078
  /** Narrows `unknown` to {@link GuardExceeded}; never a bare `instanceof` at a call site. */
5608
6079
  const isGuardExceeded$1 = (u) => u instanceof GuardExceeded$1;
5609
6080
  //#endregion
5610
- //#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
6081
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/MarkdownDiagnostic.js
5611
6082
  /**
5612
6083
  * Error codes `Markdown.parse`/`MarkdownDocument.parse` can fail with. P1
5613
6084
  * registers exactly the hardening-guard trip; later phases widen the union
@@ -5687,7 +6158,7 @@ function lineChar(text, offset) {
5687
6158
  };
5688
6159
  }
5689
6160
  //#endregion
5690
- //#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
6161
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blockTypes.js
5691
6162
  /** Narrow materialized children to the flow content most constructs contain. */
5692
6163
  const flowChildren = (children) => children.filter((child) => child.type !== "root" && child.type !== "listItem" && child.type !== "tableRow" && child.type !== "tableCell");
5693
6164
  /** Narrow materialized children to the list items a list contains. */
@@ -5712,7 +6183,7 @@ const makeBlockNode = (type, startOffset, startLine, depth = 0) => ({
5712
6183
  data: {}
5713
6184
  });
5714
6185
  //#endregion
5715
- //#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
6186
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/preprocess.js
5716
6187
  /**
5717
6188
  * Split `text` into lines, preserving each line's absolute start offset.
5718
6189
  *
@@ -5766,7 +6237,7 @@ const peekCode = (line, position) => position >= 0 && position < line.length ? l
5766
6237
  */
5767
6238
  const columnsToNextTabStop = (column) => 4 - column % 4;
5768
6239
  //#endregion
5769
- //#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
6240
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/htmlTags.js
5770
6241
  const TAGNAME = "[A-Za-z][A-Za-z0-9-]*";
5771
6242
  /** An opening tag, with any attributes and an optional self-closing slash. */
5772
6243
  const OPENTAG = `<${TAGNAME}(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^"'=<>\`\\x00-\\x20]+|'[^']*'|"[^"]*"))?)*\\s*/?>`;
@@ -5777,7 +6248,7 @@ const HTMLTAG = `(?:${OPENTAG}|${CLOSETAG}|<!-->|<!--->|<!--[\\s\\S]*?-->|[<][?]
5777
6248
  /** {@link HTMLTAG}, anchored for matching at a cursor. */
5778
6249
  const reHtmlTag = new RegExp(`^${HTMLTAG}`);
5779
6250
  //#endregion
5780
- //#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
6251
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/htmlBlock.js
5781
6252
  const C_LESSTHAN$3 = 60;
5782
6253
  const reHtmlBlockOpen = [
5783
6254
  /./,
@@ -5843,7 +6314,7 @@ const htmlBlockStart = {
5843
6314
  }
5844
6315
  };
5845
6316
  //#endregion
5846
- //#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
6317
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/atxHeading.js
5847
6318
  const reATXHeadingMarker = /^#{1,6}(?:[ \t]+|$)/;
5848
6319
  const reOnlyTrailingHashes = /^[ \t]*#+[ \t]*$/;
5849
6320
  const reClosingHashes = /[ \t]+#+[ \t]*$/;
@@ -5893,7 +6364,7 @@ const atxHeadingStart = {
5893
6364
  }
5894
6365
  };
5895
6366
  //#endregion
5896
- //#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
6367
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/blockquote.js
5897
6368
  const C_GREATERTHAN = 62;
5898
6369
  /** Blockquote: continues while each line carries its `>` marker. */
5899
6370
  const blockquoteConstruct = {
@@ -5927,11 +6398,11 @@ const blockquoteStart = {
5927
6398
  }
5928
6399
  };
5929
6400
  //#endregion
5930
- //#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
6401
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/entityMap.js
5931
6402
  /** The HTML5 named character references, keyed without `&` or `;`. */
5932
6403
  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\",\"‌\"]]"));
5933
6404
  //#endregion
5934
- //#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
6405
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/entities.js
5935
6406
  /** The largest code point Unicode defines. */
5936
6407
  const MAX_CODE_POINT = 1114111;
5937
6408
  /**
@@ -5953,7 +6424,7 @@ const decodeEntity = (entity) => {
5953
6424
  return String.fromCodePoint(code);
5954
6425
  };
5955
6426
  //#endregion
5956
- //#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
6427
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/unescape.js
5957
6428
  /** The punctuation set a backslash may escape, per the spec. */
5958
6429
  const ESCAPABLE$1 = "[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]";
5959
6430
  /** One entity, in any of the three spec forms. */
@@ -5967,7 +6438,7 @@ const unescapeChar = (source) => {
5967
6438
  /** Replace every backslash escape and character reference with its literal. */
5968
6439
  const unescapeString = (source) => reBackslashOrAmp.test(source) ? source.replace(reEntityOrEscapedChar, unescapeChar) : source;
5969
6440
  //#endregion
5970
- //#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
6441
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/code.js
5971
6442
  const reBlankLine = /^[ \t]*$/;
5972
6443
  const reClosingCodeFence = /^(?:`{3,}|~{3,})(?=[ \t]*$)/;
5973
6444
  /**
@@ -6051,7 +6522,7 @@ const codeConstruct = {
6051
6522
  }
6052
6523
  };
6053
6524
  //#endregion
6054
- //#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
6525
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/document.js
6055
6526
  /** The document root: contains everything except a bare list item. */
6056
6527
  const documentConstruct = {
6057
6528
  type: "document",
@@ -6064,7 +6535,7 @@ const documentConstruct = {
6064
6535
  })
6065
6536
  };
6066
6537
  //#endregion
6067
- //#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
6538
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/fencedCode.js
6068
6539
  const reCodeFence = /^`{3,}(?!.*`)|^~{3,}/;
6069
6540
  const fenceCharOf = (char) => char === "`" || char === "~" ? char : void 0;
6070
6541
  /** The fenced-code block start: three or more backticks or tildes. */
@@ -6088,7 +6559,7 @@ const fencedCodeStart = {
6088
6559
  }
6089
6560
  };
6090
6561
  //#endregion
6091
- //#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
6562
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/patterns.js
6092
6563
  const stickyCache = /* @__PURE__ */ new WeakMap();
6093
6564
  const globalCache = /* @__PURE__ */ new WeakMap();
6094
6565
  const clone = (pattern, flag, dropCaret) => {
@@ -6112,7 +6583,7 @@ const globalOf = (pattern) => {
6112
6583
  return made;
6113
6584
  };
6114
6585
  //#endregion
6115
- //#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
6586
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/references.js
6116
6587
  const ESCAPABLE = "[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]";
6117
6588
  const ESCAPED_CHAR = `\\\\${ESCAPABLE}`;
6118
6589
  const reLinkTitle = new RegExp(`^(?:"(${ESCAPED_CHAR}|\\\\[^\\\\]|[^\\\\"\\x00])*"|'(${ESCAPED_CHAR}|\\\\[^\\\\]|[^\\\\'\\x00])*'|\\((${ESCAPED_CHAR}|\\\\[^\\\\]|[^\\\\()\\x00])*\\))`);
@@ -6286,7 +6757,7 @@ const parseReference = (text) => {
6286
6757
  };
6287
6758
  };
6288
6759
  //#endregion
6289
- //#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
6760
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/footnoteDefinition.js
6290
6761
  /**
6291
6762
  * `_scan_footnote_definition` from `src/scanners.re`:
6292
6763
  *
@@ -6363,7 +6834,7 @@ const footnoteDefinitionStart = {
6363
6834
  }
6364
6835
  };
6365
6836
  //#endregion
6366
- //#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
6837
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/indentedCode.js
6367
6838
  /** The indented-code block start: four columns of indentation. */
6368
6839
  const indentedCodeStart = {
6369
6840
  name: "indentedCode",
@@ -6377,7 +6848,7 @@ const indentedCodeStart = {
6377
6848
  }
6378
6849
  };
6379
6850
  //#endregion
6380
- //#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
6851
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/segments.js
6381
6852
  /**
6382
6853
  * The absolute source offset of `textIndex` within a segmented content run.
6383
6854
  *
@@ -6411,7 +6882,7 @@ const sliceWithSegments = (segments, from, to) => {
6411
6882
  return sliced;
6412
6883
  };
6413
6884
  //#endregion
6414
- //#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
6885
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/linkReferenceDefinition.js
6415
6886
  const C_OPEN_BRACKET$1 = 91;
6416
6887
  /**
6417
6888
  * Split every leading link reference definition out of `block`, inserting one
@@ -6476,7 +6947,7 @@ const definitionConstruct = {
6476
6947
  }
6477
6948
  };
6478
6949
  //#endregion
6479
- //#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
6950
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/list.js
6480
6951
  const reBulletListMarker = /^[*+-]/;
6481
6952
  const reOrderedListMarker = /^(\d{1,9})([.)])/;
6482
6953
  const reNonSpace$1 = /[^ \t\f\v\r\n]/;
@@ -6629,7 +7100,7 @@ const listItemStart = {
6629
7100
  }
6630
7101
  };
6631
7102
  //#endregion
6632
- //#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
7103
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/paragraph.js
6633
7104
  /** Paragraph: absorbs lines until a blank one, and contains nothing. */
6634
7105
  const paragraphConstruct = {
6635
7106
  type: "paragraph",
@@ -6651,7 +7122,7 @@ const paragraphConstruct = {
6651
7122
  }
6652
7123
  };
6653
7124
  //#endregion
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/blocks/setextHeading.js
7125
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/setextHeading.js
6655
7126
  const reSetextHeadingLine = /^(?:=+|-+)[ \t]*$/;
6656
7127
  /** The setext heading block start: a run of `=` or `-` under a paragraph. */
6657
7128
  const setextHeadingStart = {
@@ -6671,7 +7142,7 @@ const setextHeadingStart = {
6671
7142
  }
6672
7143
  };
6673
7144
  //#endregion
6674
- //#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
7145
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/table.js
6675
7146
  /**
6676
7147
  * Upstream's `MAX_AUTOCOMPLETED_CELLS`: the ceiling on cells the parser
6677
7148
  * invents to pad short rows, which is what stops a wide header followed by a
@@ -7042,7 +7513,7 @@ const tableCellConstruct = {
7042
7513
  }
7043
7514
  };
7044
7515
  //#endregion
7045
- //#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
7516
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/taskListItem.js
7046
7517
  /**
7047
7518
  * `_scan_tasklist`, as the generated scanner accepts it.
7048
7519
  *
@@ -7076,7 +7547,7 @@ const taskListItemStart = {
7076
7547
  }
7077
7548
  };
7078
7549
  //#endregion
7079
- //#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
7550
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blocks/thematicBreak.js
7080
7551
  const reThematicBreak = /^(?:\*[ \t]*){3,}$|^(?:_[ \t]*){3,}$|^(?:-[ \t]*){3,}$/;
7081
7552
  const markerCharOf$1 = (char) => char === "-" || char === "_" || char === "*" ? char : void 0;
7082
7553
  /** Thematic break: one line, no children. */
@@ -7107,7 +7578,7 @@ const thematicBreakStart = {
7107
7578
  }
7108
7579
  };
7109
7580
  //#endregion
7110
- //#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
7581
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blockRegistry.js
7111
7582
  const constructTable = (constructs) => new Map(constructs.map((construct) => [construct.type, construct]));
7112
7583
  const commonmarkDialect$1 = {
7113
7584
  constructs: constructTable([
@@ -7179,7 +7650,7 @@ const blockDialect = (dialect) => {
7179
7650
  return found;
7180
7651
  };
7181
7652
  //#endregion
7182
- //#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
7653
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/lineIndex.js
7183
7654
  /**
7184
7655
  * A precomputed index of line-start offsets over a fixed source text,
7185
7656
  * answering `positionAt(offset)` in `O(log n)` via binary search rather than
@@ -7253,7 +7724,7 @@ var LineIndex = class LineIndex {
7253
7724
  }
7254
7725
  };
7255
7726
  //#endregion
7256
- //#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
7727
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlineNode.js
7257
7728
  /** Open a node with no links. */
7258
7729
  const makeInlineNode = (type, start, end, value = "") => ({
7259
7730
  type,
@@ -7305,7 +7776,7 @@ const childrenOf = (node) => {
7305
7776
  return children;
7306
7777
  };
7307
7778
  //#endregion
7308
- //#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
7779
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/emphasis.js
7309
7780
  const C_ASTERISK$1 = 42;
7310
7781
  const C_UNDERSCORE$1 = 95;
7311
7782
  const rePunctuation = /^[!"#$%&'()*+,\-./:;<=>?@[\]\\^_`{|}~\p{P}\p{S}]/u;
@@ -7382,7 +7853,7 @@ const emphasisConstruct = {
7382
7853
  parse: (scanner) => handleDelim(scanner, scanner.peek())
7383
7854
  };
7384
7855
  //#endregion
7385
- //#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
7856
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/strikethrough.js
7386
7857
  /**
7387
7858
  * Consume a `~` run as literal text and, when it is a viable one- or
7388
7859
  * two-tilde run, push it onto the shared delimiter stack.
@@ -7456,7 +7927,7 @@ const strikethroughConstruct = {
7456
7927
  parse: (scanner) => handleTilde(scanner)
7457
7928
  };
7458
7929
  //#endregion
7459
- //#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
7930
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/autolink.js
7460
7931
  const C_LESSTHAN$1 = 60;
7461
7932
  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])?)*)>/;
7462
7933
  const reAutolink = /^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\0- ]*>/i;
@@ -7488,7 +7959,7 @@ const autolinkConstruct = {
7488
7959
  }
7489
7960
  };
7490
7961
  //#endregion
7491
- //#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
7962
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/autolinkLiteral.js
7492
7963
  const C_LOWER_W = 119;
7493
7964
  const C_COLON = 58;
7494
7965
  /** `cmark_isspace`: ASCII only, deliberately — upstream's URL scan uses it. */
@@ -7858,7 +8329,7 @@ const linkifyEmails = (root) => {
7858
8329
  }
7859
8330
  };
7860
8331
  //#endregion
7861
- //#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
8332
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/codeSpan.js
7862
8333
  const C_BACKTICK$1 = 96;
7863
8334
  const reTicksHere = /^`+/;
7864
8335
  const reNewline = /\n/gm;
@@ -7886,7 +8357,7 @@ const codeSpanConstruct = {
7886
8357
  }
7887
8358
  };
7888
8359
  //#endregion
7889
- //#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
8360
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/entity.js
7890
8361
  const C_AMPERSAND = 38;
7891
8362
  const reEntityHere = new RegExp(`^${ENTITY}`, "i");
7892
8363
  /** A named, decimal or hexadecimal character reference. */
@@ -7902,7 +8373,7 @@ const entityConstruct = {
7902
8373
  }
7903
8374
  };
7904
8375
  //#endregion
7905
- //#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
8376
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/escape.js
7906
8377
  const C_BACKSLASH = 92;
7907
8378
  const C_NEWLINE$1 = 10;
7908
8379
  const reEscapable = new RegExp(`^${ESCAPABLE$1}`);
@@ -7931,7 +8402,7 @@ const escapeConstruct = {
7931
8402
  }
7932
8403
  };
7933
8404
  //#endregion
7934
- //#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
8405
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/link.js
7935
8406
  const C_BANG = 33;
7936
8407
  const C_CARET$1 = 94;
7937
8408
  const C_OPEN_BRACKET = 91;
@@ -8138,7 +8609,7 @@ const makeLinkCloseConstruct = (onNoMatch) => ({
8138
8609
  /** `]` — closes a link or image, or stays literal. The CommonMark spelling. */
8139
8610
  const linkCloseConstruct = makeLinkCloseConstruct();
8140
8611
  //#endregion
8141
- //#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
8612
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/footnoteReference.js
8142
8613
  const C_CARET = 94;
8143
8614
  /**
8144
8615
  * Whether the bracket that just closed looks like `[^...]` with something
@@ -8195,7 +8666,7 @@ const gfmLinkCloseConstruct = makeLinkCloseConstruct(footnoteReferenceFallback);
8195
8666
  */
8196
8667
  const gfmImageOpenConstruct = makeImageOpenConstruct(false);
8197
8668
  //#endregion
8198
- //#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
8669
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/lineBreak.js
8199
8670
  const C_NEWLINE = 10;
8200
8671
  const reInitialSpace = /^ */;
8201
8672
  /** A soft or hard line break. */
@@ -8216,7 +8687,7 @@ const lineBreakConstruct = {
8216
8687
  }
8217
8688
  };
8218
8689
  //#endregion
8219
- //#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
8690
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/rawHtml.js
8220
8691
  const C_LESSTHAN = 60;
8221
8692
  /** The raw-HTML forms that scan forward for a fixed closing sequence. */
8222
8693
  const UNTERMINATED_FORMS = [
@@ -8238,7 +8709,7 @@ const rawHtmlConstruct = {
8238
8709
  }
8239
8710
  };
8240
8711
  //#endregion
8241
- //#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
8712
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlines/text.js
8242
8713
  const reMain = /^[^\n`[\]\\!<&*_'"]+/;
8243
8714
  const reMainGfm = /^[^\n`[\]\\!<&*_'"~w:]+/;
8244
8715
  /** Consume a run of ordinary characters, stopping before any construct's. */
@@ -8258,7 +8729,7 @@ const textConstruct = runConstruct("text", reMain);
8258
8729
  /** Ordinary text under `gfm`, which has three more characters to yield to. */
8259
8730
  const gfmTextConstruct = runConstruct("text", reMainGfm);
8260
8731
  //#endregion
8261
- //#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
8732
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlineRegistry.js
8262
8733
  const triggerTable = (constructs) => {
8263
8734
  const table = /* @__PURE__ */ new Map();
8264
8735
  for (const construct of constructs) for (const trigger of construct.triggers) {
@@ -8311,7 +8782,7 @@ const inlineDialect = (dialect) => {
8311
8782
  return found;
8312
8783
  };
8313
8784
  //#endregion
8314
- //#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
8785
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/inlineParser.js
8315
8786
  const C_UNDERSCORE = 95;
8316
8787
  const C_ASTERISK = 42;
8317
8788
  const reTrailingSpaces = / +$/;
@@ -8705,7 +9176,7 @@ var InlineParser = class {
8705
9176
  */
8706
9177
  const parseInlines = (source, refmap, position, dialect = "commonmark", footnoteLabels = /* @__PURE__ */ new Set()) => new InlineParser(source, inlineDialect(dialect), position, refmap, footnoteLabels).parse();
8707
9178
  //#endregion
8708
- //#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
9179
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/rawInline.js
8709
9180
  const reWhitespace = /\s/;
8710
9181
  const reCmarkSpace = /[ \t\n\r]/;
8711
9182
  /**
@@ -8760,7 +9231,7 @@ const prepareInline = (block, position, refmap, dialect = "commonmark", footnote
8760
9231
  };
8761
9232
  };
8762
9233
  //#endregion
8763
- //#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
9234
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/blockParser.js
8764
9235
  /** Upstream's cheap pre-filter: a line that cannot start any block. */
8765
9236
  const reMaybeSpecial = /^[#`~*+_=<>0-9-]/;
8766
9237
  var BlockParser = class {
@@ -9167,7 +9638,7 @@ var BlockParser = class {
9167
9638
  */
9168
9639
  const parseBlocks = (text, dialect = "commonmark", frontmatter = false) => new BlockParser(text, blockDialect(dialect), dialect, frontmatter).parse();
9169
9640
  //#endregion
9170
- //#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
9641
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/phrasing.js
9171
9642
  const EMPTY_REFMAP = /* @__PURE__ */ new Map();
9172
9643
  const EMPTY_FOOTNOTE_LABELS = /* @__PURE__ */ new Set();
9173
9644
  /**
@@ -9216,7 +9687,7 @@ const parsePhrasingText = (text, dialect) => {
9216
9687
  }, EMPTY_REFMAP, positionOf, dialect, EMPTY_FOOTNOTE_LABELS);
9217
9688
  };
9218
9689
  //#endregion
9219
- //#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
9690
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/internal/stringify.js
9220
9691
  const FLOW_CONTEXT = {
9221
9692
  singleLine: false,
9222
9693
  inTable: false,
@@ -9912,7 +10383,7 @@ const stringifyTree = (root) => {
9912
10383
  return body === "" ? "" : `${body}\n`;
9913
10384
  };
9914
10385
  //#endregion
9915
- //#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
10386
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/Markdown.js
9916
10387
  /**
9917
10388
  * The markdown dialects the parser can be pointed at. `"gfm"` — CommonMark
9918
10389
  * 0.31.2 plus the GitHub extensions (tables, strikethrough, autolink
@@ -10288,7 +10759,7 @@ var Markdown = class Markdown {
10288
10759
  static MarkdownFromString = Markdown.fromString();
10289
10760
  };
10290
10761
  //#endregion
10291
- //#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
10762
+ //#region ../../node_modules/.pnpm/@effected+markdown@0.10.0_@effected+jsonc@0.11.0_effect@4.0.0-rc.115__@effected+toml@0._4ffc6d74fdaa440b34a57ec5985e76d9/node_modules/@effected/markdown/Mdast.js
10292
10763
  /**
10293
10764
  * The remark-ecosystem interop boundary: projection between this package's
10294
10765
  * node classes and plain mdast JSON.
@@ -30984,414 +31455,6 @@ function parseCommitMessage(message) {
30984
31455
  return { description: message };
30985
31456
  }
30986
31457
  //#endregion
30987
- //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/IssueReferences.js
30988
- /**
30989
- * GitHub's closing-keyword issue-reference grammar, as pure functions.
30990
- *
30991
- * @remarks
30992
- * GitHub links an issue to a pull request when the PR's description carries
30993
- * `<keyword> #<number>` for one of nine documented keywords. Consumers speak
30994
- * that grammar in two distinct dialects, and this module models exactly those
30995
- * two — no service, no layer, nothing but strings in and values out:
30996
- *
30997
- * - **Inline-in-prose** ({@link harvestIssueReferences}): a reference may appear anywhere in
30998
- * running text — `"fixes #12 and closes #13"` — with mandatory whitespace
30999
- * and **no colon**, because that is the spelling GitHub itself scans PR
31000
- * bodies for. This is the dialect a release pipeline harvests from commit
31001
- * subjects and PR descriptions.
31002
- * - **Bare-line** ({@link parseBareLineReference}): the whole line, after trimming, *is*
31003
- * the reference — `"Closes: #12"` — with an **optional colon**, because a
31004
- * generated references region writes one reference per line and a colon
31005
- * reads better there. GitHub does not require the colon; the region format
31006
- * allows it, so the parser must too. The dialects differ because their
31007
- * producers do: prose is written by humans for GitHub's scanner, the region
31008
- * is written by tooling for humans.
31009
- *
31010
- * Deliberately out of scope this round: cross-repo references
31011
- * (`owner/repo#N`) and full-URL references
31012
- * (`https://github.com/owner/repo/issues/N`). Both are real GitHub spellings;
31013
- * neither dialect's consumers emit them yet, and guessing at their shape here
31014
- * would freeze an API nobody has driven.
31015
- */
31016
- /**
31017
- * The nine closing keywords GitHub documents, lowercased.
31018
- *
31019
- * @public
31020
- */
31021
- const CLOSING_KEYWORDS = [
31022
- "close",
31023
- "closes",
31024
- "closed",
31025
- "fix",
31026
- "fixes",
31027
- "fixed",
31028
- "resolve",
31029
- "resolves",
31030
- "resolved"
31031
- ];
31032
- /**
31033
- * Both patterns derive from {@link CLOSING_KEYWORDS} so the constant and the
31034
- * grammar cannot drift. Alternation order is safe: the regex engine backtracks
31035
- * through alternatives, so `close` matching inside `closes` fails at the
31036
- * mandatory `#`-introducer and retries the longer keyword.
31037
- */
31038
- const KEYWORDS = CLOSING_KEYWORDS.join("|");
31039
- new RegExp(`\\b(${KEYWORDS})\\s+#(\\d+)`, "gi");
31040
- new RegExp(`^(${KEYWORDS}):?[ \\t]+#(\\d+)$`, "i");
31041
- //#endregion
31042
- //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/ClosingList.js
31043
- /**
31044
- * The closing-list dialect: one whole line naming several issues at once.
31045
- *
31046
- * @remarks
31047
- * The third dialect, alongside the two in `IssueReferences`: after trimming,
31048
- * the **entire** line must be `<keyword>[:] <list>` — keyword
31049
- * case-insensitive (lowercased to canonical form in the result), colon
31050
- * optional, and the list one or more `#<digits>` items separated by `,`,
31051
- * `and`, or the Oxford `, and`. Whitespace inside the line is `[ \t]` only,
31052
- * so an embedded newline cannot smuggle two lines past a parser whose
31053
- * contract is one — the same posture as the bare-line pattern. Any trailing
31054
- * content after the list rejects the line; duplicates are preserved in order,
31055
- * because whether `#1, #1` means one issue or two is the caller's business.
31056
- *
31057
- * Two keyword sets play here. {@link parseClosingList} accepts only the nine
31058
- * closing keywords and yields a {@link ClosingList}; {@link parseReferenceList}
31059
- * additionally accepts the non-closing {@link REFERENCE_KEYWORDS} (`ref`,
31060
- * `refs`, `references`) and reports which set matched via
31061
- * {@link ReferenceList}'s `closing` flag.
31062
- *
31063
- * An item whose digits exceed `Number.MAX_SAFE_INTEGER` rejects the **whole
31064
- * line**, where `harvestIssueReferences` merely skips the one match. The
31065
- * asymmetry is deliberate: a harvest drops one reference out of running
31066
- * prose, but a list line is a single claim about a set of issues, and
31067
- * returning the parseable subset would misrepresent the line as claiming
31068
- * less than it does.
31069
- *
31070
- * Complexity posture: parsing is a single left-to-right character scan —
31071
- * this module contains **no regular expressions at all** — so worst-case
31072
- * time is linear in the line length by construction. There is no
31073
- * backtracking engine to feed, no polynomial blow-up for a scanner to flag,
31074
- * and therefore no input truncation.
31075
- *
31076
- * Beyond the whole-line parsers, {@link harvestReferenceLists} generalizes
31077
- * the same list grammar to the inline-in-prose posture — several lists on
31078
- * one line of running text — and {@link parseClosingLists} /
31079
- * {@link parseReferenceLists} apply the whole-line parsers per line of a
31080
- * multi-line text. All of them ride the same character scan; the no-regex
31081
- * promise above covers every export here.
31082
- */
31083
- /**
31084
- * The non-closing reference keywords the list dialect accepts, lowercased.
31085
- *
31086
- * @remarks
31087
- * GitHub does not act on these — they associate without closing — but a
31088
- * references region writes them, so the parser must read them.
31089
- *
31090
- * @public
31091
- */
31092
- const REFERENCE_KEYWORDS = [
31093
- "ref",
31094
- "refs",
31095
- "references"
31096
- ];
31097
- /**
31098
- * Both keyword tables ARE the exported constants — membership sets built from
31099
- * them once — so the constants and the grammar cannot drift.
31100
- */
31101
- const ALL_KEYWORDS = /* @__PURE__ */ new Set([...CLOSING_KEYWORDS, ...REFERENCE_KEYWORDS]);
31102
- /** Membership test for reporting `closing`, widened once so no call casts. */
31103
- const CLOSING_SET = new Set(CLOSING_KEYWORDS);
31104
- const HASH = 35;
31105
- const COLON = 58;
31106
- const COMMA = 44;
31107
- /** `[ \t]` — the only whitespace the dialect admits, per the module remarks. */
31108
- const isSpaceTab = (code) => code === 32 || code === 9;
31109
- const isDigit$1 = (code) => code >= 48 && code <= 57;
31110
- const isAsciiLetter = (code) => code >= 65 && code <= 90 || code >= 97 && code <= 122;
31111
- /** The index after the run of `[ \t]` starting at `from` (possibly `from` itself). */
31112
- const skipSpaceTab = (line, from) => {
31113
- let index = from;
31114
- while (index < line.length && isSpaceTab(line.charCodeAt(index))) index += 1;
31115
- return index;
31116
- };
31117
- /**
31118
- * One list item at exactly `from`: `#<digits>` and the index one past it.
31119
- * Digits exceeding `Number.MAX_SAFE_INTEGER` report `"unsafe"` rather than a
31120
- * silently rounded issue number, still carrying the index one past the digit
31121
- * run so a caller can skip the item's extent; the whole-line parsers reject
31122
- * on it and {@link harvestReferenceLists} abandons the entire candidate —
31123
- * see the module remarks for why a list never yields a partial reading.
31124
- * Anything that is not `#<digits>` at all is `undefined`.
31125
- */
31126
- const readItem = (line, from) => {
31127
- if (line.charCodeAt(from) !== HASH) return void 0;
31128
- const start = from + 1;
31129
- let index = start;
31130
- while (index < line.length && isDigit$1(line.charCodeAt(index))) index += 1;
31131
- if (index === start) return void 0;
31132
- const value = Number(line.slice(start, index));
31133
- return Number.isSafeInteger(value) ? {
31134
- kind: "item",
31135
- value,
31136
- next: index
31137
- } : {
31138
- kind: "unsafe",
31139
- next: index
31140
- };
31141
- };
31142
- /**
31143
- * One separator at exactly `from`: a comma with optional surrounding `[ \t]`
31144
- * and an optional Oxford `and` (consumed only when its own trailing `[ \t]+`
31145
- * is present), or a bare `and` requiring `[ \t]+` on both sides. `and` is
31146
- * lowercase-only — the keyword head is case-insensitive, the separator is
31147
- * not. Returns the index where the next item must start, or `undefined` when
31148
- * no separator is present.
31149
- */
31150
- const scanSeparator = (line, from) => {
31151
- const afterLeading = skipSpaceTab(line, from);
31152
- if (line.charCodeAt(afterLeading) === COMMA) {
31153
- const afterComma = skipSpaceTab(line, afterLeading + 1);
31154
- if (line.startsWith("and", afterComma)) {
31155
- const afterAnd = skipSpaceTab(line, afterComma + 3);
31156
- if (afterAnd > afterComma + 3) return afterAnd;
31157
- }
31158
- return afterComma;
31159
- }
31160
- if (afterLeading > from && line.startsWith("and", afterLeading)) {
31161
- const afterAnd = skipSpaceTab(line, afterLeading + 3);
31162
- if (afterAnd > afterLeading + 3) return afterAnd;
31163
- }
31164
- };
31165
- /**
31166
- * The scan walk: item, then separator, then item, until the cursor stands
31167
- * exactly at the end of the string. Anything else — a malformed item, an
31168
- * unknown separator, trailing content, an unsafe issue number — is
31169
- * `undefined`, and the caller rejects the whole line.
31170
- */
31171
- const parseItems = (line, from) => {
31172
- const issueNumbers = [];
31173
- let cursor = from;
31174
- for (;;) {
31175
- const item = readItem(line, cursor);
31176
- if (item === void 0 || item.kind === "unsafe") return void 0;
31177
- issueNumbers.push(item.value);
31178
- cursor = item.next;
31179
- if (cursor === line.length) return issueNumbers;
31180
- const next = scanSeparator(line, cursor);
31181
- if (next === void 0) return void 0;
31182
- cursor = next;
31183
- }
31184
- };
31185
- /**
31186
- * The list a whole line carries under either keyword set, or `Option.none()`.
31187
- *
31188
- * @remarks
31189
- * Accepts the nine closing keywords plus {@link REFERENCE_KEYWORDS}, and
31190
- * reports which set matched in the result's `closing` flag. Grammar,
31191
- * whole-line posture and the whole-line rejection of unsafe issue numbers
31192
- * are in the module remarks.
31193
- *
31194
- * @public
31195
- */
31196
- const parseReferenceList = (line) => {
31197
- const trimmed = line.trim();
31198
- let letters = 0;
31199
- while (letters < trimmed.length && isAsciiLetter(trimmed.charCodeAt(letters))) letters += 1;
31200
- if (letters === 0) return effect.Option.none();
31201
- const keyword = trimmed.slice(0, letters).toLowerCase();
31202
- if (!ALL_KEYWORDS.has(keyword)) return effect.Option.none();
31203
- let cursor = letters;
31204
- if (trimmed.charCodeAt(cursor) === COLON) cursor += 1;
31205
- const afterWhitespace = skipSpaceTab(trimmed, cursor);
31206
- if (afterWhitespace === cursor) return effect.Option.none();
31207
- const issueNumbers = parseItems(trimmed, afterWhitespace);
31208
- if (issueNumbers === void 0) return effect.Option.none();
31209
- return effect.Option.some({
31210
- keyword,
31211
- closing: CLOSING_SET.has(keyword),
31212
- issueNumbers
31213
- });
31214
- };
31215
- /**
31216
- * Every reference list a text carries, line by line, across both postures.
31217
- *
31218
- * @remarks
31219
- * The trailer/prose interleave consumers otherwise hand-roll: each line is
31220
- * tried as a whole-line reference list first ({@link parseReferenceList} —
31221
- * colon-tolerant, per the line dialect), and only a line that is not one is
31222
- * harvested inline ({@link harvestReferenceLists} — no colon, per the inline
31223
- * dialect). The preference means a colon-less trailer line contributes its
31224
- * list exactly once, never once per posture.
31225
- *
31226
- * Results carry no offsets, deliberately: this is the line-granular
31227
- * composition, and a consumer that needs spans uses
31228
- * {@link harvestReferenceLists} directly. Duplicates are preserved, in
31229
- * document order.
31230
- *
31231
- * @public
31232
- */
31233
- const collectReferenceLists = (text) => {
31234
- const lists = [];
31235
- for (const line of text.split("\n")) {
31236
- const whole = parseReferenceList(line);
31237
- if (effect.Option.isSome(whole)) {
31238
- lists.push(whole.value);
31239
- continue;
31240
- }
31241
- for (const harvested of harvestReferenceLists(line)) lists.push({
31242
- keyword: harvested.keyword,
31243
- closing: harvested.closing,
31244
- issueNumbers: harvested.issueNumbers
31245
- });
31246
- }
31247
- return lists;
31248
- };
31249
- /** `[A-Za-z0-9_]` — the word-boundary alphabet the inline dialects use. */
31250
- const isWordChar = (code) => isAsciiLetter(code) || isDigit$1(code) || code === 95;
31251
- /**
31252
- * The full JavaScript `\s` set, spelled as a predicate so the module keeps
31253
- * its no-regex promise: ASCII whitespace, NEL-adjacent controls, and the
31254
- * Unicode space separators. Only the keyword→first-item gap of
31255
- * {@link harvestReferenceLists} admits this set — everything inside a list
31256
- * stays `[ \t]`, per the module remarks.
31257
- */
31258
- const isAnyWhitespace = (code) => code === 32 || code >= 9 && code <= 13 || code === 160 || code === 5760 || code >= 8192 && code <= 8202 || code === 8232 || code === 8233 || code === 8239 || code === 8287 || code === 12288 || code === 65279;
31259
- /**
31260
- * Every reference list found inline in `text`, in document order.
31261
- *
31262
- * @remarks
31263
- * The inline-in-prose posture generalized to lists:
31264
- * `Closes #123, Fixes #456` in one line of a commit body yields two
31265
- * single-item lists, where
31266
- * `harvestIssueReferences` reads only the first reference of each and the
31267
- * whole-line parsers read neither. The grammar per candidate:
31268
- *
31269
- * - The keyword is case-insensitive, drawn from either keyword set,
31270
- * lowercased to canonical form in the result, with `closing` reported by
31271
- * set membership. Word boundaries hold on both sides: the characters
31272
- * immediately before and after the keyword's letter run must not be
31273
- * `[A-Za-z0-9_]`, so `recloses #1` and `1closes #1` do not match.
31274
- * - **No colon** — exactly like `harvestIssueReferences`, the colon spelling
31275
- * belongs to the line dialects ({@link parseReferenceList} and the
31276
- * bare-line parser), so `closes: #1` inline yields nothing.
31277
- * - The keyword→first-item gap is any run of whitespace **including
31278
- * newlines**, mirroring the inline dialect's `\s+`.
31279
- * - List continuation uses the `,` / `and` / Oxford separators with `[ \t]`
31280
- * whitespace only, so a list cannot continue past a newline — a later
31281
- * line makes its own claims.
31282
- * - Items are `#<digits>`; duplicates are preserved in order.
31283
- *
31284
- * A list ends at its last valid item: in `closes #1 and fixes #2` the
31285
- * ` and ` before `fixes` fails as a separator because what follows is not
31286
- * `#`, so the text yields `closes: [1]` then `fixes: [2]`. An item past
31287
- * `Number.MAX_SAFE_INTEGER` anywhere in a candidate skips the **entire**
31288
- * candidate — never a partial list, for the same reason
31289
- * {@link parseReferenceList} rejects the whole line — and scanning resumes
31290
- * after the candidate's scanned extent.
31291
- *
31292
- * Like everything in this module, the harvest is a single left-to-right
31293
- * character scan with no regular expressions, so time stays linear in the
31294
- * text length and no input is truncated.
31295
- *
31296
- * @public
31297
- */
31298
- const harvestReferenceLists = (text) => {
31299
- const lists = [];
31300
- let index = 0;
31301
- while (index < text.length) {
31302
- if (!isAsciiLetter(text.charCodeAt(index))) {
31303
- index += 1;
31304
- continue;
31305
- }
31306
- const runStart = index;
31307
- let runEnd = index + 1;
31308
- while (runEnd < text.length && isAsciiLetter(text.charCodeAt(runEnd))) runEnd += 1;
31309
- if (runStart > 0 && isWordChar(text.charCodeAt(runStart - 1)) || runEnd < text.length && isWordChar(text.charCodeAt(runEnd))) {
31310
- index = runEnd;
31311
- continue;
31312
- }
31313
- const keyword = text.slice(runStart, runEnd).toLowerCase();
31314
- if (!ALL_KEYWORDS.has(keyword)) {
31315
- index = runEnd;
31316
- continue;
31317
- }
31318
- let cursor = runEnd;
31319
- while (cursor < text.length && isAnyWhitespace(text.charCodeAt(cursor))) cursor += 1;
31320
- const first = cursor === runEnd ? void 0 : readItem(text, cursor);
31321
- if (first === void 0) {
31322
- index = runEnd;
31323
- continue;
31324
- }
31325
- if (first.kind === "unsafe") {
31326
- index = first.next;
31327
- continue;
31328
- }
31329
- const issueNumbers = [first.value];
31330
- let end = first.next;
31331
- let unsafeNext;
31332
- for (;;) {
31333
- const next = scanSeparator(text, end);
31334
- if (next === void 0) break;
31335
- const item = readItem(text, next);
31336
- if (item === void 0) break;
31337
- if (item.kind === "unsafe") {
31338
- unsafeNext = item.next;
31339
- break;
31340
- }
31341
- issueNumbers.push(item.value);
31342
- end = item.next;
31343
- }
31344
- if (unsafeNext !== void 0) {
31345
- index = unsafeNext;
31346
- continue;
31347
- }
31348
- lists.push({
31349
- keyword,
31350
- closing: CLOSING_SET.has(keyword),
31351
- issueNumbers,
31352
- start: runStart,
31353
- end
31354
- });
31355
- index = end;
31356
- }
31357
- return lists;
31358
- };
31359
- //#endregion
31360
- //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/KeywordFamily.js
31361
- /**
31362
- * The projection table IS the totality proof: `Record` over the union of
31363
- * both keyword types makes a keyword added to either constant without an
31364
- * entry here fail to compile.
31365
- */
31366
- const FAMILIES = {
31367
- close: "close",
31368
- closes: "close",
31369
- closed: "close",
31370
- fix: "fix",
31371
- fixes: "fix",
31372
- fixed: "fix",
31373
- resolve: "resolve",
31374
- resolves: "resolve",
31375
- resolved: "resolve",
31376
- ref: "ref",
31377
- refs: "ref",
31378
- references: "ref"
31379
- };
31380
- /**
31381
- * The family a keyword belongs to.
31382
- *
31383
- * @remarks
31384
- * Total over both keyword sets by construction — see the module remarks for
31385
- * why an explicit record beats a `startsWith` heuristic. `close`, `closes`
31386
- * and `closed` map to `"close"`; the `fix` and `resolve` conjugations
31387
- * likewise; `ref`, `refs` and `references` map to `"ref"`. The evidence for
31388
- * the projection is downstream: categorized harvesters key maps by family,
31389
- * and each was hand-rolling this collapse.
31390
- *
31391
- * @public
31392
- */
31393
- const keywordFamily = (keyword) => FAMILIES[keyword];
31394
- //#endregion
31395
31458
  //#region ../silk-effects/dist/dev/pkg/changesets/utils/issue-refs.js
31396
31459
  /**
31397
31460
  * The output category each keyword family lands in.
@@ -31458,41 +31521,6 @@ function parseIssueReferences(commitMessage) {
31458
31521
  return references;
31459
31522
  }
31460
31523
  //#endregion
31461
- //#region ../silk-effects/dist/dev/pkg/changesets/utils/logger.js
31462
- /**
31463
- * Log a warning message.
31464
- *
31465
- * @remarks
31466
- * Detection order:
31467
- * 1. If `process.env.VITEST` is set, the message is silently discarded.
31468
- * 2. If `process.env.GITHUB_ACTIONS === "true"`, the message is emitted
31469
- * as a `::warning::` annotation.
31470
- * 3. Otherwise, `console.warn` is used.
31471
- *
31472
- * @param message - The warning message
31473
- * @param args - Additional arguments (concatenated with a space in CI mode)
31474
- *
31475
- * @example
31476
- * ```typescript
31477
- * import { logWarning } from "../utils/logger.js";
31478
- *
31479
- * logWarning("Duplicate dependency entry", "effect@3.19.0");
31480
- * // In CI: "::warning::Duplicate dependency entry effect@3.19.0"
31481
- * // Locally: console.warn("Duplicate dependency entry", "effect@3.19.0")
31482
- * ```
31483
- *
31484
- * @internal
31485
- */
31486
- function logWarning(message, ...args) {
31487
- /* v8 ignore start — environment-specific */
31488
- if (typeof process !== "undefined" && process.env.VITEST) return;
31489
- if (typeof process !== "undefined" && process.env.GITHUB_ACTIONS === "true") {
31490
- const text = args.length > 0 ? `${message} ${args.join(" ")}` : message;
31491
- console.warn(`::warning::${text}`);
31492
- } else console.warn(message, ...args);
31493
- /* v8 ignore stop */
31494
- }
31495
- //#endregion
31496
31524
  //#region ../silk-effects/dist/dev/pkg/changesets/utils/section-parser.js
31497
31525
  /**
31498
31526
  * Parse a changeset summary into structured sections.
@@ -31862,10 +31890,7 @@ function getReleaseLine(changeset, versionType, options) {
31862
31890
  if (changeset.commit) commitInfo = yield* (yield* GitHubService).getInfo({
31863
31891
  commit: changeset.commit,
31864
31892
  repo: options.repo
31865
- }).pipe(effect.Effect.flatMap((raw) => effect.Schema.decodeUnknownEffect(GitHubInfoSchema)(raw).pipe(effect.Effect.map(() => raw), effect.Effect.catch(() => effect.Effect.succeed(raw)))), effect.Effect.catch((error) => {
31866
- logWarning("Could not fetch GitHub info for commit:", changeset.commit ?? "", String(error));
31867
- return effect.Effect.succeed(null);
31868
- }));
31893
+ }).pipe(effect.Effect.flatMap((raw) => effect.Schema.decodeUnknownEffect(GitHubInfoSchema)(raw).pipe(effect.Effect.map(() => raw), effect.Effect.catch(() => effect.Effect.succeed(raw)))), effect.Effect.catch((error) => logWarning("Could not fetch GitHub info for commit:", changeset.commit ?? "", String(error)).pipe(effect.Effect.as(null))));
31869
31894
  const parsed = parseChangesetSections(changeset.summary);
31870
31895
  const firstLine = changeset.summary.split("\n")[0];
31871
31896
  const commitMsg = parseCommitMessage(firstLine);
@@ -31960,29 +31985,48 @@ function getReleaseLine(changeset, versionType, options) {
31960
31985
  */
31961
31986
  const MainLayer = GitHubService.layer;
31962
31987
  /**
31963
- * Changesets API `ChangelogFunctions` implementation.
31988
+ * Build a Changesets `ChangelogFunctions` implementation bound to a warning
31989
+ * mode.
31964
31990
  *
31965
- * This object satisfies the `ChangelogFunctions` contract from
31966
- * `\@changesets/types`. Each method validates options, runs the
31967
- * corresponding Effect program with the merged service layer, and
31968
- * returns a `Promise<string>`.
31991
+ * @remarks
31992
+ * This module is engine code and reads no environment; the host that installs
31993
+ * the functions (the `\@savvy-web/changelog` package under the changesets CLI)
31994
+ * decides the mode from its own `process.env` and passes it here. Each method
31995
+ * validates options, runs the corresponding Effect program with the merged
31996
+ * service layer and the chosen {@link ChangesetLogMode}, and returns a
31997
+ * `Promise<string>`.
31969
31998
  *
31970
- * @internal
31999
+ * @param options - The warning mode to provide
32000
+ * @returns A `ChangelogFunctions` object for `.changeset/config.json`
32001
+ *
32002
+ * @public
31971
32003
  */
31972
- const changelogFunctions$1 = {
31973
- getReleaseLine: async (changeset, versionType, options) => {
31974
- const program = effect.Effect.gen(function* () {
32004
+ function makeChangelogFunctions(options = {}) {
32005
+ const run = (program) => {
32006
+ const provided = program.pipe(effect.Effect.provide(MainLayer));
32007
+ return effect.Effect.runPromise(options.logMode === void 0 ? provided : provided.pipe(effect.Effect.provideService(ChangesetLogMode, options.logMode)));
32008
+ };
32009
+ return {
32010
+ getReleaseLine: async (changeset, versionType, options) => run(effect.Effect.gen(function* () {
31975
32011
  return yield* getReleaseLine(changeset, versionType, yield* validateChangesetOptions(options));
31976
- });
31977
- return effect.Effect.runPromise(program.pipe(effect.Effect.provide(MainLayer)));
31978
- },
31979
- getDependencyReleaseLine: async (changesets, dependenciesUpdated, options) => {
31980
- const program = effect.Effect.gen(function* () {
32012
+ })),
32013
+ getDependencyReleaseLine: async (changesets, dependenciesUpdated, options) => run(effect.Effect.gen(function* () {
31981
32014
  return yield* getDependencyReleaseLine(changesets, dependenciesUpdated, yield* validateChangesetOptions(options));
31982
- });
31983
- return effect.Effect.runPromise(program.pipe(effect.Effect.provide(MainLayer)));
31984
- }
31985
- };
32015
+ }))
32016
+ };
32017
+ }
32018
+ /**
32019
+ * Changesets API `ChangelogFunctions` implementation with the default warning
32020
+ * mode (`"stderr"`).
32021
+ *
32022
+ * @remarks
32023
+ * Equivalent to `makeChangelogFunctions()`. A host that runs under GitHub
32024
+ * Actions or a test runner should call {@link makeChangelogFunctions} with the
32025
+ * mode it detects instead.
32026
+ *
32027
+ * @internal
32028
+ */
32029
+ const changelogFunctions$1 = makeChangelogFunctions();
31986
32030
  //#endregion
31987
32031
  //#region ../silk-effects/dist/dev/pkg/changesets/api/changelog.js
31988
32032
  /**
@@ -32087,10 +32131,13 @@ var Changelog = class {
32087
32131
  * @param versionType - The semantic version bump type (`"major"`, `"minor"`, or `"patch"`)
32088
32132
  * @param options - Configuration object; must include `repo` in `"owner/repo"` format.
32089
32133
  * Pass `null` to use defaults (no GitHub link resolution).
32134
+ * @param logMode - How a failed GitHub lookup is reported (`"stderr"` when omitted);
32135
+ * the host reads its own environment and passes `"github"` / `"silent"` — this
32136
+ * engine never does. See `ChangesetLogMode`.
32090
32137
  * @returns A promise resolving to the formatted markdown string
32091
32138
  */
32092
- static async formatReleaseLine(changeset, versionType, options) {
32093
- return changelogFunctions$1.getReleaseLine(changeset, versionType, options);
32139
+ static async formatReleaseLine(changeset, versionType, options, logMode) {
32140
+ return makeChangelogFunctions(logMode === void 0 ? {} : { logMode }).getReleaseLine(changeset, versionType, options);
32094
32141
  }
32095
32142
  /**
32096
32143
  * Format dependency update release lines into a markdown table.
@@ -32105,11 +32152,13 @@ var Changelog = class {
32105
32152
  * old/new versions and package metadata
32106
32153
  * @param options - Configuration object; must include `repo` in `"owner/repo"` format.
32107
32154
  * Pass `null` to use defaults.
32155
+ * @param logMode - How a failed GitHub lookup is reported (`"stderr"` when omitted);
32156
+ * see {@link Changelog.formatReleaseLine}.
32108
32157
  * @returns A promise resolving to the formatted markdown string containing
32109
32158
  * the dependency update table
32110
32159
  */
32111
- static async formatDependencyReleaseLine(changesets, dependenciesUpdated, options) {
32112
- return changelogFunctions$1.getDependencyReleaseLine(changesets, dependenciesUpdated, options);
32160
+ static async formatDependencyReleaseLine(changesets, dependenciesUpdated, options, logMode) {
32161
+ return makeChangelogFunctions(logMode === void 0 ? {} : { logMode }).getDependencyReleaseLine(changesets, dependenciesUpdated, options);
32113
32162
  }
32114
32163
  };
32115
32164
  //#endregion
@@ -35637,7 +35686,7 @@ var GlobPattern = class GlobPattern extends effect.Schema.Class("GlobPattern")(e
35637
35686
  })));
35638
35687
  };
35639
35688
  //#endregion
35640
- //#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
35689
+ //#region ../../node_modules/.pnpm/@effected+walker@0.9.0_@effected+glob@0.6.0_effect@4.0.0-rc.115__effect@4.0.0-rc.115/node_modules/@effected/walker/Descend.js
35641
35690
  /**
35642
35691
  * Typed failure raised by `descend`: a directory mid-walk was unreadable
35643
35692
  * (under `onUnreadable: "fail"`), or the walk descended past `maxDepth`. Depth
@@ -35721,7 +35770,10 @@ const descendImpl = effect.Effect.fn("Walker.descend")(function* (pattern, optio
35721
35770
  reason: "unreadableDirectory",
35722
35771
  path: frame.relative
35723
35772
  }));
35724
- if (onUnreadable === "record") unreadable.push(frame.relative);
35773
+ if (onUnreadable === "record") unreadable.push({
35774
+ path: frame.relative,
35775
+ cause: error
35776
+ });
35725
35777
  return effect.Effect.succeed([]);
35726
35778
  }));
35727
35779
  for (const entry of entries) {
@@ -35755,7 +35807,7 @@ function descend(pattern, options) {
35755
35807
  return descendImpl(pattern, options);
35756
35808
  }
35757
35809
  //#endregion
35758
- //#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
35810
+ //#region ../../node_modules/.pnpm/@effected+walker@0.9.0_@effected+glob@0.6.0_effect@4.0.0-rc.115__effect@4.0.0-rc.115/node_modules/@effected/walker/Expand.js
35759
35811
  /**
35760
35812
  * Typed failure raised by {@link compileAndExpand}: the single error the
35761
35813
  * compile+expand recipe fails with, so a caller catches one tag rather than
@@ -40755,7 +40807,7 @@ function globSync(globInput, options) {
40755
40807
  return crawler ? formatPaths(crawler.sync(), relative) : [];
40756
40808
  }
40757
40809
  //#endregion
40758
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/identity.js
40810
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/identity.js
40759
40811
  var require_identity = /* @__PURE__ */ __commonJSMin(((exports) => {
40760
40812
  const ALIAS = Symbol.for("yaml.alias");
40761
40813
  const DOC = Symbol.for("yaml.document");
@@ -40805,7 +40857,7 @@ var require_identity = /* @__PURE__ */ __commonJSMin(((exports) => {
40805
40857
  exports.isSeq = isSeq;
40806
40858
  }));
40807
40859
  //#endregion
40808
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/visit.js
40860
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/visit.js
40809
40861
  var require_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
40810
40862
  var identity = require_identity();
40811
40863
  const BREAK = Symbol("break visit");
@@ -40996,7 +41048,7 @@ var require_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
40996
41048
  exports.visitAsync = visitAsync;
40997
41049
  }));
40998
41050
  //#endregion
40999
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/directives.js
41051
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/directives.js
41000
41052
  var require_directives = /* @__PURE__ */ __commonJSMin(((exports) => {
41001
41053
  var identity = require_identity();
41002
41054
  var visit = require_visit();
@@ -41160,7 +41212,7 @@ var require_directives = /* @__PURE__ */ __commonJSMin(((exports) => {
41160
41212
  exports.Directives = Directives;
41161
41213
  }));
41162
41214
  //#endregion
41163
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/anchors.js
41215
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/anchors.js
41164
41216
  var require_anchors = /* @__PURE__ */ __commonJSMin(((exports) => {
41165
41217
  var identity = require_identity();
41166
41218
  var visit = require_visit();
@@ -41227,7 +41279,7 @@ var require_anchors = /* @__PURE__ */ __commonJSMin(((exports) => {
41227
41279
  exports.findNewAnchor = findNewAnchor;
41228
41280
  }));
41229
41281
  //#endregion
41230
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/applyReviver.js
41282
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/applyReviver.js
41231
41283
  var require_applyReviver = /* @__PURE__ */ __commonJSMin(((exports) => {
41232
41284
  /**
41233
41285
  * Applies the JSON.parse reviver algorithm as defined in the ECMA-262 spec,
@@ -41269,7 +41321,7 @@ var require_applyReviver = /* @__PURE__ */ __commonJSMin(((exports) => {
41269
41321
  exports.applyReviver = applyReviver;
41270
41322
  }));
41271
41323
  //#endregion
41272
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/toJS.js
41324
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/toJS.js
41273
41325
  var require_toJS = /* @__PURE__ */ __commonJSMin(((exports) => {
41274
41326
  var identity = require_identity();
41275
41327
  /**
@@ -41306,7 +41358,7 @@ var require_toJS = /* @__PURE__ */ __commonJSMin(((exports) => {
41306
41358
  exports.toJS = toJS;
41307
41359
  }));
41308
41360
  //#endregion
41309
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Node.js
41361
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Node.js
41310
41362
  var require_Node = /* @__PURE__ */ __commonJSMin(((exports) => {
41311
41363
  var applyReviver = require_applyReviver();
41312
41364
  var identity = require_identity();
@@ -41340,7 +41392,7 @@ var require_Node = /* @__PURE__ */ __commonJSMin(((exports) => {
41340
41392
  exports.NodeBase = NodeBase;
41341
41393
  }));
41342
41394
  //#endregion
41343
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Alias.js
41395
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Alias.js
41344
41396
  var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
41345
41397
  var anchors = require_anchors();
41346
41398
  var visit = require_visit();
@@ -41375,29 +41427,31 @@ var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
41375
41427
  if (node === this) break;
41376
41428
  if (node.anchor === this.source) found = node;
41377
41429
  }
41430
+ if (found && ctx) {
41431
+ const { anchors, doc, maxAliasCount } = ctx;
41432
+ let data = anchors.get(found);
41433
+ if (!data) {
41434
+ toJS.toJS(found, null, ctx);
41435
+ data = anchors.get(found);
41436
+ }
41437
+ /* istanbul ignore if */
41438
+ if (data?.res === void 0) throw new ReferenceError("This should not happen: Alias anchor was not resolved?");
41439
+ if (maxAliasCount >= 0) {
41440
+ data.count += 1;
41441
+ if (data.aliasCount === 0) data.aliasCount = getAliasCount(doc, found, anchors);
41442
+ if (data.count * data.aliasCount > maxAliasCount) throw new ReferenceError("Excessive alias count indicates a resource exhaustion attack");
41443
+ }
41444
+ }
41378
41445
  return found;
41379
41446
  }
41380
41447
  toJSON(_arg, ctx) {
41381
41448
  if (!ctx) return { source: this.source };
41382
- const { anchors, doc, maxAliasCount } = ctx;
41383
- const source = this.resolve(doc, ctx);
41449
+ const source = this.resolve(ctx.doc, ctx);
41384
41450
  if (!source) {
41385
41451
  const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;
41386
41452
  throw new ReferenceError(msg);
41387
41453
  }
41388
- let data = anchors.get(source);
41389
- if (!data) {
41390
- toJS.toJS(source, null, ctx);
41391
- data = anchors.get(source);
41392
- }
41393
- /* istanbul ignore if */
41394
- if (data?.res === void 0) throw new ReferenceError("This should not happen: Alias anchor was not resolved?");
41395
- if (maxAliasCount >= 0) {
41396
- data.count += 1;
41397
- if (data.aliasCount === 0) data.aliasCount = getAliasCount(doc, source, anchors);
41398
- if (data.count * data.aliasCount > maxAliasCount) throw new ReferenceError("Excessive alias count indicates a resource exhaustion attack");
41399
- }
41400
- return data.res;
41454
+ return ctx.anchors.get(source).res;
41401
41455
  }
41402
41456
  toString(ctx, _onComment, _onChompKeep) {
41403
41457
  const src = `*${this.source}`;
@@ -41434,7 +41488,7 @@ var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
41434
41488
  exports.Alias = Alias;
41435
41489
  }));
41436
41490
  //#endregion
41437
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Scalar.js
41491
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Scalar.js
41438
41492
  var require_Scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
41439
41493
  var identity = require_identity();
41440
41494
  var Node = require_Node();
@@ -41461,7 +41515,7 @@ var require_Scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
41461
41515
  exports.isScalarValue = isScalarValue;
41462
41516
  }));
41463
41517
  //#endregion
41464
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/createNode.js
41518
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/createNode.js
41465
41519
  var require_createNode = /* @__PURE__ */ __commonJSMin(((exports) => {
41466
41520
  var Alias = require_Alias();
41467
41521
  var identity = require_identity();
@@ -41524,7 +41578,7 @@ var require_createNode = /* @__PURE__ */ __commonJSMin(((exports) => {
41524
41578
  exports.createNode = createNode;
41525
41579
  }));
41526
41580
  //#endregion
41527
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Collection.js
41581
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Collection.js
41528
41582
  var require_Collection = /* @__PURE__ */ __commonJSMin(((exports) => {
41529
41583
  var createNode = require_createNode();
41530
41584
  var identity = require_identity();
@@ -41645,7 +41699,7 @@ var require_Collection = /* @__PURE__ */ __commonJSMin(((exports) => {
41645
41699
  exports.isEmptyPath = isEmptyPath;
41646
41700
  }));
41647
41701
  //#endregion
41648
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyComment.js
41702
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyComment.js
41649
41703
  var require_stringifyComment = /* @__PURE__ */ __commonJSMin(((exports) => {
41650
41704
  /**
41651
41705
  * Stringifies a comment.
@@ -41665,7 +41719,7 @@ var require_stringifyComment = /* @__PURE__ */ __commonJSMin(((exports) => {
41665
41719
  exports.stringifyComment = stringifyComment;
41666
41720
  }));
41667
41721
  //#endregion
41668
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/foldFlowLines.js
41722
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/foldFlowLines.js
41669
41723
  var require_foldFlowLines = /* @__PURE__ */ __commonJSMin(((exports) => {
41670
41724
  const FOLD_FLOW = "flow";
41671
41725
  const FOLD_BLOCK = "block";
@@ -41785,7 +41839,7 @@ var require_foldFlowLines = /* @__PURE__ */ __commonJSMin(((exports) => {
41785
41839
  exports.foldFlowLines = foldFlowLines;
41786
41840
  }));
41787
41841
  //#endregion
41788
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyString.js
41842
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyString.js
41789
41843
  var require_stringifyString = /* @__PURE__ */ __commonJSMin(((exports) => {
41790
41844
  var Scalar = require_Scalar();
41791
41845
  var foldFlowLines = require_foldFlowLines();
@@ -42009,7 +42063,7 @@ var require_stringifyString = /* @__PURE__ */ __commonJSMin(((exports) => {
42009
42063
  exports.stringifyString = stringifyString;
42010
42064
  }));
42011
42065
  //#endregion
42012
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringify.js
42066
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringify.js
42013
42067
  var require_stringify$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42014
42068
  var anchors = require_anchors();
42015
42069
  var identity = require_identity();
@@ -42117,7 +42171,7 @@ var require_stringify$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42117
42171
  exports.stringify = stringify;
42118
42172
  }));
42119
42173
  //#endregion
42120
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyPair.js
42174
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyPair.js
42121
42175
  var require_stringifyPair = /* @__PURE__ */ __commonJSMin(((exports) => {
42122
42176
  var identity = require_identity();
42123
42177
  var Scalar = require_Scalar();
@@ -42214,7 +42268,7 @@ var require_stringifyPair = /* @__PURE__ */ __commonJSMin(((exports) => {
42214
42268
  exports.stringifyPair = stringifyPair;
42215
42269
  }));
42216
42270
  //#endregion
42217
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/log.js
42271
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/log.js
42218
42272
  var require_log = /* @__PURE__ */ __commonJSMin(((exports) => {
42219
42273
  var node_process$3 = require("process");
42220
42274
  function debug(logLevel, ...messages) {
@@ -42230,7 +42284,7 @@ var require_log = /* @__PURE__ */ __commonJSMin(((exports) => {
42230
42284
  exports.warn = warn;
42231
42285
  }));
42232
42286
  //#endregion
42233
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/merge.js
42287
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/merge.js
42234
42288
  var require_merge = /* @__PURE__ */ __commonJSMin(((exports) => {
42235
42289
  var identity = require_identity();
42236
42290
  var Scalar = require_Scalar();
@@ -42273,7 +42327,7 @@ var require_merge = /* @__PURE__ */ __commonJSMin(((exports) => {
42273
42327
  exports.merge = merge;
42274
42328
  }));
42275
42329
  //#endregion
42276
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/addPairToJSMap.js
42330
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/addPairToJSMap.js
42277
42331
  var require_addPairToJSMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42278
42332
  var log = require_log();
42279
42333
  var merge = require_merge();
@@ -42324,7 +42378,7 @@ var require_addPairToJSMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42324
42378
  exports.addPairToJSMap = addPairToJSMap;
42325
42379
  }));
42326
42380
  //#endregion
42327
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Pair.js
42381
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Pair.js
42328
42382
  var require_Pair = /* @__PURE__ */ __commonJSMin(((exports) => {
42329
42383
  var createNode = require_createNode();
42330
42384
  var stringifyPair = require_stringifyPair();
@@ -42357,7 +42411,7 @@ var require_Pair = /* @__PURE__ */ __commonJSMin(((exports) => {
42357
42411
  exports.createPair = createPair;
42358
42412
  }));
42359
42413
  //#endregion
42360
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyCollection.js
42414
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyCollection.js
42361
42415
  var require_stringifyCollection = /* @__PURE__ */ __commonJSMin(((exports) => {
42362
42416
  var identity = require_identity();
42363
42417
  var stringify = require_stringify$1();
@@ -42475,7 +42529,7 @@ var require_stringifyCollection = /* @__PURE__ */ __commonJSMin(((exports) => {
42475
42529
  exports.stringifyCollection = stringifyCollection;
42476
42530
  }));
42477
42531
  //#endregion
42478
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLMap.js
42532
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/YAMLMap.js
42479
42533
  var require_YAMLMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42480
42534
  var stringifyCollection = require_stringifyCollection();
42481
42535
  var addPairToJSMap = require_addPairToJSMap();
@@ -42584,7 +42638,7 @@ var require_YAMLMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42584
42638
  exports.findPair = findPair;
42585
42639
  }));
42586
42640
  //#endregion
42587
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/map.js
42641
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/map.js
42588
42642
  var require_map = /* @__PURE__ */ __commonJSMin(((exports) => {
42589
42643
  var identity = require_identity();
42590
42644
  var YAMLMap = require_YAMLMap();
@@ -42601,7 +42655,7 @@ var require_map = /* @__PURE__ */ __commonJSMin(((exports) => {
42601
42655
  };
42602
42656
  }));
42603
42657
  //#endregion
42604
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLSeq.js
42658
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/YAMLSeq.js
42605
42659
  var require_YAMLSeq = /* @__PURE__ */ __commonJSMin(((exports) => {
42606
42660
  var createNode = require_createNode();
42607
42661
  var stringifyCollection = require_stringifyCollection();
@@ -42707,7 +42761,7 @@ var require_YAMLSeq = /* @__PURE__ */ __commonJSMin(((exports) => {
42707
42761
  exports.YAMLSeq = YAMLSeq;
42708
42762
  }));
42709
42763
  //#endregion
42710
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/seq.js
42764
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/seq.js
42711
42765
  var require_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
42712
42766
  var identity = require_identity();
42713
42767
  var YAMLSeq = require_YAMLSeq();
@@ -42724,7 +42778,7 @@ var require_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
42724
42778
  };
42725
42779
  }));
42726
42780
  //#endregion
42727
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/string.js
42781
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/string.js
42728
42782
  var require_string = /* @__PURE__ */ __commonJSMin(((exports) => {
42729
42783
  var stringifyString = require_stringifyString();
42730
42784
  exports.string = {
@@ -42739,7 +42793,7 @@ var require_string = /* @__PURE__ */ __commonJSMin(((exports) => {
42739
42793
  };
42740
42794
  }));
42741
42795
  //#endregion
42742
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/null.js
42796
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/null.js
42743
42797
  var require_null = /* @__PURE__ */ __commonJSMin(((exports) => {
42744
42798
  var Scalar = require_Scalar();
42745
42799
  const nullTag = {
@@ -42754,7 +42808,7 @@ var require_null = /* @__PURE__ */ __commonJSMin(((exports) => {
42754
42808
  exports.nullTag = nullTag;
42755
42809
  }));
42756
42810
  //#endregion
42757
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/bool.js
42811
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/bool.js
42758
42812
  var require_bool$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42759
42813
  var Scalar = require_Scalar();
42760
42814
  const boolTag = {
@@ -42773,7 +42827,7 @@ var require_bool$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42773
42827
  exports.boolTag = boolTag;
42774
42828
  }));
42775
42829
  //#endregion
42776
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyNumber.js
42830
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyNumber.js
42777
42831
  var require_stringifyNumber = /* @__PURE__ */ __commonJSMin(((exports) => {
42778
42832
  function stringifyNumber({ format, minFractionDigits, tag, value }) {
42779
42833
  if (typeof value === "bigint") return String(value);
@@ -42794,7 +42848,7 @@ var require_stringifyNumber = /* @__PURE__ */ __commonJSMin(((exports) => {
42794
42848
  exports.stringifyNumber = stringifyNumber;
42795
42849
  }));
42796
42850
  //#endregion
42797
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/float.js
42851
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/float.js
42798
42852
  var require_float$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42799
42853
  var Scalar = require_Scalar();
42800
42854
  var stringifyNumber = require_stringifyNumber();
@@ -42835,7 +42889,7 @@ var require_float$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42835
42889
  exports.floatNaN = floatNaN;
42836
42890
  }));
42837
42891
  //#endregion
42838
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/int.js
42892
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/int.js
42839
42893
  var require_int$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42840
42894
  var stringifyNumber = require_stringifyNumber();
42841
42895
  const intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -42876,7 +42930,7 @@ var require_int$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42876
42930
  exports.intOct = intOct;
42877
42931
  }));
42878
42932
  //#endregion
42879
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/schema.js
42933
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/schema.js
42880
42934
  var require_schema$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
42881
42935
  var map = require_map();
42882
42936
  var _null = require_null();
@@ -42900,7 +42954,7 @@ var require_schema$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
42900
42954
  ];
42901
42955
  }));
42902
42956
  //#endregion
42903
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/json/schema.js
42957
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/json/schema.js
42904
42958
  var require_schema$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42905
42959
  var Scalar = require_Scalar();
42906
42960
  var map = require_map();
@@ -42962,7 +43016,7 @@ var require_schema$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42962
43016
  });
42963
43017
  }));
42964
43018
  //#endregion
42965
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/binary.js
43019
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/binary.js
42966
43020
  var require_binary = /* @__PURE__ */ __commonJSMin(((exports) => {
42967
43021
  var node_buffer = require("buffer");
42968
43022
  var Scalar = require_Scalar();
@@ -43018,7 +43072,7 @@ var require_binary = /* @__PURE__ */ __commonJSMin(((exports) => {
43018
43072
  };
43019
43073
  }));
43020
43074
  //#endregion
43021
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
43075
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
43022
43076
  var require_pairs = /* @__PURE__ */ __commonJSMin(((exports) => {
43023
43077
  var identity = require_identity();
43024
43078
  var Pair = require_Pair();
@@ -43079,7 +43133,7 @@ var require_pairs = /* @__PURE__ */ __commonJSMin(((exports) => {
43079
43133
  exports.resolvePairs = resolvePairs;
43080
43134
  }));
43081
43135
  //#endregion
43082
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/omap.js
43136
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/omap.js
43083
43137
  var require_omap = /* @__PURE__ */ __commonJSMin(((exports) => {
43084
43138
  var identity = require_identity();
43085
43139
  var toJS = require_toJS();
@@ -43144,7 +43198,7 @@ var require_omap = /* @__PURE__ */ __commonJSMin(((exports) => {
43144
43198
  exports.omap = omap;
43145
43199
  }));
43146
43200
  //#endregion
43147
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/bool.js
43201
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/bool.js
43148
43202
  var require_bool = /* @__PURE__ */ __commonJSMin(((exports) => {
43149
43203
  var Scalar = require_Scalar();
43150
43204
  function boolStringify({ value, source }, ctx) {
@@ -43171,7 +43225,7 @@ var require_bool = /* @__PURE__ */ __commonJSMin(((exports) => {
43171
43225
  exports.trueTag = trueTag;
43172
43226
  }));
43173
43227
  //#endregion
43174
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/float.js
43228
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/float.js
43175
43229
  var require_float = /* @__PURE__ */ __commonJSMin(((exports) => {
43176
43230
  var Scalar = require_Scalar();
43177
43231
  var stringifyNumber = require_stringifyNumber();
@@ -43215,7 +43269,7 @@ var require_float = /* @__PURE__ */ __commonJSMin(((exports) => {
43215
43269
  exports.floatNaN = floatNaN;
43216
43270
  }));
43217
43271
  //#endregion
43218
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/int.js
43272
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/int.js
43219
43273
  var require_int = /* @__PURE__ */ __commonJSMin(((exports) => {
43220
43274
  var stringifyNumber = require_stringifyNumber();
43221
43275
  const intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -43288,7 +43342,7 @@ var require_int = /* @__PURE__ */ __commonJSMin(((exports) => {
43288
43342
  exports.intOct = intOct;
43289
43343
  }));
43290
43344
  //#endregion
43291
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/set.js
43345
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/set.js
43292
43346
  var require_set = /* @__PURE__ */ __commonJSMin(((exports) => {
43293
43347
  var identity = require_identity();
43294
43348
  var Pair = require_Pair();
@@ -43357,7 +43411,7 @@ var require_set = /* @__PURE__ */ __commonJSMin(((exports) => {
43357
43411
  exports.set = set;
43358
43412
  }));
43359
43413
  //#endregion
43360
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
43414
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
43361
43415
  var require_timestamp = /* @__PURE__ */ __commonJSMin(((exports) => {
43362
43416
  var stringifyNumber = require_stringifyNumber();
43363
43417
  /** Internal types handle bigint as number, because TS can't figure it out. */
@@ -43440,7 +43494,7 @@ var require_timestamp = /* @__PURE__ */ __commonJSMin(((exports) => {
43440
43494
  exports.timestamp = timestamp;
43441
43495
  }));
43442
43496
  //#endregion
43443
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/schema.js
43497
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/schema.js
43444
43498
  var require_schema = /* @__PURE__ */ __commonJSMin(((exports) => {
43445
43499
  var map = require_map();
43446
43500
  var _null = require_null();
@@ -43480,7 +43534,7 @@ var require_schema = /* @__PURE__ */ __commonJSMin(((exports) => {
43480
43534
  ];
43481
43535
  }));
43482
43536
  //#endregion
43483
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/tags.js
43537
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/tags.js
43484
43538
  var require_tags = /* @__PURE__ */ __commonJSMin(((exports) => {
43485
43539
  var map = require_map();
43486
43540
  var _null = require_null();
@@ -43566,7 +43620,7 @@ var require_tags = /* @__PURE__ */ __commonJSMin(((exports) => {
43566
43620
  exports.getTags = getTags;
43567
43621
  }));
43568
43622
  //#endregion
43569
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/Schema.js
43623
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/Schema.js
43570
43624
  var require_Schema = /* @__PURE__ */ __commonJSMin(((exports) => {
43571
43625
  var identity = require_identity();
43572
43626
  var map = require_map();
@@ -43594,7 +43648,7 @@ var require_Schema = /* @__PURE__ */ __commonJSMin(((exports) => {
43594
43648
  };
43595
43649
  }));
43596
43650
  //#endregion
43597
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyDocument.js
43651
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyDocument.js
43598
43652
  var require_stringifyDocument = /* @__PURE__ */ __commonJSMin(((exports) => {
43599
43653
  var identity = require_identity();
43600
43654
  var stringify = require_stringify$1();
@@ -43656,7 +43710,7 @@ var require_stringifyDocument = /* @__PURE__ */ __commonJSMin(((exports) => {
43656
43710
  exports.stringifyDocument = stringifyDocument;
43657
43711
  }));
43658
43712
  //#endregion
43659
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/Document.js
43713
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/Document.js
43660
43714
  var require_Document = /* @__PURE__ */ __commonJSMin(((exports) => {
43661
43715
  var Alias = require_Alias();
43662
43716
  var Collection = require_Collection();
@@ -43937,7 +43991,7 @@ var require_Document = /* @__PURE__ */ __commonJSMin(((exports) => {
43937
43991
  exports.Document = Document;
43938
43992
  }));
43939
43993
  //#endregion
43940
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/errors.js
43994
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/errors.js
43941
43995
  var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => {
43942
43996
  var YAMLError = class extends Error {
43943
43997
  constructor(name, pos, code, message) {
@@ -43990,7 +44044,7 @@ var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => {
43990
44044
  exports.prettifyError = prettifyError;
43991
44045
  }));
43992
44046
  //#endregion
43993
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-props.js
44047
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-props.js
43994
44048
  var require_resolve_props = /* @__PURE__ */ __commonJSMin(((exports) => {
43995
44049
  function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
43996
44050
  let spaceBefore = false;
@@ -44097,7 +44151,7 @@ var require_resolve_props = /* @__PURE__ */ __commonJSMin(((exports) => {
44097
44151
  exports.resolveProps = resolveProps;
44098
44152
  }));
44099
44153
  //#endregion
44100
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-contains-newline.js
44154
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-contains-newline.js
44101
44155
  var require_util_contains_newline = /* @__PURE__ */ __commonJSMin(((exports) => {
44102
44156
  function containsNewline(key) {
44103
44157
  if (!key) return null;
@@ -44126,7 +44180,7 @@ var require_util_contains_newline = /* @__PURE__ */ __commonJSMin(((exports) =>
44126
44180
  exports.containsNewline = containsNewline;
44127
44181
  }));
44128
44182
  //#endregion
44129
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-flow-indent-check.js
44183
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-flow-indent-check.js
44130
44184
  var require_util_flow_indent_check = /* @__PURE__ */ __commonJSMin(((exports) => {
44131
44185
  var utilContainsNewline = require_util_contains_newline();
44132
44186
  function flowIndentCheck(indent, fc, onError) {
@@ -44138,7 +44192,7 @@ var require_util_flow_indent_check = /* @__PURE__ */ __commonJSMin(((exports) =>
44138
44192
  exports.flowIndentCheck = flowIndentCheck;
44139
44193
  }));
44140
44194
  //#endregion
44141
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-map-includes.js
44195
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-map-includes.js
44142
44196
  var require_util_map_includes = /* @__PURE__ */ __commonJSMin(((exports) => {
44143
44197
  var identity = require_identity();
44144
44198
  function mapIncludes(ctx, items, search) {
@@ -44150,7 +44204,7 @@ var require_util_map_includes = /* @__PURE__ */ __commonJSMin(((exports) => {
44150
44204
  exports.mapIncludes = mapIncludes;
44151
44205
  }));
44152
44206
  //#endregion
44153
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-map.js
44207
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-map.js
44154
44208
  var require_resolve_block_map = /* @__PURE__ */ __commonJSMin(((exports) => {
44155
44209
  var Pair = require_Pair();
44156
44210
  var YAMLMap = require_YAMLMap();
@@ -44238,7 +44292,7 @@ var require_resolve_block_map = /* @__PURE__ */ __commonJSMin(((exports) => {
44238
44292
  exports.resolveBlockMap = resolveBlockMap;
44239
44293
  }));
44240
44294
  //#endregion
44241
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-seq.js
44295
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-seq.js
44242
44296
  var require_resolve_block_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
44243
44297
  var YAMLSeq = require_YAMLSeq();
44244
44298
  var resolveProps = require_resolve_props();
@@ -44283,7 +44337,7 @@ var require_resolve_block_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
44283
44337
  exports.resolveBlockSeq = resolveBlockSeq;
44284
44338
  }));
44285
44339
  //#endregion
44286
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-end.js
44340
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-end.js
44287
44341
  var require_resolve_end = /* @__PURE__ */ __commonJSMin(((exports) => {
44288
44342
  function resolveEnd(end, offset, reqSpace, onError) {
44289
44343
  let comment = "";
@@ -44321,7 +44375,7 @@ var require_resolve_end = /* @__PURE__ */ __commonJSMin(((exports) => {
44321
44375
  exports.resolveEnd = resolveEnd;
44322
44376
  }));
44323
44377
  //#endregion
44324
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-collection.js
44378
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-flow-collection.js
44325
44379
  var require_resolve_flow_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
44326
44380
  var identity = require_identity();
44327
44381
  var Pair = require_Pair();
@@ -44484,7 +44538,7 @@ var require_resolve_flow_collection = /* @__PURE__ */ __commonJSMin(((exports) =
44484
44538
  exports.resolveFlowCollection = resolveFlowCollection;
44485
44539
  }));
44486
44540
  //#endregion
44487
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-collection.js
44541
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-collection.js
44488
44542
  var require_compose_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
44489
44543
  var identity = require_identity();
44490
44544
  var Scalar = require_Scalar();
@@ -44536,7 +44590,7 @@ var require_compose_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
44536
44590
  exports.composeCollection = composeCollection;
44537
44591
  }));
44538
44592
  //#endregion
44539
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-scalar.js
44593
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-scalar.js
44540
44594
  var require_resolve_block_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44541
44595
  var Scalar = require_Scalar();
44542
44596
  function resolveBlockScalar(ctx, scalar, onError) {
@@ -44713,7 +44767,7 @@ var require_resolve_block_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44713
44767
  exports.resolveBlockScalar = resolveBlockScalar;
44714
44768
  }));
44715
44769
  //#endregion
44716
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-scalar.js
44770
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-flow-scalar.js
44717
44771
  var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44718
44772
  var Scalar = require_Scalar();
44719
44773
  var resolveEnd = require_resolve_end();
@@ -44783,40 +44837,41 @@ var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44783
44837
  case "`": badChar = `reserved character ${source[0]}`;
44784
44838
  }
44785
44839
  if (badChar) onError(0, "BAD_SCALAR_START", `Plain value cannot start with ${badChar}`);
44786
- return foldLines(source);
44840
+ return unfoldLines(source);
44787
44841
  }
44788
44842
  function singleQuotedValue(source, onError) {
44789
44843
  if (source[source.length - 1] !== "'" || source.length === 1) onError(source.length, "MISSING_CHAR", "Missing closing 'quote");
44790
- return foldLines(source.slice(1, -1)).replace(/''/g, "'");
44844
+ return unfoldLines(source.slice(1, -1)).replace(/''/g, "'");
44791
44845
  }
44792
- function foldLines(source) {
44846
+ function unfoldLines(source) {
44847
+ const line = /(.*?)\r?\n/sy;
44848
+ let match = line.exec(source);
44849
+ if (!match) return source;
44793
44850
  /**
44794
- * The negative lookbehind here and in the `re` RegExp is to
44851
+ * The negative lookbehinds in these RegExps are to
44795
44852
  * prevent causing a polynomial search time in certain cases.
44796
44853
  *
44797
- * The try-catch is for Safari, which doesn't support this yet:
44854
+ * The try-catch is for Safari < 16.4 and other old browsers:
44798
44855
  * https://caniuse.com/js-regexp-lookbehind
44799
44856
  */
44800
- let first, line;
44857
+ let trimEnd, trimBoth;
44801
44858
  try {
44802
- first = new RegExp("(.*?)(?<![ ])[ ]*\r?\n", "sy");
44803
- line = new RegExp("[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?\n", "sy");
44859
+ trimEnd = new RegExp("(?<![ ])[ ]+$");
44860
+ trimBoth = new RegExp("^[ ]+|(?<![ ])[ ]+$", "g");
44804
44861
  } catch {
44805
- first = /(.*?)[ \t]*\r?\n/sy;
44806
- line = /[ \t]*(.*?)[ \t]*\r?\n/sy;
44862
+ trimEnd = /[ \t]+$/;
44863
+ trimBoth = /^[ \t]+|[ \t]+$/g;
44807
44864
  }
44808
- let match = first.exec(source);
44809
- if (!match) return source;
44810
- let res = match[1];
44865
+ let res = match[1].replace(trimEnd, "");
44811
44866
  let sep = " ";
44812
- let pos = first.lastIndex;
44813
- line.lastIndex = pos;
44867
+ let pos = line.lastIndex;
44814
44868
  while (match = line.exec(source)) {
44815
- if (match[1] === "") {
44869
+ const lm = match[1].replace(trimBoth, "");
44870
+ if (lm === "") {
44816
44871
  if (sep === "\n") res += sep;
44817
44872
  else sep = "\n";
44818
44873
  } else {
44819
- res += sep + match[1];
44874
+ res += sep + lm;
44820
44875
  sep = " ";
44821
44876
  }
44822
44877
  pos = line.lastIndex;
@@ -44917,7 +44972,7 @@ var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44917
44972
  exports.resolveFlowScalar = resolveFlowScalar;
44918
44973
  }));
44919
44974
  //#endregion
44920
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-scalar.js
44975
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-scalar.js
44921
44976
  var require_compose_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44922
44977
  var identity = require_identity();
44923
44978
  var Scalar = require_Scalar();
@@ -44978,7 +45033,7 @@ var require_compose_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44978
45033
  exports.composeScalar = composeScalar;
44979
45034
  }));
44980
45035
  //#endregion
44981
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-empty-scalar-position.js
45036
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-empty-scalar-position.js
44982
45037
  var require_util_empty_scalar_position = /* @__PURE__ */ __commonJSMin(((exports) => {
44983
45038
  function emptyScalarPosition(offset, before, pos) {
44984
45039
  if (before) {
@@ -45005,7 +45060,7 @@ var require_util_empty_scalar_position = /* @__PURE__ */ __commonJSMin(((exports
45005
45060
  exports.emptyScalarPosition = emptyScalarPosition;
45006
45061
  }));
45007
45062
  //#endregion
45008
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-node.js
45063
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-node.js
45009
45064
  var require_compose_node = /* @__PURE__ */ __commonJSMin(((exports) => {
45010
45065
  var Alias = require_Alias();
45011
45066
  var identity = require_identity();
@@ -45096,7 +45151,7 @@ var require_compose_node = /* @__PURE__ */ __commonJSMin(((exports) => {
45096
45151
  exports.composeNode = composeNode;
45097
45152
  }));
45098
45153
  //#endregion
45099
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-doc.js
45154
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-doc.js
45100
45155
  var require_compose_doc = /* @__PURE__ */ __commonJSMin(((exports) => {
45101
45156
  var Document = require_Document();
45102
45157
  var composeNode = require_compose_node();
@@ -45138,7 +45193,7 @@ var require_compose_doc = /* @__PURE__ */ __commonJSMin(((exports) => {
45138
45193
  exports.composeDoc = composeDoc;
45139
45194
  }));
45140
45195
  //#endregion
45141
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/composer.js
45196
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/composer.js
45142
45197
  var require_composer = /* @__PURE__ */ __commonJSMin(((exports) => {
45143
45198
  var node_process$2 = require("process");
45144
45199
  var directives = require_directives();
@@ -45336,7 +45391,7 @@ var require_composer = /* @__PURE__ */ __commonJSMin(((exports) => {
45336
45391
  exports.Composer = Composer;
45337
45392
  }));
45338
45393
  //#endregion
45339
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-scalar.js
45394
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-scalar.js
45340
45395
  var require_cst_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
45341
45396
  var resolveBlockScalar = require_resolve_block_scalar();
45342
45397
  var resolveFlowScalar = require_resolve_flow_scalar();
@@ -45603,7 +45658,7 @@ var require_cst_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
45603
45658
  exports.setScalarValue = setScalarValue;
45604
45659
  }));
45605
45660
  //#endregion
45606
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-stringify.js
45661
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-stringify.js
45607
45662
  var require_cst_stringify = /* @__PURE__ */ __commonJSMin(((exports) => {
45608
45663
  /**
45609
45664
  * Stringify a CST document, token, or collection item
@@ -45654,7 +45709,7 @@ var require_cst_stringify = /* @__PURE__ */ __commonJSMin(((exports) => {
45654
45709
  exports.stringify = stringify;
45655
45710
  }));
45656
45711
  //#endregion
45657
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-visit.js
45712
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-visit.js
45658
45713
  var require_cst_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
45659
45714
  const BREAK = Symbol("break visit");
45660
45715
  const SKIP = Symbol("skip children");
@@ -45745,7 +45800,7 @@ var require_cst_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
45745
45800
  exports.visit = visit;
45746
45801
  }));
45747
45802
  //#endregion
45748
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst.js
45803
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst.js
45749
45804
  var require_cst = /* @__PURE__ */ __commonJSMin(((exports) => {
45750
45805
  var cstScalar = require_cst_scalar();
45751
45806
  var cstStringify = require_cst_stringify();
@@ -45824,7 +45879,7 @@ var require_cst = /* @__PURE__ */ __commonJSMin(((exports) => {
45824
45879
  exports.tokenType = tokenType;
45825
45880
  }));
45826
45881
  //#endregion
45827
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/lexer.js
45882
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/lexer.js
45828
45883
  var require_lexer = /* @__PURE__ */ __commonJSMin(((exports) => {
45829
45884
  var cst = require_cst();
45830
45885
  function isEmpty(ch) {
@@ -46357,7 +46412,7 @@ var require_lexer = /* @__PURE__ */ __commonJSMin(((exports) => {
46357
46412
  exports.Lexer = Lexer;
46358
46413
  }));
46359
46414
  //#endregion
46360
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/line-counter.js
46415
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/line-counter.js
46361
46416
  var require_line_counter = /* @__PURE__ */ __commonJSMin(((exports) => {
46362
46417
  /**
46363
46418
  * Tracks newlines during parsing in order to provide an efficient API for
@@ -46404,7 +46459,7 @@ var require_line_counter = /* @__PURE__ */ __commonJSMin(((exports) => {
46404
46459
  exports.LineCounter = LineCounter;
46405
46460
  }));
46406
46461
  //#endregion
46407
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/parser.js
46462
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/parser.js
46408
46463
  var require_parser = /* @__PURE__ */ __commonJSMin(((exports) => {
46409
46464
  var node_process$1 = require("process");
46410
46465
  var cst = require_cst();
@@ -47270,7 +47325,7 @@ var require_parser = /* @__PURE__ */ __commonJSMin(((exports) => {
47270
47325
  exports.Parser = Parser;
47271
47326
  }));
47272
47327
  //#endregion
47273
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/public-api.js
47328
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/public-api.js
47274
47329
  var require_public_api = /* @__PURE__ */ __commonJSMin(((exports) => {
47275
47330
  var composer = require_composer();
47276
47331
  var Document = require_Document();
@@ -47359,7 +47414,7 @@ var require_public_api = /* @__PURE__ */ __commonJSMin(((exports) => {
47359
47414
  exports.stringify = stringify;
47360
47415
  }));
47361
47416
  //#endregion
47362
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/index.js
47417
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/index.js
47363
47418
  var require_dist = /* @__PURE__ */ __commonJSMin(((exports) => {
47364
47419
  var composer = require_composer();
47365
47420
  var Document = require_Document();
@@ -55752,6 +55807,7 @@ var changesets_exports = /* @__PURE__ */ __exportAll({
55752
55807
  ChangelogTransformer: () => ChangelogTransformer,
55753
55808
  ChangesetIOError: () => ChangesetIOError,
55754
55809
  ChangesetLinter: () => ChangesetLinter,
55810
+ ChangesetLogMode: () => ChangesetLogMode,
55755
55811
  ChangesetOptionsSchema: () => ChangesetOptionsSchema,
55756
55812
  ChangesetPreviewSchema: () => ChangesetPreviewSchema,
55757
55813
  ChangesetSchema: () => ChangesetSchema,
@@ -55838,6 +55894,7 @@ var changesets_exports = /* @__PURE__ */ __exportAll({
55838
55894
  isPureDependencyChangeset: () => isPureDependencyChangeset,
55839
55895
  listPublishablePackageNames: () => listPublishablePackageNames,
55840
55896
  makeBranchAnalyzerTest: () => makeBranchAnalyzerTest,
55897
+ makeChangelogFunctions: () => makeChangelogFunctions,
55841
55898
  makeConfigInspectorTest: () => makeConfigInspectorTest,
55842
55899
  makeDepsRegenDefault: () => makeDepsRegenDefault,
55843
55900
  makeGitHubTest: () => makeGitHubTest,