@tiny-codes/react-easy 1.4.7 → 1.4.9
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.
- package/CHANGELOG.md +36 -0
- package/es/assets/request-camera-en.js +1 -1
- package/es/assets/request-camera-zh.js +1 -1
- package/es/assets/request-microphone-en.js +1 -1
- package/es/assets/request-microphone-zh.js +1 -1
- package/es/assets/reset-camera-en.js +1 -1
- package/es/assets/reset-camera-zh.js +1 -1
- package/es/assets/reset-microphone-en.js +1 -1
- package/es/assets/reset-microphone-zh.js +1 -1
- package/es/assets/save-default-audio1-en.js +1 -1
- package/es/assets/save-default-audio1-zh.js +1 -1
- package/es/assets/save-default-audio2-en.js +1 -1
- package/es/assets/save-default-audio2-zh.js +1 -1
- package/es/hooks/index.d.ts +6 -0
- package/es/hooks/index.js +6 -0
- package/es/hooks/index.js.map +1 -1
- package/es/hooks/useAudioPlayer.d.ts +7 -0
- package/es/hooks/useAudioPlayer.js +13 -0
- package/es/hooks/useAudioPlayer.js.map +1 -0
- package/es/hooks/useSSE.d.ts +26 -0
- package/es/hooks/useSSE.js +147 -0
- package/es/hooks/useSSE.js.map +1 -0
- package/es/hooks/useStompSocket.d.ts +63 -0
- package/es/hooks/useStompSocket.js +182 -0
- package/es/hooks/useStompSocket.js.map +1 -0
- package/es/hooks/useUserMedia.js +12 -24
- package/es/hooks/useUserMedia.js.map +1 -1
- package/es/locales/index.d.ts +6 -0
- package/es/locales/langs/en-US.d.ts +2 -0
- package/es/locales/langs/en-US.js +3 -1
- package/es/locales/langs/en-US.js.map +1 -1
- package/es/locales/langs/zh-CN.d.ts +2 -0
- package/es/locales/langs/zh-CN.js +3 -1
- package/es/locales/langs/zh-CN.js.map +1 -1
- package/es/utils/AudioPlayer.d.ts +159 -0
- package/es/utils/AudioPlayer.js +433 -0
- package/es/utils/AudioPlayer.js.map +1 -0
- package/es/utils/base64.d.ts +48 -0
- package/es/utils/base64.js +139 -0
- package/es/utils/base64.js.map +1 -0
- package/es/utils/crypto.d.ts +0 -30
- package/es/utils/crypto.js +8 -93
- package/es/utils/crypto.js.map +1 -1
- package/es/utils/index.d.ts +5 -1
- package/es/utils/index.js +5 -1
- package/es/utils/index.js.map +1 -1
- package/lib/hooks/index.d.ts +6 -0
- package/lib/hooks/index.js +17 -1
- package/lib/hooks/index.js.map +2 -2
- package/lib/hooks/useAudioPlayer.d.ts +7 -0
- package/lib/hooks/useAudioPlayer.js +42 -0
- package/lib/hooks/useAudioPlayer.js.map +7 -0
- package/lib/hooks/useSSE.d.ts +26 -0
- package/lib/hooks/useSSE.js +128 -0
- package/lib/hooks/useSSE.js.map +7 -0
- package/lib/hooks/useStompSocket.d.ts +63 -0
- package/lib/hooks/useStompSocket.js +154 -0
- package/lib/hooks/useStompSocket.js.map +7 -0
- package/lib/hooks/useUserMedia.js +12 -24
- package/lib/hooks/useUserMedia.js.map +2 -2
- package/lib/locales/index.d.ts +6 -0
- package/lib/locales/langs/en-US.d.ts +2 -0
- package/lib/locales/langs/en-US.js +3 -1
- package/lib/locales/langs/en-US.js.map +2 -2
- package/lib/locales/langs/zh-CN.d.ts +2 -0
- package/lib/locales/langs/zh-CN.js +3 -1
- package/lib/locales/langs/zh-CN.js.map +2 -2
- package/lib/utils/AudioPlayer.d.ts +159 -0
- package/lib/utils/AudioPlayer.js +284 -0
- package/lib/utils/AudioPlayer.js.map +7 -0
- package/lib/utils/base64.d.ts +48 -0
- package/lib/utils/base64.js +120 -0
- package/lib/utils/base64.js.map +7 -0
- package/lib/utils/crypto.d.ts +0 -30
- package/lib/utils/crypto.js +7 -66
- package/lib/utils/crypto.js.map +2 -2
- package/lib/utils/index.d.ts +5 -1
- package/lib/utils/index.js +28 -3
- package/lib/utils/index.js.map +2 -2
- package/package.json +10 -3
package/es/utils/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","_createForOfIteratorHelper","allowArrayLike","it","Array","isArray","_unsupportedIterableToArray","F","_e","normalCompletion","didErr","err","step","_e2","minLen","_arrayLikeToArray","toString","from","test","arr","len","arr2","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","undefined","random","randomChars","advancedEncrypt","_x","_x2","_advancedEncrypt","_callee","plainText","k1","b","_callee$","_context","encryptAES","toBase64","substring","concat","advancedDecrypt","_x3","_x4","_advancedDecrypt","_callee2","encryptedText","decrypted","_decrypted$split","_decrypted$split2","_fromBase64$split$map","_fromBase64$split$map2","_callee2$","_context2","decryptAES","split","_slicedToArray","fromBase64","map","Number","_x5","_x6","_encryptAES","_callee3","text","isNode","_crypto","derivedKey","iv","cipher","encrypted","_iv","encoder","keyData","hashBuffer","cryptoKey","textBytes","encryptedBuffer","ivBase64","encryptedBase64","_callee3$","_context3","process","versions","node","crypto","require","createHash","update","digest","randomBytes","createCipheriv","final","getRandomValues","Uint8Array","TextEncoder","encode","subtle","importKey","encrypt","btoa","String","fromCharCode","_toConsumableArray","t0","console","_x7","_x8","_decryptAES","_callee4","_encryptedText$split","_encryptedText$split2","_crypto2","decipher","_iv2","encryptedData","decryptedBuffer","decoder","_callee4$","_context4","Buffer","createDecipheriv","atob","charCodeAt","decrypt","TextDecoder","decode","content","opts","_opts$urlSafe","urlSafe","base64","hasBuffer","bytes","binary","_iterator","_step","replace","_opts$urlSafe2","normalized","padNeeded","message"],"sources":["../../src/utils/crypto.ts"],"sourcesContent":["import { random } from './math';\nimport { randomChars } from './string';\n\n/** Secret. No description provided */\nexport async function advancedEncrypt(plainText: string, key: string) {\n const k1 = randomChars(36);\n let e = await encryptAES(plainText, k1);\n const b = toBase64(k1);\n const l = b.length;\n const s = random(0, e.length);\n e = e.substring(0, s) + b + e.substring(s);\n const r = toBase64(`${s}-${l}`);\n const t = `${e}.${r}`;\n return encryptAES(t, key);\n}\n\n/** Secret. No description provided */\nexport async function advancedDecrypt(encryptedText: string, key: string) {\n const decrypted = await decryptAES(encryptedText, key);\n const [e, r] = decrypted.split('.');\n const [s, l] = fromBase64(r).split('-').map(Number);\n const k1 = fromBase64(e.substring(s, s + l));\n return decryptAES(e.substring(0, s) + e.substring(s + l), k1);\n}\n\n/**\n * **EN**: General AES encryption function - supports both Node.js and browser environments\n *\n * **CN**: 通用 AES 加密函数 - 同时支持 Node.js 和浏览器环境\n *\n * @param {string} text The text to be encrypted | 要加密的文本\n * @param {string} key The encryption key | 加密密钥\n *\n * @returns {Promise<string>} The encrypted text | 加密后的文本\n */\nexport async function encryptAES(text: string, key: string): Promise<string> {\n const isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\n\n if (isNode) {\n // Node.js\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const crypto = require('crypto');\n const derivedKey = crypto.createHash('sha256').update(key).digest();\n const iv = crypto.randomBytes(16);\n const cipher = crypto.createCipheriv('aes-256-cbc', derivedKey, iv);\n let encrypted = cipher.update(text, 'utf8', 'base64');\n encrypted += cipher.final('base64');\n return `${iv.toString('base64')}:${encrypted}`;\n } else {\n // Browsers\n try {\n const iv = crypto.getRandomValues(new Uint8Array(16));\n const encoder = new TextEncoder();\n const keyData = encoder.encode(key);\n const hashBuffer = await crypto.subtle.digest('SHA-256', keyData);\n const cryptoKey = await crypto.subtle.importKey('raw', hashBuffer, { name: 'AES-CBC' }, false, ['encrypt']);\n const textBytes = encoder.encode(text);\n const encryptedBuffer = await crypto.subtle.encrypt({ name: 'AES-CBC', iv }, cryptoKey, textBytes);\n const ivBase64 = btoa(String.fromCharCode(...iv));\n const encryptedBase64 = btoa(String.fromCharCode(...new Uint8Array(encryptedBuffer)));\n return `${ivBase64}:${encryptedBase64}`;\n } catch (error) {\n console.error('Encryption error:', error);\n throw error;\n }\n }\n}\n\n/**\n * **EN**: General AES decryption function - supports both Node.js and browser environments\n *\n * **CN**: 通用 AES 解密函数 - 同时支持 Node.js 和浏览器环境\n *\n * @param encryptedText The encrypted text (format: iv:encryptedContent, base64 encoded)\n * @param key The decryption key\n *\n * @returns The decrypted text\n */\nexport async function decryptAES(encryptedText: string, key: string): Promise<string> {\n const isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\n try {\n const [ivBase64, encryptedBase64] = encryptedText.split(':');\n if (!ivBase64 || !encryptedBase64) {\n throw new Error('Invalid encrypted format');\n }\n if (isNode) {\n // Node.js\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const crypto = require('crypto');\n const iv = Buffer.from(ivBase64, 'base64');\n const encryptedBuffer = Buffer.from(encryptedBase64, 'base64');\n const derivedKey = crypto.createHash('sha256').update(key).digest();\n const decipher = crypto.createDecipheriv('aes-256-cbc', derivedKey, iv);\n let decrypted = decipher.update(encryptedBuffer);\n decrypted = Buffer.concat([decrypted, decipher.final()]);\n return decrypted.toString('utf8');\n } else {\n // Browsers\n const iv = Uint8Array.from(atob(ivBase64), (c) => c.charCodeAt(0));\n const encryptedData = Uint8Array.from(atob(encryptedBase64), (c) => c.charCodeAt(0));\n const encoder = new TextEncoder();\n const keyData = encoder.encode(key);\n const hashBuffer = await crypto.subtle.digest('SHA-256', keyData);\n const cryptoKey = await crypto.subtle.importKey('raw', hashBuffer, { name: 'AES-CBC' }, false, ['decrypt']);\n const decryptedBuffer = await crypto.subtle.decrypt({ name: 'AES-CBC', iv }, cryptoKey, encryptedData);\n const decoder = new TextDecoder();\n return decoder.decode(decryptedBuffer);\n }\n } catch (error) {\n console.error('Decryption error:', error);\n return '';\n }\n}\n\n/**\n * - **EN:** Encode a UTF-8 string into Base64 (standard or URL-safe).\n * - **CN:** 将 UTF-8 字符串编码为 Base64(标准或 URL 安全格式)。\n *\n * @param content Input text to encode | 要编码的输入文本\n *\n * @returns Base64 encoded string | Base64 编码后的字符串\n */\nexport function toBase64(\n content: string,\n opts: {\n /**\n * - **EN:** Use URL-safe Base64 if true (replace +/ with -_ and strip =)\n * - **CN:** 为 true 时使用 URL 安全 Base64(将 +/ 替换为 -_ 并去掉 =)\n */\n urlSafe?: boolean;\n } = {}\n): string {\n const { urlSafe = false } = opts;\n if (content == null || content === '') return '';\n\n let base64: string;\n const hasBuffer = typeof Buffer !== 'undefined' && typeof Buffer.from === 'function';\n if (hasBuffer) {\n // Node.js\n base64 = Buffer.from(content, 'utf8').toString('base64');\n } else {\n // Browser\n const encoder = new TextEncoder();\n const bytes = encoder.encode(content);\n let binary = '';\n for (const i of bytes) {\n binary += String.fromCharCode(i);\n }\n base64 = btoa(binary);\n }\n\n if (urlSafe) {\n // Replace chars and strip padding for URL-safe variant\n base64 = base64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/u, '');\n }\n return base64;\n}\n\n/**\n * - EN: Decode a Base64 (standard or URL-safe) string into UTF-8 text.\n * - CN: 将(标准或 URL 安全)Base64 字符串解码为 UTF-8 文本。\n *\n * @param content Base64 encoded string | Base64 编码字符串\n *\n * @returns Decoded UTF-8 string | 解码后的 UTF-8 字符串\n */\nexport function fromBase64(\n content: string,\n opts: {\n /**\n * - **EN:** Use URL-safe Base64 if true (replace +/ with -_ and strip =)\n * - **CN:** 为 true 时使用 URL 安全 Base64(将 +/ 替换为 -_ 并去掉 =)\n */\n urlSafe?: boolean;\n } = {}\n): string {\n const { urlSafe = false } = opts;\n if (content == null || content === '') return '';\n\n let normalized = content;\n if (urlSafe) {\n normalized = normalized.replace(/-/g, '+').replace(/_/g, '/');\n }\n // Restore padding if stripped\n const padNeeded = normalized.length % 4;\n if (padNeeded === 2) normalized += '==';\n else if (padNeeded === 3) normalized += '=';\n else if (padNeeded === 1) {\n throw new Error('Invalid Base64 string length');\n }\n\n const hasBuffer = typeof Buffer !== 'undefined' && typeof Buffer.from === 'function';\n try {\n if (hasBuffer) {\n return Buffer.from(normalized, 'base64').toString('utf8');\n } else {\n const binary = atob(normalized);\n const len = binary.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n const decoder = new TextDecoder();\n return decoder.decode(bytes);\n }\n } catch (e) {\n throw new Error('Failed to decode Base64: ' + (e instanceof Error ? e.message : String(e)));\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","base64ToString","stringToBase64","random","randomChars","advancedEncrypt","_x","_x2","_advancedEncrypt","_callee","plainText","k1","b","_callee$","_context","encryptAES","substring","concat","advancedDecrypt","_x3","_x4","_advancedDecrypt","_callee2","encryptedText","decrypted","_decrypted$split","_decrypted$split2","_base64ToString$split","_base64ToString$split2","_callee2$","_context2","decryptAES","split","_slicedToArray","map","Number","_x5","_x6","_encryptAES","_callee3","text","isNode","_crypto","derivedKey","iv","cipher","encrypted","_iv","encoder","keyData","hashBuffer","cryptoKey","textBytes","encryptedBuffer","ivBase64","encryptedBase64","_callee3$","_context3","process","versions","node","crypto","require","createHash","update","digest","randomBytes","createCipheriv","final","toString","getRandomValues","Uint8Array","TextEncoder","encode","subtle","importKey","encrypt","btoa","String","fromCharCode","_toConsumableArray","t0","console","_x7","_x8","_decryptAES","_callee4","_encryptedText$split","_encryptedText$split2","_crypto2","decipher","_iv2","encryptedData","decryptedBuffer","decoder","_callee4$","_context4","Buffer","from","createDecipheriv","atob","charCodeAt","decrypt","TextDecoder","decode"],"sources":["../../src/utils/crypto.ts"],"sourcesContent":["import { base64ToString, stringToBase64 } from './base64';\nimport { random } from './math';\nimport { randomChars } from './string';\n\n/** Secret. No description provided */\nexport async function advancedEncrypt(plainText: string, key: string) {\n const k1 = randomChars(36);\n let e = await encryptAES(plainText, k1);\n const b = stringToBase64(k1);\n const l = b.length;\n const s = random(0, e.length);\n e = e.substring(0, s) + b + e.substring(s);\n const r = stringToBase64(`${s}-${l}`);\n const t = `${e}.${r}`;\n return encryptAES(t, key);\n}\n\n/** Secret. No description provided */\nexport async function advancedDecrypt(encryptedText: string, key: string) {\n const decrypted = await decryptAES(encryptedText, key);\n const [e, r] = decrypted.split('.');\n const [s, l] = base64ToString(r).split('-').map(Number);\n const k1 = base64ToString(e.substring(s, s + l));\n return decryptAES(e.substring(0, s) + e.substring(s + l), k1);\n}\n\n/**\n * **EN**: General AES encryption function - supports both Node.js and browser environments\n *\n * **CN**: 通用 AES 加密函数 - 同时支持 Node.js 和浏览器环境\n *\n * @param {string} text The text to be encrypted | 要加密的文本\n * @param {string} key The encryption key | 加密密钥\n *\n * @returns {Promise<string>} The encrypted text | 加密后的文本\n */\nexport async function encryptAES(text: string, key: string): Promise<string> {\n const isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\n\n if (isNode) {\n // Node.js\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const crypto = require('crypto');\n const derivedKey = crypto.createHash('sha256').update(key).digest();\n const iv = crypto.randomBytes(16);\n const cipher = crypto.createCipheriv('aes-256-cbc', derivedKey, iv);\n let encrypted = cipher.update(text, 'utf8', 'base64');\n encrypted += cipher.final('base64');\n return `${iv.toString('base64')}:${encrypted}`;\n } else {\n // Browsers\n try {\n const iv = crypto.getRandomValues(new Uint8Array(16));\n const encoder = new TextEncoder();\n const keyData = encoder.encode(key);\n const hashBuffer = await crypto.subtle.digest('SHA-256', keyData);\n const cryptoKey = await crypto.subtle.importKey('raw', hashBuffer, { name: 'AES-CBC' }, false, ['encrypt']);\n const textBytes = encoder.encode(text);\n const encryptedBuffer = await crypto.subtle.encrypt({ name: 'AES-CBC', iv }, cryptoKey, textBytes);\n const ivBase64 = btoa(String.fromCharCode(...iv));\n const encryptedBase64 = btoa(String.fromCharCode(...new Uint8Array(encryptedBuffer)));\n return `${ivBase64}:${encryptedBase64}`;\n } catch (error) {\n console.error('Encryption error:', error);\n throw error;\n }\n }\n}\n\n/**\n * **EN**: General AES decryption function - supports both Node.js and browser environments\n *\n * **CN**: 通用 AES 解密函数 - 同时支持 Node.js 和浏览器环境\n *\n * @param encryptedText The encrypted text (format: iv:encryptedContent, base64 encoded)\n * @param key The decryption key\n *\n * @returns The decrypted text\n */\nexport async function decryptAES(encryptedText: string, key: string): Promise<string> {\n const isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\n try {\n const [ivBase64, encryptedBase64] = encryptedText.split(':');\n if (!ivBase64 || !encryptedBase64) {\n throw new Error('Invalid encrypted format');\n }\n if (isNode) {\n // Node.js\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const crypto = require('crypto');\n const iv = Buffer.from(ivBase64, 'base64');\n const encryptedBuffer = Buffer.from(encryptedBase64, 'base64');\n const derivedKey = crypto.createHash('sha256').update(key).digest();\n const decipher = crypto.createDecipheriv('aes-256-cbc', derivedKey, iv);\n let decrypted = decipher.update(encryptedBuffer);\n decrypted = Buffer.concat([decrypted, decipher.final()]);\n return decrypted.toString('utf8');\n } else {\n // Browsers\n const iv = Uint8Array.from(atob(ivBase64), (c) => c.charCodeAt(0));\n const encryptedData = Uint8Array.from(atob(encryptedBase64), (c) => c.charCodeAt(0));\n const encoder = new TextEncoder();\n const keyData = encoder.encode(key);\n const hashBuffer = await crypto.subtle.digest('SHA-256', keyData);\n const cryptoKey = await crypto.subtle.importKey('raw', hashBuffer, { name: 'AES-CBC' }, false, ['decrypt']);\n const decryptedBuffer = await crypto.subtle.decrypt({ name: 'AES-CBC', iv }, cryptoKey, encryptedData);\n const decoder = new TextDecoder();\n return decoder.decode(decryptedBuffer);\n }\n } catch (error) {\n console.error('Decryption error:', error);\n return '';\n }\n}\n"],"mappings":"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"}
|
package/es/utils/index.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
export * from './AudioPlayer';
|
|
2
|
+
export { default as AudioPlayer } from './AudioPlayer';
|
|
3
|
+
export * from './base64';
|
|
1
4
|
export * from './color';
|
|
5
|
+
export * from './crypto';
|
|
2
6
|
export * from './math';
|
|
7
|
+
export * from './stream';
|
|
3
8
|
export * from './string';
|
|
4
|
-
export * from './crypto';
|
package/es/utils/index.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
+
export * from "./AudioPlayer";
|
|
2
|
+
export { default as AudioPlayer } from "./AudioPlayer";
|
|
3
|
+
export * from "./base64";
|
|
1
4
|
export * from "./color";
|
|
5
|
+
export * from "./crypto";
|
|
2
6
|
export * from "./math";
|
|
7
|
+
export * from "./stream";
|
|
3
8
|
export * from "./string";
|
|
4
|
-
export * from "./crypto";
|
|
5
9
|
//# sourceMappingURL=index.js.map
|
package/es/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/utils/index.ts"],"sourcesContent":["export * from './color';\nexport * from './math';\nexport * from './
|
|
1
|
+
{"version":3,"names":["default","AudioPlayer"],"sources":["../../src/utils/index.ts"],"sourcesContent":["export * from './AudioPlayer';\nexport { default as AudioPlayer } from './AudioPlayer';\nexport * from './base64';\nexport * from './color';\nexport * from './crypto';\nexport * from './math';\nexport * from './stream';\nexport * from './string';\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,WAAW;AAC/B;AACA;AACA;AACA;AACA;AACA"}
|
package/lib/hooks/index.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
export { default as useAudioPlayer } from './useAudioPlayer';
|
|
1
2
|
export { default as useRefValue } from './useRefValue';
|
|
2
3
|
export { default as useRefFunction } from './useRefFunction';
|
|
4
|
+
export * from './useSSE';
|
|
5
|
+
export { default as useSSE } from './useSSE';
|
|
6
|
+
export * from './useStompSocket';
|
|
7
|
+
export { default as useStompSocket } from './useStompSocket';
|
|
3
8
|
export type { ValidatorRuleMap } from './useValidators';
|
|
4
9
|
export { default as useValidators } from './useValidators';
|
|
5
10
|
export { default as useValidator } from './useValidator';
|
|
6
11
|
export type { Validator, RuleRegExpFlags, ValidatorRule, BuilderOptions } from './useValidatorBuilder';
|
|
7
12
|
export { default as useValidatorBuilder } from './useValidatorBuilder';
|
|
13
|
+
export * from './useUserMedia';
|
|
8
14
|
export { default as useUserMedia } from './useUserMedia';
|
package/lib/hooks/index.js
CHANGED
|
@@ -16,6 +16,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
}
|
|
17
17
|
return to;
|
|
18
18
|
};
|
|
19
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
19
20
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
21
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
22
|
// file that has been converted to a CommonJS file using a Babel-
|
|
@@ -29,27 +30,42 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
29
30
|
// src/hooks/index.ts
|
|
30
31
|
var hooks_exports = {};
|
|
31
32
|
__export(hooks_exports, {
|
|
33
|
+
useAudioPlayer: () => import_useAudioPlayer.default,
|
|
32
34
|
useRefFunction: () => import_useRefFunction.default,
|
|
33
35
|
useRefValue: () => import_useRefValue.default,
|
|
36
|
+
useSSE: () => import_useSSE.default,
|
|
37
|
+
useStompSocket: () => import_useStompSocket.default,
|
|
34
38
|
useUserMedia: () => import_useUserMedia.default,
|
|
35
39
|
useValidator: () => import_useValidator.default,
|
|
36
40
|
useValidatorBuilder: () => import_useValidatorBuilder.default,
|
|
37
41
|
useValidators: () => import_useValidators.default
|
|
38
42
|
});
|
|
39
43
|
module.exports = __toCommonJS(hooks_exports);
|
|
44
|
+
var import_useAudioPlayer = __toESM(require("./useAudioPlayer"));
|
|
40
45
|
var import_useRefValue = __toESM(require("./useRefValue"));
|
|
41
46
|
var import_useRefFunction = __toESM(require("./useRefFunction"));
|
|
47
|
+
__reExport(hooks_exports, require("./useSSE"), module.exports);
|
|
48
|
+
var import_useSSE = __toESM(require("./useSSE"));
|
|
49
|
+
__reExport(hooks_exports, require("./useStompSocket"), module.exports);
|
|
50
|
+
var import_useStompSocket = __toESM(require("./useStompSocket"));
|
|
42
51
|
var import_useValidators = __toESM(require("./useValidators"));
|
|
43
52
|
var import_useValidator = __toESM(require("./useValidator"));
|
|
44
53
|
var import_useValidatorBuilder = __toESM(require("./useValidatorBuilder"));
|
|
54
|
+
__reExport(hooks_exports, require("./useUserMedia"), module.exports);
|
|
45
55
|
var import_useUserMedia = __toESM(require("./useUserMedia"));
|
|
46
56
|
// Annotate the CommonJS export names for ESM import in node:
|
|
47
57
|
0 && (module.exports = {
|
|
58
|
+
useAudioPlayer,
|
|
48
59
|
useRefFunction,
|
|
49
60
|
useRefValue,
|
|
61
|
+
useSSE,
|
|
62
|
+
useStompSocket,
|
|
50
63
|
useUserMedia,
|
|
51
64
|
useValidator,
|
|
52
65
|
useValidatorBuilder,
|
|
53
|
-
useValidators
|
|
66
|
+
useValidators,
|
|
67
|
+
...require("./useSSE"),
|
|
68
|
+
...require("./useStompSocket"),
|
|
69
|
+
...require("./useUserMedia")
|
|
54
70
|
});
|
|
55
71
|
//# sourceMappingURL=index.js.map
|
package/lib/hooks/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/hooks/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { default as useRefValue } from './useRefValue';\nexport { default as useRefFunction } from './useRefFunction';\
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["export { default as useAudioPlayer } from './useAudioPlayer';\nexport { default as useRefValue } from './useRefValue';\nexport { default as useRefFunction } from './useRefFunction';\nexport * from './useSSE';\nexport { default as useSSE } from './useSSE';\nexport * from './useStompSocket';\nexport { default as useStompSocket } from './useStompSocket';\nexport type { ValidatorRuleMap } from './useValidators';\nexport { default as useValidators } from './useValidators';\nexport { default as useValidator } from './useValidator';\nexport type { Validator, RuleRegExpFlags, ValidatorRule, BuilderOptions } from './useValidatorBuilder';\nexport { default as useValidatorBuilder } from './useValidatorBuilder';\nexport * from './useUserMedia';\nexport { default as useUserMedia } from './useUserMedia';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAA0C;AAC1C,yBAAuC;AACvC,4BAA0C;AAC1C,0BAAc,qBAHd;AAIA,oBAAkC;AAClC,0BAAc,6BALd;AAMA,4BAA0C;AAE1C,2BAAyC;AACzC,0BAAwC;AAExC,iCAA+C;AAC/C,0BAAc,2BAZd;AAaA,0BAAwC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import AudioPlayer, { type AudioPlayerInit } from '../utils/AudioPlayer';
|
|
2
|
+
/**
|
|
3
|
+
* - **EN:** A hook that provides an instance of the AudioPlayer class for managing audio playback.
|
|
4
|
+
* - **CN:** 一个提供AudioPlayer类实例的钩子,用于管理音频播放。
|
|
5
|
+
*/
|
|
6
|
+
declare const useAudioPlayer: (props?: AudioPlayerInit) => AudioPlayer;
|
|
7
|
+
export default useAudioPlayer;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/hooks/useAudioPlayer.ts
|
|
30
|
+
var useAudioPlayer_exports = {};
|
|
31
|
+
__export(useAudioPlayer_exports, {
|
|
32
|
+
default: () => useAudioPlayer_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(useAudioPlayer_exports);
|
|
35
|
+
var import_react = require("react");
|
|
36
|
+
var import_AudioPlayer = __toESM(require("../utils/AudioPlayer"));
|
|
37
|
+
var useAudioPlayer = (props) => {
|
|
38
|
+
const ref = (0, import_react.useRef)(new import_AudioPlayer.default(props));
|
|
39
|
+
return ref.current;
|
|
40
|
+
};
|
|
41
|
+
var useAudioPlayer_default = useAudioPlayer;
|
|
42
|
+
//# sourceMappingURL=useAudioPlayer.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/hooks/useAudioPlayer.ts"],
|
|
4
|
+
"sourcesContent": ["import { useRef } from 'react';\nimport AudioPlayer, { type AudioPlayerInit } from '../utils/AudioPlayer';\n\n/**\n * - **EN:** A hook that provides an instance of the AudioPlayer class for managing audio playback.\n * - **CN:** 一个提供AudioPlayer类实例的钩子,用于管理音频播放。\n */\nconst useAudioPlayer = (props?: AudioPlayerInit): AudioPlayer => {\n const ref = useRef<AudioPlayer>(new AudioPlayer(props));\n return ref.current;\n};\n\nexport default useAudioPlayer;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAuB;AACvB,yBAAkD;AAMlD,IAAM,iBAAiB,CAAC,UAAyC;AAC/D,QAAM,UAAM,qBAAoB,IAAI,mBAAAA,QAAY,KAAK,CAAC;AACtD,SAAO,IAAI;AACb;AAEA,IAAO,yBAAQ;",
|
|
6
|
+
"names": ["AudioPlayer"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { EventSourceMessage, FetchEventSourceInit } from '@microsoft/fetch-event-source';
|
|
2
|
+
export interface UseSSEProps<T = any> {
|
|
3
|
+
/** The URL to connect to */
|
|
4
|
+
url: RequestInfo;
|
|
5
|
+
/** Options for the connection. */
|
|
6
|
+
connectOptions?: Omit<FetchEventSourceInit, 'onmessage' | 'onerror' | 'onclose'>;
|
|
7
|
+
/** Automatically connect to the SSE channel. Default is `false`. */
|
|
8
|
+
autoConnect?: boolean;
|
|
9
|
+
/** Automatically close the connection when the component unmounts. Default is `true`. */
|
|
10
|
+
autoClose?: boolean;
|
|
11
|
+
/** Function to parse the incoming message. If not provided, the default JSON parser will be used. */
|
|
12
|
+
parseMessage?: (original: EventSourceMessage) => T;
|
|
13
|
+
/** Callback function to handle incoming messages. */
|
|
14
|
+
onMessage?: (messageData: T) => void;
|
|
15
|
+
/** Callback function to handle errors. */
|
|
16
|
+
onError?: (error: any) => void;
|
|
17
|
+
/** Callback function to handle connection closure. */
|
|
18
|
+
onClose?: () => void;
|
|
19
|
+
}
|
|
20
|
+
declare const useSSE: <T = any>(props: UseSSEProps<T>) => {
|
|
21
|
+
connect: (options?: FetchEventSourceInit & Partial<Pick<UseSSEProps, 'url'>>) => Promise<void>;
|
|
22
|
+
close: () => void;
|
|
23
|
+
isRequesting: boolean;
|
|
24
|
+
isConnected: boolean;
|
|
25
|
+
};
|
|
26
|
+
export default useSSE;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/hooks/useSSE.ts
|
|
30
|
+
var useSSE_exports = {};
|
|
31
|
+
__export(useSSE_exports, {
|
|
32
|
+
default: () => useSSE_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(useSSE_exports);
|
|
35
|
+
var import_react = require("react");
|
|
36
|
+
var import_fetch_event_source = require("@microsoft/fetch-event-source");
|
|
37
|
+
var import_useRefFunction = __toESM(require("./useRefFunction"));
|
|
38
|
+
var import_useRefValue = __toESM(require("./useRefValue"));
|
|
39
|
+
var useSSE = (props) => {
|
|
40
|
+
const { url, autoConnect, connectOptions, onMessage, parseMessage, onError, onClose } = props;
|
|
41
|
+
const autoConnectRef = (0, import_useRefValue.default)(autoConnect);
|
|
42
|
+
const [isRequesting, setIsRequesting] = (0, import_react.useState)(false);
|
|
43
|
+
const isRequestingRef = (0, import_useRefValue.default)(isRequesting);
|
|
44
|
+
const [isConnected, setIsConnected] = (0, import_react.useState)(false);
|
|
45
|
+
const abortCtrlRef = (0, import_react.useRef)(void 0);
|
|
46
|
+
const connect = (0, import_useRefFunction.default)(async (options) => {
|
|
47
|
+
const {
|
|
48
|
+
url: connectUrl = url,
|
|
49
|
+
headers = {},
|
|
50
|
+
onopen,
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
52
|
+
onmessage,
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
54
|
+
onclose,
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
56
|
+
onerror,
|
|
57
|
+
...restOptions
|
|
58
|
+
} = { ...connectOptions, ...options };
|
|
59
|
+
abortCtrlRef.current = new AbortController();
|
|
60
|
+
try {
|
|
61
|
+
setIsRequesting(true);
|
|
62
|
+
setIsConnected(false);
|
|
63
|
+
await (0, import_fetch_event_source.fetchEventSource)(connectUrl, {
|
|
64
|
+
method: "post",
|
|
65
|
+
signal: abortCtrlRef.current.signal,
|
|
66
|
+
openWhenHidden: true,
|
|
67
|
+
onopen: async (response) => {
|
|
68
|
+
setIsConnected(true);
|
|
69
|
+
onopen == null ? void 0 : onopen(response);
|
|
70
|
+
},
|
|
71
|
+
onmessage(event) {
|
|
72
|
+
if (!isRequestingRef.current) {
|
|
73
|
+
setIsRequesting(false);
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
let parsed;
|
|
77
|
+
if (parseMessage) {
|
|
78
|
+
parsed = parseMessage(event);
|
|
79
|
+
} else {
|
|
80
|
+
parsed = event.data ? JSON.parse(event.data) : void 0;
|
|
81
|
+
}
|
|
82
|
+
if (parsed != null) {
|
|
83
|
+
onMessage == null ? void 0 : onMessage(parsed);
|
|
84
|
+
}
|
|
85
|
+
} catch (error) {
|
|
86
|
+
console.error("Error parsing message data:", error);
|
|
87
|
+
console.log("The underlying event:", event);
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
onerror(error) {
|
|
91
|
+
setIsRequesting(false);
|
|
92
|
+
onError == null ? void 0 : onError(error);
|
|
93
|
+
},
|
|
94
|
+
onclose() {
|
|
95
|
+
setIsRequesting(false);
|
|
96
|
+
onClose == null ? void 0 : onClose();
|
|
97
|
+
},
|
|
98
|
+
headers: {
|
|
99
|
+
"Content-Type": "application/json",
|
|
100
|
+
...headers
|
|
101
|
+
},
|
|
102
|
+
...restOptions
|
|
103
|
+
});
|
|
104
|
+
} finally {
|
|
105
|
+
setIsRequesting(false);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
const close = (0, import_useRefFunction.default)(() => {
|
|
109
|
+
setIsConnected(false);
|
|
110
|
+
if (isConnected && abortCtrlRef.current) {
|
|
111
|
+
abortCtrlRef.current.abort();
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
(0, import_react.useEffect)(() => {
|
|
115
|
+
if (autoConnectRef.current) {
|
|
116
|
+
connect();
|
|
117
|
+
}
|
|
118
|
+
return close;
|
|
119
|
+
}, []);
|
|
120
|
+
return {
|
|
121
|
+
connect,
|
|
122
|
+
close,
|
|
123
|
+
isRequesting,
|
|
124
|
+
isConnected
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
var useSSE_default = useSSE;
|
|
128
|
+
//# sourceMappingURL=useSSE.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/hooks/useSSE.ts"],
|
|
4
|
+
"sourcesContent": ["import { useEffect, useRef, useState } from 'react';\nimport type { EventSourceMessage, FetchEventSourceInit } from '@microsoft/fetch-event-source';\nimport { fetchEventSource } from '@microsoft/fetch-event-source';\nimport useRefFunction from './useRefFunction';\nimport useRefValue from './useRefValue';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface UseSSEProps<T = any> {\n /** The URL to connect to */\n url: RequestInfo;\n /** Options for the connection. */\n connectOptions?: Omit<FetchEventSourceInit, 'onmessage' | 'onerror' | 'onclose'>;\n /** Automatically connect to the SSE channel. Default is `false`. */\n autoConnect?: boolean;\n /** Automatically close the connection when the component unmounts. Default is `true`. */\n autoClose?: boolean;\n /** Function to parse the incoming message. If not provided, the default JSON parser will be used. */\n parseMessage?: (original: EventSourceMessage) => T;\n /** Callback function to handle incoming messages. */\n onMessage?: (messageData: T) => void;\n /** Callback function to handle errors. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onError?: (error: any) => void;\n /** Callback function to handle connection closure. */\n onClose?: () => void;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst useSSE = <T = any>(props: UseSSEProps<T>) => {\n const { url, autoConnect, connectOptions, onMessage, parseMessage, onError, onClose } = props;\n const autoConnectRef = useRefValue(autoConnect);\n const [isRequesting, setIsRequesting] = useState(false);\n const isRequestingRef = useRefValue(isRequesting);\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const abortCtrlRef = useRef<AbortController | undefined>(undefined);\n\n const connect = useRefFunction(async (options?: FetchEventSourceInit & Partial<Pick<UseSSEProps, 'url'>>) => {\n const {\n url: connectUrl = url,\n headers = {},\n onopen,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onmessage,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onclose,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onerror,\n ...restOptions\n } = { ...connectOptions, ...options };\n abortCtrlRef.current = new AbortController();\n try {\n setIsRequesting(true);\n setIsConnected(false);\n await fetchEventSource(connectUrl, {\n method: 'post',\n signal: abortCtrlRef.current.signal,\n openWhenHidden: true,\n onopen: async (response: Response) => {\n setIsConnected(true);\n onopen?.(response);\n },\n onmessage(event) {\n if (!isRequestingRef.current) {\n setIsRequesting(false);\n }\n try {\n let parsed: T;\n if (parseMessage) {\n parsed = parseMessage(event);\n } else {\n parsed = event.data ? JSON.parse(event.data) : undefined;\n }\n if (parsed != null) {\n onMessage?.(parsed);\n }\n } catch (error) {\n console.error('Error parsing message data:', error);\n console.log('The underlying event:', event);\n }\n },\n onerror(error) {\n setIsRequesting(false);\n onError?.(error);\n },\n onclose() {\n setIsRequesting(false);\n onClose?.();\n },\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n ...restOptions,\n });\n } finally {\n setIsRequesting(false);\n }\n });\n\n const close = useRefFunction(() => {\n setIsConnected(false);\n if (isConnected && abortCtrlRef.current) {\n abortCtrlRef.current.abort();\n }\n });\n\n useEffect(() => {\n if (autoConnectRef.current) {\n connect();\n }\n return close;\n }, []);\n\n // 清理函数\n return {\n connect,\n close,\n isRequesting,\n isConnected,\n };\n};\n\nexport default useSSE;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA4C;AAE5C,gCAAiC;AACjC,4BAA2B;AAC3B,yBAAwB;AAwBxB,IAAM,SAAS,CAAU,UAA0B;AACjD,QAAM,EAAE,KAAK,aAAa,gBAAgB,WAAW,cAAc,SAAS,QAAQ,IAAI;AACxF,QAAM,qBAAiB,mBAAAA,SAAY,WAAW;AAC9C,QAAM,CAAC,cAAc,eAAe,QAAI,uBAAS,KAAK;AACtD,QAAM,sBAAkB,mBAAAA,SAAY,YAAY;AAChD,QAAM,CAAC,aAAa,cAAc,QAAI,uBAAkB,KAAK;AAC7D,QAAM,mBAAe,qBAAoC,MAAS;AAElE,QAAM,cAAU,sBAAAC,SAAe,OAAO,YAAuE;AAC3G,UAAM;AAAA,MACJ,KAAK,aAAa;AAAA,MAClB,UAAU,CAAC;AAAA,MACX;AAAA;AAAA,MAEA;AAAA;AAAA,MAEA;AAAA;AAAA,MAEA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,EAAE,GAAG,gBAAgB,GAAG,QAAQ;AACpC,iBAAa,UAAU,IAAI,gBAAgB;AAC3C,QAAI;AACF,sBAAgB,IAAI;AACpB,qBAAe,KAAK;AACpB,gBAAM,4CAAiB,YAAY;AAAA,QACjC,QAAQ;AAAA,QACR,QAAQ,aAAa,QAAQ;AAAA,QAC7B,gBAAgB;AAAA,QAChB,QAAQ,OAAO,aAAuB;AACpC,yBAAe,IAAI;AACnB,2CAAS;AAAA,QACX;AAAA,QACA,UAAU,OAAO;AACf,cAAI,CAAC,gBAAgB,SAAS;AAC5B,4BAAgB,KAAK;AAAA,UACvB;AACA,cAAI;AACF,gBAAI;AACJ,gBAAI,cAAc;AAChB,uBAAS,aAAa,KAAK;AAAA,YAC7B,OAAO;AACL,uBAAS,MAAM,OAAO,KAAK,MAAM,MAAM,IAAI,IAAI;AAAA,YACjD;AACA,gBAAI,UAAU,MAAM;AAClB,qDAAY;AAAA,YACd;AAAA,UACF,SAAS,OAAP;AACA,oBAAQ,MAAM,+BAA+B,KAAK;AAClD,oBAAQ,IAAI,yBAAyB,KAAK;AAAA,UAC5C;AAAA,QACF;AAAA,QACA,QAAQ,OAAO;AACb,0BAAgB,KAAK;AACrB,6CAAU;AAAA,QACZ;AAAA,QACA,UAAU;AACR,0BAAgB,KAAK;AACrB;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP,gBAAgB;AAAA,UAChB,GAAG;AAAA,QACL;AAAA,QACA,GAAG;AAAA,MACL,CAAC;AAAA,IACH,UAAE;AACA,sBAAgB,KAAK;AAAA,IACvB;AAAA,EACF,CAAC;AAED,QAAM,YAAQ,sBAAAA,SAAe,MAAM;AACjC,mBAAe,KAAK;AACpB,QAAI,eAAe,aAAa,SAAS;AACvC,mBAAa,QAAQ,MAAM;AAAA,IAC7B;AAAA,EACF,CAAC;AAED,8BAAU,MAAM;AACd,QAAI,eAAe,SAAS;AAC1B,cAAQ;AAAA,IACV;AACA,WAAO;AAAA,EACT,GAAG,CAAC,CAAC;AAGL,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,IAAO,iBAAQ;",
|
|
6
|
+
"names": ["useRefValue", "useRefFunction"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { StompConfig } from '@stomp/stompjs';
|
|
2
|
+
import { Client } from '@stomp/stompjs';
|
|
3
|
+
export interface UseSocketOptions<M = string> {
|
|
4
|
+
/**
|
|
5
|
+
* - **EN:** Socket connection address
|
|
6
|
+
* - **CN:** Socket连接地址
|
|
7
|
+
*/
|
|
8
|
+
url: string;
|
|
9
|
+
/**
|
|
10
|
+
* - **EN:** STOMP connection configuration
|
|
11
|
+
* - **CN:** - **CN:** STOMP连接配置
|
|
12
|
+
*/
|
|
13
|
+
connectConfig?: StompConfig;
|
|
14
|
+
/**
|
|
15
|
+
* - **EN:** Channel path for publishing messages
|
|
16
|
+
* - **CN:** 发布消息的频道路径
|
|
17
|
+
*/
|
|
18
|
+
sendEndpoint?: string;
|
|
19
|
+
/**
|
|
20
|
+
* - **EN:** Endpoint path for receiving messages
|
|
21
|
+
* - **CN:** 接收消息的端点路径
|
|
22
|
+
*/
|
|
23
|
+
subscribeEndpoint?: string;
|
|
24
|
+
/**
|
|
25
|
+
* - **EN:** Connection success callback
|
|
26
|
+
* - **CN:** 连接成功回调
|
|
27
|
+
*/
|
|
28
|
+
onConnected?: () => void;
|
|
29
|
+
/**
|
|
30
|
+
* - **EN:** Message received callback
|
|
31
|
+
* - **CN:** 接收到消息回调
|
|
32
|
+
*/
|
|
33
|
+
onMessage?: (message: M) => void;
|
|
34
|
+
/**
|
|
35
|
+
* - **EN:** Parse message body, return value as input parameter for `onMessage`
|
|
36
|
+
* - **CN:** 解析消息体,返回值作为`onMessage`的输入参数。
|
|
37
|
+
*
|
|
38
|
+
* @param body - The raw message body received from the server, needs to be deserialized based on
|
|
39
|
+
* actual conditions. | 从服务端接收到的原始消息体,需要根据实际情况进行反序列化。
|
|
40
|
+
*
|
|
41
|
+
* @returns Parsed message body as the input parameter of `onMessage`| 解析后的消息体,作为`onMessage`的输入参数
|
|
42
|
+
*/
|
|
43
|
+
parseMessageBody?: (body: string) => M;
|
|
44
|
+
/**
|
|
45
|
+
* - **EN:** Connection close callback
|
|
46
|
+
* - **CN:** 连接关闭回调
|
|
47
|
+
*/
|
|
48
|
+
onClose?: () => void;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* - **EN:** Establish a WebSocket based on the STOMP protocol, mainly used for bidirectional
|
|
52
|
+
* transmission of serializable character messages.
|
|
53
|
+
* - **CN:** 建立基于STOMP协议的WebSocket,主要用于双向传递可序列化的字符型消息
|
|
54
|
+
*/
|
|
55
|
+
declare function useStompSocket<M = string>(options: UseSocketOptions<M>): {
|
|
56
|
+
connect: () => Promise<void>;
|
|
57
|
+
close: () => void;
|
|
58
|
+
send: (body: string) => void;
|
|
59
|
+
connecting: boolean;
|
|
60
|
+
socket: WebSocket | undefined;
|
|
61
|
+
stompClient: Client | undefined;
|
|
62
|
+
};
|
|
63
|
+
export default useStompSocket;
|