@sunjuntao/dsh-qqbot 0.1.7

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/lib/cli.js ADDED
@@ -0,0 +1,1349 @@
1
+ #!/usr/bin/env node
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJS = (cb, mod) => function __require() {
9
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
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
+
28
+ // node_modules/qrcode-terminal/vendor/QRCode/QRMode.js
29
+ var require_QRMode = __commonJS({
30
+ "node_modules/qrcode-terminal/vendor/QRCode/QRMode.js"(exports, module) {
31
+ module.exports = {
32
+ MODE_NUMBER: 1 << 0,
33
+ MODE_ALPHA_NUM: 1 << 1,
34
+ MODE_8BIT_BYTE: 1 << 2,
35
+ MODE_KANJI: 1 << 3
36
+ };
37
+ }
38
+ });
39
+
40
+ // node_modules/qrcode-terminal/vendor/QRCode/QR8bitByte.js
41
+ var require_QR8bitByte = __commonJS({
42
+ "node_modules/qrcode-terminal/vendor/QRCode/QR8bitByte.js"(exports, module) {
43
+ var QRMode = require_QRMode();
44
+ function QR8bitByte(data) {
45
+ this.mode = QRMode.MODE_8BIT_BYTE;
46
+ this.data = data;
47
+ }
48
+ QR8bitByte.prototype = {
49
+ getLength: function() {
50
+ return this.data.length;
51
+ },
52
+ write: function(buffer) {
53
+ for (var i = 0; i < this.data.length; i++) {
54
+ buffer.put(this.data.charCodeAt(i), 8);
55
+ }
56
+ }
57
+ };
58
+ module.exports = QR8bitByte;
59
+ }
60
+ });
61
+
62
+ // node_modules/qrcode-terminal/vendor/QRCode/QRMath.js
63
+ var require_QRMath = __commonJS({
64
+ "node_modules/qrcode-terminal/vendor/QRCode/QRMath.js"(exports, module) {
65
+ var QRMath = {
66
+ glog: function(n) {
67
+ if (n < 1) {
68
+ throw new Error("glog(" + n + ")");
69
+ }
70
+ return QRMath.LOG_TABLE[n];
71
+ },
72
+ gexp: function(n) {
73
+ while (n < 0) {
74
+ n += 255;
75
+ }
76
+ while (n >= 256) {
77
+ n -= 255;
78
+ }
79
+ return QRMath.EXP_TABLE[n];
80
+ },
81
+ EXP_TABLE: new Array(256),
82
+ LOG_TABLE: new Array(256)
83
+ };
84
+ for (i = 0; i < 8; i++) {
85
+ QRMath.EXP_TABLE[i] = 1 << i;
86
+ }
87
+ var i;
88
+ for (i = 8; i < 256; i++) {
89
+ QRMath.EXP_TABLE[i] = QRMath.EXP_TABLE[i - 4] ^ QRMath.EXP_TABLE[i - 5] ^ QRMath.EXP_TABLE[i - 6] ^ QRMath.EXP_TABLE[i - 8];
90
+ }
91
+ var i;
92
+ for (i = 0; i < 255; i++) {
93
+ QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i;
94
+ }
95
+ var i;
96
+ module.exports = QRMath;
97
+ }
98
+ });
99
+
100
+ // node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js
101
+ var require_QRPolynomial = __commonJS({
102
+ "node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js"(exports, module) {
103
+ var QRMath = require_QRMath();
104
+ function QRPolynomial(num, shift) {
105
+ if (num.length === void 0) {
106
+ throw new Error(num.length + "/" + shift);
107
+ }
108
+ var offset = 0;
109
+ while (offset < num.length && num[offset] === 0) {
110
+ offset++;
111
+ }
112
+ this.num = new Array(num.length - offset + shift);
113
+ for (var i = 0; i < num.length - offset; i++) {
114
+ this.num[i] = num[i + offset];
115
+ }
116
+ }
117
+ QRPolynomial.prototype = {
118
+ get: function(index) {
119
+ return this.num[index];
120
+ },
121
+ getLength: function() {
122
+ return this.num.length;
123
+ },
124
+ multiply: function(e) {
125
+ var num = new Array(this.getLength() + e.getLength() - 1);
126
+ for (var i = 0; i < this.getLength(); i++) {
127
+ for (var j = 0; j < e.getLength(); j++) {
128
+ num[i + j] ^= QRMath.gexp(QRMath.glog(this.get(i)) + QRMath.glog(e.get(j)));
129
+ }
130
+ }
131
+ return new QRPolynomial(num, 0);
132
+ },
133
+ mod: function(e) {
134
+ if (this.getLength() - e.getLength() < 0) {
135
+ return this;
136
+ }
137
+ var ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0));
138
+ var num = new Array(this.getLength());
139
+ for (var i = 0; i < this.getLength(); i++) {
140
+ num[i] = this.get(i);
141
+ }
142
+ for (var x = 0; x < e.getLength(); x++) {
143
+ num[x] ^= QRMath.gexp(QRMath.glog(e.get(x)) + ratio);
144
+ }
145
+ return new QRPolynomial(num, 0).mod(e);
146
+ }
147
+ };
148
+ module.exports = QRPolynomial;
149
+ }
150
+ });
151
+
152
+ // node_modules/qrcode-terminal/vendor/QRCode/QRMaskPattern.js
153
+ var require_QRMaskPattern = __commonJS({
154
+ "node_modules/qrcode-terminal/vendor/QRCode/QRMaskPattern.js"(exports, module) {
155
+ module.exports = {
156
+ PATTERN000: 0,
157
+ PATTERN001: 1,
158
+ PATTERN010: 2,
159
+ PATTERN011: 3,
160
+ PATTERN100: 4,
161
+ PATTERN101: 5,
162
+ PATTERN110: 6,
163
+ PATTERN111: 7
164
+ };
165
+ }
166
+ });
167
+
168
+ // node_modules/qrcode-terminal/vendor/QRCode/QRUtil.js
169
+ var require_QRUtil = __commonJS({
170
+ "node_modules/qrcode-terminal/vendor/QRCode/QRUtil.js"(exports, module) {
171
+ var QRMode = require_QRMode();
172
+ var QRPolynomial = require_QRPolynomial();
173
+ var QRMath = require_QRMath();
174
+ var QRMaskPattern = require_QRMaskPattern();
175
+ var QRUtil = {
176
+ PATTERN_POSITION_TABLE: [
177
+ [],
178
+ [6, 18],
179
+ [6, 22],
180
+ [6, 26],
181
+ [6, 30],
182
+ [6, 34],
183
+ [6, 22, 38],
184
+ [6, 24, 42],
185
+ [6, 26, 46],
186
+ [6, 28, 50],
187
+ [6, 30, 54],
188
+ [6, 32, 58],
189
+ [6, 34, 62],
190
+ [6, 26, 46, 66],
191
+ [6, 26, 48, 70],
192
+ [6, 26, 50, 74],
193
+ [6, 30, 54, 78],
194
+ [6, 30, 56, 82],
195
+ [6, 30, 58, 86],
196
+ [6, 34, 62, 90],
197
+ [6, 28, 50, 72, 94],
198
+ [6, 26, 50, 74, 98],
199
+ [6, 30, 54, 78, 102],
200
+ [6, 28, 54, 80, 106],
201
+ [6, 32, 58, 84, 110],
202
+ [6, 30, 58, 86, 114],
203
+ [6, 34, 62, 90, 118],
204
+ [6, 26, 50, 74, 98, 122],
205
+ [6, 30, 54, 78, 102, 126],
206
+ [6, 26, 52, 78, 104, 130],
207
+ [6, 30, 56, 82, 108, 134],
208
+ [6, 34, 60, 86, 112, 138],
209
+ [6, 30, 58, 86, 114, 142],
210
+ [6, 34, 62, 90, 118, 146],
211
+ [6, 30, 54, 78, 102, 126, 150],
212
+ [6, 24, 50, 76, 102, 128, 154],
213
+ [6, 28, 54, 80, 106, 132, 158],
214
+ [6, 32, 58, 84, 110, 136, 162],
215
+ [6, 26, 54, 82, 110, 138, 166],
216
+ [6, 30, 58, 86, 114, 142, 170]
217
+ ],
218
+ G15: 1 << 10 | 1 << 8 | 1 << 5 | 1 << 4 | 1 << 2 | 1 << 1 | 1 << 0,
219
+ G18: 1 << 12 | 1 << 11 | 1 << 10 | 1 << 9 | 1 << 8 | 1 << 5 | 1 << 2 | 1 << 0,
220
+ G15_MASK: 1 << 14 | 1 << 12 | 1 << 10 | 1 << 4 | 1 << 1,
221
+ getBCHTypeInfo: function(data) {
222
+ var d3 = data << 10;
223
+ while (QRUtil.getBCHDigit(d3) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {
224
+ d3 ^= QRUtil.G15 << QRUtil.getBCHDigit(d3) - QRUtil.getBCHDigit(QRUtil.G15);
225
+ }
226
+ return (data << 10 | d3) ^ QRUtil.G15_MASK;
227
+ },
228
+ getBCHTypeNumber: function(data) {
229
+ var d3 = data << 12;
230
+ while (QRUtil.getBCHDigit(d3) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {
231
+ d3 ^= QRUtil.G18 << QRUtil.getBCHDigit(d3) - QRUtil.getBCHDigit(QRUtil.G18);
232
+ }
233
+ return data << 12 | d3;
234
+ },
235
+ getBCHDigit: function(data) {
236
+ var digit = 0;
237
+ while (data !== 0) {
238
+ digit++;
239
+ data >>>= 1;
240
+ }
241
+ return digit;
242
+ },
243
+ getPatternPosition: function(typeNumber) {
244
+ return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];
245
+ },
246
+ getMask: function(maskPattern, i, j) {
247
+ switch (maskPattern) {
248
+ case QRMaskPattern.PATTERN000:
249
+ return (i + j) % 2 === 0;
250
+ case QRMaskPattern.PATTERN001:
251
+ return i % 2 === 0;
252
+ case QRMaskPattern.PATTERN010:
253
+ return j % 3 === 0;
254
+ case QRMaskPattern.PATTERN011:
255
+ return (i + j) % 3 === 0;
256
+ case QRMaskPattern.PATTERN100:
257
+ return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0;
258
+ case QRMaskPattern.PATTERN101:
259
+ return i * j % 2 + i * j % 3 === 0;
260
+ case QRMaskPattern.PATTERN110:
261
+ return (i * j % 2 + i * j % 3) % 2 === 0;
262
+ case QRMaskPattern.PATTERN111:
263
+ return (i * j % 3 + (i + j) % 2) % 2 === 0;
264
+ default:
265
+ throw new Error("bad maskPattern:" + maskPattern);
266
+ }
267
+ },
268
+ getErrorCorrectPolynomial: function(errorCorrectLength) {
269
+ var a = new QRPolynomial([1], 0);
270
+ for (var i = 0; i < errorCorrectLength; i++) {
271
+ a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0));
272
+ }
273
+ return a;
274
+ },
275
+ getLengthInBits: function(mode, type) {
276
+ if (1 <= type && type < 10) {
277
+ switch (mode) {
278
+ case QRMode.MODE_NUMBER:
279
+ return 10;
280
+ case QRMode.MODE_ALPHA_NUM:
281
+ return 9;
282
+ case QRMode.MODE_8BIT_BYTE:
283
+ return 8;
284
+ case QRMode.MODE_KANJI:
285
+ return 8;
286
+ default:
287
+ throw new Error("mode:" + mode);
288
+ }
289
+ } else if (type < 27) {
290
+ switch (mode) {
291
+ case QRMode.MODE_NUMBER:
292
+ return 12;
293
+ case QRMode.MODE_ALPHA_NUM:
294
+ return 11;
295
+ case QRMode.MODE_8BIT_BYTE:
296
+ return 16;
297
+ case QRMode.MODE_KANJI:
298
+ return 10;
299
+ default:
300
+ throw new Error("mode:" + mode);
301
+ }
302
+ } else if (type < 41) {
303
+ switch (mode) {
304
+ case QRMode.MODE_NUMBER:
305
+ return 14;
306
+ case QRMode.MODE_ALPHA_NUM:
307
+ return 13;
308
+ case QRMode.MODE_8BIT_BYTE:
309
+ return 16;
310
+ case QRMode.MODE_KANJI:
311
+ return 12;
312
+ default:
313
+ throw new Error("mode:" + mode);
314
+ }
315
+ } else {
316
+ throw new Error("type:" + type);
317
+ }
318
+ },
319
+ getLostPoint: function(qrCode) {
320
+ var moduleCount = qrCode.getModuleCount();
321
+ var lostPoint = 0;
322
+ var row = 0;
323
+ var col = 0;
324
+ for (row = 0; row < moduleCount; row++) {
325
+ for (col = 0; col < moduleCount; col++) {
326
+ var sameCount = 0;
327
+ var dark = qrCode.isDark(row, col);
328
+ for (var r = -1; r <= 1; r++) {
329
+ if (row + r < 0 || moduleCount <= row + r) {
330
+ continue;
331
+ }
332
+ for (var c = -1; c <= 1; c++) {
333
+ if (col + c < 0 || moduleCount <= col + c) {
334
+ continue;
335
+ }
336
+ if (r === 0 && c === 0) {
337
+ continue;
338
+ }
339
+ if (dark === qrCode.isDark(row + r, col + c)) {
340
+ sameCount++;
341
+ }
342
+ }
343
+ }
344
+ if (sameCount > 5) {
345
+ lostPoint += 3 + sameCount - 5;
346
+ }
347
+ }
348
+ }
349
+ for (row = 0; row < moduleCount - 1; row++) {
350
+ for (col = 0; col < moduleCount - 1; col++) {
351
+ var count = 0;
352
+ if (qrCode.isDark(row, col)) count++;
353
+ if (qrCode.isDark(row + 1, col)) count++;
354
+ if (qrCode.isDark(row, col + 1)) count++;
355
+ if (qrCode.isDark(row + 1, col + 1)) count++;
356
+ if (count === 0 || count === 4) {
357
+ lostPoint += 3;
358
+ }
359
+ }
360
+ }
361
+ for (row = 0; row < moduleCount; row++) {
362
+ for (col = 0; col < moduleCount - 6; col++) {
363
+ if (qrCode.isDark(row, col) && !qrCode.isDark(row, col + 1) && qrCode.isDark(row, col + 2) && qrCode.isDark(row, col + 3) && qrCode.isDark(row, col + 4) && !qrCode.isDark(row, col + 5) && qrCode.isDark(row, col + 6)) {
364
+ lostPoint += 40;
365
+ }
366
+ }
367
+ }
368
+ for (col = 0; col < moduleCount; col++) {
369
+ for (row = 0; row < moduleCount - 6; row++) {
370
+ if (qrCode.isDark(row, col) && !qrCode.isDark(row + 1, col) && qrCode.isDark(row + 2, col) && qrCode.isDark(row + 3, col) && qrCode.isDark(row + 4, col) && !qrCode.isDark(row + 5, col) && qrCode.isDark(row + 6, col)) {
371
+ lostPoint += 40;
372
+ }
373
+ }
374
+ }
375
+ var darkCount = 0;
376
+ for (col = 0; col < moduleCount; col++) {
377
+ for (row = 0; row < moduleCount; row++) {
378
+ if (qrCode.isDark(row, col)) {
379
+ darkCount++;
380
+ }
381
+ }
382
+ }
383
+ var ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;
384
+ lostPoint += ratio * 10;
385
+ return lostPoint;
386
+ }
387
+ };
388
+ module.exports = QRUtil;
389
+ }
390
+ });
391
+
392
+ // node_modules/qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js
393
+ var require_QRErrorCorrectLevel = __commonJS({
394
+ "node_modules/qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js"(exports, module) {
395
+ module.exports = {
396
+ L: 1,
397
+ M: 0,
398
+ Q: 3,
399
+ H: 2
400
+ };
401
+ }
402
+ });
403
+
404
+ // node_modules/qrcode-terminal/vendor/QRCode/QRRSBlock.js
405
+ var require_QRRSBlock = __commonJS({
406
+ "node_modules/qrcode-terminal/vendor/QRCode/QRRSBlock.js"(exports, module) {
407
+ var QRErrorCorrectLevel = require_QRErrorCorrectLevel();
408
+ function QRRSBlock(totalCount, dataCount) {
409
+ this.totalCount = totalCount;
410
+ this.dataCount = dataCount;
411
+ }
412
+ QRRSBlock.RS_BLOCK_TABLE = [
413
+ // L
414
+ // M
415
+ // Q
416
+ // H
417
+ // 1
418
+ [1, 26, 19],
419
+ [1, 26, 16],
420
+ [1, 26, 13],
421
+ [1, 26, 9],
422
+ // 2
423
+ [1, 44, 34],
424
+ [1, 44, 28],
425
+ [1, 44, 22],
426
+ [1, 44, 16],
427
+ // 3
428
+ [1, 70, 55],
429
+ [1, 70, 44],
430
+ [2, 35, 17],
431
+ [2, 35, 13],
432
+ // 4
433
+ [1, 100, 80],
434
+ [2, 50, 32],
435
+ [2, 50, 24],
436
+ [4, 25, 9],
437
+ // 5
438
+ [1, 134, 108],
439
+ [2, 67, 43],
440
+ [2, 33, 15, 2, 34, 16],
441
+ [2, 33, 11, 2, 34, 12],
442
+ // 6
443
+ [2, 86, 68],
444
+ [4, 43, 27],
445
+ [4, 43, 19],
446
+ [4, 43, 15],
447
+ // 7
448
+ [2, 98, 78],
449
+ [4, 49, 31],
450
+ [2, 32, 14, 4, 33, 15],
451
+ [4, 39, 13, 1, 40, 14],
452
+ // 8
453
+ [2, 121, 97],
454
+ [2, 60, 38, 2, 61, 39],
455
+ [4, 40, 18, 2, 41, 19],
456
+ [4, 40, 14, 2, 41, 15],
457
+ // 9
458
+ [2, 146, 116],
459
+ [3, 58, 36, 2, 59, 37],
460
+ [4, 36, 16, 4, 37, 17],
461
+ [4, 36, 12, 4, 37, 13],
462
+ // 10
463
+ [2, 86, 68, 2, 87, 69],
464
+ [4, 69, 43, 1, 70, 44],
465
+ [6, 43, 19, 2, 44, 20],
466
+ [6, 43, 15, 2, 44, 16],
467
+ // 11
468
+ [4, 101, 81],
469
+ [1, 80, 50, 4, 81, 51],
470
+ [4, 50, 22, 4, 51, 23],
471
+ [3, 36, 12, 8, 37, 13],
472
+ // 12
473
+ [2, 116, 92, 2, 117, 93],
474
+ [6, 58, 36, 2, 59, 37],
475
+ [4, 46, 20, 6, 47, 21],
476
+ [7, 42, 14, 4, 43, 15],
477
+ // 13
478
+ [4, 133, 107],
479
+ [8, 59, 37, 1, 60, 38],
480
+ [8, 44, 20, 4, 45, 21],
481
+ [12, 33, 11, 4, 34, 12],
482
+ // 14
483
+ [3, 145, 115, 1, 146, 116],
484
+ [4, 64, 40, 5, 65, 41],
485
+ [11, 36, 16, 5, 37, 17],
486
+ [11, 36, 12, 5, 37, 13],
487
+ // 15
488
+ [5, 109, 87, 1, 110, 88],
489
+ [5, 65, 41, 5, 66, 42],
490
+ [5, 54, 24, 7, 55, 25],
491
+ [11, 36, 12],
492
+ // 16
493
+ [5, 122, 98, 1, 123, 99],
494
+ [7, 73, 45, 3, 74, 46],
495
+ [15, 43, 19, 2, 44, 20],
496
+ [3, 45, 15, 13, 46, 16],
497
+ // 17
498
+ [1, 135, 107, 5, 136, 108],
499
+ [10, 74, 46, 1, 75, 47],
500
+ [1, 50, 22, 15, 51, 23],
501
+ [2, 42, 14, 17, 43, 15],
502
+ // 18
503
+ [5, 150, 120, 1, 151, 121],
504
+ [9, 69, 43, 4, 70, 44],
505
+ [17, 50, 22, 1, 51, 23],
506
+ [2, 42, 14, 19, 43, 15],
507
+ // 19
508
+ [3, 141, 113, 4, 142, 114],
509
+ [3, 70, 44, 11, 71, 45],
510
+ [17, 47, 21, 4, 48, 22],
511
+ [9, 39, 13, 16, 40, 14],
512
+ // 20
513
+ [3, 135, 107, 5, 136, 108],
514
+ [3, 67, 41, 13, 68, 42],
515
+ [15, 54, 24, 5, 55, 25],
516
+ [15, 43, 15, 10, 44, 16],
517
+ // 21
518
+ [4, 144, 116, 4, 145, 117],
519
+ [17, 68, 42],
520
+ [17, 50, 22, 6, 51, 23],
521
+ [19, 46, 16, 6, 47, 17],
522
+ // 22
523
+ [2, 139, 111, 7, 140, 112],
524
+ [17, 74, 46],
525
+ [7, 54, 24, 16, 55, 25],
526
+ [34, 37, 13],
527
+ // 23
528
+ [4, 151, 121, 5, 152, 122],
529
+ [4, 75, 47, 14, 76, 48],
530
+ [11, 54, 24, 14, 55, 25],
531
+ [16, 45, 15, 14, 46, 16],
532
+ // 24
533
+ [6, 147, 117, 4, 148, 118],
534
+ [6, 73, 45, 14, 74, 46],
535
+ [11, 54, 24, 16, 55, 25],
536
+ [30, 46, 16, 2, 47, 17],
537
+ // 25
538
+ [8, 132, 106, 4, 133, 107],
539
+ [8, 75, 47, 13, 76, 48],
540
+ [7, 54, 24, 22, 55, 25],
541
+ [22, 45, 15, 13, 46, 16],
542
+ // 26
543
+ [10, 142, 114, 2, 143, 115],
544
+ [19, 74, 46, 4, 75, 47],
545
+ [28, 50, 22, 6, 51, 23],
546
+ [33, 46, 16, 4, 47, 17],
547
+ // 27
548
+ [8, 152, 122, 4, 153, 123],
549
+ [22, 73, 45, 3, 74, 46],
550
+ [8, 53, 23, 26, 54, 24],
551
+ [12, 45, 15, 28, 46, 16],
552
+ // 28
553
+ [3, 147, 117, 10, 148, 118],
554
+ [3, 73, 45, 23, 74, 46],
555
+ [4, 54, 24, 31, 55, 25],
556
+ [11, 45, 15, 31, 46, 16],
557
+ // 29
558
+ [7, 146, 116, 7, 147, 117],
559
+ [21, 73, 45, 7, 74, 46],
560
+ [1, 53, 23, 37, 54, 24],
561
+ [19, 45, 15, 26, 46, 16],
562
+ // 30
563
+ [5, 145, 115, 10, 146, 116],
564
+ [19, 75, 47, 10, 76, 48],
565
+ [15, 54, 24, 25, 55, 25],
566
+ [23, 45, 15, 25, 46, 16],
567
+ // 31
568
+ [13, 145, 115, 3, 146, 116],
569
+ [2, 74, 46, 29, 75, 47],
570
+ [42, 54, 24, 1, 55, 25],
571
+ [23, 45, 15, 28, 46, 16],
572
+ // 32
573
+ [17, 145, 115],
574
+ [10, 74, 46, 23, 75, 47],
575
+ [10, 54, 24, 35, 55, 25],
576
+ [19, 45, 15, 35, 46, 16],
577
+ // 33
578
+ [17, 145, 115, 1, 146, 116],
579
+ [14, 74, 46, 21, 75, 47],
580
+ [29, 54, 24, 19, 55, 25],
581
+ [11, 45, 15, 46, 46, 16],
582
+ // 34
583
+ [13, 145, 115, 6, 146, 116],
584
+ [14, 74, 46, 23, 75, 47],
585
+ [44, 54, 24, 7, 55, 25],
586
+ [59, 46, 16, 1, 47, 17],
587
+ // 35
588
+ [12, 151, 121, 7, 152, 122],
589
+ [12, 75, 47, 26, 76, 48],
590
+ [39, 54, 24, 14, 55, 25],
591
+ [22, 45, 15, 41, 46, 16],
592
+ // 36
593
+ [6, 151, 121, 14, 152, 122],
594
+ [6, 75, 47, 34, 76, 48],
595
+ [46, 54, 24, 10, 55, 25],
596
+ [2, 45, 15, 64, 46, 16],
597
+ // 37
598
+ [17, 152, 122, 4, 153, 123],
599
+ [29, 74, 46, 14, 75, 47],
600
+ [49, 54, 24, 10, 55, 25],
601
+ [24, 45, 15, 46, 46, 16],
602
+ // 38
603
+ [4, 152, 122, 18, 153, 123],
604
+ [13, 74, 46, 32, 75, 47],
605
+ [48, 54, 24, 14, 55, 25],
606
+ [42, 45, 15, 32, 46, 16],
607
+ // 39
608
+ [20, 147, 117, 4, 148, 118],
609
+ [40, 75, 47, 7, 76, 48],
610
+ [43, 54, 24, 22, 55, 25],
611
+ [10, 45, 15, 67, 46, 16],
612
+ // 40
613
+ [19, 148, 118, 6, 149, 119],
614
+ [18, 75, 47, 31, 76, 48],
615
+ [34, 54, 24, 34, 55, 25],
616
+ [20, 45, 15, 61, 46, 16]
617
+ ];
618
+ QRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {
619
+ var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);
620
+ if (rsBlock === void 0) {
621
+ throw new Error("bad rs block @ typeNumber:" + typeNumber + "/errorCorrectLevel:" + errorCorrectLevel);
622
+ }
623
+ var length = rsBlock.length / 3;
624
+ var list = [];
625
+ for (var i = 0; i < length; i++) {
626
+ var count = rsBlock[i * 3 + 0];
627
+ var totalCount = rsBlock[i * 3 + 1];
628
+ var dataCount = rsBlock[i * 3 + 2];
629
+ for (var j = 0; j < count; j++) {
630
+ list.push(new QRRSBlock(totalCount, dataCount));
631
+ }
632
+ }
633
+ return list;
634
+ };
635
+ QRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {
636
+ switch (errorCorrectLevel) {
637
+ case QRErrorCorrectLevel.L:
638
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];
639
+ case QRErrorCorrectLevel.M:
640
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];
641
+ case QRErrorCorrectLevel.Q:
642
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];
643
+ case QRErrorCorrectLevel.H:
644
+ return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];
645
+ default:
646
+ return void 0;
647
+ }
648
+ };
649
+ module.exports = QRRSBlock;
650
+ }
651
+ });
652
+
653
+ // node_modules/qrcode-terminal/vendor/QRCode/QRBitBuffer.js
654
+ var require_QRBitBuffer = __commonJS({
655
+ "node_modules/qrcode-terminal/vendor/QRCode/QRBitBuffer.js"(exports, module) {
656
+ function QRBitBuffer() {
657
+ this.buffer = [];
658
+ this.length = 0;
659
+ }
660
+ QRBitBuffer.prototype = {
661
+ get: function(index) {
662
+ var bufIndex = Math.floor(index / 8);
663
+ return (this.buffer[bufIndex] >>> 7 - index % 8 & 1) == 1;
664
+ },
665
+ put: function(num, length) {
666
+ for (var i = 0; i < length; i++) {
667
+ this.putBit((num >>> length - i - 1 & 1) == 1);
668
+ }
669
+ },
670
+ getLengthInBits: function() {
671
+ return this.length;
672
+ },
673
+ putBit: function(bit) {
674
+ var bufIndex = Math.floor(this.length / 8);
675
+ if (this.buffer.length <= bufIndex) {
676
+ this.buffer.push(0);
677
+ }
678
+ if (bit) {
679
+ this.buffer[bufIndex] |= 128 >>> this.length % 8;
680
+ }
681
+ this.length++;
682
+ }
683
+ };
684
+ module.exports = QRBitBuffer;
685
+ }
686
+ });
687
+
688
+ // node_modules/qrcode-terminal/vendor/QRCode/index.js
689
+ var require_QRCode = __commonJS({
690
+ "node_modules/qrcode-terminal/vendor/QRCode/index.js"(exports, module) {
691
+ var QR8bitByte = require_QR8bitByte();
692
+ var QRUtil = require_QRUtil();
693
+ var QRPolynomial = require_QRPolynomial();
694
+ var QRRSBlock = require_QRRSBlock();
695
+ var QRBitBuffer = require_QRBitBuffer();
696
+ function QRCode(typeNumber, errorCorrectLevel) {
697
+ this.typeNumber = typeNumber;
698
+ this.errorCorrectLevel = errorCorrectLevel;
699
+ this.modules = null;
700
+ this.moduleCount = 0;
701
+ this.dataCache = null;
702
+ this.dataList = [];
703
+ }
704
+ QRCode.prototype = {
705
+ addData: function(data) {
706
+ var newData = new QR8bitByte(data);
707
+ this.dataList.push(newData);
708
+ this.dataCache = null;
709
+ },
710
+ isDark: function(row, col) {
711
+ if (row < 0 || this.moduleCount <= row || col < 0 || this.moduleCount <= col) {
712
+ throw new Error(row + "," + col);
713
+ }
714
+ return this.modules[row][col];
715
+ },
716
+ getModuleCount: function() {
717
+ return this.moduleCount;
718
+ },
719
+ make: function() {
720
+ if (this.typeNumber < 1) {
721
+ var typeNumber = 1;
722
+ for (typeNumber = 1; typeNumber < 40; typeNumber++) {
723
+ var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, this.errorCorrectLevel);
724
+ var buffer = new QRBitBuffer();
725
+ var totalDataCount = 0;
726
+ for (var i = 0; i < rsBlocks.length; i++) {
727
+ totalDataCount += rsBlocks[i].dataCount;
728
+ }
729
+ for (var x = 0; x < this.dataList.length; x++) {
730
+ var data = this.dataList[x];
731
+ buffer.put(data.mode, 4);
732
+ buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));
733
+ data.write(buffer);
734
+ }
735
+ if (buffer.getLengthInBits() <= totalDataCount * 8)
736
+ break;
737
+ }
738
+ this.typeNumber = typeNumber;
739
+ }
740
+ this.makeImpl(false, this.getBestMaskPattern());
741
+ },
742
+ makeImpl: function(test, maskPattern) {
743
+ this.moduleCount = this.typeNumber * 4 + 17;
744
+ this.modules = new Array(this.moduleCount);
745
+ for (var row = 0; row < this.moduleCount; row++) {
746
+ this.modules[row] = new Array(this.moduleCount);
747
+ for (var col = 0; col < this.moduleCount; col++) {
748
+ this.modules[row][col] = null;
749
+ }
750
+ }
751
+ this.setupPositionProbePattern(0, 0);
752
+ this.setupPositionProbePattern(this.moduleCount - 7, 0);
753
+ this.setupPositionProbePattern(0, this.moduleCount - 7);
754
+ this.setupPositionAdjustPattern();
755
+ this.setupTimingPattern();
756
+ this.setupTypeInfo(test, maskPattern);
757
+ if (this.typeNumber >= 7) {
758
+ this.setupTypeNumber(test);
759
+ }
760
+ if (this.dataCache === null) {
761
+ this.dataCache = QRCode.createData(this.typeNumber, this.errorCorrectLevel, this.dataList);
762
+ }
763
+ this.mapData(this.dataCache, maskPattern);
764
+ },
765
+ setupPositionProbePattern: function(row, col) {
766
+ for (var r = -1; r <= 7; r++) {
767
+ if (row + r <= -1 || this.moduleCount <= row + r) continue;
768
+ for (var c = -1; c <= 7; c++) {
769
+ if (col + c <= -1 || this.moduleCount <= col + c) continue;
770
+ if (0 <= r && r <= 6 && (c === 0 || c === 6) || 0 <= c && c <= 6 && (r === 0 || r === 6) || 2 <= r && r <= 4 && 2 <= c && c <= 4) {
771
+ this.modules[row + r][col + c] = true;
772
+ } else {
773
+ this.modules[row + r][col + c] = false;
774
+ }
775
+ }
776
+ }
777
+ },
778
+ getBestMaskPattern: function() {
779
+ var minLostPoint = 0;
780
+ var pattern = 0;
781
+ for (var i = 0; i < 8; i++) {
782
+ this.makeImpl(true, i);
783
+ var lostPoint = QRUtil.getLostPoint(this);
784
+ if (i === 0 || minLostPoint > lostPoint) {
785
+ minLostPoint = lostPoint;
786
+ pattern = i;
787
+ }
788
+ }
789
+ return pattern;
790
+ },
791
+ createMovieClip: function(target_mc, instance_name, depth) {
792
+ var qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);
793
+ var cs = 1;
794
+ this.make();
795
+ for (var row = 0; row < this.modules.length; row++) {
796
+ var y2 = row * cs;
797
+ for (var col = 0; col < this.modules[row].length; col++) {
798
+ var x = col * cs;
799
+ var dark = this.modules[row][col];
800
+ if (dark) {
801
+ qr_mc.beginFill(0, 100);
802
+ qr_mc.moveTo(x, y2);
803
+ qr_mc.lineTo(x + cs, y2);
804
+ qr_mc.lineTo(x + cs, y2 + cs);
805
+ qr_mc.lineTo(x, y2 + cs);
806
+ qr_mc.endFill();
807
+ }
808
+ }
809
+ }
810
+ return qr_mc;
811
+ },
812
+ setupTimingPattern: function() {
813
+ for (var r = 8; r < this.moduleCount - 8; r++) {
814
+ if (this.modules[r][6] !== null) {
815
+ continue;
816
+ }
817
+ this.modules[r][6] = r % 2 === 0;
818
+ }
819
+ for (var c = 8; c < this.moduleCount - 8; c++) {
820
+ if (this.modules[6][c] !== null) {
821
+ continue;
822
+ }
823
+ this.modules[6][c] = c % 2 === 0;
824
+ }
825
+ },
826
+ setupPositionAdjustPattern: function() {
827
+ var pos = QRUtil.getPatternPosition(this.typeNumber);
828
+ for (var i = 0; i < pos.length; i++) {
829
+ for (var j = 0; j < pos.length; j++) {
830
+ var row = pos[i];
831
+ var col = pos[j];
832
+ if (this.modules[row][col] !== null) {
833
+ continue;
834
+ }
835
+ for (var r = -2; r <= 2; r++) {
836
+ for (var c = -2; c <= 2; c++) {
837
+ if (Math.abs(r) === 2 || Math.abs(c) === 2 || r === 0 && c === 0) {
838
+ this.modules[row + r][col + c] = true;
839
+ } else {
840
+ this.modules[row + r][col + c] = false;
841
+ }
842
+ }
843
+ }
844
+ }
845
+ }
846
+ },
847
+ setupTypeNumber: function(test) {
848
+ var bits = QRUtil.getBCHTypeNumber(this.typeNumber);
849
+ var mod;
850
+ for (var i = 0; i < 18; i++) {
851
+ mod = !test && (bits >> i & 1) === 1;
852
+ this.modules[Math.floor(i / 3)][i % 3 + this.moduleCount - 8 - 3] = mod;
853
+ }
854
+ for (var x = 0; x < 18; x++) {
855
+ mod = !test && (bits >> x & 1) === 1;
856
+ this.modules[x % 3 + this.moduleCount - 8 - 3][Math.floor(x / 3)] = mod;
857
+ }
858
+ },
859
+ setupTypeInfo: function(test, maskPattern) {
860
+ var data = this.errorCorrectLevel << 3 | maskPattern;
861
+ var bits = QRUtil.getBCHTypeInfo(data);
862
+ var mod;
863
+ for (var v = 0; v < 15; v++) {
864
+ mod = !test && (bits >> v & 1) === 1;
865
+ if (v < 6) {
866
+ this.modules[v][8] = mod;
867
+ } else if (v < 8) {
868
+ this.modules[v + 1][8] = mod;
869
+ } else {
870
+ this.modules[this.moduleCount - 15 + v][8] = mod;
871
+ }
872
+ }
873
+ for (var h2 = 0; h2 < 15; h2++) {
874
+ mod = !test && (bits >> h2 & 1) === 1;
875
+ if (h2 < 8) {
876
+ this.modules[8][this.moduleCount - h2 - 1] = mod;
877
+ } else if (h2 < 9) {
878
+ this.modules[8][15 - h2 - 1 + 1] = mod;
879
+ } else {
880
+ this.modules[8][15 - h2 - 1] = mod;
881
+ }
882
+ }
883
+ this.modules[this.moduleCount - 8][8] = !test;
884
+ },
885
+ mapData: function(data, maskPattern) {
886
+ var inc = -1;
887
+ var row = this.moduleCount - 1;
888
+ var bitIndex = 7;
889
+ var byteIndex = 0;
890
+ for (var col = this.moduleCount - 1; col > 0; col -= 2) {
891
+ if (col === 6) col--;
892
+ while (true) {
893
+ for (var c = 0; c < 2; c++) {
894
+ if (this.modules[row][col - c] === null) {
895
+ var dark = false;
896
+ if (byteIndex < data.length) {
897
+ dark = (data[byteIndex] >>> bitIndex & 1) === 1;
898
+ }
899
+ var mask2 = QRUtil.getMask(maskPattern, row, col - c);
900
+ if (mask2) {
901
+ dark = !dark;
902
+ }
903
+ this.modules[row][col - c] = dark;
904
+ bitIndex--;
905
+ if (bitIndex === -1) {
906
+ byteIndex++;
907
+ bitIndex = 7;
908
+ }
909
+ }
910
+ }
911
+ row += inc;
912
+ if (row < 0 || this.moduleCount <= row) {
913
+ row -= inc;
914
+ inc = -inc;
915
+ break;
916
+ }
917
+ }
918
+ }
919
+ }
920
+ };
921
+ QRCode.PAD0 = 236;
922
+ QRCode.PAD1 = 17;
923
+ QRCode.createData = function(typeNumber, errorCorrectLevel, dataList) {
924
+ var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);
925
+ var buffer = new QRBitBuffer();
926
+ for (var i = 0; i < dataList.length; i++) {
927
+ var data = dataList[i];
928
+ buffer.put(data.mode, 4);
929
+ buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));
930
+ data.write(buffer);
931
+ }
932
+ var totalDataCount = 0;
933
+ for (var x = 0; x < rsBlocks.length; x++) {
934
+ totalDataCount += rsBlocks[x].dataCount;
935
+ }
936
+ if (buffer.getLengthInBits() > totalDataCount * 8) {
937
+ throw new Error("code length overflow. (" + buffer.getLengthInBits() + ">" + totalDataCount * 8 + ")");
938
+ }
939
+ if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {
940
+ buffer.put(0, 4);
941
+ }
942
+ while (buffer.getLengthInBits() % 8 !== 0) {
943
+ buffer.putBit(false);
944
+ }
945
+ while (true) {
946
+ if (buffer.getLengthInBits() >= totalDataCount * 8) {
947
+ break;
948
+ }
949
+ buffer.put(QRCode.PAD0, 8);
950
+ if (buffer.getLengthInBits() >= totalDataCount * 8) {
951
+ break;
952
+ }
953
+ buffer.put(QRCode.PAD1, 8);
954
+ }
955
+ return QRCode.createBytes(buffer, rsBlocks);
956
+ };
957
+ QRCode.createBytes = function(buffer, rsBlocks) {
958
+ var offset = 0;
959
+ var maxDcCount = 0;
960
+ var maxEcCount = 0;
961
+ var dcdata = new Array(rsBlocks.length);
962
+ var ecdata = new Array(rsBlocks.length);
963
+ for (var r = 0; r < rsBlocks.length; r++) {
964
+ var dcCount = rsBlocks[r].dataCount;
965
+ var ecCount = rsBlocks[r].totalCount - dcCount;
966
+ maxDcCount = Math.max(maxDcCount, dcCount);
967
+ maxEcCount = Math.max(maxEcCount, ecCount);
968
+ dcdata[r] = new Array(dcCount);
969
+ for (var i = 0; i < dcdata[r].length; i++) {
970
+ dcdata[r][i] = 255 & buffer.buffer[i + offset];
971
+ }
972
+ offset += dcCount;
973
+ var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);
974
+ var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);
975
+ var modPoly = rawPoly.mod(rsPoly);
976
+ ecdata[r] = new Array(rsPoly.getLength() - 1);
977
+ for (var x = 0; x < ecdata[r].length; x++) {
978
+ var modIndex = x + modPoly.getLength() - ecdata[r].length;
979
+ ecdata[r][x] = modIndex >= 0 ? modPoly.get(modIndex) : 0;
980
+ }
981
+ }
982
+ var totalCodeCount = 0;
983
+ for (var y2 = 0; y2 < rsBlocks.length; y2++) {
984
+ totalCodeCount += rsBlocks[y2].totalCount;
985
+ }
986
+ var data = new Array(totalCodeCount);
987
+ var index = 0;
988
+ for (var z = 0; z < maxDcCount; z++) {
989
+ for (var s = 0; s < rsBlocks.length; s++) {
990
+ if (z < dcdata[s].length) {
991
+ data[index++] = dcdata[s][z];
992
+ }
993
+ }
994
+ }
995
+ for (var xx = 0; xx < maxEcCount; xx++) {
996
+ for (var t = 0; t < rsBlocks.length; t++) {
997
+ if (xx < ecdata[t].length) {
998
+ data[index++] = ecdata[t][xx];
999
+ }
1000
+ }
1001
+ }
1002
+ return data;
1003
+ };
1004
+ module.exports = QRCode;
1005
+ }
1006
+ });
1007
+
1008
+ // node_modules/qrcode-terminal/lib/main.js
1009
+ var require_main = __commonJS({
1010
+ "node_modules/qrcode-terminal/lib/main.js"(exports, module) {
1011
+ var QRCode = require_QRCode();
1012
+ var QRErrorCorrectLevel = require_QRErrorCorrectLevel();
1013
+ var black = "\x1B[40m \x1B[0m";
1014
+ var white = "\x1B[47m \x1B[0m";
1015
+ var toCell = function(isBlack) {
1016
+ return isBlack ? black : white;
1017
+ };
1018
+ var repeat = function(color) {
1019
+ return {
1020
+ times: function(count) {
1021
+ return new Array(count).join(color);
1022
+ }
1023
+ };
1024
+ };
1025
+ var fill = function(length, value) {
1026
+ var arr = new Array(length);
1027
+ for (var i = 0; i < length; i++) {
1028
+ arr[i] = value;
1029
+ }
1030
+ return arr;
1031
+ };
1032
+ module.exports = {
1033
+ error: QRErrorCorrectLevel.L,
1034
+ generate: function(input, opts, cb) {
1035
+ if (typeof opts === "function") {
1036
+ cb = opts;
1037
+ opts = {};
1038
+ }
1039
+ var qrcode = new QRCode(-1, this.error);
1040
+ qrcode.addData(input);
1041
+ qrcode.make();
1042
+ var output = "";
1043
+ if (opts && opts.small) {
1044
+ var BLACK = true, WHITE = false;
1045
+ var moduleCount = qrcode.getModuleCount();
1046
+ var moduleData = qrcode.modules.slice();
1047
+ var oddRow = moduleCount % 2 === 1;
1048
+ if (oddRow) {
1049
+ moduleData.push(fill(moduleCount, WHITE));
1050
+ }
1051
+ var platte = {
1052
+ WHITE_ALL: "\u2588",
1053
+ WHITE_BLACK: "\u2580",
1054
+ BLACK_WHITE: "\u2584",
1055
+ BLACK_ALL: " "
1056
+ };
1057
+ var borderTop = repeat(platte.BLACK_WHITE).times(moduleCount + 3);
1058
+ var borderBottom = repeat(platte.WHITE_BLACK).times(moduleCount + 3);
1059
+ output += borderTop + "\n";
1060
+ for (var row = 0; row < moduleCount; row += 2) {
1061
+ output += platte.WHITE_ALL;
1062
+ for (var col = 0; col < moduleCount; col++) {
1063
+ if (moduleData[row][col] === WHITE && moduleData[row + 1][col] === WHITE) {
1064
+ output += platte.WHITE_ALL;
1065
+ } else if (moduleData[row][col] === WHITE && moduleData[row + 1][col] === BLACK) {
1066
+ output += platte.WHITE_BLACK;
1067
+ } else if (moduleData[row][col] === BLACK && moduleData[row + 1][col] === WHITE) {
1068
+ output += platte.BLACK_WHITE;
1069
+ } else {
1070
+ output += platte.BLACK_ALL;
1071
+ }
1072
+ }
1073
+ output += platte.WHITE_ALL + "\n";
1074
+ }
1075
+ if (!oddRow) {
1076
+ output += borderBottom;
1077
+ }
1078
+ } else {
1079
+ var border = repeat(white).times(qrcode.getModuleCount() + 3);
1080
+ output += border + "\n";
1081
+ qrcode.modules.forEach(function(row2) {
1082
+ output += white;
1083
+ output += row2.map(toCell).join("");
1084
+ output += white + "\n";
1085
+ });
1086
+ output += border;
1087
+ }
1088
+ if (cb) cb(output);
1089
+ else console.log(output);
1090
+ },
1091
+ setErrorLevel: function(error) {
1092
+ this.error = QRErrorCorrectLevel[error] || this.error;
1093
+ }
1094
+ };
1095
+ }
1096
+ });
1097
+
1098
+ // src/cli.ts
1099
+ import { unlink } from "node:fs/promises";
1100
+
1101
+ // node_modules/@tencent-connect/qqbot-connector/dist/esm/qr-connect.js
1102
+ var import_qrcode_terminal = __toESM(require_main(), 1);
1103
+
1104
+ // node_modules/@tencent-connect/qqbot-connector/dist/esm/qqbot-session.js
1105
+ import m from "node:crypto";
1106
+ import _ from "node:https";
1107
+ var E = { production: "q.qq.com", test: "test.q.qq.com" };
1108
+ function d(t = "production") {
1109
+ return E[t];
1110
+ }
1111
+ function l() {
1112
+ return m.randomBytes(32).toString("base64");
1113
+ }
1114
+ var u;
1115
+ (function(t) {
1116
+ t[t.NONE = 0] = "NONE", t[t.PENDING = 1] = "PENDING", t[t.COMPLETED = 2] = "COMPLETED", t[t.EXPIRED = 3] = "EXPIRED";
1117
+ })(u || (u = {}));
1118
+ function b(t, r) {
1119
+ const a = Buffer.from(r, "base64"), n = Buffer.from(t, "base64"), e = n.subarray(0, 12), c = n.subarray(n.length - 16), s = n.subarray(12, n.length - 16), o = m.createDecipheriv("aes-256-gcm", a, e);
1120
+ return o.setAuthTag(c), Buffer.concat([o.update(s), o.final()]).toString("utf8");
1121
+ }
1122
+ function h(t, r, a) {
1123
+ return new Promise((n, e) => {
1124
+ const c = JSON.stringify(r), s = new URL(t), o = _.request({ hostname: s.hostname, path: s.pathname + s.search, method: "POST", timeout: a, headers: { "Content-Type": "application/json", Accept: "application/json", "Content-Length": Buffer.byteLength(c) } }, (i) => {
1125
+ if (i.statusCode !== 200) {
1126
+ i.resume(), e(new Error(`HTTP ${i.statusCode} from ${t}`));
1127
+ return;
1128
+ }
1129
+ let f = "";
1130
+ i.on("data", (p2) => {
1131
+ f += p2;
1132
+ }), i.on("end", () => {
1133
+ try {
1134
+ n(JSON.parse(f));
1135
+ } catch (p2) {
1136
+ e(p2);
1137
+ }
1138
+ });
1139
+ });
1140
+ o.on("error", e), o.on("timeout", () => {
1141
+ o.destroy(), e(new Error(`timeout fetching ${t}`));
1142
+ }), o.end(c);
1143
+ });
1144
+ }
1145
+ async function y(t = "production", r = 1e4) {
1146
+ const a = `https://${d(t)}/lite/create_bind_task`, n = l(), e = await h(a, { key: n }, r);
1147
+ if (e.retcode !== 0) throw new Error(e.msg ?? "create_bind_task failed");
1148
+ if (!e.data?.task_id) throw new Error("create_bind_task: missing task_id");
1149
+ return { taskId: e.data.task_id, key: n };
1150
+ }
1151
+ async function g(t, r = "production", a = 1e4) {
1152
+ const n = `https://${d(r)}/lite/poll_bind_result`, e = await h(n, { task_id: t }, a);
1153
+ if (e.retcode !== 0) throw new Error(e.msg ?? "poll_bind_result failed");
1154
+ return { status: e.data?.status ?? u.NONE, botAppId: String(e.data?.bot_appid ?? ""), botEncryptSecret: e.data?.bot_encrypt_secret ?? "", userOpenid: e.data?.user_openid || void 0 };
1155
+ }
1156
+ function w(t, r = "") {
1157
+ return `https://${d("production")}/qqbot/openclaw/connect.html?task_id=${encodeURIComponent(t)}&source=${encodeURIComponent(r)}&_wv=2`;
1158
+ }
1159
+
1160
+ // node_modules/@tencent-connect/qqbot-connector/dist/esm/qr-connect.js
1161
+ var p = 2e3;
1162
+ function F(r) {
1163
+ return new Promise((o) => {
1164
+ import_qrcode_terminal.default.generate(r, { small: true }, (e) => {
1165
+ o(e);
1166
+ });
1167
+ });
1168
+ }
1169
+ function d2(r, o) {
1170
+ return new Promise((e, t) => {
1171
+ if (o?.aborted) {
1172
+ t(new DOMException("Aborted", "AbortError"));
1173
+ return;
1174
+ }
1175
+ const n = setTimeout(e, r);
1176
+ o?.addEventListener("abort", () => {
1177
+ clearTimeout(n), t(new DOMException("Aborted", "AbortError"));
1178
+ }, { once: true });
1179
+ });
1180
+ }
1181
+ async function C(r, o, e) {
1182
+ for (; !e?.aborted; ) {
1183
+ let t;
1184
+ try {
1185
+ t = await g(r);
1186
+ } catch {
1187
+ await d2(p, e);
1188
+ continue;
1189
+ }
1190
+ if (t.status === u.COMPLETED) {
1191
+ const n = b(t.botEncryptSecret, o);
1192
+ return { outcome: "scanned", appId: t.botAppId, appSecret: n, userOpenid: t.userOpenid };
1193
+ }
1194
+ if (t.status === u.EXPIRED) return { outcome: "expired" };
1195
+ await d2(p, e);
1196
+ }
1197
+ throw new DOMException("Aborted", "AbortError");
1198
+ }
1199
+ function l2(r, o) {
1200
+ const e = new AbortController(), t = o?.signal ? AbortSignal.any([e.signal, o.signal]) : e.signal;
1201
+ return (async () => {
1202
+ const n = o?.displayQrCodeToConsole ?? true;
1203
+ for (; ; ) {
1204
+ if (t.aborted) throw new DOMException("Aborted", "AbortError");
1205
+ let a;
1206
+ try {
1207
+ a = await y();
1208
+ } catch (u2) {
1209
+ throw new Error(`\u83B7\u53D6\u7ED1\u5B9A\u4EFB\u52A1\u5931\u8D25: ${u2 instanceof Error ? u2.message : String(u2)}`, { cause: u2 });
1210
+ }
1211
+ const i = w(a.taskId, o?.source);
1212
+ if (n) {
1213
+ const u2 = await F(i);
1214
+ console.log(u2), console.log(`\u8BF7\u4F7F\u7528\u624B\u673A QQ \u626B\u63CF\u4E0A\u65B9\u4E8C\u7EF4\u7801\uFF0C\u5B8C\u6210\u673A\u5668\u4EBA\u7ED1\u5B9A\u3002
1215
+ `);
1216
+ }
1217
+ r.onQrDisplayed?.(i);
1218
+ const s = await C(a.taskId, a.key, t);
1219
+ if (s.outcome === "scanned") {
1220
+ r.onSuccess([{ appId: s.appId, appSecret: s.appSecret, userOpenid: s.userOpenid }]);
1221
+ return;
1222
+ }
1223
+ r.onQrExpired?.(), n && console.log(`\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F\uFF0C\u6B63\u5728\u5237\u65B0\u2026
1224
+ `);
1225
+ }
1226
+ })().catch((n) => {
1227
+ if (n instanceof DOMException && n.name === "AbortError") {
1228
+ r.onFailure(new Error("\u5DF2\u53D6\u6D88"));
1229
+ return;
1230
+ }
1231
+ r.onFailure(n instanceof Error ? n : new Error(String(n)));
1232
+ }), () => e.abort();
1233
+ }
1234
+ function m2(r) {
1235
+ return new Promise((o, e) => {
1236
+ l2({ onSuccess: o, onFailure: e }, { ...r, displayQrCodeToConsole: true });
1237
+ });
1238
+ }
1239
+
1240
+ // src/host/infra/store-file.ts
1241
+ import { mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
1242
+ import { homedir } from "node:os";
1243
+ import { join } from "node:path";
1244
+ function pluginDataDir() {
1245
+ const home = process.env.HOME || process.env.USERPROFILE || homedir();
1246
+ const dshHome = process.env.DSH_HOME || join(home, ".dsh");
1247
+ return join(dshHome, "qqbot");
1248
+ }
1249
+ var credentialsPath = () => join(pluginDataDir(), "credentials.json");
1250
+ async function readJson(path) {
1251
+ try {
1252
+ return JSON.parse(await readFile(path, "utf8"));
1253
+ } catch {
1254
+ return null;
1255
+ }
1256
+ }
1257
+ async function writeJson(path, value, { privateFile = false } = {}) {
1258
+ await mkdir(pluginDataDir(), { recursive: true });
1259
+ const tmp = `${path}.tmp-${process.pid}`;
1260
+ const text = JSON.stringify(value, null, 2);
1261
+ await writeFile(tmp, text, privateFile ? { mode: 384 } : "utf8");
1262
+ if (!privateFile) await writeFile(tmp, text, "utf8");
1263
+ await rm(path, { force: true });
1264
+ await rename(tmp, path);
1265
+ }
1266
+ async function loadCredentials() {
1267
+ const data = await readJson(credentialsPath());
1268
+ if (!data || typeof data.appId !== "string" || typeof data.appSecret !== "string") return null;
1269
+ if (!data.appId || !data.appSecret) return null;
1270
+ return data;
1271
+ }
1272
+ async function saveCredentials(credentials) {
1273
+ await writeJson(credentialsPath(), credentials, { privateFile: true });
1274
+ }
1275
+
1276
+ // src/shared/time.ts
1277
+ var SHANGHAI_OFFSET_MS = 8 * 60 * 60 * 1e3;
1278
+ function toShanghaiISO(date = /* @__PURE__ */ new Date()) {
1279
+ const shifted = new Date(date.getTime() + SHANGHAI_OFFSET_MS);
1280
+ return shifted.toISOString().replace("Z", "+08:00");
1281
+ }
1282
+
1283
+ // src/cli.ts
1284
+ var HELP = [
1285
+ "dsh-qqbot \u2014 QQ \u673A\u5668\u4EBA\u51ED\u636E\u7BA1\u7406\uFF08TUI\uFF09",
1286
+ "",
1287
+ "\u7528\u6CD5\uFF1Adsh-qqbot <\u547D\u4EE4>",
1288
+ " login \u7EC8\u7AEF\u626B\u7801\u767B\u5F55\uFF0C\u51ED\u636E\u843D\u76D8\u5E76\u70ED\u751F\u6548",
1289
+ " show \u67E5\u770B\u5DF2\u4FDD\u5B58\u51ED\u636E\uFF08Secret \u6253\u7801\uFF09",
1290
+ " logout \u5220\u9664\u5DF2\u4FDD\u5B58\u51ED\u636E"
1291
+ ].join("\n");
1292
+ function mask(secret) {
1293
+ if (secret.length <= 8) return "****";
1294
+ return `${secret.slice(0, 4)}****${secret.slice(-4)}`;
1295
+ }
1296
+ async function main() {
1297
+ const cmd = process.argv[2] ?? "help";
1298
+ switch (cmd) {
1299
+ case "login": {
1300
+ console.log("\u8BF7\u4F7F\u7528\u624B\u673A QQ \u626B\u63CF\u4E0B\u65B9\u4E8C\u7EF4\u7801\u5B8C\u6210\u767B\u5F55\u2026\n");
1301
+ try {
1302
+ const [credentials] = await m2();
1303
+ if (!credentials?.appId || !credentials?.appSecret) {
1304
+ console.error("\u626B\u7801\u7ED3\u679C\u7F3A\u5C11\u51ED\u636E\uFF0C\u767B\u5F55\u5931\u8D25\u3002");
1305
+ process.exitCode = 1;
1306
+ return;
1307
+ }
1308
+ const stored = {
1309
+ appId: credentials.appId,
1310
+ appSecret: credentials.appSecret,
1311
+ ...credentials.userOpenid ? { userOpenid: credentials.userOpenid } : {},
1312
+ savedAt: toShanghaiISO(),
1313
+ source: "qr"
1314
+ };
1315
+ await saveCredentials(stored);
1316
+ console.log(`
1317
+ \u767B\u5F55\u6210\u529F\uFF1AAppID ${stored.appId}`);
1318
+ console.log(`\u51ED\u636E\u5DF2\u5199\u5165 ${credentialsPath()}`);
1319
+ console.log("\u8FD0\u884C\u4E2D\u7684 dsh-qqbot \u63D2\u4EF6\u4F1A\u81EA\u52A8\u70ED\u52A0\u8F7D\uFF0C\u65E0\u9700\u91CD\u542F\u3002");
1320
+ } catch (error) {
1321
+ console.error("\u767B\u5F55\u5931\u8D25:", error instanceof Error ? error.message : error);
1322
+ process.exitCode = 1;
1323
+ }
1324
+ return;
1325
+ }
1326
+ case "show": {
1327
+ const saved = await loadCredentials();
1328
+ if (!saved) {
1329
+ console.log("\u5C1A\u672A\u4FDD\u5B58\u51ED\u636E\u3002\u6267\u884C dsh-qqbot login \u626B\u7801\u767B\u5F55\u3002");
1330
+ return;
1331
+ }
1332
+ console.log(`AppID: ${saved.appId}`);
1333
+ console.log(`Secret: ${mask(saved.appSecret)}`);
1334
+ console.log(`\u6765\u6E90: ${saved.source}\uFF08${saved.savedAt}\uFF09`);
1335
+ console.log(`\u5B58\u50A8\u4F4D\u7F6E: ${credentialsPath()}`);
1336
+ return;
1337
+ }
1338
+ case "logout": {
1339
+ const { rm: rm2 } = await import("node:fs/promises");
1340
+ await rm2(credentialsPath(), { force: true });
1341
+ console.log(`\u5DF2\u5220\u9664 ${credentialsPath()}\uFF08\u63D2\u4EF6\u4E0B\u6B21\u89E3\u6790\u51ED\u636E\u65F6\u5C06\u56DE\u9000\u5230\u914D\u7F6E/\u73AF\u5883\u53D8\u91CF\uFF09\u3002`);
1342
+ console.log(`\u6570\u636E\u76EE\u5F55\uFF1A${pluginDataDir()}`);
1343
+ return;
1344
+ }
1345
+ default:
1346
+ console.log(HELP);
1347
+ }
1348
+ }
1349
+ await main();