@obinexusmk2/hypernum 0.1.0 → 0.1.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 (140) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +355 -256
  3. package/dist/index.cjs +4 -8
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.js +4 -7
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.umd.js +2 -2
  9. package/dist/index.umd.js.map +1 -1
  10. package/dist/types/{config → src/config}/config-loader.d.ts +0 -0
  11. package/dist/types/src/config/config-loader.d.ts.map +1 -0
  12. package/dist/types/{config → src/config}/config-parser.d.ts +0 -0
  13. package/dist/types/src/config/config-parser.d.ts.map +1 -0
  14. package/dist/types/{config → src/config}/config-resolver.d.ts +0 -0
  15. package/dist/types/src/config/config-resolver.d.ts.map +1 -0
  16. package/dist/types/{config → src/config}/config-source.d.ts +0 -0
  17. package/dist/types/src/config/config-source.d.ts.map +1 -0
  18. package/dist/types/{config → src/config}/index.d.ts +0 -0
  19. package/dist/types/src/config/index.d.ts.map +1 -0
  20. package/dist/types/{core → src/core}/common.d.ts +0 -0
  21. package/dist/types/src/core/common.d.ts.map +1 -0
  22. package/dist/types/{core → src/core}/config.d.ts +0 -0
  23. package/dist/types/src/core/config.d.ts.map +1 -0
  24. package/dist/types/{core → src/core}/constants.d.ts +0 -0
  25. package/dist/types/src/core/constants.d.ts.map +1 -0
  26. package/dist/types/{core → src/core}/errors.d.ts +0 -0
  27. package/dist/types/src/core/errors.d.ts.map +1 -0
  28. package/dist/types/{core → src/core}/hypernum.d.ts +0 -0
  29. package/dist/types/src/core/hypernum.d.ts.map +1 -0
  30. package/dist/types/{core → src/core}/index.d.ts +0 -0
  31. package/dist/types/src/core/index.d.ts.map +1 -0
  32. package/dist/types/{index.d.ts → src/index.d.ts} +1 -1
  33. package/dist/types/src/index.d.ts.map +1 -0
  34. package/dist/types/{operations → src/operations}/arithmetic.d.ts +0 -0
  35. package/dist/types/src/operations/arithmetic.d.ts.map +1 -0
  36. package/dist/types/{operations → src/operations}/bitwise.d.ts +0 -0
  37. package/dist/types/src/operations/bitwise.d.ts.map +1 -0
  38. package/dist/types/{operations → src/operations}/comparison.d.ts +0 -0
  39. package/dist/types/src/operations/comparison.d.ts.map +1 -0
  40. package/dist/types/{operations → src/operations}/conversion.d.ts +0 -0
  41. package/dist/types/src/operations/conversion.d.ts.map +1 -0
  42. package/dist/types/{operations → src/operations}/factorial.d.ts +0 -0
  43. package/dist/types/src/operations/factorial.d.ts.map +1 -0
  44. package/dist/types/{operations → src/operations}/index.d.ts +0 -0
  45. package/dist/types/src/operations/index.d.ts.map +1 -0
  46. package/dist/types/{operations → src/operations}/power.d.ts +0 -0
  47. package/dist/types/src/operations/power.d.ts.map +1 -0
  48. package/dist/types/{storage → src/storage}/Heap.d.ts +0 -0
  49. package/dist/types/src/storage/Heap.d.ts.map +1 -0
  50. package/dist/types/{storage → src/storage}/index.d.ts +0 -0
  51. package/dist/types/src/storage/index.d.ts.map +1 -0
  52. package/dist/types/{structures → src/structures}/ackermann.d.ts +0 -0
  53. package/dist/types/src/structures/ackermann.d.ts.map +1 -0
  54. package/dist/types/{structures → src/structures}/big-array.d.ts +0 -0
  55. package/dist/types/src/structures/big-array.d.ts.map +1 -0
  56. package/dist/types/{structures → src/structures}/index.d.ts +0 -0
  57. package/dist/types/src/structures/index.d.ts.map +1 -0
  58. package/dist/types/{structures → src/structures}/number-tree.d.ts +0 -0
  59. package/dist/types/src/structures/number-tree.d.ts.map +1 -0
  60. package/dist/types/{structures → src/structures}/power-tower.d.ts +0 -0
  61. package/dist/types/src/structures/power-tower.d.ts.map +1 -0
  62. package/dist/types/{utils → src/utils}/formatting.d.ts +0 -0
  63. package/dist/types/src/utils/formatting.d.ts.map +1 -0
  64. package/dist/types/{utils → src/utils}/index.d.ts +0 -0
  65. package/dist/types/src/utils/index.d.ts.map +1 -0
  66. package/dist/types/{utils → src/utils}/parser.d.ts +0 -0
  67. package/dist/types/src/utils/parser.d.ts.map +1 -0
  68. package/dist/types/{utils → src/utils}/precision.d.ts +0 -0
  69. package/dist/types/src/utils/precision.d.ts.map +1 -0
  70. package/dist/types/{utils → src/utils}/validation.d.ts +0 -0
  71. package/dist/types/src/utils/validation.d.ts.map +1 -0
  72. package/package.json +169 -164
  73. package/rollup.config.js +163 -161
  74. package/src/cli/hypernum.js +272 -0
  75. package/src/config/config-loader.ts +0 -0
  76. package/src/config/config-parser.ts +160 -160
  77. package/src/config/config-resolver.ts +0 -0
  78. package/src/config/config-source.ts +0 -0
  79. package/src/config/index.ts +0 -0
  80. package/src/core/common.ts +184 -184
  81. package/src/core/config.ts +392 -392
  82. package/src/core/constants.ts +101 -101
  83. package/src/core/errors.ts +202 -202
  84. package/src/core/hypernum.ts +240 -240
  85. package/src/core/index.ts +4 -4
  86. package/src/index.ts +179 -182
  87. package/src/operations/arithmetic.ts +332 -332
  88. package/src/operations/bitwise.ts +366 -366
  89. package/src/operations/comparison.ts +271 -271
  90. package/src/operations/conversion.ts +399 -399
  91. package/src/operations/factorial.ts +278 -278
  92. package/src/operations/index.ts +4 -4
  93. package/src/operations/power.ts +315 -315
  94. package/src/storage/Heap.ts +237 -237
  95. package/src/storage/index.ts +0 -0
  96. package/src/structures/ackermann.ts +232 -232
  97. package/src/structures/big-array.ts +305 -305
  98. package/src/structures/index.ts +3 -3
  99. package/src/structures/number-tree.ts +403 -403
  100. package/src/structures/power-tower.ts +277 -277
  101. package/src/types/common.d.ts +356 -356
  102. package/src/types/core.d.ts +160 -160
  103. package/src/types/index.d.ts +1 -1
  104. package/src/utils/formatting.ts +245 -245
  105. package/src/utils/index.ts +4 -4
  106. package/src/utils/parser.ts +244 -244
  107. package/src/utils/precision.ts +216 -216
  108. package/src/utils/validation.ts +182 -182
  109. package/tsconfig.json +83 -83
  110. package/dist/types/config/config-loader.d.ts.map +0 -1
  111. package/dist/types/config/config-parser.d.ts.map +0 -1
  112. package/dist/types/config/config-resolver.d.ts.map +0 -1
  113. package/dist/types/config/config-source.d.ts.map +0 -1
  114. package/dist/types/config/index.d.ts.map +0 -1
  115. package/dist/types/core/common.d.ts.map +0 -1
  116. package/dist/types/core/config.d.ts.map +0 -1
  117. package/dist/types/core/constants.d.ts.map +0 -1
  118. package/dist/types/core/errors.d.ts.map +0 -1
  119. package/dist/types/core/hypernum.d.ts.map +0 -1
  120. package/dist/types/core/index.d.ts.map +0 -1
  121. package/dist/types/index.d.ts.map +0 -1
  122. package/dist/types/operations/arithmetic.d.ts.map +0 -1
  123. package/dist/types/operations/bitwise.d.ts.map +0 -1
  124. package/dist/types/operations/comparison.d.ts.map +0 -1
  125. package/dist/types/operations/conversion.d.ts.map +0 -1
  126. package/dist/types/operations/factorial.d.ts.map +0 -1
  127. package/dist/types/operations/index.d.ts.map +0 -1
  128. package/dist/types/operations/power.d.ts.map +0 -1
  129. package/dist/types/storage/Heap.d.ts.map +0 -1
  130. package/dist/types/storage/index.d.ts.map +0 -1
  131. package/dist/types/structures/ackermann.d.ts.map +0 -1
  132. package/dist/types/structures/big-array.d.ts.map +0 -1
  133. package/dist/types/structures/index.d.ts.map +0 -1
  134. package/dist/types/structures/number-tree.d.ts.map +0 -1
  135. package/dist/types/structures/power-tower.d.ts.map +0 -1
  136. package/dist/types/utils/formatting.d.ts.map +0 -1
  137. package/dist/types/utils/index.d.ts.map +0 -1
  138. package/dist/types/utils/parser.d.ts.map +0 -1
  139. package/dist/types/utils/precision.d.ts.map +0 -1
  140. package/dist/types/utils/validation.d.ts.map +0 -1
