@speclynx/apidom-parser-adapter-asyncapi-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-asyncapi-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-asyncapi-yaml-2
@@ -21908,8 +21908,10 @@ class Composer {
21908
21908
  }
21909
21909
  }
21910
21910
  if (afterDoc) {
21911
- Array.prototype.push.apply(doc.errors, this.errors);
21912
- Array.prototype.push.apply(doc.warnings, this.warnings);
21911
+ for (let i = 0; i < this.errors.length; ++i)
21912
+ doc.errors.push(this.errors[i]);
21913
+ for (let i = 0; i < this.warnings.length; ++i)
21914
+ doc.warnings.push(this.warnings[i]);
21913
21915
  }
21914
21916
  else {
21915
21917
  doc.errors = this.errors;
@@ -26017,7 +26019,7 @@ class Lexer {
26017
26019
  const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));
26018
26020
  this.indentNext = this.indentValue + 1;
26019
26021
  this.indentValue += n;
26020
- return yield* this.parseBlockStart();
26022
+ return 'block-start';
26021
26023
  }
26022
26024
  return 'doc';
26023
26025
  }
@@ -26338,32 +26340,36 @@ class Lexer {
26338
26340
  return 0;
26339
26341
  }
26340
26342
  *pushIndicators() {
26341
- switch (this.charAt(0)) {
26342
- case '!':
26343
- return ((yield* this.pushTag()) +
26344
- (yield* this.pushSpaces(true)) +
26345
- (yield* this.pushIndicators()));
26346
- case '&':
26347
- return ((yield* this.pushUntil(isNotAnchorChar)) +
26348
- (yield* this.pushSpaces(true)) +
26349
- (yield* this.pushIndicators()));
26350
- case '-': // this is an error
26351
- case '?': // this is an error outside flow collections
26352
- case ':': {
26353
- const inFlow = this.flowLevel > 0;
26354
- const ch1 = this.charAt(1);
26355
- if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
26356
- if (!inFlow)
26357
- this.indentNext = this.indentValue + 1;
26358
- else if (this.flowKey)
26359
- this.flowKey = false;
26360
- return ((yield* this.pushCount(1)) +
26361
- (yield* this.pushSpaces(true)) +
26362
- (yield* this.pushIndicators()));
26343
+ let n = 0;
26344
+ loop: while (true) {
26345
+ switch (this.charAt(0)) {
26346
+ case '!':
26347
+ n += yield* this.pushTag();
26348
+ n += yield* this.pushSpaces(true);
26349
+ continue loop;
26350
+ case '&':
26351
+ n += yield* this.pushUntil(isNotAnchorChar);
26352
+ n += yield* this.pushSpaces(true);
26353
+ continue loop;
26354
+ case '-': // this is an error
26355
+ case '?': // this is an error outside flow collections
26356
+ case ':': {
26357
+ const inFlow = this.flowLevel > 0;
26358
+ const ch1 = this.charAt(1);
26359
+ if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
26360
+ if (!inFlow)
26361
+ this.indentNext = this.indentValue + 1;
26362
+ else if (this.flowKey)
26363
+ this.flowKey = false;
26364
+ n += yield* this.pushCount(1);
26365
+ n += yield* this.pushSpaces(true);
26366
+ continue loop;
26367
+ }
26363
26368
  }
26364
26369
  }
26370
+ break loop;
26365
26371
  }
26366
- return 0;
26372
+ return n;
26367
26373
  }
26368
26374
  *pushTag() {
26369
26375
  if (this.charAt(1) === '<') {
@@ -26556,6 +26562,14 @@ function getFirstKeyStartProps(prev) {
26556
26562
  }
26557
26563
  return prev.splice(i, prev.length);
26558
26564
  }
26565
+ function arrayPushArray(target, source) {
26566
+ // May exhaust call stack with large `source` array
26567
+ if (source.length < 1e5)
26568
+ Array.prototype.push.apply(target, source);
26569
+ else
26570
+ for (let i = 0; i < source.length; ++i)
26571
+ target.push(source[i]);
26572
+ }
26559
26573
  function fixFlowSeqItems(fc) {
26560
26574
  if (fc.start.type === 'flow-seq-start') {
26561
26575
  for (const it of fc.items) {
@@ -26568,12 +26582,12 @@ function fixFlowSeqItems(fc) {
26568
26582
  delete it.key;
26569
26583
  if (isFlowToken(it.value)) {
26570
26584
  if (it.value.end)
26571
- Array.prototype.push.apply(it.value.end, it.sep);
26585
+ arrayPushArray(it.value.end, it.sep);
26572
26586
  else
26573
26587
  it.value.end = it.sep;
26574
26588
  }
26575
26589
  else
26576
- Array.prototype.push.apply(it.start, it.sep);
26590
+ arrayPushArray(it.start, it.sep);
26577
26591
  delete it.sep;
26578
26592
  }
26579
26593
  }
@@ -26991,7 +27005,7 @@ class Parser {
26991
27005
  const prev = map.items[map.items.length - 2];
26992
27006
  const end = prev?.value?.end;
26993
27007
  if (Array.isArray(end)) {
26994
- Array.prototype.push.apply(end, it.start);
27008
+ arrayPushArray(end, it.start);
26995
27009
  end.push(this.sourceToken);
26996
27010
  map.items.pop();
26997
27011
  return;
@@ -27206,7 +27220,7 @@ class Parser {
27206
27220
  const prev = seq.items[seq.items.length - 2];
27207
27221
  const end = prev?.value?.end;
27208
27222
  if (Array.isArray(end)) {
27209
- Array.prototype.push.apply(end, it.start);
27223
+ arrayPushArray(end, it.start);
27210
27224
  end.push(this.sourceToken);
27211
27225
  seq.items.pop();
27212
27226
  return;