@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.
@@ -30,11 +30,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
30
30
  enumerable: true
31
31
  }) : target, mod));
32
32
  //#endregion
33
- let _effected_templates = require("@effected/templates");
34
33
  let effect = require("effect");
34
+ let _effected_templates = require("@effected/templates");
35
+ let _effected_workspaces = require("@effected/workspaces");
35
36
  let node_path = require("node:path");
36
37
  node_path = __toESM(node_path, 1);
37
- let _effected_workspaces = require("@effected/workspaces");
38
38
  let node_fs_promises = require("node:fs/promises");
39
39
  node_fs_promises = __toESM(node_fs_promises, 1);
40
40
  let node_util = require("node:util");
@@ -75,7 +75,7 @@ let semver_functions_gt_js = require("semver/functions/gt.js");
75
75
  semver_functions_gt_js = __toESM(semver_functions_gt_js, 1);
76
76
  let semver_functions_inc_js = require("semver/functions/inc.js");
77
77
  semver_functions_inc_js = __toESM(semver_functions_inc_js, 1);
78
- //#region ../silk-effects/dist/dev/pkg/errors/ChangesetConfigError.js
78
+ //#region ../silk-core/dist/dev/pkg/errors/ChangesetConfigError.js
79
79
  /**
80
80
  * Raised when the `.changeset/config.json` file cannot be read or decoded.
81
81
  *
@@ -92,7 +92,441 @@ var ChangesetConfigError = class extends effect.Data.TaggedError("ChangesetConfi
92
92
  }
93
93
  };
94
94
  //#endregion
95
- //#region ../silk-effects/dist/dev/pkg/schemas/VersioningSchemas.js
95
+ //#region ../silk-core/dist/dev/pkg/errors/PublishTargetBindingError.js
96
+ /**
97
+ * Raised when publishability detection selects a directory that the package's
98
+ * `dist/prod/targets.json` binding does not describe.
99
+ *
100
+ * @remarks
101
+ * The bundler's prod build writes `targets.json` naming every byte-group
102
+ * directory it produced. Once that binding exists it is authoritative: the only
103
+ * directories whose bytes may be published are the ones it lists. A detector
104
+ * that returns anything else — most often `publishConfig.directory` pointing at
105
+ * a **dev** build, because silk mode was misdetected — is about to pack an
106
+ * unresolved workspace manifest and ship it to a registry.
107
+ *
108
+ * That is the `yaml-effect@0.7.1` failure: detection picked `dist/dev/pkg`, the
109
+ * dev manifest still carried `catalog:` specifiers, and the published package
110
+ * was uninstallable (`EUNSUPPORTEDPROTOCOL`).
111
+ *
112
+ * @since 3.1.0
113
+ * @public
114
+ */
115
+ var PublishTargetBindingError = class extends effect.Data.TaggedError("PublishTargetBindingError") {
116
+ get message() {
117
+ return `Package ${this.pkg} resolved publish directory "${this.directory}", which is not one of the directories bound by dist/prod/targets.json (${this.boundDirectories.join(", ")}). This means publishability detection did not select the prod build output — refusing to publish before packing an unresolved manifest.`;
118
+ }
119
+ };
120
+ //#endregion
121
+ //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/IssueReferences.js
122
+ /**
123
+ * GitHub's closing-keyword issue-reference grammar, as pure functions.
124
+ *
125
+ * @remarks
126
+ * GitHub links an issue to a pull request when the PR's description carries
127
+ * `<keyword> #<number>` for one of nine documented keywords. Consumers speak
128
+ * that grammar in two distinct dialects, and this module models exactly those
129
+ * two — no service, no layer, nothing but strings in and values out:
130
+ *
131
+ * - **Inline-in-prose** ({@link harvestIssueReferences}): a reference may appear anywhere in
132
+ * running text — `"fixes #12 and closes #13"` — with mandatory whitespace
133
+ * and **no colon**, because that is the spelling GitHub itself scans PR
134
+ * bodies for. This is the dialect a release pipeline harvests from commit
135
+ * subjects and PR descriptions.
136
+ * - **Bare-line** ({@link parseBareLineReference}): the whole line, after trimming, *is*
137
+ * the reference — `"Closes: #12"` — with an **optional colon**, because a
138
+ * generated references region writes one reference per line and a colon
139
+ * reads better there. GitHub does not require the colon; the region format
140
+ * allows it, so the parser must too. The dialects differ because their
141
+ * producers do: prose is written by humans for GitHub's scanner, the region
142
+ * is written by tooling for humans.
143
+ *
144
+ * Deliberately out of scope this round: cross-repo references
145
+ * (`owner/repo#N`) and full-URL references
146
+ * (`https://github.com/owner/repo/issues/N`). Both are real GitHub spellings;
147
+ * neither dialect's consumers emit them yet, and guessing at their shape here
148
+ * would freeze an API nobody has driven.
149
+ */
150
+ /**
151
+ * The nine closing keywords GitHub documents, lowercased.
152
+ *
153
+ * @public
154
+ */
155
+ const CLOSING_KEYWORDS = [
156
+ "close",
157
+ "closes",
158
+ "closed",
159
+ "fix",
160
+ "fixes",
161
+ "fixed",
162
+ "resolve",
163
+ "resolves",
164
+ "resolved"
165
+ ];
166
+ /**
167
+ * Both patterns derive from {@link CLOSING_KEYWORDS} so the constant and the
168
+ * grammar cannot drift. Alternation order is safe: the regex engine backtracks
169
+ * through alternatives, so `close` matching inside `closes` fails at the
170
+ * mandatory `#`-introducer and retries the longer keyword.
171
+ */
172
+ const KEYWORDS = CLOSING_KEYWORDS.join("|");
173
+ new RegExp(`\\b(${KEYWORDS})\\s+#(\\d+)`, "gi");
174
+ new RegExp(`^(${KEYWORDS}):?[ \\t]+#(\\d+)$`, "i");
175
+ //#endregion
176
+ //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/ClosingList.js
177
+ /**
178
+ * The closing-list dialect: one whole line naming several issues at once.
179
+ *
180
+ * @remarks
181
+ * The third dialect, alongside the two in `IssueReferences`: after trimming,
182
+ * the **entire** line must be `<keyword>[:] <list>` — keyword
183
+ * case-insensitive (lowercased to canonical form in the result), colon
184
+ * optional, and the list one or more `#<digits>` items separated by `,`,
185
+ * `and`, or the Oxford `, and`. Whitespace inside the line is `[ \t]` only,
186
+ * so an embedded newline cannot smuggle two lines past a parser whose
187
+ * contract is one — the same posture as the bare-line pattern. Any trailing
188
+ * content after the list rejects the line; duplicates are preserved in order,
189
+ * because whether `#1, #1` means one issue or two is the caller's business.
190
+ *
191
+ * Two keyword sets play here. {@link parseClosingList} accepts only the nine
192
+ * closing keywords and yields a {@link ClosingList}; {@link parseReferenceList}
193
+ * additionally accepts the non-closing {@link REFERENCE_KEYWORDS} (`ref`,
194
+ * `refs`, `references`) and reports which set matched via
195
+ * {@link ReferenceList}'s `closing` flag.
196
+ *
197
+ * An item whose digits exceed `Number.MAX_SAFE_INTEGER` rejects the **whole
198
+ * line**, where `harvestIssueReferences` merely skips the one match. The
199
+ * asymmetry is deliberate: a harvest drops one reference out of running
200
+ * prose, but a list line is a single claim about a set of issues, and
201
+ * returning the parseable subset would misrepresent the line as claiming
202
+ * less than it does.
203
+ *
204
+ * Complexity posture: parsing is a single left-to-right character scan —
205
+ * this module contains **no regular expressions at all** — so worst-case
206
+ * time is linear in the line length by construction. There is no
207
+ * backtracking engine to feed, no polynomial blow-up for a scanner to flag,
208
+ * and therefore no input truncation.
209
+ *
210
+ * Beyond the whole-line parsers, {@link harvestReferenceLists} generalizes
211
+ * the same list grammar to the inline-in-prose posture — several lists on
212
+ * one line of running text — and {@link parseClosingLists} /
213
+ * {@link parseReferenceLists} apply the whole-line parsers per line of a
214
+ * multi-line text. All of them ride the same character scan; the no-regex
215
+ * promise above covers every export here.
216
+ */
217
+ /**
218
+ * The non-closing reference keywords the list dialect accepts, lowercased.
219
+ *
220
+ * @remarks
221
+ * GitHub does not act on these — they associate without closing — but a
222
+ * references region writes them, so the parser must read them.
223
+ *
224
+ * @public
225
+ */
226
+ const REFERENCE_KEYWORDS = [
227
+ "ref",
228
+ "refs",
229
+ "references"
230
+ ];
231
+ /**
232
+ * Both keyword tables ARE the exported constants — membership sets built from
233
+ * them once — so the constants and the grammar cannot drift.
234
+ */
235
+ const ALL_KEYWORDS = /* @__PURE__ */ new Set([...CLOSING_KEYWORDS, ...REFERENCE_KEYWORDS]);
236
+ /** Membership test for reporting `closing`, widened once so no call casts. */
237
+ const CLOSING_SET = new Set(CLOSING_KEYWORDS);
238
+ const HASH = 35;
239
+ const COLON = 58;
240
+ const COMMA = 44;
241
+ /** `[ \t]` — the only whitespace the dialect admits, per the module remarks. */
242
+ const isSpaceTab = (code) => code === 32 || code === 9;
243
+ const isDigit$2 = (code) => code >= 48 && code <= 57;
244
+ const isAsciiLetter = (code) => code >= 65 && code <= 90 || code >= 97 && code <= 122;
245
+ /** The index after the run of `[ \t]` starting at `from` (possibly `from` itself). */
246
+ const skipSpaceTab = (line, from) => {
247
+ let index = from;
248
+ while (index < line.length && isSpaceTab(line.charCodeAt(index))) index += 1;
249
+ return index;
250
+ };
251
+ /**
252
+ * One list item at exactly `from`: `#<digits>` and the index one past it.
253
+ * Digits exceeding `Number.MAX_SAFE_INTEGER` report `"unsafe"` rather than a
254
+ * silently rounded issue number, still carrying the index one past the digit
255
+ * run so a caller can skip the item's extent; the whole-line parsers reject
256
+ * on it and {@link harvestReferenceLists} abandons the entire candidate —
257
+ * see the module remarks for why a list never yields a partial reading.
258
+ * Anything that is not `#<digits>` at all is `undefined`.
259
+ */
260
+ const readItem = (line, from) => {
261
+ if (line.charCodeAt(from) !== HASH) return void 0;
262
+ const start = from + 1;
263
+ let index = start;
264
+ while (index < line.length && isDigit$2(line.charCodeAt(index))) index += 1;
265
+ if (index === start) return void 0;
266
+ const value = Number(line.slice(start, index));
267
+ return Number.isSafeInteger(value) ? {
268
+ kind: "item",
269
+ value,
270
+ next: index
271
+ } : {
272
+ kind: "unsafe",
273
+ next: index
274
+ };
275
+ };
276
+ /**
277
+ * One separator at exactly `from`: a comma with optional surrounding `[ \t]`
278
+ * and an optional Oxford `and` (consumed only when its own trailing `[ \t]+`
279
+ * is present), or a bare `and` requiring `[ \t]+` on both sides. `and` is
280
+ * lowercase-only — the keyword head is case-insensitive, the separator is
281
+ * not. Returns the index where the next item must start, or `undefined` when
282
+ * no separator is present.
283
+ */
284
+ const scanSeparator = (line, from) => {
285
+ const afterLeading = skipSpaceTab(line, from);
286
+ if (line.charCodeAt(afterLeading) === COMMA) {
287
+ const afterComma = skipSpaceTab(line, afterLeading + 1);
288
+ if (line.startsWith("and", afterComma)) {
289
+ const afterAnd = skipSpaceTab(line, afterComma + 3);
290
+ if (afterAnd > afterComma + 3) return afterAnd;
291
+ }
292
+ return afterComma;
293
+ }
294
+ if (afterLeading > from && line.startsWith("and", afterLeading)) {
295
+ const afterAnd = skipSpaceTab(line, afterLeading + 3);
296
+ if (afterAnd > afterLeading + 3) return afterAnd;
297
+ }
298
+ };
299
+ /**
300
+ * The scan walk: item, then separator, then item, until the cursor stands
301
+ * exactly at the end of the string. Anything else — a malformed item, an
302
+ * unknown separator, trailing content, an unsafe issue number — is
303
+ * `undefined`, and the caller rejects the whole line.
304
+ */
305
+ const parseItems = (line, from) => {
306
+ const issueNumbers = [];
307
+ let cursor = from;
308
+ for (;;) {
309
+ const item = readItem(line, cursor);
310
+ if (item === void 0 || item.kind === "unsafe") return void 0;
311
+ issueNumbers.push(item.value);
312
+ cursor = item.next;
313
+ if (cursor === line.length) return issueNumbers;
314
+ const next = scanSeparator(line, cursor);
315
+ if (next === void 0) return void 0;
316
+ cursor = next;
317
+ }
318
+ };
319
+ /**
320
+ * The list a whole line carries under either keyword set, or `Option.none()`.
321
+ *
322
+ * @remarks
323
+ * Accepts the nine closing keywords plus {@link REFERENCE_KEYWORDS}, and
324
+ * reports which set matched in the result's `closing` flag. Grammar,
325
+ * whole-line posture and the whole-line rejection of unsafe issue numbers
326
+ * are in the module remarks.
327
+ *
328
+ * @public
329
+ */
330
+ const parseReferenceList = (line) => {
331
+ const trimmed = line.trim();
332
+ let letters = 0;
333
+ while (letters < trimmed.length && isAsciiLetter(trimmed.charCodeAt(letters))) letters += 1;
334
+ if (letters === 0) return effect.Option.none();
335
+ const keyword = trimmed.slice(0, letters).toLowerCase();
336
+ if (!ALL_KEYWORDS.has(keyword)) return effect.Option.none();
337
+ let cursor = letters;
338
+ if (trimmed.charCodeAt(cursor) === COLON) cursor += 1;
339
+ const afterWhitespace = skipSpaceTab(trimmed, cursor);
340
+ if (afterWhitespace === cursor) return effect.Option.none();
341
+ const issueNumbers = parseItems(trimmed, afterWhitespace);
342
+ if (issueNumbers === void 0) return effect.Option.none();
343
+ return effect.Option.some({
344
+ keyword,
345
+ closing: CLOSING_SET.has(keyword),
346
+ issueNumbers
347
+ });
348
+ };
349
+ /**
350
+ * Every reference list a text carries, line by line, across both postures.
351
+ *
352
+ * @remarks
353
+ * The trailer/prose interleave consumers otherwise hand-roll: each line is
354
+ * tried as a whole-line reference list first ({@link parseReferenceList} —
355
+ * colon-tolerant, per the line dialect), and only a line that is not one is
356
+ * harvested inline ({@link harvestReferenceLists} — no colon, per the inline
357
+ * dialect). The preference means a colon-less trailer line contributes its
358
+ * list exactly once, never once per posture.
359
+ *
360
+ * Results carry no offsets, deliberately: this is the line-granular
361
+ * composition, and a consumer that needs spans uses
362
+ * {@link harvestReferenceLists} directly. Duplicates are preserved, in
363
+ * document order.
364
+ *
365
+ * @public
366
+ */
367
+ const collectReferenceLists = (text) => {
368
+ const lists = [];
369
+ for (const line of text.split("\n")) {
370
+ const whole = parseReferenceList(line);
371
+ if (effect.Option.isSome(whole)) {
372
+ lists.push(whole.value);
373
+ continue;
374
+ }
375
+ for (const harvested of harvestReferenceLists(line)) lists.push({
376
+ keyword: harvested.keyword,
377
+ closing: harvested.closing,
378
+ issueNumbers: harvested.issueNumbers
379
+ });
380
+ }
381
+ return lists;
382
+ };
383
+ /** `[A-Za-z0-9_]` — the word-boundary alphabet the inline dialects use. */
384
+ const isWordChar = (code) => isAsciiLetter(code) || isDigit$2(code) || code === 95;
385
+ /**
386
+ * The full JavaScript `\s` set, spelled as a predicate so the module keeps
387
+ * its no-regex promise: ASCII whitespace, NEL-adjacent controls, and the
388
+ * Unicode space separators. Only the keyword→first-item gap of
389
+ * {@link harvestReferenceLists} admits this set — everything inside a list
390
+ * stays `[ \t]`, per the module remarks.
391
+ */
392
+ const isAnyWhitespace = (code) => code === 32 || code >= 9 && code <= 13 || code === 160 || code === 5760 || code >= 8192 && code <= 8202 || code === 8232 || code === 8233 || code === 8239 || code === 8287 || code === 12288 || code === 65279;
393
+ /**
394
+ * Every reference list found inline in `text`, in document order.
395
+ *
396
+ * @remarks
397
+ * The inline-in-prose posture generalized to lists:
398
+ * `Closes #123, Fixes #456` in one line of a commit body yields two
399
+ * single-item lists, where
400
+ * `harvestIssueReferences` reads only the first reference of each and the
401
+ * whole-line parsers read neither. The grammar per candidate:
402
+ *
403
+ * - The keyword is case-insensitive, drawn from either keyword set,
404
+ * lowercased to canonical form in the result, with `closing` reported by
405
+ * set membership. Word boundaries hold on both sides: the characters
406
+ * immediately before and after the keyword's letter run must not be
407
+ * `[A-Za-z0-9_]`, so `recloses #1` and `1closes #1` do not match.
408
+ * - **No colon** — exactly like `harvestIssueReferences`, the colon spelling
409
+ * belongs to the line dialects ({@link parseReferenceList} and the
410
+ * bare-line parser), so `closes: #1` inline yields nothing.
411
+ * - The keyword→first-item gap is any run of whitespace **including
412
+ * newlines**, mirroring the inline dialect's `\s+`.
413
+ * - List continuation uses the `,` / `and` / Oxford separators with `[ \t]`
414
+ * whitespace only, so a list cannot continue past a newline — a later
415
+ * line makes its own claims.
416
+ * - Items are `#<digits>`; duplicates are preserved in order.
417
+ *
418
+ * A list ends at its last valid item: in `closes #1 and fixes #2` the
419
+ * ` and ` before `fixes` fails as a separator because what follows is not
420
+ * `#`, so the text yields `closes: [1]` then `fixes: [2]`. An item past
421
+ * `Number.MAX_SAFE_INTEGER` anywhere in a candidate skips the **entire**
422
+ * candidate — never a partial list, for the same reason
423
+ * {@link parseReferenceList} rejects the whole line — and scanning resumes
424
+ * after the candidate's scanned extent.
425
+ *
426
+ * Like everything in this module, the harvest is a single left-to-right
427
+ * character scan with no regular expressions, so time stays linear in the
428
+ * text length and no input is truncated.
429
+ *
430
+ * @public
431
+ */
432
+ const harvestReferenceLists = (text) => {
433
+ const lists = [];
434
+ let index = 0;
435
+ while (index < text.length) {
436
+ if (!isAsciiLetter(text.charCodeAt(index))) {
437
+ index += 1;
438
+ continue;
439
+ }
440
+ const runStart = index;
441
+ let runEnd = index + 1;
442
+ while (runEnd < text.length && isAsciiLetter(text.charCodeAt(runEnd))) runEnd += 1;
443
+ if (runStart > 0 && isWordChar(text.charCodeAt(runStart - 1)) || runEnd < text.length && isWordChar(text.charCodeAt(runEnd))) {
444
+ index = runEnd;
445
+ continue;
446
+ }
447
+ const keyword = text.slice(runStart, runEnd).toLowerCase();
448
+ if (!ALL_KEYWORDS.has(keyword)) {
449
+ index = runEnd;
450
+ continue;
451
+ }
452
+ let cursor = runEnd;
453
+ while (cursor < text.length && isAnyWhitespace(text.charCodeAt(cursor))) cursor += 1;
454
+ const first = cursor === runEnd ? void 0 : readItem(text, cursor);
455
+ if (first === void 0) {
456
+ index = runEnd;
457
+ continue;
458
+ }
459
+ if (first.kind === "unsafe") {
460
+ index = first.next;
461
+ continue;
462
+ }
463
+ const issueNumbers = [first.value];
464
+ let end = first.next;
465
+ let unsafeNext;
466
+ for (;;) {
467
+ const next = scanSeparator(text, end);
468
+ if (next === void 0) break;
469
+ const item = readItem(text, next);
470
+ if (item === void 0) break;
471
+ if (item.kind === "unsafe") {
472
+ unsafeNext = item.next;
473
+ break;
474
+ }
475
+ issueNumbers.push(item.value);
476
+ end = item.next;
477
+ }
478
+ if (unsafeNext !== void 0) {
479
+ index = unsafeNext;
480
+ continue;
481
+ }
482
+ lists.push({
483
+ keyword,
484
+ closing: CLOSING_SET.has(keyword),
485
+ issueNumbers,
486
+ start: runStart,
487
+ end
488
+ });
489
+ index = end;
490
+ }
491
+ return lists;
492
+ };
493
+ //#endregion
494
+ //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/KeywordFamily.js
495
+ /**
496
+ * The projection table IS the totality proof: `Record` over the union of
497
+ * both keyword types makes a keyword added to either constant without an
498
+ * entry here fail to compile.
499
+ */
500
+ const FAMILIES = {
501
+ close: "close",
502
+ closes: "close",
503
+ closed: "close",
504
+ fix: "fix",
505
+ fixes: "fix",
506
+ fixed: "fix",
507
+ resolve: "resolve",
508
+ resolves: "resolve",
509
+ resolved: "resolve",
510
+ ref: "ref",
511
+ refs: "ref",
512
+ references: "ref"
513
+ };
514
+ /**
515
+ * The family a keyword belongs to.
516
+ *
517
+ * @remarks
518
+ * Total over both keyword sets by construction — see the module remarks for
519
+ * why an explicit record beats a `startsWith` heuristic. `close`, `closes`
520
+ * and `closed` map to `"close"`; the `fix` and `resolve` conjugations
521
+ * likewise; `ref`, `refs` and `references` map to `"ref"`. The evidence for
522
+ * the projection is downstream: categorized harvesters key maps by family,
523
+ * and each was hand-rolling this collapse.
524
+ *
525
+ * @public
526
+ */
527
+ const keywordFamily = (keyword) => FAMILIES[keyword];
528
+ //#endregion
529
+ //#region ../silk-core/dist/dev/pkg/schemas/VersioningSchemas.js
96
530
  /**
97
531
  * Configuration for how private packages are handled during versioning.
98
532
  *
@@ -164,7 +598,7 @@ const ChangesetConfigFile = effect.Schema.Struct({
164
598
  *
165
599
  * @remarks
166
600
  * Extends {@link (ChangesetConfigFile:type)} with a `_isSilk` marker flag that is automatically
167
- * set to `true`. Detected by {@link ChangesetConfigReader} when the `changelog` field
601
+ * set to `true`. Detected by `ChangesetConfigReader` when the `changelog` field
168
602
  * references `@savvy-web/changesets`.
169
603
  *
170
604
  * @since 0.1.0
@@ -175,6 +609,25 @@ const SilkChangesetConfigFile = effect.Schema.Struct({
175
609
  _isSilk: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefaultType(effect.Effect.succeed(true)), effect.Schema.withConstructorDefault(effect.Effect.succeed(true)))
176
610
  });
177
611
  //#endregion
612
+ //#region ../silk-core/dist/dev/pkg/utils/TrailingSlash.js
613
+ /**
614
+ * Trim trailing slashes from a string.
615
+ *
616
+ * @remarks
617
+ * Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
618
+ * unanchored at the start, so the engine retries the match from every position
619
+ * and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
620
+ * Only a trailing run of slashes is removed; interior slash runs are untouched.
621
+ *
622
+ * @since 0.1.0
623
+ * @public
624
+ */
625
+ const trimTrailingSlashes = (s) => {
626
+ let end = s.length;
627
+ while (end > 0 && s[end - 1] === "/") end -= 1;
628
+ return s.slice(0, end);
629
+ };
630
+ //#endregion
178
631
  //#region ../silk-effects/dist/dev/pkg/services/ChangesetConfigReader.js
