@weser/tree 2.0.0 → 2.0.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 (118) hide show
  1. package/dist/__tests__/add.test.d.ts +2 -0
  2. package/dist/__tests__/add.test.d.ts.map +1 -0
  3. package/dist/__tests__/add.test.js +48 -0
  4. package/dist/__tests__/add.test.js.map +1 -0
  5. package/dist/__tests__/clone.test.d.ts +2 -0
  6. package/dist/__tests__/clone.test.d.ts.map +1 -0
  7. package/dist/__tests__/clone.test.js +46 -0
  8. package/dist/__tests__/clone.test.js.map +1 -0
  9. package/dist/__tests__/create.test.d.ts +2 -0
  10. package/dist/__tests__/create.test.d.ts.map +1 -0
  11. package/dist/__tests__/create.test.js +29 -0
  12. package/dist/__tests__/create.test.js.map +1 -0
  13. package/dist/__tests__/find.test.d.ts +2 -0
  14. package/dist/__tests__/find.test.d.ts.map +1 -0
  15. package/dist/__tests__/find.test.js +36 -0
  16. package/dist/__tests__/find.test.js.map +1 -0
  17. package/dist/__tests__/findAll.test.d.ts +2 -0
  18. package/dist/__tests__/findAll.test.d.ts.map +1 -0
  19. package/dist/__tests__/findAll.test.js +34 -0
  20. package/dist/__tests__/findAll.test.js.map +1 -0
  21. package/dist/__tests__/get.test.d.ts +2 -0
  22. package/dist/__tests__/get.test.d.ts.map +1 -0
  23. package/dist/__tests__/get.test.js +34 -0
  24. package/dist/__tests__/get.test.js.map +1 -0
  25. package/dist/__tests__/getParent.test.d.ts +2 -0
  26. package/dist/__tests__/getParent.test.d.ts.map +1 -0
  27. package/dist/__tests__/getParent.test.js +33 -0
  28. package/dist/__tests__/getParent.test.js.map +1 -0
  29. package/dist/__tests__/helpers.d.ts +9 -0
  30. package/dist/__tests__/helpers.d.ts.map +1 -0
  31. package/dist/__tests__/helpers.js +34 -0
  32. package/dist/__tests__/helpers.js.map +1 -0
  33. package/dist/__tests__/insert.test.d.ts +2 -0
  34. package/dist/__tests__/insert.test.d.ts.map +1 -0
  35. package/dist/__tests__/insert.test.js +49 -0
  36. package/dist/__tests__/insert.test.js.map +1 -0
  37. package/dist/__tests__/move.test.d.ts +2 -0
  38. package/dist/__tests__/move.test.d.ts.map +1 -0
  39. package/dist/__tests__/move.test.js +48 -0
  40. package/dist/__tests__/move.test.js.map +1 -0
  41. package/dist/__tests__/remove.test.d.ts +2 -0
  42. package/dist/__tests__/remove.test.d.ts.map +1 -0
  43. package/dist/__tests__/remove.test.js +43 -0
  44. package/dist/__tests__/remove.test.js.map +1 -0
  45. package/dist/__tests__/replace.test.d.ts +2 -0
  46. package/dist/__tests__/replace.test.d.ts.map +1 -0
  47. package/dist/__tests__/replace.test.js +48 -0
  48. package/dist/__tests__/replace.test.js.map +1 -0
  49. package/dist/__tests__/traverse.test.d.ts +2 -0
  50. package/dist/__tests__/traverse.test.d.ts.map +1 -0
  51. package/dist/__tests__/traverse.test.js +55 -0
  52. package/dist/__tests__/traverse.test.js.map +1 -0
  53. package/dist/__tests__/update.test.d.ts +2 -0
  54. package/dist/__tests__/update.test.d.ts.map +1 -0
  55. package/dist/__tests__/update.test.js +41 -0
  56. package/dist/__tests__/update.test.js.map +1 -0
  57. package/dist/add.d.ts +2 -1
  58. package/dist/add.d.ts.map +1 -0
  59. package/dist/add.js +3 -2
  60. package/dist/add.js.map +1 -0
  61. package/dist/clone.d.ts +2 -1
  62. package/dist/clone.d.ts.map +1 -0
  63. package/dist/clone.js +2 -1
  64. package/dist/clone.js.map +1 -0
  65. package/dist/create.d.ts +2 -1
  66. package/dist/create.d.ts.map +1 -0
  67. package/dist/create.js +1 -0
  68. package/dist/create.js.map +1 -0
  69. package/dist/find.d.ts +2 -1
  70. package/dist/find.d.ts.map +1 -0
  71. package/dist/find.js +1 -0
  72. package/dist/find.js.map +1 -0
  73. package/dist/findAll.d.ts +2 -1
  74. package/dist/findAll.d.ts.map +1 -0
  75. package/dist/findAll.js +1 -0
  76. package/dist/findAll.js.map +1 -0
  77. package/dist/get.d.ts +2 -1
  78. package/dist/get.d.ts.map +1 -0
  79. package/dist/get.js +1 -0
  80. package/dist/get.js.map +1 -0
  81. package/dist/getParent.d.ts +2 -1
  82. package/dist/getParent.d.ts.map +1 -0
  83. package/dist/getParent.js +2 -1
  84. package/dist/getParent.js.map +1 -0
  85. package/dist/index.d.ts +15 -14
  86. package/dist/index.d.ts.map +1 -0
  87. package/dist/index.js +15 -14
  88. package/dist/index.js.map +1 -0
  89. package/dist/insert.d.ts +2 -1
  90. package/dist/insert.d.ts.map +1 -0
  91. package/dist/insert.js +3 -2
  92. package/dist/insert.js.map +1 -0
  93. package/dist/move.d.ts +2 -1
  94. package/dist/move.d.ts.map +1 -0
  95. package/dist/move.js +4 -3
  96. package/dist/move.js.map +1 -0
  97. package/dist/remove.d.ts +2 -1
  98. package/dist/remove.d.ts.map +1 -0
  99. package/dist/remove.js +1 -0
  100. package/dist/remove.js.map +1 -0
  101. package/dist/replace.d.ts +2 -1
  102. package/dist/replace.d.ts.map +1 -0
  103. package/dist/replace.js +2 -1
  104. package/dist/replace.js.map +1 -0
  105. package/dist/traverse.d.ts +2 -1
  106. package/dist/traverse.d.ts.map +1 -0
  107. package/dist/traverse.js +1 -0
  108. package/dist/traverse.js.map +1 -0
  109. package/dist/tsconfig.tsbuildinfo +1 -1
  110. package/dist/types.d.ts +1 -0
  111. package/dist/types.d.ts.map +1 -0
  112. package/dist/types.js +1 -0
  113. package/dist/types.js.map +1 -0
  114. package/dist/update.d.ts +2 -1
  115. package/dist/update.d.ts.map +1 -0
  116. package/dist/update.js +3 -2
  117. package/dist/update.js.map +1 -0
  118. package/package.json +8 -8
