@speclynx/apidom-parser-adapter-openapi-yaml-3-1 4.10.0 → 4.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.10.1](https://github.com/speclynx/apidom/compare/v4.10.0...v4.10.1) (2026-05-20)
7
+
8
+ **Note:** Version bump only for package @speclynx/apidom-parser-adapter-openapi-yaml-3-1
9
+
6
10
  # [4.10.0](https://github.com/speclynx/apidom/compare/v4.9.1...v4.10.0) (2026-05-12)
7
11
 
8
12
  **Note:** Version bump only for package @speclynx/apidom-parser-adapter-openapi-yaml-3-1
@@ -22143,8 +22143,10 @@ class Composer {
22143
22143
  }
22144
22144
  }
22145
22145
  if (afterDoc) {
22146
- Array.prototype.push.apply(doc.errors, this.errors);
22147
- Array.prototype.push.apply(doc.warnings, this.warnings);
22146
+ for (let i = 0; i < this.errors.length; ++i)
22147
+ doc.errors.push(this.errors[i]);
22148
+ for (let i = 0; i < this.warnings.length; ++i)
22149
+ doc.warnings.push(this.warnings[i]);
22148
22150
  }
22149
22151
  else {
22150
22152
  doc.errors = this.errors;
@@ -26252,7 +26254,7 @@ class Lexer {
26252
26254
  const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));
26253
26255
  this.indentNext = this.indentValue + 1;
26254
26256
  this.indentValue += n;
26255
- return yield* this.parseBlockStart();
26257
+ return 'block-start';
26256
26258
  }
26257
26259
  return 'doc';
26258
26260
  }
@@ -26573,32 +26575,36 @@ class Lexer {
26573
26575
  return 0;
26574
26576
  }
26575
26577
  *pushIndicators() {
26576
- switch (this.charAt(0)) {
26577
- case '!':
26578
- return ((yield* this.pushTag()) +
26579
- (yield* this.pushSpaces(true)) +
26580
- (yield* this.pushIndicators()));
26581
- case '&':
26582
- return ((yield* this.pushUntil(isNotAnchorChar)) +
26583
- (yield* this.pushSpaces(true)) +
26584
- (yield* this.pushIndicators()));
26585
- case '-': // this is an error
26586
- case '?': // this is an error outside flow collections
26587
- case ':': {
26588
- const inFlow = this.flowLevel > 0;
26589
- const ch1 = this.charAt(1);
26590
- if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
26591
- if (!inFlow)
26592
- this.indentNext = this.indentValue + 1;
26593
- else if (this.flowKey)
26594
- this.flowKey = false;
26595
- return ((yield* this.pushCount(1)) +
26596
- (yield* this.pushSpaces(true)) +
26597
- (yield* this.pushIndicators()));
26578
+ let n = 0;
26579
+ loop: while (true) {
26580
+ switch (this.charAt(0)) {
26581
+ case '!':
26582
+ n += yield* this.pushTag();
26583
+ n += yield* this.pushSpaces(true);
26584
+ continue loop;
26585
+ case '&':
26586
+ n += yield* this.pushUntil(isNotAnchorChar);
26587
+ n += yield* this.pushSpaces(true);
26588
+ continue loop;
26589
+ case '-': // this is an error
26590
+ case '?': // this is an error outside flow collections
26591
+ case ':': {
26592
+ const inFlow = this.flowLevel > 0;
26593
+ const ch1 = this.charAt(1);
26594
+ if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
26595
+ if (!inFlow)
26596
+ this.indentNext = this.indentValue + 1;
26597
+ else if (this.flowKey)
26598
+ this.flowKey = false;
26599
+ n += yield* this.pushCount(1);
26600
+ n += yield* this.pushSpaces(true);
26601
+ continue loop;
26602
+ }
26598
26603
  }
26599
26604
  }
26605
+ break loop;
26600
26606
  }
26601
- return 0;
26607
+ return n;
26602
26608
  }
26603
26609
  *pushTag() {
26604
26610
  if (this.charAt(1) === '<') {
@@ -26791,6 +26797,14 @@ function getFirstKeyStartProps(prev) {
26791
26797
  }
26792
26798
  return prev.splice(i, prev.length);
26793
26799
  }
26800
+ function arrayPushArray(target, source) {
26801
+ // May exhaust call stack with large `source` array
26802
+ if (source.length < 1e5)
26803
+ Array.prototype.push.apply(target, source);
26804
+ else
26805
+ for (let i = 0; i < source.length; ++i)
26806
+ target.push(source[i]);
26807
+ }
26794
26808
  function fixFlowSeqItems(fc) {
26795
26809
  if (fc.start.type === 'flow-seq-start') {
26796
26810
  for (const it of fc.items) {
@@ -26803,12 +26817,12 @@ function fixFlowSeqItems(fc) {
26803
26817
  delete it.key;
26804
26818
  if (isFlowToken(it.value)) {
26805
26819
  if (it.value.end)
26806
- Array.prototype.push.apply(it.value.end, it.sep);
26820
+ arrayPushArray(it.value.end, it.sep);
26807
26821
  else
26808
26822
  it.value.end = it.sep;
26809
26823
  }
26810
26824
  else
26811
- Array.prototype.push.apply(it.start, it.sep);
26825
+ arrayPushArray(it.start, it.sep);
26812
26826
  delete it.sep;
26813
26827
  }
26814
26828
  }
@@ -27226,7 +27240,7 @@ class Parser {
27226
27240
  const prev = map.items[map.items.length - 2];
27227
27241
  const end = prev?.value?.end;
27228
27242
  if (Array.isArray(end)) {
27229
- Array.prototype.push.apply(end, it.start);
27243
+ arrayPushArray(end, it.start);
27230
27244
  end.push(this.sourceToken);
27231
27245
  map.items.pop();
27232
27246
  return;
@@ -27441,7 +27455,7 @@ class Parser {
27441
27455
  const prev = seq.items[seq.items.length - 2];
27442
27456
  const end = prev?.value?.end;
27443
27457
  if (Array.isArray(end)) {
27444
- Array.prototype.push.apply(end, it.start);
27458
+ arrayPushArray(end, it.start);
27445
27459
  end.push(this.sourceToken);
27446
27460
  seq.items.pop();
27447
27461
  return;