Skip to content

Commit 80492b2

Browse files
committed
V3.2.5 Update - RC1
1 parent 16b21c9 commit 80492b2

8 files changed

Lines changed: 114 additions & 9 deletions

File tree

package-lock.json

Lines changed: 9 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "abracadabra-cn",
33
"description": "Use Chinese to Encode Everything",
44
"private": false,
5-
"version": "3.2.0",
5+
"version": "3.2.5",
66
"main": "./dist/abracadabra-cn.js",
77
"types": "./dist/abracadabra-cn.d.ts",
88
"type": "module",
@@ -29,6 +29,7 @@
2929
"crypto-js": "^4.2.0",
3030
"js-base64": "^3.7.7",
3131
"mersenne-twister": "^1.1.0",
32+
"opencc-js": "^1.0.5",
3233
"pako": "^2.1.0"
3334
},
3435
"files": [

src/javascript/ChineseMappingHelper.js

Lines changed: 47 additions & 2 deletions
Large diffs are not rendered by default.

src/javascript/CoreHandler.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,14 @@ export class WenyanConfig {
3434
PunctuationMark = true,
3535
RandomIndex = 50,
3636
PianwenMode = false,
37-
LogicMode = false
37+
LogicMode = false,
38+
Traditional = false
3839
) {
3940
this.PunctuationMark = PunctuationMark;
4041
this.RandomIndex = RandomIndex;
4142
this.PianwenMode = PianwenMode;
4243
this.LogicMode = LogicMode;
44+
this.Traditional = Traditional;
4345
}
4446
}
4547
/**
@@ -79,7 +81,10 @@ export function Enc(input, key, WenyanConfigObj) {
7981
WenyanConfigObj.PianwenMode !== undefined
8082
? WenyanConfigObj.PianwenMode
8183
: false,
82-
WenyanConfigObj.LogicMode !== undefined ? WenyanConfigObj.LogicMode : false
84+
WenyanConfigObj.LogicMode !== undefined ? WenyanConfigObj.LogicMode : false,
85+
WenyanConfigObj.Traditional !== undefined
86+
? WenyanConfigObj.Traditional
87+
: false
8388
);
8489

8590
return Res;

src/javascript/Misc.js

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,17 @@ const SIG_DECRYPT_CN = "玚俟玊欤瞐珏";
1717

1818
const NULL_STR = "孎"; //默认忽略的占位字符,一个生僻字。
1919

20-
var MT = new MersenneTwister(Date.now());
21-
//待办:获取密码学安全随机数
20+
var array = new Uint32Array(1);
21+
22+
try {
23+
window.crypto.getRandomValues(array);
24+
var seed = array[0];
25+
} catch (err) {
26+
var seed = Date.now();
27+
}
28+
29+
var MT = new MersenneTwister(seed);
30+
//获取密码学安全随机数,如果不支持WebCrypto API,回落到日期和时间。
2231

2332
export class PreCheckResult {
2433
constructor(output, isEncrypted = false) {

src/javascript/main.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ export interface WenyanConfig {
99
PianwenMode?: boolean;
1010
/** 指定是否强制生成逻辑密文,默认 false; */
1111
LogicMode?: boolean;
12+
/** 指定输出文本是否为繁体中文,默认 false; */
13+
Traditional?: boolean;
1214
}
1315
export class Abracadabra {
1416
static TEXT: "TEXT";

src/javascript/main.test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ test("加/解密测试", { timeout: 15000 }, () => {
6161
RandomIndex: 50,
6262
PianwenMode: i % 2 == 0,
6363
LogicMode: i % 2 != 0,
64+
Traditional: i % 2 != 0,
6465
});
6566
TestTemp = Abra.Output();
6667
}

