@postman-cse/onboarding-bootstrap 2.9.5 → 2.9.7

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,53 @@ ${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 findCommittedItem = async () => {
263691
+ const matches = (await this.listCollectionItems(cid)).filter((candidate) => {
263692
+ if (String(candidate.name ?? candidate.title ?? "") !== name) return false;
263693
+ if (String(candidate.$kind ?? candidate.type ?? "http-request") !== kind) return false;
263694
+ const position = asRecord8(candidate.position);
263695
+ const parent = asRecord8(position?.parent);
263696
+ const candidateParent = String(parent?.id ?? position?.parent ?? candidate.parent ?? "").trim();
263697
+ return Boolean(candidateParent) && this.bareModelId(candidateParent) === this.bareModelId(parentId);
263698
+ });
263699
+ return adoptExactMatch(
263700
+ `collection-item:${cid}:${parentId}:${kind}:${name}`,
263701
+ matches,
263702
+ (candidate) => String(candidate.id ?? "")
263703
+ );
263704
+ };
263705
+ let match = await findCommittedItem();
263706
+ if (!match) {
263707
+ await this.sleep(fullJitterDelayMs(attempt - 1, 300, 2e3, this.random));
263708
+ match = await findCommittedItem();
263709
+ }
263710
+ if (match) {
263711
+ created = { data: { id: match.id } };
263712
+ } else {
263713
+ const retriable = error instanceof HttpError && error.status >= 500;
263714
+ if (!retriable || attempt === maxAttempts) throw error;
263715
+ continue;
263716
+ }
263717
+ }
263718
+ newId = String(asRecord8(created?.data)?.id ?? "").trim();
263719
+ if (newId) break;
263677
263720
  }
263678
- const newId = String(asRecord8(created?.data)?.id ?? "").trim();
263679
263721
  if (!newId) {
263680
263722
  throw new Error(
263681
263723
  `Item create did not return an id for ${String(item.name ?? "item")}`
@@ -263718,6 +263760,30 @@ ${error.responseBody ?? ""}`
263718
263760
  * - `remove` of /description always works (field exists as "")
263719
263761
  * - on update, GET the root first and only remove fields that currently exist
263720
263762
  */
263763
+ /**
263764
+ * GET a collection root, retrying through the v3 surface's read-after-write
263765
+ * 404 lag. A freshly generated/renamed collection can transiently report
263766
+ * RESOURCE_NOT_FOUND for a few seconds (worse under concurrent runner load);
263767
+ * retrying absorbs that instead of hard-failing the run.
263768
+ */
263769
+ async getCollectionRoot(cid) {
263770
+ const got = await retry(
263771
+ () => this.gateway.requestJson({
263772
+ service: "collection",
263773
+ method: "get",
263774
+ path: `/v3/collections/${cid}`,
263775
+ retry: "none"
263776
+ }),
263777
+ {
263778
+ maxAttempts: 6,
263779
+ delayMs: 1e3,
263780
+ backoffMultiplier: 2,
263781
+ maxDelayMs: 8e3,
263782
+ shouldRetry: (error) => error instanceof HttpError && error.status === 404
263783
+ }
263784
+ );
263785
+ return asRecord8(got?.data);
263786
+ }
263721
263787
  async applyCollectionLevelSettings(cid, v3, options = {}) {
263722
263788
  const ops = [];
263723
263789
  if (options.rename && typeof v3.name === "string" && v3.name) {
@@ -263725,12 +263791,7 @@ ${error.responseBody ?? ""}`
263725
263791
  }
263726
263792
  let current = null;
263727
263793
  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);
263794
+ current = await this.getCollectionRoot(cid);
263734
263795
  }
263735
263796
  const hasDescription = typeof v3.description === "string" && v3.description.length > 0;
