@pawells/math-extended 1.0.1 → 1.0.4

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 (94) hide show
  1. package/README.md +24 -1
  2. package/build/index.d.ts +3 -0
  3. package/build/index.d.ts.map +1 -1
  4. package/build/index.js +5 -0
  5. package/build/index.js.map +1 -1
  6. package/build/quaternions/asserts.d.ts +1 -1
  7. package/build/quaternions/asserts.d.ts.map +1 -1
  8. package/build/quaternions/asserts.js +1 -1
  9. package/build/quaternions/asserts.js.map +1 -1
  10. package/package.json +16 -4
  11. package/build/angles.spec.d.ts +0 -2
  12. package/build/angles.spec.d.ts.map +0 -1
  13. package/build/angles.spec.js +0 -147
  14. package/build/angles.spec.js.map +0 -1
  15. package/build/clamp.spec.d.ts +0 -2
  16. package/build/clamp.spec.d.ts.map +0 -1
  17. package/build/clamp.spec.js +0 -19
  18. package/build/clamp.spec.js.map +0 -1
  19. package/build/documentation-validation.spec.d.ts +0 -11
  20. package/build/documentation-validation.spec.d.ts.map +0 -1
  21. package/build/documentation-validation.spec.js +0 -401
  22. package/build/documentation-validation.spec.js.map +0 -1
  23. package/build/interpolation.spec.d.ts +0 -2
  24. package/build/interpolation.spec.d.ts.map +0 -1
  25. package/build/interpolation.spec.js +0 -480
  26. package/build/interpolation.spec.js.map +0 -1
  27. package/build/matrices/arithmetic.spec.d.ts +0 -2
  28. package/build/matrices/arithmetic.spec.d.ts.map +0 -1
  29. package/build/matrices/arithmetic.spec.js +0 -915
  30. package/build/matrices/arithmetic.spec.js.map +0 -1
  31. package/build/matrices/asserts.spec.d.ts +0 -2
  32. package/build/matrices/asserts.spec.d.ts.map +0 -1
  33. package/build/matrices/asserts.spec.js +0 -565
  34. package/build/matrices/asserts.spec.js.map +0 -1
  35. package/build/matrices/core.spec.d.ts +0 -2
  36. package/build/matrices/core.spec.d.ts.map +0 -1
  37. package/build/matrices/core.spec.js +0 -634
  38. package/build/matrices/core.spec.js.map +0 -1
  39. package/build/matrices/decompositions.spec.d.ts +0 -2
  40. package/build/matrices/decompositions.spec.d.ts.map +0 -1
  41. package/build/matrices/decompositions.spec.js +0 -195
  42. package/build/matrices/decompositions.spec.js.map +0 -1
  43. package/build/matrices/linear-algebra.spec.d.ts +0 -2
  44. package/build/matrices/linear-algebra.spec.d.ts.map +0 -1
  45. package/build/matrices/linear-algebra.spec.js +0 -355
  46. package/build/matrices/linear-algebra.spec.js.map +0 -1
  47. package/build/matrices/normalization.spec.d.ts +0 -2
  48. package/build/matrices/normalization.spec.d.ts.map +0 -1
  49. package/build/matrices/normalization.spec.js +0 -335
  50. package/build/matrices/normalization.spec.js.map +0 -1
  51. package/build/matrices/transformations.spec.d.ts +0 -2
  52. package/build/matrices/transformations.spec.d.ts.map +0 -1
  53. package/build/matrices/transformations.spec.js +0 -755
  54. package/build/matrices/transformations.spec.js.map +0 -1
  55. package/build/quaternions/asserts.spec.d.ts +0 -2
  56. package/build/quaternions/asserts.spec.d.ts.map +0 -1
  57. package/build/quaternions/asserts.spec.js +0 -320
  58. package/build/quaternions/asserts.spec.js.map +0 -1
  59. package/build/quaternions/conversions.spec.d.ts +0 -2
  60. package/build/quaternions/conversions.spec.d.ts.map +0 -1
  61. package/build/quaternions/conversions.spec.js +0 -344
  62. package/build/quaternions/conversions.spec.js.map +0 -1
  63. package/build/quaternions/core.spec.d.ts +0 -2
  64. package/build/quaternions/core.spec.d.ts.map +0 -1
  65. package/build/quaternions/core.spec.js +0 -294
  66. package/build/quaternions/core.spec.js.map +0 -1
  67. package/build/quaternions/interpolation.spec.d.ts +0 -2
  68. package/build/quaternions/interpolation.spec.d.ts.map +0 -1
  69. package/build/quaternions/interpolation.spec.js +0 -64
  70. package/build/quaternions/interpolation.spec.js.map +0 -1
  71. package/build/quaternions/predefined.spec.d.ts +0 -2
  72. package/build/quaternions/predefined.spec.d.ts.map +0 -1
  73. package/build/quaternions/predefined.spec.js +0 -35
  74. package/build/quaternions/predefined.spec.js.map +0 -1
  75. package/build/random.spec.d.ts +0 -2
  76. package/build/random.spec.d.ts.map +0 -1
  77. package/build/random.spec.js +0 -267
  78. package/build/random.spec.js.map +0 -1
  79. package/build/vectors/asserts.spec.d.ts +0 -2
  80. package/build/vectors/asserts.spec.d.ts.map +0 -1
  81. package/build/vectors/asserts.spec.js +0 -260
  82. package/build/vectors/asserts.spec.js.map +0 -1
  83. package/build/vectors/core.spec.d.ts +0 -2
  84. package/build/vectors/core.spec.d.ts.map +0 -1
  85. package/build/vectors/core.spec.js +0 -343
  86. package/build/vectors/core.spec.js.map +0 -1
  87. package/build/vectors/interpolation.spec.d.ts +0 -2
  88. package/build/vectors/interpolation.spec.d.ts.map +0 -1
  89. package/build/vectors/interpolation.spec.js +0 -378
  90. package/build/vectors/interpolation.spec.js.map +0 -1
  91. package/build/vectors/predefined.spec.d.ts +0 -2
  92. package/build/vectors/predefined.spec.d.ts.map +0 -1
  93. package/build/vectors/predefined.spec.js +0 -333
  94. package/build/vectors/predefined.spec.js.map +0 -1