179
632
  /**
180
633
  * Substrings that identify a Silk changelog adapter entry in `.changeset/config.json`.
@@ -204,8 +657,8 @@ function isSilkChangelog(changelog) {
204
657
  *
205
658
  * @remarks
206
659
  * Automatically detects whether the config uses the Silk changelog adapter
207
- * (`@savvy-web/changesets`) and decodes as {@link (SilkChangesetConfigFile:type)} or the
208
- * standard {@link (ChangesetConfigFile:type)} accordingly.
660
+ * (`@savvy-web/changesets`) and decodes as `SilkChangesetConfigFile` or the
661
+ * standard `ChangesetConfigFile` accordingly.
209
662
  *
210
663
  * @example
211
664
  * ```typescript
@@ -283,32 +736,6 @@ var ChangesetConfigReader = class extends effect.Context.Service()("@savvy-web/s
283
736
  }));
284
737
  };
285
738
  //#endregion
286
- //#region ../silk-effects/dist/dev/pkg/errors/PublishTargetBindingError.js
287
- /**
288
- * Raised when publishability detection selects a directory that the package's
289
- * `dist/prod/targets.json` binding does not describe.
290
- *
291
- * @remarks
292
- * The bundler's prod build writes `targets.json` naming every byte-group
293
- * directory it produced. Once that binding exists it is authoritative: the only
294
- * directories whose bytes may be published are the ones it lists. A detector
295
- * that returns anything else — most often `publishConfig.directory` pointing at
296
- * a **dev** build, because silk mode was misdetected — is about to pack an
297
- * unresolved workspace manifest and ship it to a registry.
298
- *
299
- * That is the `yaml-effect@0.7.1` failure: detection picked `dist/dev/pkg`, the
300
- * dev manifest still carried `catalog:` specifiers, and the published package
301
- * was uninstallable (`EUNSUPPORTEDPROTOCOL`).
302
- *
303
- * @since 3.1.0
304
- * @public
305
- */
306
- var PublishTargetBindingError = class extends effect.Data.TaggedError("PublishTargetBindingError") {
307
- get message() {
308
- return `Package ${this.pkg} resolved publish directory "${this.directory}", which is not one of the directories bound by dist/prod/targets.json (${this.boundDirectories.join(", ")}). This means publishability detection did not select the prod build output — refusing to publish before packing an unresolved manifest.`;
309
- }
310
- };
311
- //#endregion
312
739
  //#region ../silk-effects/dist/dev/pkg/services/ChangesetConfig.js
313
740
  const isSilk = (cfg) => "_isSilk" in cfg && cfg._isSilk === true;
314
741
  /**
@@ -385,22 +812,6 @@ var ChangesetConfig = class ChangesetConfig extends effect.Context.Service()("@s
385
812
  }));
386
813
  };
387
814
  //#endregion
388
- //#region ../silk-effects/dist/dev/pkg/utils/TrailingSlash.js
389
- /**
390
- * Trim trailing slashes from a string.
391
- *
392
- * @remarks
393
- * Trims trailing slashes with an index scan rather than `/\/+$/`. That regex is
394
- * unanchored at the start, so the engine retries the match from every position
395
- * and degrades to O(n²) on a string of many slashes (CodeQL `js/polynomial-redos`).
396
- * Only a trailing run of slashes is removed; interior slash runs are untouched.
397
- */
398
- const trimTrailingSlashes = (s) => {
399
- let end = s.length;
400
- while (end > 0 && s[end - 1] === "/") end -= 1;
401
- return s.slice(0, end);
402
- };
403
- //#endregion
404
815
  //#region ../silk-effects/dist/dev/pkg/services/SilkPublishability.js
405
816
  const NPM_DEFAULT = "https://registry.npmjs.org/";
406
817
  /**
@@ -523,7 +934,7 @@ var SilkPublishability = class SilkPublishability {
523
934
  * directories it names. A directory outside the binding means detection did
524
935
  * not select the prod output — the `yaml-effect@0.7.1` shape, where a dev
525
936
  * manifest carrying `catalog:` specifiers was packed and published. Rather
526
- * than ship those bytes, fail with {@link PublishTargetBindingError}.
937
+ * than ship those bytes, fail with `PublishTargetBindingError`.
527
938
  *
528
939
  * Before the prod build runs there is no binding, and the detector's
529
940
  * placeholder directories are left alone.
@@ -2651,6 +3062,66 @@ function makeGitHubTest(responses) {
2651
3062
  } });
2652
3063
  }
2653
3064
  //#endregion
3065
+ //#region ../silk-effects/dist/dev/pkg/changesets/utils/logger.js
3066
+ /**
3067
+ * Warning output for changelog generation, parameterised by a
3068
+ * {@link ChangesetLogMode} reference instead of an ambient environment read.
3069
+ *
3070
+ * @remarks
3071
+ * This module is engine code shared by every front end, so it must not read
3072
+ * `process` — a `process.env` read here would bake one host's environment
3073
+ * into every other. The mode is a `Context.Reference` with a default of
3074
+ * `"stderr"`; a front end that knows it runs under GitHub Actions or a test
3075
+ * runner provides `"github"` or `"silent"` from its own `process.env` read.
3076
+ *
3077
+ * @packageDocumentation
3078
+ */
3079
+ /**
3080
+ * The reference that selects the {@link ChangesetLogModeValue}.
3081
+ *
3082
+ * @remarks
3083
+ * Defaults to `"stderr"` when no front end provides it, so a program that
3084
+ * never touches the reference still reports. Provide with
3085
+ * `Layer.succeed(ChangesetLogMode, "github")` or
3086
+ * `Effect.provideService(ChangesetLogMode, "silent")`.
3087
+ *
3088
+ * @example
3089
+ * ```typescript
3090
+ * import { Effect } from "effect";
3091
+ * import { Changesets } from "\@savvy-web/silk-effects";
3092
+ *
3093
+ * const mode = process.env.GITHUB_ACTIONS === "true" ? "github" : "stderr";
3094
+ * program.pipe(Effect.provideService(Changesets.ChangesetLogMode, mode));
3095
+ * ```
3096
+ *
3097
+ * @public
3098
+ */
3099
+ const ChangesetLogMode = effect.Context.Reference("@savvy-web/silk-effects/Changesets/ChangesetLogMode", { defaultValue: () => "stderr" });
3100
+ /**
3101
+ * Log a warning message according to the {@link ChangesetLogMode} in context.
3102
+ *
3103
+ * @param message - The warning message
3104
+ * @param args - Additional arguments (concatenated with a space in `"github"` mode)
3105
+ * @returns An `Effect` that never fails
3106
+ *
3107
+ * @internal
3108
+ */
3109
+ function logWarning(message, ...args) {
3110
+ return effect.Effect.gen(function* () {
3111
+ switch (yield* ChangesetLogMode) {
3112
+ case "silent": return;
3113
+ case "github": {
3114
+ const text = args.length > 0 ? `${message} ${args.join(" ")}` : message;
3115
+ console.warn(`::warning::${text}`);
3116
+ return;
3117
+ }
3118
+ case "stderr":
3119
+ console.warn(message, ...args);
3120
+ return;
3121
+ }
3122
+ });
3123
+ }
3124
+ //#endregion
2654
3125
  //#region ../silk-effects/dist/dev/pkg/changesets/schemas/primitives.js
2655
3126
  /**
2656
3127
  * Primitive reusable schemas for common constrained types.
@@ -2930,7 +3401,7 @@ const DependencyTableRowSchema = effect.Schema.Struct({
2930
3401
  */
2931
3402
  const DependencyTableSchema = effect.Schema.Array(DependencyTableRowSchema).check(effect.Schema.isMinLength(1));
2932
3403
  //#endregion
