@atmaticai/agent-tools-core 1.0.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 (142) hide show
  1. package/README.md +742 -0
  2. package/dist/archive/index.d.mts +1 -0
  3. package/dist/archive/index.d.ts +1 -0
  4. package/dist/archive/index.js +90 -0
  5. package/dist/archive/index.js.map +1 -0
  6. package/dist/archive/index.mjs +80 -0
  7. package/dist/archive/index.mjs.map +1 -0
  8. package/dist/color/index.d.mts +1 -0
  9. package/dist/color/index.d.ts +1 -0
  10. package/dist/color/index.js +347 -0
  11. package/dist/color/index.js.map +1 -0
  12. package/dist/color/index.mjs +336 -0
  13. package/dist/color/index.mjs.map +1 -0
  14. package/dist/crypto/index.d.mts +1 -0
  15. package/dist/crypto/index.d.ts +1 -0
  16. package/dist/crypto/index.js +116 -0
  17. package/dist/crypto/index.js.map +1 -0
  18. package/dist/crypto/index.mjs +108 -0
  19. package/dist/crypto/index.mjs.map +1 -0
  20. package/dist/csv/index.d.mts +1 -0
  21. package/dist/csv/index.d.ts +1 -0
  22. package/dist/csv/index.js +371 -0
  23. package/dist/csv/index.js.map +1 -0
  24. package/dist/csv/index.mjs +348 -0
  25. package/dist/csv/index.mjs.map +1 -0
  26. package/dist/datetime/index.d.mts +1 -0
  27. package/dist/datetime/index.d.ts +1 -0
  28. package/dist/datetime/index.js +234 -0
  29. package/dist/datetime/index.js.map +1 -0
  30. package/dist/datetime/index.mjs +224 -0
  31. package/dist/datetime/index.mjs.map +1 -0
  32. package/dist/diff/index.d.mts +2 -0
  33. package/dist/diff/index.d.ts +2 -0
  34. package/dist/diff/index.js +84 -0
  35. package/dist/diff/index.js.map +1 -0
  36. package/dist/diff/index.mjs +78 -0
  37. package/dist/diff/index.mjs.map +1 -0
  38. package/dist/excel/index.d.mts +1 -0
  39. package/dist/excel/index.d.ts +1 -0
  40. package/dist/excel/index.js +163 -0
  41. package/dist/excel/index.js.map +1 -0
  42. package/dist/excel/index.mjs +153 -0
  43. package/dist/excel/index.mjs.map +1 -0
  44. package/dist/image/index.d.mts +1 -0
  45. package/dist/image/index.d.ts +1 -0
  46. package/dist/image/index.js +123 -0
  47. package/dist/image/index.js.map +1 -0
  48. package/dist/image/index.mjs +107 -0
  49. package/dist/image/index.mjs.map +1 -0
  50. package/dist/index--vbnYfdE.d.mts +142 -0
  51. package/dist/index--vbnYfdE.d.ts +142 -0
  52. package/dist/index-7FZQloN-.d.mts +62 -0
  53. package/dist/index-7FZQloN-.d.ts +62 -0
  54. package/dist/index-7XgaTVH5.d.mts +93 -0
  55. package/dist/index-7XgaTVH5.d.ts +93 -0
  56. package/dist/index-7bvFmh45.d.mts +87 -0
  57. package/dist/index-7bvFmh45.d.ts +87 -0
  58. package/dist/index-BDZcIVCU.d.mts +53 -0
  59. package/dist/index-BDZcIVCU.d.ts +53 -0
  60. package/dist/index-BN00EnUU.d.mts +55 -0
  61. package/dist/index-BN00EnUU.d.ts +55 -0
  62. package/dist/index-CQ1EukC4.d.mts +59 -0
  63. package/dist/index-CQ1EukC4.d.ts +59 -0
  64. package/dist/index-CgRVnFOt.d.mts +91 -0
  65. package/dist/index-CgRVnFOt.d.ts +91 -0
  66. package/dist/index-DjBDZzuj.d.mts +54 -0
  67. package/dist/index-DjBDZzuj.d.ts +54 -0
  68. package/dist/index-FFrvmr-n.d.mts +50 -0
  69. package/dist/index-FFrvmr-n.d.ts +50 -0
  70. package/dist/index-QWC8yIgW.d.mts +106 -0
  71. package/dist/index-QWC8yIgW.d.ts +106 -0
  72. package/dist/index-RVqNunxE.d.mts +193 -0
  73. package/dist/index-RVqNunxE.d.ts +193 -0
  74. package/dist/index-fJD8SORm.d.mts +61 -0
  75. package/dist/index-fJD8SORm.d.ts +61 -0
  76. package/dist/index-pPy_XDQU.d.mts +56 -0
  77. package/dist/index-pPy_XDQU.d.ts +56 -0
  78. package/dist/index-rwh9hdD9.d.mts +68 -0
  79. package/dist/index-rwh9hdD9.d.ts +68 -0
  80. package/dist/index-uXdkAfea.d.mts +93 -0
  81. package/dist/index-uXdkAfea.d.ts +93 -0
  82. package/dist/index.d.mts +17 -0
  83. package/dist/index.d.ts +17 -0
  84. package/dist/index.js +3744 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/index.mjs +3694 -0
  87. package/dist/index.mjs.map +1 -0
  88. package/dist/json/index.d.mts +1 -0
  89. package/dist/json/index.d.ts +1 -0
  90. package/dist/json/index.js +599 -0
  91. package/dist/json/index.js.map +1 -0
  92. package/dist/json/index.mjs +552 -0
  93. package/dist/json/index.mjs.map +1 -0
  94. package/dist/markdown/index.d.mts +1 -0
  95. package/dist/markdown/index.d.ts +1 -0
  96. package/dist/markdown/index.js +151 -0
  97. package/dist/markdown/index.js.map +1 -0
  98. package/dist/markdown/index.mjs +139 -0
  99. package/dist/markdown/index.mjs.map +1 -0
  100. package/dist/math/index.d.mts +1 -0
  101. package/dist/math/index.d.ts +1 -0
  102. package/dist/math/index.js +247 -0
  103. package/dist/math/index.js.map +1 -0
  104. package/dist/math/index.mjs +240 -0
  105. package/dist/math/index.mjs.map +1 -0
  106. package/dist/pdf/index.d.mts +1 -0
  107. package/dist/pdf/index.d.ts +1 -0
  108. package/dist/pdf/index.js +546 -0
  109. package/dist/pdf/index.js.map +1 -0
  110. package/dist/pdf/index.mjs +518 -0
  111. package/dist/pdf/index.mjs.map +1 -0
  112. package/dist/regex/index.d.mts +1 -0
  113. package/dist/regex/index.d.ts +1 -0
  114. package/dist/regex/index.js +93 -0
  115. package/dist/regex/index.js.map +1 -0
  116. package/dist/regex/index.mjs +88 -0
  117. package/dist/regex/index.mjs.map +1 -0
  118. package/dist/settings/index.d.mts +41 -0
  119. package/dist/settings/index.d.ts +41 -0
  120. package/dist/settings/index.js +146 -0
  121. package/dist/settings/index.js.map +1 -0
  122. package/dist/settings/index.mjs +139 -0
  123. package/dist/settings/index.mjs.map +1 -0
  124. package/dist/sql/index.d.mts +1 -0
  125. package/dist/sql/index.d.ts +1 -0
  126. package/dist/sql/index.js +146 -0
  127. package/dist/sql/index.js.map +1 -0
  128. package/dist/sql/index.mjs +139 -0
  129. package/dist/sql/index.mjs.map +1 -0
  130. package/dist/text/index.d.mts +1 -0
  131. package/dist/text/index.d.ts +1 -0
  132. package/dist/text/index.js +250 -0
  133. package/dist/text/index.js.map +1 -0
  134. package/dist/text/index.mjs +242 -0
  135. package/dist/text/index.mjs.map +1 -0
  136. package/dist/xml/index.d.mts +1 -0
  137. package/dist/xml/index.d.ts +1 -0
  138. package/dist/xml/index.js +188 -0
  139. package/dist/xml/index.js.map +1 -0
  140. package/dist/xml/index.mjs +180 -0
  141. package/dist/xml/index.mjs.map +1 -0
  142. package/package.json +150 -0
