typetify 2.1.0 → 2.2.0

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 (199) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +108 -0
  3. package/dist/async/index.js +1 -49
  4. package/dist/async/index.mjs +1 -4
  5. package/dist/chunk-272Z3AXV.js +1 -0
  6. package/dist/chunk-4HQERWI6.mjs +1 -0
  7. package/dist/chunk-4JG7CFRK.js +1 -0
  8. package/dist/chunk-5FBZYPQM.mjs +1 -0
  9. package/dist/chunk-5LWNMYHB.js +1 -0
  10. package/dist/chunk-5XQRYI2Q.mjs +1 -0
  11. package/dist/chunk-6HA2SN23.js +1 -0
  12. package/dist/chunk-6NWIIOHH.js +1 -0
  13. package/dist/chunk-7LBL6CYT.js +1 -0
  14. package/dist/chunk-7V3EDYJD.mjs +1 -0
  15. package/dist/chunk-B3R73UK5.mjs +1 -0
  16. package/dist/chunk-EAHFED6V.mjs +1 -0
  17. package/dist/chunk-EKSHS4DL.mjs +1 -0
  18. package/dist/chunk-FYQNKDT3.mjs +1 -0
  19. package/dist/chunk-GKOA3XGQ.js +1 -0
  20. package/dist/chunk-I4YSQ4HB.js +1 -0
  21. package/dist/chunk-JZXLCA2E.mjs +1 -0
  22. package/dist/chunk-M5OMYDI7.mjs +1 -0
  23. package/dist/chunk-MPY3WRLG.mjs +1 -0
  24. package/dist/chunk-MSOFO6QN.js +1 -0
  25. package/dist/chunk-NENRAPOL.mjs +1 -0
  26. package/dist/chunk-NOW4Q26G.mjs +1 -0
  27. package/dist/chunk-P4UNM7SF.js +1 -0
  28. package/dist/chunk-P5E2JDCX.mjs +1 -0
  29. package/dist/chunk-Q7SUL7MD.js +1 -0
  30. package/dist/chunk-QKNZICUO.mjs +1 -0
  31. package/dist/chunk-RHMANSTA.mjs +1 -0
  32. package/dist/chunk-SF64HETW.js +1 -0
  33. package/dist/chunk-T66YO63J.js +1 -0
  34. package/dist/chunk-TNK6EVQK.mjs +1 -0
  35. package/dist/chunk-TSJFKV3R.js +1 -0
  36. package/dist/chunk-TVCWWECJ.mjs +1 -0
  37. package/dist/chunk-W5I352FJ.js +1 -0
  38. package/dist/chunk-WAT4QJB2.js +1 -0
  39. package/dist/chunk-WCG5ODRX.mjs +1 -0
  40. package/dist/chunk-WDFIRO2J.js +1 -0
  41. package/dist/chunk-WOT6VMZA.js +1 -0
  42. package/dist/chunk-WQPSXQT5.js +1 -0
  43. package/dist/chunk-WS743BFA.js +1 -0
  44. package/dist/chunk-XPY5CWKZ.mjs +1 -0
  45. package/dist/collection/index.js +1 -125
  46. package/dist/collection/index.mjs +1 -4
  47. package/dist/core/index.js +1 -41
  48. package/dist/core/index.mjs +1 -4
  49. package/dist/decorator/index.js +1 -57
  50. package/dist/decorator/index.mjs +1 -4
  51. package/dist/dx/index.js +1 -53
  52. package/dist/dx/index.mjs +1 -4
  53. package/dist/flow/index.js +1 -50
  54. package/dist/flow/index.mjs +1 -5
  55. package/dist/fn/index.js +1 -37
  56. package/dist/fn/index.mjs +1 -4
  57. package/dist/guards/index.js +1 -233
  58. package/dist/guards/index.mjs +1 -4
  59. package/dist/index.js +3 -2507
  60. package/dist/index.mjs +3 -1546
  61. package/dist/input/index.js +1 -74
  62. package/dist/input/index.mjs +1 -5
  63. package/dist/iterator/index.js +1 -85
  64. package/dist/iterator/index.mjs +1 -4
  65. package/dist/logic/index.js +1 -201
  66. package/dist/logic/index.mjs +1 -4
  67. package/dist/math/index.js +1 -45
  68. package/dist/math/index.mjs +1 -4
  69. package/dist/narrowing/index.js +1 -141
  70. package/dist/narrowing/index.mjs +1 -4
  71. package/dist/object/index.js +1 -113
  72. package/dist/object/index.mjs +1 -4
  73. package/dist/result/index.js +1 -86
  74. package/dist/result/index.mjs +1 -5
  75. package/dist/schema/index.js +1 -110
  76. package/dist/schema/index.mjs +1 -5
  77. package/dist/string/index.js +1 -49
  78. package/dist/string/index.mjs +1 -4
  79. package/dist/typed/index.js +1 -193
  80. package/dist/typed/index.mjs +1 -4
  81. package/package.json +8 -3
  82. package/dist/async/index.js.map +0 -1
  83. package/dist/async/index.mjs.map +0 -1
  84. package/dist/chunk-2LJ6NZ6K.js +0 -108
  85. package/dist/chunk-2LJ6NZ6K.js.map +0 -1
  86. package/dist/chunk-4NXETABV.mjs +0 -116
  87. package/dist/chunk-4NXETABV.mjs.map +0 -1
  88. package/dist/chunk-6ZBTL74K.js +0 -129
  89. package/dist/chunk-6ZBTL74K.js.map +0 -1
  90. package/dist/chunk-7G4ZSMQX.js +0 -470
  91. package/dist/chunk-7G4ZSMQX.js.map +0 -1
  92. package/dist/chunk-CN3GYRJN.mjs +0 -137
  93. package/dist/chunk-CN3GYRJN.mjs.map +0 -1
  94. package/dist/chunk-CNTE6ZVH.js +0 -359
  95. package/dist/chunk-CNTE6ZVH.js.map +0 -1
  96. package/dist/chunk-CWHYQWNU.mjs +0 -224
  97. package/dist/chunk-CWHYQWNU.mjs.map +0 -1
  98. package/dist/chunk-DBENOSTA.js +0 -156
  99. package/dist/chunk-DBENOSTA.js.map +0 -1
  100. package/dist/chunk-DWIG5GF2.js +0 -135
  101. package/dist/chunk-DWIG5GF2.js.map +0 -1
  102. package/dist/chunk-EAUTTWTQ.mjs +0 -231
  103. package/dist/chunk-EAUTTWTQ.mjs.map +0 -1
  104. package/dist/chunk-FEX5C4OH.mjs +0 -1007
  105. package/dist/chunk-FEX5C4OH.mjs.map +0 -1
  106. package/dist/chunk-FN553YPU.js +0 -441
  107. package/dist/chunk-FN553YPU.js.map +0 -1
  108. package/dist/chunk-FT2EK4AM.mjs +0 -420
  109. package/dist/chunk-FT2EK4AM.mjs.map +0 -1
  110. package/dist/chunk-FXWYPHA3.mjs +0 -13
  111. package/dist/chunk-FXWYPHA3.mjs.map +0 -1
  112. package/dist/chunk-GS3PP67B.js +0 -200
  113. package/dist/chunk-GS3PP67B.js.map +0 -1
  114. package/dist/chunk-IGA3VEZM.mjs +0 -503
  115. package/dist/chunk-IGA3VEZM.mjs.map +0 -1
  116. package/dist/chunk-J5LGTIGS.mjs +0 -9
  117. package/dist/chunk-J5LGTIGS.mjs.map +0 -1
  118. package/dist/chunk-JB6UXRKD.mjs +0 -97
  119. package/dist/chunk-JB6UXRKD.mjs.map +0 -1
  120. package/dist/chunk-JQAQV75V.js +0 -561
  121. package/dist/chunk-JQAQV75V.js.map +0 -1
  122. package/dist/chunk-JQHUBZ4M.js +0 -88
  123. package/dist/chunk-JQHUBZ4M.js.map +0 -1
  124. package/dist/chunk-LT7JK7RJ.js +0 -87
  125. package/dist/chunk-LT7JK7RJ.js.map +0 -1
  126. package/dist/chunk-N6IUADIP.mjs +0 -414
  127. package/dist/chunk-N6IUADIP.mjs.map +0 -1
  128. package/dist/chunk-OEJK37LO.mjs +0 -328
  129. package/dist/chunk-OEJK37LO.mjs.map +0 -1
  130. package/dist/chunk-OKB3MS5F.js +0 -547
  131. package/dist/chunk-OKB3MS5F.js.map +0 -1
  132. package/dist/chunk-OPVES6W2.js +0 -16
  133. package/dist/chunk-OPVES6W2.js.map +0 -1
  134. package/dist/chunk-OWNUKWXV.js +0 -291
  135. package/dist/chunk-OWNUKWXV.js.map +0 -1
  136. package/dist/chunk-POD52NJ3.mjs +0 -526
  137. package/dist/chunk-POD52NJ3.mjs.map +0 -1
  138. package/dist/chunk-PQTXSQ4P.js +0 -369
  139. package/dist/chunk-PQTXSQ4P.js.map +0 -1
  140. package/dist/chunk-PZ5AY32C.js +0 -11
  141. package/dist/chunk-PZ5AY32C.js.map +0 -1
  142. package/dist/chunk-QFR7DVAJ.mjs +0 -63
  143. package/dist/chunk-QFR7DVAJ.mjs.map +0 -1
  144. package/dist/chunk-S535LAXW.js +0 -1054
  145. package/dist/chunk-S535LAXW.js.map +0 -1
  146. package/dist/chunk-SGQNLTRK.js +0 -73
  147. package/dist/chunk-SGQNLTRK.js.map +0 -1
  148. package/dist/chunk-SRDWUHDY.mjs +0 -188
  149. package/dist/chunk-SRDWUHDY.mjs.map +0 -1
  150. package/dist/chunk-TXU7NTT4.js +0 -249
  151. package/dist/chunk-TXU7NTT4.js.map +0 -1
  152. package/dist/chunk-TZEWREAC.mjs +0 -277
  153. package/dist/chunk-TZEWREAC.mjs.map +0 -1
  154. package/dist/chunk-V6CWFDIJ.mjs +0 -123
  155. package/dist/chunk-V6CWFDIJ.mjs.map +0 -1
  156. package/dist/chunk-X55EORNF.js +0 -259
  157. package/dist/chunk-X55EORNF.js.map +0 -1
  158. package/dist/chunk-YBJC5WMX.mjs +0 -341
  159. package/dist/chunk-YBJC5WMX.mjs.map +0 -1
  160. package/dist/chunk-YOPAXITF.mjs +0 -75
  161. package/dist/chunk-YOPAXITF.mjs.map +0 -1
  162. package/dist/chunk-ZE4FDBRI.mjs +0 -79
  163. package/dist/chunk-ZE4FDBRI.mjs.map +0 -1
  164. package/dist/collection/index.js.map +0 -1
  165. package/dist/collection/index.mjs.map +0 -1
  166. package/dist/core/index.js.map +0 -1
  167. package/dist/core/index.mjs.map +0 -1
  168. package/dist/decorator/index.js.map +0 -1
  169. package/dist/decorator/index.mjs.map +0 -1
  170. package/dist/dx/index.js.map +0 -1
  171. package/dist/dx/index.mjs.map +0 -1
  172. package/dist/flow/index.js.map +0 -1
  173. package/dist/flow/index.mjs.map +0 -1
  174. package/dist/fn/index.js.map +0 -1
  175. package/dist/fn/index.mjs.map +0 -1
  176. package/dist/guards/index.js.map +0 -1
  177. package/dist/guards/index.mjs.map +0 -1
  178. package/dist/index.js.map +0 -1
  179. package/dist/index.mjs.map +0 -1
  180. package/dist/input/index.js.map +0 -1
  181. package/dist/input/index.mjs.map +0 -1
  182. package/dist/iterator/index.js.map +0 -1
  183. package/dist/iterator/index.mjs.map +0 -1
  184. package/dist/logic/index.js.map +0 -1
  185. package/dist/logic/index.mjs.map +0 -1
  186. package/dist/math/index.js.map +0 -1
  187. package/dist/math/index.mjs.map +0 -1
  188. package/dist/narrowing/index.js.map +0 -1
  189. package/dist/narrowing/index.mjs.map +0 -1
  190. package/dist/object/index.js.map +0 -1
  191. package/dist/object/index.mjs.map +0 -1
  192. package/dist/result/index.js.map +0 -1
  193. package/dist/result/index.mjs.map +0 -1
  194. package/dist/schema/index.js.map +0 -1
  195. package/dist/schema/index.mjs.map +0 -1
  196. package/dist/string/index.js.map +0 -1
  197. package/dist/string/index.mjs.map +0 -1
  198. package/dist/typed/index.js.map +0 -1
  199. package/dist/typed/index.mjs.map +0 -1
