@speclynx/apidom-parser-adapter-openapi-yaml-3-0 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-0
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-0
@@ -21832,8 +21832,10 @@ class Composer {
21832
21832
  }
21833
21833
  }
21834
21834
  if (afterDoc) {
21835
- Array.prototype.push.apply(doc.errors, this.errors);
21836
- Array.prototype.push.apply(doc.warnings, this.warnings);
21835
+ for (let i = 0; i < this.errors.length; ++i)
21836
+ doc.errors.push(this.errors[i]);
21837
+ for (let i = 0; i < this.warnings.length; ++i)
21838
+ doc.warnings.push(this.warnings[i]);
21837
21839
  }
21838
21840
  else {
21839
21841
  doc.errors = this.errors;
@@ -25941,7 +25943,7 @@ class Lexer {
25941
25943
  const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));
25942
25944
  this.indentNext = this.indentValue + 1;
25943
25945
  this.indentValue += n;
25944
- return yield* this.parseBlockStart();
25946
+ return 'block-start';
25945
25947
  }
25946
25948
  return 'doc';
25947
25949
  }
@@ -26262,32 +26264,36 @@ class Lexer {
26262
26264
  return 0;
26263
26265
  }
26264
26266
  *pushIndicators() {
26265
- switch (this.charAt(0)) {
26266
- case '!':
26267
- return ((yield* this.pushTag()) +
26268
- (yield* this.pushSpaces(true)) +
26269
- (yield* this.pushIndicators()));
26270
- case '&':
26271
- return ((yield* this.pushUntil(isNotAnchorChar)) +
26272
- (yield* this.pushSpaces(true)) +
26273
- (yield* this.pushIndicators()));
26274
- case '-': // this is an error
26275
- case '?': // this is an error outside flow collections
26276
- case ':': {
26277
- const inFlow = this.flowLevel > 0;
26278
- const ch1 = this.charAt(1);
26279
- if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
26280
- if (!inFlow)
26281
- this.indentNext = this.indentValue + 1;
26282
- else if (this.flowKey)
26283
- this.flowKey = false;
26284
- return ((yield* this.pushCount(1)) +
26285
- (yield* this.pushSpaces(true)) +
26286
- (yield* this.pushIndicators()));
26267
+ let n = 0;
26268
+ loop: while (true) {
26269
+ switch (this.charAt(0)) {
26270
+ case '!':
26271
+ n += yield* this.pushTag();
26272
+ n += yield* this.pushSpaces(true);
26273
+ continue loop;
26274
+ case '&':
26275
+ n += yield* this.pushUntil(isNotAnchorChar);
26276
+ n += yield* this.pushSpaces(true);
26277
+ continue loop;
26278
+ case '-': // this is an error
26279
+ case '?': // this is an error outside flow collections
26280
+ case ':': {
26281
+ const inFlow = this.flowLevel > 0;
26282
+ const ch1 = this.charAt(1);
26283
+ if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
26284
+ if (!inFlow)
26285
+ this.indentNext = this.indentValue + 1;
26286
+ else if (this.flowKey)
26287
+ this.flowKey = false;
26288
+ n += yield* this.pushCount(1);
26289
+ n += yield* this.pushSpaces(true);
26290
+ continue loop;
26291
+ }
26287
26292
  }
26288
26293
  }
26294
+ break loop;
26289
26295
  }
26290
- return 0;
26296
+ return n;
26291
26297
  }
26292
26298
  *pushTag() {
26293
26299
  if (this.charAt(1) === '<') {
@@ -26480,6 +26486,14 @@ function getFirstKeyStartProps(prev) {
26480
26486
  }
26481
26487
  return prev.splice(i, prev.length);
26482
26488
  }
26489
+ function arrayPushArray(target, source) {
26490
+ // May exhaust call stack with large `source` array
26491
+ if (source.length < 1e5)
26492
+ Array.prototype.push.apply(target, source);
26493
+ else
26494
+ for (let i = 0; i < source.length; ++i)
26495
+ target.push(source[i]);
26496
+ }
26483
26497
  function fixFlowSeqItems(fc) {
26484
26498
  if (fc.start.type === 'flow-seq-start') {
26485
26499
  for (const it of fc.items) {
@@ -26492,12 +26506,12 @@ function fixFlowSeqItems(fc) {
26492
26506
  delete it.key;
26493
26507
  if (isFlowToken(it.value)) {
26494
26508
  if (it.value.end)
26495
- Array.prototype.push.apply(it.value.end, it.sep);
26509
+ arrayPushArray(it.value.end, it.sep);
26496
26510
  else
26497
26511
  it.value.end = it.sep;
26498
26512
  }
26499
26513
  else
26500
- Array.prototype.push.apply(it.start, it.sep);
26514
+ arrayPushArray(it.start, it.sep);
26501
26515
  delete it.sep;
26502
26516
  }
26503
26517
  }
@@ -26915,7 +26929,7 @@ class Parser {
26915
26929
  const prev = map.items[map.items.length - 2];
26916
26930
  const end = prev?.value?.end;
26917
26931
  if (Array.isArray(end)) {
26918
- Array.prototype.push.apply(end, it.start);
26932
+ arrayPushArray(end, it.start);
26919
26933
  end.push(this.sourceToken);
26920
26934
  map.items.pop();
26921
26935
  return;
@@ -27130,7 +27144,7 @@ class Parser {
27130
27144
  const prev = seq.items[seq.items.length - 2];
27131
27145
  const end = prev?.value?.end;
27132
27146
  if (Array.isArray(end)) {
27133
- Array.prototype.push.apply(end, it.start);
27147
+ arrayPushArray(end, it.start);
27134
27148
  end.push(this.sourceToken);
27135
27149
  seq.items.pop();
27136
27150
  return;