@speclynx/apidom-parser-adapter-openapi-yaml-2 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-2
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-2
@@ -21890,8 +21890,10 @@ class Composer {
21890
21890
  }
21891
21891
  }
21892
21892
  if (afterDoc) {
21893
- Array.prototype.push.apply(doc.errors, this.errors);
21894
- Array.prototype.push.apply(doc.warnings, this.warnings);
21893
+ for (let i = 0; i < this.errors.length; ++i)
21894
+ doc.errors.push(this.errors[i]);
21895
+ for (let i = 0; i < this.warnings.length; ++i)
21896
+ doc.warnings.push(this.warnings[i]);
21895
21897
  }
21896
21898
  else {
21897
21899
  doc.errors = this.errors;
@@ -25999,7 +26001,7 @@ class Lexer {
25999
26001
  const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));
26000
26002
  this.indentNext = this.indentValue + 1;
26001
26003
  this.indentValue += n;
26002
- return yield* this.parseBlockStart();
26004
+ return 'block-start';
26003
26005
  }
26004
26006
  return 'doc';
26005
26007
  }
@@ -26320,32 +26322,36 @@ class Lexer {
26320
26322
  return 0;
26321
26323
  }
26322
26324
  *pushIndicators() {
26323
- switch (this.charAt(0)) {
26324
- case '!':
26325
- return ((yield* this.pushTag()) +
26326
- (yield* this.pushSpaces(true)) +
26327
- (yield* this.pushIndicators()));
26328
- case '&':
26329
- return ((yield* this.pushUntil(isNotAnchorChar)) +
26330
- (yield* this.pushSpaces(true)) +
26331
- (yield* this.pushIndicators()));
26332
- case '-': // this is an error
26333
- case '?': // this is an error outside flow collections
26334
- case ':': {
26335
- const inFlow = this.flowLevel > 0;
26336
- const ch1 = this.charAt(1);
26337
- if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
26338
- if (!inFlow)
26339
- this.indentNext = this.indentValue + 1;
26340
- else if (this.flowKey)
26341
- this.flowKey = false;
26342
- return ((yield* this.pushCount(1)) +
26343
- (yield* this.pushSpaces(true)) +
26344
- (yield* this.pushIndicators()));
26325
+ let n = 0;
26326
+ loop: while (true) {
26327
+ switch (this.charAt(0)) {
26328
+ case '!':
26329
+ n += yield* this.pushTag();
26330
+ n += yield* this.pushSpaces(true);
26331
+ continue loop;
26332
+ case '&':
26333
+ n += yield* this.pushUntil(isNotAnchorChar);
26334
+ n += yield* this.pushSpaces(true);
26335
+ continue loop;
26336
+ case '-': // this is an error
26337
+ case '?': // this is an error outside flow collections
26338
+ case ':': {
26339
+ const inFlow = this.flowLevel > 0;
26340
+ const ch1 = this.charAt(1);
26341
+ if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
26342
+ if (!inFlow)
26343
+ this.indentNext = this.indentValue + 1;
26344
+ else if (this.flowKey)
26345
+ this.flowKey = false;
26346
+ n += yield* this.pushCount(1);
26347
+ n += yield* this.pushSpaces(true);
26348
+ continue loop;
26349
+ }
26345
26350
  }
26346
26351
  }
26352
+ break loop;
26347
26353
  }
26348
- return 0;
26354
+ return n;
26349
26355
  }
26350
26356
  *pushTag() {
26351
26357
  if (this.charAt(1) === '<') {
@@ -26538,6 +26544,14 @@ function getFirstKeyStartProps(prev) {
26538
26544
  }
26539
26545
  return prev.splice(i, prev.length);
26540
26546
  }
26547
+ function arrayPushArray(target, source) {
26548
+ // May exhaust call stack with large `source` array
26549
+ if (source.length < 1e5)
26550
+ Array.prototype.push.apply(target, source);
26551
+ else
26552
+ for (let i = 0; i < source.length; ++i)
26553
+ target.push(source[i]);
26554
+ }
26541
26555
  function fixFlowSeqItems(fc) {
26542
26556
  if (fc.start.type === 'flow-seq-start') {
26543
26557
  for (const it of fc.items) {
@@ -26550,12 +26564,12 @@ function fixFlowSeqItems(fc) {
26550
26564
  delete it.key;
26551
26565
  if (isFlowToken(it.value)) {
26552
26566
  if (it.value.end)
26553
- Array.prototype.push.apply(it.value.end, it.sep);
26567
+ arrayPushArray(it.value.end, it.sep);
26554
26568
  else
26555
26569
  it.value.end = it.sep;
26556
26570
  }
26557
26571
  else
26558
- Array.prototype.push.apply(it.start, it.sep);
26572
+ arrayPushArray(it.start, it.sep);
26559
26573
  delete it.sep;
26560
26574
  }
26561
26575
  }
@@ -26973,7 +26987,7 @@ class Parser {
26973
26987
  const prev = map.items[map.items.length - 2];
26974
26988
  const end = prev?.value?.end;
26975
26989
  if (Array.isArray(end)) {
26976
- Array.prototype.push.apply(end, it.start);
26990
+ arrayPushArray(end, it.start);
26977
26991
  end.push(this.sourceToken);
26978
26992
  map.items.pop();
26979
26993
  return;
@@ -27188,7 +27202,7 @@ class Parser {
27188
27202
  const prev = seq.items[seq.items.length - 2];
27189
27203
  const end = prev?.value?.end;
27190
27204
  if (Array.isArray(end)) {
27191
- Array.prototype.push.apply(end, it.start);
27205
+ arrayPushArray(end, it.start);
27192
27206
  end.push(this.sourceToken);
27193
27207
  seq.items.pop();
27194
27208
  return;