@postman-cse/onboarding-bootstrap 2.9.5 → 2.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.cjs CHANGED
@@ -257726,6 +257726,18 @@ async function retry(operation, options = {}) {
257726
257726
  }
257727
257727
  throw new Error("Retry exhausted without returning or throwing");
257728
257728
  }
257729
+ function fullJitterDelayMs(attempt, baseMs, capMs, random = Math.random) {
257730
+ const ceiling = Math.min(capMs, baseMs * 2 ** Math.max(0, attempt));
257731
+ return Math.floor(random() * Math.max(0, ceiling));
257732
+ }
257733
+ function parseRetryAfterMs2(value) {
257734
+ if (!value) return void 0;
257735
+ const trimmed = value.trim();
257736
+ if (/^\d+$/.test(trimmed)) return Number(trimmed) * 1e3;
257737
+ const when = Date.parse(trimmed);
257738
+ if (!Number.isNaN(when)) return Math.max(0, when - Date.now());
257739
+ return void 0;
257740
+ }
257729
257741
 
257730
257742
  // src/lib/postman/postman-ec-client.ts
257731
257743
  var EC_WRITE_MAX_ATTEMPTS = 3;
@@ -262339,6 +262351,12 @@ var BOOTSTRAP_BARE_UUID_RE = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9
262339
262351
  function isMissingPatchValueError(error) {
262340
262352
  return error instanceof HttpError && error.status === 400 && error.responseBody.includes("Remove operation must point to an existing value");
262341
262353
  }
