@speclynx/apidom-parser-adapter-overlay-yaml-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-overlay-yaml-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-overlay-yaml-1
@@ -20952,8 +20952,10 @@ class Composer {
20952
20952
  }
20953
20953
  }
20954
20954
  if (afterDoc) {
20955
- Array.prototype.push.apply(doc.errors, this.errors);
20956
- Array.prototype.push.apply(doc.warnings, this.warnings);
20955
+ for (let i = 0; i < this.errors.length; ++i)
20956
+ doc.errors.push(this.errors[i]);
20957
+ for (let i = 0; i < this.warnings.length; ++i)
20958
+ doc.warnings.push(this.warnings[i]);
20957
20959
  }
20958
20960
  else {
20959
20961
  doc.errors = this.errors;
@@ -25061,7 +25063,7 @@ class Lexer {
25061
25063
  const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));
25062
25064
  this.indentNext = this.indentValue + 1;
25063
25065
  this.indentValue += n;
25064
- return yield* this.parseBlockStart();
25066
+ return 'block-start';
25065
25067
  }
25066
25068
  return 'doc';
25067
25069
  }
@@ -25382,32 +25384,36 @@ class Lexer {
25382
25384
  return 0;
25383
25385
  }
25384
25386
  *pushIndicators() {
25385
- switch (this.charAt(0)) {
25386
- case '!':
25387
- return ((yield* this.pushTag()) +
25388
- (yield* this.pushSpaces(true)) +
25389
- (yield* this.pushIndicators()));
25390
- case '&':
25391
- return ((yield* this.pushUntil(isNotAnchorChar)) +
25392
- (yield* this.pushSpaces(true)) +
25393
- (yield* this.pushIndicators()));
25394
- case '-': // this is an error
25395
- case '?': // this is an error outside flow collections
25396
- case ':': {
25397
- const inFlow = this.flowLevel > 0;
25398
- const ch1 = this.charAt(1);
25399
- if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
25400
- if (!inFlow)
25401
- this.indentNext = this.indentValue + 1;
25402
- else if (this.flowKey)
25403
- this.flowKey = false;
25404
- return ((yield* this.pushCount(1)) +
25405
- (yield* this.pushSpaces(true)) +
25406
- (yield* this.pushIndicators()));
25387
+ let n = 0;
25388
+ loop: while (true) {
25389
+ switch (this.charAt(0)) {
25390
+ case '!':
25391
+ n += yield* this.pushTag();
25392
+ n += yield* this.pushSpaces(true);
25393
+ continue loop;
25394
+ case '&':
25395
+ n += yield* this.pushUntil(isNotAnchorChar);
25396
+ n += yield* this.pushSpaces(true);
25397
+ continue loop;
25398
+ case '-': // this is an error
25399
+ case '?': // this is an error outside flow collections
25400
+ case ':': {
25401
+ const inFlow = this.flowLevel > 0;
25402
+ const ch1 = this.charAt(1);
25403
+ if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
25404
+ if (!inFlow)
25405
+ this.indentNext = this.indentValue + 1;
25406
+ else if (this.flowKey)
25407
+ this.flowKey = false;
25408
+ n += yield* this.pushCount(1);
25409
+ n += yield* this.pushSpaces(true);
25410
+ continue loop;
25411
+ }
25407
25412
  }
25408
25413
  }
25414
+ break loop;
25409
25415
  }
25410
- return 0;
25416
+ return n;
25411
25417
  }
25412
25418
  *pushTag() {
25413
25419
  if (this.charAt(1) === '<') {
@@ -25600,6 +25606,14 @@ function getFirstKeyStartProps(prev) {
25600
25606
  }
25601
25607
  return prev.splice(i, prev.length);
25602
25608
  }
25609
+ function arrayPushArray(target, source) {
25610
+ // May exhaust call stack with large `source` array
25611
+ if (source.length < 1e5)
25612
+ Array.prototype.push.apply(target, source);
25613
+ else
25614
+ for (let i = 0; i < source.length; ++i)
25615
+ target.push(source[i]);
25616
+ }
25603
25617
  function fixFlowSeqItems(fc) {
25604
25618
  if (fc.start.type === 'flow-seq-start') {
25605
25619
  for (const it of fc.items) {
@@ -25612,12 +25626,12 @@ function fixFlowSeqItems(fc) {
25612
25626
  delete it.key;
25613
25627
  if (isFlowToken(it.value)) {
25614
25628
  if (it.value.end)
25615
- Array.prototype.push.apply(it.value.end, it.sep);
25629
+ arrayPushArray(it.value.end, it.sep);
25616
25630
  else
25617
25631
  it.value.end = it.sep;
25618
25632
  }
25619
25633
  else
25620
- Array.prototype.push.apply(it.start, it.sep);
25634
+ arrayPushArray(it.start, it.sep);
25621
25635
  delete it.sep;
25622
25636
  }
25623
25637
  }
@@ -26035,7 +26049,7 @@ class Parser {
26035
26049
  const prev = map.items[map.items.length - 2];
26036
26050
  const end = prev?.value?.end;
26037
26051
  if (Array.isArray(end)) {
26038
- Array.prototype.push.apply(end, it.start);
26052
+ arrayPushArray(end, it.start);
26039
26053
  end.push(this.sourceToken);
26040
26054
  map.items.pop();
26041
26055
  return;
@@ -26250,7 +26264,7 @@ class Parser {
26250
26264
  const prev = seq.items[seq.items.length - 2];
26251
26265
  const end = prev?.value?.end;
26252
26266
  if (Array.isArray(end)) {
26253
- Array.prototype.push.apply(end, it.start);
26267
+ arrayPushArray(end, it.start);
26254
26268
  end.push(this.sourceToken);
26255
26269
  seq.items.pop();
26256
26270
  return;