src/javascript/mapping_next.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,23 +349,30 @@
349349
"3B/V/而/V/zhi/zhi/谓/A",
350350
"3B/N/,/N/zhi/N/ye/P",
351351
"3D/A/之/V/者/必/有/N/P",
352+
"3D/有/所/V/N/,/则/不/得/其/V/P",
352353
"4D/非/N/不/A/,/V/不/A",
353354
"4C/A/N/AD/V",
354355
"4C/V/N/以/V/N",
356+
"4D/A/者/自/V/也/,/而/N/自/V/也/P",
355357
"4E/N/不在/A/,/有/N/则/A/P",
358+
"4E/上/不/V/N/,/下/不/V/N/P",
356359
"4D/A/N/常有/,/而/A/N/不常有/P",
357360
"4D/V/N/者/,/N/之/N/也/P",
358361
"4E/N/有/MV/V/,/N/有/AD/然/P",
359362
"4D/N/无/N/,/无以/V/N",
363+
"4D/欲/V/其/N/者/,/先/V/其/N/P",
364+
"4D/今/夫/N/,/一/N/之/多/,/及/其/A/A/P",
360365
"4D/V/之/不/为/N/,/V/之/不/为/N/P",
361366
"4D/吾/为/N/之/所/V/,/N/亦/为/吾/所/V/P",
362367
"5D/V/N/而/V/A/,/V/zhi/道/ye/P",
368+
"5D/A/N/之/N/,/like/N/like/N/P",
363369
"5E/N/zhi/V/V/,/实为/A/A/P",
364370
"5C/本/MV/V/A/,/anti/V/N/N",
365371
"5C/N/之/无/N/,/N/V/之/N",
366372
"5D/V/N/而/V/之/者/,/非/其/N/AD/也/P",
367373
"5B/今/V/N/以/V/A/N",
368374
"5B/N/乃/V/V/N/zhi/N",
375+
"5B/N/N/无/V/,/V/而/必/V/P",
369376
"5B/今/N/乃/A/N/A/N",
370377
"5C/A/N/V/A/N",
371378
"5B/夫/N/、/N/不/MV/AD/V/N",
@@ -383,6 +390,7 @@
383390
"6D/N/无/N/则/V/,/N/无/N/则/V/P",
384391
"6D/A/者/V/而/V/之/,/A/者/V/而/V/之/P",
385392
"6D/N/受/命/于/N/,/固/AD/然/V/于/A/N/P",
393+
"6D/V/N/而/不/能/V/,/V/而/不/能/V/,/N/也/P",
386394
"6D/常/有/N/V/A/N/,/请/N/为/N/P",
387395
"7D/夫/A/之/N/V/N/者/,/其/所以/AD/V/者/N/也/P",
388396
"7C/N/以/A/A/,/AD/V/A/N",
@@ -406,7 +414,10 @@
406414
"8B/尝/V/A/N/,/AD/V/A/N/zhi/N",
407415
"8D/予/V/夫/A/N/A/N/,/在/A/N/之/N",
408416
"8D/N/V/于/A/N/,/而/N/V/于/A/N",
417+
"8D/N/V/N/为/N/,/N/V/N/为/N/P",
418+
"8B/N/A/即/N/A/,/N/A/即/N/A/P",
409419
"8D/虽/无/N/N/zhi/V/,/亦/V/以/AD/V/A/N/P",
420+
"8D/是/故/A/N/有/A/N/,/必/AD/V/以/得/之/,/AD/V/以/失/之/P",
410421
"8D/A/N/之/A/N/,/常/为/A/N/之/A/N/P",
411422
"9D/A/N/V/zhi/而不/V/zhi/、亦/make/A/N/er/复/V/A/N/ye/P",
412423
"9D/N/MV/V/N/V/V/,/but/N/N/AD/V/P",
@@ -426,9 +437,15 @@
426437
"2C/but/MV/A/zhe/A",
427438
"3C/N/with/N/V",
428439
"3B/N/曰,何/A/zhi/V/Q",
440+
"3D/有/所/V/N/,/则/不/得/其/V/P",
429441
"4C/A/N/AD/V",
430442
"4C/V/N/以/V/N",
431443
"4D/N/无/N/,/无以/V/N/P",
444+
"4D/此/谓/V/N/在/V/其/N/P",
445+
"4D/今/夫/N/,/一/N/之/多/,/及/其/A/A/P",
446+
"4D/欲/V/其/N/者/,/先/V/其/N/P",
447+
"4E/上/不/V/N/,/下/不/V/N/P",
448+
"4D/A/者/自/V/也/,/而/N/自/V/也/P",
432449
"4D/V/N/者/,/N/之/N/也/P",
433450
"4D/以/此/V/N/,/何/N/不/V/Q",
434451
"4E/N/不在/A/,/有/N/则/A/P",
@@ -440,8 +457,10 @@
440457
"4D/V/之/不/为/N/,/V/之/不/为/N/P",
441458
"5B/今/V/N/以/V/A/N",
442459
"5B/N/乃/V/V/N/zhi/N",
460+
"5B/N/N/无/V/,/V/而/必/V/P",
443461
"5C/本/MV/V/A/,/anti/V/N/N",
444462
"5D/V/N/而/V/之/者/,/非/其/N/AD/也/P",
463+
"5D/A/N/之/N/,/like/N/like/N/P",
445464
"5D/以/A/N/为/N/者/,/N/MV/弗/而/V/之/P",
446465
"5D/故/夫/A/N/之/N/,/不/可/make/其/V/于/N/也/P",
447466
"5B/今/N/乃/A/N/A/N",
@@ -468,6 +487,7 @@
468487
"6D/A/者/V/而/V/之/,/A/者/V/而/V/之/P",
469488
"6D/若/居/A/N/之/N/,/则/当/A/N/之/V/P",
470489
"6D/N/受/命/于/N/,/固/AD/然/V/于/A/N/P",
490+
"6D/V/N/而/不/能/V/,/V/而/不/能/V/,/N/也/P",
471491
"6D/常/有/N/V/A/N/,/请/N/为/N/P",
472492
"7D/夫/A/之/N/V/N/者/,/其/所以/AD/V/者/N/也/P",
473493
"7B/N/V/以/N/V/,/V/不/V/N",
@@ -493,8 +513,11 @@
493513
"8D/予/V/夫/A/N/A/N/,/在/A/N/之/N",
494514
"8D/故/V/A/N/者/,/当/V/A/N/之/A/N/P",
495515
"8D/N/V/于/A/N/,/而/N/V/于/A/N",
516+
"8D/N/V/N/为/N/,/N/V/N/为/N/P",
517+
"8B/N/A/即/N/A/,/N/A/即/N/A/P",
496518
"8B/A/N/MV/A/N/之/A/,/V/N/中/之/A",
497519
"8D/N/V/于/A/N/之上/,/AD/V/于/A/N/之间/P",
520+
"8D/是/故/A/N/有/A/N/,/必/AD/V/以/得/之/,/AD/V/以/失/之/P",
498521
"8B/使/其/A/N/AD/V/,/A/N/AD/V/P",
499522
"9B/N/MV/V/N/V/V/,/but/N/N/AD/V",
500523
"9D/A/N/V/zhi/而不/V/zhi/、亦/make/A/N/er/复/V/A/N/ye/P",
@@ -517,22 +540,30 @@
517540
"3C/V/在/A/N",
518541
"3D/今/zhi/V/zhe/,/亦将有/V/于/this/N/P",
519542
"3D/某也/A/,/某也/A/,/可/不/A/哉",
543+
"3D/有/所/V/N/,/则/不/得/其/V/P",
520544
"4B/V/N/zhi/N/by/N",
545+
"4D/A/者/自/V/也/,/而/N/自/V/也/P",
521546
"4C/A/N/AD/V",
522547
"4C/V/N/以/V/N",
523548
"4D/N/无/N/,/无以/V/N",
524549
"4D/V/N/者/,/N/之/N/也/P",
525550
"4D/以/此/V/N/,/何/N/不/V/Q",
526551
"4D/噫/,/A/N/ye/,/N/谁/与/V/Q",
552+
"4D/此/谓/V/N/在/V/其/N/P",
553+
"4D/今/夫/N/,/一/N/之/多/,/及/其/A/A/P",
554+
"4E/上/不/V/N/,/下/不/V/N/P",
555+
"4D/欲/V/其/N/者/,/先/V/其/N/P",
527556
"4C/不/以/N/V/,/不/以/N/V/P",
528557
"4D/V/之/不/为/N/,/V/之/不/为/N/P",
529558
"4D/然/则/A/N/自/N/V/矣/P",
530559
"5B/请/V/N/zhi/N/中/,/是/N/zhi/N/P",
531560
"5D/今/V/N/以/V/A/N",
532561
"5B/N/乃/V/V/N/zhi/N",
562+
"5B/N/N/无/V/,/V/而/必/V/P",
533563
"5C/本/MV/V/A/,/anti/V/N/N",
534564
"5D/V/N/而/V/之/者/,/非/其/N/AD/也/P",
535565
"5D/以/A/N/为/N/者/,/N/MV/弗/而/V/之/P",
566+
"5D/A/N/之/N/,/like/N/like/N/P",
536567
"5D/故/夫/A/N/之/N/,/不/可/make/其/V/于/N/也/P",
537568
"5B/今/N/乃/A/N/A/N",
538569
"5D/N/V/而/A/N/V/也",
@@ -555,6 +586,7 @@
555586
"6D/N/无/N/则/V/,/N/无/N/则/V/P",
556587
"6D/N/A/N/A/,/则/所/V/得/其/A/P",
557588
"6D/常/有/N/V/A/N/,/请/N/为/N/P",
589+
"6D/V/N/而/不/能/V/,/V/而/不/能/V/,/N/也/P",
558590
"7D/夫/A/之/N/V/N/者/,/其/所以/AD/V/者/N/也/P",
559591
"7D/N/V/以/N/V/,/V/不/V/N",
560592
"7C/N/N/V/N/,/A/于/N/N",
@@ -566,12 +598,15 @@
566598
"7B/有/A/N/、/A/N/、/A/N/之/N/P",
567599
"8E/虽/N/A/N/A/,/所/以/V/N/,其/N/A/ye/P",
568600
"8B/like/A/N/V/N/,/不/V/N/V/之/N/P",
601+
"8B/N/A/即/N/A/,/N/A/即/N/A/P",
569602
"8D/何必/V/N/V/N/,/V/N/zhi/N/N/哉/P",
570603
"8D/N/anti/MV/V/N/,/still/继/N/V/,/why/,/and/N/而/anti/V/N/ye/P",
604+
"8D/是/故/A/N/有/A/N/,/必/AD/V/以/得/之/,/AD/V/以/失/之/P",
571605
"8C/V/N/A/A/,/V/N/A/A",
572606
"8B/N/在/A/N/,/A/N/zhi/A/,/V/于/N/P",
573607
"8C/A/N/AD/V/,/N/N/AD/V",
574608
"8D/虽/无/N/N/zhi/V/,/亦/V/以/AD/V/A/N/P",
609+
"8D/N/V/N/为/N/,/N/V/N/为/N/P",
575610
"8D/故/V/A/N/者/,/当/V/A/N/之/A/N/P",
576611
"8D/N/V/于/A/N/之上/,/AD/V/于/A/N/之间/P",
577612
"8C/使/其/A/N/AD/V/,/A/N/AD/V/P",

0 commit comments

Comments
 (0)