package/README.md CHANGED
@@ -19,7 +19,9 @@ yarn add @pawells/math-extended
19
19
 
20
20
  ## Usage
21
21
 
22
- All exports are available as individual named imports for tree-shaking.
22
+ All exports are available as individual named imports for tree-shaking, or grouped via namespace imports for convenience.
23
+
24
+ ### Direct Named Imports (Tree-Shaking Friendly)
23
25
 
24
26
  ```typescript
25
27
  import {
@@ -41,6 +43,27 @@ const v = SmoothStep(0, 10, 0.5); // 5
41
43
  const rad = DegreesToRadians(180); // Math.PI
42
44
  ```
43
45
 
46
+ ### Namespace Imports (Grouped)
47
+
48
+ Import related utilities together using namespace imports:
49
+
50
+ ```typescript
51
+ import { VectorUtils, MatrixUtils, QuaternionUtils } from '@pawells/math-extended';
52
+
53
+ // Access utilities via namespace
54
+ VectorUtils.VectorAdd([1, 0, 0], [0, 1, 0]);
55
+ MatrixUtils.MatrixMultiply(matA, matB);
56
+ QuaternionUtils.QuaternionSLERP(q1, q2, 0.5);
57
+ ```
58
+
59
+ ### Import Patterns
60
+
61
+ | Pattern | Best For | Example |
62
+ |---------|----------|---------|
63
+ | **Direct named** | Tree-shaking, small imports | `import { VectorAdd } from '@pawells/math-extended'` |
64
+ | **Namespace** | Grouping related functions | `import { VectorUtils } from '@pawells/math-extended'` |
65
+ | **Mixed** | Flexibility | Both patterns together |
66
+
44
67
  ## API
45
68
 
46
69
  ### Angles
package/build/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
+ export * as VectorUtils from './vectors/index.js';
2
+ export * as MatrixUtils from './matrices/index.js';
3
+ export * as QuaternionUtils from './quaternions/index.js';
1
4
  export * from './angles.js';
2
5
  export * from './clamp.js';
3
6
  export * from './interpolation.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAG1D,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
