@speclynx/apidom-core 1.12.2 → 2.1.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.
Files changed (92) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/NOTICE +16 -7
  3. package/README.md +102 -330
  4. package/dist/apidom-core.browser.js +13110 -10559
  5. package/dist/apidom-core.browser.min.js +1 -1
  6. package/package.json +7 -12
  7. package/src/identity/index.cjs +8 -6
  8. package/src/identity/index.mjs +6 -4
  9. package/src/index.cjs +13 -79
  10. package/src/index.mjs +3 -13
  11. package/src/merge/deepmerge.cjs +22 -20
  12. package/src/merge/deepmerge.mjs +9 -7
  13. package/src/merge/merge-right.cjs +2 -2
  14. package/src/merge/merge-right.mjs +1 -1
  15. package/src/namespace.cjs +4 -36
  16. package/src/namespace.mjs +2 -30
  17. package/src/refractor/plugins/dispatcher/index.cjs +5 -12
  18. package/src/refractor/plugins/dispatcher/index.mjs +5 -12
  19. package/src/refractor/plugins/element-identity.cjs +2 -2
  20. package/src/refractor/plugins/element-identity.mjs +2 -2
  21. package/src/refractor/plugins/semantic-element-identity.cjs +5 -10
  22. package/src/refractor/plugins/semantic-element-identity.mjs +5 -9
  23. package/src/refractor/toolbox.cjs +22 -5
  24. package/src/refractor/toolbox.mjs +25 -6
  25. package/src/specification.cjs +51 -0
  26. package/src/specification.mjs +47 -0
  27. package/src/transcluder/Transcluder.cjs +8 -8
  28. package/src/transcluder/Transcluder.mjs +1 -1
  29. package/src/transformers/from.mjs +2 -2
  30. package/src/transformers/serializers/json.cjs +2 -2
  31. package/src/transformers/serializers/json.mjs +1 -1
  32. package/src/transformers/serializers/value.cjs +50 -0
  33. package/src/transformers/serializers/value.mjs +47 -0
  34. package/src/transformers/serializers/yaml-1-2.cjs +22 -18
  35. package/src/transformers/serializers/yaml-1-2.mjs +22 -18
  36. package/src/transformers/sexprs.cjs +20 -23
  37. package/src/transformers/sexprs.mjs +20 -22
  38. package/src/transformers/to-string.mjs +2 -2
  39. package/types/apidom-core.d.ts +67 -519
  40. package/src/clone/errors/CloneError.cjs +0 -22
  41. package/src/clone/errors/CloneError.mjs +0 -19
  42. package/src/clone/errors/DeepCloneError.cjs +0 -11
  43. package/src/clone/errors/DeepCloneError.mjs +0 -6
  44. package/src/clone/errors/ShallowCloneError.cjs +0 -11
  45. package/src/clone/errors/ShallowCloneError.mjs +0 -6
  46. package/src/clone/index.cjs +0 -155
  47. package/src/clone/index.mjs +0 -146
  48. package/src/elements/Annotation.cjs +0 -23
  49. package/src/elements/Annotation.mjs +0 -20
  50. package/src/elements/Comment.cjs +0 -15
  51. package/src/elements/Comment.mjs +0 -12
  52. package/src/elements/ParseResult.cjs +0 -53
  53. package/src/elements/ParseResult.mjs +0 -50
  54. package/src/elements/SourceMap.cjs +0 -39
  55. package/src/elements/SourceMap.mjs +0 -36
  56. package/src/predicates/helpers.cjs +0 -85
  57. package/src/predicates/helpers.mjs +0 -77
  58. package/src/predicates/index.cjs +0 -208
  59. package/src/predicates/index.mjs +0 -198
  60. package/src/refractor/index.cjs +0 -46
  61. package/src/refractor/index.mjs +0 -40
  62. package/src/refractor/registration.cjs +0 -34
  63. package/src/refractor/registration.mjs +0 -19
  64. package/src/transformers/serializers/value/ast/ephemeral-array.cjs +0 -21
  65. package/src/transformers/serializers/value/ast/ephemeral-array.mjs +0 -17
  66. package/src/transformers/serializers/value/ast/ephemeral-object.cjs +0 -20
  67. package/src/transformers/serializers/value/ast/ephemeral-object.mjs +0 -16
  68. package/src/transformers/serializers/value/index.cjs +0 -85
  69. package/src/transformers/serializers/value/index.mjs +0 -80
  70. package/src/transformers/serializers/value/visitor.cjs +0 -52
  71. package/src/transformers/serializers/value/visitor.mjs +0 -47
  72. package/src/traversal/filter.cjs +0 -18
  73. package/src/traversal/filter.mjs +0 -14
  74. package/src/traversal/find.cjs +0 -19
  75. package/src/traversal/find.mjs +0 -15
  76. package/src/traversal/findAtOffset.cjs +0 -65
  77. package/src/traversal/findAtOffset.mjs +0 -60
  78. package/src/traversal/index.cjs +0 -19
  79. package/src/traversal/index.mjs +0 -7
  80. package/src/traversal/parents.cjs +0 -38
  81. package/src/traversal/parents.mjs +0 -34
  82. package/src/traversal/reject.cjs +0 -15
  83. package/src/traversal/reject.mjs +0 -10
  84. package/src/traversal/some.cjs +0 -15
  85. package/src/traversal/some.mjs +0 -10
  86. package/src/traversal/traverse.cjs +0 -60
  87. package/src/traversal/traverse.mjs +0 -53
  88. package/src/traversal/visitor.cjs +0 -123
  89. package/src/traversal/visitor.mjs +0 -115
  90. package/src/util.cjs +0 -28
  91. package/src/util.mjs +0 -24
  92. package/types/minim.d.ts +0 -236
