@alibarbar/common 1.0.9 → 1.0.10

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 (176) hide show
  1. package/dist/{chunk-O3O67R4I.js → algorithm.cjs} +0 -2
  2. package/dist/algorithm.js +130 -44
  3. package/dist/{chunk-LOAZSPGQ.js → array.cjs} +0 -2
  4. package/dist/array.js +135 -84
  5. package/dist/{chunk-Y364QIQH.js → color.cjs} +0 -2
  6. package/dist/color.js +127 -40
  7. package/dist/{chunk-DYBSRI7V.js → crypto.cjs} +0 -2
  8. package/dist/crypto.js +172 -60
  9. package/dist/{chunk-BHCRFURU.js → data-structure.cjs} +0 -2
  10. package/dist/data-structure.js +481 -32
  11. package/dist/{chunk-I3L42475.js → date.cjs} +0 -2
  12. package/dist/date.js +125 -72
  13. package/dist/{chunk-JK2SE3I2.js → dom.cjs} +0 -2
  14. package/dist/dom.js +84 -56
  15. package/dist/{chunk-7V5UQXIO.js → file.cjs} +0 -2
  16. package/dist/file.js +79 -32
  17. package/dist/{chunk-OX5PLOWB.js → i18n.cjs} +0 -2
  18. package/dist/i18n.js +78 -40
  19. package/dist/index.cjs +4132 -0
  20. package/dist/index.d.mts +3 -159
  21. package/dist/index.d.ts +3 -159
  22. package/dist/index.js +3364 -17427
  23. package/dist/{chunk-4RGXV4SJ.js → network.cjs} +0 -2
  24. package/dist/network.js +97 -28
  25. package/dist/{chunk-3FRYJPHG.js → number.cjs} +0 -2
  26. package/dist/number.js +77 -56
  27. package/dist/{chunk-27UDDVLZ.js → object.cjs} +0 -2
  28. package/dist/object.js +237 -80
  29. package/dist/{chunk-JQZBPAPO.js → performance.cjs} +0 -2
  30. package/dist/performance.js +145 -40
  31. package/dist/services.cjs +291 -0
  32. package/dist/services.d.mts +161 -0
  33. package/dist/services.d.ts +161 -0
  34. package/dist/services.js +281 -0
  35. package/dist/{chunk-WZDOPUJW.js → storage.cjs} +216 -17
  36. package/dist/storage.js +550 -31
  37. package/dist/{chunk-D7CS5EKF.js → string.cjs} +0 -2
  38. package/dist/string.js +91 -68
  39. package/dist/{chunk-56W6YECK.js → tracking.cjs} +0 -2
  40. package/dist/tracking.js +359 -52
  41. package/dist/{chunk-ZDMFMUDR.js → transform.cjs} +0 -2
  42. package/dist/transform.js +299 -32
  43. package/dist/{chunk-NJARVI6X.mjs → upload.cjs} +41 -14
  44. package/dist/upload.js +402 -20
  45. package/dist/{chunk-KGFTD255.js → url.cjs} +0 -2
  46. package/dist/url.js +91 -44
  47. package/dist/{chunk-TQN37HIN.js → validation.cjs} +0 -2
  48. package/dist/validation.js +77 -60
  49. package/package.json +7 -2
  50. package/dist/algorithm.js.map +0 -1
  51. package/dist/algorithm.mjs +0 -4
  52. package/dist/algorithm.mjs.map +0 -1
  53. package/dist/array.js.map +0 -1
  54. package/dist/array.mjs +0 -4
  55. package/dist/array.mjs.map +0 -1
  56. package/dist/chunk-27UDDVLZ.js.map +0 -1
  57. package/dist/chunk-2R2QWFJC.mjs +0 -138
  58. package/dist/chunk-2R2QWFJC.mjs.map +0 -1
  59. package/dist/chunk-3FRYJPHG.js.map +0 -1
  60. package/dist/chunk-4RGXV4SJ.js.map +0 -1
  61. package/dist/chunk-56W6YECK.js.map +0 -1
  62. package/dist/chunk-5BGSUGTI.mjs +0 -128
  63. package/dist/chunk-5BGSUGTI.mjs.map +0 -1
  64. package/dist/chunk-7E6GELHJ.mjs +0 -302
  65. package/dist/chunk-7E6GELHJ.mjs.map +0 -1
  66. package/dist/chunk-7V5UQXIO.js.map +0 -1
  67. package/dist/chunk-A4SWQXX7.mjs +0 -484
  68. package/dist/chunk-A4SWQXX7.mjs.map +0 -1
  69. package/dist/chunk-BHCRFURU.js.map +0 -1
  70. package/dist/chunk-CDSGEAOK.mjs +0 -80
  71. package/dist/chunk-CDSGEAOK.mjs.map +0 -1
  72. package/dist/chunk-D7CS5EKF.js.map +0 -1
  73. package/dist/chunk-DYBSRI7V.js.map +0 -1
  74. package/dist/chunk-FEBKPX5A.js +0 -386
  75. package/dist/chunk-FEBKPX5A.js.map +0 -1
  76. package/dist/chunk-FJ6ZGZIA.mjs +0 -39
  77. package/dist/chunk-FJ6ZGZIA.mjs.map +0 -1
  78. package/dist/chunk-HLDFI7R2.mjs +0 -175
  79. package/dist/chunk-HLDFI7R2.mjs.map +0 -1
  80. package/dist/chunk-I3L42475.js.map +0 -1
  81. package/dist/chunk-JBLX27WD.mjs +0 -240
  82. package/dist/chunk-JBLX27WD.mjs.map +0 -1
  83. package/dist/chunk-JHZ7M2MR.mjs +0 -133
  84. package/dist/chunk-JHZ7M2MR.mjs.map +0 -1
  85. package/dist/chunk-JK2SE3I2.js.map +0 -1
  86. package/dist/chunk-JQZBPAPO.js.map +0 -1
  87. package/dist/chunk-JXYGC2C5.mjs +0 -100
  88. package/dist/chunk-JXYGC2C5.mjs.map +0 -1
  89. package/dist/chunk-KGFTD255.js.map +0 -1
  90. package/dist/chunk-LBHBNPNJ.mjs +0 -148
  91. package/dist/chunk-LBHBNPNJ.mjs.map +0 -1
  92. package/dist/chunk-LF4CILQS.mjs +0 -87
  93. package/dist/chunk-LF4CILQS.mjs.map +0 -1
  94. package/dist/chunk-LOAZSPGQ.js.map +0 -1
  95. package/dist/chunk-NJARVI6X.mjs.map +0 -1
  96. package/dist/chunk-NSSDYX2U.mjs +0 -80
  97. package/dist/chunk-NSSDYX2U.mjs.map +0 -1
  98. package/dist/chunk-O3O67R4I.js.map +0 -1
  99. package/dist/chunk-OIXQ3E6W.mjs +0 -354
  100. package/dist/chunk-OIXQ3E6W.mjs.map +0 -1
  101. package/dist/chunk-OX5PLOWB.js.map +0 -1
  102. package/dist/chunk-PJ7UCTX4.mjs +0 -362
  103. package/dist/chunk-PJ7UCTX4.mjs.map +0 -1
  104. package/dist/chunk-PR4QN5HX.js +0 -44
  105. package/dist/chunk-PR4QN5HX.js.map +0 -1
  106. package/dist/chunk-QIBE7GVN.mjs +0 -81
  107. package/dist/chunk-QIBE7GVN.mjs.map +0 -1
  108. package/dist/chunk-QIOC54LQ.mjs +0 -130
  109. package/dist/chunk-QIOC54LQ.mjs.map +0 -1
  110. package/dist/chunk-TQN37HIN.js.map +0 -1
  111. package/dist/chunk-WZDOPUJW.js.map +0 -1
  112. package/dist/chunk-XJTZDXSR.mjs +0 -94
  113. package/dist/chunk-XJTZDXSR.mjs.map +0 -1
  114. package/dist/chunk-Y364QIQH.js.map +0 -1
  115. package/dist/chunk-YXM6Q4JS.mjs +0 -94
  116. package/dist/chunk-YXM6Q4JS.mjs.map +0 -1
  117. package/dist/chunk-ZDMFMUDR.js.map +0 -1
  118. package/dist/chunk-ZVJ6NQUM.mjs +0 -82
  119. package/dist/chunk-ZVJ6NQUM.mjs.map +0 -1
  120. package/dist/color.js.map +0 -1
  121. package/dist/color.mjs +0 -4
  122. package/dist/color.mjs.map +0 -1
  123. package/dist/crypto.js.map +0 -1
  124. package/dist/crypto.mjs +0 -4
  125. package/dist/crypto.mjs.map +0 -1
  126. package/dist/data-structure.js.map +0 -1
  127. package/dist/data-structure.mjs +0 -4
  128. package/dist/data-structure.mjs.map +0 -1
  129. package/dist/date.js.map +0 -1
  130. package/dist/date.mjs +0 -4
  131. package/dist/date.mjs.map +0 -1
  132. package/dist/dom.js.map +0 -1
  133. package/dist/dom.mjs +0 -4
  134. package/dist/dom.mjs.map +0 -1
  135. package/dist/file.js.map +0 -1
  136. package/dist/file.mjs +0 -4
  137. package/dist/file.mjs.map +0 -1
  138. package/dist/i18n.js.map +0 -1
  139. package/dist/i18n.mjs +0 -4
  140. package/dist/i18n.mjs.map +0 -1
  141. package/dist/index.js.map +0 -1
  142. package/dist/index.mjs +0 -17155
  143. package/dist/index.mjs.map +0 -1
  144. package/dist/network.js.map +0 -1
  145. package/dist/network.mjs +0 -4
  146. package/dist/network.mjs.map +0 -1
  147. package/dist/number.js.map +0 -1
  148. package/dist/number.mjs +0 -4
  149. package/dist/number.mjs.map +0 -1
  150. package/dist/object.js.map +0 -1
  151. package/dist/object.mjs +0 -4
  152. package/dist/object.mjs.map +0 -1
  153. package/dist/performance.js.map +0 -1
  154. package/dist/performance.mjs +0 -4
  155. package/dist/performance.mjs.map +0 -1
  156. package/dist/storage.js.map +0 -1
  157. package/dist/storage.mjs +0 -5
  158. package/dist/storage.mjs.map +0 -1
  159. package/dist/string.js.map +0 -1
  160. package/dist/string.mjs +0 -4
  161. package/dist/string.mjs.map +0 -1
  162. package/dist/tracking.js.map +0 -1
  163. package/dist/tracking.mjs +0 -4
  164. package/dist/tracking.mjs.map +0 -1
  165. package/dist/transform.js.map +0 -1
  166. package/dist/transform.mjs +0 -4
  167. package/dist/transform.mjs.map +0 -1
  168. package/dist/upload.js.map +0 -1
  169. package/dist/upload.mjs +0 -5
  170. package/dist/upload.mjs.map +0 -1
  171. package/dist/url.js.map +0 -1
  172. package/dist/url.mjs +0 -4
  173. package/dist/url.mjs.map +0 -1
  174. package/dist/validation.js.map +0 -1
  175. package/dist/validation.mjs +0 -4
  176. package/dist/validation.mjs.map +0 -1
