@speclynx/apidom-datamodel 4.0.2 → 4.0.3

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.
Files changed (95) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/package.json +4 -5
  3. package/src/KeyValuePair.cjs +31 -0
  4. package/src/KeyValuePair.mjs +27 -0
  5. package/src/KeyValuePair.ts +31 -0
  6. package/src/Metadata.cjs +91 -0
  7. package/src/Metadata.mjs +87 -0
  8. package/src/Metadata.ts +100 -0
  9. package/src/Namespace.cjs +212 -0
  10. package/src/Namespace.mjs +206 -0
  11. package/src/Namespace.ts +260 -0
  12. package/src/ObjectSlice.cjs +199 -0
  13. package/src/ObjectSlice.mjs +195 -0
  14. package/src/ObjectSlice.ts +228 -0
  15. package/src/clone/errors/CloneError.cjs +22 -0
  16. package/src/clone/errors/CloneError.mjs +19 -0
  17. package/src/clone/errors/CloneError.ts +26 -0
  18. package/src/clone/errors/DeepCloneError.cjs +11 -0
  19. package/src/clone/errors/DeepCloneError.mjs +6 -0
  20. package/src/clone/errors/DeepCloneError.ts +8 -0
  21. package/src/clone/errors/ShallowCloneError.cjs +11 -0
  22. package/src/clone/errors/ShallowCloneError.mjs +6 -0
  23. package/src/clone/errors/ShallowCloneError.ts +8 -0
  24. package/src/clone/index.cjs +188 -0
  25. package/src/clone/index.mjs +178 -0
  26. package/src/clone/index.ts +195 -0
  27. package/src/elements/Annotation.cjs +35 -0
  28. package/src/elements/Annotation.mjs +30 -0
  29. package/src/elements/Annotation.ts +35 -0
  30. package/src/elements/Comment.cjs +18 -0
  31. package/src/elements/Comment.mjs +13 -0
  32. package/src/elements/Comment.ts +16 -0
  33. package/src/elements/LinkElement.cjs +50 -0
  34. package/src/elements/LinkElement.mjs +45 -0
  35. package/src/elements/LinkElement.ts +49 -0
  36. package/src/elements/ParseResult.cjs +91 -0
  37. package/src/elements/ParseResult.mjs +86 -0
  38. package/src/elements/ParseResult.ts +94 -0
  39. package/src/elements/RefElement.cjs +34 -0
  40. package/src/elements/RefElement.mjs +29 -0
  41. package/src/elements/RefElement.ts +33 -0
  42. package/src/elements/SourceMap.cjs +140 -0
  43. package/src/elements/SourceMap.mjs +134 -0
  44. package/src/elements/SourceMap.ts +170 -0
  45. package/src/elements/Style.cjs +54 -0
  46. package/src/elements/Style.mjs +48 -0
  47. package/src/elements/Style.ts +56 -0
  48. package/src/index.cjs +58 -0
  49. package/src/index.mjs +11 -0
  50. package/src/index.ts +79 -0
  51. package/src/predicates/elements.cjs +46 -0
  52. package/src/predicates/elements.mjs +35 -0
  53. package/src/predicates/elements.ts +42 -0
  54. package/src/predicates/index.cjs +77 -0
  55. package/src/predicates/index.mjs +56 -0
  56. package/src/predicates/index.ts +89 -0
  57. package/src/predicates/primitives.cjs +69 -0
  58. package/src/predicates/primitives.mjs +56 -0
  59. package/src/predicates/primitives.ts +79 -0
  60. package/src/primitives/ArrayElement.cjs +155 -0
  61. package/src/primitives/ArrayElement.mjs +148 -0
  62. package/src/primitives/ArrayElement.ts +161 -0
  63. package/src/primitives/BooleanElement.cjs +20 -0
  64. package/src/primitives/BooleanElement.mjs +15 -0
  65. package/src/primitives/BooleanElement.ts +18 -0
  66. package/src/primitives/CollectionElement.cjs +180 -0
  67. package/src/primitives/CollectionElement.mjs +173 -0
  68. package/src/primitives/CollectionElement.ts +191 -0
  69. package/src/primitives/Element.cjs +510 -0
  70. package/src/primitives/Element.mjs +505 -0
  71. package/src/primitives/Element.ts +556 -0
  72. package/src/primitives/MemberElement.cjs +58 -0
  73. package/src/primitives/MemberElement.mjs +53 -0
  74. package/src/primitives/MemberElement.ts +61 -0
  75. package/src/primitives/NullElement.cjs +28 -0
  76. package/src/primitives/NullElement.mjs +23 -0
  77. package/src/primitives/NullElement.ts +26 -0
  78. package/src/primitives/NumberElement.cjs +20 -0
  79. package/src/primitives/NumberElement.mjs +15 -0
  80. package/src/primitives/NumberElement.ts +18 -0
  81. package/src/primitives/ObjectElement.cjs +220 -0
  82. package/src/primitives/ObjectElement.mjs +214 -0
  83. package/src/primitives/ObjectElement.ts +263 -0
  84. package/src/primitives/StringElement.cjs +27 -0
  85. package/src/primitives/StringElement.mjs +22 -0
  86. package/src/primitives/StringElement.ts +25 -0
  87. package/src/registration.cjs +101 -0
  88. package/src/registration.mjs +79 -0
  89. package/src/registration.ts +111 -0
  90. package/src/serialisers/JSONSerialiser.cjs +230 -0
  91. package/src/serialisers/JSONSerialiser.mjs +221 -0
  92. package/src/serialisers/JSONSerialiser.ts +295 -0
  93. package/src/types.cjs +3 -0
  94. package/src/types.mjs +1 -0
  95. package/src/types.ts +72 -0