@@ -1,155 +1,41 @@
1
- /// <reference path="./minim.d.ts" />
2
- import * as minim from "minim";
3
1
  import type { ApiDOMErrorOptions } from '@speclynx/apidom-error';
4
2
  import { ApiDOMStructuredError } from '@speclynx/apidom-error';
5
- import { ArrayElement } from 'minim';
6
- import { ArraySlice } from 'minim';
7
- import { Attributes } from 'minim';
8
- import { BooleanElement } from 'minim';
9
- import { BREAK } from '@speclynx/apidom-ast';
10
- import { Element as Element_2 } from 'minim';
11
- import { KeyValuePair } from 'minim';
12
- import { LinkElement } from 'minim';
13
- import { MemberElement } from 'minim';
14
- import { mergeAllVisitors } from '@speclynx/apidom-ast';
15
- import { Meta } from 'minim';
16
- import { Namespace as Namespace_2 } from 'minim';
17
- import { NamespacePlugin } from 'minim';
18
- import { NamespacePluginOptions } from 'minim';
19
- import { NullElement } from 'minim';
20
- import { NumberElement } from 'minim';
21
- import { ObjectElement } from 'minim';
22
- import { ObjectSlice } from 'minim';
23
- import { RefElement } from 'minim';
24
- import { refract } from 'minim';
3
+ import { ArrayElement } from '@speclynx/apidom-datamodel';
4
+ import { Element as Element_2 } from '@speclynx/apidom-datamodel';
5
+ import { hasElementSourceMap } from '@speclynx/apidom-datamodel';
6
+ import { includesClasses } from '@speclynx/apidom-datamodel';
7
+ import { includesSymbols } from '@speclynx/apidom-datamodel';
8
+ import { isAnnotationElement } from '@speclynx/apidom-datamodel';
9
+ import { isArrayElement } from '@speclynx/apidom-datamodel';
10
+ import { isBooleanElement } from '@speclynx/apidom-datamodel';
11
+ import { isCommentElement } from '@speclynx/apidom-datamodel';
12
+ import { isElement } from '@speclynx/apidom-datamodel';
13
+ import { isLinkElement } from '@speclynx/apidom-datamodel';
14
+ import { isMemberElement } from '@speclynx/apidom-datamodel';
15
+ import { isNullElement } from '@speclynx/apidom-datamodel';
16
+ import { isNumberElement } from '@speclynx/apidom-datamodel';
17
+ import { isObjectElement } from '@speclynx/apidom-datamodel';
18
+ import { isParseResultElement } from '@speclynx/apidom-datamodel';
19
+ import { isPrimitiveElement } from '@speclynx/apidom-datamodel';
20
+ import { isRefElement } from '@speclynx/apidom-datamodel';
21
+ import { isSourceMapElement } from '@speclynx/apidom-datamodel';
22
+ import { isStringElement } from '@speclynx/apidom-datamodel';
23
+ import { Namespace } from '@speclynx/apidom-datamodel';
24
+ import { ObjectElement } from '@speclynx/apidom-datamodel';
25
+ import { Path } from '@speclynx/apidom-traverse';
25
26
  import ShortUniqueId from 'short-unique-id';