263736
263797
  if (hasDescription) {
@@ -263769,6 +263830,9 @@ ${error.responseBody ?? ""}`
263769
263830
  if (isMissingPatchValueError(error) && ops.some((op) => op.op === "remove") && await this.verifyRootSettingsApplied(cid, ops)) {
263770
263831
  return;
263771
263832
  }
263833
+ if (isRejectedPatchError(error) && await this.verifyRootSettingsApplied(cid, ops)) {
263834
+ return;
263835
+ }
263772
263836
  throw error;
263773
263837
  }
263774
263838
  }
@@ -263892,7 +263956,9 @@ ${error.responseBody ?? ""}`
263892
263956
  }
263893
263957
  /** Patch only the durable collection description without reconciling its item tree. */
263894
263958
  async updateCollectionDescription(collectionUid, description) {
263895
- await this.applyCollectionLevelSettings(this.bareModelId(collectionUid), { description });
263959
+ const cid = this.bareModelId(collectionUid);
263960
+ await this.getCollectionRoot(cid);
263961
+ await this.applyCollectionLevelSettings(cid, { description });
263896
263962
  }
263897
263963
  /**
263898
263964
  * Full-replace reconcile of a curated local v2.1.0 or collection v3 payload: delete every
@@ -263975,6 +264041,7 @@ function detectInnerError(body2) {
263975
264041
  return typeof innerStatus === "number" && innerStatus >= 400 ? innerStatus : 502;
263976
264042
  }
263977
264043
  function isTransientGatewayError(status, body2) {
264044
+ if (status === 429) return true;
263978
264045
  if (status === 502 || status === 503 || status === 504) return true;
263979
264046
  if (status >= 500 && (body2.includes("ESOCKETTIMEDOUT") || body2.includes("ETIMEDOUT") || body2.includes("ECONNRESET") || body2.includes("serverError") || body2.includes("downstream"))) {
263980
264047
  return true;
@@ -263993,8 +264060,10 @@ var AccessTokenGatewayClient = class {
263993
264060
  secretMasker;
263994
264061
  maxRetries;
263995
264062
  retryBaseDelayMs;
264063
+ retryMaxDelayMs;
263996
264064
  requestTimeoutMs;
263997
264065
  sleepImpl;
264066
+ randomImpl;
263998
264067
  constructor(options) {
263999
264068
  this.tokenProvider = options.tokenProvider;
264000
264069
  this.bifrostBaseUrl = String(
@@ -264006,8 +264075,10 @@ var AccessTokenGatewayClient = class {
264006
264075
  this.secretMasker = options.secretMasker ?? createSecretMasker([this.tokenProvider.current()]);
264007
264076
  this.maxRetries = options.maxRetries ?? 3;
264008
264077
  this.retryBaseDelayMs = options.retryBaseDelayMs ?? 400;
264078
+ this.retryMaxDelayMs = options.retryMaxDelayMs ?? 5e3;
264009
264079
  this.requestTimeoutMs = options.requestTimeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
264010
264080
  this.sleepImpl = options.sleepImpl ?? defaultSleep;
264081
+ this.randomImpl = options.randomImpl ?? Math.random;
264011
264082
  }
264012
264083
  configureTeamContext(teamId, orgMode) {
264013
264084
  this.teamId = String(teamId || "").trim();
@@ -264067,7 +264138,7 @@ var AccessTokenGatewayClient = class {
264067
264138
  response = await this.send(request);
264068
264139
  } catch (error) {
264069
264140
  if (retryMode === "safe" && attempt < this.maxRetries) {
264070
- const delay = this.retryBaseDelayMs * 2 ** attempt;
264141
+ const delay = this.retryDelayMs(attempt);
264071
264142
  attempt += 1;
264072
264143
  await this.sleepImpl(delay);
264073
264144
  continue;
@@ -264079,7 +264150,7 @@ var AccessTokenGatewayClient = class {
264079
264150
  const innerStatus = detectInnerError(okBody);
264080
264151
  if (innerStatus !== null) {
264081
264152
  if (retryMode === "safe" && isTransientGatewayError(innerStatus, okBody) && attempt < this.maxRetries) {
264082
- const delay = this.retryBaseDelayMs * 2 ** attempt;
264153
+ const delay = this.retryDelayMs(attempt);
264083
264154
  attempt += 1;
264084
264155
  await this.sleepImpl(delay);
264085
264156
  continue;
@@ -264104,7 +264175,10 @@ var AccessTokenGatewayClient = class {
264104
264175
  throw this.toHttpError(request, response, retryBody);
264105
264176
  }
264106
264177
  if (retryMode === "safe" && isTransientGatewayError(response.status, body2) && attempt < this.maxRetries) {
264107
- const delay = this.retryBaseDelayMs * 2 ** attempt;
264178
+ const delay = this.retryDelayMs(
264179
+ attempt,
264180
+ parseRetryAfterMs2(response.headers.get("retry-after"))
264181
+ );
264108
264182
  attempt += 1;
264109
264183
  await this.sleepImpl(delay);
264110
264184
  continue;
@@ -264112,6 +264186,18 @@ var AccessTokenGatewayClient = class {
264112
264186
  throw this.toHttpError(request, response, body2);
264113
264187
  }
264114
264188
  }
264189
+ /**
264190
+ * Full-jitter backoff (uniform in [0, min(cap, base * 2^attempt))) so
264191
+ * concurrent CI runners that fail together never retry in lockstep against
264192
+ * the shared gateway. A server-sent Retry-After beats the heuristic: it is
264193
+ * authoritative backpressure, honored verbatim (capped by the ceiling).
264194
+ */
264195
+ retryDelayMs(attempt, retryAfterMs) {
264196
+ if (retryAfterMs !== void 0) {
264197
+ return Math.min(this.retryMaxDelayMs, retryAfterMs);
264198
+ }
264199
+ return fullJitterDelayMs(attempt, this.retryBaseDelayMs, this.retryMaxDelayMs, this.randomImpl);
264200
+ }
264115
264201
  /**
264116
264202
  * The success path reads the body to inspect for an inner error, which
264117
264203
  * consumes the stream. Hand callers a fresh Response over the buffered text so
@@ -264849,6 +264935,9 @@ function createTelemetryContext(options) {
264849
264935
  var import_node_fs3 = require("node:fs");
264850
264936
  var import_node_path3 = require("node:path");
264851
264937
  function resolveActionVersion2() {
264938
+ if (false) {
264939
+ return void 0;
264940
+ }
264852
264941
  try {
264853
264942
  const raw = (0, import_node_fs3.readFileSync)((0, import_node_path3.join)(__dirname, "..", "package.json"), "utf8");
264854
264943
  return JSON.parse(raw).version ?? "unknown";
@@ -297648,940 +297737,6 @@ function getPositionFromMatch(match) {
297648
297737
  }
297649
297738
 
297650
297739
  // 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
297740
  var CURRENCY = {
298586
297741
  cent: "\xA2",
298587
297742
  pound: "\xA3",
@@ -298599,106 +297754,6 @@ var CURRENCY = {
298599
297754
  yuan: "\xA5",
298600
297755
  cedil: "\xB8"
298601
297756
  };
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
297757
  var XML = {
298703
297758
  amp: "&",
298704
297759
  apos: "'",
@@ -299342,7 +298397,7 @@ var XmlNode = class {
299342
298397
  }
299343
298398
  };
299344
298399
 
299345
- // node_modules/xml-naming/src/index.js
298400
+ // node_modules/fast-xml-parser/node_modules/xml-naming/src/index.js
299346
298401
  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
298402
  var nameChar10 = nameStartChar10 + "\\-\\.\\d\xB7\u0300-\u036F\u203F-\u2040";
299348
298403
  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 +298416,14 @@ var buildRegexes = (startChar, char, flags = "") => {
299361
298416
  };
299362
298417
  var regexes10 = buildRegexes(nameStartChar10, nameChar10);
299363
298418
  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);
298419
+ var nameStartCharAscii = ":A-Za-z_";
298420
+ var nameCharAscii = nameStartCharAscii + "\\-\\.\\d";
298421
+ var regexesAscii = buildRegexes(nameStartCharAscii, nameCharAscii);
298422
+ var getRegexes = (xmlVersion = "1.0", asciiOnly = false) => {
298423
+ if (asciiOnly) return regexesAscii;
298424
+ return xmlVersion === "1.1" ? regexes11 : regexes10;
298425
+ };
298426
+ var qName = (str, { xmlVersion = "1.0", asciiOnly = false } = {}) => getRegexes(xmlVersion, asciiOnly).qName.test(str);
299366
298427
 
299367
298428
  // node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js
299368
298429
  var DocTypeReader = class {
@@ -300524,17 +299585,16 @@ var Matcher = class {
300524
299585
  this.path[this.path.length - 1].values = void 0;
300525
299586
  }
300526
299587
  const currentLevel = this.path.length;
300527
- if (!this.siblingStacks[currentLevel]) {
300528
- this.siblingStacks[currentLevel] = /* @__PURE__ */ new Map();
299588
+ let level = this.siblingStacks[currentLevel];
299589
+ if (!level) {
299590
+ level = { counts: /* @__PURE__ */ new Map(), total: 0 };
299591
+ this.siblingStacks[currentLevel] = level;
300529
299592
  }
