mc-tunnel 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/README.md +37 -3
  2. package/dist/cjs/chinese-code.js +148 -0
  3. package/dist/cjs/chinese-code.js.map +1 -0
  4. package/dist/cjs/constants.js +1 -1
  5. package/dist/cjs/data/bip39-zh.js +16 -0
  6. package/dist/cjs/data/bip39-zh.js.map +1 -0
  7. package/dist/cjs/data/zh-variants.js +16 -0
  8. package/dist/cjs/data/zh-variants.js.map +1 -0
  9. package/dist/cjs/errors.js.map +1 -1
  10. package/dist/cjs/guest.js +11 -1
  11. package/dist/cjs/guest.js.map +1 -1
  12. package/dist/cjs/host.js +10 -3
  13. package/dist/cjs/host.js.map +1 -1
  14. package/dist/cjs/index.js +6 -1
  15. package/dist/cjs/index.js.map +1 -1
  16. package/dist/cjs/passphrase.js +89 -0
  17. package/dist/cjs/passphrase.js.map +1 -0
  18. package/dist/cjs/room-code.js +47 -0
  19. package/dist/cjs/room-code.js.map +1 -1
  20. package/dist/esm/chinese-code.js +140 -0
  21. package/dist/esm/chinese-code.js.map +1 -0
  22. package/dist/esm/constants.js +1 -1
  23. package/dist/esm/data/bip39-zh.js +13 -0
  24. package/dist/esm/data/bip39-zh.js.map +1 -0
  25. package/dist/esm/data/zh-variants.js +13 -0
  26. package/dist/esm/data/zh-variants.js.map +1 -0
  27. package/dist/esm/errors.js.map +1 -1
  28. package/dist/esm/guest.js +11 -1
  29. package/dist/esm/guest.js.map +1 -1
  30. package/dist/esm/host.js +10 -3
  31. package/dist/esm/host.js.map +1 -1
  32. package/dist/esm/index.js +1 -0
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/passphrase.js +83 -0
  35. package/dist/esm/passphrase.js.map +1 -0
  36. package/dist/esm/room-code.js +41 -0
  37. package/dist/esm/room-code.js.map +1 -1
  38. package/dist/types/chinese-code.d.ts +27 -0
  39. package/dist/types/constants.d.ts +1 -1
  40. package/dist/types/data/bip39-zh.d.ts +12 -0
  41. package/dist/types/data/zh-variants.d.ts +12 -0
  42. package/dist/types/errors.d.ts +1 -1
  43. package/dist/types/index.d.ts +1 -0
  44. package/dist/types/passphrase.d.ts +26 -0
  45. package/dist/types/room-code.d.ts +12 -0
  46. package/dist/types/types.d.ts +12 -2
  47. package/docs/USAGE.md +1220 -0
  48. package/package.json +12 -3
package/README.md CHANGED
@@ -7,6 +7,8 @@
7
7
 