26
- import { StringElement } from 'minim';
27
-
28
- /**
29
- * @public
30
- */
31
- export declare class AnnotationElement extends StringElement {
32
- constructor(content?: string, meta?: Meta, attributes?: Attributes);
33
- get code(): any;
34
- set code(value: any);
35
- }
27
+ import { StringElement } from '@speclynx/apidom-datamodel';
36
28
 
37
29
  /**
38
30
  * @public
39
31
  */
40
32
  export declare type AnyElement = ObjectElement | ArrayElement | Element_2;
41
33
 
42
- export { ArrayElement }
43
-
44
- export { ArraySlice }
45
-
46
- export { Attributes }
47
-
48
- declare namespace basePredicates {
49
- export {
50
- isElement,
51
- isStringElement,
52
- isNumberElement,
53
- isNullElement,
54
- isBooleanElement,
55
- isObjectElement,
56
- isArrayElement,
57
- isMemberElement,
58
- isLinkElement,
59
- isRefElement,
60
- isAnnotationElement,
61
- isCommentElement,
62
- isParseResultElement,
63
- isSourceMapElement,
64
- PrimitiveElement,
65
- isPrimitiveElement,
66
- hasElementSourceMap,
67
- includesSymbols,
68
- includesClasses
69
- }
70
- }
71
- export { basePredicates }
72
-
73
- export { BooleanElement }
74
-
75
- export { BREAK }
76
-
77
- /**
78
- * @public
79
- */
80
- export declare type Callback = <T extends Element_2>(element: T) => void;
81
-
82
- /**
83
- * @public
84
- */
85
- export declare const cloneDeep: {
86
- <T extends Element_2 | FinalCloneTypes>(value: T, options?: DeepCloneOptions<T>): T;
87
- safe<T>(value: T): T;
88
- };
89
-
90
- /**
91
- * @public
92
- */
93
- export declare class CloneError extends ApiDOMStructuredError {
94
- readonly value: unknown;
95
- constructor(message?: string, structuredOptions?: CloneErrorOptions);
96
- }
97
-
98
- /**
99
- * @public
100
- */
101
- export declare interface CloneErrorOptions extends ApiDOMErrorOptions {
102
- readonly value: unknown;
103
- }
104
-
105
- /**
106
- * @public
107
- */
108
- export declare const cloneNode: <T>(node: T) => T;
109
-
110
- /**
111
- * @public
112
- */
113
- export declare const cloneShallow: {
114
- <T extends Element_2 | FinalCloneTypes>(value: T): T;
115
- safe<T>(value: T): T;
116
- };
117
-
118
- /**
119
- * @public
120
- */
121
- export declare class CommentElement extends StringElement {
122
- constructor(content?: string, meta?: Meta, attributes?: Attributes);
123
- }
124
-
125
- /**
126
- * @public
127
- */
128
- export declare const createNamespace: (namespacePlugin?: NamespacePlugin) => Namespace;
129
-
130
- /**
131
- * @public
132
- */
133
- export declare const createPredicate: <T extends Element_2>(predicateCreator: PredicateCreator<T>) => ElementPredicate<T>;
134
-
135
34
  /**
136
35
  * @public
137
36
  */
138
37
  export declare const createToolbox: () => Toolbox;
139
38
 
140
- /**
141
- * @public
142
- */
143
- export declare class DeepCloneError extends CloneError {
144
- }
145
-
146
- /**
147
- * @public
148
- */
149
- export declare type DeepCloneOptions<T extends Element_2 | FinalCloneTypes> = {
150
- visited?: WeakMap<T, T>;
151
- };
152
-
153
39
  /**
154
40
  * @public
155
41
  */
@@ -224,14 +110,7 @@ export declare const defaultIdentityManager: IdentityManager;
224
110
  * https://github.com/refractproject/refract-spec
225
111
  * @public
226
112
  */
227
- export declare const dehydrate: (element: Element_2, namespace?: Namespace_2) => any;
228
-
229
- /**
230
- * This dereference algorithm is used exclusively for dereferencing specification objects.
231
- * It doesn't handle circular references of external references and works on objects only (not arrays).
232
- * @public
233
- */
234
- export declare const dereference: (object: Record<string, any>, root?: Record<string, any>) => Record<string, any>;
113
+ export declare const dehydrate: (element: Element_2, namespace?: Namespace) => unknown;
235
114
 