@@ -0,0 +1,48 @@
1
+ import { describe, test, expect } from 'vitest';
2
+ import replace from '../replace';
3
+ import get from '../get';
4
+ import { createTestTree, createSimpleNode } from './helpers';
5
+ describe('replace', () => {
6
+ test('replaces node with new node', () => {
7
+ const tree = createTestTree();
8
+ const newNode = createSimpleNode('child2', 'Replaced Child 2');
9
+ const result = replace(tree, 'child2', newNode);
10
+ const replaced = get(result, 'child2');
11
+ expect(replaced?.name).toBe('Replaced Child 2');
12
+ });
13
+ test('replaces nested node', () => {
14
+ const tree = createTestTree();
15
+ const newNode = createSimpleNode('grandchild1', 'New Grandchild');
16
+ const result = replace(tree, 'grandchild1', newNode);
17
+ const replaced = get(result, 'grandchild1');
18
+ expect(replaced?.name).toBe('New Grandchild');
19
+ });
20
+ test('can replace with node with different id', () => {
21
+ const tree = createTestTree();
22
+ const newNode = createSimpleNode('new-id', 'New Node');
23
+ const result = replace(tree, 'child2', newNode);
24
+ expect(get(result, 'child2')).toBeNull();
25
+ expect(get(result, 'new-id')?.name).toBe('New Node');
26
+ });
27
+ test('returns unchanged tree if node not found', () => {
28
+ const tree = createTestTree();
29
+ const newNode = createSimpleNode('new-node', 'New Node');
30
+ const result = replace(tree, 'non-existent', newNode);
31
+ expect(result).toBe(tree);
32
+ });
33
+ test('can replace root node', () => {
34
+ const tree = createTestTree();
35
+ const newRoot = createSimpleNode('new-root', 'New Root');
36
+ const result = replace(tree, 'root', newRoot);
37
+ expect(result.id).toBe('new-root');
38
+ expect(result.name).toBe('New Root');
39
+ });
40
+ test('preserves sibling nodes', () => {
41
+ const tree = createTestTree();
42
+ const newNode = createSimpleNode('child2', 'New Child 2');
43
+ const result = replace(tree, 'child2', newNode);
44
+ expect(get(result, 'child1')).not.toBeNull();
45
+ expect(get(result, 'child3')).not.toBeNull();
46
+ });
47
+ });
48
+ //# sourceMappingURL=replace.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace.test.js","sourceRoot":"","sources":["../../src/__tests__/replace.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=traverse.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverse.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/traverse.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ import { describe, test, expect, vi } from 'vitest';
2
+ import traverse from '../traverse';
3
+ import { createTestTree } from './helpers';
4
+ describe('traverse', () => {
5
+ test('traverses all nodes top-down by default', () => {
6
+ const tree = createTestTree();
7
+ const visited = [];
8
+ traverse(tree, (node) => {
9
+ visited.push(node.id);
10
+ });
11
+ expect(visited).toContain('root');
12
+ expect(visited).toContain('child1');
13
+ expect(visited).toContain('grandchild1');
14
+ expect(visited.length).toBe(6);
15
+ });
16
+ test('traverses in top-down order', () => {
17
+ const tree = createTestTree();
18
+ const visited = [];
19
+ traverse(tree, (node) => {
20
+ visited.push(node.id);
21
+ }, 'top-down');
22
+ // Root should come before children
23
+ expect(visited.indexOf('root')).toBeLessThan(visited.indexOf('child1'));
24
+ // Parent should come before grandchildren
25
+ expect(visited.indexOf('child1')).toBeLessThan(visited.indexOf('grandchild1'));
26
+ });
27
+ test('traverses in bottom-up order', () => {
28
+ const tree = createTestTree();
29
+ const visited = [];
30
+ traverse(tree, (node) => {
31
+ visited.push(node.id);
32
+ }, 'bottom-up');
33
+ // Children should come before root
34
+ expect(visited.indexOf('child1')).toBeLessThan(visited.indexOf('root'));
35
+ // Grandchildren should come before parent
36
+ expect(visited.indexOf('grandchild1')).toBeLessThan(visited.indexOf('child1'));
37
+ });
38
+ test('calls callback with node', () => {
39
+ const tree = createTestTree();
40
+ const callback = vi.fn();
41
+ traverse(tree, callback);
42
+ expect(callback).toHaveBeenCalled();
43
+ expect(callback.mock.calls[0][0]).toHaveProperty('id');
44
+ expect(callback.mock.calls[0][0]).toHaveProperty('name');
45
+ });
46
+ test('handles single node tree', () => {
47
+ const tree = { id: 'single', name: 'Single', children: null };
48
+ const visited = [];
49
+ traverse(tree, (node) => {
50
+ visited.push(node.id);
51
+ });
52
+ expect(visited).toEqual(['single']);
53
+ });
54
+ });
55
+ //# sourceMappingURL=traverse.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverse.test.js","sourceRoot":"","sources":["../../src/__tests__/traverse.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEnD,OAAO,QAAQ,MAAM,aAAa,CAAA;AAClC,OAAO,EAAE,cAAc,EAAiB,MAAM,WAAW,CAAA;AAEzD,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QACjC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;QACnC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QACxC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,QAAQ,CACN,IAAI,EACJ,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvB,CAAC,EACD,UAAU,CACX,CAAA;QAED,mCAAmC;QACnC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;QACvE,0CAA0C;QAC1C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAC5C,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAC/B,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACxC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,QAAQ,CACN,IAAI,EACJ,CAAC,IAAI,EAAE,EAAE;YACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvB,CAAC,EACD,WAAW,CACZ,CAAA;QAED,mCAAmC;QACnC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;QACvE,0CAA0C;QAC1C,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CACjD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC1B,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;QAExB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAExB,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,EAAE,CAAA;QACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IAC1D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACpC,MAAM,IAAI,GAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;QACvE,MAAM,OAAO,GAAa,EAAE,CAAA;QAE5B,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvB,CAAC,CAAC,CAAA;QAEF,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=update.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/update.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { describe, test, expect } from 'vitest';
2
+ import update from '../update';
3
+ import get from '../get';
4
+ import { createTestTree } from './helpers';
5
+ describe('update', () => {
6
+ test('updates node properties', () => {
7
+ const tree = createTestTree();
8
+ const result = update(tree, 'child1', { name: 'Updated Child 1' });
9
+ const updated = get(result, 'child1');
10
+ expect(updated?.name).toBe('Updated Child 1');
11
+ });
12
+ test('preserves unchanged properties', () => {
13
+ const tree = createTestTree();
14
+ const result = update(tree, 'child1', { name: 'Updated' });
15
+ const updated = get(result, 'child1');
16
+ expect(updated?.id).toBe('child1');
17
+ expect(updated?.children).toHaveLength(2);
18
+ });
19
+ test('updates nested node', () => {
20
+ const tree = createTestTree();
21
+ const result = update(tree, 'grandchild1', { name: 'Updated Grandchild' });
22
+ const updated = get(result, 'grandchild1');
23
+ expect(updated?.name).toBe('Updated Grandchild');
24
+ });
25
+ test('returns unchanged tree if node not found', () => {
26
+ const tree = createTestTree();
27
+ const result = update(tree, 'non-existent', { name: 'New Name' });
28
+ expect(result).toBe(tree);
29
+ });
30
+ test('can update multiple properties', () => {
31
+ const tree = createTestTree();
32
+ const result = update(tree, 'child1', {
33
+ name: 'Updated',
34
+ children: [],
35
+ });
36
+ const updated = get(result, 'child1');
37
+ expect(updated?.name).toBe('Updated');
38
+ expect(updated?.children).toEqual([]);
39
+ });
40
+ });
41
+ //# sourceMappingURL=update.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.test.js","sourceRoot":"","sources":["../../src/__tests__/update.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/C,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,GAAG,MAAM,QAAQ,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACnC,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAA;QAElE,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACrC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;QAE1D,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACrC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAClC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC/B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAA;QAE1E,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;QAC1C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAEjE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG,cAAc,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE;YACpC,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,EAAE;SACb,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACrC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACrC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
package/dist/add.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- import { type BaseNode } from './types.js';
1
+ import { type BaseNode } from './types';
2
2
  export default function add<T extends BaseNode<T>>(rootNode: T, id: string, newNode: T): T;
