zcw-shared 1.22.0 → 1.23.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.
@@ -0,0 +1,446 @@
1
+ function parseSimpleRegex(pattern) {
2
+ const components = [];
3
+ let i = 0;
4
+ while (i < pattern.length) {
5
+ const char = pattern[i];
6
+ if (char === '\\' && i + 1 < pattern.length) {
7
+ components.push({
8
+ type: 'escape',
9
+ text: pattern.substring(i, i + 2),
10
+ value: pattern[i + 1]
11
+ });
12
+ i += 2;
13
+ continue;
14
+ }
15
+ if (['+', '*', '?'].includes(char)) {
16
+ const quantMap = {
17
+ '+': [1, Infinity],
18
+ '*': [0, Infinity],
19
+ '?': [0, 1]
20
+ };
21
+ const [min, max] = quantMap[char];
22
+ components.push({
23
+ type: 'quantifier',
24
+ text: char,
25
+ min,
26
+ max
27
+ });
28
+ i++;
29
+ continue;
30
+ }
31
+ if (char === '[') {
32
+ let j = i + 1;
33
+ while (j < pattern.length && pattern[j] !== ']') {
34
+ if (pattern[j] === '\\')
35
+ j++;
36
+ j++;
37
+ }
38
+ components.push({
39
+ type: 'charset',
40
+ text: pattern.substring(i, j + 1)
41
+ });
42
+ i = j + 1;
43
+ continue;
44
+ }
45
+ if (char === '(') {
46
+ let depth = 1;
47
+ let j = i + 1;
48
+ while (j < pattern.length && depth > 0) {
49
+ if (pattern[j] === '\\') {
50
+ j += 2;
51
+ continue;
52
+ }
53
+ if (pattern[j] === '(')
54
+ depth++;
55
+ if (pattern[j] === ')')
56
+ depth--;
57
+ j++;
58
+ }
59
+ components.push({
60
+ type: 'group',
61
+ text: pattern.substring(i, j)
62
+ });
63
+ i = j;
64
+ continue;
65
+ }
66
+ if (char === '^' || char === '$') {
67
+ components.push({
68
+ type: 'anchor',
69
+ text: char
70
+ });
71
+ i++;
72
+ continue;
73
+ }
74
+ components.push({
75
+ type: 'literal',
76
+ text: char,
77
+ value: char
78
+ });
79
+ i++;
80
+ }
81
+ return components;
82
+ }
83
+ function matchEscape(escapeChar, textChar) {
84
+ const escapeMap = {
85
+ 'd': (c) => /[0-9]/.test(c),
86
+ 'D': (c) => /[^0-9]/.test(c),
87
+ 'w': (c) => /[a-zA-Z0-9_]/.test(c),
88
+ 'W': (c) => /[^a-zA-Z0-9_]/.test(c),
89
+ 's': (c) => /\s/.test(c),
90
+ 'S': (c) => /\S/.test(c)
91
+ };
92
+ return escapeMap[escapeChar]?.(textChar) || false;
93
+ }
94
+ function matchCharset(charset, textChar) {
95
+ const isNegated = charset[1] === '^';
96
+ const chars = charset.substring(isNegated ? 2 : 1, charset.length - 1);
97
+ let matches = false;
98
+ for (let i = 0; i < chars.length; i++) {
99
+ if (chars[i + 1] === '-' && i + 2 < chars.length) {
100
+ const start = chars.charCodeAt(i);
101
+ const end = chars.charCodeAt(i + 2);
102
+ const code = textChar.charCodeAt(0);
103
+ if (code >= start && code <= end) {
104
+ matches = true;
105
+ break;
106
+ }
107
+ i += 2;
108
+ }
109
+ else {
110
+ if (chars[i] === textChar) {
111
+ matches = true;
112
+ break;
113
+ }
114
+ }
115
+ }
116
+ return isNegated ? !matches : matches;
117
+ }
118
+ function tryMatchAt(components, text, startPos, steps, stepNumber) {
119
+ let textPos = startPos;
120
+ let regexPos = 0;
121
+ let matchedText = '';
122
+ const captureGroups = [];
123
+ const backtrackStack = [];
124
+ steps.push({
125
+ stepNumber: stepNumber++,
126
+ textPosition: textPos,
127
+ regexPosition: regexPos,
128
+ action: `尝试从位置 ${startPos} 开始匹配`,
129
+ status: 'matching',
130
+ matchedText: '',
131
+ captureGroups: [],
132
+ backtrackStack: [],
133
+ explanation: `将正则引擎定位到文本位置 ${startPos},准备开始匹配`
134
+ });
135
+ while (regexPos < components.length && textPos < text.length) {
136
+ const component = components[regexPos];
137
+ const currentChar = text[textPos];
138
+ const nextComponent = components[regexPos + 1];
139
+ const hasQuantifier = nextComponent?.type === 'quantifier';
140
+ if (component.type === 'literal') {
141
+ steps.push({
142
+ stepNumber: stepNumber++,
143
+ textPosition: textPos,
144
+ regexPosition: regexPos,
145
+ action: `匹配字面字符 "${component.text}"`,
146
+ status: 'matching',
147
+ matchedText,
148
+ captureGroups: [...captureGroups],
149
+ backtrackStack: [...backtrackStack],
150
+ explanation: `检查文本位置 ${textPos} 的字符 "${currentChar}" 是否等于 "${component.text}"`
151
+ });
152
+ if (currentChar === component.value) {
153
+ matchedText += currentChar;
154
+ textPos++;
155
+ regexPos++;
156
+ steps.push({
157
+ stepNumber: stepNumber++,
158
+ textPosition: textPos,
159
+ regexPosition: regexPos,
160
+ action: '匹配成功',
161
+ status: 'matched',
162
+ matchedText,
163
+ captureGroups: [...captureGroups],
164
+ backtrackStack: [...backtrackStack],
165
+ explanation: `字符 "${currentChar}" 匹配成功,继续向前`
166
+ });
167
+ }
168
+ else {
169
+ steps.push({
170
+ stepNumber: stepNumber++,
171
+ textPosition: textPos,
172
+ regexPosition: regexPos,
173
+ action: '匹配失败',
174
+ status: 'failed',
175
+ matchedText,
176
+ captureGroups: [...captureGroups],
177
+ backtrackStack: [...backtrackStack],
178
+ explanation: `字符 "${currentChar}" 不匹配 "${component.text}",匹配失败`
179
+ });
180
+ break;
181
+ }
182
+ }
183
+ else if (component.type === 'escape') {
184
+ steps.push({
185
+ stepNumber: stepNumber++,
186
+ textPosition: textPos,
187
+ regexPosition: regexPos,
188
+ action: `匹配转义字符 ${component.text}`,
189
+ status: 'matching',
190
+ matchedText,
191
+ captureGroups: [...captureGroups],
192
+ backtrackStack: [...backtrackStack],
193
+ explanation: `检查文本位置 ${textPos} 的字符 "${currentChar}" 是否符合 ${component.text} 的规则`
194
+ });
195
+ if (matchEscape(component.value, currentChar)) {
196
+ if (hasQuantifier) {
197
+ const quantifier = nextComponent;
198
+ const quantState = {
199
+ symbol: quantifier.text,
200
+ currentCount: 0,
201
+ minCount: quantifier.min,
202
+ maxCount: quantifier.max,
203
+ greedy: true
204
+ };
205
+ steps.push({
206
+ stepNumber: stepNumber++,
207
+ textPosition: textPos,
208
+ regexPosition: regexPos,
209
+ action: `进入量词 ${quantifier.text}`,
210
+ status: 'matching',
211
+ matchedText,
212
+ captureGroups: [...captureGroups],
213
+ backtrackStack: [...backtrackStack],
214
+ quantifierState: quantState,
215
+ explanation: `检测到量词 ${quantifier.text},要求匹配 ${quantifier.min} 到 ${quantifier.max === Infinity ? '∞' : quantifier.max} 次`
216
+ });
217
+ let count = 0;
218
+ let tempPos = textPos;
219
+ while (count < quantifier.max && tempPos < text.length) {
220
+ const nextChar = text[tempPos];
221
+ if (matchEscape(component.value, nextChar)) {
222
+ matchedText += nextChar;
223
+ count++;
224
+ tempPos++;
225
+ quantState.currentCount = count;
226
+ steps.push({
227
+ stepNumber: stepNumber++,
228
+ textPosition: tempPos,
229
+ regexPosition: regexPos,
230
+ action: `量词匹配(第 ${count} 次)`,
231
+ status: 'matched',
232
+ matchedText,
233
+ captureGroups: [...captureGroups],
234
+ backtrackStack: [...backtrackStack],
235
+ quantifierState: { ...quantState },
236
+ explanation: `字符 "${nextChar}" 匹配成功,已匹配 ${count} 次`
237
+ });
238
+ }
239
+ else {
240
+ break;
241
+ }
242
+ }
243
+ if (count >= quantifier.min) {
244
+ textPos = tempPos;
245
+ regexPos += 2;
246
+ steps.push({
247
+ stepNumber: stepNumber++,
248
+ textPosition: textPos,
249
+ regexPosition: regexPos,
250
+ action: '✓ 量词匹配完成',
251
+ status: 'matched',
252
+ matchedText,
253
+ captureGroups: [...captureGroups],
254
+ backtrackStack: [...backtrackStack],
255
+ quantifierState: { ...quantState },
256
+ explanation: `量词 ${quantifier.text} 成功匹配 ${count} 次,满足要求 [${quantifier.min}, ${quantifier.max === Infinity ? '∞' : quantifier.max}]`
257
+ });
258
+ }
259
+ else {
260
+ steps.push({
261
+ stepNumber: stepNumber++,
262
+ textPosition: textPos,
263
+ regexPosition: regexPos,
264
+ action: '✗ 量词不满足',
265
+ status: 'failed',
266
+ matchedText,
267
+ captureGroups: [...captureGroups],
268
+ backtrackStack: [...backtrackStack],
269
+ quantifierState: { ...quantState },
270
+ explanation: `量词 ${quantifier.text} 只匹配 ${count} 次,不满足最小要求 ${quantifier.min}`
271
+ });
272
+ break;
273
+ }
274
+ }
275
+ else {
276
+ matchedText += currentChar;
277
+ textPos++;
278
+ regexPos++;
279
+ steps.push({
280
+ stepNumber: stepNumber++,
281
+ textPosition: textPos,
282
+ regexPosition: regexPos,
283
+ action: '✓ 匹配成功',
284
+ status: 'matched',
285
+ matchedText,
286
+ captureGroups: [...captureGroups],
287
+ backtrackStack: [...backtrackStack],
288
+ explanation: `字符 "${currentChar}" 符合 ${component.text} 规则`
289
+ });
290
+ }
291
+ }
292
+ else {
293
+ steps.push({
294
+ stepNumber: stepNumber++,
295
+ textPosition: textPos,
296
+ regexPosition: regexPos,
297
+ action: '匹配失败',
298
+ status: 'failed',
299
+ matchedText,
300
+ captureGroups: [...captureGroups],
301
+ backtrackStack: [...backtrackStack],
302
+ explanation: `字符 "${currentChar}" 不符合 ${component.text} 规则,匹配失败`
303
+ });
304
+ break;
305
+ }
306
+ }
307
+ else if (component.type === 'charset') {
308
+ steps.push({
309
+ stepNumber: stepNumber++,
310
+ textPosition: textPos,
311
+ regexPosition: regexPos,
312
+ action: `匹配字符集 ${component.text}`,
313
+ status: 'matching',
314
+ matchedText,
315
+ captureGroups: [...captureGroups],
316
+ backtrackStack: [...backtrackStack],
317
+ explanation: `检查字符 "${currentChar}" 是否在字符集 ${component.text} 中`
318
+ });
319
+ if (matchCharset(component.text, currentChar)) {
320
+ matchedText += currentChar;
321
+ textPos++;
322
+ regexPos++;
323
+ steps.push({
324
+ stepNumber: stepNumber++,
325
+ textPosition: textPos,
326
+ regexPosition: regexPos,
327
+ action: '匹配成功',
328
+ status: 'matched',
329
+ matchedText,
330
+ captureGroups: [...captureGroups],
331
+ backtrackStack: [...backtrackStack],
332
+ explanation: `字符 "${currentChar}" 在字符集中,匹配成功`
333
+ });
334
+ }
335
+ else {
336
+ steps.push({
337
+ stepNumber: stepNumber++,
338
+ textPosition: textPos,
339
+ regexPosition: regexPos,
340
+ action: '匹配失败',
341
+ status: 'failed',
342
+ matchedText,
343
+ captureGroups: [...captureGroups],
344
+ backtrackStack: [...backtrackStack],
345
+ explanation: `字符 "${currentChar}" 不在字符集中,匹配失败`
346
+ });
347
+ break;
348
+ }
349
+ }
350
+ else {
351
+ regexPos++;
352
+ }
353
+ }
354
+ const success = regexPos >= components.length;
355
+ if (success) {
356
+ steps.push({
357
+ stepNumber: stepNumber++,
358
+ textPosition: textPos,
359
+ regexPosition: regexPos,
360
+ action: '✅ 匹配成功',
361
+ status: 'matched',
362
+ matchedText,
363
+ captureGroups: [],
364
+ backtrackStack: [],
365
+ explanation: `所有模式都已匹配成功!最终匹配结果:"${matchedText}"`
366
+ });
367
+ }
368
+ else {
369
+ steps.push({
370
+ stepNumber: stepNumber++,
371
+ textPosition: textPos,
372
+ regexPosition: regexPos,
373
+ action: '❌ 本次尝试失败',
374
+ status: 'failed',
375
+ matchedText,
376
+ captureGroups: [],
377
+ backtrackStack: [],
378
+ explanation: `从位置 ${startPos} 开始的匹配尝试失败`
379
+ });
380
+ }
381
+ return { success, matchedText, steps, stepNumber };
382
+ }
383
+ export function visualizeRegexSteps(pattern, text, maxSteps = 200) {
384
+ const steps = [];
385
+ const components = parseSimpleRegex(pattern);
386
+ let stepNumber = 0;
387
+ steps.push({
388
+ stepNumber: stepNumber++,
389
+ textPosition: 0,
390
+ regexPosition: 0,
391
+ action: '🎬 开始正则匹配',
392
+ status: 'matching',
393
+ matchedText: '',
394
+ captureGroups: [],
395
+ backtrackStack: [],
396
+ explanation: `准备在文本中搜索模式 /${pattern}/,文本内容:"${text}"`
397
+ });
398
+ for (let i = 0; i < text.length; i++) {
399
+ const result = tryMatchAt(components, text, i, steps, stepNumber);
400
+ stepNumber = result.stepNumber;
401
+ if (result.success) {
402
+ return {
403
+ steps,
404
+ finalMatch: {
405
+ success: true,
406
+ matchedText: result.matchedText,
407
+ captureGroups: []
408
+ }
409
+ };
410
+ }
411
+ if (steps.length >= maxSteps) {
412
+ steps.push({
413
+ stepNumber: stepNumber++,
414
+ textPosition: i + 1,
415
+ regexPosition: 0,
416
+ action: '⏸ 步骤过多,暂停',
417
+ status: 'failed',
418
+ matchedText: '',
419
+ captureGroups: [],
420
+ backtrackStack: [],
421
+ explanation: `已生成 ${steps.length} 个步骤,为避免过长暂停执行`
422
+ });
423
+ break;
424
+ }
425
+ }
426
+ steps.push({
427
+ stepNumber: stepNumber++,
428
+ textPosition: text.length,
429
+ regexPosition: 0,
430
+ action: '❌ 匹配失败',
431
+ status: 'failed',
432
+ matchedText: '',
433
+ captureGroups: [],
434
+ backtrackStack: [],
435
+ explanation: `已扫描整个文本,未找到匹配项`
436
+ });
437
+ return {
438
+ steps,
439
+ finalMatch: {
440
+ success: false,
441
+ matchedText: '',
442
+ captureGroups: []
443
+ }
444
+ };
445
+ }
446
+ //# sourceMappingURL=visualizeRegexSteps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visualizeRegexSteps.js","sourceRoot":"","sources":["../../../src/functions/string/visualizeRegexSteps.ts"],"names":[],"mappings":"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"}
@@ -50,44 +50,52 @@ export async function uploadToCOS(options, deps) {
50
50
  deps.log(`发现 ${files.length} 个文件待上传`);
51
51
  let uploadedCount = 0;
52
52
  const folderBaseName = deps.basename(localPath);
53
- for (const filePath of files) {
54
- try {
55
- const relativePath = deps.relative(localPath, filePath);
56
- let cloudKey;
57
- if (includeRootFolder) {
58
- cloudKey = deps.normalize(`${cloudPath}/${folderBaseName}/${relativePath}`);
59
- }
60
- else {
61
- cloudKey = deps.normalize(`${cloudPath}/${relativePath}`);
62
- }
63
- cloudKey = cloudKey.replace(/^\/+/, '').replace(/\\/g, '/');
64
- const fileContent = deps.readFileSync(filePath);
65
- await new Promise((resolve, reject) => {
66
- cos.putObject({
67
- Bucket: bucket,
68
- Region: region,
69
- Key: cloudKey,
70
- Body: fileContent,
71
- onProgress: showProgress ? (progressData) => {
72
- deps.log(`上传进度 [${cloudKey}]: ${progressData.percent}%`);
73
- } : undefined
74
- }, (err, data) => {
75
- if (err) {
76
- reject(err);
77
- }
78
- else {
79
- resolve();
80
- }
81
- });
82
- });
83
- uploadedCount++;
84
- deps.log(`✓ 上传成功 (${uploadedCount}/${files.length}): ${cloudKey}`);
53
+ const concurrency = 10;
54
+ const uploadFile = async (filePath) => {
55
+ const relativePath = deps.relative(localPath, filePath);
56
+ let cloudKey;
57
+ if (includeRootFolder) {
58
+ cloudKey = deps.normalize(`${cloudPath}/${folderBaseName}/${relativePath}`);
85
59
  }
86
- catch (error) {
87
- const errorMessage = error instanceof Error ? error.message : String(error);
88
- deps.error(`✗ 上传失败: ${filePath}`, errorMessage);
89
- failedFiles.push(filePath);
60
+ else {
61
+ cloudKey = deps.normalize(`${cloudPath}/${relativePath}`);
90
62
  }
63
+ cloudKey = cloudKey.replace(/^\/+/, '').replace(/\\/g, '/');
64
+ const fileContent = deps.readFileSync(filePath);
65
+ await new Promise((resolve, reject) => {
66
+ cos.putObject({
67
+ Bucket: bucket,
68
+ Region: region,
69
+ Key: cloudKey,
70
+ Body: fileContent
71
+ }, (err, data) => {
72
+ if (err) {
73
+ reject(err);
74
+ }
75
+ else {
76
+ uploadedCount++;
77
+ if (showProgress && (uploadedCount % 10 === 0 || uploadedCount === files.length)) {
78
+ const progress = ((uploadedCount / files.length) * 100).toFixed(1);
79
+ deps.log(`上传进度: ${uploadedCount}/${files.length} (${progress}%)`);
80
+ }
81
+ resolve();
82
+ }
83
+ });
84
+ });
85
+ };
86
+ for (let i = 0; i < files.length; i += concurrency) {
87
+ const batch = files.slice(i, i + concurrency);
88
+ const uploadPromises = batch.map(async (filePath) => {
89
+ try {
90
+ await uploadFile(filePath);
91
+ }
92
+ catch (error) {
93
+ const errorMessage = error instanceof Error ? error.message : String(error);
94
+ deps.error(`✗ 上传失败: ${filePath}`, errorMessage);
95
+ failedFiles.push(filePath);
96
+ }
97
+ });
98
+ await Promise.all(uploadPromises);
91
99
  }
92
100
  if (failedFiles.length === 0) {
93
101
  deps.log(`所有文件上传成功,共 ${uploadedCount} 个文件`);
@@ -1 +1 @@
1
- {"version":3,"file":"upload.cos.js","sourceRoot":"","sources":["../../../src/functions/tencent-cloud/upload.cos.ts"],"names":[],"mappings":"AA6EA,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B,EAC3B,IAAqB;IAErB,MAAM,EACJ,SAAS,EACT,MAAM,EACN,MAAM,EACN,SAAS,GAAG,EAAE,EACd,UAAU,EACV,iBAAiB,GAAG,KAAK,EACzB,YAAY,GAAG,IAAI,EACpB,GAAG,OAAO,CAAA;IAEX,IAAI,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,YAAY,SAAS,EAAE;aAC/B,CAAA;QACH,CAAC;QAGD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACrC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,YAAY,SAAS,EAAE;aAC/B,CAAA;QACH,CAAC;QAGD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACrD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,YAAY,UAAU,EAAE;aAChC,CAAA;QACH,CAAC;QAGD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC,CAAA;QAGF,MAAM,KAAK,GAAa,EAAE,CAAA;QAC1B,MAAM,WAAW,GAAa,EAAE,CAAA;QAEhC,SAAS,OAAO,CAAC,OAAe;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YAEzC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;gBAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBAEpC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACvB,OAAO,CAAC,QAAQ,CAAC,CAAA;gBACnB,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBACzB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAGD,OAAO,CAAC,SAAS,CAAC,CAAA;QAElB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,eAAe;aACvB,CAAA;QACH,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,MAAM,SAAS,CAAC,CAAA;QAGrC,IAAI,aAAa,GAAG,CAAC,CAAA;QACrB,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAE/C,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC;gBAEH,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;gBAGvD,IAAI,QAAgB,CAAA;gBACpB,IAAI,iBAAiB,EAAE,CAAC;oBAEtB,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,IAAI,cAAc,IAAI,YAAY,EAAE,CAAC,CAAA;gBAC7E,CAAC;qBAAM,CAAC;oBAEN,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,IAAI,YAAY,EAAE,CAAC,CAAA;gBAC3D,CAAC;gBAGD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBAG3D,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;gBAG/C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,GAAG,CAAC,SAAS,CACX;wBACE,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,MAAM;wBACd,GAAG,EAAE,QAAQ;wBACb,IAAI,EAAE,WAAW;wBACjB,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAmC,EAAE,EAAE;4BACjE,IAAI,CAAC,GAAG,CAAC,SAAS,QAAQ,MAAM,YAAY,CAAC,OAAO,GAAG,CAAC,CAAA;wBAC1D,CAAC,CAAC,CAAC,CAAC,SAAS;qBACd,EACD,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;wBACZ,IAAI,GAAG,EAAE,CAAC;4BACR,MAAM,CAAC,GAAG,CAAC,CAAA;wBACb,CAAC;6BAAM,CAAC;4BACN,OAAO,EAAE,CAAA;wBACX,CAAC;oBACH,CAAC,CACF,CAAA;gBACH,CAAC,CAAC,CAAA;gBAEF,aAAa,EAAE,CAAA;gBACf,IAAI,CAAC,GAAG,CAAC,WAAW,aAAa,IAAI,KAAK,CAAC,MAAM,MAAM,QAAQ,EAAE,CAAC,CAAA;YACpE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC3E,IAAI,CAAC,KAAK,CAAC,WAAW,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAA;gBAC/C,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC5B,CAAC;QACH,CAAC;QAGD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,cAAc,aAAa,MAAM,CAAC,CAAA;YAC3C,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,UAAU,aAAa,MAAM;gBACtC,UAAU,EAAE,aAAa;aAC1B,CAAA;QACH,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,eAAe,aAAa,SAAS,WAAW,CAAC,MAAM,IAAI;gBAClE,UAAU,EAAE,aAAa;gBACzB,WAAW;aACZ,CAAA;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC1B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,SAAS,YAAY,EAAE;SAC/B,CAAA;IACH,CAAC;AACH,CAAC;AAKD,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"upload.cos.js","sourceRoot":"","sources":["../../../src/functions/tencent-cloud/upload.cos.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import type { EventSourceConstructor, EventSource } from '../../references/eventsource.d';
2
+ import type { setTimeout, clearTimeout } from '../../references/timer.d';
3
+ export declare enum SSEStatus {
4
+ CONNECTING = "CONNECTING",
5
+ CONNECTED = "CONNECTED",
6
+ DISCONNECTED = "DISCONNECTED",
7
+ ERROR = "ERROR"
8
+ }
9
+ export interface SSEReconnectOptions {
10
+ enabled?: boolean;
11
+ delay?: number;
12
+ maxRetries?: number;
13
+ retryDelayMultiplier?: number;
14
+ }
15
+ export interface UseReactiveSSEOptions {
16
+ withCredentials?: boolean;
17
+ immediate?: boolean;
18
+ reconnect?: SSEReconnectOptions;
19
+ onConnected?: (es: EventSource) => void;
20
+ onDisconnected?: (es: EventSource, event: any) => void;
21
+ onError?: (es: EventSource, event: any) => void;
22
+ onMessage?: (es: EventSource, event: any) => void;
23
+ }
24
+ export interface ReactiveSSEState {
25
+ status: SSEStatus;
26
+ data: string | null;
27
+ lastEventId: string;
28
+ error: Error | null;
29
+ retryCount: number;
30
+ es: EventSource | null;
31
+ }
32
+ export interface ReactiveSSEReturn {
33
+ state: ReactiveSSEState;
34
+ connect: () => void;
35
+ disconnect: () => void;
36
+ addEventListener: (type: string, listener: (event: any) => void) => () => void;
37
+ subscribe: (listener: () => void) => () => void;
38
+ dispose: () => void;
39
+ }
40
+ export interface UseReactiveSSEDeps {
41
+ EventSource: EventSourceConstructor;
42
+ setTimeout: typeof setTimeout;
43
+ clearTimeout: typeof clearTimeout;
44
+ log?: (...args: any[]) => void;
45
+ }
46
+ export declare function useReactiveSSE(url: string, options: UseReactiveSSEOptions | undefined, deps: UseReactiveSSEDeps): ReactiveSSEReturn;