@@ -1,108 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkPZ5AY32C_js = require('./chunk-PZ5AY32C.js');
4
-
5
- // src/math/index.ts
6
- var math_exports = {};
7
- chunkPZ5AY32C_js.__export(math_exports, {
8
- average: () => average,
9
- max: () => max,
10
- median: () => median,
11
- min: () => min,
12
- percentage: () => percentage,
13
- randomFloat: () => randomFloat,
14
- randomInt: () => randomInt,
15
- round: () => round,
16
- sum: () => sum
17
- });
18
-
19
- // src/math/sum.ts
20
- function sum(numbers) {
21
- let total = 0;
22
- for (const n of numbers) {
23
- total += n;
24
- }
25
- return total;
26
- }
27
-
28
- // src/math/average.ts
29
- function average(numbers) {
30
- if (numbers.length === 0) return NaN;
31
- let total = 0;
32
- for (const n of numbers) {
33
- total += n;
34
- }
35
- return total / numbers.length;
36
- }
37
-
38
- // src/math/median.ts
39
- function median(numbers) {
40
- if (numbers.length === 0) return NaN;
41
- const sorted = [...numbers].sort((a, b) => a - b);
42
- const mid = Math.floor(sorted.length / 2);
43
- if (sorted.length % 2 === 0) {
44
- return (sorted[mid - 1] + sorted[mid]) / 2;
45
- }
46
- return sorted[mid];
47
- }
48
-
49
- // src/math/round.ts
50
- function round(num, precision = 0) {
51
- const factor = Math.pow(10, precision);
52
- return Math.round(num * factor) / factor;
53
- }
54
-
55
- // src/math/randomInt.ts
56
- function randomInt(min2, max2) {
57
- min2 = Math.ceil(min2);
58
- max2 = Math.floor(max2);
59
- return Math.floor(Math.random() * (max2 - min2 + 1)) + min2;
60
- }
61
-
62
- // src/math/randomFloat.ts
63
- function randomFloat(min2, max2) {
64
- return Math.random() * (max2 - min2) + min2;
65
- }
66
-
67
- // src/math/percentage.ts
68
- function percentage(value, total) {
69
- if (total === 0) return 0;
70
- return value / total * 100;
71
- }
72
-
73
- // src/math/min.ts
74
- function min(numbers) {
75
- if (numbers.length === 0) return void 0;
76
- let result = numbers[0];
77
- for (let i = 1; i < numbers.length; i++) {
78
- if (numbers[i] < result) {
79
- result = numbers[i];
80
- }
81
- }
82
- return result;
83
- }
84
-
85
- // src/math/max.ts
86
- function max(numbers) {
87
- if (numbers.length === 0) return void 0;
88
- let result = numbers[0];
89
- for (let i = 1; i < numbers.length; i++) {
90
- if (numbers[i] > result) {
91
- result = numbers[i];
92
- }
93
- }
94
- return result;
95
- }
96
-
97
- exports.average = average;
98
- exports.math_exports = math_exports;
99
- exports.max = max;
100
- exports.median = median;
101
- exports.min = min;
102
- exports.percentage = percentage;
103
- exports.randomFloat = randomFloat;
104
- exports.randomInt = randomInt;
105
- exports.round = round;
106
- exports.sum = sum;
107
- //# sourceMappingURL=chunk-2LJ6NZ6K.js.map
108
- //# sourceMappingURL=chunk-2LJ6NZ6K.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/math/index.ts","../src/math/sum.ts","../src/math/average.ts","../src/math/median.ts","../src/math/round.ts","../src/math/randomInt.ts","../src/math/randomFloat.ts","../src/math/percentage.ts","../src/math/min.ts","../src/math/max.ts"],"names":["__export","min","max"],"mappings":"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","file":"chunk-2LJ6NZ6K.js","sourcesContent":["export { sum } from './sum'\nexport { average } from './average'\nexport { median } from './median'\nexport { round } from './round'\nexport { randomInt } from './randomInt'\nexport { randomFloat } from './randomFloat'\nexport { percentage } from './percentage'\nexport { min } from './min'\nexport { max } from './max'\n","/**\n * Returns the sum of all numbers in an array.\n *\n * @example\n * sum([1, 2, 3, 4, 5]) // 15\n * sum([]) // 0\n */\nexport function sum(numbers: readonly number[]): number {\n let total = 0\n for (const n of numbers) {\n total += n\n }\n return total\n}\n","/**\n * Returns the average (mean) of all numbers in an array.\n *\n * @example\n * average([1, 2, 3, 4, 5]) // 3\n * average([10, 20]) // 15\n * average([]) // NaN\n */\nexport function average(numbers: readonly number[]): number {\n if (numbers.length === 0) return NaN\n let total = 0\n for (const n of numbers) {\n total += n\n }\n return total / numbers.length\n}\n","/**\n * Returns the median of all numbers in an array.\n *\n * @example\n * median([1, 2, 3, 4, 5]) // 3\n * median([1, 2, 3, 4]) // 2.5\n * median([]) // NaN\n */\nexport function median(numbers: readonly number[]): number {\n if (numbers.length === 0) return NaN\n\n const sorted = [...numbers].sort((a, b) => a - b)\n const mid = Math.floor(sorted.length / 2)\n\n if (sorted.length % 2 === 0) {\n return (sorted[mid - 1]! + sorted[mid]!) / 2\n }\n\n return sorted[mid]!\n}\n","/**\n * Rounds a number to a specified precision.\n *\n * @example\n * round(3.14159, 2) // 3.14\n * round(3.5) // 4\n * round(1234.5, -2) // 1200\n */\nexport function round(num: number, precision: number = 0): number {\n const factor = Math.pow(10, precision)\n return Math.round(num * factor) / factor\n}\n","/**\n * Returns a random integer between min and max (inclusive).\n *\n * @example\n * randomInt(1, 10) // Random integer from 1 to 10\n * randomInt(0, 100) // Random integer from 0 to 100\n */\nexport function randomInt(min: number, max: number): number {\n min = Math.ceil(min)\n max = Math.floor(max)\n return Math.floor(Math.random() * (max - min + 1)) + min\n}\n","/**\n * Returns a random float between min and max.\n *\n * @example\n * randomFloat(0, 1) // Random float from 0 to 1\n * randomFloat(1.5, 3.5) // Random float from 1.5 to 3.5\n */\nexport function randomFloat(min: number, max: number): number {\n return Math.random() * (max - min) + min\n}\n","/**\n * Calculates the percentage of a value relative to a total.\n *\n * @example\n * percentage(25, 100) // 25\n * percentage(1, 4) // 25\n * percentage(0, 100) // 0\n */\nexport function percentage(value: number, total: number): number {\n if (total === 0) return 0\n return (value / total) * 100\n}\n","/**\n * Returns the minimum value in an array.\n *\n * @example\n * min([3, 1, 4, 1, 5]) // 1\n * min([]) // undefined\n */\nexport function min(numbers: readonly number[]): number | undefined {\n if (numbers.length === 0) return undefined\n let result = numbers[0]!\n for (let i = 1; i < numbers.length; i++) {\n if (numbers[i]! < result) {\n result = numbers[i]!\n }\n }\n return result\n}\n","/**\n * Returns the maximum value in an array.\n *\n * @example\n * max([3, 1, 4, 1, 5]) // 5\n * max([]) // undefined\n */\nexport function max(numbers: readonly number[]): number | undefined {\n if (numbers.length === 0) return undefined\n let result = numbers[0]!\n for (let i = 1; i < numbers.length; i++) {\n if (numbers[i]! > result) {\n result = numbers[i]!\n }\n }\n return result\n}\n"]}
@@ -1,116 +0,0 @@
1
- import { __export } from './chunk-J5LGTIGS.mjs';
2
-
3
- // src/dx/index.ts
4
- var dx_exports = {};
5
- __export(dx_exports, {
6
- assertNever: () => assertNever,
7
- debug: () => debug,
8
- deprecated: () => deprecated,
9
- exhaustive: () => exhaustive,
10
- getLogLevel: () => getLogLevel,
11
- invariant: () => invariant,
12
- log: () => log,
13
- measure: () => measure,
14
- measureAsync: () => measureAsync,
15
- setLogLevel: () => setLogLevel,
16
- todo: () => todo
17
- });
18
-
19
- // src/dx/debug.ts
20
- function debug(label) {
21
- return (value) => {
22
- console.log(`[${label}]`, value);
23
- return value;
24
- };
25
- }
26
-
27
- // src/dx/invariant.ts
28
- function invariant(condition, message) {
29
- if (!condition) {
30
- throw new Error(`Invariant violation: ${message}`);
31
- }
32
- }
33
-
34
- // src/dx/assertNever.ts
35
- function assertNever(value, message) {
36
- throw new Error(
37
- message ?? `Unexpected value: ${JSON.stringify(value)}`
38
- );
39
- }
40
-
41
- // src/dx/exhaustive.ts
42
- function exhaustive(value) {
43
- throw new Error(`Exhaustive check failed: ${JSON.stringify(value)}`);
44
- }
45
-
46
- // src/dx/todo.ts
47
- function todo(message = "Not implemented") {
48
- throw new Error(`TODO: ${message}`);
49
- }
50
-
51
- // src/dx/deprecated.ts
52
- var warned = /* @__PURE__ */ new Set();
53
- function deprecated(message) {
54
- if (!warned.has(message)) {
55
- warned.add(message);
56
- console.warn(`[DEPRECATED] ${message}`);
57
- }
58
- }
59
-
60
- // src/dx/measure.ts
61
- function measure(fn) {
62
- const start = performance.now();
63
- const result = fn();
64
- const duration = performance.now() - start;
65
- return { result, duration };
66
- }
67
- async function measureAsync(fn) {
68
- const start = performance.now();
69
- const result = await fn();
70
- const duration = performance.now() - start;
71
- return { result, duration };
72
- }
73
-
74
- // src/dx/log.ts
75
- var levelPriority = {
76
- debug: 0,
77
- info: 1,
78
- warn: 2,
79
- error: 3
80
- };
81
- var currentLevel = "info";
82
- function setLogLevel(level) {
83
- currentLevel = level;
84
- }
85
- function getLogLevel() {
86
- return currentLevel;
87
- }
88
- function shouldLog(level) {
89
- return levelPriority[level] >= levelPriority[currentLevel];
90
- }
91
- var log = {
92
- debug(message, ...args) {
93
- if (shouldLog("debug")) {
94
- console.debug(`[DEBUG] ${message}`, ...args);
95
- }
96
- },
97
- info(message, ...args) {
98
- if (shouldLog("info")) {
99
- console.info(`[INFO] ${message}`, ...args);
100
- }
101
- },
102
- warn(message, ...args) {
103
- if (shouldLog("warn")) {
104
- console.warn(`[WARN] ${message}`, ...args);
105
- }
106
- },
107
- error(message, ...args) {
108
- if (shouldLog("error")) {
109
- console.error(`[ERROR] ${message}`, ...args);
110
- }
111
- }
112
- };
113
-
114
- export { assertNever, debug, deprecated, dx_exports, exhaustive, getLogLevel, invariant, log, measure, measureAsync, setLogLevel, todo };
115
- //# sourceMappingURL=chunk-4NXETABV.mjs.map
116
- //# sourceMappingURL=chunk-4NXETABV.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/dx/index.ts","../src/dx/debug.ts","../src/dx/invariant.ts","../src/dx/assertNever.ts","../src/dx/exhaustive.ts","../src/dx/todo.ts","../src/dx/deprecated.ts","../src/dx/measure.ts","../src/dx/log.ts"],"names":[],"mappings":"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","file":"chunk-4NXETABV.mjs","sourcesContent":["export { debug } from './debug'\nexport { invariant } from './invariant'\nexport { assertNever } from './assertNever'\nexport { exhaustive } from './exhaustive'\nexport { todo } from './todo'\nexport { deprecated } from './deprecated'\nexport { measure, measureAsync } from './measure'\nexport type { MeasureResult } from './measure'\nexport { log, setLogLevel, getLogLevel } from './log'\nexport type { LogLevel } from './log'\n","/**\n * Logs a value with a label and returns it.\n * Useful for debugging in a pipe chain without breaking the flow.\n *\n * @example\n * const result = pipe(\n * data,\n * debug('initial'),\n * transform,\n * debug('after transform'),\n * )\n */\nexport function debug<T>(label: string): (value: T) => T {\n return (value: T): T => {\n console.log(`[${label}]`, value)\n return value\n }\n}\n","/**\n * Asserts that a condition is true. Throws an error with a descriptive message if not.\n * Similar to assert but with a more descriptive name for invariant checks.\n *\n * @example\n * invariant(user.id > 0, 'User ID must be positive')\n * // Throws: Invariant violation: User ID must be positive\n */\nexport function invariant(\n condition: unknown,\n message: string\n): asserts condition {\n if (!condition) {\n throw new Error(`Invariant violation: ${message}`)\n }\n}\n","/**\n * Asserts that a value is never reached.\n * Useful for exhaustive switch statements.\n * TypeScript will error if this function can be called.\n *\n * @example\n * type Status = 'pending' | 'done'\n * function handleStatus(status: Status) {\n * switch (status) {\n * case 'pending': return 'Waiting...'\n * case 'done': return 'Complete!'\n * default: assertNever(status)\n * }\n * }\n */\nexport function assertNever(value: never, message?: string): never {\n throw new Error(\n message ?? `Unexpected value: ${JSON.stringify(value)}`\n )\n}\n","/**\n * Ensures exhaustive handling of a discriminated union.\n * Returns the value for use in expressions.\n *\n * @example\n * type Action = { type: 'add'; value: number } | { type: 'remove'; id: string }\n *\n * function reduce(action: Action) {\n * switch (action.type) {\n * case 'add': return handleAdd(action.value)\n * case 'remove': return handleRemove(action.id)\n * default: return exhaustive(action)\n * }\n * }\n */\nexport function exhaustive(value: never): never {\n throw new Error(`Exhaustive check failed: ${JSON.stringify(value)}`)\n}\n","/**\n * Marks a code path as not yet implemented.\n * Throws an error at runtime if reached.\n *\n * @example\n * function processPayment(method: PaymentMethod) {\n * if (method === 'card') {\n * return processCard()\n * }\n * todo('Implement other payment methods')\n * }\n */\nexport function todo(message: string = 'Not implemented'): never {\n throw new Error(`TODO: ${message}`)\n}\n","/**\n * Logs a deprecation warning. Only logs once per message.\n *\n * @example\n * function oldFunction() {\n * deprecated('oldFunction is deprecated, use newFunction instead')\n * // ... old implementation\n * }\n */\nconst warned = new Set<string>()\n\nexport function deprecated(message: string): void {\n if (!warned.has(message)) {\n warned.add(message)\n console.warn(`[DEPRECATED] ${message}`)\n }\n}\n","export interface MeasureResult<T> {\n result: T\n duration: number\n}\n\n/**\n * Measures the execution time of a function.\n *\n * @example\n * const { result, duration } = measure(() => heavyComputation())\n * console.log(`Took ${duration}ms`)\n */\nexport function measure<T>(fn: () => T): MeasureResult<T> {\n const start = performance.now()\n const result = fn()\n const duration = performance.now() - start\n\n return { result, duration }\n}\n\n/**\n * Measures the execution time of an async function.\n *\n * @example\n * const { result, duration } = await measureAsync(() => fetchData())\n * console.log(`Took ${duration}ms`)\n */\nexport async function measureAsync<T>(\n fn: () => Promise<T>\n): Promise<MeasureResult<T>> {\n const start = performance.now()\n const result = await fn()\n const duration = performance.now() - start\n\n return { result, duration }\n}\n","export type LogLevel = 'debug' | 'info' | 'warn' | 'error'\n\nconst levelPriority: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n}\n\nlet currentLevel: LogLevel = 'info'\n\n/**\n * Sets the minimum log level.\n *\n * @example\n * setLogLevel('debug') // Show all logs\n * setLogLevel('error') // Only show errors\n */\nexport function setLogLevel(level: LogLevel): void {\n currentLevel = level\n}\n\n/**\n * Gets the current log level.\n */\nexport function getLogLevel(): LogLevel {\n return currentLevel\n}\n\nfunction shouldLog(level: LogLevel): boolean {\n return levelPriority[level] >= levelPriority[currentLevel]\n}\n\n/**\n * Simple logger with levels.\n *\n * @example\n * log.debug('Detailed info')\n * log.info('General info')\n * log.warn('Warning')\n * log.error('Error occurred')\n */\nexport const log = {\n debug(message: string, ...args: unknown[]): void {\n if (shouldLog('debug')) {\n console.debug(`[DEBUG] ${message}`, ...args)\n }\n },\n\n info(message: string, ...args: unknown[]): void {\n if (shouldLog('info')) {\n console.info(`[INFO] ${message}`, ...args)\n }\n },\n\n warn(message: string, ...args: unknown[]): void {\n if (shouldLog('warn')) {\n console.warn(`[WARN] ${message}`, ...args)\n }\n },\n\n error(message: string, ...args: unknown[]): void {\n if (shouldLog('error')) {\n console.error(`[ERROR] ${message}`, ...args)\n }\n },\n}\n"]}
@@ -1,129 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkPZ5AY32C_js = require('./chunk-PZ5AY32C.js');
4
-
5
- // src/dx/index.ts
6
- var dx_exports = {};
7
- chunkPZ5AY32C_js.__export(dx_exports, {
8
- assertNever: () => assertNever,
9
- debug: () => debug,
10
- deprecated: () => deprecated,
11
- exhaustive: () => exhaustive,
12
- getLogLevel: () => getLogLevel,
13
- invariant: () => invariant,
14
- log: () => log,
15
- measure: () => measure,
16
- measureAsync: () => measureAsync,
17
- setLogLevel: () => setLogLevel,
18
- todo: () => todo
19
- });
20
-
21
- // src/dx/debug.ts
22
- function debug(label) {
23
- return (value) => {
24
- console.log(`[${label}]`, value);
25
- return value;
26
- };
27
- }
28
-
29
- // src/dx/invariant.ts
30
- function invariant(condition, message) {
31
- if (!condition) {
32
- throw new Error(`Invariant violation: ${message}`);
33
- }
34
- }
35
-
36
- // src/dx/assertNever.ts
37
- function assertNever(value, message) {
38
- throw new Error(
39
- message ?? `Unexpected value: ${JSON.stringify(value)}`
40
- );
41
- }
42
-
43
- // src/dx/exhaustive.ts
44
- function exhaustive(value) {
45
- throw new Error(`Exhaustive check failed: ${JSON.stringify(value)}`);
46
- }
47
-
48
- // src/dx/todo.ts
49
- function todo(message = "Not implemented") {
50
- throw new Error(`TODO: ${message}`);
51
- }
52
-
53
- // src/dx/deprecated.ts
54
- var warned = /* @__PURE__ */ new Set();
55
- function deprecated(message) {
56
- if (!warned.has(message)) {
57
- warned.add(message);
58
- console.warn(`[DEPRECATED] ${message}`);
59
- }
60
- }
61
-
62
- // src/dx/measure.ts
63
- function measure(fn) {
64
- const start = performance.now();
65
- const result = fn();
66
- const duration = performance.now() - start;
67
- return { result, duration };
68
- }
69
- async function measureAsync(fn) {
70
- const start = performance.now();
71
- const result = await fn();
72
- const duration = performance.now() - start;
73
- return { result, duration };
74
- }
75
-
76
- // src/dx/log.ts
77
- var levelPriority = {
78
- debug: 0,
79
- info: 1,
80
- warn: 2,
81
- error: 3
82
- };
83
- var currentLevel = "info";
84
- function setLogLevel(level) {
85
- currentLevel = level;
86
- }
87
- function getLogLevel() {
88
- return currentLevel;
89
- }
90
- function shouldLog(level) {
91
- return levelPriority[level] >= levelPriority[currentLevel];
92
- }
93
- var log = {
94
- debug(message, ...args) {
95
- if (shouldLog("debug")) {
96
- console.debug(`[DEBUG] ${message}`, ...args);
97
- }
98
- },
99
- info(message, ...args) {
100
- if (shouldLog("info")) {
101
- console.info(`[INFO] ${message}`, ...args);
102
- }
103
- },
104
- warn(message, ...args) {
105
- if (shouldLog("warn")) {
106
- console.warn(`[WARN] ${message}`, ...args);
107
- }
108
- },
109
- error(message, ...args) {
110
- if (shouldLog("error")) {
111
- console.error(`[ERROR] ${message}`, ...args);
112
- }
113
- }
114
- };
115
-
116
- exports.assertNever = assertNever;
117
- exports.debug = debug;
118
- exports.deprecated = deprecated;
119
- exports.dx_exports = dx_exports;
120
- exports.exhaustive = exhaustive;
121
- exports.getLogLevel = getLogLevel;
122
- exports.invariant = invariant;
123
- exports.log = log;
124
- exports.measure = measure;
125
- exports.measureAsync = measureAsync;
126
- exports.setLogLevel = setLogLevel;
127
- exports.todo = todo;
128
- //# sourceMappingURL=chunk-6ZBTL74K.js.map
129
- //# sourceMappingURL=chunk-6ZBTL74K.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/dx/index.ts","../src/dx/debug.ts","../src/dx/invariant.ts","../src/dx/assertNever.ts","../src/dx/exhaustive.ts","../src/dx/todo.ts","../src/dx/deprecated.ts","../src/dx/measure.ts","../src/dx/log.ts"],"names":["__export"],"mappings":"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","file":"chunk-6ZBTL74K.js","sourcesContent":["export { debug } from './debug'\nexport { invariant } from './invariant'\nexport { assertNever } from './assertNever'\nexport { exhaustive } from './exhaustive'\nexport { todo } from './todo'\nexport { deprecated } from './deprecated'\nexport { measure, measureAsync } from './measure'\nexport type { MeasureResult } from './measure'\nexport { log, setLogLevel, getLogLevel } from './log'\nexport type { LogLevel } from './log'\n","/**\n * Logs a value with a label and returns it.\n * Useful for debugging in a pipe chain without breaking the flow.\n *\n * @example\n * const result = pipe(\n * data,\n * debug('initial'),\n * transform,\n * debug('after transform'),\n * )\n */\nexport function debug<T>(label: string): (value: T) => T {\n return (value: T): T => {\n console.log(`[${label}]`, value)\n return value\n }\n}\n","/**\n * Asserts that a condition is true. Throws an error with a descriptive message if not.\n * Similar to assert but with a more descriptive name for invariant checks.\n *\n * @example\n * invariant(user.id > 0, 'User ID must be positive')\n * // Throws: Invariant violation: User ID must be positive\n */\nexport function invariant(\n condition: unknown,\n message: string\n): asserts condition {\n if (!condition) {\n throw new Error(`Invariant violation: ${message}`)\n }\n}\n","/**\n * Asserts that a value is never reached.\n * Useful for exhaustive switch statements.\n * TypeScript will error if this function can be called.\n *\n * @example\n * type Status = 'pending' | 'done'\n * function handleStatus(status: Status) {\n * switch (status) {\n * case 'pending': return 'Waiting...'\n * case 'done': return 'Complete!'\n * default: assertNever(status)\n * }\n * }\n */\nexport function assertNever(value: never, message?: string): never {\n throw new Error(\n message ?? `Unexpected value: ${JSON.stringify(value)}`\n )\n}\n","/**\n * Ensures exhaustive handling of a discriminated union.\n * Returns the value for use in expressions.\n *\n * @example\n * type Action = { type: 'add'; value: number } | { type: 'remove'; id: string }\n *\n * function reduce(action: Action) {\n * switch (action.type) {\n * case 'add': return handleAdd(action.value)\n * case 'remove': return handleRemove(action.id)\n * default: return exhaustive(action)\n * }\n * }\n */\nexport function exhaustive(value: never): never {\n throw new Error(`Exhaustive check failed: ${JSON.stringify(value)}`)\n}\n","/**\n * Marks a code path as not yet implemented.\n * Throws an error at runtime if reached.\n *\n * @example\n * function processPayment(method: PaymentMethod) {\n * if (method === 'card') {\n * return processCard()\n * }\n * todo('Implement other payment methods')\n * }\n */\nexport function todo(message: string = 'Not implemented'): never {\n throw new Error(`TODO: ${message}`)\n}\n","/**\n * Logs a deprecation warning. Only logs once per message.\n *\n * @example\n * function oldFunction() {\n * deprecated('oldFunction is deprecated, use newFunction instead')\n * // ... old implementation\n * }\n */\nconst warned = new Set<string>()\n\nexport function deprecated(message: string): void {\n if (!warned.has(message)) {\n warned.add(message)\n console.warn(`[DEPRECATED] ${message}`)\n }\n}\n","export interface MeasureResult<T> {\n result: T\n duration: number\n}\n\n/**\n * Measures the execution time of a function.\n *\n * @example\n * const { result, duration } = measure(() => heavyComputation())\n * console.log(`Took ${duration}ms`)\n */\nexport function measure<T>(fn: () => T): MeasureResult<T> {\n const start = performance.now()\n const result = fn()\n const duration = performance.now() - start\n\n return { result, duration }\n}\n\n/**\n * Measures the execution time of an async function.\n *\n * @example\n * const { result, duration } = await measureAsync(() => fetchData())\n * console.log(`Took ${duration}ms`)\n */\nexport async function measureAsync<T>(\n fn: () => Promise<T>\n): Promise<MeasureResult<T>> {\n const start = performance.now()\n const result = await fn()\n const duration = performance.now() - start\n\n return { result, duration }\n}\n","export type LogLevel = 'debug' | 'info' | 'warn' | 'error'\n\nconst levelPriority: Record<LogLevel, number> = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3,\n}\n\nlet currentLevel: LogLevel = 'info'\n\n/**\n * Sets the minimum log level.\n *\n * @example\n * setLogLevel('debug') // Show all logs\n * setLogLevel('error') // Only show errors\n */\nexport function setLogLevel(level: LogLevel): void {\n currentLevel = level\n}\n\n/**\n * Gets the current log level.\n */\nexport function getLogLevel(): LogLevel {\n return currentLevel\n}\n\nfunction shouldLog(level: LogLevel): boolean {\n return levelPriority[level] >= levelPriority[currentLevel]\n}\n\n/**\n * Simple logger with levels.\n *\n * @example\n * log.debug('Detailed info')\n * log.info('General info')\n * log.warn('Warning')\n * log.error('Error occurred')\n */\nexport const log = {\n debug(message: string, ...args: unknown[]): void {\n if (shouldLog('debug')) {\n console.debug(`[DEBUG] ${message}`, ...args)\n }\n },\n\n info(message: string, ...args: unknown[]): void {\n if (shouldLog('info')) {\n console.info(`[INFO] ${message}`, ...args)\n }\n },\n\n warn(message: string, ...args: unknown[]): void {\n if (shouldLog('warn')) {\n console.warn(`[WARN] ${message}`, ...args)\n }\n },\n\n error(message: string, ...args: unknown[]): void {\n if (shouldLog('error')) {\n console.error(`[ERROR] ${message}`, ...args)\n }\n },\n}\n"]}