262354
+ function isRejectedPatchError(error) {
262355
+ return error instanceof HttpError && error.status === 400 && /REJECTED_PATCH|must update at least one/i.test(
262356
+ `${error.message}
262357
+ ${error.responseBody ?? ""}`
262358
+ );
262359
+ }
262342
262360
  function canonicalize(value) {
262343
262361
  if (Array.isArray(value)) return value.map(canonicalize);
262344
262362
  if (value && typeof value === "object") {
@@ -262402,6 +262420,7 @@ var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
262402
262420
  static DEFAULT_GENERATION_POLL_DELAY_MS = 2e3;
262403
262421
  gateway;
262404
262422
  sleep;
262423
+ random;
262405
262424
  generationPollAttempts;
262406
262425
  generationPollDelayMs;
262407
262426
  createIdentity;
@@ -262409,6 +262428,7 @@ var PostmanGatewayAssetsClient = class _PostmanGatewayAssetsClient {
262409
262428
  this.gateway = options.gateway;
262410
262429
  this.createIdentity = options.createIdentity ?? import_node_crypto2.randomUUID;
262411
262430
  this.sleep = options.sleep ?? ((delayMs) => new Promise((resolve4) => setTimeout(resolve4, delayMs)));
262431
+ this.random = options.random ?? Math.random;
262412
262432
  this.generationPollAttempts = resolvePollBudget(
262413
262433
  options.generationPollAttempts,
262414
262434
  process.env.POSTMAN_GENERATION_POLL_ATTEMPTS,
@@ -263183,7 +263203,7 @@ ${error.responseBody ?? ""}`
263183
263203
  if (!retriable || attempt === maxAttempts - 1) {
263184
263204
  throw error;
263185
263205
  }
263186
- await this.sleep(Math.min(2e3, 300 * 2 ** attempt));
263206
+ await this.sleep(fullJitterDelayMs(attempt, 300, 2e3, this.random));
263187
263207
  }
263188
263208
  }
263189
263209
  }
@@ -263434,14 +263454,19 @@ ${error.responseBody ?? ""}`
263434
263454
  { type: "afterResponse", code: exec.join("\n"), language: "text/javascript" }
263435
263455
  ];
263436
263456
  for (const script of plan.scripts) {
263437
- await this.gateway.requestJson({
263438
- service: "collection",
263439
- method: "patch",
263440
- path: `/v3/collections/${cid}/items/${script.itemId}`,
263441
- retry: "safe",
263442
- headers: { "X-Entity-Type": "http-request" },
263443
- body: [{ op: "add", path: "/scripts", value: toV3Scripts(script.exec) }]
263444
- });
263457
+ try {
263458
+ await this.gateway.requestJson({
263459
+ service: "collection",
263460
+ method: "patch",
263461
+ path: `/v3/collections/${cid}/items/${script.itemId}`,
263462
+ retry: "safe",
263463
+ headers: { "X-Entity-Type": "http-request" },
263464
+ body: [{ op: "add", path: "/scripts", value: toV3Scripts(script.exec) }]
263465
+ });
263466
+ } catch (error) {
263467
+ if (isRejectedPatchError(error)) continue;
263468
+ throw error;
263469
+ }
263445
263470
  }
263446
263471
  if (!items.some((i) => String(i.name ?? "") === "00 - Resolve Secrets")) {
263447
263472
  const created = await this.gateway.requestJson({
@@ -263646,36 +263671,47 @@ ${error.responseBody ?? ""}`
263646
263671
  async createItemTree(cid, items, parentId) {
263647
263672
  for (const item of items) {
263648
263673
  const kind = String(item.$kind ?? "http-request");
263649
- let created;
263650
- try {
263651
- created = await this.gateway.requestJson({
263652
- service: "collection",
263653
- method: "post",
263654
- path: `/v3/collections/${cid}/items/`,
263655
- retry: "none",
263656
- headers: { "X-Entity-Type": kind },
263657
- body: this.buildItemCreateBody(item, parentId)
263658
- });
263659
- } catch (error) {
263660
- if (!isAmbiguousTransportError(error)) throw error;
263661
- const name = String(item.name ?? "Untitled");
263662
- const matches = (await this.listCollectionItems(cid)).filter((candidate) => {
263663
- if (String(candidate.name ?? candidate.title ?? "") !== name) return false;
263664
- if (String(candidate.$kind ?? candidate.type ?? "http-request") !== kind) return false;
263665
- const position = asRecord8(candidate.position);
263666
- const parent = asRecord8(position?.parent);
263667
- const candidateParent = String(parent?.id ?? position?.parent ?? candidate.parent ?? "").trim();
263668
- return Boolean(candidateParent) && this.bareModelId(candidateParent) === this.bareModelId(parentId);
263669
- });
263670
- const match = adoptExactMatch(
263671
- `collection-item:${cid}:${parentId}:${kind}:${name}`,
263672
- matches,
263673
- (candidate) => String(candidate.id ?? "")
263674
- );
263675
- if (!match) throw error;
263676
- created = { data: { id: match.id } };
263674
+ const maxAttempts = 4;
263675
+ let newId = "";
263676
+ for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
263677
+ let created;
263678
+ try {
263679
+ created = await this.gateway.requestJson({
263680
+ service: "collection",
263681
+ method: "post",
263682
+ path: `/v3/collections/${cid}/items/`,
263683
+ retry: "none",
263684
+ headers: { "X-Entity-Type": kind },
263685
+ body: this.buildItemCreateBody(item, parentId)
263686
+ });
263687
+ } catch (error) {
263688
+ if (!isAmbiguousTransportError(error)) throw error;
263689
+ const name = String(item.name ?? "Untitled");
263690
+ const matches = (await this.listCollectionItems(cid)).filter((candidate) => {
263691
+ if (String(candidate.name ?? candidate.title ?? "") !== name) return false;
263692
+ if (String(candidate.$kind ?? candidate.type ?? "http-request") !== kind) return false;
263693
+ const position = asRecord8(candidate.position);
263694
+ const parent = asRecord8(position?.parent);
263695
+ const candidateParent = String(parent?.id ?? position?.parent ?? candidate.parent ?? "").trim();
263696
+ return Boolean(candidateParent) && this.bareModelId(candidateParent) === this.bareModelId(parentId);
263697
+ });
263698
+ const match = adoptExactMatch(
263699
+ `collection-item:${cid}:${parentId}:${kind}:${name}`,
263700
+ matches,
263701
+ (candidate) => String(candidate.id ?? "")
263702
+ );
263703
+ if (match) {
263704
+ created = { data: { id: match.id } };
263705
+ } else {
263706
+ const retriable = error instanceof HttpError && error.status >= 500;
263707
+ if (!retriable || attempt === maxAttempts) throw error;
263708
+ await this.sleep(fullJitterDelayMs(attempt - 1, 300, 2e3, this.random));
263709
+ continue;
263710
+ }
263711
+ }
263712
+ newId = String(asRecord8(created?.data)?.id ?? "").trim();
263713
+ if (newId) break;
263677
263714
  }
263678
- const newId = String(asRecord8(created?.data)?.id ?? "").trim();
263679
263715
  if (!newId) {
263680
263716
  throw new Error(
263681
263717
  `Item create did not return an id for ${String(item.name ?? "item")}`
@@ -263718,6 +263754,30 @@ ${error.responseBody ?? ""}`
263718
263754
  * - `remove` of /description always works (field exists as "")
263719
263755
  * - on update, GET the root first and only remove fields that currently exist
263720
263756
  */
263757
+ /**
263758
+ * GET a collection root, retrying through the v3 surface's read-after-write
263759
+ * 404 lag. A freshly generated/renamed collection can transiently report
263760
+ * RESOURCE_NOT_FOUND for a few seconds (worse under concurrent runner load);
263761
+ * retrying absorbs that instead of hard-failing the run.
263762
+ */
263763
+ async getCollectionRoot(cid) {
263764
+ const got = await retry(
263765
+ () => this.gateway.requestJson({
263766
+ service: "collection",
263767
+ method: "get",
263768
+ path: `/v3/collections/${cid}`,
263769
+ retry: "none"
263770
+ }),
263771
+ {
263772
+ maxAttempts: 6,
263773
+ delayMs: 1e3,
263774
+ backoffMultiplier: 2,
263775
+ maxDelayMs: 8e3,
263776
+ shouldRetry: (error) => error instanceof HttpError && error.status === 404
263777
+ }
263778
+ );
263779
+ return asRecord8(got?.data);
263780
+ }
263721
263781
  async applyCollectionLevelSettings(cid, v3, options = {}) {
263722
263782
  const ops = [];
263723
263783
  if (options.rename && typeof v3.name === "string" && v3.name) {
@@ -263725,12 +263785,7 @@ ${error.responseBody ?? ""}`
263725
263785
  }
263726
263786
  let current = null;
263727
263787
  if (options.reconcileRemovals) {
263728
- const got = await this.gateway.requestJson({
263729
- service: "collection",
263730
- method: "get",
263731
- path: `/v3/collections/${cid}`
263732
- });
263733
- current = asRecord8(got?.data);
263788
+ current = await this.getCollectionRoot(cid);
263734
263789
  }
263735
263790
  const hasDescription = typeof v3.description === "string" && v3.description.length > 0;
263736
263791
  if (hasDescription) {
@@ -263769,6 +263824,9 @@ ${error.responseBody ?? ""}`
263769
263824
  if (isMissingPatchValueError(error) && ops.some((op) => op.op === "remove") && await this.verifyRootSettingsApplied(cid, ops)) {
263770
263825
  return;
263771
263826
  }
263827
+ if (isRejectedPatchError(error) && await this.verifyRootSettingsApplied(cid, ops)) {
263828
+ return;
263829
+ }
263772
263830
  throw error;
263773
263831
  }
263774
263832
  }
@@ -263892,7 +263950,9 @@ ${error.responseBody ?? ""}`
263892
263950
  }
263893
263951
  /** Patch only the durable collection description without reconciling its item tree. */
263894
263952
  async updateCollectionDescription(collectionUid, description) {
263895
- await this.applyCollectionLevelSettings(this.bareModelId(collectionUid), { description });
263953
+ const cid = this.bareModelId(collectionUid);
263954
+ await this.getCollectionRoot(cid);
263955
+ await this.applyCollectionLevelSettings(cid, { description });
263896
263956
  }
263897
263957
  /**
263898
263958
  * Full-replace reconcile of a curated local v2.1.0 or collection v3 payload: delete every
@@ -263975,6 +264035,7 @@ function detectInnerError(body2) {
263975
264035
  return typeof innerStatus === "number" && innerStatus >= 400 ? innerStatus : 502;
263976
264036
  }
263977
264037
  function isTransientGatewayError(status, body2) {
264038
+ if (status === 429) return true;
263978
264039
  if (status === 502 || status === 503 || status === 504) return true;
263979
264040
  if (status >= 500 && (body2.includes("ESOCKETTIMEDOUT") || body2.includes("ETIMEDOUT") || body2.includes("ECONNRESET") || body2.includes("serverError") || body2.includes("downstream"))) {
263980
264041
  return true;
@@ -263993,8 +264054,10 @@ var AccessTokenGatewayClient = class {
263993
264054
  secretMasker;
263994
264055
  maxRetries;
263995
264056
  retryBaseDelayMs;
264057
+ retryMaxDelayMs;
263996
264058
  requestTimeoutMs;
263997
264059
  sleepImpl;
264060
+ randomImpl;
263998
264061
  constructor(options) {
263999
264062
  this.tokenProvider = options.tokenProvider;
264000
264063
  this.bifrostBaseUrl = String(
@@ -264006,8 +264069,10 @@ var AccessTokenGatewayClient = class {
264006
264069
  this.secretMasker = options.secretMasker ?? createSecretMasker([this.tokenProvider.current()]);
264007
264070
  this.maxRetries = options.maxRetries ?? 3;
264008
264071
  this.retryBaseDelayMs = options.retryBaseDelayMs ?? 400;
264072
+ this.retryMaxDelayMs = options.retryMaxDelayMs ?? 5e3;
264009
264073
  this.requestTimeoutMs = options.requestTimeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
264010
264074
  this.sleepImpl = options.sleepImpl ?? defaultSleep;
264075
+ this.randomImpl = options.randomImpl ?? Math.random;
264011
264076
  }
264012
264077
  configureTeamContext(teamId, orgMode) {
264013
264078
  this.teamId = String(teamId || "").trim();
@@ -264067,7 +264132,7 @@ var AccessTokenGatewayClient = class {
264067
264132
  response = await this.send(request);
264068
264133
  } catch (error) {
264069
264134
  if (retryMode === "safe" && attempt < this.maxRetries) {
264070
- const delay = this.retryBaseDelayMs * 2 ** attempt;
264135
+ const delay = this.retryDelayMs(attempt);
264071
264136
  attempt += 1;
264072
264137
  await this.sleepImpl(delay);
264073
264138
  continue;
@@ -264079,7 +264144,7 @@ var AccessTokenGatewayClient = class {
264079
264144
  const innerStatus = detectInnerError(okBody);
264080
264145
  if (innerStatus !== null) {
264081
264146
  if (retryMode === "safe" && isTransientGatewayError(innerStatus, okBody) && attempt < this.maxRetries) {
264082
- const delay = this.retryBaseDelayMs * 2 ** attempt;
264147
+ const delay = this.retryDelayMs(attempt);
264083
264148
  attempt += 1;
264084
264149
  await this.sleepImpl(delay);
264085
264150
  continue;
@@ -264104,7 +264169,10 @@ var AccessTokenGatewayClient = class {
264104
264169
  throw this.toHttpError(request, response, retryBody);
264105
264170
  }
264106
264171
  if (retryMode === "safe" && isTransientGatewayError(response.status, body2) && attempt < this.maxRetries) {
264107
- const delay = this.retryBaseDelayMs * 2 ** attempt;
264172
+ const delay = this.retryDelayMs(
264173
+ attempt,
264174
+ parseRetryAfterMs2(response.headers.get("retry-after"))
264175
+ );
264108
264176
  attempt += 1;
264109
264177
  await this.sleepImpl(delay);
264110
264178
  continue;
@@ -264112,6 +264180,18 @@ var AccessTokenGatewayClient = class {
264112
264180
  throw this.toHttpError(request, response, body2);
264113
264181
  }
264114
264182
  }
264183
+ /**
264184
+ * Full-jitter backoff (uniform in [0, min(cap, base * 2^attempt))) so
264185
+ * concurrent CI runners that fail together never retry in lockstep against
264186
+ * the shared gateway. A server-sent Retry-After beats the heuristic: it is
264187
+ * authoritative backpressure, honored verbatim (capped by the ceiling).
264188
+ */
264189
+ retryDelayMs(attempt, retryAfterMs) {
264190
+ if (retryAfterMs !== void 0) {
264191
+ return Math.min(this.retryMaxDelayMs, retryAfterMs);
264192
+ }
264193
+ return fullJitterDelayMs(attempt, this.retryBaseDelayMs, this.retryMaxDelayMs, this.randomImpl);
264194
+ }
264115
264195
  /**
264116
264196
  * The success path reads the body to inspect for an inner error, which
264117
264197
  * consumes the stream. Hand callers a fresh Response over the buffered text so
@@ -264849,6 +264929,9 @@ function createTelemetryContext(options) {
264849
264929
  var import_node_fs3 = require("node:fs");
264850
264930
  var import_node_path3 = require("node:path");
264851
264931
  function resolveActionVersion2() {
264932
+ if (false) {
264933
+ return void 0;
264934
+ }
264852
264935
  try {
264853
264936
  const raw = (0, import_node_fs3.readFileSync)((0, import_node_path3.join)(__dirname, "..", "package.json"), "utf8");
264854
264937
  return JSON.parse(raw).version ?? "unknown";
@@ -297648,940 +297731,6 @@ function getPositionFromMatch(match) {
297648
297731
  }
297649
297732
 
297650
297733
  // node_modules/@nodable/entities/src/entities.js
297651
- var BASIC_LATIN = {
297652
- amp: "&",
297653
- AMP: "&",
297654
- lt: "<",
297655
- LT: "<",
297656
- gt: ">",
297657
- GT: ">",
297658
- quot: '"',
297659
- QUOT: '"',
297660
- apos: "'",
297661
- lsquo: "\u2018",
297662
- rsquo: "\u2019",
297663
- ldquo: "\u201C",
297664
- rdquo: "\u201D",
297665
- lsquor: "\u201A",
297666
- rsquor: "\u2019",
297667
- ldquor: "\u201E",
297668
- bdquo: "\u201E",
297669
- comma: ",",
297670
- period: ".",
297671
- colon: ":",
297672
- semi: ";",
297673
- excl: "!",
297674
- quest: "?",
297675
- num: "#",
297676
- dollar: "$",
297677
- percent: "%",
297678
- ast: "*",
297679
- commat: "@",
297680
- lowbar: "_",
297681
- verbar: "|",
297682
- vert: "|",
297683
- sol: "/",
297684
- bsol: "\\",
297685
- lbrace: "{",
297686
- rbrace: "}",
297687
- lbrack: "[",
297688
- rbrack: "]",
297689
- lpar: "(",
297690
- rpar: ")",
297691
- nbsp: "\xA0",
297692
- iexcl: "\xA1",
297693
- cent: "\xA2",
297694
- pound: "\xA3",
297695
- curren: "\xA4",
297696
- yen: "\xA5",
297697
- brvbar: "\xA6",
297698
- sect: "\xA7",
297699
- uml: "\xA8",
297700
- copy: "\xA9",
297701
- COPY: "\xA9",
297702
- ordf: "\xAA",
297703
- laquo: "\xAB",
297704
- not: "\xAC",
297705
- shy: "\xAD",
297706
- reg: "\xAE",
297707
- REG: "\xAE",
297708
- macr: "\xAF",
297709
- deg: "\xB0",
297710
- plusmn: "\xB1",
297711
- sup2: "\xB2",
297712
- sup3: "\xB3",
297713
- acute: "\xB4",
297714
- micro: "\xB5",
297715
- para: "\xB6",
297716
- middot: "\xB7",
297717
- cedil: "\xB8",
297718
- sup1: "\xB9",
297719
- ordm: "\xBA",
297720
- raquo: "\xBB",
297721
- frac14: "\xBC",
297722
- frac12: "\xBD",
297723
- half: "\xBD",
297724
- frac34: "\xBE",
297725
- iquest: "\xBF",
297726
- times: "\xD7",
297727
- div: "\xF7",
297728
- divide: "\xF7"
297729
- };
297730
- var LATIN_ACCENTS = {
297731
- Agrave: "\xC0",
297732
- agrave: "\xE0",
297733
- Aacute: "\xC1",
297734
- aacute: "\xE1",
297735
- Acirc: "\xC2",
297736
- acirc: "\xE2",
297737
- Atilde: "\xC3",
297738
- atilde: "\xE3",
297739
- Auml: "\xC4",
297740
- auml: "\xE4",
297741
- Aring: "\xC5",
297742
- aring: "\xE5",
297743
- AElig: "\xC6",
297744
- aelig: "\xE6",
297745
- Ccedil: "\xC7",
297746
- ccedil: "\xE7",
297747
- Egrave: "\xC8",
297748
- egrave: "\xE8",
297749
- Eacute: "\xC9",
297750
- eacute: "\xE9",
297751
- Ecirc: "\xCA",
297752
- ecirc: "\xEA",
297753
- Euml: "\xCB",
297754
- euml: "\xEB",
297755
- Igrave: "\xCC",
297756
- igrave: "\xEC",
297757
- Iacute: "\xCD",
297758
- iacute: "\xED",
297759
- Icirc: "\xCE",
297760
- icirc: "\xEE",
297761
- Iuml: "\xCF",
297762
- iuml: "\xEF",
297763
- ETH: "\xD0",
297764
- eth: "\xF0",
297765
- Ntilde: "\xD1",
297766
- ntilde: "\xF1",
297767
- Ograve: "\xD2",
297768
- ograve: "\xF2",
297769
- Oacute: "\xD3",
297770
- oacute: "\xF3",
297771
- Ocirc: "\xD4",
297772
- ocirc: "\xF4",
297773
- Otilde: "\xD5",
297774
- otilde: "\xF5",
297775
- Ouml: "\xD6",
297776
- ouml: "\xF6",
297777
- Oslash: "\xD8",
297778
- oslash: "\xF8",
297779
- Ugrave: "\xD9",
297780
- ugrave: "\xF9",
297781
- Uacute: "\xDA",
297782
- uacute: "\xFA",
297783
- Ucirc: "\xDB",
297784
- ucirc: "\xFB",
297785
- Uuml: "\xDC",
297786
- uuml: "\xFC",
297787
- Yacute: "\xDD",
297788
- yacute: "\xFD",
297789
- THORN: "\xDE",
297790
- thorn: "\xFE",
297791
- szlig: "\xDF",
297792
- yuml: "\xFF",
297793
- Yuml: "\u0178"
297794
- };
297795
- var LATIN_EXTENDED = {
297796
- Amacr: "\u0100",
297797
- amacr: "\u0101",
297798
- Abreve: "\u0102",
297799
- abreve: "\u0103",
297800
- Aogon: "\u0104",
297801
- aogon: "\u0105",
297802
- Cacute: "\u0106",
297803
- cacute: "\u0107",
297804
- Ccirc: "\u0108",
297805
- ccirc: "\u0109",
297806
- Cdot: "\u010A",
297807
- cdot: "\u010B",
297808
- Ccaron: "\u010C",
297809
- ccaron: "\u010D",
297810
- Dcaron: "\u010E",
297811
- dcaron: "\u010F",
297812
- Dstrok: "\u0110",
297813
- dstrok: "\u0111",
297814
- Emacr: "\u0112",
297815
- emacr: "\u0113",
297816
- Ecaron: "\u011A",
297817
- ecaron: "\u011B",
297818
- Edot: "\u0116",
297819
- edot: "\u0117",
297820
- Eogon: "\u0118",
297821
- eogon: "\u0119",
297822
- Gcirc: "\u011C",
297823
- gcirc: "\u011D",
297824
- Gbreve: "\u011E",
297825
- gbreve: "\u011F",
297826
- Gdot: "\u0120",
297827
- gdot: "\u0121",
297828
- Gcedil: "\u0122",
297829
- Hcirc: "\u0124",
297830
- hcirc: "\u0125",
297831
- Hstrok: "\u0126",
297832
- hstrok: "\u0127",
297833
- Itilde: "\u0128",
297834
- itilde: "\u0129",
297835
- Imacr: "\u012A",
297836
- imacr: "\u012B",
297837
- Iogon: "\u012E",
297838
- iogon: "\u012F",
297839
- Idot: "\u0130",
297840
- IJlig: "\u0132",
297841
- ijlig: "\u0133",
297842
- Jcirc: "\u0134",
297843
- jcirc: "\u0135",
297844
- Kcedil: "\u0136",
297845
- kcedil: "\u0137",
297846
- kgreen: "\u0138",
297847
- Lacute: "\u0139",
297848
- lacute: "\u013A",
297849
- Lcedil: "\u013B",
297850
- lcedil: "\u013C",
297851
- Lcaron: "\u013D",
297852
- lcaron: "\u013E",
297853
- Lmidot: "\u013F",
297854
- lmidot: "\u0140",
297855
- Lstrok: "\u0141",
297856
- lstrok: "\u0142",
297857
- Nacute: "\u0143",
297858
- nacute: "\u0144",
297859
- Ncaron: "\u0147",
297860
- ncaron: "\u0148",
297861
- Ncedil: "\u0145",
297862
- ncedil: "\u0146",
297863
- ENG: "\u014A",
297864
- eng: "\u014B",
297865
- Omacr: "\u014C",
297866
- omacr: "\u014D",
297867
- Odblac: "\u0150",
297868
- odblac: "\u0151",
297869
- OElig: "\u0152",
297870
- oelig: "\u0153",
297871
- Racute: "\u0154",
297872
- racute: "\u0155",
297873
- Rcaron: "\u0158",
297874
- rcaron: "\u0159",
297875
- Rcedil: "\u0156",
297876
- rcedil: "\u0157",
297877
- Sacute: "\u015A",
297878
- sacute: "\u015B",
297879
- Scirc: "\u015C",
297880
- scirc: "\u015D",
297881
- Scedil: "\u015E",
297882
- scedil: "\u015F",
297883
- Scaron: "\u0160",
297884
- scaron: "\u0161",
297885
- Tcedil: "\u0162",
297886
- tcedil: "\u0163",
297887
- Tcaron: "\u0164",
297888
- tcaron: "\u0165",
297889
- Tstrok: "\u0166",
297890
- tstrok: "\u0167",
297891
- Utilde: "\u0168",
297892
- utilde: "\u0169",
297893
- Umacr: "\u016A",
297894
- umacr: "\u016B",
297895
- Ubreve: "\u016C",
297896
- ubreve: "\u016D",
297897
- Uring: "\u016E",
297898
- uring: "\u016F",
297899
- Udblac: "\u0170",
297900
- udblac: "\u0171",
297901
- Uogon: "\u0172",
297902
- uogon: "\u0173",
297903
- Wcirc: "\u0174",
297904
- wcirc: "\u0175",
297905
- Ycirc: "\u0176",
297906
- ycirc: "\u0177",
297907
- Zacute: "\u0179",
297908
- zacute: "\u017A",
297909
- Zdot: "\u017B",
297910
- zdot: "\u017C",
297911
- Zcaron: "\u017D",
297912
- zcaron: "\u017E"
297913
- };
297914
- var GREEK = {
297915
- Alpha: "\u0391",
297916
- alpha: "\u03B1",
297917
- Beta: "\u0392",
297918
- beta: "\u03B2",
297919
- Gamma: "\u0393",
297920
- gamma: "\u03B3",
297921
- Delta: "\u0394",
297922
- delta: "\u03B4",
297923
- Epsilon: "\u0395",
297924
- epsilon: "\u03B5",
297925
- epsiv: "\u03F5",
297926
- varepsilon: "\u03F5",
297927
- Zeta: "\u0396",
297928
- zeta: "\u03B6",
297929
- Eta: "\u0397",
297930
- eta: "\u03B7",
297931
- Theta: "\u0398",
297932
- theta: "\u03B8",
297933
- thetasym: "\u03D1",
297934
- vartheta: "\u03D1",
297935
- Iota: "\u0399",
297936
- iota: "\u03B9",
297937
- Kappa: "\u039A",
297938
- kappa: "\u03BA",
297939
- kappav: "\u03F0",
297940
- varkappa: "\u03F0",
297941
- Lambda: "\u039B",
297942
- lambda: "\u03BB",
297943
- Mu: "\u039C",
297944
- mu: "\u03BC",
297945
- Nu: "\u039D",
297946
- nu: "\u03BD",
297947
- Xi: "\u039E",
297948
- xi: "\u03BE",
297949
- Omicron: "\u039F",
297950
- omicron: "\u03BF",
297951
- Pi: "\u03A0",
297952
- pi: "\u03C0",
297953
- piv: "\u03D6",
297954
- varpi: "\u03D6",
297955
- Rho: "\u03A1",
297956
- rho: "\u03C1",
297957
- rhov: "\u03F1",
297958
- varrho: "\u03F1",
297959
- Sigma: "\u03A3",
297960
- sigma: "\u03C3",
297961
- sigmaf: "\u03C2",
297962
- sigmav: "\u03C2",
297963
- varsigma: "\u03C2",
297964
- Tau: "\u03A4",
297965
- tau: "\u03C4",
297966
- Upsilon: "\u03A5",
297967
- upsilon: "\u03C5",
297968
- upsi: "\u03C5",
297969
- Upsi: "\u03D2",
297970
- upsih: "\u03D2",
297971
- Phi: "\u03A6",
297972
- phi: "\u03C6",
297973
- phiv: "\u03D5",
297974
- varphi: "\u03D5",
297975
- Chi: "\u03A7",
297976
- chi: "\u03C7",
297977
- Psi: "\u03A8",
297978
- psi: "\u03C8",
297979
- Omega: "\u03A9",
297980
- omega: "\u03C9",
297981
- ohm: "\u03A9",
297982
- Gammad: "\u03DC",
297983
- gammad: "\u03DD",
297984
- digamma: "\u03DD"
297985
- };
297986
- var CYRILLIC = {
297987
- Afr: "\u{1D504}",
297988
- afr: "\u{1D51E}",
297989
- Acy: "\u0410",
297990
- acy: "\u0430",
297991
- Bcy: "\u0411",
297992
- bcy: "\u0431",
297993
- Vcy: "\u0412",
297994
- vcy: "\u0432",
297995
- Gcy: "\u0413",
297996
- gcy: "\u0433",
297997
- Dcy: "\u0414",
297998
- dcy: "\u0434",
297999
- IEcy: "\u0415",
298000
- iecy: "\u0435",
298001
- IOcy: "\u0401",
298002
- iocy: "\u0451",
298003
- ZHcy: "\u0416",
298004
- zhcy: "\u0436",
298005
- Zcy: "\u0417",
298006
- zcy: "\u0437",
298007
- Icy: "\u0418",
298008
- icy: "\u0438",
298009
- Jcy: "\u0419",
298010
- jcy: "\u0439",
298011
- Kcy: "\u041A",
298012
- kcy: "\u043A",
298013
- Lcy: "\u041B",
298014
- lcy: "\u043B",
298015
- Mcy: "\u041C",
298016
- mcy: "\u043C",
298017
- Ncy: "\u041D",
298018
- ncy: "\u043D",
298019
- Ocy: "\u041E",
298020
- ocy: "\u043E",
298021
- Pcy: "\u041F",
298022
- pcy: "\u043F",
298023
- Rcy: "\u0420",
298024
- rcy: "\u0440",
298025
- Scy: "\u0421",
298026
- scy: "\u0441",
298027
- Tcy: "\u0422",
298028
- tcy: "\u0442",
298029
- Ucy: "\u0423",
298030
- ucy: "\u0443",
298031
- Fcy: "\u0424",
298032
- fcy: "\u0444",
298033
- KHcy: "\u0425",
298034
- khcy: "\u0445",
298035
- TScy: "\u0426",
298036
- tscy: "\u0446",
298037
- CHcy: "\u0427",
298038
- chcy: "\u0447",
298039
- SHcy: "\u0428",
298040
- shcy: "\u0448",
298041
- SHCHcy: "\u0429",
298042
- shchcy: "\u0449",
298043
- HARDcy: "\u042A",
298044
- hardcy: "\u044A",
298045
- Ycy: "\u042B",
298046
- ycy: "\u044B",
298047
- SOFTcy: "\u042C",
298048
- softcy: "\u044C",
298049
- Ecy: "\u042D",
298050
- ecy: "\u044D",
298051
- YUcy: "\u042E",
298052
- yucy: "\u044E",
298053
- YAcy: "\u042F",
298054
- yacy: "\u044F",
298055
- DJcy: "\u0402",
298056
- djcy: "\u0452",
298057
- GJcy: "\u0403",
298058
- gjcy: "\u0453",
298059
- Jukcy: "\u0404",
298060
- jukcy: "\u0454",
298061
- DScy: "\u0405",
298062
- dscy: "\u0455",
298063
- Iukcy: "\u0406",
298064
- iukcy: "\u0456",
298065
- YIcy: "\u0407",
298066
- yicy: "\u0457",
298067
- Jsercy: "\u0408",
298068
- jsercy: "\u0458",
298069
- LJcy: "\u0409",
298070
- ljcy: "\u0459",
298071
- NJcy: "\u040A",
298072
- njcy: "\u045A",
298073
- TSHcy: "\u040B",
298074
- tshcy: "\u045B",
298075
- KJcy: "\u040C",
298076
- kjcy: "\u045C",
298077
- Ubrcy: "\u040E",
298078
- ubrcy: "\u045E",
298079
- DZcy: "\u040F",
298080
- dzcy: "\u045F"
298081
- };
298082
- var MATH = {
298083
- plus: "+",
298084
- pm: "\xB1",
298085
- times: "\xD7",
298086
- div: "\xF7",
298087
- divide: "\xF7",
298088
- sdot: "\u22C5",
298089
- star: "\u2606",
298090
- starf: "\u2605",
298091
- bigstar: "\u2605",
298092
- lowast: "\u2217",
298093
- ast: "*",
298094
- midast: "*",
298095
- compfn: "\u2218",
298096
- smallcircle: "\u2218",
298097
- bullet: "\u2022",
298098
- bull: "\u2022",
298099
- nbsp: "\xA0",
298100
- hellip: "\u2026",
298101
- mldr: "\u2026",
298102
- prime: "\u2032",
298103
- Prime: "\u2033",
298104
- tprime: "\u2034",
298105
- bprime: "\u2035",
298106
- backprime: "\u2035",
298107
- minus: "\u2212",
298108
- minusd: "\u2238",
298109
- dotminus: "\u2238",
298110
- plusdo: "\u2214",
298111
- dotplus: "\u2214",
298112
- plusmn: "\xB1",
298113
- minusplus: "\u2213",
298114
- mnplus: "\u2213",
298115
- mp: "\u2213",
298116
- setminus: "\u2216",
298117
- smallsetminus: "\u2216",
298118
- Backslash: "\u2216",
298119
- setmn: "\u2216",
298120
- ssetmn: "\u2216",
298121
- lowbar: "_",
298122
- verbar: "|",
298123
- vert: "|",
298124
- VerticalLine: "|",
298125
- colon: ":",
298126
- Colon: "\u2237",
298127
- Proportion: "\u2237",
298128
- ratio: "\u2236",
298129
- equals: "=",
298130
- ne: "\u2260",
298131
- nequiv: "\u2262",
298132
- equiv: "\u2261",
298133
- Congruent: "\u2261",
298134
- sim: "\u223C",
298135
- thicksim: "\u223C",
298136
- thksim: "\u223C",
298137
- sime: "\u2243",
298138
- simeq: "\u2243",
298139
- TildeEqual: "\u2243",
298140
- asymp: "\u2248",
298141
- approx: "\u2248",
298142
- thickapprox: "\u2248",
298143
- thkap: "\u2248",
298144
- TildeTilde: "\u2248",
298145
- ncong: "\u2247",
298146
- cong: "\u2245",
298147
- TildeFullEqual: "\u2245",
298148
- asympeq: "\u224D",
298149
- CupCap: "\u224D",
298150
- bump: "\u224E",
298151
- Bumpeq: "\u224E",
298152
- HumpDownHump: "\u224E",
298153
- bumpe: "\u224F",
298154
- bumpeq: "\u224F",
298155
- HumpEqual: "\u224F",
298156
- le: "\u2264",
298157
- LessEqual: "\u2264",
298158
- ge: "\u2265",
298159
- GreaterEqual: "\u2265",
298160
- lesseqgtr: "\u22DA",
298161
- lesseqqgtr: "\u2A8B",
298162
- greater: ">",
298163
- less: "<"
298164
- };
298165
- var MATH_ADVANCED = {
298166
- alefsym: "\u2135",
298167
- aleph: "\u2135",
298168
- beth: "\u2136",
298169
- gimel: "\u2137",
298170
- daleth: "\u2138",
298171
- forall: "\u2200",
298172
- ForAll: "\u2200",
298173
- part: "\u2202",
298174
- PartialD: "\u2202",
298175
- exist: "\u2203",
298176
- Exists: "\u2203",
298177
- nexist: "\u2204",
298178
- nexists: "\u2204",
298179
- empty: "\u2205",
298180
- emptyset: "\u2205",
298181
- emptyv: "\u2205",
298182
- varnothing: "\u2205",
298183
- nabla: "\u2207",
298184
- Del: "\u2207",
298185
- isin: "\u2208",
298186
- isinv: "\u2208",
298187
- in: "\u2208",
298188
- Element: "\u2208",
298189
- notin: "\u2209",
298190
- notinva: "\u2209",
298191
- ni: "\u220B",
298192
- niv: "\u220B",
298193
- SuchThat: "\u220B",
298194
- ReverseElement: "\u220B",
298195
- notni: "\u220C",
298196
- notniva: "\u220C",
298197
- prod: "\u220F",
298198
- Product: "\u220F",
298199
- coprod: "\u2210",
298200
- Coproduct: "\u2210",
298201
- sum: "\u2211",
298202
- Sum: "\u2211",
298203
- minus: "\u2212",
298204
- mp: "\u2213",
298205
- plusdo: "\u2214",
298206
- dotplus: "\u2214",
298207
- setminus: "\u2216",
298208
- lowast: "\u2217",
298209
- radic: "\u221A",
298210
- Sqrt: "\u221A",
298211
- prop: "\u221D",
298212
- propto: "\u221D",
298213
- Proportional: "\u221D",
298214
- varpropto: "\u221D",
298215
- infin: "\u221E",
298216
- infintie: "\u29DD",
298217
- ang: "\u2220",
298218
- angle: "\u2220",
298219
- angmsd: "\u2221",
298220
- measuredangle: "\u2221",
298221
- angsph: "\u2222",
298222
- mid: "\u2223",
298223
- VerticalBar: "\u2223",
298224
- nmid: "\u2224",
298225
- nsmid: "\u2224",
298226
- npar: "\u2226",
298227
- parallel: "\u2225",
298228
- spar: "\u2225",
298229
- nparallel: "\u2226",
298230
- nspar: "\u2226",
298231
- and: "\u2227",
298232
- wedge: "\u2227",
298233
- or: "\u2228",
298234
- vee: "\u2228",
298235
- cap: "\u2229",
298236
- cup: "\u222A",
298237
- int: "\u222B",
298238
- Integral: "\u222B",
298239
- conint: "\u222E",
298240
- ContourIntegral: "\u222E",
298241
- Conint: "\u222F",
298242
- DoubleContourIntegral: "\u222F",
298243
- Cconint: "\u2230",
298244
- there4: "\u2234",
298245
- therefore: "\u2234",
298246
- Therefore: "\u2234",
298247
- becaus: "\u2235",
298248
- because: "\u2235",
298249
- Because: "\u2235",
298250
- ratio: "\u2236",
298251
- Proportion: "\u2237",
298252
- minusd: "\u2238",
298253
- dotminus: "\u2238",
298254
- mDDot: "\u223A",
298255
- homtht: "\u223B",
298256
- sim: "\u223C",
298257
- bsimg: "\u223D",
298258
- backsim: "\u223D",
298259
- ac: "\u223E",
298260
- mstpos: "\u223E",
298261
- acd: "\u223F",
298262
- VerticalTilde: "\u2240",
298263
- wr: "\u2240",
298264
- wreath: "\u2240",
298265
- nsime: "\u2244",
298266
- nsimeq: "\u2244",
298267
- ncong: "\u2247",
298268
- simne: "\u2246",
298269
- ncongdot: "\u2A6D\u0338",
298270
- ngsim: "\u2275",
298271
- nsim: "\u2241",
298272
- napprox: "\u2249",
298273
- nap: "\u2249",
298274
- ngeq: "\u2271",
298275
- nge: "\u2271",
298276
- nleq: "\u2270",
298277
- nle: "\u2270",
298278
- ngtr: "\u226F",
298279
- ngt: "\u226F",
298280
- nless: "\u226E",
298281
- nlt: "\u226E",
298282
- nprec: "\u2280",
298283
- npr: "\u2280",
298284
- nsucc: "\u2281",
298285
- nsc: "\u2281"
298286
- };
298287
- var ARROWS = {
298288
- larr: "\u2190",
298289
- leftarrow: "\u2190",
298290
- LeftArrow: "\u2190",
298291
- uarr: "\u2191",
298292
- uparrow: "\u2191",
298293
- UpArrow: "\u2191",
298294
- rarr: "\u2192",
298295
- rightarrow: "\u2192",
298296
- RightArrow: "\u2192",
298297
- darr: "\u2193",
298298
- downarrow: "\u2193",
298299
- DownArrow: "\u2193",
298300
- harr: "\u2194",
298301
- leftrightarrow: "\u2194",
298302
- LeftRightArrow: "\u2194",
298303
- varr: "\u2195",
298304
- updownarrow: "\u2195",
298305
- UpDownArrow: "\u2195",
298306
- nwarr: "\u2196",
298307
- nwarrow: "\u2196",
298308
- UpperLeftArrow: "\u2196",
298309
- nearr: "\u2197",
298310
- nearrow: "\u2197",
298311
- UpperRightArrow: "\u2197",
298312
- searr: "\u2198",
298313
- searrow: "\u2198",
298314
- LowerRightArrow: "\u2198",
298315
- swarr: "\u2199",
298316
- swarrow: "\u2199",
298317
- LowerLeftArrow: "\u2199",
298318
- lArr: "\u21D0",
298319
- Leftarrow: "\u21D0",
298320
- uArr: "\u21D1",
298321
- Uparrow: "\u21D1",
298322
- rArr: "\u21D2",
298323
- Rightarrow: "\u21D2",
298324
- dArr: "\u21D3",
298325
- Downarrow: "\u21D3",
298326
- hArr: "\u21D4",
298327
- Leftrightarrow: "\u21D4",
298328
- iff: "\u21D4",
298329
- vArr: "\u21D5",
298330
- Updownarrow: "\u21D5",
298331
- lAarr: "\u21DA",
298332
- Lleftarrow: "\u21DA",
298333
- rAarr: "\u21DB",
298334
- Rrightarrow: "\u21DB",
298335
- lrarr: "\u21C6",
298336
- leftrightarrows: "\u21C6",
298337
- rlarr: "\u21C4",
298338
- rightleftarrows: "\u21C4",
298339
- lrhar: "\u21CB",
298340
- leftrightharpoons: "\u21CB",
298341
- ReverseEquilibrium: "\u21CB",
298342
- rlhar: "\u21CC",
298343
- rightleftharpoons: "\u21CC",
298344
- Equilibrium: "\u21CC",
298345
- udarr: "\u21C5",
298346
- UpArrowDownArrow: "\u21C5",
298347
- duarr: "\u21F5",
298348
- DownArrowUpArrow: "\u21F5",
298349
- llarr: "\u21C7",
298350
- leftleftarrows: "\u21C7",
298351
- rrarr: "\u21C9",
298352
- rightrightarrows: "\u21C9",
298353
- ddarr: "\u21CA",
298354
- downdownarrows: "\u21CA",
298355
- har: "\u21BD",
298356
- lhard: "\u21BD",
298357
- leftharpoondown: "\u21BD",
298358
- lharu: "\u21BC",
298359
- leftharpoonup: "\u21BC",
298360
- rhard: "\u21C1",
298361
- rightharpoondown: "\u21C1",
298362
- rharu: "\u21C0",
298363
- rightharpoonup: "\u21C0",
298364
- lsh: "\u21B0",
298365
- Lsh: "\u21B0",
298366
- rsh: "\u21B1",
298367
- Rsh: "\u21B1",
298368
- ldsh: "\u21B2",
298369
- rdsh: "\u21B3",
298370
- hookleftarrow: "\u21A9",
298371
- hookrightarrow: "\u21AA",
298372
- mapstoleft: "\u21A4",
298373
- mapstoup: "\u21A5",
298374
- map: "\u21A6",
298375
- mapsto: "\u21A6",
298376
- mapstodown: "\u21A7",
298377
- crarr: "\u21B5",
298378
- nleftarrow: "\u219A",
298379
- nleftrightarrow: "\u21AE",
298380
- nrightarrow: "\u219B",
298381
- nrarr: "\u219B",
298382
- larrtl: "\u21A2",
298383
- rarrtl: "\u21A3",
298384
- leftarrowtail: "\u21A2",
298385
- rightarrowtail: "\u21A3",
298386
- twoheadleftarrow: "\u219E",
298387
- twoheadrightarrow: "\u21A0",
298388
- Larr: "\u219E",
298389
- Rarr: "\u21A0",
298390
- larrhk: "\u21A9",
298391
- rarrhk: "\u21AA",
298392
- larrlp: "\u21AB",
298393
- looparrowleft: "\u21AB",
298394
- rarrlp: "\u21AC",
298395
- looparrowright: "\u21AC",
298396
- harrw: "\u21AD",
298397
- leftrightsquigarrow: "\u21AD",
298398
- nrarrw: "\u219D\u0338",
298399
- rarrw: "\u219D",
298400
- rightsquigarrow: "\u219D",
298401
- larrbfs: "\u291F",
298402
- rarrbfs: "\u2920",
298403
- nvHarr: "\u2904",
298404
- nvlArr: "\u2902",
298405
- nvrArr: "\u2903",
298406
- larrfs: "\u291D",
298407
- rarrfs: "\u291E",
298408
- Map: "\u2905",
298409
- larrsim: "\u2973",
298410
- rarrsim: "\u2974",
298411
- harrcir: "\u2948",
298412
- Uarrocir: "\u2949",
298413
- lurdshar: "\u294A",
298414
- ldrdhar: "\u2967",
298415
- ldrushar: "\u294B",
298416
- rdldhar: "\u2969",
298417
- lrhard: "\u296D",
298418
- uharr: "\u21BE",
298419
- uharl: "\u21BF",
298420
- dharr: "\u21C2",
298421
- dharl: "\u21C3",
298422
- Uarr: "\u219F",
298423
- Darr: "\u21A1",
298424
- zigrarr: "\u21DD",
298425
- nwArr: "\u21D6",
298426
- neArr: "\u21D7",
298427
- seArr: "\u21D8",
298428
- swArr: "\u21D9",
298429
- nharr: "\u21AE",
298430
- nhArr: "\u21CE",
298431
- nlarr: "\u219A",
298432
- nlArr: "\u21CD",
298433
- nrArr: "\u21CF",
298434
- larrb: "\u21E4",
298435
- LeftArrowBar: "\u21E4",
298436
- rarrb: "\u21E5",
298437
- RightArrowBar: "\u21E5"
298438
- };
298439
- var SHAPES = {
298440
- square: "\u25A1",
298441
- Square: "\u25A1",
298442
- squ: "\u25A1",
298443
- squf: "\u25AA",
298444
- squarf: "\u25AA",
298445
- blacksquar: "\u25AA",
298446
- blacksquare: "\u25AA",
298447
- FilledVerySmallSquare: "\u25AA",
298448
- blk34: "\u2593",
298449
- blk12: "\u2592",
298450
- blk14: "\u2591",
298451
- block: "\u2588",
298452
- srect: "\u25AD",
298453
- rect: "\u25AD",
298454
- sdot: "\u22C5",
298455
- sdotb: "\u22A1",
298456
- dotsquare: "\u22A1",
298457
- triangle: "\u25B5",
298458
- tri: "\u25B5",
298459
- trine: "\u25B5",
298460
- utri: "\u25B5",
298461
- triangledown: "\u25BF",
298462
- dtri: "\u25BF",
298463
- tridown: "\u25BF",
298464
- triangleleft: "\u25C3",
298465
- ltri: "\u25C3",
298466
- triangleright: "\u25B9",
298467
- rtri: "\u25B9",
298468
- blacktriangle: "\u25B4",
298469
- utrif: "\u25B4",
298470
- blacktriangledown: "\u25BE",
298471
- dtrif: "\u25BE",
298472
- blacktriangleleft: "\u25C2",
298473
- ltrif: "\u25C2",
298474
- blacktriangleright: "\u25B8",
298475
- rtrif: "\u25B8",
298476
- loz: "\u25CA",
298477
- lozenge: "\u25CA",
298478
- blacklozenge: "\u29EB",
298479
- lozf: "\u29EB",
298480
- bigcirc: "\u25EF",
298481
- xcirc: "\u25EF",
298482
- circ: "\u02C6",
298483
- Circle: "\u25CB",
298484
- cir: "\u25CB",
298485
- o: "\u25CB",
298486
- bullet: "\u2022",
298487
- bull: "\u2022",
298488
- hellip: "\u2026",
298489
- mldr: "\u2026",
298490
- nldr: "\u2025",
298491
- boxh: "\u2500",
298492
- HorizontalLine: "\u2500",
298493
- boxv: "\u2502",
298494
- boxdr: "\u250C",
298495
- boxdl: "\u2510",
298496
- boxur: "\u2514",
298497
- boxul: "\u2518",
298498
- boxvr: "\u251C",
298499
- boxvl: "\u2524",
298500
- boxhd: "\u252C",
298501
- boxhu: "\u2534",
298502
- boxvh: "\u253C",
298503
- boxH: "\u2550",
298504
- boxV: "\u2551",
298505
- boxdR: "\u2552",
298506
- boxDr: "\u2553",
298507
- boxDR: "\u2554",
298508
- boxDl: "\u2555",
298509
- boxdL: "\u2556",
298510
- boxDL: "\u2557",
298511
- boxuR: "\u2558",
298512
- boxUr: "\u2559",
298513
- boxUR: "\u255A",
298514
- boxUl: "\u255C",
298515
- boxuL: "\u255B",
298516
- boxUL: "\u255D",
298517
- boxvR: "\u255E",
298518
- boxVr: "\u255F",
298519
- boxVR: "\u2560",
298520
- boxVl: "\u2562",
298521
- boxvL: "\u2561",
298522
- boxVL: "\u2563",
298523
- boxHd: "\u2564",
298524
- boxhD: "\u2565",
298525
- boxHD: "\u2566",
298526
- boxHu: "\u2567",
298527
- boxhU: "\u2568",
298528
- boxHU: "\u2569",
298529
- boxvH: "\u256A",
298530
- boxVh: "\u256B",
298531
- boxVH: "\u256C"
298532
- };
298533
- var PUNCTUATION = {
298534
- excl: "!",
298535
- iexcl: "\xA1",
298536
- brvbar: "\xA6",
298537
- sect: "\xA7",
298538
- uml: "\xA8",
298539
- copy: "\xA9",
298540
- ordf: "\xAA",
298541
- laquo: "\xAB",
298542
- not: "\xAC",
298543
- shy: "\xAD",
298544
- reg: "\xAE",
298545
- macr: "\xAF",
298546
- deg: "\xB0",
298547
- plusmn: "\xB1",
298548
- sup2: "\xB2",
298549
- sup3: "\xB3",
298550
- acute: "\xB4",
298551
- micro: "\xB5",
298552
- para: "\xB6",
298553
- middot: "\xB7",
298554
- cedil: "\xB8",
298555
- sup1: "\xB9",
298556
- ordm: "\xBA",
298557
- raquo: "\xBB",
298558
- frac14: "\xBC",
298559
- frac12: "\xBD",
298560
- frac34: "\xBE",
298561
- iquest: "\xBF",
298562
- nbsp: "\xA0",
298563
- comma: ",",
298564
- period: ".",
298565
- colon: ":",
298566
- semi: ";",
298567
- vert: "|",
298568
- Verbar: "\u2016",
298569
- verbar: "|",
298570
- dblac: "\u02DD",
298571
- circ: "\u02C6",
298572
- caron: "\u02C7",
298573
- breve: "\u02D8",
298574
- dot: "\u02D9",
298575
- ring: "\u02DA",
298576
- ogon: "\u02DB",
298577
- tilde: "\u02DC",
298578
- DiacriticalGrave: "`",
298579
- DiacriticalAcute: "\xB4",
298580
- DiacriticalTilde: "\u02DC",
298581
- DiacriticalDot: "\u02D9",
298582
- DiacriticalDoubleAcute: "\u02DD",
298583
- grave: "`"
298584
- };
298585
297734
  var CURRENCY = {
298586
297735
  cent: "\xA2",
298587
297736
  pound: "\xA3",
@@ -298599,106 +297748,6 @@ var CURRENCY = {
298599
297748
  yuan: "\xA5",
298600
297749
  cedil: "\xB8"
298601
297750
  };
298602
- var FRACTIONS = {
298603
- frac12: "\xBD",
298604
- half: "\xBD",
298605
- frac13: "\u2153",
298606
- frac14: "\xBC",
298607
- frac15: "\u2155",
298608
- frac16: "\u2159",
298609
- frac18: "\u215B",
298610
- frac23: "\u2154",
298611
- frac25: "\u2156",
298612
- frac34: "\xBE",
298613
- frac35: "\u2157",
298614
- frac38: "\u215C",
298615
- frac45: "\u2158",
298616
- frac56: "\u215A",
298617
- frac58: "\u215D",
298618
- frac78: "\u215E",
298619
- frasl: "\u2044"
298620
- };
298621
- var MISC_SYMBOLS = {
298622
- trade: "\u2122",
298623
- TRADE: "\u2122",
298624
- telrec: "\u2315",
298625
- target: "\u2316",
298626
- ulcorn: "\u231C",
298627
- ulcorner: "\u231C",
298628
- urcorn: "\u231D",
298629
- urcorner: "\u231D",
298630
- dlcorn: "\u231E",
298631
- llcorner: "\u231E",
298632
- drcorn: "\u231F",
298633
- lrcorner: "\u231F",
298634
- intercal: "\u22BA",
298635
- intcal: "\u22BA",
298636
- oplus: "\u2295",
298637
- CirclePlus: "\u2295",
298638
- ominus: "\u2296",
298639
- CircleMinus: "\u2296",
298640
- otimes: "\u2297",
298641
- CircleTimes: "\u2297",
298642
- osol: "\u2298",
298643
- odot: "\u2299",
298644
- CircleDot: "\u2299",
298645
- oast: "\u229B",
298646
- circledast: "\u229B",
298647
- odash: "\u229D",
298648
- circleddash: "\u229D",
298649
- ocirc: "\u229A",
298650
- circledcirc: "\u229A",
298651
- boxplus: "\u229E",
298652
- plusb: "\u229E",
298653
- boxminus: "\u229F",
298654
- minusb: "\u229F",
298655
- boxtimes: "\u22A0",
298656
- timesb: "\u22A0",
298657
- boxdot: "\u22A1",
298658
- sdotb: "\u22A1",
298659
- veebar: "\u22BB",
298660
- vee: "\u2228",
298661
- barvee: "\u22BD",
298662
- and: "\u2227",
298663
- wedge: "\u2227",
298664
- Cap: "\u22D2",
298665
- Cup: "\u22D3",
298666
- Fork: "\u22D4",
298667
- pitchfork: "\u22D4",
298668
- epar: "\u22D5",
298669
- ltlarr: "\u2976",
298670
- nvap: "\u224D\u20D2",
298671
- nvsim: "\u223C\u20D2",
298672
- nvge: "\u2265\u20D2",
298673
- nvle: "\u2264\u20D2",
298674
- nvlt: "<\u20D2",
298675
- nvgt: ">\u20D2",
298676
- nvltrie: "\u22B4\u20D2",
298677
- nvrtrie: "\u22B5\u20D2",
298678
- Vdash: "\u22A9",
298679
- dashv: "\u22A3",
298680
- vDash: "\u22A8",
298681
- Vvdash: "\u22AA",
298682
- nvdash: "\u22AC",
298683
- nvDash: "\u22AD",
298684
- nVdash: "\u22AE",
298685
- nVDash: "\u22AF"
298686
- };
298687
- var ALL_ENTITIES = {
298688
- ...BASIC_LATIN,
298689
- ...LATIN_ACCENTS,
298690
- ...LATIN_EXTENDED,
298691
- ...GREEK,
298692
- ...CYRILLIC,
298693
- ...MATH,
298694
- ...MATH_ADVANCED,
298695
- ...ARROWS,
298696
- ...SHAPES,
298697
- ...PUNCTUATION,
298698
- ...CURRENCY,
298699
- ...FRACTIONS,
298700
- ...MISC_SYMBOLS
298701
- };
298702
297751
  var XML = {
298703
297752
  amp: "&",
298704
297753
  apos: "'",
@@ -299342,7 +298391,7 @@ var XmlNode = class {
299342
298391
  }
299343
298392
  };
299344
298393
 
299345
- // node_modules/xml-naming/src/index.js
298394
+ // node_modules/fast-xml-parser/node_modules/xml-naming/src/index.js
299346
298395
  var nameStartChar10 = ":A-Za-z_\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u0486\u0488-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD";
299347
298396
  var nameChar10 = nameStartChar10 + "\\-\\.\\d\xB7\u0300-\u036F\u203F-\u2040";
299348
298397
  var nameStartChar11 = ":A-Za-z_\xC0-\u02FF\u0370-\u037D\u037F-\u0486\u0488-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}";
@@ -299361,8 +298410,14 @@ var buildRegexes = (startChar, char, flags = "") => {
299361
298410
  };
299362
298411
  var regexes10 = buildRegexes(nameStartChar10, nameChar10);
299363
298412
  var regexes11 = buildRegexes(nameStartChar11, nameChar11, "u");
299364
- var getRegexes = (xmlVersion = "1.0") => xmlVersion === "1.1" ? regexes11 : regexes10;
299365
- var qName = (str, { xmlVersion = "1.0" } = {}) => getRegexes(xmlVersion).qName.test(str);
298413
+ var nameStartCharAscii = ":A-Za-z_";
298414
+ var nameCharAscii = nameStartCharAscii + "\\-\\.\\d";
298415
+ var regexesAscii = buildRegexes(nameStartCharAscii, nameCharAscii);
298416
+ var getRegexes = (xmlVersion = "1.0", asciiOnly = false) => {
298417
+ if (asciiOnly) return regexesAscii;
298418
+ return xmlVersion === "1.1" ? regexes11 : regexes10;
298419
+ };
298420
+ var qName = (str, { xmlVersion = "1.0", asciiOnly = false } = {}) => getRegexes(xmlVersion, asciiOnly).qName.test(str);
299366
298421
 
299367
298422
  // node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js
299368
298423
  var DocTypeReader = class {
@@ -300524,17 +299579,16 @@ var Matcher = class {
300524
299579
  this.path[this.path.length - 1].values = void 0;
300525
299580
  }
300526
299581
  const currentLevel = this.path.length;
300527
- if (!this.siblingStacks[currentLevel]) {
300528
- this.siblingStacks[currentLevel] = /* @__PURE__ */ new Map();
299582
+ let level = this.siblingStacks[currentLevel];
299583
+ if (!level) {
299584
+ level = { counts: /* @__PURE__ */ new Map(), total: 0 };
299585
+ this.siblingStacks[currentLevel] = level;
300529
299586
  }
300530
- const siblings = this.siblingStacks[currentLevel];
300531
299587
  const siblingKey = namespace ? `${namespace}:${tagName}` : tagName;
300532
- const counter = siblings.get(siblingKey) || 0;
300533
- let position = 0;
300534
- for (const count of siblings.values()) {
300535
- position += count;
300536
- }
300537
- siblings.set(siblingKey, counter + 1);
299588
+ const counter = level.counts.get(siblingKey) || 0;
299589
+ const position = level.total;
299590
+ level.counts.set(siblingKey, counter + 1);
299591
+ level.total++;
300538
299592
  const node = {
300539
299593
  tag: tagName,
300540
299594
  position,
@@ -300843,7 +299897,7 @@ var Matcher = class {
300843
299897
  snapshot() {
300844
299898
  return {
300845
299899
  path: this.path.map((node) => ({ ...node })),
300846
- siblingStacks: this.siblingStacks.map((map) => new Map(map)),
299900
+ siblingStacks: this.siblingStacks.map((level) => level ? { counts: new Map(level.counts), total: level.total } : level),
300847
299901
  keptAttrs: this._keptAttrs.map((entry) => ({ ...entry }))
300848
299902
  };
300849
299903
  }
@@ -300854,7 +299908,7 @@ var Matcher = class {
300854
299908
  restore(snapshot) {
300855
299909
  this._pathStringCache = null;
300856
299910
  this.path = snapshot.path.map((node) => ({ ...node }));
300857
- this.siblingStacks = snapshot.siblingStacks.map((map) => new Map(map));
299911
+ this.siblingStacks = snapshot.siblingStacks.map((level) => level ? { counts: new Map(level.counts), total: level.total } : level);
300858
299912
  this._keptAttrs = (snapshot.keptAttrs || []).map((entry) => ({ ...entry }));
300859
299913
  }
300860
299914
  /**
@@ -301192,27 +300246,6 @@ var SQL_PATTERNS = [
301192
300246
  ];
301193
300247
  var sql_default = SQL_PATTERNS;
301194
300248
 
301195
- // node_modules/is-unsafe/src/contexts/sql-strict.js
301196
- var SQL_STRICT_EXTRA = [
301197
- {
301198
- id: "sql-line-comment",
301199
- description: "SQL line comment: -- followed by whitespace or end of string",
301200
- pattern: /--(?:\s|$)/
301201
- },
301202
- {
301203
- id: "sql-stacked-query",
301204
- description: "Stacked queries: semicolon immediately followed by a SQL keyword",
301205
- pattern: /;\s{0,10}(?:SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC)\b/i
301206
- },
301207
- {
301208
- id: "sql-hex-encoding",
301209
- description: "Hex-encoded string injection: 0x41414141 style (MySQL)",
301210
- pattern: /\b0x[0-9a-f]{4,}/i
301211
- }
301212
- ];
301213
- var SQL_STRICT_PATTERNS = [...sql_default, ...SQL_STRICT_EXTRA];
301214
- var sql_strict_default = SQL_STRICT_PATTERNS;
301215
-
301216
300249
  // node_modules/is-unsafe/src/contexts/shell.js
301217
300250
  var SHELL_PATTERNS = [
301218
300251
  {
@@ -301524,8 +300557,38 @@ var LOG_PATTERNS = [
301524
300557
  ];
301525
300558
  var log_default = LOG_PATTERNS;
301526
300559
 
301527
- // node_modules/is-unsafe/src/registry.js
301528
- var CONTEXT_REGISTRY = {
300560
+ // node_modules/is-unsafe/src/contexts/sql-strict.js
300561
+ var SQL_STRICT_EXTRA = [
300562
+ {
300563
+ id: "sql-line-comment",
300564
+ description: "SQL line comment: -- followed by whitespace or end of string",
300565
+ pattern: /--(?:\s|$)/
300566
+ },
300567
+ {
300568
+ id: "sql-stacked-query",
300569
+ description: "Stacked queries: semicolon immediately followed by a SQL keyword",
300570
+ pattern: /;\s{0,10}(?:SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC)\b/i
300571
+ },
300572
+ {
300573
+ id: "sql-hex-encoding",
300574
+ description: "Hex-encoded string injection: 0x41414141 style (MySQL)",
300575
+ pattern: /\b0x[0-9a-f]{4,}/i
300576
+ }
300577
+ ];
300578
+ var SQL_STRICT_PATTERNS = [...sql_default, ...SQL_STRICT_EXTRA];
300579
+ var sql_strict_default = SQL_STRICT_PATTERNS;
300580
+
300581
+ // node_modules/is-unsafe/src/index.js
300582
+ html_default.label = "HTML";
300583
+ xml_default.label = "XML";
300584
+ svg_default.label = "SVG";
300585
+ sql_default.label = "SQL";
300586
+ sql_strict_default.label = "SQL-STRICT";
300587
+ shell_default.label = "SHELL";
300588
+ redos_default.label = "REDOS";
300589
+ nosql_default.label = "NOSQL";
300590
+ log_default.label = "LOG";
300591
+ var VALID_CONTEXTS = Object.freeze({
301529
300592
  HTML: html_default,
301530
300593
  XML: xml_default,
301531
300594
  SVG: svg_default,
@@ -301535,13 +300598,7 @@ var CONTEXT_REGISTRY = {
301535
300598
  REDOS: redos_default,
301536
300599
  NOSQL: nosql_default,
301537
300600
  LOG: log_default
301538
- };
301539
- var registry_default = CONTEXT_REGISTRY;
301540
- var VALID_CONTEXTS = Object.freeze(
301541
- Object.fromEntries(Object.keys(CONTEXT_REGISTRY).map((k) => [k, k]))
301542
- );
301543
-
301544
- // node_modules/is-unsafe/src/index.js
300601
+ });
301545
300602
  function assertString(value) {
301546
300603
  if (typeof value !== "string") {
301547
300604
  throw new TypeError(
@@ -301551,36 +300608,35 @@ function assertString(value) {
301551
300608
  }
301552
300609
  function assertContext(context) {
301553
300610
  if (context instanceof RegExp) return;
301554
- if (typeof context === "string") {
301555
- if (!registry_default[context]) {
301556
- throw new TypeError(
301557
- `is-unsafe: unknown context "${context}". Valid contexts: ${Object.keys(VALID_CONTEXTS).join(", ")}`
301558
- );
301559
- }
301560
- return;
301561
- }
301562
300611
  if (Array.isArray(context)) {
301563
300612
  if (context.length === 0) {
301564
- throw new TypeError("is-unsafe: context array must not be empty");
300613
+ throw new TypeError("is-unsafe: context must not be an empty array");
301565
300614
  }
301566
- for (const c of context) {
301567
- if (typeof c !== "string" || !registry_default[c]) {
301568
- throw new TypeError(
301569
- `is-unsafe: unknown context "${c}" in array. Valid contexts: ${Object.keys(VALID_CONTEXTS).join(", ")}`
301570
- );
300615
+ if (Array.isArray(context[0])) {
300616
+ for (const list of context) {
300617
+ if (!Array.isArray(list) || list.length === 0) {
300618
+ throw new TypeError(
300619
+ "is-unsafe: each context in the array must be a non-empty pattern array (PatternList)"
300620
+ );
300621
+ }
301571
300622
  }
301572
300623
  }
301573
300624
  return;
301574
300625
  }
301575
300626
  throw new TypeError(
301576
- `is-unsafe: second argument must be a context string, array of context strings, or RegExp. Got: ${typeof context}`
300627
+ `is-unsafe: second argument must be a PatternList (e.g. HTML), an array of PatternLists (e.g. [HTML, XML]), or a RegExp. Got: ${typeof context}`
301577
300628
  );
301578
300629
  }
301579
- function matchContext(value, contextName) {
301580
- const patterns = registry_default[contextName];
301581
- for (const rule of patterns) {
300630
+ function normalise(context) {
300631
+ if (context instanceof RegExp) return { lists: null, regex: context };
300632
+ if (Array.isArray(context[0])) return { lists: context, regex: null };
300633
+ return { lists: [context], regex: null };
300634
+ }
300635
+ function matchList(value, list) {
300636
+ const label = list.label ?? "CUSTOM";
300637
+ for (const rule of list) {
301582
300638
  if (rule.pattern.test(value)) {
301583
- return { context: contextName, id: rule.id, description: rule.description, pattern: rule.pattern };
300639
+ return { context: label, id: rule.id, description: rule.description, pattern: rule.pattern };
301584
300640
  }
301585
300641
  }
301586
300642
  return null;
@@ -301588,14 +300644,10 @@ function matchContext(value, contextName) {
301588
300644
  function isUnsafe(value, context) {
301589
300645
  assertString(value);
301590
300646
  assertContext(context);
301591
- if (context instanceof RegExp) {
301592
- return context.test(value);
301593
- }
301594
- if (typeof context === "string") {
301595
- return matchContext(value, context) !== null;
301596
- }
301597
- for (const c of context) {
301598
- if (matchContext(value, c) !== null) return true;
300647
+ const { lists, regex } = normalise(context);
300648
+ if (regex) return regex.test(value);
300649
+ for (const list of lists) {
300650
+ if (matchList(value, list) !== null) return true;
301599
300651
  }
301600
300652
  return false;
301601
300653
  }
@@ -301644,6 +300696,7 @@ var OrderedObjParser = class {
301644
300696
  this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);
301645
300697
  this.entityExpansionCount = 0;
301646
300698
  this.currentExpandedLength = 0;
300699
+ this.doctypefound = false;
301647
300700
  let namedEntities = { ...XML };
301648
300701
  if (this.options.entityDecoder) {
301649
300702
  this.entityDecoder = this.options.entityDecoder;
@@ -301661,7 +300714,7 @@ var OrderedObjParser = class {
301661
300714
  // onExternalEntity: (name, value) => isUnsafe(value) ? 'block' : 'allow',
301662
300715
  onInputEntity: (name, value) => (
301663
300716
  //TODO: VALID_CONTEXTS.HTML should be set only if this.options.htmlEntities
301664
- isUnsafe(value, [VALID_CONTEXTS.HTML, VALID_CONTEXTS.XML]) ? ENTITY_ACTION.BLOCK : ENTITY_ACTION.ALLOW
300717
+ isUnsafe(value, [html_default, xml_default]) ? ENTITY_ACTION.BLOCK : ENTITY_ACTION.ALLOW
301665
300718
  )
301666
300719
  //postCheck: resolved => resolved
301667
300720
  });
@@ -301795,6 +300848,7 @@ var parseXml = function(xmlData) {
301795
300848
  this.entityDecoder.reset();
301796
300849
  this.entityExpansionCount = 0;
301797
300850
  this.currentExpandedLength = 0;
300851
+ this.doctypefound = false;
301798
300852
  const options = this.options;
301799
300853
  const docTypeReader = new DocTypeReader(options.processEntities);
301800
300854
  const xmlLen = xmlData.length;
@@ -301857,6 +300911,8 @@ var parseXml = function(xmlData) {
301857
300911
  }
301858
300912
  i = endIndex;
301859
300913
  } else if (c1 === 33 && xmlData.charCodeAt(i + 2) === 68) {
300914
+ if (this.doctypefound) throw new Error("Multiple DOCTYPE declarations found.");
300915
+ this.doctypefound = true;
301860
300916
  const result = docTypeReader.readDocType(xmlData, i);
301861
300917
  this.entityDecoder.addInputEntities(result.entities);
301862
300918
  i = result.i;
@@ -311225,8 +310281,8 @@ function resolveInputs(env = process.env) {
311225
310281
  breakingSummaryPath: getInput("breaking-summary-path", env),
311226
310282
  breakingLogPath: getInput("breaking-log-path", env),
311227
310283
  governanceMappingJson: parseGovernanceMappingJson(getInput("governance-mapping-json", env)),
311228
- postmanApiKey: getInput("postman-api-key", env) ?? "",
311229
- postmanAccessToken: getInput("postman-access-token", env),
310284
+ postmanApiKey: getInput("postman-api-key", env) || env.POSTMAN_API_KEY || "",
310285
+ postmanAccessToken: getInput("postman-access-token", env) || env.POSTMAN_ACCESS_TOKEN,
311230
310286
  credentialPreflight: parseEnumInput(
311231
310287
  "credential-preflight",
311232
310288
  getInput("credential-preflight", env),
@@ -313033,6 +312089,9 @@ function wantsVersion(argv) {
313033
312089
  return argv.includes("--version") || argv.includes("-V");
313034
312090
  }
313035
312091
  function resolvePackageVersion() {
312092
+ if (false) {
312093
+ return void 0;
312094
+ }
313036
312095
  const candidates = [];
313037
312096
  if (typeof __filename === "string" && __filename) {
313038
312097
  candidates.push(import_node_path5.default.join(import_node_path5.default.dirname(__filename), "..", "package.json"));