@@ -0,0 +1,240 @@
1
+ // src/math/convert.ts
2
+ var lengthFactors = {
3
+ mm: 1e-3,
4
+ cm: 0.01,
5
+ m: 1,
6
+ km: 1e3,
7
+ in: 0.0254,
8
+ ft: 0.3048,
9
+ yd: 0.9144,
10
+ mi: 1609.344
11
+ };
12
+ var weightFactors = {
13
+ mg: 1e-3,
14
+ g: 1,
15
+ kg: 1e3,
16
+ oz: 28.3495,
17
+ lb: 453.592,
18
+ ton: 907185
19
+ };
20
+ var dataFactors = {
21
+ b: 1,
22
+ kb: 1024,
23
+ mb: Math.pow(1024, 2),
24
+ gb: Math.pow(1024, 3),
25
+ tb: Math.pow(1024, 4)
26
+ };
27
+ var temperatureUnits = /* @__PURE__ */ new Set(["celsius", "fahrenheit", "kelvin"]);
28
+ function convertTemperature(value, from, to) {
29
+ if (from === to) return value;
30
+ let celsius;
31
+ switch (from) {
32
+ case "celsius":
33
+ celsius = value;
34
+ break;
35
+ case "fahrenheit":
36
+ celsius = (value - 32) * 5 / 9;
37
+ break;
38
+ case "kelvin":
39
+ celsius = value - 273.15;
40
+ break;
41
+ default:
42
+ throw new Error(`Unknown temperature unit: ${from}`);
43
+ }
44
+ switch (to) {
45
+ case "celsius":
46
+ return celsius;
47
+ case "fahrenheit":
48
+ return celsius * 9 / 5 + 32;
49
+ case "kelvin":
50
+ return celsius + 273.15;
51
+ default:
52
+ throw new Error(`Unknown temperature unit: ${to}`);
53
+ }
54
+ }
55
+ function getFactors(category) {
56
+ switch (category) {
57
+ case "length":
58
+ return lengthFactors;
59
+ case "weight":
60
+ return weightFactors;
61
+ case "data":
62
+ return dataFactors;
63
+ default:
64
+ throw new Error(`No conversion factors for category: ${category}`);
65
+ }
66
+ }
67
+ function convertUnit(value, from, to, category) {
68
+ const fromLower = from.toLowerCase();
69
+ const toLower = to.toLowerCase();
70
+ if (category === "temperature") {
71
+ if (!temperatureUnits.has(fromLower)) {
72
+ throw new Error(`Unit '${from}' does not belong to category 'temperature'`);
73
+ }
74
+ if (!temperatureUnits.has(toLower)) {
75
+ throw new Error(`Unit '${to}' does not belong to category 'temperature'`);
76
+ }
77
+ const result2 = convertTemperature(value, fromLower, toLower);
78
+ return { value, from: fromLower, to: toLower, result: result2 };
79
+ }
80
+ const factors = getFactors(category);
81
+ if (!(fromLower in factors)) {
82
+ throw new Error(`Unit '${from}' does not belong to category '${category}'`);
83
+ }
84
+ if (!(toLower in factors)) {
85
+ throw new Error(`Unit '${to}' does not belong to category '${category}'`);
86
+ }
87
+ const baseValue = value * factors[fromLower];
88
+ const result = baseValue / factors[toLower];
89
+ return { value, from: fromLower, to: toLower, result };
90
+ }
91
+
92
+ // src/math/base.ts
93
+ var radixMap = {
94
+ binary: 2,
95
+ octal: 8,
96
+ decimal: 10,
97
+ hex: 16
98
+ };
99
+ function convertBase(input, fromBase) {
100
+ const radix = radixMap[fromBase];
101
+ if (radix === void 0) {
102
+ throw new Error(`Unknown base: ${fromBase}`);
103
+ }
104
+ let cleanInput = input.trim();
105
+ if (fromBase === "binary" && cleanInput.startsWith("0b")) {
106
+ cleanInput = cleanInput.slice(2);
107
+ } else if (fromBase === "octal" && cleanInput.startsWith("0o")) {
108
+ cleanInput = cleanInput.slice(2);
109
+ } else if (fromBase === "hex" && cleanInput.startsWith("0x")) {
110
+ cleanInput = cleanInput.slice(2);
111
+ }
112
+ const decimalValue = parseInt(cleanInput, radix);
113
+ if (isNaN(decimalValue)) {
114
+ throw new Error(`Invalid input '${input}' for base '${fromBase}'`);
115
+ }
116
+ return {
117
+ input,
118
+ fromBase,
119
+ binary: "0b" + decimalValue.toString(2),
120
+ octal: "0o" + decimalValue.toString(8),
121
+ decimal: decimalValue.toString(10),
122
+ hex: "0x" + decimalValue.toString(16)
123
+ };
124
+ }
125
+
126
+ // src/math/statistics.ts
127
+ function getPercentile(sorted, p) {
128
+ if (sorted.length === 1) return sorted[0];
129
+ const index = p / 100 * (sorted.length - 1);
130
+ const lower = Math.floor(index);
131
+ const upper = Math.ceil(index);
132
+ if (lower === upper) return sorted[lower];
133
+ const fraction = index - lower;
134
+ return sorted[lower] + fraction * (sorted[upper] - sorted[lower]);
135
+ }
136
+ function calculateStats(numbers) {
137
+ if (numbers.length === 0) {
138
+ throw new Error("Cannot calculate statistics for an empty array");
139
+ }
140
+ const count = numbers.length;
141
+ const sum = numbers.reduce((acc, n) => acc + n, 0);
142
+ const mean = sum / count;
143
+ const sorted = [...numbers].sort((a, b) => a - b);
144
+ let median;
145
+ const mid = Math.floor(sorted.length / 2);
146
+ if (sorted.length % 2 === 0) {
147
+ median = (sorted[mid - 1] + sorted[mid]) / 2;
148
+ } else {
149
+ median = sorted[mid];
150
+ }
151
+ const frequencyMap = /* @__PURE__ */ new Map();
152
+ for (const n of numbers) {
153
+ frequencyMap.set(n, (frequencyMap.get(n) || 0) + 1);
154
+ }
155
+ let maxFrequency = 0;
156
+ for (const freq of frequencyMap.values()) {
157
+ if (freq > maxFrequency) maxFrequency = freq;
158
+ }
159
+ const mode = [];
160
+ for (const [value, freq] of frequencyMap.entries()) {
161
+ if (freq === maxFrequency) mode.push(value);
162
+ }
163
+ mode.sort((a, b) => a - b);
164
+ const min = sorted[0];
165
+ const max = sorted[sorted.length - 1];
166
+ const range = max - min;
167
+ const variance = numbers.reduce((acc, n) => acc + Math.pow(n - mean, 2), 0) / count;
168
+ const standardDeviation = Math.sqrt(variance);
169
+ const percentiles = {
170
+ p25: getPercentile(sorted, 25),
171
+ p50: getPercentile(sorted, 50),
172
+ p75: getPercentile(sorted, 75),
173
+ p90: getPercentile(sorted, 90),
174
+ p99: getPercentile(sorted, 99)
175
+ };
176
+ return {
177
+ count,
178
+ sum,
179
+ mean,
180
+ median,
181
+ mode,
182
+ min,
183
+ max,
184
+ range,
185
+ standardDeviation,
186
+ variance,
187
+ percentiles
188
+ };
189
+ }
190
+
191
+ // src/math/format.ts
192
+ function formatNumber(value, options) {
193
+ const locale = options?.locale ?? "en-US";
194
+ const formatOptions = {};
195
+ if (options?.style) {
196
+ formatOptions.style = options.style;
197
+ }
198
+ if (options?.currency) {
199
+ formatOptions.currency = options.currency;
200
+ }
201
+ if (options?.minimumFractionDigits !== void 0) {
202
+ formatOptions.minimumFractionDigits = options.minimumFractionDigits;
203
+ }
204
+ if (options?.maximumFractionDigits !== void 0) {
205
+ formatOptions.maximumFractionDigits = options.maximumFractionDigits;
206
+ }
207
+ return new Intl.NumberFormat(locale, formatOptions).format(value);
208
+ }
209
+
210
+ // src/math/percentage.ts
211
+ function percentage(value, total) {
212
+ if (total === 0) {
213
+ throw new Error("Total cannot be zero");
214
+ }
215
+ const pct = value / total * 100;
216
+ return {
217
+ value,
218
+ total,
219
+ percentage: pct,
220
+ formatted: `${pct}%`
221
+ };
222
+ }
223
+ function percentageChange(from, to) {
224
+ if (from === 0) {
225
+ throw new Error("Cannot calculate percentage change from zero");
226
+ }
227
+ const change = (to - from) / Math.abs(from) * 100;
228
+ const sign = change >= 0 ? "+" : "";
229
+ const formatted = `${sign}${change}%`;
230
+ return {
231
+ from,
232
+ to,
233
+ change,
234
+ formatted
235
+ };
236
+ }
237
+
238
+ export { calculateStats, convertBase, convertUnit, formatNumber, percentage, percentageChange };
239
+ //# sourceMappingURL=index.mjs.map
240
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/math/convert.ts","../../src/math/base.ts","../../src/math/statistics.ts","../../src/math/format.ts","../../src/math/percentage.ts"],"names":["result"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { UnitCategory, UnitConversionResult } from './types';\n\nconst lengthFactors: Record<string, number> = {\n mm: 0.001,\n cm: 0.01,\n m: 1,\n km: 1000,\n in: 0.0254,\n ft: 0.3048,\n yd: 0.9144,\n mi: 1609.344,\n};\n\nconst weightFactors: Record<string, number> = {\n mg: 0.001,\n g: 1,\n kg: 1000,\n oz: 28.3495,\n lb: 453.592,\n ton: 907185,\n};\n\nconst dataFactors: Record<string, number> = {\n b: 1,\n kb: 1024,\n mb: Math.pow(1024, 2),\n gb: Math.pow(1024, 3),\n tb: Math.pow(1024, 4),\n};\n\nconst temperatureUnits = new Set(['celsius', 'fahrenheit', 'kelvin']);\n\nfunction convertTemperature(value: number, from: string, to: string): number {\n if (from === to) return value;\n\n // Convert to Celsius first\n let celsius: number;\n switch (from) {\n case 'celsius':\n celsius = value;\n break;\n case 'fahrenheit':\n celsius = (value - 32) * 5 / 9;\n break;\n case 'kelvin':\n celsius = value - 273.15;\n break;\n default:\n throw new Error(`Unknown temperature unit: ${from}`);\n }\n\n // Convert from Celsius to target\n switch (to) {\n case 'celsius':\n return celsius;\n case 'fahrenheit':\n return celsius * 9 / 5 + 32;\n case 'kelvin':\n return celsius + 273.15;\n default:\n throw new Error(`Unknown temperature unit: ${to}`);\n }\n}\n\nfunction getFactors(category: UnitCategory): Record<string, number> {\n switch (category) {\n case 'length':\n return lengthFactors;\n case 'weight':\n return weightFactors;\n case 'data':\n return dataFactors;\n default:\n throw new Error(`No conversion factors for category: ${category}`);\n }\n}\n\nexport function convertUnit(\n value: number,\n from: string,\n to: string,\n category: UnitCategory\n): UnitConversionResult {\n const fromLower = from.toLowerCase();\n const toLower = to.toLowerCase();\n\n if (category === 'temperature') {\n if (!temperatureUnits.has(fromLower)) {\n throw new Error(`Unit '${from}' does not belong to category 'temperature'`);\n }\n if (!temperatureUnits.has(toLower)) {\n throw new Error(`Unit '${to}' does not belong to category 'temperature'`);\n }\n const result = convertTemperature(value, fromLower, toLower);\n return { value, from: fromLower, to: toLower, result };\n }\n\n const factors = getFactors(category);\n\n if (!(fromLower in factors)) {\n throw new Error(`Unit '${from}' does not belong to category '${category}'`);\n }\n if (!(toLower in factors)) {\n throw new Error(`Unit '${to}' does not belong to category '${category}'`);\n }\n\n // Convert to base unit, then to target unit\n const baseValue = value * factors[fromLower];\n const result = baseValue / factors[toLower];\n\n return { value, from: fromLower, to: toLower, result };\n}\n","import type { BaseConversionResult, NumberBase } from './types';\n\nconst radixMap: Record<NumberBase, number> = {\n binary: 2,\n octal: 8,\n decimal: 10,\n hex: 16,\n};\n\nexport function convertBase(input: string, fromBase: NumberBase): BaseConversionResult {\n const radix = radixMap[fromBase];\n if (radix === undefined) {\n throw new Error(`Unknown base: ${fromBase}`);\n }\n\n // Strip common prefixes before parsing\n let cleanInput = input.trim();\n if (fromBase === 'binary' && cleanInput.startsWith('0b')) {\n cleanInput = cleanInput.slice(2);\n } else if (fromBase === 'octal' && cleanInput.startsWith('0o')) {\n cleanInput = cleanInput.slice(2);\n } else if (fromBase === 'hex' && cleanInput.startsWith('0x')) {\n cleanInput = cleanInput.slice(2);\n }\n\n const decimalValue = parseInt(cleanInput, radix);\n if (isNaN(decimalValue)) {\n throw new Error(`Invalid input '${input}' for base '${fromBase}'`);\n }\n\n return {\n input,\n fromBase,\n binary: '0b' + decimalValue.toString(2),\n octal: '0o' + decimalValue.toString(8),\n decimal: decimalValue.toString(10),\n hex: '0x' + decimalValue.toString(16),\n };\n}\n","import type { StatisticsResult } from './types';\n\nfunction getPercentile(sorted: number[], p: number): number {\n if (sorted.length === 1) return sorted[0];\n\n const index = (p / 100) * (sorted.length - 1);\n const lower = Math.floor(index);\n const upper = Math.ceil(index);\n\n if (lower === upper) return sorted[lower];\n\n const fraction = index - lower;\n return sorted[lower] + fraction * (sorted[upper] - sorted[lower]);\n}\n\nexport function calculateStats(numbers: number[]): StatisticsResult {\n if (numbers.length === 0) {\n throw new Error('Cannot calculate statistics for an empty array');\n }\n\n const count = numbers.length;\n const sum = numbers.reduce((acc, n) => acc + n, 0);\n const mean = sum / count;\n\n const sorted = [...numbers].sort((a, b) => a - b);\n\n // Median\n let median: number;\n const mid = Math.floor(sorted.length / 2);\n if (sorted.length % 2 === 0) {\n median = (sorted[mid - 1] + sorted[mid]) / 2;\n } else {\n median = sorted[mid];\n }\n\n // Mode\n const frequencyMap = new Map<number, number>();\n for (const n of numbers) {\n frequencyMap.set(n, (frequencyMap.get(n) || 0) + 1);\n }\n let maxFrequency = 0;\n for (const freq of frequencyMap.values()) {\n if (freq > maxFrequency) maxFrequency = freq;\n }\n const mode: number[] = [];\n for (const [value, freq] of frequencyMap.entries()) {\n if (freq === maxFrequency) mode.push(value);\n }\n mode.sort((a, b) => a - b);\n\n const min = sorted[0];\n const max = sorted[sorted.length - 1];\n const range = max - min;\n\n // Variance (population variance)\n const variance = numbers.reduce((acc, n) => acc + Math.pow(n - mean, 2), 0) / count;\n const standardDeviation = Math.sqrt(variance);\n\n // Percentiles using linear interpolation\n const percentiles = {\n p25: getPercentile(sorted, 25),\n p50: getPercentile(sorted, 50),\n p75: getPercentile(sorted, 75),\n p90: getPercentile(sorted, 90),\n p99: getPercentile(sorted, 99),\n };\n\n return {\n count,\n sum,\n mean,\n median,\n mode,\n min,\n max,\n range,\n standardDeviation,\n variance,\n percentiles,\n };\n}\n","import type { NumberFormatOptions } from './types';\n\nexport function formatNumber(value: number, options?: NumberFormatOptions): string {\n const locale = options?.locale ?? 'en-US';\n\n const formatOptions: Intl.NumberFormatOptions = {};\n\n if (options?.style) {\n formatOptions.style = options.style;\n }\n\n if (options?.currency) {\n formatOptions.currency = options.currency;\n }\n\n if (options?.minimumFractionDigits !== undefined) {\n formatOptions.minimumFractionDigits = options.minimumFractionDigits;\n }\n\n if (options?.maximumFractionDigits !== undefined) {\n formatOptions.maximumFractionDigits = options.maximumFractionDigits;\n }\n\n return new Intl.NumberFormat(locale, formatOptions).format(value);\n}\n","import type { PercentageResult, PercentageChangeResult } from './types';\n\nexport function percentage(value: number, total: number): PercentageResult {\n if (total === 0) {\n throw new Error('Total cannot be zero');\n }\n\n const pct = (value / total) * 100;\n\n return {\n value,\n total,\n percentage: pct,\n formatted: `${pct}%`,\n };\n}\n\nexport function percentageChange(from: number, to: number): PercentageChangeResult {\n if (from === 0) {\n throw new Error('Cannot calculate percentage change from zero');\n }\n\n const change = ((to - from) / Math.abs(from)) * 100;\n const sign = change >= 0 ? '+' : '';\n const formatted = `${sign}${change}%`;\n\n return {\n from,\n to,\n change,\n formatted,\n };\n}\n"]}
@@ -0,0 +1 @@
1
+ export { C as CompressOptions, E as ExtractTextOptions, M as MergeOptions, P as PDFInfo, a as PDFMetadata, b as PDFTemplate, c as PageInfo, d as PageRange, e as PdfToTemplateOptions, R as RotateOptions, S as SplitOptions, T as TemplateColor, f as TemplateElement, g as TemplateField, h as TemplateFont, j as TemplatePage, k as TemplateToPdfOptions, W as WatermarkOptions, l as addWatermark, m as appendPages, n as compress, o as deletePage, p as extractPages, q as extractText, r as extractTextFromPages, s as formatBytes, t as getInfo, u as getMetadata, v as getPageCount, w as getPageInfo, x as hasText, y as merge, z as mergeAll, A as parsePageRanges, B as parseRangesToGroups, D as pdfToTemplate, F as reorderPages, G as rotate, H as setMetadata, I as split, J as splitEveryN, K as splitIntoSingle, L as templateToPdf, N as toUint8Array, O as validateTemplate } from '../index-RVqNunxE.mjs';
@@ -0,0 +1 @@
1
+ export { C as CompressOptions, E as ExtractTextOptions, M as MergeOptions, P as PDFInfo, a as PDFMetadata, b as PDFTemplate, c as PageInfo, d as PageRange, e as PdfToTemplateOptions, R as RotateOptions, S as SplitOptions, T as TemplateColor, f as TemplateElement, g as TemplateField, h as TemplateFont, j as TemplatePage, k as TemplateToPdfOptions, W as WatermarkOptions, l as addWatermark, m as appendPages, n as compress, o as deletePage, p as extractPages, q as extractText, r as extractTextFromPages, s as formatBytes, t as getInfo, u as getMetadata, v as getPageCount, w as getPageInfo, x as hasText, y as merge, z as mergeAll, A as parsePageRanges, B as parseRangesToGroups, D as pdfToTemplate, F as reorderPages, G as rotate, H as setMetadata, I as split, J as splitEveryN, K as splitIntoSingle, L as templateToPdf, N as toUint8Array, O as validateTemplate } from '../index-RVqNunxE.js';