@speclynx/apidom-reference 2.10.3 → 2.11.0

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
+ # [2.11.0](https://github.com/speclynx/apidom/compare/v2.10.3...v2.11.0) (2026-02-12)
7
+
8
+ **Note:** Version bump only for package @speclynx/apidom-reference
9
+
6
10
  ## [2.10.3](https://github.com/speclynx/apidom/compare/v2.10.2...v2.10.3) (2026-02-10)
7
11
 
8
12
  **Note:** Version bump only for package @speclynx/apidom-reference
@@ -49309,7 +49309,13 @@ class Element {
49309
49309
 
49310
49310
  /** Unique identifier for this element. */
49311
49311
  get id() {
49312
- return this.getMetaProperty('id', '');
49312
+ if (this.isFrozen) {
49313
+ return this.getMetaProperty('id', '');
49314
+ }
49315
+ if (!this.hasMetaProperty('id')) {
49316
+ this.setMetaProperty('id', '');
49317
+ }
49318
+ return this.meta.get('id');
49313
49319
  }
49314
49320
  set id(value) {
49315
49321
  this.setMetaProperty('id', value);
@@ -49317,7 +49323,13 @@ class Element {
49317
49323
 
49318
49324
  /** CSS-like class names. */
49319
49325
  get classes() {
49320
- return this.getMetaProperty('classes', []);
49326
+ if (this.isFrozen) {
49327
+ return this.getMetaProperty('classes', []);
49328
+ }
49329
+ if (!this.hasMetaProperty('classes')) {
49330
+ this.setMetaProperty('classes', []);
49331
+ }
49332
+ return this.meta.get('classes');
49321
49333
  }
49322
49334
  set classes(value) {
49323
49335
  this.setMetaProperty('classes', value);
@@ -49325,7 +49337,13 @@ class Element {
49325
49337
 
49326
49338
  /** Hyperlinks associated with this element. */
49327
49339
  get links() {
49328
- return this.getMetaProperty('links', []);
49340
+ if (this.isFrozen) {
49341
+ return this.getMetaProperty('links', []);
49342
+ }
49343
+ if (!this.hasMetaProperty('links')) {
49344
+ this.setMetaProperty('links', []);
49345
+ }
49346
+ return this.meta.get('links');
49329
49347
  }
49330
49348
  set links(value) {
49331
49349
  this.setMetaProperty('links', value);
@@ -49476,16 +49494,26 @@ class Element {
49476
49494
  }
49477
49495
 
49478
49496
  /**
49479
- * Gets a meta property, creating it with default value if not present.
49497
+ * Gets a meta property.
49498
+ *
49499
+ * When the property doesn't exist:
49500
+ * - With defaultValue: returns a new refracted element instance (not cached)
49501
+ * - Without defaultValue: returns undefined
49502
+ *
49503
+ * Note: Each call with a default creates a new instance. Use setMetaProperty
49504
+ * first if you need reference equality across multiple accesses.
49480
49505
  */
49506
+
49481
49507
  getMetaProperty(name, defaultValue) {
49482
- if (!this.meta.hasKey(name)) {
49483
- if (this.isFrozen) {
49484
- const element = this.refract(defaultValue);
49508
+ if (!this.hasMetaProperty(name)) {
49509
+ if (defaultValue === undefined) {
49510
+ return undefined;
49511
+ }
49512
+ const element = this.refract(defaultValue);
49513
+ if (element && this.isFrozen) {
49485
49514
  element.freeze();
49486
- return element;
49487
49515
  }
49488
- this.meta.set(name, defaultValue);
49516
+ return element;
49489
49517
  }
49490
49518
  return this.meta.get(name);
49491
49519
  }