@@ -0,0 +1,134 @@
1
+ import StringElement from "../primitives/StringElement.mjs";
2
+ /**
3
+ * Shape with optional source position properties.
4
+ * @public
5
+ */
6
+ /**
7
+ * SourceMapElement stores source position as a compact VLQ-encoded string.
8
+ *
9
+ * The encoded string contains 6 values: startLine, startCharacter, startOffset,
10
+ * endLine, endCharacter, endOffset. All values use UTF-16 code units,
11
+ * compatible with LSP, TextDocument, and JavaScript string indexing.
12
+ *
13
+ * web-tree-sitter automatically provides position data in UTF-16 code units.
14
+ *
15
+ * @public
16
+ */
17
+ class SourceMapElement extends StringElement {
18
+ constructor(content, meta, attributes) {
19
+ super(content, meta, attributes);
20
+ this.element = 'sourceMap';
21
+ }
22
+
23
+ /**
24
+ * Transfers source position properties from one object to another.
25
+ */
26
+ static transfer(from, to) {
27
+ to.startLine = from.startLine;
28
+ to.startCharacter = from.startCharacter;
29
+ to.startOffset = from.startOffset;
30
+ to.endLine = from.endLine;
31
+ to.endCharacter = from.endCharacter;
32
+ to.endOffset = from.endOffset;
33
+ }
34
+
35
+ /**
36
+ * Creates a SourceMapElement from source position properties.
37
+ * Returns undefined if any position property is not a number.
38
+ * Also assigns position properties to the instance for inspection.
39
+ */
40
+ static from(source) {
41
+ const {
42
+ startLine,
43
+ startCharacter,
44
+ startOffset,
45
+ endLine,
46
+ endCharacter,
47
+ endOffset
48
+ } = source;
49
+ if (typeof startLine !== 'number' || typeof startCharacter !== 'number' || typeof startOffset !== 'number' || typeof endLine !== 'number' || typeof endCharacter !== 'number' || typeof endOffset !== 'number') {
50
+ return undefined;
51
+ }
52
+ const packed = packSourceMap([startLine, startCharacter, startOffset, endLine, endCharacter, endOffset]);
53
+ const sourceMap = new SourceMapElement(packed);
54
+ sourceMap.startLine = startLine;
55
+ sourceMap.startCharacter = startCharacter;
56
+ sourceMap.startOffset = startOffset;
57
+ sourceMap.endLine = endLine;
58
+ sourceMap.endCharacter = endCharacter;
59
+ sourceMap.endOffset = endOffset;
60
+ return sourceMap;
61
+ }
62
+
63
+ /**
64
+ * Decodes the VLQ string and applies source position properties to the target.
65
+ */
66
+ applyTo(target) {
67
+ if (!this.content) return;
68
+ [target.startLine, target.startCharacter, target.startOffset, target.endLine, target.endCharacter, target.endOffset] = unpackSourceMap(this.content);
69
+ }
70
+ }
71
+ const BASE64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
72
+
73
+ // Encode one unsigned integer to Base64-VLQ
74
+ function vlqEncodeInt(value) {
75
+ let vlq = value >>> 0; // ensure unsigned 32-bit
76
+ let out = '';
77
+ do {
78
+ let digit = vlq & 31; // 5 bits
79
+ vlq >>>= 5;
80
+ if (vlq !== 0) digit |= 32; // continuation bit
81
+ out += BASE64[digit];
82
+ } while (vlq !== 0);
83
+ return out;
84
+ }
85
+
86
+ // Decode one unsigned integer from Base64-VLQ, starting at `index`
87
+ function vlqDecodeInt(str, index = 0) {
88
+ let result = 0;
89
+ let shift = 0;
90
+ let i = index;
91
+ while (true) {
92
+ const ch = str[i++];
93
+ const digit = BASE64.indexOf(ch);
94
+ if (digit === -1) throw new Error(`Invalid Base64 VLQ char: ${ch}`);
95
+ const cont = (digit & 32) !== 0;
96
+ result |= (digit & 31) << shift;
97
+ shift += 5;
98
+ if (!cont) break;
99
+ }
100
+ return {
101
+ value: result >>> 0,
102
+ next: i
103
+ };
104
+ }
105
+
106
+ /**
107
+ * Span of 6 position values: [startLine, startCharacter, startOffset, endLine, endCharacter, endOffset]
108
+ * @public
109
+ */
110
+
111
+ /**
112
+ * Encodes 6 position values into a compact VLQ string.
113
+ * @public
114
+ */
115
+ function packSourceMap(v) {
116
+ return 'sm1:' + v.map(vlqEncodeInt).join('');
117
+ }
118
+
119
+ /**
120
+ * Decodes a VLQ string into 6 position values.
121
+ * @public
122
+ */
123
+ function unpackSourceMap(packed) {
124
+ const s = packed.startsWith('sm1:') ? packed.slice(4) : packed;
125
+ const out = [];
126
+ let i = 0;
127
+ for (let k = 0; k < 6; k++) {
128
+ const r = vlqDecodeInt(s, i);
129
+ out.push(r.value);
130
+ i = r.next;
131
+ }
132
+ return out;
133
+ }
134
+ export default SourceMapElement;
@@ -0,0 +1,170 @@
1
+ import StringElement from '../primitives/StringElement.ts';
2
+ import type { Meta, Attributes } from '../types.ts';
3
+
4
+ /**
5
+ * Shape with optional source position properties.
6
+ * @public
7
+ */
8
+ interface SourceMapShape {
9
+ startLine?: number;
10
+ startCharacter?: number;
11
+ startOffset?: number;
12
+ endLine?: number;
13
+ endCharacter?: number;
14
+ endOffset?: number;
15
+ }
16
+
17
+ /**
18
+ * SourceMapElement stores source position as a compact VLQ-encoded string.
19
+ *
20
+ * The encoded string contains 6 values: startLine, startCharacter, startOffset,
21
+ * endLine, endCharacter, endOffset. All values use UTF-16 code units,
22
+ * compatible with LSP, TextDocument, and JavaScript string indexing.
23
+ *
24
+ * web-tree-sitter automatically provides position data in UTF-16 code units.
25
+ *
26
+ * @public
27
+ */
28
+ class SourceMapElement extends StringElement {
29
+ constructor(content?: string, meta?: Meta, attributes?: Attributes) {
30
+ super(content, meta, attributes);
31
+ this.element = 'sourceMap';
32
+ }
33
+
34
+ /**
35
+ * Transfers source position properties from one object to another.
36
+ */
37
+ static transfer(from: SourceMapShape, to: SourceMapShape): void {
38
+ to.startLine = from.startLine;
39
+ to.startCharacter = from.startCharacter;
40
+ to.startOffset = from.startOffset;
41
+ to.endLine = from.endLine;
42
+ to.endCharacter = from.endCharacter;
43
+ to.endOffset = from.endOffset;
44
+ }
45
+
46
+ /**
47
+ * Creates a SourceMapElement from source position properties.
48
+ * Returns undefined if any position property is not a number.
49
+ * Also assigns position properties to the instance for inspection.
50
+ */
51
+ static from(source: SourceMapShape): SourceMapElement | undefined {
52
+ const { startLine, startCharacter, startOffset, endLine, endCharacter, endOffset } = source;
53
+
54
+ if (
55
+ typeof startLine !== 'number' ||
56
+ typeof startCharacter !== 'number' ||
57
+ typeof startOffset !== 'number' ||
58
+ typeof endLine !== 'number' ||
59
+ typeof endCharacter !== 'number' ||
60
+ typeof endOffset !== 'number'
61
+ ) {
62
+ return undefined;
63
+ }
64
+
65
+ const packed = packSourceMap([
66
+ startLine,
67
+ startCharacter,
68
+ startOffset,
69
+ endLine,
70
+ endCharacter,
71
+ endOffset,
72
+ ]);
73
+
74
+ const sourceMap = new SourceMapElement(packed);
75
+ sourceMap.startLine = startLine;
76
+ sourceMap.startCharacter = startCharacter;
77
+ sourceMap.startOffset = startOffset;
78
+ sourceMap.endLine = endLine;
79
+ sourceMap.endCharacter = endCharacter;
80
+ sourceMap.endOffset = endOffset;
81
+
82
+ return sourceMap;
83
+ }
84
+
85
+ /**
86
+ * Decodes the VLQ string and applies source position properties to the target.
87
+ */
88
+ public applyTo(target: SourceMapShape): void {
89
+ if (!this.content) return;
90
+ [
91
+ target.startLine,
92
+ target.startCharacter,
93
+ target.startOffset,
94
+ target.endLine,
95
+ target.endCharacter,
96
+ target.endOffset,
97
+ ] = unpackSourceMap(this.content as string);
98
+ }
99
+ }
100
+
101
+ const BASE64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
102
+
103
+ // Encode one unsigned integer to Base64-VLQ
104
+ function vlqEncodeInt(value: number): string {
105
+ let vlq = value >>> 0; // ensure unsigned 32-bit
106
+ let out = '';
107
+
108
+ do {
109
+ let digit = vlq & 31; // 5 bits
110
+ vlq >>>= 5;
111
+ if (vlq !== 0) digit |= 32; // continuation bit
112
+ out += BASE64[digit];
113
+ } while (vlq !== 0);
114
+
115
+ return out;
116
+ }
117
+
118
+ // Decode one unsigned integer from Base64-VLQ, starting at `index`
119
+ function vlqDecodeInt(str: string, index = 0): { value: number; next: number } {
120
+ let result = 0;
121
+ let shift = 0;
122
+ let i = index;
123
+
124
+ while (true) {
125
+ const ch = str[i++];
126
+ const digit = BASE64.indexOf(ch);
127
+ if (digit === -1) throw new Error(`Invalid Base64 VLQ char: ${ch}`);
128
+
129
+ const cont = (digit & 32) !== 0;
130
+ result |= (digit & 31) << shift;
131
+ shift += 5;
132
+
133
+ if (!cont) break;
134
+ }
135
+
136
+ return { value: result >>> 0, next: i };
137
+ }
138
+
139
+ /**
140
+ * Span of 6 position values: [startLine, startCharacter, startOffset, endLine, endCharacter, endOffset]
141
+ * @public
142
+ */
143
+ type Span6 = [number, number, number, number, number, number];
144
+
145
+ /**
146
+ * Encodes 6 position values into a compact VLQ string.
147
+ * @public
148
+ */
149
+ function packSourceMap(v: Span6): string {
150
+ return 'sm1:' + v.map(vlqEncodeInt).join('');
151
+ }
152
+
153
+ /**
154
+ * Decodes a VLQ string into 6 position values.
155
+ * @public
156
+ */
157
+ function unpackSourceMap(packed: string): Span6 {
158
+ const s = packed.startsWith('sm1:') ? packed.slice(4) : packed;
159
+ const out: number[] = [];
160
+ let i = 0;
161
+ for (let k = 0; k < 6; k++) {
162
+ const r = vlqDecodeInt(s, i);
163
+ out.push(r.value);
164
+ i = r.next;
165
+ }
166
+ return out as Span6;
167
+ }
168
+
169
+ export default SourceMapElement;
170
+ export type { Span6, SourceMapShape };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.default = void 0;
6
+ var _ObjectElement = _interopRequireDefault(require("../primitives/ObjectElement.cjs"));
7
+ /**
8
+ * Shape with optional style property.
9
+ * @public
10
+ */
11
+
12
+ /**
13
+ * StyleElement stores format-specific style information for round-trip preservation.
14
+ *
15
+ * The style data is stored as a plain object with format-specific namespaces
16
+ * (e.g., `yaml`, `json`). This element exists only during serialization/deserialization
17
+ * (refract format) - in memory, style lives directly on `element.style`.
18
+ *
19
+ * Follows the same pattern as SourceMapElement with __mappings__.
20
+ *
21
+ * @public
22
+ */
23
+ class StyleElement extends _ObjectElement.default {
24
+ constructor(content, meta, attributes) {
25
+ super(content, meta, attributes);
26
+ this.element = '__styles__';
27
+ }
28
+
29
+ /**
30
+ * Transfers style property from one element to another.
31
+ */
32
+ static transfer(from, to) {
33
+ to.style = from.style;
34
+ }
35
+
36
+ /**
37
+ * Creates a StyleElement from an element's style property.
38
+ * Returns undefined if the element has no style.
39
+ */
40
+ static from(source) {
41
+ if (!source.style) {
42
+ return undefined;
43
+ }
44
+ return new StyleElement(source.style);
45
+ }
46
+
47
+ /**
48
+ * Restores the style property on the target element from this StyleElement.
49
+ */
50
+ applyTo(target) {
51
+ target.style = this.toValue();
52
+ }
53
+ }
54
+ var _default = exports.default = StyleElement;
@@ -0,0 +1,48 @@
1
+ import ObjectElement from "../primitives/ObjectElement.mjs";
2
+ /**
3
+ * Shape with optional style property.
4
+ * @public
5
+ */
6
+ /**
7
+ * StyleElement stores format-specific style information for round-trip preservation.
8
+ *
9
+ * The style data is stored as a plain object with format-specific namespaces
10
+ * (e.g., `yaml`, `json`). This element exists only during serialization/deserialization
11
+ * (refract format) - in memory, style lives directly on `element.style`.
12
+ *
13
+ * Follows the same pattern as SourceMapElement with __mappings__.
14
+ *
15
+ * @public
16
+ */
17
+ class StyleElement extends ObjectElement {
18
+ constructor(content, meta, attributes) {
19
+ super(content, meta, attributes);
20
+ this.element = '__styles__';
21
+ }
22
+
23
+ /**
24
+ * Transfers style property from one element to another.
25
+ */
26
+ static transfer(from, to) {
27
+ to.style = from.style;
28
+ }
29
+
30
+ /**
31
+ * Creates a StyleElement from an element's style property.
32
+ * Returns undefined if the element has no style.
33
+ */
34
+ static from(source) {
35
+ if (!source.style) {
36
+ return undefined;
37
+ }
38
+ return new StyleElement(source.style);
39
+ }
40
+
41
+ /**
42
+ * Restores the style property on the target element from this StyleElement.
43
+ */
44
+ applyTo(target) {
45
+ target.style = this.toValue();
46
+ }
47
+ }
48
+ export default StyleElement;
@@ -0,0 +1,56 @@
1
+ import ObjectElement from '../primitives/ObjectElement.ts';
2
+ import type { Meta, Attributes } from '../types.ts';
3
+
4
+ /**
5
+ * Shape with optional style property.
6
+ * @public
7
+ */
8
+ interface StyleShape {
9
+ style?: Record<string, unknown>;
10
+ }
11
+
12
+ /**
13
+ * StyleElement stores format-specific style information for round-trip preservation.
14
+ *
15
+ * The style data is stored as a plain object with format-specific namespaces
16
+ * (e.g., `yaml`, `json`). This element exists only during serialization/deserialization
17
+ * (refract format) - in memory, style lives directly on `element.style`.
18
+ *
19
+ * Follows the same pattern as SourceMapElement with __mappings__.
20
+ *
21
+ * @public
22
+ */
23
+ class StyleElement extends ObjectElement {
24
+ constructor(content?: Record<string, unknown>, meta?: Meta, attributes?: Attributes) {
25
+ super(content, meta, attributes);
26
+ this.element = '__styles__';
27
+ }
28
+
29
+ /**
30
+ * Transfers style property from one element to another.
31
+ */
32
+ static transfer(from: StyleShape, to: StyleShape): void {
33
+ to.style = from.style;
34
+ }
35
+
36
+ /**
37
+ * Creates a StyleElement from an element's style property.
38
+ * Returns undefined if the element has no style.
39
+ */
40
+ static from(source: StyleShape): StyleElement | undefined {
41
+ if (!source.style) {
42
+ return undefined;
43
+ }
44
+ return new StyleElement(source.style);
45
+ }
46
+
47
+ /**
48
+ * Restores the style property on the target element from this StyleElement.
49
+ */
50
+ public applyTo(target: StyleShape): void {
51
+ target.style = this.toValue() as Record<string, unknown>;
52
+ }
53
+ }
54
+
55
+ export default StyleElement;
56
+ export type { StyleShape };
package/src/index.cjs ADDED
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.refract = exports.isStringElement = exports.isSourceMapElement = exports.isRefElement = exports.isPrimitiveElement = exports.isParseResultElement = exports.isObjectElement = exports.isNumberElement = exports.isNullElement = exports.isMemberElement = exports.isLinkElement = exports.isElement = exports.isCommentElement = exports.isBooleanElement = exports.isArrayElement = exports.isAnnotationElement = exports.includesSymbols = exports.includesClasses = exports.hasElementStyle = exports.hasElementSourceMap = exports.cloneShallow = exports.cloneDeep = exports.StyleElement = exports.StringElement = exports.SourceMapElement = exports.ShallowCloneError = exports.RefElement = exports.ParseResultElement = exports.ObjectSlice = exports.ObjectElement = exports.NumberElement = exports.NullElement = exports.Namespace = exports.Metadata = exports.MemberElement = exports.LinkElement = exports.KeyValuePair = exports.JSONSerialiser = exports.Element = exports.DeepCloneError = exports.CommentElement = exports.CollectionElement = exports.CloneError = exports.BooleanElement = exports.ArrayElement = exports.AnnotationElement = void 0;
6
+ var _Namespace = _interopRequireDefault(require("./Namespace.cjs"));
7
+ exports.Namespace = _Namespace.default;
8
+ var _KeyValuePair = _interopRequireDefault(require("./KeyValuePair.cjs"));
9
+ exports.KeyValuePair = _KeyValuePair.default;
10
+ var _Metadata = _interopRequireDefault(require("./Metadata.cjs"));
11
+ exports.Metadata = _Metadata.default;
12
+ var _index = require("./clone/index.cjs");
13
+ exports.cloneShallow = _index.cloneShallow;
14
+ exports.cloneDeep = _index.cloneDeep;
15
+ exports.CloneError = _index.CloneError;
16
+ exports.DeepCloneError = _index.DeepCloneError;
17
+ exports.ShallowCloneError = _index.ShallowCloneError;
18
+ var _registration = require("./registration.cjs");
19
+ exports.ObjectSlice = _registration.ObjectSlice;
20
+ exports.Element = _registration.Element;
21
+ exports.CollectionElement = _registration.CollectionElement;
22
+ exports.StringElement = _registration.StringElement;
23
+ exports.NumberElement = _registration.NumberElement;
24
+ exports.BooleanElement = _registration.BooleanElement;
25
+ exports.NullElement = _registration.NullElement;
26
+ exports.ArrayElement = _registration.ArrayElement;
27
+ exports.ObjectElement = _registration.ObjectElement;
28
+ exports.MemberElement = _registration.MemberElement;
29
+ exports.RefElement = _registration.RefElement;
30
+ exports.LinkElement = _registration.LinkElement;
31
+ exports.AnnotationElement = _registration.AnnotationElement;
32
+ exports.CommentElement = _registration.CommentElement;
33
+ exports.ParseResultElement = _registration.ParseResultElement;
34
+ exports.SourceMapElement = _registration.SourceMapElement;
35
+ exports.StyleElement = _registration.StyleElement;
36
+ exports.refract = _registration.refract;
37
+ var _JSONSerialiser = _interopRequireDefault(require("./serialisers/JSONSerialiser.cjs"));
38
+ exports.JSONSerialiser = _JSONSerialiser.default;
39
+ var _index2 = require("./predicates/index.cjs");
40
+ exports.isElement = _index2.isElement;
41
+ exports.isStringElement = _index2.isStringElement;
42
+ exports.isNumberElement = _index2.isNumberElement;
43
+ exports.isNullElement = _index2.isNullElement;
44
+ exports.isBooleanElement = _index2.isBooleanElement;
45
+ exports.isObjectElement = _index2.isObjectElement;
46
+ exports.isArrayElement = _index2.isArrayElement;
47
+ exports.isMemberElement = _index2.isMemberElement;
48
+ exports.isLinkElement = _index2.isLinkElement;
49
+ exports.isRefElement = _index2.isRefElement;
50
+ exports.isAnnotationElement = _index2.isAnnotationElement;
51
+ exports.isCommentElement = _index2.isCommentElement;
52
+ exports.isParseResultElement = _index2.isParseResultElement;
53
+ exports.isSourceMapElement = _index2.isSourceMapElement;
54
+ exports.isPrimitiveElement = _index2.isPrimitiveElement;
55
+ exports.hasElementStyle = _index2.hasElementStyle;
56
+ exports.hasElementSourceMap = _index2.hasElementSourceMap;
57
+ exports.includesSymbols = _index2.includesSymbols;
58
+ exports.includesClasses = _index2.includesClasses;
package/src/index.mjs ADDED
@@ -0,0 +1,11 @@
1
+ export { default as Namespace } from "./Namespace.mjs";
2
+ export { default as KeyValuePair } from "./KeyValuePair.mjs";
3
+ export { default as Metadata } from "./Metadata.mjs"; // Clone utilities
4
+ export { cloneShallow, cloneDeep, CloneError, DeepCloneError, ShallowCloneError } from "./clone/index.mjs";
5
+ // Re-export elements directly to preserve JSDoc
6
+ export { ObjectSlice, Element, CollectionElement, StringElement, NumberElement, BooleanElement, NullElement, ArrayElement, ObjectElement, MemberElement, RefElement, LinkElement, AnnotationElement, CommentElement, ParseResultElement, SourceMapElement, StyleElement, refract } from "./registration.mjs";
7
+ export { default as JSONSerialiser } from "./serialisers/JSONSerialiser.mjs"; // Re-export types - essential public API
8
+ // Re-export types - for advanced users extending the library
9
+ // Re-export types - used in public method signatures
10
+ // Re-export predicates
11
+ export { isElement, isStringElement, isNumberElement, isNullElement, isBooleanElement, isObjectElement, isArrayElement, isMemberElement, isLinkElement, isRefElement, isAnnotationElement, isCommentElement, isParseResultElement, isSourceMapElement, isPrimitiveElement, hasElementStyle, hasElementSourceMap, includesSymbols, includesClasses } from "./predicates/index.mjs";
package/src/index.ts ADDED
@@ -0,0 +1,79 @@
1
+ export { default as Namespace } from './Namespace.ts';
2
+ export { default as KeyValuePair } from './KeyValuePair.ts';
3
+ export { default as Metadata } from './Metadata.ts';
4
+
5
+ // Clone utilities
6
+ export {
7
+ cloneShallow,
8
+ cloneDeep,
9
+ CloneError,
10
+ DeepCloneError,
11
+ ShallowCloneError,
12
+ } from './clone/index.ts';
13
+ export type { FinalCloneTypes, DeepCloneOptions, CloneErrorOptions } from './clone/index.ts';
14
+
15
+ // Re-export elements directly to preserve JSDoc
16
+ export {
17
+ ObjectSlice,
18
+ Element,
19
+ CollectionElement,
20
+ StringElement,
21
+ NumberElement,
22
+ BooleanElement,
23
+ NullElement,
24
+ ArrayElement,
25
+ ObjectElement,
26
+ MemberElement,
27
+ RefElement,
28
+ LinkElement,
29
+ AnnotationElement,
30
+ CommentElement,
31
+ ParseResultElement,
32
+ SourceMapElement,
33
+ StyleElement,
34
+ refract,
35
+ } from './registration.ts';
36
+
37
+ export { default as JSONSerialiser } from './serialisers/JSONSerialiser.ts';
38
+
39
+ // Re-export types - essential public API
40
+ export type { Meta, Attributes, ElementContent } from './primitives/Element.ts';
41
+ export type { PrimitiveValue } from './types.ts';
42
+
43
+ // Re-export types - for advanced users extending the library
44
+ export type { ElementClass, NamespaceOptions, NamespacePlugin } from './Namespace.ts';
45
+ export type { SerializedElement, RefractDocument } from './serialisers/JSONSerialiser.ts';
46
+
47
+ // Re-export types - used in public method signatures
48
+ export type { DetectionTest, DetectionEntry, ElementsMap } from './Namespace.ts';
49
+ export type { ObjectSliceCallback, ObjectSliceForEachCallback } from './ObjectSlice.ts';
50
+ export type { FindCondition, FindOptions } from './primitives/CollectionElement.ts';
51
+ export type { ToValue, Equatable, Freezable } from './types.ts';
52
+ export type { ObjectElementCallback } from './primitives/ObjectElement.ts';
53
+ export type { SerializedContent, SerializedKeyValuePair } from './serialisers/JSONSerialiser.ts';
54
+ export type { Span6, SourceMapShape } from './elements/SourceMap.ts';
55
+ export type { StyleShape } from './elements/Style.ts';
56
+
57
+ // Re-export predicates
58
+ export {
59
+ isElement,
60
+ isStringElement,
61
+ isNumberElement,
62
+ isNullElement,
63
+ isBooleanElement,
64
+ isObjectElement,
65
+ isArrayElement,
66
+ isMemberElement,
67
+ isLinkElement,
68
+ isRefElement,
69
+ isAnnotationElement,
70
+ isCommentElement,
71
+ isParseResultElement,
72
+ isSourceMapElement,
73
+ isPrimitiveElement,
74
+ hasElementStyle,
75
+ hasElementSourceMap,
76
+ includesSymbols,
77
+ includesClasses,
78
+ } from './predicates/index.ts';
79
+ export type { PrimitiveElement } from './predicates/index.ts';
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4
+ exports.__esModule = true;
5
+ exports.isSourceMapElement = exports.isRefElement = exports.isParseResultElement = exports.isLinkElement = exports.isCommentElement = exports.isAnnotationElement = void 0;
6
+ var _LinkElement = _interopRequireDefault(require("../elements/LinkElement.cjs"));
7
+ var _RefElement = _interopRequireDefault(require("../elements/RefElement.cjs"));
8
+ var _Annotation = _interopRequireDefault(require("../elements/Annotation.cjs"));
9
+ var _Comment = _interopRequireDefault(require("../elements/Comment.cjs"));
10
+ var _ParseResult = _interopRequireDefault(require("../elements/ParseResult.cjs"));
11
+ var _SourceMap = _interopRequireDefault(require("../elements/SourceMap.cjs"));
12
+ /**
13
+ * @public
14
+ */
15
+ const isLinkElement = element => element instanceof _LinkElement.default;
16
+
17
+ /**
18
+ * @public
19
+ */
20
+ exports.isLinkElement = isLinkElement;
21
+ const isRefElement = element => element instanceof _RefElement.default;
22
+
23
+ /**
24
+ * @public
25
+ */
26
+ exports.isRefElement = isRefElement;
27
+ const isAnnotationElement = element => element instanceof _Annotation.default;
28
+
29
+ /**
30
+ * @public
31
+ */
32
+ exports.isAnnotationElement = isAnnotationElement;
33
+ const isCommentElement = element => element instanceof _Comment.default;
34
+
35
+ /**
36
+ * @public
37
+ */
38
+ exports.isCommentElement = isCommentElement;
39
+ const isParseResultElement = element => element instanceof _ParseResult.default;
40
+
41
+ /**
42
+ * @public
43
+ */
44
+ exports.isParseResultElement = isParseResultElement;
45
+ const isSourceMapElement = element => element instanceof _SourceMap.default;
46
+ exports.isSourceMapElement = isSourceMapElement;