data-structure-typed 2.2.3 → 2.2.5

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 (36) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/README.md +70 -11
  3. package/dist/cjs/index.cjs +341 -75
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs-legacy/index.cjs +343 -75
  6. package/dist/cjs-legacy/index.cjs.map +1 -1
  7. package/dist/esm/index.mjs +341 -75
  8. package/dist/esm/index.mjs.map +1 -1
  9. package/dist/esm-legacy/index.mjs +343 -75
  10. package/dist/esm-legacy/index.mjs.map +1 -1
  11. package/dist/types/data-structures/binary-tree/avl-tree-counter.d.ts +2 -2
  12. package/dist/types/data-structures/binary-tree/avl-tree-multi-map.d.ts +5 -5
  13. package/dist/types/data-structures/binary-tree/avl-tree.d.ts +2 -3
  14. package/dist/types/data-structures/binary-tree/bst.d.ts +142 -28
  15. package/dist/types/data-structures/binary-tree/red-black-tree.d.ts +2 -2
  16. package/dist/types/data-structures/binary-tree/tree-counter.d.ts +4 -5
  17. package/dist/types/data-structures/binary-tree/tree-multi-map.d.ts +5 -5
  18. package/dist/types/types/data-structures/binary-tree/bst.d.ts +5 -5
  19. package/dist/umd/data-structure-typed.js +343 -75
  20. package/dist/umd/data-structure-typed.js.map +1 -1
  21. package/dist/umd/data-structure-typed.min.js +3 -3
  22. package/dist/umd/data-structure-typed.min.js.map +1 -1
  23. package/package.json +2 -2
  24. package/src/data-structures/binary-tree/avl-tree-counter.ts +1 -2
  25. package/src/data-structures/binary-tree/avl-tree-multi-map.ts +9 -8
  26. package/src/data-structures/binary-tree/avl-tree.ts +4 -5
  27. package/src/data-structures/binary-tree/bst.ts +495 -85
  28. package/src/data-structures/binary-tree/red-black-tree.ts +1 -2
  29. package/src/data-structures/binary-tree/tree-counter.ts +5 -7
  30. package/src/data-structures/binary-tree/tree-multi-map.ts +7 -8
  31. package/src/types/data-structures/binary-tree/bst.ts +5 -5
  32. package/test/unit/data-structures/binary-tree/avl-tree-counter.test.ts +2 -2
  33. package/test/unit/data-structures/binary-tree/bst.test.ts +459 -8
  34. package/test/unit/data-structures/binary-tree/overall.test.ts +2 -2
  35. package/test/unit/data-structures/binary-tree/red-black-tree.test.ts +1 -1
  36. package/test/unit/data-structures/binary-tree/tree-multi-map.test.ts +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "data-structure-typed",
3
- "version": "2.2.3",
3
+ "version": "2.2.5",
4
4
  "description": "Standard data structure",
5
5
  "browser": "dist/umd/data-structure-typed.min.js",
6
6
  "umd:main": "dist/umd/data-structure-typed.min.js",
@@ -100,7 +100,7 @@
100
100
  "benchmark": "^2.1.4",
101
101
  "binary-tree-typed": "^1.54.3",
102
102
  "bst-typed": "^1.54.3",
103
- "data-structure-typed": "^2.2.2",
103
+ "data-structure-typed": "^2.2.4",
104
104
  "dependency-cruiser": "^16.5.0",
105
105
  "doctoc": "^2.2.1",
106
106
  "eslint": "^9.13.0",