package/src/index.ts CHANGED
@@ -1,183 +1,180 @@
1
- /**
2
- * Hypernum - A TypeScript/JavaScript library for large number operations
3
- */
4
- import { HypernumConfig, mergeConfig, validateConfig } from './core';
5
- import { Hypernum } from './core/hypernum';
6
- import { RoundingMode } from './utils/precision';
7
-
8
- // Version
9
- import path from 'path';
10
- import { fileURLToPath } from 'url';
11
- import fs from 'fs';
12
- const packagePath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../package.json');
13
- const { version: VERSION } = JSON.parse(fs.readFileSync(packagePath, 'utf-8'));
14
-
15
- // Core exports
16
- export { Hypernum } from './core/hypernum';
17
- export * from './core/constants';
18
- export * from './core/common';
19
- export * from './core/config';
20
-
21
- // Re-export errors with explicit names to avoid conflicts
22
- export {
23
- HypernumError,
24
- ComputationLimitError,
25
- DataStructureError,
26
- DivisionByZeroError,
27
- FormatError,
28
- HeapPropertyError,
29
- IndexError,
30
- PrecisionError,
31
- RomanNumeralError,
32
- TreeError,
33
- UnderflowError
34
- } from './core/errors';
35
-
36
- // Data structures with explicit imports and exports
37
- export { AckermannStructure } from './structures/ackermann';
38
- export { BigArray, type BigArrayOptions } from './structures/big-array';
39
- export { NumberTree } from './structures/number-tree';
40
- export { PowerTower } from './structures/power-tower';
41
- export { MinHeap, MaxHeap, type Comparator } from './storage/';
42
-
43
- // Operations with explicit exports
44
- export {
45
- add,
46
- subtract,
47
- multiply,
48
- divide,
49
- remainder,
50
- abs,
51
- sign,
52
- gcd,
53
- lcm
54
- } from './operations/arithmetic';
55
-
56
- export {
57
- and,
58
- or,
59
- xor,
60
- not,
61
- leftShift,
62
- rightShift,
63
- unsignedRightShift,
64
- rotateLeft,
65
- rotateRight,
66
- popCount,
67
- trailingZeros,
68
- leadingZeros,
69
- getBit,
70
- setBit,
71
- clearBit,
72
- toggleBit
73
- } from './operations/bitwise';
74
-
75
- export {
76
- compare,
77
- equals,
78
- lessThan,
79
- lessThanOrEqual,
80
- greaterThan,
81
- greaterThanOrEqual,
82
- between,
83
- max,
84
- min,
85
- clamp,
86
- allEqual,
87
- isAscending,
88
- isDescending,
89
- createComparator
90
- } from './operations/comparison';
91
-
92
- export {
93
- toBinary,
94
- toOctal,
95
- toHexadecimal,
96
- toBase,
97
- fromBase,
98
- toFraction,
99
- fromFraction,
100
- fromScientific,
101
- toScientific,
102
- fromRoman,
103
- toRoman
104
- } from './operations/conversion';
105
-
106
- export {
107
- factorial,
108
- binomial,
109
- subfactorial,
110
- risingFactorial,
111
- fallingFactorial,
112
- multiFactorial,
113
- primorial
114
- } from './operations/factorial';
115
-
116
- export {
117
- power,
118
- sqrt,
119
- nthRoot,
120
- tetration,
121
- superRoot
122
- } from './operations/power';
123
-
124
- // Utils with explicit exports
125
- export {
126
- toBigInt,
127
- validateNonNegative,
128
- validatePositive,
129
- checkAdditionOverflow,
130
- checkMultiplicationOverflow,
131
- checkPowerOverflow
132
- } from './utils/validation';
133
-
134
- export {
135
- formatBigInt,
136
- parseBigIntString,
137
- normalizeNumberString
138
- } from './utils/formatting';
139
-
140
- export {
141
- RoundingMode,
142
- round,
143
- scaleByPowerOfTen,
144
- scaledDivision,
145
- normalizePrecision
146
- } from './utils/precision';
147
-
148
- /**
149
- * Creates a new Hypernum instance with custom configuration
150
- */
151
- export function createHypernum(config?: Partial<HypernumConfig>): Hypernum {
152
- const mergedConfig = mergeConfig(config || {});
153
- validateConfig(mergedConfig);
154
-
155
- const instanceConfig = {
156
- precision: 'arithmetic' in mergedConfig
157
- ? mergedConfig.arithmetic.defaultPrecision
158
- : mergedConfig.precision ?? 0,
159
- roundingMode: 'arithmetic' in mergedConfig
160
- ? mergedConfig.arithmetic.defaultRoundingMode
161
- : (mergedConfig.roundingMode as RoundingMode) ?? RoundingMode.HALF_EVEN,
162
- checkOverflow: 'arithmetic' in mergedConfig
163
- ? mergedConfig.arithmetic.checkOverflow
164
- : mergedConfig.checkOverflow ?? true,
165
- maxSteps: 'arithmetic' in mergedConfig
166
- ? mergedConfig.arithmetic.maxComputationSteps
167
- : mergedConfig.maxSteps ?? 1000,
168
- debug: 'debug' in mergedConfig && typeof mergedConfig.debug === 'object'
169
- ? mergedConfig.debug.verbose
170
- : false
171
- };
172
-
173
- return new Hypernum(instanceConfig);
174
- }
175
-
176
- // Default instance
177
- export const defaultHypernum = createHypernum();
178
-
179
- // Export version
180
- export { VERSION };
181
-
182
- // Default export
1
+ /**
2
+ * Hypernum - A TypeScript/JavaScript library for large number operations
3
+ */
4
+ import { HypernumConfig, mergeConfig, validateConfig } from './core';
5
+ import { Hypernum } from './core/hypernum';
6
+ import { RoundingMode } from './utils/precision';
7
+
8
+ // Version — inlined at build time via @rollup/plugin-json
9
+ import pkg from '../package.json';
10
+ const VERSION = pkg.version;
11
+
12
+ // Core exports
13
+ export { Hypernum } from './core/hypernum';
14
+ export * from './core/constants';
15
+ export * from './core/common';
16
+ export * from './core/config';
17
+
18
+ // Re-export errors with explicit names to avoid conflicts
19
+ export {
20
+ HypernumError,
21
+ ComputationLimitError,
22
+ DataStructureError,
23
+ DivisionByZeroError,
24
+ FormatError,
25
+ HeapPropertyError,
26
+ IndexError,
27
+ PrecisionError,
28
+ RomanNumeralError,
29
+ TreeError,
30
+ UnderflowError
31
+ } from './core/errors';
32
+
33
+ // Data structures with explicit imports and exports
34
+ export { AckermannStructure } from './structures/ackermann';
35
+ export { BigArray, type BigArrayOptions } from './structures/big-array';
36
+ export { NumberTree } from './structures/number-tree';
37
+ export { PowerTower } from './structures/power-tower';
38
+ export { MinHeap, MaxHeap, type Comparator } from './storage/';
39
+
40
+ // Operations with explicit exports
41
+ export {
42
+ add,
43
+ subtract,
44
+ multiply,
45
+ divide,
46
+ remainder,
47
+ abs,
48
+ sign,
49
+ gcd,
50
+ lcm
51
+ } from './operations/arithmetic';
52
+
53
+ export {
54
+ and,
55
+ or,
56
+ xor,
57
+ not,
58
+ leftShift,
59
+ rightShift,
60
+ unsignedRightShift,
61
+ rotateLeft,
62
+ rotateRight,
63
+ popCount,
64
+ trailingZeros,
65
+ leadingZeros,
66
+ getBit,
67
+ setBit,
68
+ clearBit,
69
+ toggleBit
70
+ } from './operations/bitwise';
71
+
72
+ export {
73
+ compare,
74
+ equals,
75
+ lessThan,
76
+ lessThanOrEqual,
77
+ greaterThan,
78
+ greaterThanOrEqual,
79
+ between,
80
+ max,
81
+ min,
82
+ clamp,
83
+ allEqual,
84
+ isAscending,
85
+ isDescending,
86
+ createComparator
87
+ } from './operations/comparison';
88
+
89
+ export {
90
+ toBinary,
91
+ toOctal,
92
+ toHexadecimal,
93
+ toBase,
94
+ fromBase,
95
+ toFraction,
96
+ fromFraction,
97
+ fromScientific,
98
+ toScientific,
99
+ fromRoman,
100
+ toRoman
101
+ } from './operations/conversion';
102
+
103
+ export {
104
+ factorial,
105
+ binomial,
106
+ subfactorial,
107
+ risingFactorial,
108
+ fallingFactorial,
109
+ multiFactorial,
110
+ primorial
111
+ } from './operations/factorial';
112
+
113
+ export {
114
+ power,
115
+ sqrt,
116
+ nthRoot,
117
+ tetration,
118
+ superRoot
119
+ } from './operations/power';
120
+
121
+ // Utils with explicit exports
122
+ export {
123
+ toBigInt,
124
+ validateNonNegative,
125
+ validatePositive,
126
+ checkAdditionOverflow,
127
+ checkMultiplicationOverflow,
128
+ checkPowerOverflow
129
+ } from './utils/validation';
130
+
131
+ export {
132
+ formatBigInt,
133
+ parseBigIntString,
134
+ normalizeNumberString
135
+ } from './utils/formatting';
136
+
137
+ export {
138
+ RoundingMode,
139
+ round,
140
+ scaleByPowerOfTen,
141
+ scaledDivision,
142
+ normalizePrecision
143
+ } from './utils/precision';
144
+
145
+ /**
146
+ * Creates a new Hypernum instance with custom configuration
147
+ */
148
+ export function createHypernum(config?: Partial<HypernumConfig>): Hypernum {
149
+ const mergedConfig = mergeConfig(config || {});
150
+ validateConfig(mergedConfig);
151
+
152
+ const instanceConfig = {
153
+ precision: 'arithmetic' in mergedConfig
154
+ ? mergedConfig.arithmetic.defaultPrecision
155
+ : mergedConfig.precision ?? 0,
156
+ roundingMode: 'arithmetic' in mergedConfig
157
+ ? mergedConfig.arithmetic.defaultRoundingMode
158
+ : (mergedConfig.roundingMode as RoundingMode) ?? RoundingMode.HALF_EVEN,
159
+ checkOverflow: 'arithmetic' in mergedConfig
160
+ ? mergedConfig.arithmetic.checkOverflow
161
+ : mergedConfig.checkOverflow ?? true,
162
+ maxSteps: 'arithmetic' in mergedConfig
163
+ ? mergedConfig.arithmetic.maxComputationSteps
164
+ : mergedConfig.maxSteps ?? 1000,
165
+ debug: 'debug' in mergedConfig && typeof mergedConfig.debug === 'object'
166
+ ? mergedConfig.debug.verbose
167
+ : false
168
+ };
169
+
170
+ return new Hypernum(instanceConfig);
171
+ }
172
+
173
+ // Default instance
174
+ export const defaultHypernum = createHypernum();
175
+
176
+ // Export version
177
+ export { VERSION };
178
+
179
+ // Default export
183
180
  export default Hypernum;