236
115
  /**
237
116
  * @public
@@ -246,7 +125,6 @@ export declare interface DispatchPluginsAsync {
246
125
  export declare interface DispatchPluginsOptions {
247
126
  toolboxCreator: typeof createToolbox;
248
127
  visitorOptions: {
249
- nodeTypeGetter: typeof getNodeType;
250
128
  exposeEdits: boolean;
251
129
  };
252
130
  }
@@ -264,23 +142,6 @@ export declare interface DispatchPluginsSync {
264
142
  */
265
143
  export declare const dispatchRefractorPlugins: DispatchPluginsSync;
266
144
 
267
- export { Element_2 as Element }
268
-
269
- /**
270
- * @public
271
- */
272
- export declare interface ElementBasicsTrait {
273
- _storedElement: string;
274
- _content: unknown;
275
- }
276
-
277
- /**
278
- * @public
279
- */
280
- export declare interface ElementClassesTrait {
281
- classes: ArrayElement | Array<string>;
282
- }
283
-
284
145
  /**
285
146
  * @public
286
147
  */
@@ -296,57 +157,6 @@ export declare interface ElementIdentityErrorOptions extends ApiDOMErrorOptions
296
157
  readonly value: unknown;
297
158
  }
298
159
 
299
- /**
300
- * @public
301
- */
302
- export declare type ElementPredicate<T extends Element_2> = (element: unknown) => element is T;
303
-
304
- /**
305
- * @public
306
- */
307
- export declare interface ElementPrimitiveBehavior {
308
- primitive: () => unknown;
309
- }
310
-
311
- /**
312
- * @public
313
- */
314
- export declare interface ElementTypeTrait<T = string> {
315
- element: T;
316
- }
317
-
318
- /**
319
- * Finds all elements matching the predicate.
320
- * @public
321
- */
322
- export declare const filter: <T extends Element_2>(predicate: (element: any) => boolean, element: T) => ArraySlice;
323
-
324
- /**
325
- * @public
326
- */
327
- export declare type FinalCloneTypes = KeyValuePair | ArraySlice | ObjectSlice;
328
-
329
- /**
330
- * Find first element that satisfies the provided predicate.
331
- * @public
332
- */
333
- export declare const find: <T extends Element_2>(predicate: (element: any) => boolean, element: T) => T | undefined;
334
-
335
- /**
336
- * Finds the most inner node at the given offset.
337
- * If includeRightBound is set, also finds nodes that end at the given offset.
338
- * @public
339
- */
340
- export declare const findAtOffset: <T extends Element_2>(options: number | FindAtOffsetOptions, element: T) => T | undefined;
341
-
342
- /**
343
- * @public
344
- */
345
- export declare interface FindAtOffsetOptions {
346
- offset: number;
347
- includeRightBound?: boolean;
348
- }
349
-
350
160
  /**
351
161
  * Transforms data to an Element from a particular namespace.
352
162
  *
@@ -357,32 +167,7 @@ export declare interface FindAtOffsetOptions {
357
167
  * - https://github.com/swagger-api/swagger-ui/issues/9466#issuecomment-1881053410
358
168
  * @public
359
169
  */
360
- export declare const from: (data: any, namespace?: Namespace_2) => Element_2;
361
-
362
- /**
363
- * @public
364
- */
365
- export declare const getNodeType: <T extends Element_2>(element: T) => string | undefined;
366
-
367
- /**
368
- * @public
369
- */
370
- export declare const hasBasicElementProps: (element: unknown) => element is ElementBasicsTrait;
371
-
372
- /**
373
- * @public
374
- */
375
- export declare const hasClass: (cls: string, element: unknown) => element is ElementClassesTrait;
376
-
377
- /**
378
- * @public
379
- */
380
- export declare const hasElementSourceMap: <T extends Element_2>(element: T) => boolean;
381
-
382
- /**
383
- * @public
384
- */
385
- export declare const hasMethod: <T extends string>(name: T, element: unknown) => element is { [key in T]: (...args: unknown[]) => unknown; };
170
+ export declare const from: (data: unknown, namespace?: Namespace) => Element_2 | undefined;
386
171
 