8
8
  > [EasyTier](https://github.com/EasyTier/EasyTier) 以**外部子进程**方式调用完成 P2P 组网
9
9
  > (详见 [合规说明](#合规说明))。
10
+ >
11
+ > 📖 完整使用文档(全部参数、事件、错误码、Electron 集成、排错表)见 [docs/USAGE.md](docs/USAGE.md)。
10
12
 
11
13
  ---
12
14
 
@@ -19,6 +21,8 @@
19
21
  | 无需自建服务器 | 房间码自包含凭据,节点发现交给 EasyTier 公共节点;也支持完全离线直连 |
20
22
  | 无需 mod | 通过伪造 Minecraft 局域网多播让原版客户端直接可见 |
21
23
  | 安全 | 房间码含 CRC-12 校验;协调服务使用握手指纹 + 令牌鉴权(恒定时间比较) |
24
+ | 口令联机 | 用一段短语代替房间码:`passphrase: '彩蛋口令'`,两端相同即可入同一房间(强度取决于口令) |
25
+ | 中文房间码 | 可选子入口 `mc-tunnel/zh`,把房间码显示成 7 个汉字(彩蛋玩法) |
22
26
  | 双格式 | 同时产出 ESM 与 CJS,附带 `.d.ts` 类型声明 |
23
27
  | 可观测 | 全流程 `state` / `players` / `error` 事件,失败时携带 EasyTier 日志尾部 |
24
28
 
@@ -56,14 +60,14 @@ const host = await createHost({
56
60
  playerName: 'Alice',
57
61
  });
58
62
 
59
- console.log('房间码:', host.roomCode); // 例如 7Q2M-K9XP-3RTF-WV4D
63
+ console.log('房间码:', host.roomCode); // 例如 2GJY-DYSK-8825-DZJY
60
64
 
61
65
  host.on('player-join', (player) => console.log(`${player.name} 加入了`));
62
66
  host.on('mc-closed', () => console.log('存档已关闭,房间失效'));
63
67
 
64
68
  // ---------- 客人 ----------
65
69
  const guest = await createGuest({
66
- roomCode: '7Q2M-K9XP-3RTF-WV4D',
70
+ roomCode: '2GJY-DYSK-8825-DZJY',
67
71
  playerName: 'Bob',
68
72
  });
69
73
 
@@ -75,6 +79,34 @@ await guest.close();
75
79
  await host.close();
76
80
  ```
77
81
 
82
+ ### 口令模式(用一段短语代替房间码)
83
+
84
+ ```ts
85
+ // 房主
86
+ const host = await createHost({ mcPort: 25565, passphrase: '彩蛋口令 演示' });
87
+
88
+ // 客人:口令相同即可(大小写、空白、全角不敏感)
89
+ const guest = await createGuest({ passphrase: ' 彩蛋口令 演示 ' });
90
+
91
+ // 口令也会派生出一个等价的标准房间码,UI 可二选一展示
92
+ import { roomCodeFromPassphrase } from 'mc-tunnel';
93
+ console.log(roomCodeFromPassphrase('彩蛋口令 演示'));
94
+ ```
95
+
96
+ > 口令强度取决于口令本身:弱口令等于把房间公开。需要严格安全时请用默认的随机房间码。
97
+
98
+ ### 中文房间码(彩蛋,可选子入口)
99
+
100
+ ```ts
101
+ import { toChineseRoomCode, parseChineseRoomCode } from 'mc-tunnel/zh';
102
+
103
+ const zh = toChineseRoomCode(host.roomCode); // 7 个汉字,例如 '朱上岸雪存违户'
104
+ const guest = await createGuest({ roomCode: parseChineseRoomCode(zh) });
105
+ ```
106
+
107
+ `16 个 Base32 字符 ⇄ 7 个汉字` 无损双向互转(2048⁷ = 2⁷⁷,正好等于版本 1 的有效位宽),
108
+ 字符集取自 BIP39 简体中文词表(2048 个去重单字,标准且永不改动),支持繁简/全角/标点容错。
109
+
78
110
  ### Electron 集成
79
111
 
80
112
  ```ts
@@ -112,6 +144,7 @@ manageSessions(app, host);
112
144
  | 参数 | 类型 | 说明 |
113
145
  |---|---|---|
114
146
  | `roomCode` | `string` | 指定房间码,不传则随机生成 |
147
+ | `passphrase` | `string` | 口令模式,与 `roomCode` 二选一 |
115
148
  | `mcPort` | `number` | 指定端口;不传则监听局域网广播自动发现 |
116
149
  | `playerName` | `string` | 昵称,默认 `Host` |
117
150
  | `motd` | `string` | 局域网列表显示名 |
@@ -130,7 +163,8 @@ manageSessions(app, host);
130
163
 
131
164
  | 参数 | 类型 | 说明 |
132
165
  |---|---|---|
133
- | `roomCode` | `string` | **必填** |
166
+ | `roomCode` | `string` | 与 `passphrase` 二选一必填 |
167
+ | `passphrase` | `string` | 与 `roomCode` 二选一必填 |
134
168
  | `playerName` | `string` | 昵称,默认 `Guest` |
135
169
  | `preferredLocalPort` | `number` | 期望本地端口,默认与房主端口同号 |
136
170
  | `peers` | `string[]` | 直连对端,可完全绕开公共节点 |
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZH_ALPHABET = exports.ZH_CODE_LENGTH = void 0;
4
+ exports.normalizeChineseRoomCode = normalizeChineseRoomCode;
5
+ exports.isChineseRoomCode = isChineseRoomCode;
6
+ exports.parseChineseRoomCode = parseChineseRoomCode;
7
+ exports.toChineseRoomCode = toChineseRoomCode;
8
+ exports.formatChineseRoomCode = formatChineseRoomCode;
9
+ /**
10
+ * 中文房间码(彩蛋功能,需显式引入 `mc-tunnel/zh`)。
11
+ *
12
+ * 编码关系:
13
+ *
14
+ * 16 个 Base32 字符(5 bit × 16 = 80 bit,其中高 3 bit 恒为 0)⇄ 7 个汉字(11 bit × 7 = 77 bit)
15
+ *
16
+ * 因为 2048^7 = 2^77,而版本号为 1 时 80 bit 数值的高 3 bit 恒为 0,
17
+ * 所以两者可以**无损双向互转**:种子、CRC、协调协议、EasyTier 网络名全都不用改。
18
+ *
19
+ * 局限:只有版本号 ≤ 1 的房间码能塞进 7 个字。将来若升级编码版本(version ≥ 2),
20
+ * 中文码需要改成 8 个字,届时本模块会明确报错而不是静默产出错误结果。
21
+ *
22
+ * 字符集来源:BIP39 简体中文词表(2048 个去重单字,MIT),见 `data/bip39-zh.ts`。
23
+ */
24
+ const bip39_zh_js_1 = require("./data/bip39-zh.js");
25
+ const zh_variants_js_1 = require("./data/zh-variants.js");
26
+ const errors_js_1 = require("./errors.js");
27
+ const room_code_js_1 = require("./room-code.js");
28
+ /** 每个汉字携带的位数(2048 = 2^11)。 */
29
+ const BITS_PER_CHAR = 11n;
30
+ /** 中文码字数:7 × 11 = 77 bit,正好等于「版本 1」时的有效位宽。 */
31
+ const CHAR_COUNT = 7;
32
+ /** 可表示的最大数值(不含)。 */
33
+ const MAX_VALUE = 1n << 77n;
34
+ /** 词表(下标即取值)。 */
35
+ const CHARS = Array.from(bip39_zh_js_1.BIP39_ZH);
36
+ /** 字 → 下标。 */
37
+ const INDEX_BY_CHAR = new Map(CHARS.map((char, index) => [char, index]));
38
+ /** 繁体(及异体)→ 简体。两两一组存放,见 zh-variants.ts。 */
39
+ const VARIANTS = new Map();
40
+ for (let i = 0; i + 1 < zh_variants_js_1.ZH_VARIANT_PAIRS.length; i += 2) {
41
+ VARIANTS.set(zh_variants_js_1.ZH_VARIANT_PAIRS[i], zh_variants_js_1.ZH_VARIANT_PAIRS[i + 1]);
42
+ }
43
+ /** 中文房间码的字数。 */
44
+ exports.ZH_CODE_LENGTH = CHAR_COUNT;
45
+ /** 中文房间码使用的 2048 字表。 */
46
+ exports.ZH_ALPHABET = bip39_zh_js_1.BIP39_ZH;
47
+ /** 去掉空白与标点(含全角标点、符号),保留正文。 */
48
+ function stripSeparators(input) {
49
+ return Array.from(input.normalize('NFKC').replace(/[\p{P}\p{S}\s]/gu, ''));
50
+ }
51
+ /** 单字归一化:命中字表返回原字,命中繁简映射返回简体,否则返回 undefined。 */
52
+ function mapChar(char) {
53
+ if (INDEX_BY_CHAR.has(char)) {
54
+ return char;
55
+ }
56
+ const simplified = VARIANTS.get(char);
57
+ if (simplified !== undefined && INDEX_BY_CHAR.has(simplified)) {
58
+ return simplified;
59
+ }
60
+ return undefined;
61
+ }
62
+ /**
63
+ * 把用户输入归一化成 7 个规范汉字。
64
+ *
65
+ * 容错范围:全角字符(NFKC)、空格、中英文标点、繁体字形。
66
+ * @returns 规范化后的 7 个字;长度不符或含表外字时返回 null。
67
+ */
68
+ function normalizeChineseRoomCode(input) {
69
+ if (typeof input !== 'string') {
70
+ return null;
71
+ }
72
+ const chars = stripSeparators(input);
73
+ if (chars.length !== CHAR_COUNT) {
74
+ return null;
75
+ }
76
+ const mapped = [];
77
+ for (const char of chars) {
78
+ const normalized = mapChar(char);
79
+ if (normalized === undefined) {
80
+ return null;
81
+ }
82
+ mapped.push(normalized);
83
+ }
84
+ return mapped.join('');
85
+ }
86
+ /** 判断输入是否能解析成合法中文房间码(长度 + 字表 + 版本 + CRC 全通过)。 */
87
+ function isChineseRoomCode(input) {
88
+ try {
89
+ parseChineseRoomCode(input);
90
+ return true;
91
+ }
92
+ catch {
93
+ return false;
94
+ }
95
+ }
96
+ /**
97
+ * 中文房间码 → 标准房间码。
98
+ *
99
+ * @throws {TunnelError} INVALID_ROOM_CODE —— 字数不对、含表外字、或 CRC/版本校验失败。
100
+ */
101
+ function parseChineseRoomCode(input) {
102
+ if (typeof input !== 'string') {
103
+ throw new errors_js_1.TunnelError('INVALID_ROOM_CODE', '中文房间码必须是字符串');
104
+ }
105
+ const chars = stripSeparators(input);
106
+ if (chars.length !== CHAR_COUNT) {
107
+ throw new errors_js_1.TunnelError('INVALID_ROOM_CODE', `中文房间码应为 ${CHAR_COUNT} 个字,当前是 ${chars.length} 个字`);
108
+ }
109
+ let value = 0n;
110
+ for (let i = 0; i < chars.length; i++) {
111
+ const char = chars[i];
112
+ const normalized = mapChar(char);
113
+ if (normalized === undefined) {
114
+ const hint = VARIANTS.get(char);
115
+ throw new errors_js_1.TunnelError('INVALID_ROOM_CODE', hint === undefined
116
+ ? `第 ${i + 1} 个字「${char}」不在房间码字符集中`
117
+ : `第 ${i + 1} 个字「${char}」不在字符集中,是不是想输「${hint}」?`);
118
+ }
119
+ value = (value << BITS_PER_CHAR) | BigInt(INDEX_BY_CHAR.get(normalized));
120
+ }
121
+ if (!(0, room_code_js_1.isValidRoomValue)(value)) {
122
+ throw new errors_js_1.TunnelError('INVALID_ROOM_CODE', '中文房间码校验失败,可能抄错了某个字');
123
+ }
124
+ return (0, room_code_js_1.roomCodeFromValue)(value);
125
+ }
126
+ /**
127
+ * 标准房间码 → 中文房间码(7 个字,无分隔)。
128
+ *
129
+ * @throws {TunnelError} INVALID_ROOM_CODE —— 房间码非法,或其版本号无法用 7 个字表示。
130
+ */
131
+ function toChineseRoomCode(code) {
132
+ const value = (0, room_code_js_1.roomValueFromCode)(code);
133
+ if (value >= MAX_VALUE) {
134
+ throw new errors_js_1.TunnelError('INVALID_ROOM_CODE', '该房间码的编码版本无法用 7 个汉字表示(需要更高版本的编码方案)');
135
+ }
136
+ const out = [];
137
+ let rest = value;
138
+ for (let i = 0; i < CHAR_COUNT; i++) {
139
+ out.push(CHARS[Number(rest & BigInt(bip39_zh_js_1.BIP39_ZH_SIZE - 1))]);
140
+ rest >>= BITS_PER_CHAR;
141
+ }
142
+ return out.reverse().join('');
143
+ }
144
+ /** 便于展示/朗读:把中文房间码按字用空格分开。 */
145
+ function formatChineseRoomCode(code) {
146
+ return Array.from(code).join(' ');
147
+ }
148
+ //# sourceMappingURL=chinese-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chinese-code.js","sourceRoot":"","sources":["../../src/chinese-code.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.MC_WATCH_INTERVAL_MS = exports.HEARTBEAT_INTERVAL_MS = exports.DEFAULT_MOTD = exports.DEFAULT_COORD_PORT = exports.HOST_VIRTUAL_IP = exports.VERSION = void 0;
5
5
  /** 与 package.json 的 version 保持一致(发布前请同步)。 */
6
- exports.VERSION = '0.1.0';
6
+ exports.VERSION = '0.2.0';
7
7
  /**
8
8
  * 房主在虚拟网络中的固定地址。
9
9
  * 10.144.144.0/24 是 EasyTier 的默认虚拟网段,固定 .1 可以让客人无需任何发现协议
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BIP39_ZH_SIZE = exports.BIP39_ZH = void 0;
4
+ /**
5
+ * BIP39 简体中文词表(2048 个去重单字,索引即取值 0..2047)。
6
+ *
7
+ * 来源:BIP39 规范的 wordlists/chinese_simplified(MIT,https://github.com/bitcoin/bips)。
8
+ * 这是一张**标准且永不改动**的表,因此直接内联而不用引入运行时依赖;
9
+ * 仅用于 mc-tunnel 的「中文房间码」彩蛋(7 个字 = 77 bit = 2048^7)。
10
+ *
11
+ * 顺序不可调整:调整会让所有已发出的中文房间码失效。
12
+ */
13
+ exports.BIP39_ZH = '的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府称太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严首底液官德随病苏失尔死讲配女黄推显谈罪神艺呢席含企望密批营项防举球英氧势告李台落木帮轮破亚师围注远字材排供河态封另施减树溶怎止案言士均武固叶鱼波视仅费紧爱左章早朝害续轻服试食充兵源判护司足某练差致板田降黑犯负击范继兴似余坚曲输修故城夫够送笔船占右财吃富春职觉汉画功巴跟虽杂飞检吸助升阳互初创抗考投坏策古径换未跑留钢曾端责站简述钱副尽帝射草冲承独令限阿宣环双请超微让控州良轴找否纪益依优顶础载倒房突坐粉敌略客袁冷胜绝析块剂测丝协诉念陈仍罗盐友洋错苦夜刑移频逐靠混母短皮终聚汽村云哪既距卫停烈央察烧迅境若印洲刻括激孔搞甚室待核校散侵吧甲游久菜味旧模湖货损预阻毫普稳乙妈植息扩银语挥酒守拿序纸医缺雨吗针刘啊急唱误训愿审附获茶鲜粮斤孩脱硫肥善龙演父渐血欢械掌歌沙刚攻谓盾讨晚粒乱燃矛乎杀药宁鲁贵钟煤读班伯香介迫句丰培握兰担弦蛋沉假穿执答乐谁顺烟缩征脸喜松脚困异免背星福买染井概慢怕磁倍祖皇促静补评翻肉践尼衣宽扬棉希伤操垂秋宜氢套督振架亮末宪庆编牛触映雷销诗座居抓裂胞呼娘景威绿晶厚盟衡鸡孙延危胶屋乡临陆顾掉呀灯岁措束耐剧玉赵跳哥季课凯胡额款绍卷齐伟蒸殖永宗苗川炉岩弱零杨奏沿露杆探滑镇饭浓航怀赶库夺伊灵税途灭赛归召鼓播盘裁险康唯录菌纯借糖盖横符私努堂域枪润幅哈竟熟虫泽脑壤碳欧遍侧寨敢彻虑斜薄庭纳弹饲伸折麦湿暗荷瓦塞床筑恶户访塔奇透梁刀旋迹卡氯遇份毒泥退洗摆灰彩卖耗夏择忙铜献硬予繁圈雪函亦抽篇阵阴丁尺追堆雄迎泛爸楼避谋吨野猪旗累偏典馆索秦脂潮爷豆忽托惊塑遗愈朱替纤粗倾尚痛楚谢奋购磨君池旁碎骨监捕弟暴割贯殊释词亡壁顿宝午尘闻揭炮残冬桥妇警综招吴付浮遭徐您摇谷赞箱隔订男吹园纷唐败宋玻巨耕坦荣闭湾键凡驻锅救恩剥凝碱齿截炼麻纺禁废盛版缓净睛昌婚涉筒嘴插岸朗庄街藏姑贸腐奴啦惯乘伙恢匀纱扎辩耳彪臣亿璃抵脉秀萨俄网舞店喷纵寸汗挂洪贺闪柬爆烯津稻墙软勇像滚厘蒙芳肯坡柱荡腿仪旅尾轧冰贡登黎削钻勒逃障氨郭峰币港伏轨亩毕擦莫刺浪秘援株健售股岛甘泡睡童铸汤阀休汇舍牧绕炸哲磷绩朋淡尖启陷柴呈徒颜泪稍忘泵蓝拖洞授镜辛壮锋贫虚弯摩泰幼廷尊窗纲弄隶疑氏宫姐震瑞怪尤琴循描膜违夹腰缘珠穷森枝竹沟催绳忆邦剩幸浆栏拥牙贮礼滤钠纹罢拍咱喊袖埃勤罚焦潜伍墨欲缝姓刊饱仿奖铝鬼丽跨默挖链扫喝袋炭污幕诸弧励梅奶洁灾舟鉴苯讼抱毁懂寒智埔寄届跃渡挑丹艰贝碰拔爹戴码梦芽熔赤渔哭敬颗奔铅仲虎稀妹乏珍申桌遵允隆螺仓魏锐晓氮兼隐碍赫拨忠肃缸牵抢博巧壳兄杜讯诚碧祥柯页巡矩悲灌龄伦票寻桂铺圣恐恰郑趣抬荒腾贴柔滴猛阔辆妻填撤储签闹扰紫砂递戏吊陶伐喂疗瓶婆抚臂摸忍虾蜡邻胸巩挤偶弃槽劲乳邓吉仁烂砖租乌舰伴瓜浅丙暂燥橡柳迷暖牌秧胆详簧踏瓷谱呆宾糊洛辉愤竞隙怒粘乃绪肩籍敏涂熙皆侦悬掘享纠醒狂锁淀恨牲霸爬赏逆玩陵祝秒浙貌役彼悉鸭趋凤晨畜辈秩卵署梯炎滩棋驱筛峡冒啥寿译浸泉帽迟硅疆贷漏稿冠嫩胁芯牢叛蚀奥鸣岭羊凭串塘绘酵融盆锡庙筹冻辅摄袭筋拒僚旱钾鸟漆沈眉疏添棒穗硝韩逼扭侨凉挺碗栽炒杯患馏劝豪辽勃鸿旦吏拜狗埋辊掩饮搬骂辞勾扣估蒋绒雾丈朵姆拟宇辑陕雕偿蓄崇剪倡厅咬驶薯刷斥番赋奉佛浇漫曼扇钙桃扶仔返俗亏腔鞋棱覆框悄叔撞骗勘旺沸孤吐孟渠屈疾妙惜仰狠胀谐抛霉桑岗嘛衰盗渗脏赖涌甜曹阅肌哩厉烃纬毅昨伪症煮叹钉搭茎笼酷偷弓锥恒杰坑鼻翼纶叙狱逮罐络棚抑膨蔬寺骤穆冶枯册尸凸绅坯牺焰轰欣晋瘦御锭锦丧旬锻垄搜扑邀亭酯迈舒脆酶闲忧酚顽羽涨卸仗陪辟惩杭姚肚捉飘漂昆欺吾郎烷汁呵饰萧雅邮迁燕撒姻赴宴烦债帐斑铃旨醇董饼雏姿拌傅腹妥揉贤拆歪葡胺丢浩徽昂垫挡览贪慰缴汪慌冯诺姜谊凶劣诬耀昏躺盈骑乔溪丛卢抹闷咨刮驾缆悟摘铒掷颇幻柄惠惨佳仇腊窝涤剑瞧堡泼葱罩霍捞胎苍滨俩捅湘砍霞邵萄疯淮遂熊粪烘宿档戈驳嫂裕徙箭捐肠撑晒辨殿莲摊搅酱屏疫哀蔡堵沫皱畅叠阁莱敲辖钩痕坝巷饿祸丘玄溜曰逻彭尝卿妨艇吞韦怨矮歇';
14
+ /** 词表长度(2^11)。 */
15
+ exports.BIP39_ZH_SIZE = 2048;
16
+ //# sourceMappingURL=bip39-zh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bip39-zh.js","sourceRoot":"","sources":["../../../src/data/bip39-zh.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;GAQG;AACU,QAAA,QAAQ,GAAW,kgEAAkgE,CAAC;AAEniE,kBAAkB;AACL,QAAA,aAAa,GAAW,IAAI,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZH_VARIANT_COUNT = exports.ZH_VARIANT_PAIRS = void 0;
4
+ /**
5
+ * BIP39 简体 / 繁体中文词表的字形差异(773 条 繁→简 映射)。
6
+ *
7
+ * 生成方式:BIP39 的 chinese_simplified 与 chinese_traditional 两张表**顺序完全一致**,
8
+ * 逐位比较即可得到可靠的繁简对应关系,无需手写映射表。
9
+ * 格式:1546 个字符,两两一组,前为繁体、后为简体。
10
+ *
11
+ * 仅用于「中文房间码」彩蛋的输入容错(用户粘贴繁体字形也能解析)。
12
+ */
13
+ exports.ZH_VARIANT_PAIRS = '這这為为個个國国時时來来們们於于對对會会發发動动過过說说產产種种後后學学經经進进著着電电裡里現现實实兩两體体機机當当點点從从業业應应開开還还義义間间樣样與与關关線线內内數数麼么質质氣气變变條条沒没結结問问無无軍军並并題题黨党員员總总設设長长頭头資资邊边級级圖图統统較较將将組组見见計计別别論论運运農农幾几區区強强決决幹干戰战則则據据處处隊队給给門门規规熱热領领東东導导壓压爭争濟济階阶術术極极聯联認认權权證证採采轉转單单風风帶带場场車车務务萬万達达積积議议聲声報报鬥斗類类離离華华確确張张馬马節节話话況况溫温傳传許许廣广記记觀观織织裝装眾众書书兒儿須须際际驗验連连斷断難难礦矿週周備备辦办習习響响約约勞劳團团歷历構构稱称準准號号維维劃划選选標标寫写親亲養养層层卻却專专狀状廠厂識识適适屬属圓圆調调滿满縣县參参紅红細细聽听該该鐵铁價价嚴严隨随蘇苏爾尔講讲黃黄顯显談谈藝艺營营項项舉举勢势幫帮輪轮亞亚師师圍围遠远態态減减樹树葉叶魚鱼視视僅仅費费緊紧愛爱續续輕轻試试護护練练負负擊击繼继興兴餘余堅坚輸输夠够筆笔佔占財财職职覺觉漢汉畫画雖虽雜杂飛飞檢检昇升陽阳創创壞坏徑径換换鋼钢責责簡简錢钱盡尽衝冲獨独環环雙双請请讓让軸轴紀纪優优頂顶礎础載载敵敌勝胜絕绝塊块劑剂測测絲丝協协訴诉陳陈羅罗鹽盐錯错頻频終终雲云衛卫燒烧遊游舊旧貨货損损預预穩稳媽妈擴扩銀银語语揮挥紙纸醫医嗎吗針针劉刘誤误訓训願愿審审獲获鮮鲜糧粮脫脱龍龙漸渐歡欢剛刚謂谓討讨亂乱殺杀藥药寧宁魯鲁貴贵鐘钟讀读豐丰蘭兰擔担執执樂乐誰谁順顺煙烟縮缩徵征臉脸腳脚異异買买靜静補补評评踐践寬宽揚扬傷伤氫氢憲宪慶庆編编觸触銷销詩诗綠绿雞鸡孫孙膠胶鄉乡臨临陸陆顧顾燈灯歲岁劇剧趙赵課课凱凯額额紹绍齊齐偉伟爐炉楊杨桿杆鎮镇飯饭濃浓懷怀趕赶庫库奪夺靈灵稅税滅灭賽赛歸归盤盘險险錄录純纯蓋盖橫横槍枪潤润蟲虫澤泽腦脑歐欧側侧徹彻慮虑納纳彈弹飼饲麥麦濕湿築筑惡恶戶户訪访跡迹擺摆賣卖擇择銅铜獻献陣阵陰阴樓楼謀谋噸吨豬猪館馆爺爷驚惊遺遗纖纤傾倾謝谢奮奋購购監监貫贯釋释詞词頓顿寶宝塵尘聞闻殘残橋桥婦妇綜综吳吴搖摇贊赞訂订園园紛纷敗败榮荣閉闭灣湾鍵键駐驻鍋锅剝剥鹼碱齒齿煉炼紡纺廢废緩缓淨净莊庄貿贸慣惯夥伙勻匀紗纱辯辩億亿脈脉薩萨網网噴喷縱纵掛挂賀贺閃闪牆墙軟软滾滚盪荡儀仪軋轧貢贡鑽钻幣币軌轨畝亩畢毕島岛鑄铸湯汤閥阀匯汇繞绕績绩啟启顏颜淚泪藍蓝鏡镜壯壮鋒锋貧贫虛虚彎弯綱纲隸隶宮宫違违夾夹緣缘窮穷溝沟繩绳憶忆漿浆欄栏擁拥貯贮禮礼濾滤鈉钠紋纹罷罢罰罚潛潜縫缝飽饱獎奖鋁铝麗丽鏈链掃扫諸诸勵励潔洁災灾鑑鉴訟讼毀毁屆届躍跃艱艰貝贝碼码夢梦漁渔顆颗鉛铅倉仓銳锐曉晓隱隐礙碍撥拨肅肃牽牵搶抢殼壳訊讯誠诚頁页齡龄倫伦尋寻鋪铺聖圣鄭郑騰腾貼贴闊阔輛辆儲储簽签鬧闹擾扰遞递戲戏餵喂療疗撫抚蝦虾蠟蜡鄰邻鞏巩擠挤棄弃勁劲鄧邓爛烂磚砖烏乌艦舰淺浅暫暂膽胆詳详譜谱賓宾輝辉憤愤競竞緒绪塗涂偵侦懸悬糾纠鎖锁賞赏鴨鸭趨趋鳳凤輩辈灘滩驅驱篩筛峽峡壽寿譯译遲迟矽硅貸贷脅胁蝕蚀奧奥鳴鸣嶺岭憑凭繪绘錫锡廟庙籌筹凍冻輔辅攝摄襲袭鉀钾鳥鸟韓韩僑侨涼凉餾馏勸劝遼辽鴻鸿輥辊飲饮罵骂辭辞蔣蒋絨绒霧雾擬拟輯辑陝陕償偿廳厅駛驶賦赋澆浇鈣钙虧亏騙骗脹胀諧谐拋抛黴霉崗岗盜盗滲渗臟脏賴赖湧涌閱阅厲厉烴烃緯纬偽伪嘆叹釘钉莖茎籠笼錐锥恆恒傑杰綸纶敘叙獄狱絡络驟骤冊册屍尸紳绅犧牺轟轰晉晋禦御錠锭錦锦喪丧鍛锻壟垄撲扑邁迈閒闲憂忧頑顽漲涨闢辟懲惩飄飘飾饰蕭萧郵邮遷迁煩烦債债帳帐鈴铃餅饼雛雏賢贤丟丢墊垫擋挡覽览貪贪繳缴馮冯諾诺誼谊兇凶誣诬騎骑喬乔叢丛盧卢悶闷諮咨駕驾纜缆鉺铒擲掷頗颇慘惨臘腊窩窝滌涤劍剑潑泼蔥葱撈捞蒼苍濱滨倆俩瘋疯糞粪檔档駁驳腸肠撐撑曬晒蓮莲攤摊攪搅醬酱皺皱暢畅疊叠閣阁萊莱轄辖鉤钩壩坝餓饿禍祸邏逻嘗尝韋韦';
14
+ /** 映射条数。 */
15
+ exports.ZH_VARIANT_COUNT = 773;
16
+ //# sourceMappingURL=zh-variants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh-variants.js","sourceRoot":"","sources":["../../../src/data/zh-variants.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;GAQG;AACU,QAAA,gBAAgB,GAAW,4gDAA4gD,CAAC;AAErjD,YAAY;AACC,QAAA,gBAAgB,GAAW,GAAG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AAyBA,sCAEC;AAGD,8BAEC;AAGD,sBAsBC;AA1CD,MAAa,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAkB;IAE/B,YAAY,IAAqB,EAAE,OAAe,EAAE,OAA6B;QAC/E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AARD,kCAQC;AAED,SAAgB,aAAa,CAAC,KAAc,EAAE,IAAsB;IAClE,OAAO,KAAK,YAAY,WAAW,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,mCAAmC;AACnC,SAAgB,SAAS,CAAC,IAAqB,EAAE,OAAe,EAAE,KAAc;IAC9E,OAAO,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,8CAA8C;AAC9C,SAAgB,KAAK,CAAC,EAAU,EAAE,MAAoB;IACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,gBAAgB;QAChB,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAEhB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC;QAEF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";;;AA2BA,sCAEC;AAGD,8BAEC;AAGD,sBAsBC;AA1CD,MAAa,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAkB;IAE/B,YAAY,IAAqB,EAAE,OAAe,EAAE,OAA6B;QAC/E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AARD,kCAQC;AAED,SAAgB,aAAa,CAAC,KAAc,EAAE,IAAsB;IAClE,OAAO,KAAK,YAAY,WAAW,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,mCAAmC;AACnC,SAAgB,SAAS,CAAC,IAAqB,EAAE,OAAe,EAAE,KAAc;IAC9E,OAAO,KAAK,YAAY,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED,8CAA8C;AAC9C,SAAgB,KAAK,CAAC,EAAU,EAAE,MAAoB;IACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,gBAAgB;QAChB,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAEhB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC;QAEF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/cjs/guest.js CHANGED
@@ -13,6 +13,7 @@ const identity_js_1 = require("./identity.js");
13
13
  const lan_js_1 = require("./net/lan.js");
14
14
  const mc_ping_js_1 = require("./net/mc-ping.js");
15
15
  const ports_js_1 = require("./net/ports.js");
16
+ const passphrase_js_1 = require("./passphrase.js");
16
17
  const room_code_js_1 = require("./room-code.js");
17
18
  class TunnelGuest extends node_events_1.EventEmitter {
18
19
  options;
@@ -48,7 +49,16 @@ class TunnelGuest extends node_events_1.EventEmitter {
48
49
  const dataDir = this.options.dataDir ?? (0, identity_js_1.defaultDataDir)();
49
50
  this.deviceId = (0, identity_js_1.getDeviceId)(dataDir);
50
51
  this.playerName = this.options.playerName ?? 'Guest';
51
- const room = (0, room_code_js_1.parseRoomCode)(this.options.roomCode);
52
+ // 房间码与口令二选一,且必须提供其一
53
+ if (this.options.passphrase !== undefined && this.options.roomCode !== undefined) {
54
+ throw new errors_js_1.TunnelError('INVALID_OPTIONS', 'passphrase 与 roomCode 只能提供一个');
55
+ }
56
+ if (this.options.passphrase === undefined && this.options.roomCode === undefined) {
57
+ throw new errors_js_1.TunnelError('INVALID_OPTIONS', '必须提供 roomCode 或 passphrase');
58
+ }
59
+ const room = this.options.passphrase !== undefined
60
+ ? (0, room_code_js_1.parseRoomCode)((0, passphrase_js_1.roomCodeFromPassphrase)(this.options.passphrase))
61
+ : (0, room_code_js_1.parseRoomCode)(this.options.roomCode);
52
62
  this.roomCodeValue = room.code;
53
63
  const secrets = (0, room_code_js_1.deriveRoomSecrets)(room.code);
54
64
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"guest.js","sourceRoot":"","sources":["../../src/guest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guest.js","sourceRoot":"","sources":["../../src/guest.ts"],"names":[],"mappings":"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"}
package/dist/cjs/host.js CHANGED
@@ -13,6 +13,7 @@ const identity_js_1 = require("./identity.js");
13
13
  const lan_js_1 = require("./net/lan.js");
14
14
  const mc_ping_js_1 = require("./net/mc-ping.js");
15
15
  const ports_js_1 = require("./net/ports.js");
16
+ const passphrase_js_1 = require("./passphrase.js");
16
17
  const room_code_js_1 = require("./room-code.js");
17
18
  class TunnelHost extends node_events_1.EventEmitter {
18
19
  options;
@@ -41,9 +42,15 @@ class TunnelHost extends node_events_1.EventEmitter {
41
42
  const dataDir = this.options.dataDir ?? (0, identity_js_1.defaultDataDir)();
42
43
  this.deviceId = (0, identity_js_1.getDeviceId)(dataDir);
43
44
  this.playerName = this.options.playerName ?? 'Host';
44
- const room = this.options.roomCode
45
- ? (0, room_code_js_1.parseRoomCode)(this.options.roomCode)
46
- : (0, room_code_js_1.parseRoomCode)((0, room_code_js_1.generateRoomCode)());
45
+ // 房间码与口令二选一;口令先派生成等价房间码,后续流程完全复用
46
+ if (this.options.passphrase !== undefined && this.options.roomCode !== undefined) {
47
+ throw new errors_js_1.TunnelError('INVALID_OPTIONS', 'passphrase 与 roomCode 只能提供一个');
48
+ }
49
+ const room = this.options.passphrase !== undefined
50
+ ? (0, room_code_js_1.parseRoomCode)((0, passphrase_js_1.roomCodeFromPassphrase)(this.options.passphrase))
51
+ : this.options.roomCode
52
+ ? (0, room_code_js_1.parseRoomCode)(this.options.roomCode)
53
+ : (0, room_code_js_1.parseRoomCode)((0, room_code_js_1.generateRoomCode)());
47
54
  this.roomCodeValue = room.code;
48
55
  const secrets = (0, room_code_js_1.deriveRoomSecrets)(room.code);
49
56
  // 1. 确定 Minecraft 端口
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/host.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,6CAA2C;AAC3C,yCAAyC;AACzC,iDAKwB;AACxB,+CAA8D;AAC9D,2CAAiD;AACjD,+CAA4D;AAC5D,yCAA4C;AAC5C,iDAA0C;AAC1C,6CAA6C;AAC7C,mDAAyD;AACzD,iDAAoF;AAGpF,MAAa,UAAW,SAAQ,0BAAY;IACzB,OAAO,CAAc;IAC9B,YAAY,GAAU,MAAM,CAAC;IAC7B,aAAa,GAAG,EAAE,CAAC;IACnB,WAAW,GAAG,CAAC,CAAC;IAChB,cAAc,GAAG,iCAAkB,CAAC;IACpC,QAAQ,GAAG,EAAE,CAAC;IACd,UAAU,GAAG,MAAM,CAAC;IAEpB,QAAQ,CAAgB;IACxB,WAAW,CAAe;IAC1B,OAAO,CAAgB;IACvB,UAAU,CAAkB;IACnB,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IACvC,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAoB,OAAoB;QACtC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAuB,EAAE;QAC3C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAA,4BAAc,GAAE,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,IAAA,yBAAW,EAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC;QAEpD,iCAAiC;QACjC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACjF,MAAM,IAAI,uBAAW,CAAC,iBAAiB,EAAE,8BAA8B,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,IAAI,GACR,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;YACnC,CAAC,CAAC,IAAA,4BAAa,EAAC,IAAA,sCAAsB,EAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAChE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ;gBACrB,CAAC,CAAC,IAAA,4BAAa,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACtC,CAAC,CAAC,IAAA,4BAAa,EAAC,IAAA,+BAAgB,GAAE,CAAC,CAAC;QAE1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAA,gCAAiB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7C,qBAAqB;QACrB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAEvE,YAAY;QACZ,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,IAAA,sBAAW,GAAE,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,iCAAkB,CAAC;QAEnE,IAAI,CAAC,QAAQ,GAAG,MAAM,0BAAY,CAAC,KAAK,CACtC;YACE,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,OAAO;YACP,IAAI,EAAE,8BAAe;YACrB,QAAQ,EAAE,YAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACjD,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACzB,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW;YAC/C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO;YACvC,oCAAoC;YACpC,YAAY,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC;YACrD,YAAY,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;SACjC,EACD,QAAQ,CACT,CAAC;QAEF,cAAc;QACd,IAAI,CAAC,WAAW,GAAG,MAAM,sBAAW,CAAC,KAAK,CAAC;YACzC,IAAI,EAAE,IAAI,CAAC,cAAc;YACzB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,IAAI,CAAC,aAAa;YAC5B,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,MAAM,EAAE,IAAI,CAAC,QAAQ;YACrB,QAAQ,EAAE,IAAI,CAAC,UAAU;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAE3F,sCAAsC;QACtC,IAAI,CAAC,aAAa,EAAE,CAAC;QAErB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,uCAAuC;IAC/B,KAAK,CAAC,aAAa;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,2BAAY,CAAC;QAE/C,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,IAAI,qBAAY,CAAC;gBAC/B,0BAA0B;gBAC1B,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI;aACzC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YAEvB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;gBACzB,MAAM,CACJ,IAAI,uBAAW,CACb,cAAc,EACd,MAAM,SAAS,wCAAwC,CACxD,CACF,CAAC;YACJ,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,OAA2B,EAAE,EAAE;gBACnD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO;gBACT,CAAC;gBAED,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACvB,yBAAyB;YAC3B,CAAC,CAAC,CAAC;YAEH,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa;QACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,KAAK,CAAC,KAAK,IAAI,EAAE;gBACf,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAC1C,IAAI,CAAC,IAAI,CACP,IAAI,uBAAW,CACb,iBAAiB,EACjB,wBAAwB,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CACzD,CACF,CAAC;oBACF,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE9C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,QAAQ,GAAG,CAAC,CAAC;oBACb,OAAO;gBACT,CAAC;gBAED,QAAQ,IAAI,CAAC,CAAC;gBAEd,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;oBAClB,QAAQ,GAAG,CAAC,CAAC;oBACb,mCAAmC;oBACnC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC,EAAE,mCAAoB,CAAC,CAAC;QAEzB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;IAC5B,CAAC;IAEO,QAAQ,CAAC,KAAY;QAC3B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEO,IAAI,CAAC,KAAkB;QAC7B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEvB,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,8BAAe,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAEzB,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAE7B,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,+BAA+B;QAC/B,MAAM,IAAA,iBAAK,EAAC,CAAC,CAAC,CAAC;QAEf,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;CACF;AApPD,gCAoPC"}
package/dist/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.verifyRoomCode = exports.ROOM_CODE_LENGTH = exports.parseRoomCode = exports.normalizeRoomCode = exports.generateRoomCode = exports.pingMc = exports.isPortOpen = exports.MC_MULTICAST_PORT = exports.MC_MULTICAST_GROUP = exports.McLanScanner = exports.McLanAnnouncer = exports.getDeviceId = exports.defaultDataDir = exports.isTunnelError = exports.TunnelError = exports.resolveBinaries = exports.natDifficulty = exports.EasyTierNode = exports.COORD_TOKEN_HEADER = exports.COORD_PROTOCOL_VERSION = exports.CoordServer = exports.CoordClient = exports.VERSION = exports.TunnelGuest = exports.TunnelHost = void 0;
3
+ exports.verifyRoomCode = exports.ROOM_CODE_LENGTH = exports.parseRoomCode = exports.normalizeRoomCode = exports.generateRoomCode = exports.seedFromPassphrase = exports.roomCodeFromPassphrase = exports.passphraseStrength = exports.normalizePassphrase = exports.pingMc = exports.isPortOpen = exports.MC_MULTICAST_PORT = exports.MC_MULTICAST_GROUP = exports.McLanScanner = exports.McLanAnnouncer = exports.getDeviceId = exports.defaultDataDir = exports.isTunnelError = exports.TunnelError = exports.resolveBinaries = exports.natDifficulty = exports.EasyTierNode = exports.COORD_TOKEN_HEADER = exports.COORD_PROTOCOL_VERSION = exports.CoordServer = exports.CoordClient = exports.VERSION = exports.TunnelGuest = exports.TunnelHost = void 0;
4
4
  exports.createHost = createHost;
5
5
  exports.createGuest = createGuest;
6
6
  /**
@@ -45,6 +45,11 @@ Object.defineProperty(exports, "MC_MULTICAST_PORT", { enumerable: true, get: fun
45
45
  var mc_ping_js_1 = require("./net/mc-ping.js");
46
46
  Object.defineProperty(exports, "isPortOpen", { enumerable: true, get: function () { return mc_ping_js_1.isPortOpen; } });
47
47
  Object.defineProperty(exports, "pingMc", { enumerable: true, get: function () { return mc_ping_js_1.pingMc; } });
48
+ var passphrase_js_1 = require("./passphrase.js");
49
+ Object.defineProperty(exports, "normalizePassphrase", { enumerable: true, get: function () { return passphrase_js_1.normalizePassphrase; } });
50
+ Object.defineProperty(exports, "passphraseStrength", { enumerable: true, get: function () { return passphrase_js_1.passphraseStrength; } });
51
+ Object.defineProperty(exports, "roomCodeFromPassphrase", { enumerable: true, get: function () { return passphrase_js_1.roomCodeFromPassphrase; } });
52
+ Object.defineProperty(exports, "seedFromPassphrase", { enumerable: true, get: function () { return passphrase_js_1.seedFromPassphrase; } });
48
53
  var room_code_js_1 = require("./room-code.js");
49
54
  Object.defineProperty(exports, "generateRoomCode", { enumerable: true, get: function () { return room_code_js_1.generateRoomCode; } });
50
55
  Object.defineProperty(exports, "normalizeRoomCode", { enumerable: true, get: function () { return room_code_js_1.normalizeRoomCode; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AA+CA,gCAEC;AAGD,kCAEC;AAtDD;;;;;;;;;;;;GAYG;AACH,yCAAyC;AAIpB,4FAJZ,sBAAW,OAIY;AAHhC,uCAAuC;AAG9B,2FAHA,oBAAU,OAGA;AACnB,+CAAyC;AAAhC,uGAAA,OAAO,OAAA;AAEhB,uCAAkG;AAAzF,uGAAA,WAAW,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,kHAAA,sBAAsB,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAC7E,6CAA6E;AAApE,2GAAA,YAAY,OAAA;AAAE,4GAAA,aAAa,OAAA;AAAE,8GAAA,eAAe,OAAA;AACrD,yCAA+E;AAAtE,wGAAA,WAAW,OAAA;AAAE,0GAAA,aAAa,OAAA;AACnC,6CAA4D;AAAnD,6GAAA,cAAc,OAAA;AAAE,0GAAA,WAAW,OAAA;AACpC,uCAAmG;AAA1F,wGAAA,cAAc,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAC5E,+CAAqE;AAA5D,wGAAA,UAAU,OAAA;AAAE,oGAAA,MAAM,OAAA;AAC3B,+CAMwB;AALtB,gHAAA,gBAAgB,OAAA;AAChB,iHAAA,iBAAiB,OAAA;AACjB,6GAAA,aAAa,OAAA;AACb,gHAAA,gBAAgB,OAAA;AAChB,8GAAA,cAAc,OAAA;AAehB,cAAc;AACd,SAAgB,UAAU,CAAC,UAAuB,EAAE;IAClD,OAAO,oBAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,YAAY;AACZ,SAAgB,WAAW,CAAC,OAAqB;IAC/C,OAAO,sBAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAqDA,gCAEC;AAGD,kCAEC;AA5DD;;;;;;;;;;;;GAYG;AACH,yCAAyC;AAIpB,4FAJZ,sBAAW,OAIY;AAHhC,uCAAuC;AAG9B,2FAHA,oBAAU,OAGA;AACnB,+CAAyC;AAAhC,uGAAA,OAAO,OAAA;AAEhB,uCAAkG;AAAzF,uGAAA,WAAW,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,kHAAA,sBAAsB,OAAA;AAAE,8GAAA,kBAAkB,OAAA;AAC7E,6CAA6E;AAApE,2GAAA,YAAY,OAAA;AAAE,4GAAA,aAAa,OAAA;AAAE,8GAAA,eAAe,OAAA;AACrD,yCAA+E;AAAtE,wGAAA,WAAW,OAAA;AAAE,0GAAA,aAAa,OAAA;AACnC,6CAA4D;AAAnD,6GAAA,cAAc,OAAA;AAAE,0GAAA,WAAW,OAAA;AACpC,uCAAmG;AAA1F,wGAAA,cAAc,OAAA;AAAE,sGAAA,YAAY,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAC5E,+CAAqE;AAA5D,wGAAA,UAAU,OAAA;AAAE,oGAAA,MAAM,OAAA;AAC3B,iDAKyB;AAJvB,oHAAA,mBAAmB,OAAA;AACnB,mHAAA,kBAAkB,OAAA;AAClB,uHAAA,sBAAsB,OAAA;AACtB,mHAAA,kBAAkB,OAAA;AAEpB,+CAMwB;AALtB,gHAAA,gBAAgB,OAAA;AAChB,iHAAA,iBAAiB,OAAA;AACjB,6GAAA,aAAa,OAAA;AACb,gHAAA,gBAAgB,OAAA;AAChB,8GAAA,cAAc,OAAA;AAehB,cAAc;AACd,SAAgB,UAAU,CAAC,UAAuB,EAAE;IAClD,OAAO,oBAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,YAAY;AACZ,SAAgB,WAAW,CAAC,OAAqB;IAC/C,OAAO,sBAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizePassphrase = normalizePassphrase;
4
+ exports.seedFromPassphrase = seedFromPassphrase;
5
+ exports.roomCodeFromPassphrase = roomCodeFromPassphrase;
6
+ exports.passphraseStrength = passphraseStrength;
7
+ /**
8
+ * 口令模式:允许用「任意一段中文/英文短语」代替房间码。
9
+ *
10
+ * 原理:口令 → HMAC-SHA256(域分离)→ 64 bit 种子 → 复用房间码的派生链
11
+ * (网络名 / 网络密钥 / 握手探针 / 访问令牌)。
12
+ *
13
+ * 与房间码的区别:
14
+ * - 房间码:64 bit CSPRNG 随机种子,强度恒定,等价于「拿到码 = 拿到凭据」;
15
+ * - 口令:种子由用户文本决定,**强度完全取决于口令本身**,
16
+ * 容易被猜到的口令(如「1234」「芝麻开门」)等同于把房间公开。
17
+ *
18
+ * 因此口令模式只是「让用户少记一串随机码」的便利选项,不改变安全模型边界:
19
+ * 需要严格安全时请用随机房间码。
20
+ */
21
+ const node_crypto_1 = require("node:crypto");
22
+ const errors_js_1 = require("./errors.js");
23
+ const room_code_js_1 = require("./room-code.js");
24
+ /** 域分离标签:换标签等于换算法,已发出的口令码会全部失效。 */
25
+ const PASSPHRASE_LABEL = 'mc-tunnel/v1/passphrase';
26
+ /** 64 bit 种子掩码。 */
27
+ const SEED_MASK = (1n << 64n) - 1n;
28
+ /**
29
+ * 口令归一化,让「同一个口令的不同写法」落到同一个种子:
30
+ * - NFKC:全角字符折成半角(`ABC` → `ABC`,`123` → `123`)
31
+ * - 首尾去空白、中间连续空白折成一个空格
32
+ * - 统一小写(英文大小写不敏感,对中文无影响)
33
+ */
34
+ function normalizePassphrase(input) {
35
+ if (typeof input !== 'string') {
36
+ return '';
37
+ }
38
+ return input.normalize('NFKC').trim().replace(/\s+/g, ' ').toLowerCase();
39
+ }
40
+ /**
41
+ * 口令 → 64 bit 种子。
42
+ * @throws {TunnelError} 口令为空(或归一化后为空)时抛 INVALID_PASSPHRASE。
43
+ */
44
+ function seedFromPassphrase(passphrase) {
45
+ const text = normalizePassphrase(passphrase);
46
+ if (text.length === 0) {
47
+ throw new errors_js_1.TunnelError('INVALID_PASSPHRASE', '口令不能为空');
48
+ }
49
+ const digest = (0, node_crypto_1.createHmac)('sha256', PASSPHRASE_LABEL).update(text, 'utf8').digest();
50
+ return digest.readBigUInt64BE(0) & SEED_MASK;
51
+ }
52
+ /**
53
+ * 由口令推出口令对应的标准房间码。
54
+ *
55
+ * 两边任选其一即可加入房间:口令相同 → 种子相同 → 房间码相同。
56
+ * @throws {TunnelError} 口令为空时抛 INVALID_PASSPHRASE。
57
+ */
58
+ function roomCodeFromPassphrase(passphrase) {
59
+ return (0, room_code_js_1.roomCodeFromSeed)(seedFromPassphrase(passphrase));
60
+ }
61
+ /**
62
+ * 粗略评估口令强度,供 UI 提示(不做拦截,只看长度与字符种类)。
63
+ *
64
+ * 说明:64 bit 种子 != 64 bit 安全性。口令是人为选择的,
65
+ * 真实强度约等于其「猜测难度」,这里只给一个可读的分档。
66
+ */
67
+ function passphraseStrength(passphrase) {
68
+ const text = normalizePassphrase(passphrase);
69
+ const chars = Array.from(text);
70
+ const length = chars.length;
71
+ const cjk = chars.filter((char) => /[\u3400-\u9fff]/.test(char)).length;
72
+ // 单个汉字的选择空间远大于英文字母,纯中文口令单独用更短的阈值,避免被误判为弱
73
+ const allCJK = length > 0 && cjk === length;
74
+ if (allCJK) {
75
+ if (length < 4) {
76
+ return 'weak';
77
+ }
78
+ return length >= 6 ? 'good' : 'fair';
79
+ }
80
+ if (length < 8) {
81
+ return 'weak';
82
+ }
83
+ const classes = [/[0-9]/, /[a-z]/, /[^\x00-\x7f]/].filter((re) => re.test(text)).length;
84
+ if (length >= 16 || (length >= 10 && classes >= 2)) {
85
+ return 'good';
86
+ }
87
+ return 'fair';
88
+ }
89
+ //# sourceMappingURL=passphrase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passphrase.js","sourceRoot":"","sources":["../../src/passphrase.ts"],"names":[],"mappings":";;AA8BA,kDAMC;AAMD,gDAUC;AAQD,wDAEC;AAQD,gDA4BC;AAlGD;;;;;;;;;;;;;GAaG;AACH,6CAAyC;AACzC,2CAA0C;AAC1C,iDAAkD;AAElD,mCAAmC;AACnC,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AAEnD,mBAAmB;AACnB,MAAM,SAAS,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;AAEnC;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,KAAa;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAE7C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,uBAAW,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,MAAM,GAAG,IAAA,wBAAU,EAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IAEpF,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,UAAkB;IACvD,OAAO,IAAA,+BAAgB,EAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,IAAI,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAExE,yCAAyC;IACzC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,MAAM,CAAC;IAE5C,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAExF,IAAI,MAAM,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}