2933
- //#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
3404
+ //#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
2934
3405
  /**
2935
3406
  * A single point in a source document: 1-based `line` and `column`, 0-based
2936
3407
  * `offset`.
@@ -3731,7 +4202,7 @@ effect.Schema.suspend(() => effect.Schema.Union([
3731
4202
  TableContent
3732
4203
  ]));
3733
4204
  //#endregion
3734
- //#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
4205
+ //#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
3735
4206
  const FENCES = /* @__PURE__ */ new Map([
3736
4207
  ["---", {
3737
4208
  format: "yaml",
@@ -3963,7 +4434,7 @@ function evaluateNode(node, depth) {
3963
4434
  //#region ../../node_modules/.pnpm/@effected+jsonc@0.11.0_effect@4.0.0-rc.115/node_modules/@effected/jsonc/internal/scanner.js
3964
4435
  const isWhitespace = (ch) => ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 65279;
3965
4436
  const isLineBreak$1 = (ch) => ch === 10 || ch === 13 || ch === 8232 || ch === 8233;
3966
- const isDigit$2 = (ch) => ch >= 48 && ch <= 57;
4437
+ const isDigit$1 = (ch) => ch >= 48 && ch <= 57;
3967
4438
  /**
3968
4439
  * Create a stateful {@link Scanner} for the given JSONC string.
3969
4440
  *
@@ -4068,31 +4539,31 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
4068
4539
  if (text.charCodeAt(pos) === 45) pos++;
4069
4540
  if (text.charCodeAt(pos) === 48) pos++;
4070
4541
  else {
4071
- if (!isDigit$2(text.charCodeAt(pos))) {
4542
+ if (!isDigit$1(text.charCodeAt(pos))) {
4072
4543
  tokenError = "UnexpectedEndOfNumber";
4073
4544
  return text.substring(start, pos);
4074
4545
  }
4075
4546
  pos++;
4076
- while (pos < len && isDigit$2(text.charCodeAt(pos))) pos++;
4547
+ while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
4077
4548
  }
4078
4549
  if (pos < len && text.charCodeAt(pos) === 46) {
4079
4550
  pos++;
4080
- if (!isDigit$2(text.charCodeAt(pos))) {
4551
+ if (!isDigit$1(text.charCodeAt(pos))) {
4081
4552
  tokenError = "UnexpectedEndOfNumber";
4082
4553
  return text.substring(start, pos);
4083
4554
  }
4084
4555
  pos++;
4085
- while (pos < len && isDigit$2(text.charCodeAt(pos))) pos++;
4556
+ while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
4086
4557
  }
4087
4558
  if (pos < len && (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101)) {
4088
4559
  pos++;
4089
4560
  if (pos < len && (text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45)) pos++;
4090
- if (!isDigit$2(text.charCodeAt(pos))) {
4561
+ if (!isDigit$1(text.charCodeAt(pos))) {
4091
4562
  tokenError = "UnexpectedEndOfNumber";
4092
4563
  return text.substring(start, pos);
4093
4564
  }
4094
4565
  pos++;
4095
- while (pos < len && isDigit$2(text.charCodeAt(pos))) pos++;
4566
+ while (pos < len && isDigit$1(text.charCodeAt(pos))) pos++;
4096
4567
  }
4097
4568
  return text.substring(start, pos);
4098
4569
  };
@@ -4198,7 +4669,7 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
4198
4669
  return token;
4199
4670
  }
4200
4671
  case 45:
4201
- if (pos + 1 < len && isDigit$2(text.charCodeAt(pos + 1))) {
4672
+ if (pos + 1 < len && isDigit$1(text.charCodeAt(pos + 1))) {
4202
4673
  tokenValue = scanNumber();
4203
4674
  token = "Number";
4204
4675
  return token;
@@ -4209,7 +4680,7 @@ const createScanner$1 = (text, ignoreTrivia = false) => {
4209
4680
  tokenError = "InvalidSymbol";
4210
4681
  return token;
4211
4682
  default:
4212
- if (isDigit$2(ch)) {
4683
+ if (isDigit$1(ch)) {
4213
4684
  tokenValue = scanNumber();
4214
4685
  token = "Number";
4215
4686
  return token;
@@ -5563,7 +6034,7 @@ var JsoncModifier = class {
5563
6034
  });
5564
6035
  };
5565
6036
  //#endregion
5566
- //#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
6037
+ //#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
5567
6038
  /**
5568
6039
  * P1's error-code vocabulary. Widens as later phases add parse-error kinds;
5569
6040
  * P1 registers exactly one, the hardening-guard trip.
@@ -5603,7 +6074,7 @@ var GuardExceeded$1 = class extends Error {
5603
6074
  /** Narrows `unknown` to {@link GuardExceeded}; never a bare `instanceof` at a call site. */
5604
6075
  const isGuardExceeded$1 = (u) => u instanceof GuardExceeded$1;
5605
6076
  //#endregion
5606
- //#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
6077
+ //#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
5607
6078
  /**
5608
6079
  * Error codes `Markdown.parse`/`MarkdownDocument.parse` can fail with. P1
5609
6080
  * registers exactly the hardening-guard trip; later phases widen the union
@@ -5683,7 +6154,7 @@ function lineChar(text, offset) {
5683
6154
  };
5684
6155
  }
5685
6156
  //#endregion
5686
- //#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
6157
+ //#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
5687
6158
  /** Narrow materialized children to the flow content most constructs contain. */
5688
6159
  const flowChildren = (children) => children.filter((child) => child.type !== "root" && child.type !== "listItem" && child.type !== "tableRow" && child.type !== "tableCell");
5689
6160
  /** Narrow materialized children to the list items a list contains. */
@@ -5708,7 +6179,7 @@ const makeBlockNode = (type, startOffset, startLine, depth = 0) => ({
5708
6179
  data: {}
5709
6180
  });
5710
6181
  //#endregion
5711
- //#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
6182
+ //#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
5712
6183
  /**
5713
6184
  * Split `text` into lines, preserving each line's absolute start offset.
5714
6185
  *
@@ -5762,7 +6233,7 @@ const peekCode = (line, position) => position >= 0 && position < line.length ? l
5762
6233
  */
5763
6234
  const columnsToNextTabStop = (column) => 4 - column % 4;
5764
6235
  //#endregion
5765
- //#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
6236
+ //#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
5766
6237
  const TAGNAME = "[A-Za-z][A-Za-z0-9-]*";
5767
6238
  /** An opening tag, with any attributes and an optional self-closing slash. */
5768
6239
  const OPENTAG = `<${TAGNAME}(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^"'=<>\`\\x00-\\x20]+|'[^']*'|"[^"]*"))?)*\\s*/?>`;
@@ -5773,7 +6244,7 @@ const HTMLTAG = `(?:${OPENTAG}|${CLOSETAG}|<!-->|<!--->|<!--[\\s\\S]*?-->|[<][?]
5773
6244
  /** {@link HTMLTAG}, anchored for matching at a cursor. */
5774
6245
  const reHtmlTag = new RegExp(`^${HTMLTAG}`);
5775
6246
  //#endregion
5776
- //#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
6247
+ //#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
5777
6248
  const C_LESSTHAN$3 = 60;
5778
6249
  const reHtmlBlockOpen = [
5779
6250
  /./,
@@ -5839,7 +6310,7 @@ const htmlBlockStart = {
5839
6310
  }
5840
6311
  };
5841
6312
  //#endregion
5842
- //#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
6313
+ //#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
5843
6314
  const reATXHeadingMarker = /^#{1,6}(?:[ \t]+|$)/;
5844
6315
  const reOnlyTrailingHashes = /^[ \t]*#+[ \t]*$/;
5845
6316
  const reClosingHashes = /[ \t]+#+[ \t]*$/;
@@ -5889,7 +6360,7 @@ const atxHeadingStart = {
5889
6360
  }
5890
6361
  };
5891
6362
  //#endregion
5892
- //#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
6363
+ //#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
5893
6364
  const C_GREATERTHAN = 62;
5894
6365
  /** Blockquote: continues while each line carries its `>` marker. */
5895
6366
  const blockquoteConstruct = {
@@ -5923,11 +6394,11 @@ const blockquoteStart = {
5923
6394
  }
5924
6395
  };
5925
6396
  //#endregion
5926
- //#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
6397
+ //#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
5927
6398
  /** The HTML5 named character references, keyed without `&` or `;`. */
5928
6399
  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\",\"‌\"]]"));
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/entities.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/entities.js
5931
6402
  /** The largest code point Unicode defines. */
5932
6403
  const MAX_CODE_POINT = 1114111;
5933
6404
  /**
@@ -5949,7 +6420,7 @@ const decodeEntity = (entity) => {
5949
6420
  return String.fromCodePoint(code);
5950
6421
  };
5951
6422
  //#endregion
5952
- //#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
6423
+ //#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
5953
6424
  /** The punctuation set a backslash may escape, per the spec. */
5954
6425
  const ESCAPABLE$1 = "[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]";
5955
6426
  /** One entity, in any of the three spec forms. */
@@ -5963,7 +6434,7 @@ const unescapeChar = (source) => {
5963
6434
  /** Replace every backslash escape and character reference with its literal. */
5964
6435
  const unescapeString = (source) => reBackslashOrAmp.test(source) ? source.replace(reEntityOrEscapedChar, unescapeChar) : source;
5965
6436
  //#endregion
5966
- //#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
6437
+ //#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
5967
6438
  const reBlankLine = /^[ \t]*$/;
5968
6439
  const reClosingCodeFence = /^(?:`{3,}|~{3,})(?=[ \t]*$)/;
5969
6440
  /**
@@ -6047,7 +6518,7 @@ const codeConstruct = {
6047
6518
  }
6048
6519
  };
6049
6520
  //#endregion
6050
- //#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
6521
+ //#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
6051
6522
  /** The document root: contains everything except a bare list item. */
6052
6523
  const documentConstruct = {
6053
6524
  type: "document",
@@ -6060,7 +6531,7 @@ const documentConstruct = {
6060
6531
  })
6061
6532
  };
6062
6533
  //#endregion
6063
- //#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
6534
+ //#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
6064
6535
  const reCodeFence = /^`{3,}(?!.*`)|^~{3,}/;
6065
6536
  const fenceCharOf = (char) => char === "`" || char === "~" ? char : void 0;
6066
6537
  /** The fenced-code block start: three or more backticks or tildes. */
@@ -6084,7 +6555,7 @@ const fencedCodeStart = {
6084
6555
  }
6085
6556
  };
6086
6557
  //#endregion
6087
- //#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
6558
+ //#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
6088
6559
  const stickyCache = /* @__PURE__ */ new WeakMap();
6089
6560
  const globalCache = /* @__PURE__ */ new WeakMap();
6090
6561
  const clone = (pattern, flag, dropCaret) => {
@@ -6108,7 +6579,7 @@ const globalOf = (pattern) => {
6108
6579
  return made;
6109
6580
  };
6110
6581
  //#endregion
6111
- //#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
6582
+ //#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
6112
6583
  const ESCAPABLE = "[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^_`{|}~-]";
6113
6584
  const ESCAPED_CHAR = `\\\\${ESCAPABLE}`;
6114
6585
  const reLinkTitle = new RegExp(`^(?:"(${ESCAPED_CHAR}|\\\\[^\\\\]|[^\\\\"\\x00])*"|'(${ESCAPED_CHAR}|\\\\[^\\\\]|[^\\\\'\\x00])*'|\\((${ESCAPED_CHAR}|\\\\[^\\\\]|[^\\\\()\\x00])*\\))`);
@@ -6282,7 +6753,7 @@ const parseReference = (text) => {
6282
6753
  };
6283
6754
  };
6284
6755
  //#endregion
6285
- //#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
6756
+ //#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
6286
6757
  /**
6287
6758
  * `_scan_footnote_definition` from `src/scanners.re`:
6288
6759
  *
@@ -6359,7 +6830,7 @@ const footnoteDefinitionStart = {
6359
6830
  }
6360
6831
  };
6361
6832
  //#endregion
6362
- //#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
6833
+ //#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
6363
6834
  /** The indented-code block start: four columns of indentation. */
6364
6835
  const indentedCodeStart = {
6365
6836
  name: "indentedCode",
@@ -6373,7 +6844,7 @@ const indentedCodeStart = {
6373
6844
  }
6374
6845
  };
6375
6846
  //#endregion
6376
- //#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
6847
+ //#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
6377
6848
  /**
6378
6849
  * The absolute source offset of `textIndex` within a segmented content run.
6379
6850
  *
@@ -6407,7 +6878,7 @@ const sliceWithSegments = (segments, from, to) => {
6407
6878
  return sliced;
6408
6879
  };
6409
6880
  //#endregion
6410
- //#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
6881
+ //#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
6411
6882
  const C_OPEN_BRACKET$1 = 91;
6412
6883
  /**
6413
6884
  * Split every leading link reference definition out of `block`, inserting one
@@ -6472,7 +6943,7 @@ const definitionConstruct = {
6472
6943
  }
6473
6944
  };
6474
6945
  //#endregion
6475
- //#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
6946
+ //#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
6476
6947
  const reBulletListMarker = /^[*+-]/;
6477
6948
  const reOrderedListMarker = /^(\d{1,9})([.)])/;
6478
6949
  const reNonSpace$1 = /[^ \t\f\v\r\n]/;
@@ -6625,7 +7096,7 @@ const listItemStart = {
6625
7096
  }
6626
7097
  };
6627
7098
  //#endregion
6628
- //#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
7099
+ //#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
6629
7100
  /** Paragraph: absorbs lines until a blank one, and contains nothing. */
6630
7101
  const paragraphConstruct = {
6631
7102
  type: "paragraph",
@@ -6647,7 +7118,7 @@ const paragraphConstruct = {
6647
7118
  }
6648
7119
  };
6649
7120
  //#endregion
6650
- //#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
7121
+ //#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
6651
7122
  const reSetextHeadingLine = /^(?:=+|-+)[ \t]*$/;
6652
7123
  /** The setext heading block start: a run of `=` or `-` under a paragraph. */
6653
7124
  const setextHeadingStart = {
@@ -6667,7 +7138,7 @@ const setextHeadingStart = {
6667
7138
  }
6668
7139
  };
6669
7140
  //#endregion
6670
- //#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
7141
+ //#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
6671
7142
  /**
6672
7143
  * Upstream's `MAX_AUTOCOMPLETED_CELLS`: the ceiling on cells the parser
6673
7144
  * invents to pad short rows, which is what stops a wide header followed by a
@@ -7038,7 +7509,7 @@ const tableCellConstruct = {
7038
7509
  }
7039
7510
  };
7040
7511
  //#endregion
7041
- //#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
7512
+ //#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
7042
7513
  /**
7043
7514
  * `_scan_tasklist`, as the generated scanner accepts it.
7044
7515
  *
@@ -7072,7 +7543,7 @@ const taskListItemStart = {
7072
7543
  }
7073
7544
  };
7074
7545
  //#endregion
7075
- //#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
7546
+ //#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
7076
7547
  const reThematicBreak = /^(?:\*[ \t]*){3,}$|^(?:_[ \t]*){3,}$|^(?:-[ \t]*){3,}$/;
7077
7548
  const markerCharOf$1 = (char) => char === "-" || char === "_" || char === "*" ? char : void 0;
7078
7549
  /** Thematic break: one line, no children. */
@@ -7103,7 +7574,7 @@ const thematicBreakStart = {
7103
7574
  }
7104
7575
  };
7105
7576
  //#endregion
7106
- //#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
7577
+ //#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
7107
7578
  const constructTable = (constructs) => new Map(constructs.map((construct) => [construct.type, construct]));