3
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../src/add.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC/C,QAAQ,EAAE,CAAC,EACX,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,CAAC,GACT,CAAC,CAQH"}
package/dist/add.js CHANGED
@@ -1,5 +1,5 @@
1
- import get from './get.js';
2
- import insert from './insert.js';
1
+ import get from './get';
2
+ import insert from './insert';
3
3
  export default function add(rootNode, id, newNode) {
4
4
  const parentNode = get(rootNode, id);
5
5
  if (!parentNode || !parentNode.children) {
@@ -7,3 +7,4 @@ export default function add(rootNode, id, newNode) {
7
7
  }
8
8
  return insert(rootNode, id, parentNode.children.length, newNode);
9
9
  }
10
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../src/add.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,MAAM,MAAM,UAAU,CAAA;AAG7B,MAAM,CAAC,OAAO,UAAU,GAAG,CACzB,QAAW,EACX,EAAU,EACV,OAAU;IAEV,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAEpC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAClE,CAAC"}
package/dist/clone.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- import { type BaseNode } from './types.js';
1
+ import { type BaseNode } from './types';
2
2
  export default function clone<T extends BaseNode<T>>(rootNode: T, id: string): T | null;
3
+ //# sourceMappingURL=clone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACjD,QAAQ,EAAE,CAAC,EACX,EAAE,EAAE,MAAM,GACT,CAAC,GAAG,IAAI,CAQV"}
package/dist/clone.js CHANGED
@@ -1,4 +1,4 @@
1
- import get from './get.js';
1
+ import get from './get';
2
2
  export default function clone(rootNode, id) {
3
3
  const node = get(rootNode, id);
4
4
  if (!node) {
@@ -20,3 +20,4 @@ function cloneById(node) {
20
20
  children: newChildren,
21
21
  };
22
22
  }
23
+ //# sourceMappingURL=clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAA;AAGvB,MAAM,CAAC,OAAO,UAAU,KAAK,CAC3B,QAAW,EACX,EAAU;IAEV,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAE9B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC;AAED,SAAS,SAAS,CAAwB,IAAO;IAC/C,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO;YACL,GAAG,IAAI;YACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;SACxB,CAAA;IACH,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAEhD,OAAO;QACL,GAAG,IAAI;QACP,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;QACvB,QAAQ,EAAE,WAAW;KACtB,CAAA;AACH,CAAC"}
package/dist/create.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- import { type BaseNode, type BaseNodeInput } from './types.js';
1
+ import { type BaseNode, type BaseNodeInput } from './types';
2
2
  export default function create<T extends BaseNode<T>>(node: BaseNodeInput<T>): T;
3
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAA;AAE3D,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAClD,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GACrB,CAAC,CAOH"}
package/dist/create.js CHANGED
@@ -5,3 +5,4 @@ export default function create(node) {
5
5
  id,
6
6
  };
7
7
  }
8
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,IAAsB;IAEtB,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IAE9B,OAAO;QACL,GAAG,IAAI;QACP,EAAE;KACE,CAAA;AACR,CAAC"}
package/dist/find.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- import { type BaseNode } from './types.js';
1
+ import { type BaseNode } from './types';
2
2
  export default function find<T extends BaseNode<T>>(rootNode: T, condition: (node: T) => boolean): T | null;
3
+ //# sourceMappingURL=find.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAChD,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAC9B,CAAC,GAAG,IAAI,CAgBV"}
package/dist/find.js CHANGED
@@ -12,3 +12,4 @@ export default function find(rootNode, condition) {
12
12
  }
13
13
  return null;
14
14
  }