@@ -9,7 +9,6 @@
9
9
  import type {
10
10
  AVLTreeCounterOptions,
11
11
  BinaryTreeDeleteResult,
12
- BinaryTreeOptions,
13
12
  BSTNOptKeyOrNode,
14
13
  EntryCallback,
15
14
  FamilyPosition,
@@ -404,7 +403,7 @@ export class AVLTreeCounter<K = any, V = any, R = any> extends AVLTree<K, V, R>
404
403
  */
405
404
  override map<MK = K, MV = V, MR = any>(
406
405
  callback: EntryCallback<K, V | undefined, [MK, MV]>,
407
- options?: Partial<BinaryTreeOptions<MK, MV, MR>>,
406
+ options?: Partial<AVLTreeCounterOptions<MK, MV, MR>>,
408
407
  thisArg?: unknown
409
408
  ): AVLTreeCounter<MK, MV, MR> {
410
409
  const out = this._createLike<MK, MV, MR>([], options);
@@ -8,7 +8,6 @@
8
8
 
9
9
  import type {
10
10
  AVLTreeMultiMapOptions,
11
- AVLTreeOptions,
12
11
  BTNOptKeyOrNull,
13
12
  ElemOf,
14
13
  EntryCallback,
@@ -354,7 +353,7 @@ export class AVLTreeMultiMap<K = any, V = any, R = any> extends AVLTree<K, V[],
354
353
  */
355
354
  override map<MK = K, MVArr extends unknown[] = V[], MR = any>(
356
355
  callback: EntryCallback<K, V[] | undefined, [MK, MVArr]>,
357
- options?: Partial<AVLTreeOptions<MK, MVArr, MR>>,
356
+ options?: Partial<AVLTreeMultiMapOptions<MK, MVArr, MR>>,
358
357
  thisArg?: unknown
359
358
  ): AVLTreeMultiMap<MK, ElemOf<MVArr>, MR>;
360
359
 
@@ -371,7 +370,7 @@ export class AVLTreeMultiMap<K = any, V = any, R = any> extends AVLTree<K, V[],
371
370
  */
372
371
  override map<MK = K, MV = V[], MR = any>(
373
372
  callback: EntryCallback<K, V[] | undefined, [MK, MV]>,
374
- options?: Partial<AVLTreeOptions<MK, MV, MR>>,
373
+ options?: Partial<AVLTreeMultiMapOptions<MK, MV, MR>>,
375
374
  thisArg?: unknown
376
375
  ): AVLTree<MK, MV, MR>;
377
376
 
@@ -388,7 +387,7 @@ export class AVLTreeMultiMap<K = any, V = any, R = any> extends AVLTree<K, V[],
388
387
  */
389
388
  override map<MK, MV, MR extends object>(
390
389
  callback: EntryCallback<K, V[] | undefined, [MK, MV]>,
391
- options?: Partial<AVLTreeOptions<MK, MV, MR>>,
390
+ options?: Partial<AVLTreeMultiMapOptions<MK, MV, MR>>,
392
391
  thisArg?: unknown
393
392
  ): AVLTree<MK, MV, MR> {
394
393
  const out = this._createLike<MK, MV, MR>([], options);
@@ -406,10 +405,12 @@ export class AVLTreeMultiMap<K = any, V = any, R = any> extends AVLTree<K, V[],
406
405
  * @param [options] - Optional constructor options for the like-kind instance.
407
406
  * @returns An empty like-kind instance.
408
407
  */
409
- protected override _createInstance<TK = K, TV = V, TR = R>(options?: Partial<AVLTreeOptions<TK, TV, TR>>): this {
408
+ protected override _createInstance<TK = K, TV = V, TR = R>(
409
+ options?: Partial<AVLTreeMultiMapOptions<TK, TV, TR>>
410
+ ): this {
410
411
  const Ctor = this.constructor as unknown as new (
411
412
  iter?: Iterable<TK | AVLTreeNode<TK, TV> | [TK | null | undefined, TV | undefined] | null | undefined | TR>,
412
- opts?: AVLTreeOptions<TK, TV, TR>
413
+ opts?: AVLTreeMultiMapOptions<TK, TV, TR>
413
414
  ) => AVLTree<TK, TV, TR>;
414
415
  return new Ctor([], { ...(this._snapshotOptions?.<TK, TV, TR>() ?? {}), ...(options ?? {}) }) as unknown as this;
415
416
  }
@@ -426,11 +427,11 @@ export class AVLTreeMultiMap<K = any, V = any, R = any> extends AVLTree<K, V[],
426
427
  */
427
428
  protected override _createLike<TK = K, TV = V, TR = R>(
428
429
  iter: Iterable<TK | AVLTreeNode<TK, TV> | [TK | null | undefined, TV | undefined] | null | undefined | TR> = [],
429
- options?: Partial<AVLTreeOptions<TK, TV, TR>>
430
+ options?: Partial<AVLTreeMultiMapOptions<TK, TV, TR>>
430
431
  ): AVLTree<TK, TV, TR> {
431
432
  const Ctor = this.constructor as unknown as new (
432
433
  iter?: Iterable<TK | AVLTreeNode<TK, TV> | [TK | null | undefined, TV | undefined] | null | undefined | TR>,
433
- opts?: AVLTreeOptions<TK, TV, TR>
434
+ opts?: AVLTreeMultiMapOptions<TK, TV, TR>
434
435
  ) => AVLTree<TK, TV, TR>;
435
436
  return new Ctor(iter, { ...(this._snapshotOptions?.<TK, TV, TR>() ?? {}), ...(options ?? {}) });
436
437
  }
@@ -17,7 +17,6 @@ import type {
17
17
  IterationType,
18
18
  RBTNColor
19
19
  } from '../../types';
20
- import { BSTOptions } from '../../types';
21
20
  import { IBinaryTree } from '../../interfaces';
22
21
 
23
22
  /**
@@ -512,10 +511,10 @@ export class AVLTree<K = any, V = any, R = any> extends BST<K, V, R> implements
512
511
  * @param [options] - Options for the new tree.
513
512
  * @returns A new, empty tree.
514
513
  */
515
- protected override _createInstance<TK = K, TV = V, TR = R>(options?: Partial<BSTOptions<TK, TV, TR>>): this {
514
+ protected override _createInstance<TK = K, TV = V, TR = R>(options?: Partial<AVLTreeOptions<TK, TV, TR>>): this {
516
515
  const Ctor = this.constructor as unknown as new (
517
516
  iter?: Iterable<TK | AVLTreeNode<TK, TV> | [TK | null | undefined, TV | undefined] | null | undefined | TR>,
518
- opts?: BSTOptions<TK, TV, TR>
517
+ opts?: AVLTreeOptions<TK, TV, TR>
519
518
  ) => this;
520
519
  return new Ctor([], { ...this._snapshotOptions<TK, TV, TR>(), ...(options ?? {}) }) as unknown as this;
521
520
  }
@@ -531,11 +530,11 @@ export class AVLTree<K = any, V = any, R = any> extends BST<K, V, R> implements
531
530
  */
532
531
  protected override _createLike<TK = K, TV = V, TR = R>(
533
532
  iter: Iterable<TK | AVLTreeNode<TK, TV> | [TK | null | undefined, TV | undefined] | null | undefined | TR> = [],
534
- options?: Partial<BSTOptions<TK, TV, TR>>
533
+ options?: Partial<AVLTreeOptions<TK, TV, TR>>
535
534
  ): AVLTree<TK, TV, TR> {
536
535
  const Ctor = this.constructor as unknown as new (
537
536
  iter?: Iterable<TK | AVLTreeNode<TK, TV> | [TK | null | undefined, TV | undefined] | null | undefined | TR>,
538
- opts?: BSTOptions<TK, TV, TR>
537
+ opts?: AVLTreeOptions<TK, TV, TR>
539
538
  ) => AVLTree<TK, TV, TR>;
540
539
  return new Ctor(iter, { ...this._snapshotOptions<TK, TV, TR>(), ...(options ?? {}) });
541
540
  }