package/build/index.js CHANGED
@@ -1,3 +1,8 @@
1
+ // Namespace exports for grouped imports
2
+ export * as VectorUtils from './vectors/index.js';
3
+ export * as MatrixUtils from './matrices/index.js';
4
+ export * as QuaternionUtils from './quaternions/index.js';
5
+ // Direct named exports for tree-shaking
1
6
  export * from './angles.js';
2
7
  export * from './clamp.js';
3
8
  export * from './interpolation.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,wCAAwC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
@@ -9,7 +9,7 @@ import { TQuaternion, TEulerAngles, TAxisAngle, TRotationMatrix } from './types.
9
9
  * Extends the base VectorError to maintain consistency with vector operations.
10
10
  */
11
11
  export declare class QuaternionError extends VectorError {
12
- constructor(message: string);
12
+ constructor(message?: string);
13
13
  }
14
14
  /**
15
15
  * Validates that a value is a proper quaternion.
@@ -1 +1 @@
1
- {"version":3,"file":"asserts.d.ts","sourceRoot":"","sources":["../../src/quaternions/asserts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAgB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpF;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBACnC,OAAO,EAAE,MAAM;CAI3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,UAAU,IAAI,WAAW,CAkB9H;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAE,MAAa,GAAG,IAAI,CASlG;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAiBtH;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAiB1H;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,MAAM,IAAI,eAAe,CA0B9H;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,WAAW,IAAI,WAAW,EAAE,CAerI"}
1
+ {"version":3,"file":"asserts.d.ts","sourceRoot":"","sources":["../../src/quaternions/asserts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAgB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpF;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBACnC,OAAO,GAAE,MAAW;CAIhC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,UAAU,IAAI,WAAW,CAkB9H;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,GAAE,MAAa,GAAG,IAAI,CASlG;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAiBtH;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,SAAS,IAAI,UAAU,CAiB1H;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,MAAM,IAAI,eAAe,CA0B9H;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,WAAW,IAAI,WAAW,EAAE,CAerI"}
@@ -8,7 +8,7 @@ import { AssertVector, VectorError } from '../vectors/asserts.js';
8
8
  * Extends the base VectorError to maintain consistency with vector operations.
9
9
  */
