@speclynx/apidom-core 1.12.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.
Files changed (105) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/LICENSE +202 -0
  3. package/LICENSES/AFL-3.0.txt +182 -0
  4. package/LICENSES/Apache-2.0.txt +202 -0
  5. package/LICENSES/BSD-3-Clause.txt +26 -0
  6. package/LICENSES/MIT.txt +9 -0
  7. package/NOTICE +65 -0
  8. package/README.md +881 -0
  9. package/dist/apidom-core.browser.js +14724 -0
  10. package/dist/apidom-core.browser.min.js +1 -0
  11. package/package.json +67 -0
  12. package/src/clone/errors/CloneError.cjs +22 -0
  13. package/src/clone/errors/CloneError.mjs +19 -0
  14. package/src/clone/errors/DeepCloneError.cjs +11 -0
  15. package/src/clone/errors/DeepCloneError.mjs +6 -0
  16. package/src/clone/errors/ShallowCloneError.cjs +11 -0
  17. package/src/clone/errors/ShallowCloneError.mjs +6 -0
  18. package/src/clone/index.cjs +155 -0
  19. package/src/clone/index.mjs +146 -0
  20. package/src/elements/Annotation.cjs +23 -0
  21. package/src/elements/Annotation.mjs +20 -0
  22. package/src/elements/Comment.cjs +15 -0
  23. package/src/elements/Comment.mjs +12 -0
  24. package/src/elements/ParseResult.cjs +53 -0
  25. package/src/elements/ParseResult.mjs +50 -0
  26. package/src/elements/SourceMap.cjs +39 -0
  27. package/src/elements/SourceMap.mjs +36 -0
  28. package/src/identity/errors/ElementIdentityError.cjs +22 -0
  29. package/src/identity/errors/ElementIdentityError.mjs +19 -0
  30. package/src/identity/index.cjs +62 -0
  31. package/src/identity/index.mjs +56 -0
  32. package/src/index.cjs +112 -0
  33. package/src/index.mjs +50 -0
  34. package/src/media-types.cjs +21 -0
  35. package/src/media-types.mjs +18 -0
  36. package/src/merge/deepmerge.cjs +151 -0
  37. package/src/merge/deepmerge.mjs +135 -0
  38. package/src/merge/merge-left.cjs +16 -0
  39. package/src/merge/merge-left.mjs +11 -0
  40. package/src/merge/merge-right.cjs +35 -0
  41. package/src/merge/merge-right.mjs +29 -0
  42. package/src/namespace.cjs +42 -0
  43. package/src/namespace.mjs +35 -0
  44. package/src/predicates/helpers.cjs +85 -0
  45. package/src/predicates/helpers.mjs +77 -0
  46. package/src/predicates/index.cjs +208 -0
  47. package/src/predicates/index.mjs +198 -0
  48. package/src/refractor/index.cjs +46 -0
  49. package/src/refractor/index.mjs +40 -0
  50. package/src/refractor/plugins/dispatcher/index.cjs +71 -0
  51. package/src/refractor/plugins/dispatcher/index.mjs +61 -0
  52. package/src/refractor/plugins/element-identity.cjs +31 -0
  53. package/src/refractor/plugins/element-identity.mjs +26 -0
  54. package/src/refractor/plugins/semantic-element-identity.cjs +38 -0
  55. package/src/refractor/plugins/semantic-element-identity.mjs +33 -0
  56. package/src/refractor/registration.cjs +34 -0
  57. package/src/refractor/registration.mjs +19 -0
  58. package/src/refractor/toolbox.cjs +29 -0
  59. package/src/refractor/toolbox.mjs +21 -0
  60. package/src/transcluder/Transcluder.cjs +111 -0
  61. package/src/transcluder/Transcluder.mjs +107 -0
  62. package/src/transcluder/index.cjs +19 -0
  63. package/src/transcluder/index.mjs +13 -0
  64. package/src/transformers/dehydrate.cjs +15 -0
  65. package/src/transformers/dehydrate.mjs +10 -0
  66. package/src/transformers/from.cjs +34 -0
  67. package/src/transformers/from.mjs +29 -0
  68. package/src/transformers/serializers/json.cjs +11 -0
  69. package/src/transformers/serializers/json.mjs +6 -0
  70. package/src/transformers/serializers/value/ast/ephemeral-array.cjs +21 -0
  71. package/src/transformers/serializers/value/ast/ephemeral-array.mjs +17 -0
  72. package/src/transformers/serializers/value/ast/ephemeral-object.cjs +20 -0
  73. package/src/transformers/serializers/value/ast/ephemeral-object.mjs +16 -0
  74. package/src/transformers/serializers/value/index.cjs +85 -0
  75. package/src/transformers/serializers/value/index.mjs +80 -0
  76. package/src/transformers/serializers/value/visitor.cjs +52 -0
  77. package/src/transformers/serializers/value/visitor.mjs +47 -0
  78. package/src/transformers/serializers/yaml-1-2.cjs +90 -0
  79. package/src/transformers/serializers/yaml-1-2.mjs +85 -0
  80. package/src/transformers/sexprs.cjs +34 -0
  81. package/src/transformers/sexprs.mjs +30 -0
  82. package/src/transformers/to-string.cjs +16 -0
  83. package/src/transformers/to-string.mjs +11 -0
  84. package/src/traversal/filter.cjs +18 -0
  85. package/src/traversal/filter.mjs +14 -0
  86. package/src/traversal/find.cjs +19 -0
  87. package/src/traversal/find.mjs +15 -0
  88. package/src/traversal/findAtOffset.cjs +65 -0
  89. package/src/traversal/findAtOffset.mjs +60 -0
  90. package/src/traversal/index.cjs +19 -0
  91. package/src/traversal/index.mjs +7 -0
  92. package/src/traversal/parents.cjs +38 -0
  93. package/src/traversal/parents.mjs +34 -0
  94. package/src/traversal/reject.cjs +15 -0
  95. package/src/traversal/reject.mjs +10 -0
  96. package/src/traversal/some.cjs +15 -0
  97. package/src/traversal/some.mjs +10 -0
  98. package/src/traversal/traverse.cjs +60 -0
  99. package/src/traversal/traverse.mjs +53 -0
  100. package/src/traversal/visitor.cjs +123 -0
  101. package/src/traversal/visitor.mjs +115 -0
  102. package/src/util.cjs +28 -0
  103. package/src/util.mjs +24 -0
  104. package/types/apidom-core.d.ts +806 -0
  105. package/types/minim.d.ts +236 -0