15
+ //# sourceMappingURL=find.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../src/find.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,IAAI,CAC1B,QAAW,EACX,SAA+B;IAE/B,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;YAEpC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAA;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
package/dist/findAll.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- import { type BaseNode } from './types.js';
1
+ import { type BaseNode } from './types';
2
2
  export default function findAll<T extends BaseNode<T>>(rootNode: T, condition: (node: T) => boolean): Array<T>;
3
+ //# sourceMappingURL=findAll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findAll.d.ts","sourceRoot":"","sources":["../src/findAll.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACnD,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,GAC9B,KAAK,CAAC,CAAC,CAAC,CAcV"}
package/dist/findAll.js CHANGED
@@ -10,3 +10,4 @@ export default function findAll(rootNode, condition) {
10
10
  }
11
11
  return nodes;
12
12
  }
13
+ //# sourceMappingURL=findAll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findAll.js","sourceRoot":"","sources":["../src/findAll.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,QAAW,EACX,SAA+B;IAE/B,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtB,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC"}
package/dist/get.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- import { type BaseNode } from './types.js';
1
+ import { type BaseNode } from './types';
2
2
  export default function get<T extends BaseNode<T>>(rootNode: T, id: string): T | null;
3
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../src/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC/C,QAAQ,EAAE,CAAC,EACX,EAAE,EAAE,MAAM,GACT,CAAC,GAAG,IAAI,CAgBV"}
package/dist/get.js CHANGED
@@ -12,3 +12,4 @@ export default function get(rootNode, id) {
12
12
  }