300530
- const siblings = this.siblingStacks[currentLevel];
300531
299593
  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);
299594
+ const counter = level.counts.get(siblingKey) || 0;
299595
+ const position = level.total;
299596
+ level.counts.set(siblingKey, counter + 1);
299597
+ level.total++;
300538
299598
  const node = {
300539
299599
  tag: tagName,
300540
299600
  position,
@@ -300843,7 +299903,7 @@ var Matcher = class {
300843
299903
  snapshot() {
300844
299904
  return {
300845
299905
  path: this.path.map((node) => ({ ...node })),
300846
- siblingStacks: this.siblingStacks.map((map) => new Map(map)),
299906
+ siblingStacks: this.siblingStacks.map((level) => level ? { counts: new Map(level.counts), total: level.total } : level),
300847
299907
  keptAttrs: this._keptAttrs.map((entry) => ({ ...entry }))
300848
299908
  };
300849
299909
  }
@@ -300854,7 +299914,7 @@ var Matcher = class {
300854
299914
  restore(snapshot) {
300855
299915
  this._pathStringCache = null;
300856
299916
  this.path = snapshot.path.map((node) => ({ ...node }));
300857
- this.siblingStacks = snapshot.siblingStacks.map((map) => new Map(map));
299917
+ this.siblingStacks = snapshot.siblingStacks.map((level) => level ? { counts: new Map(level.counts), total: level.total } : level);
300858
299918
  this._keptAttrs = (snapshot.keptAttrs || []).map((entry) => ({ ...entry }));
300859
299919
  }
300860
299920
  /**
@@ -301192,27 +300252,6 @@ var SQL_PATTERNS = [
301192
300252
  ];
301193
300253
  var sql_default = SQL_PATTERNS;
301194
300254
 
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
300255
  // node_modules/is-unsafe/src/contexts/shell.js
301217
300256
  var SHELL_PATTERNS = [
301218
300257
  {
@@ -301524,8 +300563,38 @@ var LOG_PATTERNS = [
301524
300563
  ];
301525
300564
  var log_default = LOG_PATTERNS;
301526
300565
 
301527
- // node_modules/is-unsafe/src/registry.js
301528
- var CONTEXT_REGISTRY = {
300566
+ // node_modules/is-unsafe/src/contexts/sql-strict.js
300567
+ var SQL_STRICT_EXTRA = [
300568
+ {
300569
+ id: "sql-line-comment",
300570
+ description: "SQL line comment: -- followed by whitespace or end of string",
300571
+ pattern: /--(?:\s|$)/
300572
+ },
300573
+ {
300574
+ id: "sql-stacked-query",
300575
+ description: "Stacked queries: semicolon immediately followed by a SQL keyword",
300576
+ pattern: /;\s{0,10}(?:SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC)\b/i
300577
+ },
300578
+ {
300579
+ id: "sql-hex-encoding",
300580
+ description: "Hex-encoded string injection: 0x41414141 style (MySQL)",
300581
+ pattern: /\b0x[0-9a-f]{4,}/i
300582
+ }
300583
+ ];
300584
+ var SQL_STRICT_PATTERNS = [...sql_default, ...SQL_STRICT_EXTRA];
300585
+ var sql_strict_default = SQL_STRICT_PATTERNS;
300586
+
300587
+ // node_modules/is-unsafe/src/index.js
300588
+ html_default.label = "HTML";
300589
+ xml_default.label = "XML";
300590
+ svg_default.label = "SVG";
300591
+ sql_default.label = "SQL";
300592
+ sql_strict_default.label = "SQL-STRICT";
300593
+ shell_default.label = "SHELL";
300594
+ redos_default.label = "REDOS";
300595
+ nosql_default.label = "NOSQL";
300596
+ log_default.label = "LOG";
300597
+ var VALID_CONTEXTS = Object.freeze({
301529
300598
  HTML: html_default,
301530
300599
  XML: xml_default,
301531
300600
  SVG: svg_default,
@@ -301535,13 +300604,7 @@ var CONTEXT_REGISTRY = {
301535
300604
  REDOS: redos_default,
301536
300605
  NOSQL: nosql_default,
301537
300606
  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
300607
+ });
301545
300608
  function assertString(value) {
301546
300609
  if (typeof value !== "string") {
301547
300610
  throw new TypeError(
@@ -301551,36 +300614,35 @@ function assertString(value) {
301551
300614
  }
301552
300615
  function assertContext(context) {
301553
300616
  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
300617
  if (Array.isArray(context)) {
301563
300618
  if (context.length === 0) {
301564
- throw new TypeError("is-unsafe: context array must not be empty");
300619
+ throw new TypeError("is-unsafe: context must not be an empty array");
301565
300620
  }
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
- );
300621
+ if (Array.isArray(context[0])) {
300622
+ for (const list of context) {
300623
+ if (!Array.isArray(list) || list.length === 0) {
300624
+ throw new TypeError(
300625
+ "is-unsafe: each context in the array must be a non-empty pattern array (PatternList)"
300626
+ );
300627
+ }
301571
300628
  }
301572
300629
  }
301573
300630
  return;
301574
300631
  }
301575
300632
  throw new TypeError(
301576
- `is-unsafe: second argument must be a context string, array of context strings, or RegExp. Got: ${typeof context}`
300633
+ `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
300634
  );
301578
300635
  }
301579
- function matchContext(value, contextName) {
301580
- const patterns = registry_default[contextName];
301581
- for (const rule of patterns) {
300636
+ function normalise(context) {
300637
+ if (context instanceof RegExp) return { lists: null, regex: context };
300638
+ if (Array.isArray(context[0])) return { lists: context, regex: null };
300639
+ return { lists: [context], regex: null };
300640
+ }
300641
+ function matchList(value, list) {
300642
+ const label = list.label ?? "CUSTOM";
300643
+ for (const rule of list) {
301582
300644
  if (rule.pattern.test(value)) {
301583
- return { context: contextName, id: rule.id, description: rule.description, pattern: rule.pattern };
300645
+ return { context: label, id: rule.id, description: rule.description, pattern: rule.pattern };
301584
300646
  }
301585
300647
  }
301586
300648
  return null;
@@ -301588,14 +300650,10 @@ function matchContext(value, contextName) {
301588
300650
  function isUnsafe(value, context) {
301589
300651
  assertString(value);
301590
300652
  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;
300653
+ const { lists, regex } = normalise(context);
300654
+ if (regex) return regex.test(value);
300655
+ for (const list of lists) {
300656
+ if (matchList(value, list) !== null) return true;
301599
300657
  }
301600
300658
  return false;
301601
300659
  }
@@ -301644,6 +300702,7 @@ var OrderedObjParser = class {
301644
300702
  this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes);
301645
300703
  this.entityExpansionCount = 0;
301646
300704
  this.currentExpandedLength = 0;
300705
+ this.doctypefound = false;
301647
300706
  let namedEntities = { ...XML };
301648
300707
  if (this.options.entityDecoder) {
301649
300708
  this.entityDecoder = this.options.entityDecoder;
@@ -301661,7 +300720,7 @@ var OrderedObjParser = class {
301661
300720
  // onExternalEntity: (name, value) => isUnsafe(value) ? 'block' : 'allow',
301662
300721
  onInputEntity: (name, value) => (
301663
300722
  //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
300723
+ isUnsafe(value, [html_default, xml_default]) ? ENTITY_ACTION.BLOCK : ENTITY_ACTION.ALLOW
301665
300724
  )
301666
300725
  //postCheck: resolved => resolved
301667
300726
  });
@@ -301795,6 +300854,7 @@ var parseXml = function(xmlData) {
301795
300854
  this.entityDecoder.reset();
301796
300855
  this.entityExpansionCount = 0;
301797
300856
  this.currentExpandedLength = 0;
300857
+ this.doctypefound = false;
301798
300858
  const options = this.options;
301799
300859
  const docTypeReader = new DocTypeReader(options.processEntities);
301800
300860
  const xmlLen = xmlData.length;
@@ -301857,6 +300917,8 @@ var parseXml = function(xmlData) {
301857
300917
  }
301858
300918
  i = endIndex;
301859
300919
  } else if (c1 === 33 && xmlData.charCodeAt(i + 2) === 68) {
300920
+ if (this.doctypefound) throw new Error("Multiple DOCTYPE declarations found.");
300921
+ this.doctypefound = true;
301860
300922
  const result = docTypeReader.readDocType(xmlData, i);
301861
300923
  this.entityDecoder.addInputEntities(result.entities);
301862
300924
  i = result.i;
@@ -311225,8 +310287,8 @@ function resolveInputs(env = process.env) {
311225
310287
  breakingSummaryPath: getInput("breaking-summary-path", env),
311226
310288
  breakingLogPath: getInput("breaking-log-path", env),
311227
310289
  governanceMappingJson: parseGovernanceMappingJson(getInput("governance-mapping-json", env)),
311228
- postmanApiKey: getInput("postman-api-key", env) ?? "",
311229
- postmanAccessToken: getInput("postman-access-token", env),
310290
+ postmanApiKey: getInput("postman-api-key", env) || env.POSTMAN_API_KEY || "",
310291
+ postmanAccessToken: getInput("postman-access-token", env) || env.POSTMAN_ACCESS_TOKEN,
311230
310292
  credentialPreflight: parseEnumInput(
311231
310293
  "credential-preflight",
311232
310294
  getInput("credential-preflight", env),
@@ -313033,6 +312095,9 @@ function wantsVersion(argv) {
313033
312095
  return argv.includes("--version") || argv.includes("-V");
313034
312096
  }
313035
312097
  function resolvePackageVersion() {
312098
+ if (false) {
312099
+ return void 0;
312100
+ }
313036
312101
  const candidates = [];
313037
312102
  if (typeof __filename === "string" && __filename) {
313038
312103
  candidates.push(import_node_path5.default.join(import_node_path5.default.dirname(__filename), "..", "package.json"));