@@ -0,0 +1,806 @@
1
+ /// <reference path="./minim.d.ts" />
2
+ import * as minim from "minim";
3
+ import type { ApiDOMErrorOptions } from '@speclynx/apidom-error';
4
+ 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';
25
+ 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
+ }
36
+
37
+ /**
38
+ * @public
39
+ */
40
+ export declare type AnyElement = ObjectElement | ArrayElement | Element_2;
41
+
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
+ /**
136
+ * @public
137
+ */
138
+ export declare const createToolbox: () => Toolbox;
139
+
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
+ /**
154
+ * @public
155
+ */
156
+ export declare type DeepMerge = (targetElement: ObjectOrArrayElement, sourceElement: ObjectOrArrayElement, options?: DeepMergeOptions) => AnyElement;
157
+
158
+ /**
159
+ * @public
160
+ */
161
+ export declare const deepmerge: {
162
+ (targetElement: ObjectOrArrayElement, sourceElement: ObjectOrArrayElement, options?: DeepMergeUserOptions): AnyElement;
163
+ all(list: ObjectOrArrayElement[], options?: DeepMergeUserOptions): any;
164
+ };
165
+
166
+ /**
167
+ * @public
168
+ */
169
+ export declare type DeepMergeArrayElementMerge = (targetElement: ArrayElement, sourceElement: ArrayElement, options: DeepMergeOptions) => ArrayElement;
170
+
171
+ /**
172
+ * @public
173
+ */
174
+ export declare type DeepMergeCustomAttributesMerge = (targetElementAttributes: ObjectElement, sourceElementAttributes: ObjectElement) => ObjectElement;
175
+
176
+ /**
177
+ * @public
178
+ */
179
+ export declare type DeepMergeCustomMerge = (keyElement: Element_2, options: DeepMergeOptions) => DeepMerge;
180
+
181
+ /**
182
+ * @public
183
+ */
184
+ export declare type DeepMergeCustomMetaMerge = (targetElementMeta: ObjectElement, sourceElementMeta: ObjectElement) => ObjectElement;
185
+
186
+ /**
187
+ * @public
188
+ */
189
+ export declare type DeepMergeObjectElementMerge = (targetElement: ObjectElement, source: ObjectElement, options: DeepMergeOptions) => ObjectElement;
190
+
191
+ /**
192
+ * @public
193
+ */
194
+ export declare type DeepMergeOptions = DeepMergeUserOptions & {
195
+ clone: boolean;
196
+ isMergeableElement: (element: Element_2) => boolean;
197
+ arrayElementMerge: DeepMergeArrayElementMerge;
198
+ objectElementMerge: DeepMergeObjectElementMerge;
199
+ customMerge: DeepMergeCustomMerge | undefined;
200
+ customMetaMerge: DeepMergeCustomMetaMerge | undefined;
201
+ customAttributesMerge: DeepMergeCustomAttributesMerge | undefined;
202
+ };
203
+
204
+ /**
205
+ * @public
206
+ */
207
+ export declare type DeepMergeUserOptions = {
208
+ clone?: boolean;
209
+ isMergeableElement?: (element: Element_2) => boolean;
210
+ arrayElementMerge?: DeepMergeArrayElementMerge;
211
+ objectElementMerge?: DeepMergeObjectElementMerge;
212
+ customMerge?: DeepMergeCustomMerge;
213
+ customMetaMerge?: DeepMergeCustomMetaMerge;
214
+ customAttributesMerge?: DeepMergeCustomAttributesMerge;
215
+ };
216
+
217
+ /**
218
+ * @public
219
+ */
220
+ export declare const defaultIdentityManager: IdentityManager;
221
+
222
+ /**
223
+ * Creates a refract representation of an Element.
224
+ * https://github.com/refractproject/refract-spec
225
+ * @public
226
+ */
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>;
235
+
236
+ /**
237
+ * @public
238
+ */
239
+ export declare interface DispatchPluginsAsync {
240
+ <T extends Element_2, U extends Element_2 = Element_2>(element: T, plugins: ((toolbox: any) => object)[], options?: Record<string, unknown>): Promise<U>;
241
+ }
242
+
243
+ /**
244
+ * @public
245
+ */
246
+ export declare interface DispatchPluginsOptions {
247
+ toolboxCreator: typeof createToolbox;
248
+ visitorOptions: {
249
+ nodeTypeGetter: typeof getNodeType;
250
+ exposeEdits: boolean;
251
+ };
252
+ }
253
+
254
+ /**
255
+ * @public
256
+ */
257
+ export declare interface DispatchPluginsSync {
258
+ <T extends Element_2, U extends Element_2 = Element_2>(element: T, plugins: ((toolbox: any) => object)[], options?: Record<string, unknown>): U;
259
+ [key: symbol]: DispatchPluginsAsync;
260
+ }
261
+
262
+ /**
263
+ * @public
264
+ */
265
+ export declare const dispatchRefractorPlugins: DispatchPluginsSync;
266
+
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
+ /**
285
+ * @public
286
+ */
287
+ export declare class ElementIdentityError extends ApiDOMStructuredError {
288
+ readonly value: unknown;
289
+ constructor(message?: string, structuredOptions?: ElementIdentityErrorOptions);
290
+ }
291
+
292
+ /**
293
+ * @public
294
+ */
295
+ export declare interface ElementIdentityErrorOptions extends ApiDOMErrorOptions {
296
+ readonly value: unknown;
297
+ }
298
+
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
+ /**
351
+ * Transforms data to an Element from a particular namespace.
352
+ *
353
+ * The name of the function was originally `from`,
354
+ * but it was renamed to `fromFn` to avoid issues with Parcel.js:
355
+ *
356
+ * - https://github.com/parcel-bundler/parcel/issues/9473
357
+ * - https://github.com/swagger-api/swagger-ui/issues/9466#issuecomment-1881053410
358
+ * @public
359
+ */
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; };
386
+
387
+ /**
388
+ * @public
389
+ */
390
+ export declare class IdentityManager {
391
+ protected readonly uuid: ShortUniqueId;
392
+ protected readonly identityMap: WeakMap<Element_2, StringElement>;
393
+ constructor({ length }?: {
394
+ length?: number | undefined;
395
+ });
396
+ identify<T extends Element_2>(this: IdentityManager, element: T): StringElement;
397
+ forget<T extends Element_2>(element: T): boolean;
398
+ generateId(): string;
399
+ }
400
+
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
+ /**
515
+ * @public
516
+ */
517
+ export declare class MediaTypes<T> extends Array<T> {
518
+ unknownMediaType: string;
519
+ filterByFormat(): void;
520
+ findBy(): void;
521
+ latest(): void;
522
+ }
523
+
524
+ export { MemberElement }
525
+
526
+ export { mergeAllVisitors }
527
+
528
+ /**
529
+ * @public
530
+ */
531
+ export declare const mergeLeft: typeof mergeRight;
532
+
533
+ /**
534
+ * @public
535
+ */
536
+ export declare const mergeRight: {
537
+ (targetElement: ObjectOrArrayElement, sourceElement: ObjectOrArrayElement, options?: MergeRightOptions): AnyElement;
538
+ all(list: ObjectOrArrayElement[], options?: MergeRightOptions): any;
539
+ };
540
+
541
+ /**
542
+ * @public
543
+ */
544
+ declare type MergeRightOptions = Omit<DeepMergeUserOptions, 'customMerge' | 'clone'>;
545
+ export { MergeRightOptions as MergeLeftOptions }
546
+ export { MergeRightOptions }
547
+
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
+ /**
571
+ * @public
572
+ */
573
+ export declare type ObjectOrArrayElement = ObjectElement | ArrayElement;
574
+
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
+ /**
584
+ * @public
585
+ */
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 = {
635
+ 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 }
651
+
652
+ /**
653
+ * Plugin for decorating every element in ApiDOM tree with UUID.
654
+ * @public
655
+ */
656
+ export declare const refractorPluginElementIdentity: ({ length }?: {
657
+ length?: number | undefined;
658
+ }) => () => {
659
+ pre(): void;
660
+ visitor: {
661
+ enter<T extends Element_2>(element: T): void;
662
+ };
663
+ post(): void;
664
+ };
665
+
666
+ /**
667
+ * Plugin for decorating every semantic element in ApiDOM tree with UUID.
668
+ * @public
669
+ */
670
+ export declare const refractorPluginSemanticElementIdentity: ({ length }?: {
671
+ length?: number | undefined;
672
+ }) => ({ predicates }: {
673
+ predicates: Predicates;
674
+ }) => {
675
+ pre(): void;
676
+ visitor: {
677
+ enter<T extends Element_2>(element: T): void;
678
+ };
679
+ post(): void;
680
+ };
681
+
682
+ /**
683
+ * Complement of filter.
684
+ * @public
685
+ */
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 {
698
+ }
699
+
700
+ /**
701
+ * Tests whether at least one element passes the predicate.
702
+ * @public
703
+ */
704
+ export declare const some: <T extends Element_2>(predicate: (element: any) => boolean, element: T) => boolean;
705
+
706
+ /**
707
+ * @public
708
+ */
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 }
717
+
718
+ /**
719
+ * @public
720
+ */
721
+ export declare const toJSON: (element: Element_2, replacer?: (this: any, key: string, value: any) => any, space?: string | number) => string;
722
+
723
+ /**
724
+ * @public
725
+ */
726
+ export declare interface Toolbox {
727
+ predicates: typeof basePredicates;
728
+ namespace: typeof namespace;
729
+ }
730
+
731
+ /**
732
+ * Create a refracted string representation of an Element.
733
+ * @public
734
+ */
735
+ declare const toString_2: (element: Element_2, namespace?: Namespace_2) => string;
736
+ export { toString_2 as toString }
737
+
738
+ /**
739
+ * @public
740
+ */
741
+ export declare const toValue: <T extends Element_2 | unknown>(element: T) => any;
742
+
743
+ /**
744
+ * @public
745
+ */
746
+ export declare const toYAML: (element: Element_2, { directive }?: {
747
+ directive?: boolean | undefined;
748
+ }) => string;
749
+
750
+ /**
751
+ * This is a mutating function. If you don't want your Element to be mutated,
752
+ * clone in before passing it to this function.
753
+ * @public
754
+ */
755
+ export declare const transclude: (search: Element_2, replace: Element_2, element: Element_2) => Element_2 | undefined;
756
+
757
+ /**
758
+ * This is a mutating stamp. If you don't want your Element to be mutated,
759
+ * clone in before passing it to initializer of this stamp.
760
+ * @public
761
+ */
762
+ export declare class Transcluder {
763
+ protected element: Element_2;
764
+ protected edges: WeakMap<Element_2, Element_2 | undefined>;
765
+ constructor({ element }: {
766
+ element: Element_2;
767
+ });
768
+ transclude(search: Element_2, replace: Element_2): Element_2 | undefined;
769
+ }
770
+
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
+ export { }