@alibarbar/common 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 (210) hide show
  1. package/README.md +338 -0
  2. package/dist/algorithm.d.mts +66 -0
  3. package/dist/algorithm.d.ts +66 -0
  4. package/dist/algorithm.js +44 -0
  5. package/dist/algorithm.js.map +1 -0
  6. package/dist/algorithm.mjs +3 -0
  7. package/dist/algorithm.mjs.map +1 -0
  8. package/dist/array.d.mts +139 -0
  9. package/dist/array.d.ts +139 -0
  10. package/dist/array.js +84 -0
  11. package/dist/array.js.map +1 -0
  12. package/dist/array.mjs +3 -0
  13. package/dist/array.mjs.map +1 -0
  14. package/dist/chunk-27UDDVLZ.js +259 -0
  15. package/dist/chunk-27UDDVLZ.js.map +1 -0
  16. package/dist/chunk-2FFSQ573.mjs +138 -0
  17. package/dist/chunk-2FFSQ573.mjs.map +1 -0
  18. package/dist/chunk-4RGXV4SJ.js +106 -0
  19. package/dist/chunk-4RGXV4SJ.js.map +1 -0
  20. package/dist/chunk-56W6YECK.js +374 -0
  21. package/dist/chunk-56W6YECK.js.map +1 -0
  22. package/dist/chunk-5BGSUGTI.mjs +128 -0
  23. package/dist/chunk-5BGSUGTI.mjs.map +1 -0
  24. package/dist/chunk-7E6GELHJ.mjs +302 -0
  25. package/dist/chunk-7E6GELHJ.mjs.map +1 -0
  26. package/dist/chunk-7V5UQXIO.js +89 -0
  27. package/dist/chunk-7V5UQXIO.js.map +1 -0
  28. package/dist/chunk-A4SWQXX7.mjs +484 -0
  29. package/dist/chunk-A4SWQXX7.mjs.map +1 -0
  30. package/dist/chunk-ALDC6LRJ.mjs +85 -0
  31. package/dist/chunk-ALDC6LRJ.mjs.map +1 -0
  32. package/dist/chunk-BHCRFURU.js +491 -0
  33. package/dist/chunk-BHCRFURU.js.map +1 -0
  34. package/dist/chunk-D7CS5EKF.js +110 -0
  35. package/dist/chunk-D7CS5EKF.js.map +1 -0
  36. package/dist/chunk-DYBSRI7V.js +189 -0
  37. package/dist/chunk-DYBSRI7V.js.map +1 -0
  38. package/dist/chunk-F3LAGHPG.js +332 -0
  39. package/dist/chunk-F3LAGHPG.js.map +1 -0
  40. package/dist/chunk-HLDFI7R2.mjs +175 -0
  41. package/dist/chunk-HLDFI7R2.mjs.map +1 -0
  42. package/dist/chunk-HME2N3VY.mjs +354 -0
  43. package/dist/chunk-HME2N3VY.mjs.map +1 -0
  44. package/dist/chunk-I3L42475.js +145 -0
  45. package/dist/chunk-I3L42475.js.map +1 -0
  46. package/dist/chunk-JBLX27WD.mjs +240 -0
  47. package/dist/chunk-JBLX27WD.mjs.map +1 -0
  48. package/dist/chunk-JHZ7M2MR.mjs +133 -0
  49. package/dist/chunk-JHZ7M2MR.mjs.map +1 -0
  50. package/dist/chunk-JK2SE3I2.js +100 -0
  51. package/dist/chunk-JK2SE3I2.js.map +1 -0
  52. package/dist/chunk-JQZBPAPO.js +157 -0
  53. package/dist/chunk-JQZBPAPO.js.map +1 -0
  54. package/dist/chunk-JXYGC2C5.mjs +100 -0
  55. package/dist/chunk-JXYGC2C5.mjs.map +1 -0
  56. package/dist/chunk-KGFTD255.js +104 -0
  57. package/dist/chunk-KGFTD255.js.map +1 -0
  58. package/dist/chunk-LBHBNPNJ.mjs +148 -0
  59. package/dist/chunk-LBHBNPNJ.mjs.map +1 -0
  60. package/dist/chunk-LCXGZISK.js +158 -0
  61. package/dist/chunk-LCXGZISK.js.map +1 -0
  62. package/dist/chunk-LF4CILQS.mjs +87 -0
  63. package/dist/chunk-LF4CILQS.mjs.map +1 -0
  64. package/dist/chunk-MMR6XQNX.js +98 -0
  65. package/dist/chunk-MMR6XQNX.js.map +1 -0
  66. package/dist/chunk-NSSDYX2U.mjs +80 -0
  67. package/dist/chunk-NSSDYX2U.mjs.map +1 -0
  68. package/dist/chunk-O3O67R4I.js +143 -0
  69. package/dist/chunk-O3O67R4I.js.map +1 -0
  70. package/dist/chunk-OX5PLOWB.js +90 -0
  71. package/dist/chunk-OX5PLOWB.js.map +1 -0
  72. package/dist/chunk-PJ7UCTX4.mjs +362 -0
  73. package/dist/chunk-PJ7UCTX4.mjs.map +1 -0
  74. package/dist/chunk-QIBE7GVN.mjs +81 -0
  75. package/dist/chunk-QIBE7GVN.mjs.map +1 -0
  76. package/dist/chunk-QIOC54LQ.mjs +130 -0
  77. package/dist/chunk-QIOC54LQ.mjs.map +1 -0
  78. package/dist/chunk-QV6MIQ7H.mjs +328 -0
  79. package/dist/chunk-QV6MIQ7H.mjs.map +1 -0
  80. package/dist/chunk-TQN37HIN.js +94 -0
  81. package/dist/chunk-TQN37HIN.js.map +1 -0
  82. package/dist/chunk-XJTZDXSR.mjs +94 -0
  83. package/dist/chunk-XJTZDXSR.mjs.map +1 -0
  84. package/dist/chunk-XVUE53T3.js +361 -0
  85. package/dist/chunk-XVUE53T3.js.map +1 -0
  86. package/dist/chunk-Y364QIQH.js +139 -0
  87. package/dist/chunk-Y364QIQH.js.map +1 -0
  88. package/dist/chunk-YXM6Q4JS.mjs +94 -0
  89. package/dist/chunk-YXM6Q4JS.mjs.map +1 -0
  90. package/dist/chunk-ZDMFMUDR.js +309 -0
  91. package/dist/chunk-ZDMFMUDR.js.map +1 -0
  92. package/dist/chunk-ZVJ6NQUM.mjs +82 -0
  93. package/dist/chunk-ZVJ6NQUM.mjs.map +1 -0
  94. package/dist/color.d.mts +74 -0
  95. package/dist/color.d.ts +74 -0
  96. package/dist/color.js +40 -0
  97. package/dist/color.js.map +1 -0
  98. package/dist/color.mjs +3 -0
  99. package/dist/color.mjs.map +1 -0
  100. package/dist/crypto.d.mts +92 -0
  101. package/dist/crypto.d.ts +92 -0
  102. package/dist/crypto.js +60 -0
  103. package/dist/crypto.js.map +1 -0
  104. package/dist/crypto.mjs +3 -0
  105. package/dist/crypto.mjs.map +1 -0
  106. package/dist/data-structure.d.mts +213 -0
  107. package/dist/data-structure.d.ts +213 -0
  108. package/dist/data-structure.js +32 -0
  109. package/dist/data-structure.js.map +1 -0
  110. package/dist/data-structure.mjs +3 -0
  111. package/dist/data-structure.mjs.map +1 -0
  112. package/dist/date.d.mts +108 -0
  113. package/dist/date.d.ts +108 -0
  114. package/dist/date.js +72 -0
  115. package/dist/date.js.map +1 -0
  116. package/dist/date.mjs +3 -0
  117. package/dist/date.mjs.map +1 -0
  118. package/dist/dom.d.mts +92 -0
  119. package/dist/dom.d.ts +92 -0
  120. package/dist/dom.js +56 -0
  121. package/dist/dom.js.map +1 -0
  122. package/dist/dom.mjs +3 -0
  123. package/dist/dom.mjs.map +1 -0
  124. package/dist/file.d.mts +44 -0
  125. package/dist/file.d.ts +44 -0
  126. package/dist/file.js +32 -0
  127. package/dist/file.js.map +1 -0
  128. package/dist/file.mjs +3 -0
  129. package/dist/file.mjs.map +1 -0
  130. package/dist/i18n.d.mts +77 -0
  131. package/dist/i18n.d.ts +77 -0
  132. package/dist/i18n.js +40 -0
  133. package/dist/i18n.js.map +1 -0
  134. package/dist/i18n.mjs +3 -0
  135. package/dist/i18n.mjs.map +1 -0
  136. package/dist/index.d.mts +155 -0
  137. package/dist/index.d.ts +155 -0
  138. package/dist/index.js +839 -0
  139. package/dist/index.js.map +1 -0
  140. package/dist/index.mjs +22 -0
  141. package/dist/index.mjs.map +1 -0
  142. package/dist/network.d.mts +47 -0
  143. package/dist/network.d.ts +47 -0
  144. package/dist/network.js +28 -0
  145. package/dist/network.js.map +1 -0
  146. package/dist/network.mjs +3 -0
  147. package/dist/network.mjs.map +1 -0
  148. package/dist/number.d.mts +100 -0
  149. package/dist/number.d.ts +100 -0
  150. package/dist/number.js +56 -0
  151. package/dist/number.js.map +1 -0
  152. package/dist/number.mjs +3 -0
  153. package/dist/number.mjs.map +1 -0
  154. package/dist/object.d.mts +132 -0
  155. package/dist/object.d.ts +132 -0
  156. package/dist/object.js +80 -0
  157. package/dist/object.js.map +1 -0
  158. package/dist/object.mjs +3 -0
  159. package/dist/object.mjs.map +1 -0
  160. package/dist/performance.d.mts +85 -0
  161. package/dist/performance.d.ts +85 -0
  162. package/dist/performance.js +40 -0
  163. package/dist/performance.js.map +1 -0
  164. package/dist/performance.mjs +3 -0
  165. package/dist/performance.mjs.map +1 -0
  166. package/dist/storage.d.mts +176 -0
  167. package/dist/storage.d.ts +176 -0
  168. package/dist/storage.js +33 -0
  169. package/dist/storage.js.map +1 -0
  170. package/dist/storage.mjs +4 -0
  171. package/dist/storage.mjs.map +1 -0
  172. package/dist/string.d.mts +105 -0
  173. package/dist/string.d.ts +105 -0
  174. package/dist/string.js +68 -0
  175. package/dist/string.js.map +1 -0
  176. package/dist/string.mjs +3 -0
  177. package/dist/string.mjs.map +1 -0
  178. package/dist/tracking.d.mts +182 -0
  179. package/dist/tracking.d.ts +182 -0
  180. package/dist/tracking.js +52 -0
  181. package/dist/tracking.js.map +1 -0
  182. package/dist/tracking.mjs +3 -0
  183. package/dist/tracking.mjs.map +1 -0
  184. package/dist/transform.d.mts +53 -0
  185. package/dist/transform.d.ts +53 -0
  186. package/dist/transform.js +32 -0
  187. package/dist/transform.js.map +1 -0
  188. package/dist/transform.mjs +3 -0
  189. package/dist/transform.mjs.map +1 -0
  190. package/dist/upload-DzlQtUBc.d.mts +202 -0
  191. package/dist/upload-DzlQtUBc.d.ts +202 -0
  192. package/dist/upload.d.mts +1 -0
  193. package/dist/upload.d.ts +1 -0
  194. package/dist/upload.js +17 -0
  195. package/dist/upload.js.map +1 -0
  196. package/dist/upload.mjs +4 -0
  197. package/dist/upload.mjs.map +1 -0
  198. package/dist/url.d.mts +82 -0
  199. package/dist/url.d.ts +82 -0
  200. package/dist/url.js +44 -0
  201. package/dist/url.js.map +1 -0
  202. package/dist/url.mjs +3 -0
  203. package/dist/url.mjs.map +1 -0
  204. package/dist/validation.d.mts +83 -0
  205. package/dist/validation.d.ts +83 -0
  206. package/dist/validation.js +60 -0
  207. package/dist/validation.js.map +1 -0
  208. package/dist/validation.mjs +3 -0
  209. package/dist/validation.mjs.map +1 -0
  210. package/package.json +170 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/data/transform.ts"],"names":[],"mappings":"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","file":"chunk-ZDMFMUDR.js","sourcesContent":["/**\n * 数据转换工具函数\n */\n\n/**\n * CSV转JSON\n * @param csv - CSV字符串\n * @param options - 选项\n * @returns JSON对象数组\n */\nexport function csvToJson<T extends Record<string, unknown> = Record<string, string>>(\n csv: string,\n options: {\n delimiter?: string;\n headers?: string[];\n skipEmptyLines?: boolean;\n } = {}\n): T[] {\n const { delimiter = ',', headers, skipEmptyLines = true } = options;\n\n const lines = csv.split(/\\r?\\n/).filter(line => {\n if (skipEmptyLines) {\n return line.trim().length > 0;\n }\n return true;\n });\n\n if (lines.length === 0) return [];\n\n // 解析第一行作为表头(如果没有提供)\n const headerRow = headers || lines[0].split(delimiter).map(h => h.trim());\n const dataLines = headers ? lines : lines.slice(1);\n\n return dataLines.map(line => {\n const values = parseCsvLine(line, delimiter);\n const obj: Record<string, unknown> = {};\n headerRow.forEach((header, index) => {\n const val = values[index];\n obj[header] = val !== undefined ? val : '';\n });\n return obj as T;\n });\n}\n\n/**\n * 解析CSV行(处理引号内的逗号)\n */\nfunction parseCsvLine(line: string, delimiter: string): string[] {\n const result: string[] = [];\n let current = '';\n let inQuotes = false;\n\n for (let i = 0; i < line.length; i++) {\n const char = line[i];\n const nextChar = line[i + 1];\n\n if (char === '\"') {\n if (inQuotes && nextChar === '\"') {\n // 转义的引号\n current += '\"';\n i++; // 跳过下一个引号\n } else {\n // 切换引号状态\n inQuotes = !inQuotes;\n }\n } else if (char === delimiter && !inQuotes) {\n result.push(current.trim());\n current = '';\n } else {\n current += char;\n }\n }\n\n result.push(current.trim());\n return result;\n}\n\n/**\n * JSON转CSV\n * @param data - JSON对象数组\n * @param options - 选项\n * @returns CSV字符串\n */\nexport function jsonToCsv<T extends Record<string, unknown>>(\n data: T[],\n options: {\n delimiter?: string;\n headers?: string[];\n includeHeaders?: boolean;\n } = {}\n): string {\n const { delimiter = ',', headers, includeHeaders = true } = options;\n\n if (data.length === 0) return '';\n\n // 获取表头\n const headerRow = headers || Object.keys(data[0]);\n\n const lines: string[] = [];\n\n // 添加表头\n if (includeHeaders) {\n lines.push(headerRow.map(escapeCsvValue).join(delimiter));\n }\n\n // 添加数据行\n data.forEach(item => {\n const values = headerRow.map(header => {\n const value = item[header];\n return escapeCsvValue(value != null ? String(value) : '');\n });\n lines.push(values.join(delimiter));\n });\n\n return lines.join('\\n');\n}\n\n/**\n * 转义CSV值(处理引号和换行)\n */\nfunction escapeCsvValue(value: string): string {\n if (value.includes(',') || value.includes('\"') || value.includes('\\n')) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n}\n\n/**\n * XML转JSON\n * @param xml - XML字符串\n * @returns JSON对象\n */\nexport function xmlToJson(xml: string): Record<string, unknown> {\n const parser = new DOMParser();\n const doc = parser.parseFromString(xml, 'text/xml');\n\n // 检查解析错误\n const parseError = doc.querySelector('parsererror');\n if (parseError) {\n throw new Error('Invalid XML: ' + parseError.textContent);\n }\n\n const result = xmlNodeToJson(doc.documentElement);\n if (typeof result === 'object' && result !== null && !Array.isArray(result)) {\n return result as Record<string, unknown>;\n }\n return { value: result };\n}\n\n/**\n * XML节点转JSON对象\n */\nfunction xmlNodeToJson(node: Node): unknown {\n // 文本节点\n if (node.nodeType === Node.TEXT_NODE) {\n const text = node.textContent?.trim();\n return text || null;\n }\n\n // 元素节点\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = node as Element;\n const result: Record<string, unknown> = {};\n\n // 处理属性\n if (element.attributes.length > 0) {\n const attrs: Record<string, string> = {};\n for (let i = 0; i < element.attributes.length; i++) {\n const attr = element.attributes[i];\n attrs[attr.name] = attr.value;\n }\n result['@attributes'] = attrs;\n }\n\n // 处理子节点\n const children: Record<string, unknown[]> = {};\n let hasText = false;\n let textContent = '';\n\n for (let i = 0; i < element.childNodes.length; i++) {\n const child = element.childNodes[i];\n\n if (child.nodeType === Node.TEXT_NODE) {\n const text = child.textContent?.trim();\n if (text) {\n textContent += text;\n hasText = true;\n }\n } else if (child.nodeType === Node.ELEMENT_NODE) {\n const childElement = child as Element;\n const childName = childElement.tagName;\n const childValue = xmlNodeToJson(childElement);\n\n if (!children[childName]) {\n children[childName] = [];\n }\n children[childName].push(childValue);\n }\n }\n\n // 合并结果\n if (hasText && Object.keys(children).length === 0) {\n return textContent;\n }\n\n Object.keys(children).forEach(key => {\n result[key] = children[key].length === 1 ? children[key][0] : children[key];\n });\n\n if (hasText) {\n result['#text'] = textContent;\n }\n\n return result;\n }\n\n return null;\n}\n\n/**\n * JSON转XML\n * @param json - JSON对象\n * @param rootTag - 根标签名,默认为 'root'\n * @returns XML字符串\n */\nexport function jsonToXml(json: unknown, rootTag = 'root'): string {\n return jsonToXmlElement(json, rootTag);\n}\n\n/**\n * JSON对象转XML元素\n */\nfunction jsonToXmlElement(obj: unknown, tagName: string): string {\n if (obj === null || obj === undefined) {\n return `<${tagName}></${tagName}>`;\n }\n\n if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean') {\n return `<${tagName}>${escapeXml(String(obj))}</${tagName}>`;\n }\n\n if (Array.isArray(obj)) {\n return obj.map(item => jsonToXmlElement(item, tagName)).join('');\n }\n\n if (typeof obj === 'object') {\n const record = obj as Record<string, unknown>;\n let xml = `<${tagName}`;\n\n // 处理属性\n if (record['@attributes']) {\n const attrs = record['@attributes'] as Record<string, unknown>;\n Object.keys(attrs).forEach(key => {\n xml += ` ${key}=\"${escapeXml(String(attrs[key]))}\"`;\n });\n }\n\n xml += '>';\n\n // 处理文本内容\n if (record['#text']) {\n xml += escapeXml(String(record['#text']));\n }\n\n // 处理子元素\n Object.keys(record).forEach(key => {\n if (key !== '@attributes' && key !== '#text') {\n const value = record[key];\n if (Array.isArray(value)) {\n value.forEach(item => {\n xml += jsonToXmlElement(item, key);\n });\n } else {\n xml += jsonToXmlElement(value, key);\n }\n }\n });\n\n xml += `</${tagName}>`;\n return xml;\n }\n\n return `<${tagName}></${tagName}>`;\n}\n\n/**\n * 转义XML特殊字符\n */\nfunction escapeXml(str: string): string {\n return str\n .replace(/&/g, '&amp;')\n .replace(/</g, '&lt;')\n .replace(/>/g, '&gt;')\n .replace(/\"/g, '&quot;')\n .replace(/'/g, '&apos;');\n}\n\n/**\n * YAML转JSON\n * @param yaml - YAML字符串\n * @returns JSON对象\n */\nexport function yamlToJson(yaml: string): unknown {\n // 简单的YAML解析器(支持基本语法)\n // 注意:这是一个简化版本,完整的YAML解析需要更复杂的实现\n const lines = yaml.split(/\\r?\\n/);\n const result: Record<string, unknown> = {};\n const stack: Array<{ obj: Record<string, unknown>; indent: number }> = [\n { obj: result, indent: -1 },\n ];\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n const trimmed = line.trim();\n\n // 跳过空行和注释\n if (!trimmed || trimmed.startsWith('#')) continue;\n\n // 计算缩进\n const indent = line.length - line.trimStart().length;\n const current = stack[stack.length - 1];\n\n // 如果缩进减少,弹出栈\n while (stack.length > 1 && indent <= current.indent) {\n stack.pop();\n }\n\n const match = trimmed.match(/^([^:]+):\\s*(.*)$/);\n if (match) {\n const key = match[1].trim();\n const valueStr = match[2].trim();\n\n // 处理值\n let parsedValue: unknown;\n if (valueStr === '') {\n // 空值,可能是对象或数组\n parsedValue = {};\n } else if (valueStr === '[]') {\n parsedValue = [];\n } else if (valueStr.startsWith('[') && valueStr.endsWith(']')) {\n // 数组\n parsedValue = parseYamlArray(valueStr);\n } else if (valueStr === 'true' || valueStr === 'True') {\n parsedValue = true;\n } else if (valueStr === 'false' || valueStr === 'False') {\n parsedValue = false;\n } else if (valueStr === 'null' || valueStr === 'Null' || valueStr === '~') {\n parsedValue = null;\n } else if (/^-?\\d+$/.test(valueStr)) {\n parsedValue = parseInt(valueStr, 10);\n } else if (/^-?\\d+\\.\\d+$/.test(valueStr)) {\n parsedValue = parseFloat(valueStr);\n } else if (valueStr.startsWith('\"') && valueStr.endsWith('\"')) {\n parsedValue = valueStr.slice(1, -1).replace(/\\\\\"/g, '\"');\n } else if (valueStr.startsWith(\"'\") && valueStr.endsWith(\"'\")) {\n parsedValue = valueStr.slice(1, -1);\n } else {\n parsedValue = valueStr;\n }\n\n const currentObj = stack[stack.length - 1].obj;\n if (typeof parsedValue === 'object' && parsedValue !== null && !Array.isArray(parsedValue)) {\n stack.push({ obj: parsedValue as Record<string, unknown>, indent });\n }\n currentObj[key] = parsedValue;\n }\n }\n\n return result;\n}\n\n/**\n * 解析YAML数组\n */\nfunction parseYamlArray(str: string): unknown[] {\n const content = str.slice(1, -1).trim();\n if (!content) return [];\n\n const items: unknown[] = [];\n const parts = content.split(',').map(s => s.trim());\n\n parts.forEach(part => {\n if (part.startsWith('\"') && part.endsWith('\"')) {\n items.push(part.slice(1, -1).replace(/\\\\\"/g, '\"'));\n } else if (part.startsWith(\"'\") && part.endsWith(\"'\")) {\n items.push(part.slice(1, -1));\n } else if (part === 'true' || part === 'True') {\n items.push(true);\n } else if (part === 'false' || part === 'False') {\n items.push(false);\n } else if (part === 'null' || part === 'Null') {\n items.push(null);\n } else if (/^-?\\d+$/.test(part)) {\n items.push(parseInt(part, 10));\n } else if (/^-?\\d+\\.\\d+$/.test(part)) {\n items.push(parseFloat(part));\n } else {\n items.push(part);\n }\n });\n\n return items;\n}\n\n/**\n * JSON转YAML\n * @param json - JSON对象\n * @param indent - 缩进空格数,默认为 2\n * @returns YAML字符串\n */\nexport function jsonToYaml(json: unknown, indent = 2): string {\n return jsonToYamlValue(json, 0, indent);\n}\n\n/**\n * JSON值转YAML字符串\n */\nfunction jsonToYamlValue(value: unknown, level: number, indent: number): string {\n const spaces = ' '.repeat(level * indent);\n\n if (value === null) {\n return 'null';\n }\n\n if (typeof value === 'string') {\n // 如果包含特殊字符,使用引号\n if (value.includes(':') || value.includes('\\n') || value.includes('\"')) {\n return `\"${value.replace(/\"/g, '\\\\\"')}\"`;\n }\n return value;\n }\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n return String(value);\n }\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return '[]';\n }\n return value.map(item => `${spaces}- ${jsonToYamlValue(item, level + 1, indent)}`).join('\\n');\n }\n\n if (typeof value === 'object') {\n const obj = value as Record<string, unknown>;\n const keys = Object.keys(obj);\n\n if (keys.length === 0) {\n return '{}';\n }\n\n return keys\n .map(key => {\n const val: unknown = obj[key];\n const keyStr = /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(key) ? key : `\"${key}\"`;\n const valStr = jsonToYamlValue(val, level + 1, indent);\n\n // 如果是对象或数组,需要换行\n if (typeof val === 'object' && val !== null) {\n return `${spaces}${keyStr}:\\n${valStr}`;\n }\n\n return `${spaces}${keyStr}: ${valStr}`;\n })\n .join('\\n');\n }\n\n return String(value);\n}\n"]}
@@ -0,0 +1,82 @@
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
@@ -0,0 +1 @@
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"]}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * 颜色工具函数
3
+ */
4
+ /**
5
+ * RGB颜色类型
6
+ */
7
+ interface RGB {
8
+ r: number;
9
+ g: number;
10
+ b: number;
11
+ }
12
+ /**
13
+ * HSL颜色类型
14
+ */
15
+ interface HSL {
16
+ h: number;
17
+ s: number;
18
+ l: number;
19
+ }
20
+ /**
21
+ * 十六进制转RGB
22
+ * @param hex - 十六进制颜色值(如 '#FF0000' 或 'FF0000')
23
+ * @returns RGB对象
24
+ */
25
+ declare function hexToRgb(hex: string): RGB;
26
+ /**
27
+ * RGB转十六进制
28
+ * @param rgb - RGB对象或字符串(如 'rgb(255, 0, 0)')
29
+ * @returns 十六进制颜色值(如 '#FF0000')
30
+ */
31
+ declare function rgbToHex(rgb: RGB | string): string;
32
+ /**
33
+ * RGB转HSL
34
+ * @param rgb - RGB对象
35
+ * @returns HSL对象
36
+ */
37
+ declare function rgbToHsl(rgb: RGB): HSL;
38
+ /**
39
+ * HSL转RGB
40
+ * @param hsl - HSL对象
41
+ * @returns RGB对象
42
+ */
43
+ declare function hslToRgb(hsl: HSL): RGB;
44
+ /**
45
+ * 颜色变亮
46
+ * @param color - 十六进制颜色值或RGB对象
47
+ * @param amount - 变亮程度(0-100)
48
+ * @returns 新的十六进制颜色值
49
+ */
50
+ declare function lighten(color: string | RGB, amount: number): string;
51
+ /**
52
+ * 颜色变暗
53
+ * @param color - 十六进制颜色值或RGB对象
54
+ * @param amount - 变暗程度(0-100)
55
+ * @returns 新的十六进制颜色值
56
+ */
57
+ declare function darken(color: string | RGB, amount: number): string;
58
+ /**
59
+ * 颜色混合
60
+ * @param color1 - 第一个颜色(十六进制)
61
+ * @param color2 - 第二个颜色(十六进制)
62
+ * @param ratio - 混合比例(0-1),0表示完全使用color1,1表示完全使用color2
63
+ * @returns 混合后的十六进制颜色值
64
+ */
65
+ declare function mix(color1: string, color2: string, ratio: number): string;
66
+ /**
67
+ * 计算颜色对比度(WCAG标准)
68
+ * @param color1 - 第一个颜色(十六进制)
69
+ * @param color2 - 第二个颜色(十六进制)
70
+ * @returns 对比度比值(1-21,4.5以上为可接受对比度)
71
+ */
72
+ declare function contrast(color1: string, color2: string): number;
73
+
74
+ export { type HSL, type RGB, contrast, darken, hexToRgb, hslToRgb, lighten, mix, rgbToHex, rgbToHsl };
@@ -0,0 +1,74 @@
1
+ /**
2
+ * 颜色工具函数
3
+ */
4
+ /**
5
+ * RGB颜色类型
6
+ */
7
+ interface RGB {
8
+ r: number;
9
+ g: number;
10
+ b: number;
11
+ }
12
+ /**
13
+ * HSL颜色类型
14
+ */
15
+ interface HSL {
16
+ h: number;
17
+ s: number;
18
+ l: number;
19
+ }
20
+ /**
21
+ * 十六进制转RGB
22
+ * @param hex - 十六进制颜色值(如 '#FF0000' 或 'FF0000')
23
+ * @returns RGB对象
24
+ */
25
+ declare function hexToRgb(hex: string): RGB;
26
+ /**
27
+ * RGB转十六进制
28
+ * @param rgb - RGB对象或字符串(如 'rgb(255, 0, 0)')
29
+ * @returns 十六进制颜色值(如 '#FF0000')
30
+ */
31
+ declare function rgbToHex(rgb: RGB | string): string;
32
+ /**
33
+ * RGB转HSL
34
+ * @param rgb - RGB对象
35
+ * @returns HSL对象
36
+ */
37
+ declare function rgbToHsl(rgb: RGB): HSL;
38
+ /**
39
+ * HSL转RGB
40
+ * @param hsl - HSL对象
41
+ * @returns RGB对象
42
+ */
43
+ declare function hslToRgb(hsl: HSL): RGB;
44
+ /**
45
+ * 颜色变亮
46
+ * @param color - 十六进制颜色值或RGB对象
47
+ * @param amount - 变亮程度(0-100)
48
+ * @returns 新的十六进制颜色值
49
+ */
50
+ declare function lighten(color: string | RGB, amount: number): string;
51
+ /**
52
+ * 颜色变暗
53
+ * @param color - 十六进制颜色值或RGB对象
54
+ * @param amount - 变暗程度(0-100)
55
+ * @returns 新的十六进制颜色值
56
+ */
57
+ declare function darken(color: string | RGB, amount: number): string;
58
+ /**
59
+ * 颜色混合
60
+ * @param color1 - 第一个颜色(十六进制)
61
+ * @param color2 - 第二个颜色(十六进制)
62
+ * @param ratio - 混合比例(0-1),0表示完全使用color1,1表示完全使用color2
63
+ * @returns 混合后的十六进制颜色值
64
+ */
65
+ declare function mix(color1: string, color2: string, ratio: number): string;
66
+ /**
67
+ * 计算颜色对比度(WCAG标准)
68
+ * @param color1 - 第一个颜色(十六进制)
69
+ * @param color2 - 第二个颜色(十六进制)
70
+ * @returns 对比度比值(1-21,4.5以上为可接受对比度)
71
+ */
72
+ declare function contrast(color1: string, color2: string): number;
73
+
74
+ export { type HSL, type RGB, contrast, darken, hexToRgb, hslToRgb, lighten, mix, rgbToHex, rgbToHsl };
package/dist/color.js ADDED
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ var chunkY364QIQH_js = require('./chunk-Y364QIQH.js');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "contrast", {
8
+ enumerable: true,
9
+ get: function () { return chunkY364QIQH_js.contrast; }
10
+ });
11
+ Object.defineProperty(exports, "darken", {
12
+ enumerable: true,
13
+ get: function () { return chunkY364QIQH_js.darken; }
14
+ });
15
+ Object.defineProperty(exports, "hexToRgb", {
16
+ enumerable: true,
17
+ get: function () { return chunkY364QIQH_js.hexToRgb; }
18
+ });
19
+ Object.defineProperty(exports, "hslToRgb", {
20
+ enumerable: true,
21
+ get: function () { return chunkY364QIQH_js.hslToRgb; }
22
+ });
23
+ Object.defineProperty(exports, "lighten", {
24
+ enumerable: true,
25
+ get: function () { return chunkY364QIQH_js.lighten; }
26
+ });
27
+ Object.defineProperty(exports, "mix", {
28
+ enumerable: true,
29
+ get: function () { return chunkY364QIQH_js.mix; }
30
+ });
31
+ Object.defineProperty(exports, "rgbToHex", {
32
+ enumerable: true,
33
+ get: function () { return chunkY364QIQH_js.rgbToHex; }
34
+ });
35
+ Object.defineProperty(exports, "rgbToHsl", {
36
+ enumerable: true,
37
+ get: function () { return chunkY364QIQH_js.rgbToHsl; }
38
+ });
39
+ //# sourceMappingURL=color.js.map
40
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"color.js"}
package/dist/color.mjs ADDED
@@ -0,0 +1,3 @@
1
+ export { contrast, darken, hexToRgb, hslToRgb, lighten, mix, rgbToHex, rgbToHsl } from './chunk-QIOC54LQ.mjs';
2
+ //# sourceMappingURL=color.mjs.map
3
+ //# sourceMappingURL=color.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"color.mjs"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * 加密工具函数
3
+ */
4
+ /**
5
+ * SHA256加密
6
+ * @param data - 要加密的数据(字符串或ArrayBuffer)
7
+ * @returns Promise<string> 加密后的十六进制字符串
8
+ */
9
+ declare function sha256(data: string | ArrayBuffer): Promise<string>;
10
+ /**
11
+ * Base64编码
12
+ * @param data - 要编码的数据(字符串或ArrayBuffer)
13
+ * @returns Base64编码字符串
14
+ */
15
+ declare function base64Encode(data: string | ArrayBuffer): string;
16
+ /**
17
+ * Base64解码
18
+ * @param data - Base64编码字符串
19
+ * @returns 解码后的字符串
20
+ */
21
+ declare function base64Decode(data: string): string;
22
+ /**
23
+ * 生成UUID v4
24
+ * @returns UUID字符串
25
+ */
26
+ declare function generateUUID(): string;
27
+ /**
28
+ * 生成随机字符串
29
+ * @param length - 字符串长度
30
+ * @param charset - 字符集,默认为 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
31
+ * @returns 随机字符串
32
+ */
33
+ declare function generateRandomString(length: number, charset?: string): string;
34
+ /**
35
+ * 通用哈希函数(简单实现)
36
+ * @param data - 要哈希的数据
37
+ * @returns 哈希值
38
+ */
39
+ declare function hash(data: string): number;
40
+ /**
41
+ * RSA密钥对类型
42
+ */
43
+ interface RSAKeyPair {
44
+ publicKey: CryptoKey;
45
+ privateKey: CryptoKey;
46
+ }
47
+ /**
48
+ * 生成RSA密钥对
49
+ * @param modulusLength - 密钥长度,默认为 2048
50
+ * @returns Promise<RSAKeyPair> RSA密钥对
51
+ */
52
+ declare function generateRSAKeyPair(modulusLength?: number): Promise<RSAKeyPair>;
53
+ /**
54
+ * RSA加密
55
+ * @param data - 要加密的数据(字符串)
56
+ * @param publicKey - 公钥
57
+ * @returns Promise<string> Base64编码的加密数据
58
+ */
59
+ declare function rsaEncrypt(data: string, publicKey: CryptoKey): Promise<string>;
60
+ /**
61
+ * RSA解密
62
+ * @param encryptedData - Base64编码的加密数据
63
+ * @param privateKey - 私钥
64
+ * @returns Promise<string> 解密后的字符串
65
+ */
66
+ declare function rsaDecrypt(encryptedData: string, privateKey: CryptoKey): Promise<string>;
67
+ /**
68
+ * 导出公钥为Base64字符串
69
+ * @param publicKey - 公钥
70
+ * @returns Promise<string> Base64编码的公钥
71
+ */
72
+ declare function exportPublicKey(publicKey: CryptoKey): Promise<string>;
73
+ /**
74
+ * 导出私钥为Base64字符串
75
+ * @param privateKey - 私钥
76
+ * @returns Promise<string> Base64编码的私钥
77
+ */
78
+ declare function exportPrivateKey(privateKey: CryptoKey): Promise<string>;
79
+ /**
80
+ * 从Base64字符串导入公钥
81
+ * @param keyData - Base64编码的公钥
82
+ * @returns Promise<CryptoKey> 公钥对象
83
+ */
84
+ declare function importPublicKey(keyData: string): Promise<CryptoKey>;
85
+ /**
86
+ * 从Base64字符串导入私钥
87
+ * @param keyData - Base64编码的私钥
88
+ * @returns Promise<CryptoKey> 私钥对象
89
+ */
90
+ declare function importPrivateKey(keyData: string): Promise<CryptoKey>;
91
+
92
+ export { type RSAKeyPair, base64Decode, base64Encode, exportPrivateKey, exportPublicKey, generateRSAKeyPair, generateRandomString, generateUUID, hash, importPrivateKey, importPublicKey, rsaDecrypt, rsaEncrypt, sha256 };
@@ -0,0 +1,92 @@
1
+ /**
2
+ * 加密工具函数
3
+ */
4
+ /**
5
+ * SHA256加密
6
+ * @param data - 要加密的数据(字符串或ArrayBuffer)
7
+ * @returns Promise<string> 加密后的十六进制字符串
8
+ */
9
+ declare function sha256(data: string | ArrayBuffer): Promise<string>;
10
+ /**
11
+ * Base64编码
12
+ * @param data - 要编码的数据(字符串或ArrayBuffer)
13
+ * @returns Base64编码字符串
14
+ */
15
+ declare function base64Encode(data: string | ArrayBuffer): string;
16
+ /**
17
+ * Base64解码
18
+ * @param data - Base64编码字符串
19
+ * @returns 解码后的字符串
20
+ */
21
+ declare function base64Decode(data: string): string;
22
+ /**
23
+ * 生成UUID v4
24
+ * @returns UUID字符串
25
+ */
26
+ declare function generateUUID(): string;
27
+ /**
28
+ * 生成随机字符串
29
+ * @param length - 字符串长度
30
+ * @param charset - 字符集,默认为 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
31
+ * @returns 随机字符串
32
+ */
33
+ declare function generateRandomString(length: number, charset?: string): string;
34
+ /**
35
+ * 通用哈希函数(简单实现)
36
+ * @param data - 要哈希的数据
37
+ * @returns 哈希值
38
+ */
39
+ declare function hash(data: string): number;
40
+ /**
41
+ * RSA密钥对类型
42
+ */
43
+ interface RSAKeyPair {
44
+ publicKey: CryptoKey;
45
+ privateKey: CryptoKey;
46
+ }
47
+ /**
48
+ * 生成RSA密钥对
49
+ * @param modulusLength - 密钥长度,默认为 2048
50
+ * @returns Promise<RSAKeyPair> RSA密钥对
51
+ */
52
+ declare function generateRSAKeyPair(modulusLength?: number): Promise<RSAKeyPair>;
53
+ /**
54
+ * RSA加密
55
+ * @param data - 要加密的数据(字符串)
56
+ * @param publicKey - 公钥
57
+ * @returns Promise<string> Base64编码的加密数据
58
+ */
59
+ declare function rsaEncrypt(data: string, publicKey: CryptoKey): Promise<string>;
60
+ /**
61
+ * RSA解密
62
+ * @param encryptedData - Base64编码的加密数据
63
+ * @param privateKey - 私钥
64
+ * @returns Promise<string> 解密后的字符串
65
+ */
66
+ declare function rsaDecrypt(encryptedData: string, privateKey: CryptoKey): Promise<string>;
67
+ /**
68
+ * 导出公钥为Base64字符串
69
+ * @param publicKey - 公钥
70
+ * @returns Promise<string> Base64编码的公钥
71
+ */
72
+ declare function exportPublicKey(publicKey: CryptoKey): Promise<string>;
73
+ /**
74
+ * 导出私钥为Base64字符串
75
+ * @param privateKey - 私钥
76
+ * @returns Promise<string> Base64编码的私钥
77
+ */
78
+ declare function exportPrivateKey(privateKey: CryptoKey): Promise<string>;
79
+ /**
80
+ * 从Base64字符串导入公钥
81
+ * @param keyData - Base64编码的公钥
82
+ * @returns Promise<CryptoKey> 公钥对象
83
+ */
84
+ declare function importPublicKey(keyData: string): Promise<CryptoKey>;
85
+ /**
86
+ * 从Base64字符串导入私钥
87
+ * @param keyData - Base64编码的私钥
88
+ * @returns Promise<CryptoKey> 私钥对象
89
+ */
90
+ declare function importPrivateKey(keyData: string): Promise<CryptoKey>;
91
+
92
+ export { type RSAKeyPair, base64Decode, base64Encode, exportPrivateKey, exportPublicKey, generateRSAKeyPair, generateRandomString, generateUUID, hash, importPrivateKey, importPublicKey, rsaDecrypt, rsaEncrypt, sha256 };
package/dist/crypto.js ADDED
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ var chunkDYBSRI7V_js = require('./chunk-DYBSRI7V.js');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "base64Decode", {
8
+ enumerable: true,
9
+ get: function () { return chunkDYBSRI7V_js.base64Decode; }
10
+ });
11
+ Object.defineProperty(exports, "base64Encode", {
12
+ enumerable: true,
13
+ get: function () { return chunkDYBSRI7V_js.base64Encode; }
14
+ });
15
+ Object.defineProperty(exports, "exportPrivateKey", {
16
+ enumerable: true,
17
+ get: function () { return chunkDYBSRI7V_js.exportPrivateKey; }
18
+ });
19
+ Object.defineProperty(exports, "exportPublicKey", {
20
+ enumerable: true,
21
+ get: function () { return chunkDYBSRI7V_js.exportPublicKey; }
22
+ });
23
+ Object.defineProperty(exports, "generateRSAKeyPair", {
24
+ enumerable: true,
25
+ get: function () { return chunkDYBSRI7V_js.generateRSAKeyPair; }
26
+ });
27
+ Object.defineProperty(exports, "generateRandomString", {
28
+ enumerable: true,
29
+ get: function () { return chunkDYBSRI7V_js.generateRandomString; }
30
+ });
31
+ Object.defineProperty(exports, "generateUUID", {
32
+ enumerable: true,
33
+ get: function () { return chunkDYBSRI7V_js.generateUUID; }
34
+ });
35
+ Object.defineProperty(exports, "hash", {
36
+ enumerable: true,
37
+ get: function () { return chunkDYBSRI7V_js.hash; }
38
+ });
39
+ Object.defineProperty(exports, "importPrivateKey", {
40
+ enumerable: true,
41
+ get: function () { return chunkDYBSRI7V_js.importPrivateKey; }
42
+ });
43
+ Object.defineProperty(exports, "importPublicKey", {
44
+ enumerable: true,
45
+ get: function () { return chunkDYBSRI7V_js.importPublicKey; }
46
+ });
47
+ Object.defineProperty(exports, "rsaDecrypt", {
48
+ enumerable: true,
49
+ get: function () { return chunkDYBSRI7V_js.rsaDecrypt; }
50
+ });
51
+ Object.defineProperty(exports, "rsaEncrypt", {
52
+ enumerable: true,
53
+ get: function () { return chunkDYBSRI7V_js.rsaEncrypt; }
54
+ });
55
+ Object.defineProperty(exports, "sha256", {
56
+ enumerable: true,
57
+ get: function () { return chunkDYBSRI7V_js.sha256; }
58
+ });
59
+ //# sourceMappingURL=crypto.js.map
60
+ //# sourceMappingURL=crypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"crypto.js"}
@@ -0,0 +1,3 @@
1
+ export { base64Decode, base64Encode, exportPrivateKey, exportPublicKey, generateRSAKeyPair, generateRandomString, generateUUID, hash, importPrivateKey, importPublicKey, rsaDecrypt, rsaEncrypt, sha256 } from './chunk-HLDFI7R2.mjs';
2
+ //# sourceMappingURL=crypto.mjs.map
3
+ //# sourceMappingURL=crypto.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"crypto.mjs"}