@voidhash/mimic 0.0.1 → 0.0.2

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.
@@ -0,0 +1,648 @@
1
+ /**
2
+ * Tree snapshot utility functions.
3
+ *
4
+ * Standalone helpers for traversing and querying tree snapshots.
5
+ * All functions handle undefined snapshots gracefully.
6
+ *
7
+ * @since 0.0.1
8
+ */
9
+
10
+ import type { TreeNodeSnapshot, TreePrimitive } from "../primitives/Tree.js";
11
+ import type { AnyTreeNodePrimitive } from "../primitives/TreeNode.js";
12
+
13
+ // =============================================================================
14
+ // Result Types
15
+ // =============================================================================
16
+
17
+ /**
18
+ * Result of finding a node with path information.
19
+ */
20
+ export interface NodeSearchResult<TNode extends AnyTreeNodePrimitive> {
21
+ readonly node: TreeNodeSnapshot<TNode>;
22
+ readonly path: readonly string[]; // Array of node IDs from root to this node
23
+ readonly depth: number;
24
+ }
25
+
26
+ /**
27
+ * Result of finding a parent node.
28
+ */
29
+ export interface ParentSearchResult<TNode extends AnyTreeNodePrimitive> {
30
+ readonly parent: TreeNodeSnapshot<TNode>;
31
+ readonly childIndex: number; // Index of the target node in parent's children
32
+ }
33
+
34
+ /**
35
+ * Flattened node with parent information.
36
+ */
37
+ export interface FlattenedNode<TNode extends AnyTreeNodePrimitive> {
38
+ readonly node: TreeNodeSnapshot<TNode>;
39
+ readonly parentId: string | null;
40
+ readonly depth: number;
41
+ }
42
+
43
+ /**
44
+ * Options for tree traversal.
45
+ */
46
+ export interface TraverseOptions {
47
+ readonly order?: "pre" | "post";
48
+ }
49
+
50
+ // =============================================================================
51
+ // Core Functions
52
+ // =============================================================================
53
+
54
+ /**
55
+ * Find a node by ID in a tree snapshot.
56
+ *
57
+ * @param snapshot - The root tree snapshot
58
+ * @param id - The node ID to find
59
+ * @returns The node snapshot if found, undefined otherwise
60
+ */
61
+ export function findNodeById<TNode extends AnyTreeNodePrimitive>(
62
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
63
+ id: string
64
+ ): TreeNodeSnapshot<TNode> | undefined {
65
+ if (!snapshot) return undefined;
66
+ if (snapshot.id === id) return snapshot;
67
+
68
+ for (const child of snapshot.children) {
69
+ const found = findNodeById(child as TreeNodeSnapshot<TNode>, id);
70
+ if (found) return found;
71
+ }
72
+
73
+ return undefined;
74
+ }
75
+
76
+ /**
77
+ * Find a node by ID with full path information.
78
+ *
79
+ * @param snapshot - The root tree snapshot
80
+ * @param id - The node ID to find
81
+ * @returns NodeSearchResult with node, path, and depth, or undefined if not found
82
+ */
83
+ export function findNodeWithPath<TNode extends AnyTreeNodePrimitive>(
84
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
85
+ id: string
86
+ ): NodeSearchResult<TNode> | undefined {
87
+ if (!snapshot) return undefined;
88
+
89
+ const search = (
90
+ node: TreeNodeSnapshot<TNode>,
91
+ currentPath: string[],
92
+ depth: number
93
+ ): NodeSearchResult<TNode> | undefined => {
94
+ const path = [...currentPath, node.id];
95
+
96
+ if (node.id === id) {
97
+ return { node, path, depth };
98
+ }
99
+
100
+ for (const child of node.children) {
101
+ const result = search(child as TreeNodeSnapshot<TNode>, path, depth + 1);
102
+ if (result) return result;
103
+ }
104
+
105
+ return undefined;
106
+ };
107
+
108
+ return search(snapshot, [], 0);
109
+ }
110
+
111
+ /**
112
+ * Get the parent node of a given node ID.
113
+ *
114
+ * @param snapshot - The root tree snapshot
115
+ * @param nodeId - The ID of the node whose parent we want
116
+ * @returns ParentSearchResult with parent node and child index, or undefined
117
+ */
118
+ export function getParent<TNode extends AnyTreeNodePrimitive>(
119
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
120
+ nodeId: string
121
+ ): ParentSearchResult<TNode> | undefined {
122
+ if (!snapshot) return undefined;
123
+
124
+ // Check if any direct child is the target
125
+ for (let i = 0; i < snapshot.children.length; i++) {
126
+ const child = snapshot.children[i];
127
+ if (child && child.id === nodeId) {
128
+ return {
129
+ parent: snapshot,
130
+ childIndex: i,
131
+ };
132
+ }
133
+ }
134
+
135
+ // Recursively search children
136
+ for (const child of snapshot.children) {
137
+ const result = getParent(child as TreeNodeSnapshot<TNode>, nodeId);
138
+ if (result) return result;
139
+ }
140
+
141
+ return undefined;
142
+ }
143
+
144
+ /**
145
+ * Get a subtree rooted at a specific node ID.
146
+ *
147
+ * @param snapshot - The root tree snapshot
148
+ * @param nodeId - The ID of the node to use as new root
149
+ * @returns The subtree snapshot, or undefined if node not found
150
+ */
151
+ export function getSubtree<TNode extends AnyTreeNodePrimitive>(
152
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
153
+ nodeId: string
154
+ ): TreeNodeSnapshot<TNode> | undefined {
155
+ return findNodeById(snapshot, nodeId);
156
+ }
157
+
158
+ /**
159
+ * Get all ancestor nodes from a node up to the root.
160
+ *
161
+ * @param snapshot - The root tree snapshot
162
+ * @param nodeId - The ID of the node
163
+ * @returns Array of ancestor snapshots from immediate parent to root, or empty array
164
+ */
165
+ export function getAncestors<TNode extends AnyTreeNodePrimitive>(
166
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
167
+ nodeId: string
168
+ ): readonly TreeNodeSnapshot<TNode>[] {
169
+ if (!snapshot) return [];
170
+
171
+ const result = findNodeWithPath(snapshot, nodeId);
172
+ if (!result || result.path.length <= 1) return [];
173
+
174
+ // Path includes the node itself, so we need all nodes except the last one
175
+ const ancestorIds = result.path.slice(0, -1);
176
+ const ancestors: TreeNodeSnapshot<TNode>[] = [];
177
+
178
+ // Collect ancestors in reverse order (parent first, root last)
179
+ for (let i = ancestorIds.length - 1; i >= 0; i--) {
180
+ const id = ancestorIds[i];
181
+ if (id) {
182
+ const ancestor = findNodeById(snapshot, id);
183
+ if (ancestor) {
184
+ ancestors.push(ancestor);
185
+ }
186
+ }
187
+ }
188
+
189
+ return ancestors;
190
+ }
191
+
192
+ /**
193
+ * Get all descendant nodes of a given node (flat array).
194
+ *
195
+ * @param snapshot - The root tree snapshot
196
+ * @param nodeId - The ID of the node (if undefined, returns all descendants of root)
197
+ * @returns Flat array of all descendant node snapshots
198
+ */
199
+ export function getDescendants<TNode extends AnyTreeNodePrimitive>(
200
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
201
+ nodeId?: string
202
+ ): readonly TreeNodeSnapshot<TNode>[] {
203
+ if (!snapshot) return [];
204
+
205
+ const startNode = nodeId ? findNodeById(snapshot, nodeId) : snapshot;
206
+ if (!startNode) return [];
207
+
208
+ const descendants: TreeNodeSnapshot<TNode>[] = [];
209
+
210
+ const collect = (node: TreeNodeSnapshot<TNode>) => {
211
+ for (const child of node.children) {
212
+ descendants.push(child as TreeNodeSnapshot<TNode>);
213
+ collect(child as TreeNodeSnapshot<TNode>);
214
+ }
215
+ };
216
+
217
+ collect(startNode);
218
+ return descendants;
219
+ }
220
+
221
+ /**
222
+ * Get siblings of a node (nodes with the same parent).
223
+ *
224
+ * @param snapshot - The root tree snapshot
225
+ * @param nodeId - The ID of the node
226
+ * @param includeSelf - Whether to include the node itself (default: false)
227
+ * @returns Array of sibling snapshots
228
+ */
229
+ export function getSiblings<TNode extends AnyTreeNodePrimitive>(
230
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
231
+ nodeId: string,
232
+ includeSelf: boolean = false
233
+ ): readonly TreeNodeSnapshot<TNode>[] {
234
+ if (!snapshot) return [];
235
+
236
+ const parentResult = getParent(snapshot, nodeId);
237
+
238
+ // If no parent, this is the root - root has no siblings
239
+ if (!parentResult) return [];
240
+
241
+ const siblings = parentResult.parent.children as readonly TreeNodeSnapshot<TNode>[];
242
+
243
+ if (includeSelf) {
244
+ return siblings;
245
+ }
246
+
247
+ return siblings.filter((s) => s.id !== nodeId);
248
+ }
249
+
250
+ // =============================================================================
251
+ // Query Functions
252
+ // =============================================================================
253
+
254
+ /**
255
+ * Find the first node matching a predicate.
256
+ *
257
+ * @param snapshot - The root tree snapshot
258
+ * @param predicate - Function to test each node
259
+ * @returns First matching node snapshot, or undefined
260
+ */
261
+ export function findNode<TNode extends AnyTreeNodePrimitive>(
262
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
263
+ predicate: (node: TreeNodeSnapshot<TNode>) => boolean
264
+ ): TreeNodeSnapshot<TNode> | undefined {
265
+ if (!snapshot) return undefined;
266
+
267
+ if (predicate(snapshot)) return snapshot;
268
+
269
+ for (const child of snapshot.children) {
270
+ const found = findNode(child as TreeNodeSnapshot<TNode>, predicate);
271
+ if (found) return found;
272
+ }
273
+
274
+ return undefined;
275
+ }
276
+
277
+ /**
278
+ * Find all nodes matching a predicate.
279
+ *
280
+ * @param snapshot - The root tree snapshot
281
+ * @param predicate - Function to test each node
282
+ * @returns Array of matching node snapshots
283
+ */
284
+ export function findNodes<TNode extends AnyTreeNodePrimitive>(
285
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
286
+ predicate: (node: TreeNodeSnapshot<TNode>) => boolean
287
+ ): readonly TreeNodeSnapshot<TNode>[] {
288
+ if (!snapshot) return [];
289
+
290
+ const results: TreeNodeSnapshot<TNode>[] = [];
291
+
292
+ const search = (node: TreeNodeSnapshot<TNode>) => {
293
+ if (predicate(node)) {
294
+ results.push(node);
295
+ }
296
+ for (const child of node.children) {
297
+ search(child as TreeNodeSnapshot<TNode>);
298
+ }
299
+ };
300
+
301
+ search(snapshot);
302
+ return results;
303
+ }
304
+
305
+ /**
306
+ * Get the depth of a specific node (0 = root).
307
+ *
308
+ * @param snapshot - The root tree snapshot
309
+ * @param nodeId - The ID of the node
310
+ * @returns The depth, or -1 if not found
311
+ */
312
+ export function getNodeDepth<TNode extends AnyTreeNodePrimitive>(
313
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
314
+ nodeId: string
315
+ ): number {
316
+ if (!snapshot) return -1;
317
+
318
+ const result = findNodeWithPath(snapshot, nodeId);
319
+ return result ? result.depth : -1;
320
+ }
321
+
322
+ /**
323
+ * Check if one node is an ancestor of another.
324
+ *
325
+ * @param snapshot - The root tree snapshot
326
+ * @param ancestorId - Potential ancestor node ID
327
+ * @param descendantId - Potential descendant node ID
328
+ * @returns true if ancestorId is an ancestor of descendantId
329
+ */
330
+ export function isAncestorOf<TNode extends AnyTreeNodePrimitive>(
331
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
332
+ ancestorId: string,
333
+ descendantId: string
334
+ ): boolean {
335
+ if (!snapshot) return false;
336
+
337
+ const result = findNodeWithPath(snapshot, descendantId);
338
+ if (!result) return false;
339
+
340
+ // Check if ancestorId is in the path (excluding the descendant itself)
341
+ return result.path.slice(0, -1).includes(ancestorId);
342
+ }
343
+
344
+ // =============================================================================
345
+ // Traversal Functions
346
+ // =============================================================================
347
+
348
+ /**
349
+ * Traverse the tree and call a visitor function for each node.
350
+ * Return false from visitor to stop traversal.
351
+ *
352
+ * @param snapshot - The root tree snapshot
353
+ * @param visitor - Function called for each node (return false to stop)
354
+ * @param options - Traversal options (order: 'pre' | 'post')
355
+ */
356
+ export function traverse<TNode extends AnyTreeNodePrimitive>(
357
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
358
+ visitor: (node: TreeNodeSnapshot<TNode>, depth: number) => void | false,
359
+ options: TraverseOptions = {}
360
+ ): void {
361
+ if (!snapshot) return;
362
+
363
+ const { order = "pre" } = options;
364
+
365
+ const visit = (node: TreeNodeSnapshot<TNode>, depth: number): boolean => {
366
+ if (order === "pre") {
367
+ const result = visitor(node, depth);
368
+ if (result === false) return false;
369
+ }
370
+
371
+ for (const child of node.children) {
372
+ const shouldContinue = visit(child as TreeNodeSnapshot<TNode>, depth + 1);
373
+ if (!shouldContinue) return false;
374
+ }
375
+
376
+ if (order === "post") {
377
+ const result = visitor(node, depth);
378
+ if (result === false) return false;
379
+ }
380
+
381
+ return true;
382
+ };
383
+
384
+ visit(snapshot, 0);
385
+ }
386
+
387
+ /**
388
+ * Flatten the tree into an array with parent information.
389
+ *
390
+ * @param snapshot - The root tree snapshot
391
+ * @returns Array of { node, parentId, depth } objects
392
+ */
393
+ export function flattenTree<TNode extends AnyTreeNodePrimitive>(
394
+ snapshot: TreeNodeSnapshot<TNode> | undefined
395
+ ): readonly FlattenedNode<TNode>[] {
396
+ if (!snapshot) return [];
397
+
398
+ const result: FlattenedNode<TNode>[] = [];
399
+
400
+ const flatten = (
401
+ node: TreeNodeSnapshot<TNode>,
402
+ parentId: string | null,
403
+ depth: number
404
+ ) => {
405
+ result.push({ node, parentId, depth });
406
+
407
+ for (const child of node.children) {
408
+ flatten(child as TreeNodeSnapshot<TNode>, node.id, depth + 1);
409
+ }
410
+ };
411
+
412
+ flatten(snapshot, null, 0);
413
+ return result;
414
+ }
415
+
416
+ /**
417
+ * Map over all nodes in the tree, transforming each node's data.
418
+ * Preserves tree structure while transforming node content.
419
+ *
420
+ * @param snapshot - The root tree snapshot
421
+ * @param mapper - Function to transform each node
422
+ * @returns New tree structure with transformed nodes, or undefined
423
+ */
424
+ export function mapTree<TNode extends AnyTreeNodePrimitive, R>(
425
+ snapshot: TreeNodeSnapshot<TNode> | undefined,
426
+ mapper: (node: TreeNodeSnapshot<TNode>, depth: number) => R
427
+ ): { value: R; children: ReturnType<typeof mapTree<TNode, R>>[] } | undefined {
428
+ if (!snapshot) return undefined;
429
+
430
+ const map = (
431
+ node: TreeNodeSnapshot<TNode>,
432
+ depth: number
433
+ ): { value: R; children: ReturnType<typeof mapTree<TNode, R>>[] } => {
434
+ const value = mapper(node, depth);
435
+ const children = node.children.map((child) =>
436
+ map(child as TreeNodeSnapshot<TNode>, depth + 1)
437
+ );
438
+ return { value, children };
439
+ };
440
+
441
+ return map(snapshot, 0);
442
+ }
443
+
444
+ // =============================================================================
445
+ // Schema Functions (work with TreeNodePrimitive, not snapshots)
446
+ // =============================================================================
447
+
448
+ /**
449
+ * Build a lookup map from node type strings to their TreeNodePrimitive definitions.
450
+ * Useful for resolving snapshot node types back to their schema definitions.
451
+ *
452
+ * @param tree - The TreePrimitive to analyze
453
+ * @returns Map from type string to TreeNodePrimitive
454
+ *
455
+ * @example
456
+ * ```ts
457
+ * const typeMap = buildNodeTypeMap(fileTree);
458
+ * const folderPrimitive = typeMap.get("folder"); // FolderNode
459
+ * ```
460
+ */
461
+ export function buildNodeTypeMap<TRoot extends AnyTreeNodePrimitive>(
462
+ tree: TreePrimitive<TRoot>
463
+ ): Map<string, AnyTreeNodePrimitive> {
464
+ const map = new Map<string, AnyTreeNodePrimitive>();
465
+ const visited = new Set<string>();
466
+
467
+ const visit = (node: AnyTreeNodePrimitive) => {
468
+ if (visited.has(node.type)) return;
469
+ visited.add(node.type);
470
+ map.set(node.type, node);
471
+
472
+ for (const child of node.children) {
473
+ visit(child);
474
+ }
475
+ };
476
+
477
+ visit(tree.root);
478
+ return map;
479
+ }
480
+
481
+ /**
482
+ * Get the TreeNodePrimitive definition for a snapshot node.
483
+ * Requires the tree schema to resolve the type string to its primitive.
484
+ *
485
+ * @param tree - The TreePrimitive schema
486
+ * @param snapshot - The node snapshot to get the primitive for
487
+ * @returns The TreeNodePrimitive, or undefined if not found
488
+ *
489
+ * @example
490
+ * ```ts
491
+ * const node = findNodeById(treeSnapshot, "some-id");
492
+ * const primitive = getNodePrimitive(fileTree, node);
493
+ * // primitive is FolderNode or FileNode depending on node.type
494
+ * ```
495
+ */
496
+ export function getNodePrimitive<TRoot extends AnyTreeNodePrimitive>(
497
+ tree: TreePrimitive<TRoot>,
498
+ snapshot: TreeNodeSnapshot<AnyTreeNodePrimitive>
499
+ ): AnyTreeNodePrimitive | undefined {
500
+ return getNodeTypeByName(tree, snapshot.type);
501
+ }
502
+
503
+ /**
504
+ * Get the allowed child types for a snapshot node.
505
+ * Combines schema lookup with the node's allowed children.
506
+ *
507
+ * @param tree - The TreePrimitive schema
508
+ * @param snapshot - The node snapshot to get allowed children for
509
+ * @returns Array of allowed child TreeNodePrimitives, or empty array if not found
510
+ *
511
+ * @example
512
+ * ```ts
513
+ * const node = findNodeById(treeSnapshot, "folder-id");
514
+ * const allowedChildren = getAllowedChildTypesForNode(fileTree, node);
515
+ * // Returns [FolderNode, FileNode] if the folder can contain both
516
+ * ```
517
+ */
518
+ export function getAllowedChildTypesForNode<TRoot extends AnyTreeNodePrimitive>(
519
+ tree: TreePrimitive<TRoot>,
520
+ snapshot: TreeNodeSnapshot<AnyTreeNodePrimitive>
521
+ ): readonly AnyTreeNodePrimitive[] {
522
+ const primitive = getNodePrimitive(tree, snapshot);
523
+ if (!primitive) return [];
524
+ return primitive.children;
525
+ }
526
+
527
+ /**
528
+ * Check if a child type is allowed for a specific snapshot node.
529
+ *
530
+ * @param tree - The TreePrimitive schema
531
+ * @param parentSnapshot - The parent node snapshot
532
+ * @param childTypeName - The type string of the potential child
533
+ * @returns true if the child type is allowed
534
+ *
535
+ * @example
536
+ * ```ts
537
+ * const folder = findNodeById(treeSnapshot, "folder-id");
538
+ * canAddChildType(fileTree, folder, "file"); // true
539
+ * canAddChildType(fileTree, folder, "unknown"); // false
540
+ * ```
541
+ */
542
+ export function canAddChildType<TRoot extends AnyTreeNodePrimitive>(
543
+ tree: TreePrimitive<TRoot>,
544
+ parentSnapshot: TreeNodeSnapshot<AnyTreeNodePrimitive>,
545
+ childTypeName: string
546
+ ): boolean {
547
+ const primitive = getNodePrimitive(tree, parentSnapshot);
548
+ if (!primitive) return false;
549
+ return primitive.isChildAllowed(childTypeName);
550
+ }
551
+
552
+ /**
553
+ * Get all allowed child node types for a specific node type.
554
+ *
555
+ * @param nodeType - The TreeNodePrimitive to get children for
556
+ * @returns Array of allowed child TreeNodePrimitives
557
+ *
558
+ * @example
559
+ * ```ts
560
+ * const FolderNode = TreeNode("folder", { ... });
561
+ * const FileNode = TreeNode("file", { ... });
562
+ *
563
+ * // Get allowed children for FolderNode
564
+ * const allowedChildren = getAllowedChildTypes(FolderNode);
565
+ * // Returns [FolderNode, FileNode] if folder can contain both
566
+ * ```
567
+ */
568
+ export function getAllowedChildTypes<TNode extends AnyTreeNodePrimitive>(
569
+ nodeType: TNode
570
+ ): readonly AnyTreeNodePrimitive[] {
571
+ return nodeType.children;
572
+ }
573
+
574
+ /**
575
+ * Get all unique node types reachable in a tree schema.
576
+ * Recursively traverses the tree structure starting from the root.
577
+ *
578
+ * @param tree - The TreePrimitive to analyze
579
+ * @returns Array of all unique TreeNodePrimitives in the tree schema
580
+ *
581
+ * @example
582
+ * ```ts
583
+ * const fileTree = Tree({ root: FolderNode });
584
+ * const allNodeTypes = getAllNodeTypes(fileTree);
585
+ * // Returns [FolderNode, FileNode] - all possible node types
586
+ * ```
587
+ */
588
+ export function getAllNodeTypes<TRoot extends AnyTreeNodePrimitive>(
589
+ tree: TreePrimitive<TRoot>
590
+ ): readonly AnyTreeNodePrimitive[] {
591
+ const visited = new Set<string>();
592
+ const result: AnyTreeNodePrimitive[] = [];
593
+
594
+ const visit = (node: AnyTreeNodePrimitive) => {
595
+ if (visited.has(node.type)) return;
596
+ visited.add(node.type);
597
+ result.push(node);
598
+
599
+ for (const child of node.children) {
600
+ visit(child);
601
+ }
602
+ };
603
+
604
+ visit(tree.root);
605
+ return result;
606
+ }
607
+
608
+ /**
609
+ * Get the node type primitive by its type string from a tree schema.
610
+ *
611
+ * @param tree - The TreePrimitive to search
612
+ * @param typeName - The type string to find (e.g., "folder", "file")
613
+ * @returns The matching TreeNodePrimitive, or undefined if not found
614
+ *
615
+ * @example
616
+ * ```ts
617
+ * const fileTree = Tree({ root: FolderNode });
618
+ * const folderType = getNodeTypeByName(fileTree, "folder");
619
+ * // Returns FolderNode
620
+ * ```
621
+ */
622
+ export function getNodeTypeByName<TRoot extends AnyTreeNodePrimitive>(
623
+ tree: TreePrimitive<TRoot>,
624
+ typeName: string
625
+ ): AnyTreeNodePrimitive | undefined {
626
+ const allTypes = getAllNodeTypes(tree);
627
+ return allTypes.find((node) => node.type === typeName);
628
+ }
629
+
630
+ /**
631
+ * Check if a child type is allowed under a parent type.
632
+ *
633
+ * @param parentType - The parent TreeNodePrimitive
634
+ * @param childTypeName - The type string of the potential child
635
+ * @returns true if the child type is allowed
636
+ *
637
+ * @example
638
+ * ```ts
639
+ * isChildTypeAllowed(FolderNode, "file"); // true if folder can contain files
640
+ * isChildTypeAllowed(FileNode, "folder"); // false - files can't have children
641
+ * ```
642
+ */
643
+ export function isChildTypeAllowed(
644
+ parentType: AnyTreeNodePrimitive,
645
+ childTypeName: string
646
+ ): boolean {
647
+ return parentType.isChildAllowed(childTypeName);
648
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Primitive-CvFVxR8_.d.cts","names":[],"sources":["../src/OperationPath.ts","../src/OperationDefinition.ts","../src/Operation.ts","../src/Transaction.ts","../src/ProxyEnvironment.ts","../src/Transform.ts","../src/primitives/shared.ts","../src/primitives/String.ts","../src/primitives/Struct.ts","../src/primitives/Boolean.ts","../src/primitives/Number.ts","../src/primitives/Literal.ts","../src/primitives/Array.ts","../src/primitives/Lazy.ts","../src/primitives/Union.ts","../src/primitives/Either.ts","../src/primitives/TreeNode.ts","../src/primitives/Tree.ts","../src/Primitive.ts"],"sourcesContent":[],"mappings":"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"}