13
13
  return null;
14
14
  }
15
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../src/get.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,GAAG,CACzB,QAAW,EACX,EAAU;IAEV,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACrC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YAE5B,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,MAAM,CAAA;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,2 +1,3 @@
1
- import { type BaseNode } from './types.js';
1
+ import { type BaseNode } from './types';
2
2
  export default function getParent<T extends BaseNode<T>>(rootNode: T, id: string): T | null;
3
+ //# sourceMappingURL=getParent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getParent.d.ts","sourceRoot":"","sources":["../src/getParent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACrD,QAAQ,EAAE,CAAC,EACX,EAAE,EAAE,MAAM,GACT,CAAC,GAAG,IAAI,CAIV"}
package/dist/getParent.js CHANGED
@@ -1,4 +1,5 @@
1
- import find from './find.js';
1
+ import find from './find';
2
2
  export default function getParent(rootNode, id) {
3
3
  return find(rootNode, (node) => Boolean(node.children && node.children.find((node) => node.id === id)));
4
4
  }
5
+ //# sourceMappingURL=getParent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getParent.js","sourceRoot":"","sources":["../src/getParent.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,QAAQ,CAAA;AAGzB,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,QAAW,EACX,EAAU;IAEV,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC7B,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CACvE,CAAA;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,14 +1,15 @@
1
- export { default as add } from './add.js';
2
- export { default as clone } from './clone.js';
3
- export { default as create } from './create.js';
4
- export { default as find } from './find.js';
5
- export { default as findAll } from './findAll.js';
6
- export { default as get } from './get.js';
7
- export { default as getParent } from './getParent.js';
8
- export { default as insert } from './insert.js';
9
- export { default as move } from './move.js';
10
- export { default as remove } from './remove.js';
11
- export { default as replace } from './replace.js';
12
- export { default as traverse } from './traverse.js';
13
- export { default as update } from './update.js';
14
- export * from './types.js';
1
+ export { default as add } from './add';
2
+ export { default as clone } from './clone';
3
+ export { default as create } from './create';
4
+ export { default as find } from './find';
5
+ export { default as findAll } from './findAll';
6
+ export { default as get } from './get';
7
+ export { default as getParent } from './getParent';
8
+ export { default as insert } from './insert';
9
+ export { default as move } from './move';
10
+ export { default as remove } from './remove';
11
+ export { default as replace } from './replace';
12
+ export { default as traverse } from './traverse';
13
+ export { default as update } from './update';
14
+ export * from './types';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,cAAc,SAAS,CAAA"}
package/dist/index.js CHANGED
@@ -1,14 +1,15 @@
1
- export { default as add } from './add.js';
2
- export { default as clone } from './clone.js';
3
- export { default as create } from './create.js';
4
- export { default as find } from './find.js';
5
- export { default as findAll } from './findAll.js';
6
- export { default as get } from './get.js';
7
- export { default as getParent } from './getParent.js';
8
- export { default as insert } from './insert.js';
9
- export { default as move } from './move.js';
10
- export { default as remove } from './remove.js';
11
- export { default as replace } from './replace.js';
12
- export { default as traverse } from './traverse.js';
13
- export { default as update } from './update.js';
14
- export * from './types.js';
1
+ export { default as add } from './add';
2
+ export { default as clone } from './clone';
3
+ export { default as create } from './create';
4
+ export { default as find } from './find';
5
+ export { default as findAll } from './findAll';
6
+ export { default as get } from './get';
7
+ export { default as getParent } from './getParent';
8
+ export { default as insert } from './insert';
9
+ export { default as move } from './move';
10
+ export { default as remove } from './remove';
11
+ export { default as replace } from './replace';
12
+ export { default as traverse } from './traverse';
13
+ export { default as update } from './update';
14
+ export * from './types';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,cAAc,SAAS,CAAA"}
package/dist/insert.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- import { type BaseNode } from './types.js';
1
+ import { type BaseNode } from './types';
2
2
  export default function insert<T extends BaseNode<T>>(rootNode: T, id: string, index: number, newNode: T): T;