387
172
  /**
388
173
  * @public
@@ -398,119 +183,6 @@ export declare class IdentityManager {
398
183
  generateId(): string;
399
184
  }
400
185
 
401
- /**
402
- * @public
403
- */
404
- export declare const includesClasses: <T extends Element_2>(classes: string[], element: T) => boolean;
405
-
406
- /**
407
- * @public
408
- */
409
- export declare const includesSymbols: <T extends Element_2>(symbols: string[], element: T) => boolean;
410
-
411
- /**
412
- * @public
413
- */
414
- export declare const isAnnotationElement: ElementPredicate<AnnotationElement>;
415
-
416
- /**
417
- * @public
418
- */
419
- export declare const isArrayElement: ElementPredicate<ArrayElement>;
420
-
421
- /**
422
- * @public
423
- */
424
- export declare const isBooleanElement: ElementPredicate<BooleanElement>;
425
-
426
- /**
427
- * @public
428
- */
429
- declare const isCommentElement: ElementPredicate<CommentElement>;
430
-
431
- /**
432
- * @public
433
- */
434
- export declare const isElement: ElementPredicate<Element_2>;
435
-
436
- /**
437
- * @public
438
- */
439
- export declare const isElementType: (name: string, element: unknown) => element is ElementTypeTrait;
440
-
441
- /**
442
- * @public
443
- */
444
- export declare const isLinkElement: ElementPredicate<LinkElement>;
445
-
446
- /**
447
- * @public
448
- */
449
- export declare const isMemberElement: ElementPredicate<MemberElement>;
450
-
451
- /**
452
- * @public
453
- */
454
- export declare const isNullElement: ElementPredicate<NullElement>;
455
-
456
- /**
457
- * @public
458
- */
459
- export declare const isNumberElement: ElementPredicate<NumberElement>;
460
-
461
- /**
462
- * @public
463
- */
464
- export declare const isObjectElement: ElementPredicate<ObjectElement>;
465
-
466
- /**
467
- * @public
468
- */
469
- export declare const isParseResultElement: ElementPredicate<ParseResultElement>;
470
-
471
- /**
472
- * @public
473
- */
474
- export declare const isPrimitiveElement: ElementPredicate<PrimitiveElement>;
475
-
476
- /**
477
- * @public
478
- */
479
- export declare const isRefElement: ElementPredicate<RefElement>;
480
-
481
- /**
482
- * @public
483
- */
484
- export declare const isSourceMapElement: ElementPredicate<SourceMapElement>;
485
-
486
- /**
487
- * @public
488
- */
489
- export declare const isStringElement: ElementPredicate<StringElement>;
490
-
491
- /**
492
- * @public
493
- */
494
- export declare const keyMap: {
495
- ObjectElement: string[];
496
- ArrayElement: string[];
497
- MemberElement: string[];
498
- StringElement: never[];
499
- BooleanElement: never[];
500
- NumberElement: never[];
501
- NullElement: never[];
502
- RefElement: never[];
503
- LinkElement: never[];
504
- Annotation: never[];
505
- Comment: never[];
506
- ParseResultElement: string[];
507
- SourceMap: string[];
508
- };
509
-
510
- export { KeyValuePair }
511
-
512
- export { LinkElement }
513
-
514
186
  /**
515
187
  * @public
516
188
  */
@@ -521,10 +193,6 @@ export declare class MediaTypes<T> extends Array<T> {
521
193
  latest(): void;
522
194
  }
523
195
 
524
- export { MemberElement }
525
-
526
- export { mergeAllVisitors }
527
-
528
196
  /**
529
197
  * @public
530
198
  */
@@ -545,109 +213,34 @@ declare type MergeRightOptions = Omit<DeepMergeUserOptions, 'customMerge' | 'clo
545
213
  export { MergeRightOptions as MergeLeftOptions }
546
214
  export { MergeRightOptions }
547
215
 
548
- export { Meta }
549
-
550
- /**
551
- * @public
552
- */
553
- export declare class Namespace extends Namespace_2 {
554
- constructor();
555
- }
556
-
557
- /**
558
- * @public
559
- */
560
- export declare const namespace: Namespace;
561
-
562
- export { NamespacePluginOptions }
563
-
564
- export { NullElement }
565
-
566
- export { NumberElement }
567
-
568
- export { ObjectElement }
569
-
570
216
  /**
571
217
  * @public
572
218
  */
573
219
  export declare type ObjectOrArrayElement = ObjectElement | ArrayElement;
574
220
 