10
10
  export class QuaternionError extends VectorError {
11
- constructor(message) {
11
+ constructor(message = '') {
12
12
  super(message);
13
13
  this.name = 'QuaternionError';
14
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"asserts.js","sourceRoot":"","sources":["../../src/quaternions/asserts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asserts.js","sourceRoot":"","sources":["../../src/quaternions/asserts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGlE;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC/C,YAAY,UAAkB,EAAE;QAC/B,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAC/B,CAAC;CACD;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAmB,EAAE,UAAmC,EAAE;IAC1F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,eAAe,CAAC,6BAA6B,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,eAAe,CAAC,kDAAkD,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,qDAAqD;IACrD,IAAI,CAAC;QACJ,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAAuB,EAAE,YAAoB,IAAI;IAC3F,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE7B,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEnE,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,eAAe,CAAC,kEAAkE,SAAS,EAAE,CAAC,CAAC;IAC1G,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc,EAAE,UAAmC,EAAE;IACtF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,eAAe,CAAC,+BAA+B,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,eAAe,CAAC,oDAAoD,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,CAAC;QACJ,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,eAAe,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,SAAkB,EAAE,UAAmC,EAAE;IACxF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CAAC,6BAA6B,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CAAC,kDAAkD,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,IAAI,CAAC;QACJ,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YAClC,MAAM,IAAI,eAAe,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAe,EAAE,UAAmC,EAAE;IAC1F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CAAC,kCAAkC,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,eAAe,CAAC,iDAAiD,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,oBAAoB;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,eAAe,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CAAC,uBAAuB,CAAC,sCAAsC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7G,CAAC;QACD,IAAI,CAAC;YACJ,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBAClC,MAAM,IAAI,eAAe,CAAC,+BAA+B,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;AACF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAsB,EAAE,UAAmC,EAAE;IAC9F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,eAAe,CAAC,8BAA8B,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC;YACJ,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBACtC,MAAM,IAAI,eAAe,CAAC,+BAA+B,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,12 +1,19 @@
1
1
  {
2
2
  "name": "@pawells/math-extended",
3
3
  "displayName": "Math Extended",
4
- "version": "1.0.1",
4
+ "version": "1.0.4",
5
5
  "description": "Shared TypeScript math library — vectors, matrices, quaternions, interpolation, angles, and random utilities. ESM-only.",
6
6
  "type": "module",
7
7
  "main": "./build/index.js",
8
+ "types": "./build/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./build/index.d.ts",
12
+ "import": "./build/index.js"
13
+ }
14
+ },
8
15
  "scripts": {
9
- "build": "tsc",
16
+ "build": "tsc --project tsconfig.build.json",
10
17
  "start": "node build/index.js",
11
18
  "dev": "tsc && node build/index.js",
12
19
  "watch": "tsc --watch",
@@ -63,8 +70,13 @@
63
70
  "engines": {
64
71
  "node": ">=24.0.0"
65
72
  },
73
+ "packageManager": "yarn@4.12.0",
66
74
  "files": [
67
- "build/",
75
+ "build/**/*.js",
76
+ "build/**/*.d.ts",
77
+ "build/**/*.js.map",
78
+ "build/**/*.d.ts.map",
79
+ "!build/**/*.test.*",
68
80
  "README.md",
69
81
  "LICENSE",
70
82
  ".env.example"
@@ -72,4 +84,4 @@
72
84
  "publishConfig": {
73
85
  "access": "public"
74
86
  }
75
- }
87
+ }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=angles.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angles.spec.d.ts","sourceRoot":"","sources":["../src/angles.spec.ts"],"names":[],"mappings":""}
@@ -1,147 +0,0 @@
1
- import { DegreesToRadians, RadiansToDegrees, FormatRadians, NormalizeRadians, NormalizeDegrees, } from './angles.ts';
2
- describe('Math Extended > Angles', () => {
3
- test('Degrees to Radians', () => {
4
- expect(DegreesToRadians(0)).toBe(0);
5
- expect(DegreesToRadians(90)).toBe(Math.PI / 2);
6
- expect(DegreesToRadians(180)).toBe(Math.PI);
7
- expect(DegreesToRadians(270)).toBe((3 * Math.PI) / 2);
8
- expect(DegreesToRadians(360)).toBe(2 * Math.PI);
9
- expect(DegreesToRadians(-45)).toBe(-Math.PI / 4);
10
- // Test decimal values
11
- expect(DegreesToRadians(45.5)).toBeCloseTo(Math.PI * 0.25278);
12
- // Test large values
13
- expect(DegreesToRadians(3600)).toBe(20 * Math.PI);
14
- });
15
- test('Radians to Degrees', () => {
16
- expect(RadiansToDegrees(0)).toBe(0);
17
- expect(RadiansToDegrees(Math.PI / 2)).toBe(90);
18
- expect(RadiansToDegrees(Math.PI)).toBe(180);
19
- expect(RadiansToDegrees((3 * Math.PI) / 2)).toBe(270);
20
- expect(RadiansToDegrees(2 * Math.PI)).toBe(360);
21
- expect(RadiansToDegrees(-Math.PI / 4)).toBe(-45);
22
- // Test decimal values
23
- expect(RadiansToDegrees(Math.PI / 6)).toBeCloseTo(30);
24
- // Test large values
25
- expect(RadiansToDegrees(10 * Math.PI)).toBe(1800);
26
- });
27
- test('Format Radians', () => {
28
- expect(FormatRadians(0)).toBe('0');
29
- expect(FormatRadians(Math.PI)).toBe('π');
30
- expect(FormatRadians(-Math.PI)).toBe('-π');
31
- expect(FormatRadians(Math.PI / 2)).toBe('π/2');
32
- expect(FormatRadians(Math.PI / 4)).toBe('π/4');
33
- expect(FormatRadians(Math.PI / 3)).toBe('π/3');
34
- // Based on the current implementation, this returns "1.5π" rather than "3π/2"
35
- expect(FormatRadians((3 * Math.PI) / 2)).toContain('π');
36
- // Additional fraction representations
37
- expect(FormatRadians(Math.PI / 6)).toBe('π/6');
38
- expect(FormatRadians((2 * Math.PI) / 3)).toBe('2π/3');
39
- expect(FormatRadians((3 * Math.PI) / 4)).toContain('π'); // Based on the implementation behavior
40
- // Edge cases
41
- expect(FormatRadians(0.00001)).toContain('π'); // Very small value
42
- expect(FormatRadians(100 * Math.PI)).toContain('π'); // Very large value
43
- // Common angles - adjust expectations to match the actual implementation
44
- const formattedAngle = FormatRadians(Math.PI * 1.5);
45
- expect(formattedAngle === '1.5π' || formattedAngle === '3π/2').toBeTruthy();
46
- // Value that doesn't have a simple fraction representation
47
- expect(FormatRadians(Math.PI * 0.7)).toContain('π');
48
- });
49
- test('Radian Normalization', () => {
50
- // Basic cases
51
- expect(NormalizeRadians(0)).toBe(0);
52
- expect(NormalizeRadians(Math.PI)).toBeCloseTo(Math.PI);
53
- expect(NormalizeRadians(2 * Math.PI)).toBeCloseTo(0);
54
- // Values outside the 0-2π range
55
- expect(NormalizeRadians(3 * Math.PI)).toBeCloseTo(Math.PI);
56
- expect(NormalizeRadians(-Math.PI)).toBeCloseTo(Math.PI);
57
- expect(NormalizeRadians(-2 * Math.PI)).toBeCloseTo(0);
58
- expect(NormalizeRadians(7 * Math.PI)).toBeCloseTo(Math.PI);
59
- // Extreme values - these need special handling due to floating point precision
60
- const normalizedLarge = NormalizeRadians(1000 * Math.PI);
61
- expect(normalizedLarge >= 0 && normalizedLarge < 2 * Math.PI).toBeTruthy();
62
- const normalizedNegative = NormalizeRadians(-999 * Math.PI);
63
- expect(normalizedNegative >= 0 && normalizedNegative < 2 * Math.PI).toBeTruthy();
64
- // Decimal values
65
- expect(NormalizeRadians(Math.PI + 0.1)).toBeCloseTo(Math.PI + 0.1);
66
- expect(NormalizeRadians((2 * Math.PI) + 0.2)).toBeCloseTo(0.2);
67
- });
68
- test('Degree Normalization', () => {
69
- // Basic cases
70
- expect(NormalizeDegrees(0)).toBe(0);
71
- expect(NormalizeDegrees(180)).toBe(180);
72
- expect(NormalizeDegrees(360)).toBe(0);
73
- // Values outside the 0-360 range
74
- expect(NormalizeDegrees(540)).toBe(180);
75
- expect(NormalizeDegrees(-180)).toBe(180);
76
- expect(NormalizeDegrees(-360)).toBe(0);
77
- expect(NormalizeDegrees(1260)).toBe(180);
78
- // Extreme values
79
- expect(NormalizeDegrees(3600)).toBe(0);
80
- expect(NormalizeDegrees(-3600)).toBe(0);
81
- // Decimal values
82
- expect(NormalizeDegrees(45.5)).toBe(45.5);
83
- expect(NormalizeDegrees(360.5)).toBe(0.5);
84
- expect(NormalizeDegrees(-0.5)).toBe(359.5);
85
- });
86
- test('Preserve Angles when Normalizing', () => {
87
- // Create a range of angles
88
- for (let angle = -720; angle <= 720; angle += 45) {
89
- // For radians
90
- const radians = DegreesToRadians(angle);
91
- const normalizedRadians = NormalizeRadians(radians);
92
- // Convert back to degrees for comparison
93
- const backToDegrees = RadiansToDegrees(normalizedRadians);
94
- const normalizedDegrees = NormalizeDegrees(angle);
95
- // Check if the angles are equivalent (considering circular nature)
96
- expect(normalizedDegrees).toBeCloseTo(NormalizeDegrees(backToDegrees));
97
- }
98
- });
99
- test('Additional Angle Conversions', () => {
100
- // Test random angles to ensure conversion works correctly in both directions
101
- for (let i = 0; i < 10; i++) {
102
- const randomDegrees = (Math.random() * 720) - 360; // Random between -360 and 360
103
- const toRadians = DegreesToRadians(randomDegrees);
104
- const backToDegrees = RadiansToDegrees(toRadians);
105
- expect(backToDegrees).toBeCloseTo(randomDegrees);
106
- }
107
- // Test that normalization preserves the angle's position on the circle
108
- // for non-integer values
109
- for (let angle = -10.5; angle <= 10.5; angle += 0.5) {
110
- const normalizedDegrees = NormalizeDegrees(angle * 360);
111
- const normalizedRadians = NormalizeRadians(angle * 2 * Math.PI);
112
- const convertedDegrees = RadiansToDegrees(normalizedRadians);
113
- expect(normalizedDegrees).toBeCloseTo(NormalizeDegrees(convertedDegrees));
114
- }
115
- });
116
- test('NormalizeRadians covers negative non-multiple of π', () => {
117
- // -5 radians is not a multiple of π, should normalize to [0, 2π)
118
- const input = -5;
119
- const normalized = NormalizeRadians(input);
120
- expect(normalized).toBeGreaterThanOrEqual(0);
121
- expect(normalized).toBeLessThan(2 * Math.PI);
122
- // Check that adding/subtracting 2π lands on the same angle
123
- const expected = ((input % (2 * Math.PI)) + (2 * Math.PI)) % (2 * Math.PI);
124
- expect(normalized).toBeCloseTo(expected);
125
- });
126
- test('NormalizeRadians covers negative just below zero', () => {
127
- const input = -0.1;
128
- const normalized = NormalizeRadians(input);
129
- expect(normalized).toBeCloseTo((2 * Math.PI) - 0.1);
130
- });
131
- test('NormalizeRadians covers positive just above 2π', () => {
132
- const input = (2 * Math.PI) + 0.1;
133
- const normalized = NormalizeRadians(input);
134
- expect(normalized).toBeCloseTo(0.1);
135
- });
136
- test('FormatRadians handles π/5', () => {
137
- const input = Math.PI / 5;
138
- const formatted = FormatRadians(input);
139
- expect(formatted).toBe('π/5');
140
- });
141
- test('FormatRadians handles -π/5', () => {
142
- const input = -Math.PI / 5;
143
- const formatted = FormatRadians(input);
144
- expect(formatted).toBe('-π/5');
145
- });
146
- });
147
- //# sourceMappingURL=angles.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angles.spec.js","sourceRoot":"","sources":["../src/angles.spec.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=clamp.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clamp.spec.d.ts","sourceRoot":"","sources":["../src/clamp.spec.ts"],"names":[],"mappings":""}
@@ -1,19 +0,0 @@
1
- import { Clamp } from './clamp.ts';
2
- describe('Math Extended > Clamp', () => {
3
- test('If the value is within range, return the value.', () => {
4
- expect(Clamp(5, 0, 10)).toBe(5);
5
- expect(Clamp(-3, -5, 5)).toBe(-3);
6
- expect(Clamp(0, -10, 10)).toBe(0);
7
- });
8
- test('If the value is less than the minimum, return the minimum value.', () => {
9
- expect(Clamp(-10, 0, 10)).toBe(0);
10
- expect(Clamp(-100, -50, 50)).toBe(-50);
11
- expect(Clamp(-5, -2, 2)).toBe(-2);
12
- });
13
- test('If the value is greater than the maximum, return the maximum value.', () => {
14
- expect(Clamp(15, 0, 10)).toBe(10);
15
- expect(Clamp(100, -50, 50)).toBe(50);
16
- expect(Clamp(3, -2, 2)).toBe(2);
17
- });
18
- });
19
- //# sourceMappingURL=clamp.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clamp.spec.js","sourceRoot":"","sources":["../src/clamp.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACtC,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;QAC5D,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAChF,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Documentation Validation Tests
3
- *
4
- * This file validates all code examples from README.md to ensure:
5
- * 1. All examples compile correctly
6
- * 2. Type inference works as documented
7
- * 3. Examples produce expected results
8
- * 4. No runtime errors occur
9
- */
10
- export {};
11
- //# sourceMappingURL=documentation-validation.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"documentation-validation.spec.d.ts","sourceRoot":"","sources":["../src/documentation-validation.spec.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG"}