3
+ //# sourceMappingURL=insert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAClD,QAAQ,EAAE,CAAC,EACX,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,GACT,CAAC,CAiBH"}
package/dist/insert.js CHANGED
@@ -1,5 +1,5 @@
1
- import get from './get.js';
2
- import replace from './replace.js';
1
+ import get from './get';
2
+ import replace from './replace';
3
3
  export default function insert(rootNode, id, index, newNode) {
4
4
  const parentNode = get(rootNode, id);
5
5
  if (!parentNode || !parentNode.children) {
@@ -15,3 +15,4 @@ export default function insert(rootNode, id, index, newNode) {
15
15
  children,
16
16
  });
17
17
  }
18
+ //# sourceMappingURL=insert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insert.js","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,OAAO,MAAM,WAAW,CAAA;AAG/B,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,QAAW,EACX,EAAU,EACV,KAAa,EACb,OAAU;IAEV,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAEpC,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxC,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG;QACf,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;QACtC,OAAO;QACP,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;KACpC,CAAA;IAED,OAAO,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE;QAC3B,GAAG,UAAU;QACb,QAAQ;KACT,CAAC,CAAA;AACJ,CAAC"}
package/dist/move.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- import { type BaseNode } from './types.js';
1
+ import { type BaseNode } from './types';
2
2
  export default function move<T extends BaseNode<T>>(rootNode: T, id: string, parentId: string, index?: number): T;