575
- export { ObjectSlice }
576
-
577
- /**
578
- * Computes upwards edges from every child to its parent.
579
- * @public
580
- */
581
- export declare const parents: <T extends Element_2>(element: T) => WeakMap<Element_2, Element_2 | undefined>;
582
-
583
221
  /**
584
222
  * @public
585
223
  */
586
- export declare class ParseResultElement extends ArrayElement {
587
- constructor(content?: Array<any>, meta?: Meta, attributes?: Attributes);
588
- get api(): Element_2 | undefined;
589
- get results(): ArraySlice;
590
- get result(): Element_2 | undefined;
591
- get annotations(): ArraySlice;
592
- get warnings(): ArraySlice;
593
- get errors(): ArraySlice;
594
- get isEmpty(): boolean;
595
- replaceResult(replacement: Element_2): boolean;
596
- }
597
-
598
- /**
599
- * @public
600
- */
601
- export declare interface Position {
602
- row: number;
603
- column: number;
604
- char: number;
605
- }
606
-
607
- /**
608
- * @public
609
- */
610
- export declare interface PositionRange {
611
- start: Position;
612
- end: Position;
613
- }
614
-
615
- /**
616
- * @public
617
- */
618
- export declare type PredicateCreator<T extends Element_2> = (helpers: PredicateHelpers) => ElementPredicate<T>;
619
-
620
- /**
621
- * @public
622
- */
623
- export declare interface PredicateHelpers {
624
- hasMethod: typeof hasMethod;
625
- hasBasicElementProps: typeof hasBasicElementProps;
626
- primitiveEq: typeof primitiveEq;
627
- isElementType: typeof isElementType;
628
- hasClass: typeof hasClass;
629
- }
630
-
631
- /**
632
- * @public
633
- */
634
- export declare type Predicates = {
224
+ export declare interface Predicates {
225
+ isElement: typeof isElement;
226
+ isStringElement: typeof isStringElement;
227
+ isNumberElement: typeof isNumberElement;
228
+ isNullElement: typeof isNullElement;
229
+ isBooleanElement: typeof isBooleanElement;
230
+ isArrayElement: typeof isArrayElement;
231
+ isObjectElement: typeof isObjectElement;
232
+ isMemberElement: typeof isMemberElement;
635
233
  isPrimitiveElement: typeof isPrimitiveElement;
636
- };
637
-
638
- /**
639
- * @public
640
- */
641
- export declare type PrimitiveElement = ObjectElement | ArrayElement | BooleanElement | NumberElement | StringElement | NullElement | MemberElement;
642
-
643
- /**
644
- * @public
645
- */
646
- export declare const primitiveEq: (val: unknown, element: unknown) => element is ElementPrimitiveBehavior;
647
-
648
- export { RefElement }
649
-
650
- export { refract }
234
+ isLinkElement: typeof isLinkElement;
235
+ isRefElement: typeof isRefElement;
236
+ isAnnotationElement: typeof isAnnotationElement;
237
+ isCommentElement: typeof isCommentElement;
238
+ isParseResultElement: typeof isParseResultElement;
239
+ isSourceMapElement: typeof isSourceMapElement;
240
+ hasElementSourceMap: typeof hasElementSourceMap;
241
+ includesSymbols: typeof includesSymbols;
242
+ includesClasses: typeof includesClasses;
243
+ }
651
244
 
652
245
  /**
653
246
  * Plugin for decorating every element in ApiDOM tree with UUID.
@@ -658,7 +251,7 @@ export declare const refractorPluginElementIdentity: ({ length }?: {
658
251
  }) => () => {
659
252
  pre(): void;
660
253
  visitor: {
661
- enter<T extends Element_2>(element: T): void;
254
+ enter(path: Path<Element_2>): void;
662
255
  };
663
256
  post(): void;
664
257
  };
@@ -669,51 +262,38 @@ export declare const refractorPluginElementIdentity: ({ length }?: {
669
262
  */
670
263
  export declare const refractorPluginSemanticElementIdentity: ({ length }?: {
671
264
  length?: number | undefined;
672
- }) => ({ predicates }: {
673
- predicates: Predicates;
674
- }) => {
265
+ }) => () => {
675
266
  pre(): void;
676
267
  visitor: {
677
- enter<T extends Element_2>(element: T): void;
268
+ enter(path: Path<Element_2>): void;
678
269
  };
679
270
  post(): void;
680
271
  };
681
272
 