7108
7579
  const commonmarkDialect$1 = {
7109
7580
  constructs: constructTable([
@@ -7175,7 +7646,7 @@ const blockDialect = (dialect) => {
7175
7646
  return found;
7176
7647
  };
7177
7648
  //#endregion
7178
- //#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
7649
+ //#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
7179
7650
  /**
7180
7651
  * A precomputed index of line-start offsets over a fixed source text,
7181
7652
  * answering `positionAt(offset)` in `O(log n)` via binary search rather than
@@ -7249,7 +7720,7 @@ var LineIndex = class LineIndex {
7249
7720
  }
7250
7721
  };
7251
7722
  //#endregion
7252
- //#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
7723
+ //#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
7253
7724
  /** Open a node with no links. */
7254
7725
  const makeInlineNode = (type, start, end, value = "") => ({
7255
7726
  type,
@@ -7301,7 +7772,7 @@ const childrenOf = (node) => {
7301
7772
  return children;
7302
7773
  };
7303
7774
  //#endregion
7304
- //#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
7775
+ //#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
7305
7776
  const C_ASTERISK$1 = 42;
7306
7777
  const C_UNDERSCORE$1 = 95;
7307
7778
  const rePunctuation = /^[!"#$%&'()*+,\-./:;<=>?@[\]\\^_`{|}~\p{P}\p{S}]/u;
@@ -7378,7 +7849,7 @@ const emphasisConstruct = {
7378
7849
  parse: (scanner) => handleDelim(scanner, scanner.peek())
7379
7850
  };
7380
7851
  //#endregion
7381
- //#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
7852
+ //#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
7382
7853
  /**
7383
7854
  * Consume a `~` run as literal text and, when it is a viable one- or
7384
7855
  * two-tilde run, push it onto the shared delimiter stack.
@@ -7452,7 +7923,7 @@ const strikethroughConstruct = {
7452
7923
  parse: (scanner) => handleTilde(scanner)
7453
7924
  };
7454
7925
  //#endregion
7455
- //#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
7926
+ //#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
7456
7927
  const C_LESSTHAN$1 = 60;
7457
7928
  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])?)*)>/;
7458
7929
  const reAutolink = /^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\0- ]*>/i;
@@ -7484,7 +7955,7 @@ const autolinkConstruct = {
7484
7955
  }
7485
7956
  };
7486
7957
  //#endregion
7487
- //#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
7958
+ //#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
7488
7959
  const C_LOWER_W = 119;
7489
7960
  const C_COLON = 58;
7490
7961
  /** `cmark_isspace`: ASCII only, deliberately — upstream's URL scan uses it. */
@@ -7854,7 +8325,7 @@ const linkifyEmails = (root) => {
7854
8325
  }
7855
8326
  };
7856
8327
  //#endregion
7857
- //#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
8328
+ //#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
7858
8329
  const C_BACKTICK$1 = 96;
7859
8330
  const reTicksHere = /^`+/;
7860
8331
  const reNewline = /\n/gm;
@@ -7882,7 +8353,7 @@ const codeSpanConstruct = {
7882
8353
  }
7883
8354
  };
7884
8355
  //#endregion
7885
- //#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
8356
+ //#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
7886
8357
  const C_AMPERSAND = 38;
7887
8358
  const reEntityHere = new RegExp(`^${ENTITY}`, "i");
7888
8359
  /** A named, decimal or hexadecimal character reference. */
@@ -7898,7 +8369,7 @@ const entityConstruct = {
7898
8369
  }
7899
8370
  };
7900
8371
  //#endregion
7901
- //#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
8372
+ //#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
7902
8373
  const C_BACKSLASH = 92;
7903
8374
  const C_NEWLINE$1 = 10;
7904
8375
  const reEscapable = new RegExp(`^${ESCAPABLE$1}`);
@@ -7927,7 +8398,7 @@ const escapeConstruct = {
7927
8398
  }
7928
8399
  };
7929
8400
  //#endregion
7930
- //#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
8401
+ //#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
7931
8402
  const C_BANG = 33;
7932
8403
  const C_CARET$1 = 94;
7933
8404
  const C_OPEN_BRACKET = 91;
@@ -8134,7 +8605,7 @@ const makeLinkCloseConstruct = (onNoMatch) => ({
8134
8605
  /** `]` — closes a link or image, or stays literal. The CommonMark spelling. */
8135
8606
  const linkCloseConstruct = makeLinkCloseConstruct();
8136
8607
  //#endregion
8137
- //#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
8608
+ //#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
8138
8609
  const C_CARET = 94;
8139
8610
  /**
8140
8611
  * Whether the bracket that just closed looks like `[^...]` with something
@@ -8191,7 +8662,7 @@ const gfmLinkCloseConstruct = makeLinkCloseConstruct(footnoteReferenceFallback);
8191
8662
  */
8192
8663
  const gfmImageOpenConstruct = makeImageOpenConstruct(false);
8193
8664
  //#endregion
8194
- //#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
8665
+ //#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
8195
8666
  const C_NEWLINE = 10;
8196
8667
  const reInitialSpace = /^ */;
8197
8668
  /** A soft or hard line break. */
@@ -8212,7 +8683,7 @@ const lineBreakConstruct = {
8212
8683
  }
8213
8684
  };
8214
8685
  //#endregion
8215
- //#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
8686
+ //#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
8216
8687
  const C_LESSTHAN = 60;
8217
8688
  /** The raw-HTML forms that scan forward for a fixed closing sequence. */
8218
8689
  const UNTERMINATED_FORMS = [
@@ -8234,7 +8705,7 @@ const rawHtmlConstruct = {
8234
8705
  }
8235
8706
  };
8236
8707
  //#endregion
8237
- //#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
8708
+ //#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
8238
8709
  const reMain = /^[^\n`[\]\\!<&*_'"]+/;
8239
8710
  const reMainGfm = /^[^\n`[\]\\!<&*_'"~w:]+/;
8240
8711
  /** Consume a run of ordinary characters, stopping before any construct's. */
@@ -8254,7 +8725,7 @@ const textConstruct = runConstruct("text", reMain);
8254
8725
  /** Ordinary text under `gfm`, which has three more characters to yield to. */
8255
8726
  const gfmTextConstruct = runConstruct("text", reMainGfm);
8256
8727
  //#endregion
8257
- //#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
8728
+ //#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
8258
8729
  const triggerTable = (constructs) => {
8259
8730
  const table = /* @__PURE__ */ new Map();
8260
8731
  for (const construct of constructs) for (const trigger of construct.triggers) {
@@ -8307,7 +8778,7 @@ const inlineDialect = (dialect) => {
8307
8778
  return found;
8308
8779
  };
8309
8780
  //#endregion
8310
- //#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
8781
+ //#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
8311
8782
  const C_UNDERSCORE = 95;
8312
8783
  const C_ASTERISK = 42;
8313
8784
  const reTrailingSpaces = / +$/;
@@ -8701,7 +9172,7 @@ var InlineParser = class {
8701
9172
  */
8702
9173
  const parseInlines = (source, refmap, position, dialect = "commonmark", footnoteLabels = /* @__PURE__ */ new Set()) => new InlineParser(source, inlineDialect(dialect), position, refmap, footnoteLabels).parse();
8703
9174
  //#endregion
8704
- //#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
9175
+ //#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
8705
9176
  const reWhitespace = /\s/;
8706
9177
  const reCmarkSpace = /[ \t\n\r]/;
8707
9178
  /**
@@ -8756,7 +9227,7 @@ const prepareInline = (block, position, refmap, dialect = "commonmark", footnote
8756
9227
  };
8757
9228
  };
8758
9229
  //#endregion
8759
- //#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
9230
+ //#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
8760
9231
  /** Upstream's cheap pre-filter: a line that cannot start any block. */
8761
9232
  const reMaybeSpecial = /^[#`~*+_=<>0-9-]/;
8762
9233
  var BlockParser = class {
@@ -9163,7 +9634,7 @@ var BlockParser = class {
9163
9634
  */
9164
9635
  const parseBlocks = (text, dialect = "commonmark", frontmatter = false) => new BlockParser(text, blockDialect(dialect), dialect, frontmatter).parse();
9165
9636
  //#endregion
9166
- //#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
9637
+ //#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
9167
9638
  const EMPTY_REFMAP = /* @__PURE__ */ new Map();
9168
9639
  const EMPTY_FOOTNOTE_LABELS = /* @__PURE__ */ new Set();
9169
9640
  /**
@@ -9212,7 +9683,7 @@ const parsePhrasingText = (text, dialect) => {
9212
9683
  }, EMPTY_REFMAP, positionOf, dialect, EMPTY_FOOTNOTE_LABELS);
9213
9684
  };
9214
9685
  //#endregion
9215
- //#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
9686
+ //#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
9216
9687
  const FLOW_CONTEXT = {
9217
9688
  singleLine: false,
9218
9689
  inTable: false,
@@ -9908,7 +10379,7 @@ const stringifyTree = (root) => {
9908
10379
  return body === "" ? "" : `${body}\n`;
9909
10380
  };
9910
10381
  //#endregion
9911
- //#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
10382
+ //#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
9912
10383
  /**
9913
10384
  * The markdown dialects the parser can be pointed at. `"gfm"` — CommonMark
9914
10385
  * 0.31.2 plus the GitHub extensions (tables, strikethrough, autolink
@@ -10284,7 +10755,7 @@ var Markdown = class Markdown {
10284
10755
  static MarkdownFromString = Markdown.fromString();
10285
10756
  };
10286
10757
  //#endregion
10287
- //#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
10758
+ //#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
10288
10759
  /**
10289
10760
  * The remark-ecosystem interop boundary: projection between this package's
10290
10761
  * node classes and plain mdast JSON.
@@ -30980,414 +31451,6 @@ function parseCommitMessage(message) {
30980
31451
  return { description: message };
30981
31452
  }
30982
31453
  //#endregion
30983
- //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/IssueReferences.js
30984
- /**
30985
- * GitHub's closing-keyword issue-reference grammar, as pure functions.
30986
- *
30987
- * @remarks
30988
- * GitHub links an issue to a pull request when the PR's description carries
30989
- * `<keyword> #<number>` for one of nine documented keywords. Consumers speak
30990
- * that grammar in two distinct dialects, and this module models exactly those
30991
- * two — no service, no layer, nothing but strings in and values out:
30992
- *
30993
- * - **Inline-in-prose** ({@link harvestIssueReferences}): a reference may appear anywhere in
30994
- * running text — `"fixes #12 and closes #13"` — with mandatory whitespace
30995
- * and **no colon**, because that is the spelling GitHub itself scans PR
30996
- * bodies for. This is the dialect a release pipeline harvests from commit
30997
- * subjects and PR descriptions.
30998
- * - **Bare-line** ({@link parseBareLineReference}): the whole line, after trimming, *is*
30999
- * the reference — `"Closes: #12"` — with an **optional colon**, because a
31000
- * generated references region writes one reference per line and a colon
31001
- * reads better there. GitHub does not require the colon; the region format
31002
- * allows it, so the parser must too. The dialects differ because their
31003
- * producers do: prose is written by humans for GitHub's scanner, the region
31004
- * is written by tooling for humans.
31005
- *
31006
- * Deliberately out of scope this round: cross-repo references
31007
- * (`owner/repo#N`) and full-URL references
31008
- * (`https://github.com/owner/repo/issues/N`). Both are real GitHub spellings;
31009
- * neither dialect's consumers emit them yet, and guessing at their shape here
31010
- * would freeze an API nobody has driven.
31011
- */
31012
- /**
31013
- * The nine closing keywords GitHub documents, lowercased.
31014
- *
31015
- * @public
31016
- */
31017
- const CLOSING_KEYWORDS = [
31018
- "close",
31019
- "closes",
31020
- "closed",
31021
- "fix",
31022
- "fixes",
31023
- "fixed",
31024
- "resolve",
31025
- "resolves",
31026
- "resolved"
31027
- ];
31028
- /**
31029
- * Both patterns derive from {@link CLOSING_KEYWORDS} so the constant and the
31030
- * grammar cannot drift. Alternation order is safe: the regex engine backtracks
31031
- * through alternatives, so `close` matching inside `closes` fails at the
31032
- * mandatory `#`-introducer and retries the longer keyword.
31033
- */
31034
- const KEYWORDS = CLOSING_KEYWORDS.join("|");
31035
- new RegExp(`\\b(${KEYWORDS})\\s+#(\\d+)`, "gi");
31036
- new RegExp(`^(${KEYWORDS}):?[ \\t]+#(\\d+)$`, "i");
31037
- //#endregion
31038
- //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/ClosingList.js
31039
- /**
31040
- * The closing-list dialect: one whole line naming several issues at once.
31041
- *
31042
- * @remarks
31043
- * The third dialect, alongside the two in `IssueReferences`: after trimming,
31044
- * the **entire** line must be `<keyword>[:] <list>` — keyword
31045
- * case-insensitive (lowercased to canonical form in the result), colon
31046
- * optional, and the list one or more `#<digits>` items separated by `,`,
31047
- * `and`, or the Oxford `, and`. Whitespace inside the line is `[ \t]` only,
31048
- * so an embedded newline cannot smuggle two lines past a parser whose
31049
- * contract is one — the same posture as the bare-line pattern. Any trailing
31050
- * content after the list rejects the line; duplicates are preserved in order,
31051
- * because whether `#1, #1` means one issue or two is the caller's business.
31052
- *
31053
- * Two keyword sets play here. {@link parseClosingList} accepts only the nine
31054
- * closing keywords and yields a {@link ClosingList}; {@link parseReferenceList}
31055
- * additionally accepts the non-closing {@link REFERENCE_KEYWORDS} (`ref`,
31056
- * `refs`, `references`) and reports which set matched via
31057
- * {@link ReferenceList}'s `closing` flag.
31058
- *
31059
- * An item whose digits exceed `Number.MAX_SAFE_INTEGER` rejects the **whole
31060
- * line**, where `harvestIssueReferences` merely skips the one match. The
31061
- * asymmetry is deliberate: a harvest drops one reference out of running
31062
- * prose, but a list line is a single claim about a set of issues, and
31063
- * returning the parseable subset would misrepresent the line as claiming
31064
- * less than it does.
31065
- *
31066
- * Complexity posture: parsing is a single left-to-right character scan —
31067
- * this module contains **no regular expressions at all** — so worst-case
31068
- * time is linear in the line length by construction. There is no
31069
- * backtracking engine to feed, no polynomial blow-up for a scanner to flag,
31070
- * and therefore no input truncation.
31071
- *
31072
- * Beyond the whole-line parsers, {@link harvestReferenceLists} generalizes
31073
- * the same list grammar to the inline-in-prose posture — several lists on
31074
- * one line of running text — and {@link parseClosingLists} /
31075
- * {@link parseReferenceLists} apply the whole-line parsers per line of a
31076
- * multi-line text. All of them ride the same character scan; the no-regex
31077
- * promise above covers every export here.
31078
- */
31079
- /**
31080
- * The non-closing reference keywords the list dialect accepts, lowercased.
31081
- *
31082
- * @remarks
31083
- * GitHub does not act on these — they associate without closing — but a
31084
- * references region writes them, so the parser must read them.
31085
- *
31086
- * @public
31087
- */
31088
- const REFERENCE_KEYWORDS = [
31089
- "ref",
31090
- "refs",
31091
- "references"
31092
- ];
31093
- /**
31094
- * Both keyword tables ARE the exported constants — membership sets built from
31095
- * them once — so the constants and the grammar cannot drift.
31096
- */
31097
- const ALL_KEYWORDS = /* @__PURE__ */ new Set([...CLOSING_KEYWORDS, ...REFERENCE_KEYWORDS]);
31098
- /** Membership test for reporting `closing`, widened once so no call casts. */
31099
- const CLOSING_SET = new Set(CLOSING_KEYWORDS);
31100
- const HASH = 35;
31101
- const COLON = 58;
31102
- const COMMA = 44;
31103
- /** `[ \t]` — the only whitespace the dialect admits, per the module remarks. */
31104
- const isSpaceTab = (code) => code === 32 || code === 9;
31105
- const isDigit$1 = (code) => code >= 48 && code <= 57;
31106
- const isAsciiLetter = (code) => code >= 65 && code <= 90 || code >= 97 && code <= 122;
31107
- /** The index after the run of `[ \t]` starting at `from` (possibly `from` itself). */
31108
- const skipSpaceTab = (line, from) => {
31109
- let index = from;
31110
- while (index < line.length && isSpaceTab(line.charCodeAt(index))) index += 1;
31111
- return index;
31112
- };
31113
- /**
31114
- * One list item at exactly `from`: `#<digits>` and the index one past it.
31115
- * Digits exceeding `Number.MAX_SAFE_INTEGER` report `"unsafe"` rather than a
31116
- * silently rounded issue number, still carrying the index one past the digit
31117
- * run so a caller can skip the item's extent; the whole-line parsers reject
31118
- * on it and {@link harvestReferenceLists} abandons the entire candidate —
31119
- * see the module remarks for why a list never yields a partial reading.
31120
- * Anything that is not `#<digits>` at all is `undefined`.
31121
- */
31122
- const readItem = (line, from) => {
31123
- if (line.charCodeAt(from) !== HASH) return void 0;
31124
- const start = from + 1;
31125
- let index = start;
31126
- while (index < line.length && isDigit$1(line.charCodeAt(index))) index += 1;
31127
- if (index === start) return void 0;
31128
- const value = Number(line.slice(start, index));
31129
- return Number.isSafeInteger(value) ? {
31130
- kind: "item",
31131
- value,
31132
- next: index
31133
- } : {
31134
- kind: "unsafe",
31135
- next: index
31136
- };
31137
- };
31138
- /**
31139
- * One separator at exactly `from`: a comma with optional surrounding `[ \t]`
31140
- * and an optional Oxford `and` (consumed only when its own trailing `[ \t]+`
31141
- * is present), or a bare `and` requiring `[ \t]+` on both sides. `and` is
31142
- * lowercase-only — the keyword head is case-insensitive, the separator is
31143
- * not. Returns the index where the next item must start, or `undefined` when
31144
- * no separator is present.
31145
- */
31146
- const scanSeparator = (line, from) => {
31147
- const afterLeading = skipSpaceTab(line, from);
31148
- if (line.charCodeAt(afterLeading) === COMMA) {
31149
- const afterComma = skipSpaceTab(line, afterLeading + 1);
31150
- if (line.startsWith("and", afterComma)) {
31151
- const afterAnd = skipSpaceTab(line, afterComma + 3);
31152
- if (afterAnd > afterComma + 3) return afterAnd;
31153
- }
31154
- return afterComma;
31155
- }
31156
- if (afterLeading > from && line.startsWith("and", afterLeading)) {
31157
- const afterAnd = skipSpaceTab(line, afterLeading + 3);
31158
- if (afterAnd > afterLeading + 3) return afterAnd;
31159
- }
31160
- };
31161
- /**
31162
- * The scan walk: item, then separator, then item, until the cursor stands
31163
- * exactly at the end of the string. Anything else — a malformed item, an
31164
- * unknown separator, trailing content, an unsafe issue number — is
31165
- * `undefined`, and the caller rejects the whole line.
31166
- */
31167
- const parseItems = (line, from) => {
31168
- const issueNumbers = [];
31169
- let cursor = from;
31170
- for (;;) {
31171
- const item = readItem(line, cursor);
31172
- if (item === void 0 || item.kind === "unsafe") return void 0;
31173
- issueNumbers.push(item.value);
31174
- cursor = item.next;
31175
- if (cursor === line.length) return issueNumbers;
31176
- const next = scanSeparator(line, cursor);
31177
- if (next === void 0) return void 0;
31178
- cursor = next;
31179
- }
31180
- };
31181
- /**
31182
- * The list a whole line carries under either keyword set, or `Option.none()`.
31183
- *
31184
- * @remarks
31185
- * Accepts the nine closing keywords plus {@link REFERENCE_KEYWORDS}, and
31186
- * reports which set matched in the result's `closing` flag. Grammar,
31187
- * whole-line posture and the whole-line rejection of unsafe issue numbers
31188
- * are in the module remarks.
31189
- *
31190
- * @public
31191
- */
31192
- const parseReferenceList = (line) => {
31193
- const trimmed = line.trim();
31194
- let letters = 0;
31195
- while (letters < trimmed.length && isAsciiLetter(trimmed.charCodeAt(letters))) letters += 1;
31196
- if (letters === 0) return effect.Option.none();
31197
- const keyword = trimmed.slice(0, letters).toLowerCase();
31198
- if (!ALL_KEYWORDS.has(keyword)) return effect.Option.none();
31199
- let cursor = letters;
31200
- if (trimmed.charCodeAt(cursor) === COLON) cursor += 1;
31201
- const afterWhitespace = skipSpaceTab(trimmed, cursor);
31202
- if (afterWhitespace === cursor) return effect.Option.none();
31203
- const issueNumbers = parseItems(trimmed, afterWhitespace);
31204
- if (issueNumbers === void 0) return effect.Option.none();
31205
- return effect.Option.some({
31206
- keyword,
31207
- closing: CLOSING_SET.has(keyword),
31208
- issueNumbers
31209
- });
31210
- };
31211
- /**
31212
- * Every reference list a text carries, line by line, across both postures.
31213
- *
31214
- * @remarks
31215
- * The trailer/prose interleave consumers otherwise hand-roll: each line is
31216
- * tried as a whole-line reference list first ({@link parseReferenceList} —
31217
- * colon-tolerant, per the line dialect), and only a line that is not one is
31218
- * harvested inline ({@link harvestReferenceLists} — no colon, per the inline
31219
- * dialect). The preference means a colon-less trailer line contributes its
31220
- * list exactly once, never once per posture.
31221
- *
31222
- * Results carry no offsets, deliberately: this is the line-granular
31223
- * composition, and a consumer that needs spans uses
31224
- * {@link harvestReferenceLists} directly. Duplicates are preserved, in
31225
- * document order.
31226
- *
31227
- * @public
31228
- */
31229
- const collectReferenceLists = (text) => {
31230
- const lists = [];
31231
- for (const line of text.split("\n")) {
31232
- const whole = parseReferenceList(line);
31233
- if (effect.Option.isSome(whole)) {
31234
- lists.push(whole.value);
31235
- continue;
31236
- }
31237
- for (const harvested of harvestReferenceLists(line)) lists.push({
31238
- keyword: harvested.keyword,
31239
- closing: harvested.closing,
31240
- issueNumbers: harvested.issueNumbers
31241
- });
31242
- }
31243
- return lists;
31244
- };
31245
- /** `[A-Za-z0-9_]` — the word-boundary alphabet the inline dialects use. */
31246
- const isWordChar = (code) => isAsciiLetter(code) || isDigit$1(code) || code === 95;
31247
- /**
31248
- * The full JavaScript `\s` set, spelled as a predicate so the module keeps
31249
- * its no-regex promise: ASCII whitespace, NEL-adjacent controls, and the
31250
- * Unicode space separators. Only the keyword→first-item gap of
31251
- * {@link harvestReferenceLists} admits this set — everything inside a list
31252
- * stays `[ \t]`, per the module remarks.
31253
- */
31254
- const isAnyWhitespace = (code) => code === 32 || code >= 9 && code <= 13 || code === 160 || code === 5760 || code >= 8192 && code <= 8202 || code === 8232 || code === 8233 || code === 8239 || code === 8287 || code === 12288 || code === 65279;
31255
- /**
31256
- * Every reference list found inline in `text`, in document order.
31257
- *
31258
- * @remarks
31259
- * The inline-in-prose posture generalized to lists:
31260
- * `Closes #123, Fixes #456` in one line of a commit body yields two
31261
- * single-item lists, where
31262
- * `harvestIssueReferences` reads only the first reference of each and the
31263
- * whole-line parsers read neither. The grammar per candidate:
31264
- *
31265
- * - The keyword is case-insensitive, drawn from either keyword set,
31266
- * lowercased to canonical form in the result, with `closing` reported by
31267
- * set membership. Word boundaries hold on both sides: the characters
31268
- * immediately before and after the keyword's letter run must not be
31269
- * `[A-Za-z0-9_]`, so `recloses #1` and `1closes #1` do not match.
31270
- * - **No colon** — exactly like `harvestIssueReferences`, the colon spelling
31271
- * belongs to the line dialects ({@link parseReferenceList} and the
31272
- * bare-line parser), so `closes: #1` inline yields nothing.
31273
- * - The keyword→first-item gap is any run of whitespace **including
31274
- * newlines**, mirroring the inline dialect's `\s+`.
31275
- * - List continuation uses the `,` / `and` / Oxford separators with `[ \t]`
31276
- * whitespace only, so a list cannot continue past a newline — a later
31277
- * line makes its own claims.
31278
- * - Items are `#<digits>`; duplicates are preserved in order.
31279
- *
31280
- * A list ends at its last valid item: in `closes #1 and fixes #2` the
31281
- * ` and ` before `fixes` fails as a separator because what follows is not
31282
- * `#`, so the text yields `closes: [1]` then `fixes: [2]`. An item past
31283
- * `Number.MAX_SAFE_INTEGER` anywhere in a candidate skips the **entire**
31284
- * candidate — never a partial list, for the same reason
31285
- * {@link parseReferenceList} rejects the whole line — and scanning resumes
31286
- * after the candidate's scanned extent.
31287
- *
31288
- * Like everything in this module, the harvest is a single left-to-right
31289
- * character scan with no regular expressions, so time stays linear in the
31290
- * text length and no input is truncated.
31291
- *
31292
- * @public
31293
- */
31294
- const harvestReferenceLists = (text) => {
31295
- const lists = [];
31296
- let index = 0;
31297
- while (index < text.length) {
31298
- if (!isAsciiLetter(text.charCodeAt(index))) {
31299
- index += 1;
31300
- continue;
31301
- }
31302
- const runStart = index;
31303
- let runEnd = index + 1;
31304
- while (runEnd < text.length && isAsciiLetter(text.charCodeAt(runEnd))) runEnd += 1;
31305
- if (runStart > 0 && isWordChar(text.charCodeAt(runStart - 1)) || runEnd < text.length && isWordChar(text.charCodeAt(runEnd))) {
31306
- index = runEnd;
31307
- continue;
31308
- }
31309
- const keyword = text.slice(runStart, runEnd).toLowerCase();
31310
- if (!ALL_KEYWORDS.has(keyword)) {
31311
- index = runEnd;
31312
- continue;
31313
- }
31314
- let cursor = runEnd;
31315
- while (cursor < text.length && isAnyWhitespace(text.charCodeAt(cursor))) cursor += 1;
31316
- const first = cursor === runEnd ? void 0 : readItem(text, cursor);
31317
- if (first === void 0) {
31318
- index = runEnd;
31319
- continue;
31320
- }
31321
- if (first.kind === "unsafe") {
31322
- index = first.next;
31323
- continue;
31324
- }
31325
- const issueNumbers = [first.value];
31326
- let end = first.next;
31327
- let unsafeNext;
31328
- for (;;) {
31329
- const next = scanSeparator(text, end);
31330
- if (next === void 0) break;
31331
- const item = readItem(text, next);
31332
- if (item === void 0) break;
31333
- if (item.kind === "unsafe") {
31334
- unsafeNext = item.next;
31335
- break;
31336
- }
31337
- issueNumbers.push(item.value);
31338
- end = item.next;
31339
- }
31340
- if (unsafeNext !== void 0) {
31341
- index = unsafeNext;
31342
- continue;
31343
- }
31344
- lists.push({
31345
- keyword,
31346
- closing: CLOSING_SET.has(keyword),
31347
- issueNumbers,
31348
- start: runStart,
31349
- end
31350
- });
31351
- index = end;
31352
- }
31353
- return lists;
31354
- };
31355
- //#endregion
31356
- //#region ../../node_modules/.pnpm/@effected+github-references@0.3.0_effect@4.0.0-rc.115/node_modules/@effected/github-references/KeywordFamily.js
31357
- /**
31358
- * The projection table IS the totality proof: `Record` over the union of
31359
- * both keyword types makes a keyword added to either constant without an
31360
- * entry here fail to compile.
31361
- */
31362
- const FAMILIES = {
31363
- close: "close",
31364
- closes: "close",
31365
- closed: "close",
31366
- fix: "fix",
31367
- fixes: "fix",
31368
- fixed: "fix",
31369
- resolve: "resolve",
31370
- resolves: "resolve",
31371
- resolved: "resolve",
31372
- ref: "ref",
31373
- refs: "ref",
31374
- references: "ref"
31375
- };
31376
- /**
31377
- * The family a keyword belongs to.
31378
- *
31379
- * @remarks
31380
- * Total over both keyword sets by construction — see the module remarks for
31381
- * why an explicit record beats a `startsWith` heuristic. `close`, `closes`
31382
- * and `closed` map to `"close"`; the `fix` and `resolve` conjugations
31383
- * likewise; `ref`, `refs` and `references` map to `"ref"`. The evidence for
31384
- * the projection is downstream: categorized harvesters key maps by family,
31385
- * and each was hand-rolling this collapse.
31386
- *
31387
- * @public
31388
- */
31389
- const keywordFamily = (keyword) => FAMILIES[keyword];
31390
- //#endregion
31391
31454
  //#region ../silk-effects/dist/dev/pkg/changesets/utils/issue-refs.js
31392
31455
  /**
31393
31456
  * The output category each keyword family lands in.
@@ -31454,41 +31517,6 @@ function parseIssueReferences(commitMessage) {
31454
31517
  return references;
31455
31518
  }
31456
31519
  //#endregion
31457
- //#region ../silk-effects/dist/dev/pkg/changesets/utils/logger.js
31458
- /**
31459
- * Log a warning message.
31460
- *
31461
- * @remarks
31462
- * Detection order:
31463
- * 1. If `process.env.VITEST` is set, the message is silently discarded.
31464
- * 2. If `process.env.GITHUB_ACTIONS === "true"`, the message is emitted
31465
- * as a `::warning::` annotation.
31466
- * 3. Otherwise, `console.warn` is used.
31467
- *
31468
- * @param message - The warning message
31469
- * @param args - Additional arguments (concatenated with a space in CI mode)
31470
- *
31471
- * @example
31472
- * ```typescript
31473
- * import { logWarning } from "../utils/logger.js";
31474
- *
31475
- * logWarning("Duplicate dependency entry", "effect@3.19.0");
31476
- * // In CI: "::warning::Duplicate dependency entry effect@3.19.0"
31477
- * // Locally: console.warn("Duplicate dependency entry", "effect@3.19.0")
31478
- * ```
31479
- *
31480
- * @internal
31481
- */
31482
- function logWarning(message, ...args) {
31483
- /* v8 ignore start — environment-specific */
31484
- if (typeof process !== "undefined" && process.env.VITEST) return;
31485
- if (typeof process !== "undefined" && process.env.GITHUB_ACTIONS === "true") {
31486
- const text = args.length > 0 ? `${message} ${args.join(" ")}` : message;
31487
- console.warn(`::warning::${text}`);
31488
- } else console.warn(message, ...args);
31489
- /* v8 ignore stop */
31490
- }
31491
- //#endregion
31492
31520
  //#region ../silk-effects/dist/dev/pkg/changesets/utils/section-parser.js
31493
31521
  /**
31494
31522
  * Parse a changeset summary into structured sections.
@@ -31858,10 +31886,7 @@ function getReleaseLine(changeset, versionType, options) {
31858
31886
  if (changeset.commit) commitInfo = yield* (yield* GitHubService).getInfo({
31859
31887
  commit: changeset.commit,
31860
31888
  repo: options.repo
31861
- }).pipe(effect.Effect.flatMap((raw) => effect.Schema.decodeUnknownEffect(GitHubInfoSchema)(raw).pipe(effect.Effect.map(() => raw), effect.Effect.catch(() => effect.Effect.succeed(raw)))), effect.Effect.catch((error) => {
31862
- logWarning("Could not fetch GitHub info for commit:", changeset.commit ?? "", String(error));
31863
- return effect.Effect.succeed(null);
31864
- }));
31889
+ }).pipe(effect.Effect.flatMap((raw) => effect.Schema.decodeUnknownEffect(GitHubInfoSchema)(raw).pipe(effect.Effect.map(() => raw), effect.Effect.catch(() => effect.Effect.succeed(raw)))), effect.Effect.catch((error) => logWarning("Could not fetch GitHub info for commit:", changeset.commit ?? "", String(error)).pipe(effect.Effect.as(null))));
31865
31890
  const parsed = parseChangesetSections(changeset.summary);
31866
31891
  const firstLine = changeset.summary.split("\n")[0];
31867
31892
  const commitMsg = parseCommitMessage(firstLine);
@@ -31956,29 +31981,48 @@ function getReleaseLine(changeset, versionType, options) {
31956
31981
  */
31957
31982
  const MainLayer = GitHubService.layer;
31958
31983
  /**
31959
- * Changesets API `ChangelogFunctions` implementation.
31984
+ * Build a Changesets `ChangelogFunctions` implementation bound to a warning
31985
+ * mode.
31960
31986
  *
31961
- * This object satisfies the `ChangelogFunctions` contract from
31962
- * `\@changesets/types`. Each method validates options, runs the
31963
- * corresponding Effect program with the merged service layer, and
31964
- * returns a `Promise<string>`.
31987
+ * @remarks
31988
+ * This module is engine code and reads no environment; the host that installs
31989
+ * the functions (the `\@savvy-web/changelog` package under the changesets CLI)
31990
+ * decides the mode from its own `process.env` and passes it here. Each method
31991
+ * validates options, runs the corresponding Effect program with the merged
31992
+ * service layer and the chosen {@link ChangesetLogMode}, and returns a
31993
+ * `Promise<string>`.
31965
31994
  *
31966
- * @internal
31995
+ * @param options - The warning mode to provide
31996
+ * @returns A `ChangelogFunctions` object for `.changeset/config.json`
31997
+ *
31998
+ * @public
31967
31999
  */
31968
- const changelogFunctions$2 = {
31969
- getReleaseLine: async (changeset, versionType, options) => {
31970
- const program = effect.Effect.gen(function* () {
32000
+ function makeChangelogFunctions(options = {}) {
32001
+ const run = (program) => {
32002
+ const provided = program.pipe(effect.Effect.provide(MainLayer));
32003
+ return effect.Effect.runPromise(options.logMode === void 0 ? provided : provided.pipe(effect.Effect.provideService(ChangesetLogMode, options.logMode)));
32004
+ };
32005
+ return {
32006
+ getReleaseLine: async (changeset, versionType, options) => run(effect.Effect.gen(function* () {
31971
32007
  return yield* getReleaseLine(changeset, versionType, yield* validateChangesetOptions(options));
31972
- });
31973
- return effect.Effect.runPromise(program.pipe(effect.Effect.provide(MainLayer)));
31974
- },
31975
- getDependencyReleaseLine: async (changesets, dependenciesUpdated, options) => {
31976
- const program = effect.Effect.gen(function* () {
32008
+ })),
32009
+ getDependencyReleaseLine: async (changesets, dependenciesUpdated, options) => run(effect.Effect.gen(function* () {
31977
32010
  return yield* getDependencyReleaseLine(changesets, dependenciesUpdated, yield* validateChangesetOptions(options));
31978
- });
31979
- return effect.Effect.runPromise(program.pipe(effect.Effect.provide(MainLayer)));
31980
- }
31981
- };
32011
+ }))
32012
+ };
32013
+ }
32014
+ /**
32015
+ * Changesets API `ChangelogFunctions` implementation with the default warning
32016
+ * mode (`"stderr"`).
32017
+ *
32018
+ * @remarks
32019
+ * Equivalent to `makeChangelogFunctions()`. A host that runs under GitHub
32020
+ * Actions or a test runner should call {@link makeChangelogFunctions} with the
32021
+ * mode it detects instead.
32022
+ *
32023
+ * @internal
32024
+ */
32025
+ const changelogFunctions$2 = makeChangelogFunctions();
31982
32026
  //#endregion
31983
32027
  //#region ../silk-effects/dist/dev/pkg/changesets/api/changelog.js
31984
32028
  /**
@@ -32083,10 +32127,13 @@ var Changelog = class {
32083
32127
  * @param versionType - The semantic version bump type (`"major"`, `"minor"`, or `"patch"`)
32084
32128
  * @param options - Configuration object; must include `repo` in `"owner/repo"` format.
32085
32129
  * Pass `null` to use defaults (no GitHub link resolution).
32130
+ * @param logMode - How a failed GitHub lookup is reported (`"stderr"` when omitted);
32131
+ * the host reads its own environment and passes `"github"` / `"silent"` — this
32132
+ * engine never does. See `ChangesetLogMode`.
32086
32133
  * @returns A promise resolving to the formatted markdown string
32087
32134
  */
32088
- static async formatReleaseLine(changeset, versionType, options) {
32089
- return changelogFunctions$2.getReleaseLine(changeset, versionType, options);
32135
+ static async formatReleaseLine(changeset, versionType, options, logMode) {
32136
+ return makeChangelogFunctions(logMode === void 0 ? {} : { logMode }).getReleaseLine(changeset, versionType, options);
32090
32137
  }
32091
32138
  /**
32092
32139
  * Format dependency update release lines into a markdown table.
@@ -32101,11 +32148,13 @@ var Changelog = class {
32101
32148
  * old/new versions and package metadata
32102
32149
  * @param options - Configuration object; must include `repo` in `"owner/repo"` format.
32103
32150
  * Pass `null` to use defaults.
32151
+ * @param logMode - How a failed GitHub lookup is reported (`"stderr"` when omitted);
32152
+ * see {@link Changelog.formatReleaseLine}.
32104
32153
  * @returns A promise resolving to the formatted markdown string containing
32105
32154
  * the dependency update table
32106
32155
  */
32107
- static async formatDependencyReleaseLine(changesets, dependenciesUpdated, options) {
32108
- return changelogFunctions$2.getDependencyReleaseLine(changesets, dependenciesUpdated, options);
32156
+ static async formatDependencyReleaseLine(changesets, dependenciesUpdated, options, logMode) {
32157
+ return makeChangelogFunctions(logMode === void 0 ? {} : { logMode }).getDependencyReleaseLine(changesets, dependenciesUpdated, options);
32109
32158
  }
32110
32159
  };
32111
32160
  //#endregion
@@ -35633,7 +35682,7 @@ var GlobPattern = class GlobPattern extends effect.Schema.Class("GlobPattern")(e
35633
35682
  })));
35634
35683
  };
35635
35684
  //#endregion
35636
- //#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
35685
+ //#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
35637
35686
  /**
35638
35687
  * Typed failure raised by `descend`: a directory mid-walk was unreadable
35639
35688
  * (under `onUnreadable: "fail"`), or the walk descended past `maxDepth`. Depth
@@ -35717,7 +35766,10 @@ const descendImpl = effect.Effect.fn("Walker.descend")(function* (pattern, optio
35717
35766
  reason: "unreadableDirectory",
35718
35767
  path: frame.relative
35719
35768
  }));
35720
- if (onUnreadable === "record") unreadable.push(frame.relative);
35769
+ if (onUnreadable === "record") unreadable.push({
35770
+ path: frame.relative,
35771
+ cause: error
35772
+ });
35721
35773
  return effect.Effect.succeed([]);
35722
35774
  }));
35723
35775
  for (const entry of entries) {
@@ -35751,7 +35803,7 @@ function descend(pattern, options) {
35751
35803
  return descendImpl(pattern, options);
35752
35804
  }
35753
35805
  //#endregion
35754
- //#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
35806
+ //#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
35755
35807
  /**
35756
35808
  * Typed failure raised by {@link compileAndExpand}: the single error the
35757
35809
  * compile+expand recipe fails with, so a caller catches one tag rather than
@@ -40751,7 +40803,7 @@ function globSync(globInput, options) {
40751
40803
  return crawler ? formatPaths(crawler.sync(), relative) : [];
40752
40804
  }
40753
40805
  //#endregion
40754
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/identity.js
40806
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/identity.js
40755
40807
  var require_identity = /* @__PURE__ */ __commonJSMin(((exports) => {
40756
40808
  const ALIAS = Symbol.for("yaml.alias");
40757
40809
  const DOC = Symbol.for("yaml.document");
@@ -40801,7 +40853,7 @@ var require_identity = /* @__PURE__ */ __commonJSMin(((exports) => {
40801
40853
  exports.isSeq = isSeq;
40802
40854
  }));
40803
40855
  //#endregion
40804
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/visit.js
40856
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/visit.js
40805
40857
  var require_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
40806
40858
  var identity = require_identity();
40807
40859
  const BREAK = Symbol("break visit");
@@ -40992,7 +41044,7 @@ var require_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
40992
41044
  exports.visitAsync = visitAsync;
40993
41045
  }));
40994
41046
  //#endregion
40995
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/directives.js
41047
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/directives.js
40996
41048
  var require_directives = /* @__PURE__ */ __commonJSMin(((exports) => {
40997
41049
  var identity = require_identity();
40998
41050
  var visit = require_visit();
@@ -41156,7 +41208,7 @@ var require_directives = /* @__PURE__ */ __commonJSMin(((exports) => {
41156
41208
  exports.Directives = Directives;
41157
41209
  }));
41158
41210
  //#endregion
41159
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/anchors.js
41211
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/anchors.js
41160
41212
  var require_anchors = /* @__PURE__ */ __commonJSMin(((exports) => {
41161
41213
  var identity = require_identity();
41162
41214
  var visit = require_visit();
@@ -41223,7 +41275,7 @@ var require_anchors = /* @__PURE__ */ __commonJSMin(((exports) => {
41223
41275
  exports.findNewAnchor = findNewAnchor;
41224
41276
  }));
41225
41277
  //#endregion
41226
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/applyReviver.js
41278
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/applyReviver.js
41227
41279
  var require_applyReviver = /* @__PURE__ */ __commonJSMin(((exports) => {
41228
41280
  /**
41229
41281
  * Applies the JSON.parse reviver algorithm as defined in the ECMA-262 spec,
@@ -41265,7 +41317,7 @@ var require_applyReviver = /* @__PURE__ */ __commonJSMin(((exports) => {
41265
41317
  exports.applyReviver = applyReviver;
41266
41318
  }));
41267
41319
  //#endregion
41268
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/toJS.js
41320
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/toJS.js
41269
41321
  var require_toJS = /* @__PURE__ */ __commonJSMin(((exports) => {
41270
41322
  var identity = require_identity();
41271
41323
  /**
@@ -41302,7 +41354,7 @@ var require_toJS = /* @__PURE__ */ __commonJSMin(((exports) => {
41302
41354
  exports.toJS = toJS;
41303
41355
  }));
41304
41356
  //#endregion
41305
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Node.js
41357
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Node.js
41306
41358
  var require_Node = /* @__PURE__ */ __commonJSMin(((exports) => {
41307
41359
  var applyReviver = require_applyReviver();
41308
41360
  var identity = require_identity();
@@ -41336,7 +41388,7 @@ var require_Node = /* @__PURE__ */ __commonJSMin(((exports) => {
41336
41388
  exports.NodeBase = NodeBase;
41337
41389
  }));
41338
41390
  //#endregion
41339
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Alias.js
41391
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Alias.js
41340
41392
  var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
41341
41393
  var anchors = require_anchors();
41342
41394
  var visit = require_visit();
@@ -41371,29 +41423,31 @@ var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
41371
41423
  if (node === this) break;
41372
41424
  if (node.anchor === this.source) found = node;
41373
41425
  }
41426
+ if (found && ctx) {
41427
+ const { anchors, doc, maxAliasCount } = ctx;
41428
+ let data = anchors.get(found);
41429
+ if (!data) {
41430
+ toJS.toJS(found, null, ctx);
41431
+ data = anchors.get(found);
41432
+ }
41433
+ /* istanbul ignore if */
41434
+ if (data?.res === void 0) throw new ReferenceError("This should not happen: Alias anchor was not resolved?");
41435
+ if (maxAliasCount >= 0) {
41436
+ data.count += 1;
41437
+ if (data.aliasCount === 0) data.aliasCount = getAliasCount(doc, found, anchors);
41438
+ if (data.count * data.aliasCount > maxAliasCount) throw new ReferenceError("Excessive alias count indicates a resource exhaustion attack");
41439
+ }
41440
+ }
41374
41441
  return found;
41375
41442
  }
41376
41443
  toJSON(_arg, ctx) {
41377
41444
  if (!ctx) return { source: this.source };
41378
- const { anchors, doc, maxAliasCount } = ctx;
41379
- const source = this.resolve(doc, ctx);
41445
+ const source = this.resolve(ctx.doc, ctx);
41380
41446
  if (!source) {
41381
41447
  const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;
41382
41448
  throw new ReferenceError(msg);
41383
41449
  }
41384
- let data = anchors.get(source);
41385
- if (!data) {
41386
- toJS.toJS(source, null, ctx);
41387
- data = anchors.get(source);
41388
- }
41389
- /* istanbul ignore if */
41390
- if (data?.res === void 0) throw new ReferenceError("This should not happen: Alias anchor was not resolved?");
41391
- if (maxAliasCount >= 0) {
41392
- data.count += 1;
41393
- if (data.aliasCount === 0) data.aliasCount = getAliasCount(doc, source, anchors);
41394
- if (data.count * data.aliasCount > maxAliasCount) throw new ReferenceError("Excessive alias count indicates a resource exhaustion attack");
41395
- }
41396
- return data.res;
41450
+ return ctx.anchors.get(source).res;
41397
41451
  }
41398
41452
  toString(ctx, _onComment, _onChompKeep) {
41399
41453
  const src = `*${this.source}`;
@@ -41430,7 +41484,7 @@ var require_Alias = /* @__PURE__ */ __commonJSMin(((exports) => {
41430
41484
  exports.Alias = Alias;
41431
41485
  }));
41432
41486
  //#endregion
41433
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Scalar.js
41487
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Scalar.js
41434
41488
  var require_Scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
41435
41489
  var identity = require_identity();
41436
41490
  var Node = require_Node();
@@ -41457,7 +41511,7 @@ var require_Scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
41457
41511
  exports.isScalarValue = isScalarValue;
41458
41512
  }));
41459
41513
  //#endregion
41460
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/createNode.js
41514
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/createNode.js
41461
41515
  var require_createNode = /* @__PURE__ */ __commonJSMin(((exports) => {
41462
41516
  var Alias = require_Alias();
41463
41517
  var identity = require_identity();
@@ -41520,7 +41574,7 @@ var require_createNode = /* @__PURE__ */ __commonJSMin(((exports) => {
41520
41574
  exports.createNode = createNode;
41521
41575
  }));
41522
41576
  //#endregion
41523
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Collection.js
41577
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Collection.js
41524
41578
  var require_Collection = /* @__PURE__ */ __commonJSMin(((exports) => {
41525
41579
  var createNode = require_createNode();
41526
41580
  var identity = require_identity();
@@ -41641,7 +41695,7 @@ var require_Collection = /* @__PURE__ */ __commonJSMin(((exports) => {
41641
41695
  exports.isEmptyPath = isEmptyPath;
41642
41696
  }));
41643
41697
  //#endregion
41644
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyComment.js
41698
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyComment.js
41645
41699
  var require_stringifyComment = /* @__PURE__ */ __commonJSMin(((exports) => {
41646
41700
  /**
41647
41701
  * Stringifies a comment.
@@ -41661,7 +41715,7 @@ var require_stringifyComment = /* @__PURE__ */ __commonJSMin(((exports) => {
41661
41715
  exports.stringifyComment = stringifyComment;
41662
41716
  }));
41663
41717
  //#endregion
41664
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/foldFlowLines.js
41718
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/foldFlowLines.js
41665
41719
  var require_foldFlowLines = /* @__PURE__ */ __commonJSMin(((exports) => {
41666
41720
  const FOLD_FLOW = "flow";
41667
41721
  const FOLD_BLOCK = "block";
@@ -41781,7 +41835,7 @@ var require_foldFlowLines = /* @__PURE__ */ __commonJSMin(((exports) => {
41781
41835
  exports.foldFlowLines = foldFlowLines;
41782
41836
  }));
41783
41837
  //#endregion
41784
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyString.js
41838
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyString.js
41785
41839
  var require_stringifyString = /* @__PURE__ */ __commonJSMin(((exports) => {
41786
41840
  var Scalar = require_Scalar();
41787
41841
  var foldFlowLines = require_foldFlowLines();
@@ -42005,7 +42059,7 @@ var require_stringifyString = /* @__PURE__ */ __commonJSMin(((exports) => {
42005
42059
  exports.stringifyString = stringifyString;
42006
42060
  }));
42007
42061
  //#endregion
42008
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringify.js
42062
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringify.js
42009
42063
  var require_stringify$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42010
42064
  var anchors = require_anchors();
42011
42065
  var identity = require_identity();
@@ -42113,7 +42167,7 @@ var require_stringify$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42113
42167
  exports.stringify = stringify;
42114
42168
  }));
42115
42169
  //#endregion
42116
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyPair.js
42170
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyPair.js
42117
42171
  var require_stringifyPair = /* @__PURE__ */ __commonJSMin(((exports) => {
42118
42172
  var identity = require_identity();
42119
42173
  var Scalar = require_Scalar();
@@ -42210,7 +42264,7 @@ var require_stringifyPair = /* @__PURE__ */ __commonJSMin(((exports) => {
42210
42264
  exports.stringifyPair = stringifyPair;
42211
42265
  }));
42212
42266
  //#endregion
42213
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/log.js
42267
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/log.js
42214
42268
  var require_log = /* @__PURE__ */ __commonJSMin(((exports) => {
42215
42269
  var node_process$3 = require("process");
42216
42270
  function debug(logLevel, ...messages) {
@@ -42226,7 +42280,7 @@ var require_log = /* @__PURE__ */ __commonJSMin(((exports) => {
42226
42280
  exports.warn = warn;
42227
42281
  }));
42228
42282
  //#endregion
42229
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/merge.js
42283
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/merge.js
42230
42284
  var require_merge = /* @__PURE__ */ __commonJSMin(((exports) => {
42231
42285
  var identity = require_identity();
42232
42286
  var Scalar = require_Scalar();
@@ -42269,7 +42323,7 @@ var require_merge = /* @__PURE__ */ __commonJSMin(((exports) => {
42269
42323
  exports.merge = merge;
42270
42324
  }));
42271
42325
  //#endregion
42272
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/addPairToJSMap.js
42326
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/addPairToJSMap.js
42273
42327
  var require_addPairToJSMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42274
42328
  var log = require_log();
42275
42329
  var merge = require_merge();
@@ -42320,7 +42374,7 @@ var require_addPairToJSMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42320
42374
  exports.addPairToJSMap = addPairToJSMap;
42321
42375
  }));
42322
42376
  //#endregion
42323
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/Pair.js
42377
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/Pair.js
42324
42378
  var require_Pair = /* @__PURE__ */ __commonJSMin(((exports) => {
42325
42379
  var createNode = require_createNode();
42326
42380
  var stringifyPair = require_stringifyPair();
@@ -42353,7 +42407,7 @@ var require_Pair = /* @__PURE__ */ __commonJSMin(((exports) => {
42353
42407
  exports.createPair = createPair;
42354
42408
  }));
42355
42409
  //#endregion
42356
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyCollection.js
42410
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyCollection.js
42357
42411
  var require_stringifyCollection = /* @__PURE__ */ __commonJSMin(((exports) => {
42358
42412
  var identity = require_identity();
42359
42413
  var stringify = require_stringify$1();
@@ -42471,7 +42525,7 @@ var require_stringifyCollection = /* @__PURE__ */ __commonJSMin(((exports) => {
42471
42525
  exports.stringifyCollection = stringifyCollection;
42472
42526
  }));
42473
42527
  //#endregion
42474
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLMap.js
42528
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/YAMLMap.js
42475
42529
  var require_YAMLMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42476
42530
  var stringifyCollection = require_stringifyCollection();
42477
42531
  var addPairToJSMap = require_addPairToJSMap();
@@ -42580,7 +42634,7 @@ var require_YAMLMap = /* @__PURE__ */ __commonJSMin(((exports) => {
42580
42634
  exports.findPair = findPair;
42581
42635
  }));
42582
42636
  //#endregion
42583
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/map.js
42637
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/map.js
42584
42638
  var require_map = /* @__PURE__ */ __commonJSMin(((exports) => {
42585
42639
  var identity = require_identity();
42586
42640
  var YAMLMap = require_YAMLMap();
@@ -42597,7 +42651,7 @@ var require_map = /* @__PURE__ */ __commonJSMin(((exports) => {
42597
42651
  };
42598
42652
  }));
42599
42653
  //#endregion
42600
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/nodes/YAMLSeq.js
42654
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/nodes/YAMLSeq.js
42601
42655
  var require_YAMLSeq = /* @__PURE__ */ __commonJSMin(((exports) => {
42602
42656
  var createNode = require_createNode();
42603
42657
  var stringifyCollection = require_stringifyCollection();
@@ -42703,7 +42757,7 @@ var require_YAMLSeq = /* @__PURE__ */ __commonJSMin(((exports) => {
42703
42757
  exports.YAMLSeq = YAMLSeq;
42704
42758
  }));
42705
42759
  //#endregion
42706
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/seq.js
42760
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/seq.js
42707
42761
  var require_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
42708
42762
  var identity = require_identity();
42709
42763
  var YAMLSeq = require_YAMLSeq();
@@ -42720,7 +42774,7 @@ var require_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
42720
42774
  };
42721
42775
  }));
42722
42776
  //#endregion
42723
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/string.js
42777
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/string.js
42724
42778
  var require_string = /* @__PURE__ */ __commonJSMin(((exports) => {
42725
42779
  var stringifyString = require_stringifyString();
42726
42780
  exports.string = {
@@ -42735,7 +42789,7 @@ var require_string = /* @__PURE__ */ __commonJSMin(((exports) => {
42735
42789
  };
42736
42790
  }));
42737
42791
  //#endregion
42738
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/common/null.js
42792
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/common/null.js
42739
42793
  var require_null = /* @__PURE__ */ __commonJSMin(((exports) => {
42740
42794
  var Scalar = require_Scalar();
42741
42795
  const nullTag = {
@@ -42750,7 +42804,7 @@ var require_null = /* @__PURE__ */ __commonJSMin(((exports) => {
42750
42804
  exports.nullTag = nullTag;
42751
42805
  }));
42752
42806
  //#endregion
42753
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/bool.js
42807
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/bool.js
42754
42808
  var require_bool$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42755
42809
  var Scalar = require_Scalar();
42756
42810
  const boolTag = {
@@ -42769,7 +42823,7 @@ var require_bool$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42769
42823
  exports.boolTag = boolTag;
42770
42824
  }));
42771
42825
  //#endregion
42772
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyNumber.js
42826
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyNumber.js
42773
42827
  var require_stringifyNumber = /* @__PURE__ */ __commonJSMin(((exports) => {
42774
42828
  function stringifyNumber({ format, minFractionDigits, tag, value }) {
42775
42829
  if (typeof value === "bigint") return String(value);
@@ -42790,7 +42844,7 @@ var require_stringifyNumber = /* @__PURE__ */ __commonJSMin(((exports) => {
42790
42844
  exports.stringifyNumber = stringifyNumber;
42791
42845
  }));
42792
42846
  //#endregion
42793
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/float.js
42847
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/float.js
42794
42848
  var require_float$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42795
42849
  var Scalar = require_Scalar();
42796
42850
  var stringifyNumber = require_stringifyNumber();
@@ -42831,7 +42885,7 @@ var require_float$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42831
42885
  exports.floatNaN = floatNaN;
42832
42886
  }));
42833
42887
  //#endregion
42834
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/int.js
42888
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/int.js
42835
42889
  var require_int$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42836
42890
  var stringifyNumber = require_stringifyNumber();
42837
42891
  const intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -42872,7 +42926,7 @@ var require_int$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42872
42926
  exports.intOct = intOct;
42873
42927
  }));
42874
42928
  //#endregion
42875
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/core/schema.js
42929
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/core/schema.js
42876
42930
  var require_schema$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
42877
42931
  var map = require_map();
42878
42932
  var _null = require_null();
@@ -42896,7 +42950,7 @@ var require_schema$2 = /* @__PURE__ */ __commonJSMin(((exports) => {
42896
42950
  ];
42897
42951
  }));
42898
42952
  //#endregion
42899
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/json/schema.js
42953
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/json/schema.js
42900
42954
  var require_schema$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42901
42955
  var Scalar = require_Scalar();
42902
42956
  var map = require_map();
@@ -42958,7 +43012,7 @@ var require_schema$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
42958
43012
  });
42959
43013
  }));
42960
43014
  //#endregion
42961
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/binary.js
43015
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/binary.js
42962
43016
  var require_binary = /* @__PURE__ */ __commonJSMin(((exports) => {
42963
43017
  var node_buffer = require("buffer");
42964
43018
  var Scalar = require_Scalar();
@@ -43014,7 +43068,7 @@ var require_binary = /* @__PURE__ */ __commonJSMin(((exports) => {
43014
43068
  };
43015
43069
  }));
43016
43070
  //#endregion
43017
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
43071
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/pairs.js
43018
43072
  var require_pairs = /* @__PURE__ */ __commonJSMin(((exports) => {
43019
43073
  var identity = require_identity();
43020
43074
  var Pair = require_Pair();
@@ -43075,7 +43129,7 @@ var require_pairs = /* @__PURE__ */ __commonJSMin(((exports) => {
43075
43129
  exports.resolvePairs = resolvePairs;
43076
43130
  }));
43077
43131
  //#endregion
43078
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/omap.js
43132
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/omap.js
43079
43133
  var require_omap = /* @__PURE__ */ __commonJSMin(((exports) => {
43080
43134
  var identity = require_identity();
43081
43135
  var toJS = require_toJS();
@@ -43140,7 +43194,7 @@ var require_omap = /* @__PURE__ */ __commonJSMin(((exports) => {
43140
43194
  exports.omap = omap;
43141
43195
  }));
43142
43196
  //#endregion
43143
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/bool.js
43197
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/bool.js
43144
43198
  var require_bool = /* @__PURE__ */ __commonJSMin(((exports) => {
43145
43199
  var Scalar = require_Scalar();
43146
43200
  function boolStringify({ value, source }, ctx) {
@@ -43167,7 +43221,7 @@ var require_bool = /* @__PURE__ */ __commonJSMin(((exports) => {
43167
43221
  exports.trueTag = trueTag;
43168
43222
  }));
43169
43223
  //#endregion
43170
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/float.js
43224
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/float.js
43171
43225
  var require_float = /* @__PURE__ */ __commonJSMin(((exports) => {
43172
43226
  var Scalar = require_Scalar();
43173
43227
  var stringifyNumber = require_stringifyNumber();
@@ -43211,7 +43265,7 @@ var require_float = /* @__PURE__ */ __commonJSMin(((exports) => {
43211
43265
  exports.floatNaN = floatNaN;
43212
43266
  }));
43213
43267
  //#endregion
43214
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/int.js
43268
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/int.js
43215
43269
  var require_int = /* @__PURE__ */ __commonJSMin(((exports) => {
43216
43270
  var stringifyNumber = require_stringifyNumber();
43217
43271
  const intIdentify = (value) => typeof value === "bigint" || Number.isInteger(value);
@@ -43284,7 +43338,7 @@ var require_int = /* @__PURE__ */ __commonJSMin(((exports) => {
43284
43338
  exports.intOct = intOct;
43285
43339
  }));
43286
43340
  //#endregion
43287
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/set.js
43341
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/set.js
43288
43342
  var require_set = /* @__PURE__ */ __commonJSMin(((exports) => {
43289
43343
  var identity = require_identity();
43290
43344
  var Pair = require_Pair();
@@ -43353,7 +43407,7 @@ var require_set = /* @__PURE__ */ __commonJSMin(((exports) => {
43353
43407
  exports.set = set;
43354
43408
  }));
43355
43409
  //#endregion
43356
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
43410
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js
43357
43411
  var require_timestamp = /* @__PURE__ */ __commonJSMin(((exports) => {
43358
43412
  var stringifyNumber = require_stringifyNumber();
43359
43413
  /** Internal types handle bigint as number, because TS can't figure it out. */
@@ -43436,7 +43490,7 @@ var require_timestamp = /* @__PURE__ */ __commonJSMin(((exports) => {
43436
43490
  exports.timestamp = timestamp;
43437
43491
  }));
43438
43492
  //#endregion
43439
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/yaml-1.1/schema.js
43493
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/yaml-1.1/schema.js
43440
43494
  var require_schema = /* @__PURE__ */ __commonJSMin(((exports) => {
43441
43495
  var map = require_map();
43442
43496
  var _null = require_null();
@@ -43476,7 +43530,7 @@ var require_schema = /* @__PURE__ */ __commonJSMin(((exports) => {
43476
43530
  ];
43477
43531
  }));
43478
43532
  //#endregion
43479
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/tags.js
43533
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/tags.js
43480
43534
  var require_tags = /* @__PURE__ */ __commonJSMin(((exports) => {
43481
43535
  var map = require_map();
43482
43536
  var _null = require_null();
@@ -43562,7 +43616,7 @@ var require_tags = /* @__PURE__ */ __commonJSMin(((exports) => {
43562
43616
  exports.getTags = getTags;
43563
43617
  }));
43564
43618
  //#endregion
43565
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/schema/Schema.js
43619
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/schema/Schema.js
43566
43620
  var require_Schema = /* @__PURE__ */ __commonJSMin(((exports) => {
43567
43621
  var identity = require_identity();
43568
43622
  var map = require_map();
@@ -43590,7 +43644,7 @@ var require_Schema = /* @__PURE__ */ __commonJSMin(((exports) => {
43590
43644
  };
43591
43645
  }));
43592
43646
  //#endregion
43593
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/stringify/stringifyDocument.js
43647
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/stringify/stringifyDocument.js
43594
43648
  var require_stringifyDocument = /* @__PURE__ */ __commonJSMin(((exports) => {
43595
43649
  var identity = require_identity();
43596
43650
  var stringify = require_stringify$1();
@@ -43652,7 +43706,7 @@ var require_stringifyDocument = /* @__PURE__ */ __commonJSMin(((exports) => {
43652
43706
  exports.stringifyDocument = stringifyDocument;
43653
43707
  }));
43654
43708
  //#endregion
43655
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/doc/Document.js
43709
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/doc/Document.js
43656
43710
  var require_Document = /* @__PURE__ */ __commonJSMin(((exports) => {
43657
43711
  var Alias = require_Alias();
43658
43712
  var Collection = require_Collection();
@@ -43933,7 +43987,7 @@ var require_Document = /* @__PURE__ */ __commonJSMin(((exports) => {
43933
43987
  exports.Document = Document;
43934
43988
  }));
43935
43989
  //#endregion
43936
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/errors.js
43990
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/errors.js
43937
43991
  var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => {
43938
43992
  var YAMLError = class extends Error {
43939
43993
  constructor(name, pos, code, message) {
@@ -43986,7 +44040,7 @@ var require_errors = /* @__PURE__ */ __commonJSMin(((exports) => {
43986
44040
  exports.prettifyError = prettifyError;
43987
44041
  }));
43988
44042
  //#endregion
43989
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-props.js
44043
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-props.js
43990
44044
  var require_resolve_props = /* @__PURE__ */ __commonJSMin(((exports) => {
43991
44045
  function resolveProps(tokens, { flow, indicator, next, offset, onError, parentIndent, startOnNewline }) {
43992
44046
  let spaceBefore = false;
@@ -44093,7 +44147,7 @@ var require_resolve_props = /* @__PURE__ */ __commonJSMin(((exports) => {
44093
44147
  exports.resolveProps = resolveProps;
44094
44148
  }));
44095
44149
  //#endregion
44096
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-contains-newline.js
44150
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-contains-newline.js
44097
44151
  var require_util_contains_newline = /* @__PURE__ */ __commonJSMin(((exports) => {
44098
44152
  function containsNewline(key) {
44099
44153
  if (!key) return null;
@@ -44122,7 +44176,7 @@ var require_util_contains_newline = /* @__PURE__ */ __commonJSMin(((exports) =>
44122
44176
  exports.containsNewline = containsNewline;
44123
44177
  }));
44124
44178
  //#endregion
44125
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-flow-indent-check.js
44179
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-flow-indent-check.js
44126
44180
  var require_util_flow_indent_check = /* @__PURE__ */ __commonJSMin(((exports) => {
44127
44181
  var utilContainsNewline = require_util_contains_newline();
44128
44182
  function flowIndentCheck(indent, fc, onError) {
@@ -44134,7 +44188,7 @@ var require_util_flow_indent_check = /* @__PURE__ */ __commonJSMin(((exports) =>
44134
44188
  exports.flowIndentCheck = flowIndentCheck;
44135
44189
  }));
44136
44190
  //#endregion
44137
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-map-includes.js
44191
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-map-includes.js
44138
44192
  var require_util_map_includes = /* @__PURE__ */ __commonJSMin(((exports) => {
44139
44193
  var identity = require_identity();
44140
44194
  function mapIncludes(ctx, items, search) {
@@ -44146,7 +44200,7 @@ var require_util_map_includes = /* @__PURE__ */ __commonJSMin(((exports) => {
44146
44200
  exports.mapIncludes = mapIncludes;
44147
44201
  }));
44148
44202
  //#endregion
44149
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-map.js
44203
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-map.js
44150
44204
  var require_resolve_block_map = /* @__PURE__ */ __commonJSMin(((exports) => {
44151
44205
  var Pair = require_Pair();
44152
44206
  var YAMLMap = require_YAMLMap();
@@ -44234,7 +44288,7 @@ var require_resolve_block_map = /* @__PURE__ */ __commonJSMin(((exports) => {
44234
44288
  exports.resolveBlockMap = resolveBlockMap;
44235
44289
  }));
44236
44290
  //#endregion
44237
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-seq.js
44291
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-seq.js
44238
44292
  var require_resolve_block_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
44239
44293
  var YAMLSeq = require_YAMLSeq();
44240
44294
  var resolveProps = require_resolve_props();
@@ -44279,7 +44333,7 @@ var require_resolve_block_seq = /* @__PURE__ */ __commonJSMin(((exports) => {
44279
44333
  exports.resolveBlockSeq = resolveBlockSeq;
44280
44334
  }));
44281
44335
  //#endregion
44282
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-end.js
44336
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-end.js
44283
44337
  var require_resolve_end = /* @__PURE__ */ __commonJSMin(((exports) => {
44284
44338
  function resolveEnd(end, offset, reqSpace, onError) {
44285
44339
  let comment = "";
@@ -44317,7 +44371,7 @@ var require_resolve_end = /* @__PURE__ */ __commonJSMin(((exports) => {
44317
44371
  exports.resolveEnd = resolveEnd;
44318
44372
  }));
44319
44373
  //#endregion
44320
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-collection.js
44374
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-flow-collection.js
44321
44375
  var require_resolve_flow_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
44322
44376
  var identity = require_identity();
44323
44377
  var Pair = require_Pair();
@@ -44480,7 +44534,7 @@ var require_resolve_flow_collection = /* @__PURE__ */ __commonJSMin(((exports) =
44480
44534
  exports.resolveFlowCollection = resolveFlowCollection;
44481
44535
  }));
44482
44536
  //#endregion
44483
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-collection.js
44537
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-collection.js
44484
44538
  var require_compose_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
44485
44539
  var identity = require_identity();
44486
44540
  var Scalar = require_Scalar();
@@ -44532,7 +44586,7 @@ var require_compose_collection = /* @__PURE__ */ __commonJSMin(((exports) => {
44532
44586
  exports.composeCollection = composeCollection;
44533
44587
  }));
44534
44588
  //#endregion
44535
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-block-scalar.js
44589
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-block-scalar.js
44536
44590
  var require_resolve_block_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44537
44591
  var Scalar = require_Scalar();
44538
44592
  function resolveBlockScalar(ctx, scalar, onError) {
@@ -44709,7 +44763,7 @@ var require_resolve_block_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44709
44763
  exports.resolveBlockScalar = resolveBlockScalar;
44710
44764
  }));
44711
44765
  //#endregion
44712
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/resolve-flow-scalar.js
44766
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/resolve-flow-scalar.js
44713
44767
  var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44714
44768
  var Scalar = require_Scalar();
44715
44769
  var resolveEnd = require_resolve_end();
@@ -44779,40 +44833,41 @@ var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44779
44833
  case "`": badChar = `reserved character ${source[0]}`;
44780
44834
  }
44781
44835
  if (badChar) onError(0, "BAD_SCALAR_START", `Plain value cannot start with ${badChar}`);
44782
- return foldLines(source);
44836
+ return unfoldLines(source);
44783
44837
  }
44784
44838
  function singleQuotedValue(source, onError) {
44785
44839
  if (source[source.length - 1] !== "'" || source.length === 1) onError(source.length, "MISSING_CHAR", "Missing closing 'quote");
44786
- return foldLines(source.slice(1, -1)).replace(/''/g, "'");
44840
+ return unfoldLines(source.slice(1, -1)).replace(/''/g, "'");
44787
44841
  }
44788
- function foldLines(source) {
44842
+ function unfoldLines(source) {
44843
+ const line = /(.*?)\r?\n/sy;
44844
+ let match = line.exec(source);
44845
+ if (!match) return source;
44789
44846
  /**
44790
- * The negative lookbehind here and in the `re` RegExp is to
44847
+ * The negative lookbehinds in these RegExps are to
44791
44848
  * prevent causing a polynomial search time in certain cases.
44792
44849
  *
44793
- * The try-catch is for Safari, which doesn't support this yet:
44850
+ * The try-catch is for Safari < 16.4 and other old browsers:
44794
44851
  * https://caniuse.com/js-regexp-lookbehind
44795
44852
  */
44796
- let first, line;
44853
+ let trimEnd, trimBoth;
44797
44854
  try {
44798
- first = new RegExp("(.*?)(?<![ ])[ ]*\r?\n", "sy");
44799
- line = new RegExp("[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?\n", "sy");
44855
+ trimEnd = new RegExp("(?<![ ])[ ]+$");
44856
+ trimBoth = new RegExp("^[ ]+|(?<![ ])[ ]+$", "g");
44800
44857
  } catch {
44801
- first = /(.*?)[ \t]*\r?\n/sy;
44802
- line = /[ \t]*(.*?)[ \t]*\r?\n/sy;
44858
+ trimEnd = /[ \t]+$/;
44859
+ trimBoth = /^[ \t]+|[ \t]+$/g;
44803
44860
  }
44804
- let match = first.exec(source);
44805
- if (!match) return source;
44806
- let res = match[1];
44861
+ let res = match[1].replace(trimEnd, "");
44807
44862
  let sep = " ";
44808
- let pos = first.lastIndex;
44809
- line.lastIndex = pos;
44863
+ let pos = line.lastIndex;
44810
44864
  while (match = line.exec(source)) {
44811
- if (match[1] === "") {
44865
+ const lm = match[1].replace(trimBoth, "");
44866
+ if (lm === "") {
44812
44867
  if (sep === "\n") res += sep;
44813
44868
  else sep = "\n";
44814
44869
  } else {
44815
- res += sep + match[1];
44870
+ res += sep + lm;
44816
44871
  sep = " ";
44817
44872
  }
44818
44873
  pos = line.lastIndex;
@@ -44913,7 +44968,7 @@ var require_resolve_flow_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44913
44968
  exports.resolveFlowScalar = resolveFlowScalar;
44914
44969
  }));
44915
44970
  //#endregion
44916
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-scalar.js
44971
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-scalar.js
44917
44972
  var require_compose_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44918
44973
  var identity = require_identity();
44919
44974
  var Scalar = require_Scalar();
@@ -44974,7 +45029,7 @@ var require_compose_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
44974
45029
  exports.composeScalar = composeScalar;
44975
45030
  }));
44976
45031
  //#endregion
44977
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/util-empty-scalar-position.js
45032
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/util-empty-scalar-position.js
44978
45033
  var require_util_empty_scalar_position = /* @__PURE__ */ __commonJSMin(((exports) => {
44979
45034
  function emptyScalarPosition(offset, before, pos) {
44980
45035
  if (before) {
@@ -45001,7 +45056,7 @@ var require_util_empty_scalar_position = /* @__PURE__ */ __commonJSMin(((exports
45001
45056
  exports.emptyScalarPosition = emptyScalarPosition;
45002
45057
  }));
45003
45058
  //#endregion
45004
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-node.js
45059
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-node.js
45005
45060
  var require_compose_node = /* @__PURE__ */ __commonJSMin(((exports) => {
45006
45061
  var Alias = require_Alias();
45007
45062
  var identity = require_identity();
@@ -45092,7 +45147,7 @@ var require_compose_node = /* @__PURE__ */ __commonJSMin(((exports) => {
45092
45147
  exports.composeNode = composeNode;
45093
45148
  }));
45094
45149
  //#endregion
45095
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/compose-doc.js
45150
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/compose-doc.js
45096
45151
  var require_compose_doc = /* @__PURE__ */ __commonJSMin(((exports) => {
45097
45152
  var Document = require_Document();
45098
45153
  var composeNode = require_compose_node();
@@ -45134,7 +45189,7 @@ var require_compose_doc = /* @__PURE__ */ __commonJSMin(((exports) => {
45134
45189
  exports.composeDoc = composeDoc;
45135
45190
  }));
45136
45191
  //#endregion
45137
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/compose/composer.js
45192
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/compose/composer.js
45138
45193
  var require_composer = /* @__PURE__ */ __commonJSMin(((exports) => {
45139
45194
  var node_process$2 = require("process");
45140
45195
  var directives = require_directives();
@@ -45332,7 +45387,7 @@ var require_composer = /* @__PURE__ */ __commonJSMin(((exports) => {
45332
45387
  exports.Composer = Composer;
45333
45388
  }));
45334
45389
  //#endregion
45335
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-scalar.js
45390
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-scalar.js
45336
45391
  var require_cst_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
45337
45392
  var resolveBlockScalar = require_resolve_block_scalar();
45338
45393
  var resolveFlowScalar = require_resolve_flow_scalar();
@@ -45599,7 +45654,7 @@ var require_cst_scalar = /* @__PURE__ */ __commonJSMin(((exports) => {
45599
45654
  exports.setScalarValue = setScalarValue;
45600
45655
  }));
45601
45656
  //#endregion
45602
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-stringify.js
45657
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-stringify.js
45603
45658
  var require_cst_stringify = /* @__PURE__ */ __commonJSMin(((exports) => {
45604
45659
  /**
45605
45660
  * Stringify a CST document, token, or collection item
@@ -45650,7 +45705,7 @@ var require_cst_stringify = /* @__PURE__ */ __commonJSMin(((exports) => {
45650
45705
  exports.stringify = stringify;
45651
45706
  }));
45652
45707
  //#endregion
45653
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst-visit.js
45708
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst-visit.js
45654
45709
  var require_cst_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
45655
45710
  const BREAK = Symbol("break visit");
45656
45711
  const SKIP = Symbol("skip children");
@@ -45741,7 +45796,7 @@ var require_cst_visit = /* @__PURE__ */ __commonJSMin(((exports) => {
45741
45796
  exports.visit = visit;
45742
45797
  }));
45743
45798
  //#endregion
45744
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/cst.js
45799
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/cst.js
45745
45800
  var require_cst = /* @__PURE__ */ __commonJSMin(((exports) => {
45746
45801
  var cstScalar = require_cst_scalar();
45747
45802
  var cstStringify = require_cst_stringify();
@@ -45820,7 +45875,7 @@ var require_cst = /* @__PURE__ */ __commonJSMin(((exports) => {
45820
45875
  exports.tokenType = tokenType;
45821
45876
  }));
45822
45877
  //#endregion
45823
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/lexer.js
45878
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/lexer.js
45824
45879
  var require_lexer = /* @__PURE__ */ __commonJSMin(((exports) => {
45825
45880
  var cst = require_cst();
45826
45881
  function isEmpty(ch) {
@@ -46353,7 +46408,7 @@ var require_lexer = /* @__PURE__ */ __commonJSMin(((exports) => {
46353
46408
  exports.Lexer = Lexer;
46354
46409
  }));
46355
46410
  //#endregion
46356
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/line-counter.js
46411
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/line-counter.js
46357
46412
  var require_line_counter = /* @__PURE__ */ __commonJSMin(((exports) => {
46358
46413
  /**
46359
46414
  * Tracks newlines during parsing in order to provide an efficient API for
@@ -46400,7 +46455,7 @@ var require_line_counter = /* @__PURE__ */ __commonJSMin(((exports) => {
46400
46455
  exports.LineCounter = LineCounter;
46401
46456
  }));
46402
46457
  //#endregion
46403
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/parse/parser.js
46458
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/parse/parser.js
46404
46459
  var require_parser = /* @__PURE__ */ __commonJSMin(((exports) => {
46405
46460
  var node_process$1 = require("process");
46406
46461
  var cst = require_cst();
@@ -47266,7 +47321,7 @@ var require_parser = /* @__PURE__ */ __commonJSMin(((exports) => {
47266
47321
  exports.Parser = Parser;
47267
47322
  }));
47268
47323
  //#endregion
47269
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/public-api.js
47324
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/public-api.js
47270
47325
  var require_public_api = /* @__PURE__ */ __commonJSMin(((exports) => {
47271
47326
  var composer = require_composer();
47272
47327
  var Document = require_Document();
@@ -47355,7 +47410,7 @@ var require_public_api = /* @__PURE__ */ __commonJSMin(((exports) => {
47355
47410
  exports.stringify = stringify;
47356
47411
  }));
47357
47412
  //#endregion
47358
- //#region ../../node_modules/.pnpm/yaml@2.9.0/node_modules/yaml/dist/index.js
47413
+ //#region ../../node_modules/.pnpm/yaml@2.9.1/node_modules/yaml/dist/index.js
47359
47414
  var require_dist = /* @__PURE__ */ __commonJSMin(((exports) => {
47360
47415
  var composer = require_composer();
47361
47416
  var Document = require_Document();
@@ -55733,17 +55788,8 @@ const SilkChangesetsRules = [
55733
55788
  DependencyTableFormatRule
55734
55789
  ];
55735
55790
  //#endregion
55736
- //#region src/changesets/changelog.ts
55737
- /**
55738
- * Changesets API changelog formatter shim for \@savvy-web/silk.
55739
- *
55740
- * Drop-in replacement for \@savvy-web/changesets/changelog.
55741
- * The default export is the ChangelogFunctions object consumed by the
55742
- * Changesets CLI via the changelog field in .changeset/config.json.
55743
- *
55744
- * @packageDocumentation
55745
- */
55746
- const changelogFunctions = (/* @__PURE__ */ __exportAll({
55791
+ //#region ../silk-effects/dist/dev/pkg/changesets/index.js
55792
+ var changesets_exports = /* @__PURE__ */ __exportAll({
55747
55793
  AggregateDependencyTablesPlugin: () => AggregateDependencyTablesPlugin,
55748
55794
  AppliedReleaseEntrySchema: () => AppliedReleaseEntrySchema,
55749
55795
  AppliedReleaseSchema: () => AppliedReleaseSchema,
@@ -55757,6 +55803,7 @@ const changelogFunctions = (/* @__PURE__ */ __exportAll({
55757
55803
  ChangelogTransformer: () => ChangelogTransformer,
55758
55804
  ChangesetIOError: () => ChangesetIOError,
55759
55805
  ChangesetLinter: () => ChangesetLinter,
55806
+ ChangesetLogMode: () => ChangesetLogMode,
55760
55807
  ChangesetOptionsSchema: () => ChangesetOptionsSchema,
55761
55808
  ChangesetPreviewSchema: () => ChangesetPreviewSchema,
55762
55809
  ChangesetSchema: () => ChangesetSchema,
@@ -55843,6 +55890,7 @@ const changelogFunctions = (/* @__PURE__ */ __exportAll({
55843
55890
  isPureDependencyChangeset: () => isPureDependencyChangeset,
55844
55891
  listPublishablePackageNames: () => listPublishablePackageNames,
55845
55892
  makeBranchAnalyzerTest: () => makeBranchAnalyzerTest,
55893
+ makeChangelogFunctions: () => makeChangelogFunctions,
55846
55894
  makeConfigInspectorTest: () => makeConfigInspectorTest,
55847
55895
  makeDepsRegenDefault: () => makeDepsRegenDefault,
55848
55896
  makeGitHubTest: () => makeGitHubTest,
@@ -55850,6 +55898,28 @@ const changelogFunctions = (/* @__PURE__ */ __exportAll({
55850
55898
  parseChangesetPackages: () => parseChangesetPackages,
55851
55899
  serializeDependencyTableToMarkdown: () => serializeDependencyTableToMarkdown,
55852
55900
  vanillaChangelogFunctions: () => vanillaChangelogFunctions
55853
- })).changelogFunctions;
55901
+ });
55902
+ //#endregion
55903
+ //#region src/changesets/changelog.ts
55904
+ /**
55905
+ * Changesets API changelog formatter shim for \@savvy-web/silk.
55906
+ *
55907
+ * Drop-in replacement for \@savvy-web/changesets/changelog (superseded by
55908
+ * \@savvy-web/changelog, which this mirrors exactly). The default export is
55909
+ * the ChangelogFunctions object consumed by the Changesets CLI via the
55910
+ * changelog field in .changeset/config.json.
55911
+ *
55912
+ * This shim is the host adapter for the changesets CLI, a foreign process
55913
+ * that supplies no context of its own, so the warning mode is read from
55914
+ * `process.env` HERE and handed to the engine, which never reads it.
55915
+ *
55916
+ * @packageDocumentation
55917
+ */
55918
+ const logMode = () => {
55919
+ if (process.env.VITEST) return "silent";
55920
+ if (process.env.GITHUB_ACTIONS === "true") return "github";
55921
+ return "stderr";
55922
+ };
55923
+ const changelogFunctions = changesets_exports.makeChangelogFunctions({ logMode: logMode() });
55854
55924
  //#endregion
55855
55925
  module.exports = changelogFunctions;