3
+ //# sourceMappingURL=move.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move.d.ts","sourceRoot":"","sources":["../src/move.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAChD,QAAQ,EAAE,CAAC,EACX,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,CAAC,CAeH"}
package/dist/move.js CHANGED
@@ -1,6 +1,6 @@
1
- import get from './get.js';
2
- import insert from './insert.js';
3
- import remove from './remove.js';
1
+ import get from './get';
2
+ import insert from './insert';
3
+ import remove from './remove';
4
4
  export default function move(rootNode, id, parentId, index) {
5
5
  const node = get(rootNode, id);
6
6
  const parentNode = get(rootNode, parentId);
@@ -10,3 +10,4 @@ export default function move(rootNode, id, parentId, index) {
10
10
  const removedNode = remove(rootNode, id);
11
11
  return insert(removedNode, parentId, index ?? parentNode.children.length, node);
12
12
  }
13
+ //# sourceMappingURL=move.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move.js","sourceRoot":"","sources":["../src/move.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAA;AACvB,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,MAAM,MAAM,UAAU,CAAA;AAG7B,MAAM,CAAC,OAAO,UAAU,IAAI,CAC1B,QAAW,EACX,EAAU,EACV,QAAgB,EAChB,KAAc;IAEd,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAC9B,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAE1C,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACjD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IACxC,OAAO,MAAM,CACX,WAAW,EACX,QAAQ,EACR,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,EACnC,IAAI,CACL,CAAA;AACH,CAAC"}
package/dist/remove.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- import { type BaseNode } from './types.js';
1
+ import { type BaseNode } from './types';
2
2
  export default function remove<T extends BaseNode<T>>(rootNode: T, id: string): T;
3
+ //# sourceMappingURL=remove.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.d.ts","sourceRoot":"","sources":["../src/remove.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAClD,QAAQ,EAAE,CAAC,EACX,EAAE,EAAE,MAAM,GACT,CAAC,CAEH"}
package/dist/remove.js CHANGED
@@ -12,3 +12,4 @@ function removeById(rootNode, id) {
12
12
  children,
13
13
  };
14
14
  }