682
273
  /**
683
- * Complement of filter.
274
+ * Base type for resolved specification objects.
275
+ * Extend this in namespace packages to add specific type information.
684
276
  * @public
685
277
  */
686
- export declare const reject: <T extends Element_2>(predicate: (element: any) => boolean, element: T) => ArraySlice;
687
-
688
- /**
689
- * Transforms ApiDOM into S-expressions (Symbolic Expressions).
690
- * @public
691
- */
692
- export declare const sexprs: (element: Element_2) => string;
693
-
694
- /**
695
- * @public
696
- */
697
- export declare class ShallowCloneError extends CloneError {
278
+ export declare interface ResolvedSpecification {
279
+ elementMap: Record<string, string[]>;
698
280
  }
699
281
 
700
282
  /**
701
- * Tests whether at least one element passes the predicate.
283
+ * Resolves a specification object by:
284
+ * 1. Dereferencing all $ref pointers
285
+ * 2. Building elementMap from objects with `element` property
286
+ * 3. Caching results for efficiency
287
+ *
702
288
  * @public
703
289
  */
704
- export declare const some: <T extends Element_2>(predicate: (element: any) => boolean, element: T) => boolean;
290
+ export declare const resolveSpecification: <T extends ResolvedSpecification = ResolvedSpecification>(specification: Record<string, unknown>) => T;
705
291
 
706
292
  /**
293
+ * Transforms ApiDOM into S-expressions (Symbolic Expressions).
707
294
  * @public
708
295
  */
709
- export declare class SourceMapElement extends ArrayElement {
710
- constructor(content?: Array<any>, meta?: Meta, attributes?: Attributes);
711
- get positionStart(): Element_2 | undefined;
712
- get positionEnd(): Element_2 | undefined;
713
- set position(position: PositionRange | undefined);
714
- }
715
-
716
- export { StringElement }
296
+ export declare const sexprs: (element: Element_2) => string;
717
297
 
718
298
  /**
719
299
  * @public
@@ -724,21 +304,24 @@ export declare const toJSON: (element: Element_2, replacer?: (this: any, key: st
724
304
  * @public
725
305
  */
726
306
  export declare interface Toolbox {
727
- predicates: typeof basePredicates;
728
- namespace: typeof namespace;
307
+ predicates: Predicates;
308
+ namespace: Namespace;
729
309
  }
730
310
 
731
311
  /**
732
312
  * Create a refracted string representation of an Element.
733
313
  * @public
734
314
  */
735
- declare const toString_2: (element: Element_2, namespace?: Namespace_2) => string;
315
+ declare const toString_2: (element: Element_2, namespace?: Namespace) => string;
736
316
  export { toString_2 as toString }
737
317
 
738
318
  /**
319
+ * Transforms the ApiDOM into JavaScript POJO.
320
+ * This POJO would be the result of interpreting the ApiDOM
321
+ * into JavaScript structure.
739
322
  * @public
740
323
  */
741
- export declare const toValue: <T extends Element_2 | unknown>(element: T) => any;
324
+ export declare const toValue: <T extends Element_2 | unknown>(element: T) => unknown;
742
325
 
743
326
  /**
744
327
  * @public
@@ -768,39 +351,4 @@ export declare class Transcluder {
768
351
  transclude(search: Element_2, replace: Element_2): Element_2 | undefined;
769
352
  }
770
353
 
771
- /**
772
- * Executes the callback on this element and all descendants.
773
- * @public
774
- */
775
- export declare const traverse: <T extends Element_2>(options: Callback | TraverseOptions, element: T) => void;
776
-
777
- /**
778
- * @public
779
- */
780
- export declare interface TraverseOptions {
781
- callback?: Callback;
782
- predicate?: (element: any) => boolean;
783
- }
784
-
785
- /**
786
- * @public
787
- */
788
- export declare const visit: (root: Element_2, visitor: any, { keyMap, ...rest }?: {
789
- keyMap?: {
790
- ObjectElement: string[];
791
- ArrayElement: string[];
792
- MemberElement: string[];
793
- StringElement: never[];
794
- BooleanElement: never[];
795
- NumberElement: never[];
796
- NullElement: never[];
797
- RefElement: never[];
798
- LinkElement: never[];
799
- Annotation: never[];
800
- Comment: never[];
801
- ParseResultElement: string[];
802
- SourceMap: string[];
803
- } | undefined;
804
- }) => Element_2;
805
-
806
354
  export { }