@speclynx/apidom-core 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-core
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-core
@@ -16343,8 +16343,10 @@ class Composer {
16343
16343
  }
16344
16344
  }
16345
16345
  if (afterDoc) {
16346
- Array.prototype.push.apply(doc.errors, this.errors);
16347
- Array.prototype.push.apply(doc.warnings, this.warnings);
16346
+ for (let i = 0; i < this.errors.length; ++i)
16347
+ doc.errors.push(this.errors[i]);
16348
+ for (let i = 0; i < this.warnings.length; ++i)
16349
+ doc.warnings.push(this.warnings[i]);
16348
16350
  }
16349
16351
  else {
16350
16352
  doc.errors = this.errors;
@@ -20418,7 +20420,7 @@ class Lexer {
20418
20420
  const n = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));
20419
20421
  this.indentNext = this.indentValue + 1;
20420
20422
  this.indentValue += n;
20421
- return yield* this.parseBlockStart();
20423
+ return 'block-start';
20422
20424
  }
20423
20425
  return 'doc';
20424
20426
  }
@@ -20739,32 +20741,36 @@ class Lexer {
20739
20741
  return 0;
20740
20742
  }
20741
20743
  *pushIndicators() {
20742
- switch (this.charAt(0)) {
20743
- case '!':
20744
- return ((yield* this.pushTag()) +
20745
- (yield* this.pushSpaces(true)) +
20746
- (yield* this.pushIndicators()));
20747
- case '&':
20748
- return ((yield* this.pushUntil(isNotAnchorChar)) +
20749
- (yield* this.pushSpaces(true)) +
20750
- (yield* this.pushIndicators()));
20751
- case '-': // this is an error
20752
- case '?': // this is an error outside flow collections
20753
- case ':': {
20754
- const inFlow = this.flowLevel > 0;
20755
- const ch1 = this.charAt(1);
20756
- if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
20757
- if (!inFlow)
20758
- this.indentNext = this.indentValue + 1;
20759
- else if (this.flowKey)
20760
- this.flowKey = false;
20761
- return ((yield* this.pushCount(1)) +
20762
- (yield* this.pushSpaces(true)) +
20763
- (yield* this.pushIndicators()));
20744
+ let n = 0;
20745
+ loop: while (true) {
20746
+ switch (this.charAt(0)) {
20747
+ case '!':
20748
+ n += yield* this.pushTag();
20749
+ n += yield* this.pushSpaces(true);
20750
+ continue loop;
20751
+ case '&':
20752
+ n += yield* this.pushUntil(isNotAnchorChar);
20753
+ n += yield* this.pushSpaces(true);
20754
+ continue loop;
20755
+ case '-': // this is an error
20756
+ case '?': // this is an error outside flow collections
20757
+ case ':': {
20758
+ const inFlow = this.flowLevel > 0;
20759
+ const ch1 = this.charAt(1);
20760
+ if (isEmpty(ch1) || (inFlow && flowIndicatorChars.has(ch1))) {
20761
+ if (!inFlow)
20762
+ this.indentNext = this.indentValue + 1;
20763
+ else if (this.flowKey)
20764
+ this.flowKey = false;
20765
+ n += yield* this.pushCount(1);
20766
+ n += yield* this.pushSpaces(true);
20767
+ continue loop;
20768
+ }
20764
20769
  }
20765
20770
  }
20771
+ break loop;
20766
20772
  }
20767
- return 0;
20773
+ return n;
20768
20774
  }
20769
20775
  *pushTag() {
20770
20776
  if (this.charAt(1) === '<') {
@@ -20955,6 +20961,14 @@ function getFirstKeyStartProps(prev) {
20955
20961
  }
20956
20962
  return prev.splice(i, prev.length);
20957
20963
  }
20964
+ function arrayPushArray(target, source) {
20965
+ // May exhaust call stack with large `source` array
20966
+ if (source.length < 1e5)
20967
+ Array.prototype.push.apply(target, source);
20968
+ else
20969
+ for (let i = 0; i < source.length; ++i)
20970
+ target.push(source[i]);
20971
+ }
20958
20972
  function fixFlowSeqItems(fc) {
20959
20973
  if (fc.start.type === 'flow-seq-start') {
20960
20974
  for (const it of fc.items) {
@@ -20967,12 +20981,12 @@ function fixFlowSeqItems(fc) {
20967
20981
  delete it.key;
20968
20982
  if (isFlowToken(it.value)) {
20969
20983
  if (it.value.end)
20970
- Array.prototype.push.apply(it.value.end, it.sep);
20984
+ arrayPushArray(it.value.end, it.sep);
20971
20985
  else
20972
20986
  it.value.end = it.sep;
20973
20987
  }
20974
20988
  else
20975
- Array.prototype.push.apply(it.start, it.sep);
20989
+ arrayPushArray(it.start, it.sep);
20976
20990
  delete it.sep;
20977
20991
  }
20978
20992
  }
@@ -21390,7 +21404,7 @@ class Parser {
21390
21404
  const prev = map.items[map.items.length - 2];
21391
21405
  const end = prev?.value?.end;
21392
21406
  if (Array.isArray(end)) {
21393
- Array.prototype.push.apply(end, it.start);
21407
+ arrayPushArray(end, it.start);
21394
21408
  end.push(this.sourceToken);
21395
21409
  map.items.pop();
21396
21410
  return;
@@ -21605,7 +21619,7 @@ class Parser {
21605
21619
  const prev = seq.items[seq.items.length - 2];
21606
21620
  const end = prev?.value?.end;
21607
21621
  if (Array.isArray(end)) {
21608
- Array.prototype.push.apply(end, it.start);
21622
+ arrayPushArray(end, it.start);
21609
21623
  end.push(this.sourceToken);
21610
21624
  seq.items.pop();
21611
21625
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@speclynx/apidom-core",
3
- "version": "4.10.0",
3
+ "version": "4.10.1",
4
4
  "description": "Tools for manipulating ApiDOM structures.",
5
5
  "keywords": [
6
6
  "apidom",
@@ -57,14 +57,14 @@
57
57
  "license": "Apache-2.0",
58
58
  "dependencies": {
59
59
  "@babel/runtime-corejs3": "^7.28.4",
60
- "@speclynx/apidom-datamodel": "4.10.0",
61
- "@speclynx/apidom-error": "4.10.0",
62
- "@speclynx/apidom-traverse": "4.10.0",
60
+ "@speclynx/apidom-datamodel": "4.10.1",
61
+ "@speclynx/apidom-error": "4.10.1",
62
+ "@speclynx/apidom-traverse": "4.10.1",
63
63
  "ramda": "~0.32.0",
64
64
  "ramda-adjunct": "^6.0.0",
65
65
  "short-unique-id": "^5.3.2",
66
66
  "ts-mixer": "^6.0.4",
67
- "yaml": "^2.8.4"
67
+ "yaml": "^2.9.0"
68
68
  },
69
69
  "files": [
70
70
  "src/**/*.mjs",
@@ -76,5 +76,5 @@
76
76
  "README.md",
77
77
  "CHANGELOG.md"
78
78
  ],
79
- "gitHead": "cc5b227c468c8bd1a56611f535a71a4018beebf8"
79
+ "gitHead": "fb6a0a6f3f5da22443865a3ee73503d0a269c511"
80
80
  }