@@ -1,82 +0,0 @@
1
- // src/browser/file.ts
2
- async function calculateFileMD5(file) {
3
- return new Promise((resolve, reject) => {
4
- if (typeof FileReader === "undefined") {
5
- reject(new Error("FileReader is not supported in this environment"));
6
- return;
7
- }
8
- const reader = new FileReader();
9
- reader.onload = async (e) => {
10
- try {
11
- const arrayBuffer = e.target?.result;
12
- if (!arrayBuffer) {
13
- reject(new Error("Failed to read file"));
14
- return;
15
- }
16
- const hashBuffer = await crypto.subtle.digest("SHA-256", arrayBuffer);
17
- const hashArray = Array.from(new Uint8Array(hashBuffer));
18
- const hashHex = hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
19
- resolve(hashHex);
20
- } catch (error) {
21
- reject(error);
22
- }
23
- };
24
- reader.onerror = reject;
25
- reader.readAsArrayBuffer(file);
26
- });
27
- }
28
- async function calculateBlobMD5(blob) {
29
- return new Promise((resolve, reject) => {
30
- if (typeof FileReader === "undefined") {
31
- reject(new Error("FileReader is not supported in this environment"));
32
- return;
33
- }
34
- const reader = new FileReader();
35
- reader.onload = async (e) => {
36
- try {
37
- const arrayBuffer = e.target?.result;
38
- if (!arrayBuffer) {
39
- reject(new Error("Failed to read blob"));
40
- return;
41
- }
42
- const hashBuffer = await crypto.subtle.digest("SHA-256", arrayBuffer);
43
- const hashArray = Array.from(new Uint8Array(hashBuffer));
44
- const hashHex = hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
45
- resolve(hashHex);
46
- } catch (error) {
47
- reject(error);
48
- }
49
- };
50
- reader.onerror = reject;
51
- reader.readAsArrayBuffer(blob);
52
- });
53
- }
54
- function splitFileIntoChunks(file, chunkSize) {
55
- const chunks = [];
56
- let start = 0;
57
- while (start < file.size) {
58
- const end = Math.min(start + chunkSize, file.size);
59
- chunks.push(file.slice(start, end));
60
- start = end;
61
- }
62
- return chunks;
63
- }
64
- function formatFileSize(bytes) {
65
- if (bytes === 0) return "0 B";
66
- const k = 1024;
67
- const sizes = ["B", "KB", "MB", "GB", "TB"];
68
- const i = Math.floor(Math.log(bytes) / Math.log(k));
69
- return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
70
- }
71
- function getFileExtension(fileName) {
72
- const lastDot = fileName.lastIndexOf(".");
73
- return lastDot > 0 ? fileName.slice(lastDot + 1) : "";
74
- }
75
- function getFileNameWithoutExtension(fileName) {
76
- const lastDot = fileName.lastIndexOf(".");
77
- return lastDot > 0 ? fileName.slice(0, lastDot) : fileName;
78
- }
79
-
80
- export { calculateBlobMD5, calculateFileMD5, formatFileSize, getFileExtension, getFileNameWithoutExtension, splitFileIntoChunks };
81
- //# sourceMappingURL=chunk-ZVJ6NQUM.mjs.map
82
- //# sourceMappingURL=chunk-ZVJ6NQUM.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/browser/file.ts"],"names":[],"mappings":"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","file":"chunk-ZVJ6NQUM.mjs","sourcesContent":["/**\n * 文件工具函数\n */\n\n/**\n * 计算文件的MD5值(使用浏览器原生API)\n * 注意:这里使用SHA-256作为简化实现,实际项目中建议使用spark-md5库计算真正的MD5\n * @param file - 文件对象\n * @returns Promise<string> 哈希值\n */\nexport async function calculateFileMD5(file: File): Promise<string> {\n return new Promise((resolve, reject) => {\n if (typeof FileReader === 'undefined') {\n reject(new Error('FileReader is not supported in this environment'));\n return;\n }\n\n const reader = new FileReader();\n reader.onload = async (e: ProgressEvent<FileReader>) => {\n try {\n const arrayBuffer = e.target?.result as ArrayBuffer;\n if (!arrayBuffer) {\n reject(new Error('Failed to read file'));\n return;\n }\n const hashBuffer = await crypto.subtle.digest('SHA-256', arrayBuffer);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n // 注意:这里使用SHA-256,如果需要MD5需要使用第三方库如spark-md5\n resolve(hashHex);\n } catch (error) {\n reject(error);\n }\n };\n reader.onerror = reject;\n reader.readAsArrayBuffer(file);\n });\n}\n\n/**\n * 计算Blob的MD5值\n * 注意:这里使用SHA-256作为简化实现,实际项目中建议使用spark-md5库计算真正的MD5\n * @param blob - Blob对象\n * @returns Promise<string> 哈希值\n */\nexport async function calculateBlobMD5(blob: Blob): Promise<string> {\n return new Promise((resolve, reject) => {\n if (typeof FileReader === 'undefined') {\n reject(new Error('FileReader is not supported in this environment'));\n return;\n }\n\n const reader = new FileReader();\n reader.onload = async (e: ProgressEvent<FileReader>) => {\n try {\n const arrayBuffer = e.target?.result as ArrayBuffer;\n if (!arrayBuffer) {\n reject(new Error('Failed to read blob'));\n return;\n }\n const hashBuffer = await crypto.subtle.digest('SHA-256', arrayBuffer);\n const hashArray = Array.from(new Uint8Array(hashBuffer));\n const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n resolve(hashHex);\n } catch (error) {\n reject(error);\n }\n };\n reader.onerror = reject;\n reader.readAsArrayBuffer(blob);\n });\n}\n\n/**\n * 将文件分割为多个分片\n * @param file - 文件对象\n * @param chunkSize - 分片大小(字节)\n * @returns 分片数组\n */\nexport function splitFileIntoChunks(file: File, chunkSize: number): Blob[] {\n const chunks: Blob[] = [];\n let start = 0;\n\n while (start < file.size) {\n const end = Math.min(start + chunkSize, file.size);\n chunks.push(file.slice(start, end));\n start = end;\n }\n\n return chunks;\n}\n\n/**\n * 格式化文件大小\n * @param bytes - 字节数\n * @returns 格式化后的文件大小字符串\n */\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 B';\n const k = 1024;\n const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;\n}\n\n/**\n * 获取文件扩展名\n * @param fileName - 文件名\n * @returns 扩展名(不含点)\n */\nexport function getFileExtension(fileName: string): string {\n const lastDot = fileName.lastIndexOf('.');\n return lastDot > 0 ? fileName.slice(lastDot + 1) : '';\n}\n\n/**\n * 获取文件名(不含扩展名)\n * @param fileName - 文件名\n * @returns 文件名(不含扩展名)\n */\nexport function getFileNameWithoutExtension(fileName: string): string {\n const lastDot = fileName.lastIndexOf('.');\n return lastDot > 0 ? fileName.slice(0, lastDot) : fileName;\n}\n"]}
package/dist/color.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"color.js"}
package/dist/color.mjs DELETED
@@ -1,4 +0,0 @@
1
- export { contrast, darken, hexToRgb, hslToRgb, lighten, mix, rgbToHex, rgbToHsl } from './chunk-QIOC54LQ.mjs';
2
- import './chunk-FJ6ZGZIA.mjs';
3
- //# sourceMappingURL=color.mjs.map
4
- //# sourceMappingURL=color.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"color.mjs"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"crypto.js"}
package/dist/crypto.mjs DELETED
@@ -1,4 +0,0 @@
1
- export { base64Decode, base64Encode, exportPrivateKey, exportPublicKey, generateRSAKeyPair, generateRandomString, generateUUID, hash, importPrivateKey, importPublicKey, rsaDecrypt, rsaEncrypt, sha256 } from './chunk-HLDFI7R2.mjs';
2
- import './chunk-FJ6ZGZIA.mjs';
3
- //# sourceMappingURL=crypto.mjs.map
4
- //# sourceMappingURL=crypto.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"crypto.mjs"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"data-structure.js"}
@@ -1,4 +0,0 @@
1
- export { BinaryTree, DataQueue, Graph, LRUCache, LinkedList, Stack } from './chunk-A4SWQXX7.mjs';
2
- import './chunk-FJ6ZGZIA.mjs';
3
- //# sourceMappingURL=data-structure.mjs.map
4
- //# sourceMappingURL=data-structure.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"data-structure.mjs"}
package/dist/date.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"date.js"}
package/dist/date.mjs DELETED
@@ -1,4 +0,0 @@
1
- export { addDays, addMonths, addYears, diffDays, endOfDay, formatDate, getDateFormatByGMT, getQuarter, getRelativeTime, getTimeFromGMT, getWeekNumber, isToday, isWeekday, isWeekend, isYesterday, startOfDay } from './chunk-5BGSUGTI.mjs';
2
- import './chunk-FJ6ZGZIA.mjs';
3
- //# sourceMappingURL=date.mjs.map
4
- //# sourceMappingURL=date.mjs.map
package/dist/date.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"date.mjs"}
package/dist/dom.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"dom.js"}
package/dist/dom.mjs DELETED
@@ -1,4 +0,0 @@
1
- export { $, $$, addClass, copyToClipboard, getElementOffset, getScrollPosition, getStyle, isInViewport, removeClass, scrollTo, setStyle, toggleClass } from './chunk-LF4CILQS.mjs';
2
- import './chunk-FJ6ZGZIA.mjs';
3
- //# sourceMappingURL=dom.mjs.map
4
- //# sourceMappingURL=dom.mjs.map
package/dist/dom.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"dom.mjs"}
package/dist/file.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"file.js"}
package/dist/file.mjs DELETED
@@ -1,4 +0,0 @@
1
- export { calculateBlobMD5, calculateFileMD5, formatFileSize, getFileExtension, getFileNameWithoutExtension, splitFileIntoChunks } from './chunk-ZVJ6NQUM.mjs';
2
- import './chunk-FJ6ZGZIA.mjs';
3
- //# sourceMappingURL=file.mjs.map
4
- //# sourceMappingURL=file.mjs.map
package/dist/file.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"file.mjs"}
package/dist/i18n.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"i18n.js"}
package/dist/i18n.mjs DELETED
@@ -1,4 +0,0 @@
1
- export { createTranslator, formatCurrencyI18n, formatDateI18n, formatNumberI18n, formatRelativeTime, getLocale, pluralize, translate } from './chunk-QIBE7GVN.mjs';
2
- import './chunk-FJ6ZGZIA.mjs';
3
- //# sourceMappingURL=i18n.mjs.map
4
- //# sourceMappingURL=i18n.mjs.map
package/dist/i18n.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"i18n.mjs"}