15
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../src/remove.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAI1C,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,QAAW,EACX,EAAU;IAEV,OAAO,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AACjC,CAAC;AAED,SAAS,UAAU,CAAwB,QAAW,EAAE,EAAU;IAChE,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAClB,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EACnD,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAC/B,CAAA;IAED,OAAO;QACL,GAAG,QAAQ;QACX,QAAQ;KACT,CAAA;AACH,CAAC"}
package/dist/replace.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- import { type BaseNode } from './types.js';
1
+ import { type BaseNode } from './types';
2
2
  export default function replace<T extends BaseNode<T>>(rootNode: T, id: string, newNode: T): T;
3
+ //# sourceMappingURL=replace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../src/replace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACnD,QAAQ,EAAE,CAAC,EACX,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,CAAC,GACT,CAAC,CAQH"}
package/dist/replace.js CHANGED
@@ -1,4 +1,4 @@
1
- import get from './get.js';
1
+ import get from './get';
2
2
  export default function replace(rootNode, id, newNode) {
3
3
  const node = get(rootNode, id);
4
4
  if (!node) {
@@ -19,3 +19,4 @@ function replaceById(rootNode, id, newNode) {
19
19
  children,
20
20
  };
21
21
  }
22
+ //# sourceMappingURL=replace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace.js","sourceRoot":"","sources":["../src/replace.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAA;AAGvB,MAAM,CAAC,OAAO,UAAU,OAAO,CAC7B,QAAW,EACX,EAAU,EACV,OAAU;IAEV,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAE9B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAA;AAC3C,CAAC;AAED,SAAS,WAAW,CAClB,QAAW,EACX,EAAU,EACV,OAAU;IAEV,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACvB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC9C,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAC/B,CAAA;IAED,OAAO;QACL,GAAG,QAAQ;QACX,QAAQ;KACT,CAAA;AACH,CAAC"}
@@ -1,2 +1,3 @@
1
- import { type BaseNode } from './types.js';
1
+ import { type BaseNode } from './types';
2
2
  export default function traverse<T extends BaseNode<T>>(rootNode: T, callback: (node: T) => void, type?: 'top-down' | 'bottom-up'): void;
3
+ //# sourceMappingURL=traverse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../src/traverse.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EACpD,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAC3B,IAAI,GAAE,UAAU,GAAG,WAAwB,QAa5C"}
package/dist/traverse.js CHANGED
@@ -10,3 +10,4 @@ export default function traverse(rootNode, callback, type = 'top-down') {
10
10
  callback(rootNode);
11
11
  }
12
12
  }
13
+ //# sourceMappingURL=traverse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../src/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAInC,MAAM,CAAC,OAAO,UAAU,QAAQ,CAC9B,QAAW,EACX,QAA2B,EAC3B,OAAiC,UAAU;IAE3C,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACpB,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QACzB,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACpB,CAAC;AACH,CAAC"}