libchai 0.2.6 → 0.3.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.
package/README.md CHANGED
@@ -16,18 +16,21 @@
16
16
  命令行程序基本的用法为:
17
17
 
18
18
  ```bash
19
- ./chai [方案文件] -e [词信息文件] [命令]
19
+ ./chai [命令] -c [方案文件] -e [词信息文件]
20
20
  ```
21
21
 
22
- `chai` 支持两个不同的命令:`encode` 和 `optimize`:
22
+ `chai` 支持三个不同的命令:`encode` 和 `optimize`:
23
23
 
24
24
  - `encode`:使用方案文件和拆分表计算出字词编码并统计各类评测指标
25
25
  - `optimize`:基于拆分表和方案文件中的配置优化元素布局
26
+ - `server`: 启动 Web 服务
26
27
 
27
28
  例如,您可以运行
28
29
 
29
30
  ```bash
30
- ./chai examples/米十五笔.yaml -e examples/米十五笔.txt encode
31
+ ./chai encode -c examples/米十五笔.yaml -e examples/米十五笔.txt
32
+ ./chai optimize -c examples/米十五笔.yaml -e examples/米十五笔.txt -t 4
33
+ ./chai server -p 12345
31
34
  ```
32
35
 
33
36
  完整的使用说明可用 `./chai --help` 查看。
package/chai.d.ts CHANGED
@@ -10,9 +10,9 @@ export function validate(js_config: any): any;
10
10
  export class Web {
11
11
  private constructor();
12
12
  free(): void;
13
+ encode_evaluate(前端目标函数配置: any): any;
13
14
  static new(回调: Function): Web;
14
15
  sync(前端参数: any): void;
15
- encode_evaluate(前端目标函数配置: any): any;
16
16
  optimize(): void;
17
17
  }
18
18
 
@@ -22,10 +22,10 @@ export interface InitOutput {
22
22
  readonly memory: WebAssembly.Memory;
23
23
  readonly __wbg_web_free: (a: number, b: number) => void;
24
24
  readonly validate: (a: number, b: number) => void;
25
- readonly web_new: (a: number) => number;
26
- readonly web_sync: (a: number, b: number, c: number) => void;
27
25
  readonly web_encode_evaluate: (a: number, b: number, c: number) => void;
26
+ readonly web_new: (a: number) => number;
28
27
  readonly web_optimize: (a: number, b: number) => void;
28
+ readonly web_sync: (a: number, b: number, c: number) => void;
29
29
  readonly __wbindgen_export_0: (a: number, b: number) => number;
30
30
  readonly __wbindgen_export_1: (a: number, b: number, c: number, d: number) => number;
31
31
  readonly __wbindgen_export_2: (a: number) => void;
package/chai.js CHANGED
@@ -108,6 +108,11 @@ function getStringFromWasm0(ptr, len) {
108
108
  return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
109
109
  }
110
110
 
111
+ function getArrayU8FromWasm0(ptr, len) {
112
+ ptr = ptr >>> 0;
113
+ return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
114
+ }
115
+
111
116
  function dropObject(idx) {
112
117
  if (idx < 132) return;
113
118
  heap[idx] = heap_next;
@@ -236,6 +241,25 @@ export class Web {
236
241
  const ptr = this.__destroy_into_raw();
237
242
  wasm.__wbg_web_free(ptr, 0);
238
243
  }
244
+ /**
245
+ * @param {any} 前端目标函数配置
246
+ * @returns {any}
247
+ */
248
+ encode_evaluate(前端目标函数配置) {
249
+ try {
250
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
251
+ wasm.web_encode_evaluate(retptr, this.__wbg_ptr, addHeapObject(前端目标函数配置));
252
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
253
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
254
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
255
+ if (r2) {
256
+ throw takeObject(r1);
257
+ }
258
+ return takeObject(r0);
259
+ } finally {
260
+ wasm.__wbindgen_add_to_stack_pointer(16);
261
+ }
262
+ }
239
263
  /**
240
264
  * @param {Function} 回调
241
265
  * @returns {Web}
@@ -260,25 +284,6 @@ export class Web {
260
284
  wasm.__wbindgen_add_to_stack_pointer(16);
261
285
  }
262
286
  }
263
- /**
264
- * @param {any} 前端目标函数配置
265
- * @returns {any}
266
- */
267
- encode_evaluate(前端目标函数配置) {
268
- try {
269
- const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
270
- wasm.web_encode_evaluate(retptr, this.__wbg_ptr, addHeapObject(前端目标函数配置));
271
- var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
272
- var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
273
- var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
274
- if (r2) {
275
- throw takeObject(r1);
276
- }
277
- return takeObject(r0);
278
- } finally {
279
- wasm.__wbindgen_add_to_stack_pointer(16);
280
- }
281
- }
282
287
  optimize() {
283
288
  try {
284
289
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
@@ -351,10 +356,6 @@ function __wbg_get_imports() {
351
356
  const ret = getObject(arg0).codePointAt(arg1 >>> 0);
352
357
  return addHeapObject(ret);
353
358
  };
354
- imports.wbg.__wbg_crypto_ed58b8e10a292839 = function(arg0) {
355
- const ret = getObject(arg0).crypto;
356
- return addHeapObject(ret);
357
- };
358
359
  imports.wbg.__wbg_done_769e5ede4b31c67b = function(arg0) {
359
360
  const ret = getObject(arg0).done;
360
361
  return ret;
@@ -378,8 +379,8 @@ function __wbg_get_imports() {
378
379
  const ret = String.fromCodePoint(arg0 >>> 0);
379
380
  return addHeapObject(ret);
380
381
  }, arguments) };
381
- imports.wbg.__wbg_getRandomValues_bcb4912f16000dc4 = function() { return handleError(function (arg0, arg1) {
382
- getObject(arg0).getRandomValues(getObject(arg1));
382
+ imports.wbg.__wbg_getRandomValues_3c9c0d586e575a16 = function() { return handleError(function (arg0, arg1) {
383
+ globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
383
384
  }, arguments) };
384
385
  imports.wbg.__wbg_get_67b2ba62fc30de12 = function() { return handleError(function (arg0, arg1) {
385
386
  const ret = Reflect.get(getObject(arg0), getObject(arg1));
@@ -447,10 +448,6 @@ function __wbg_get_imports() {
447
448
  const ret = getObject(arg0).length;
448
449
  return ret;
449
450
  };
450
- imports.wbg.__wbg_msCrypto_0a36e2ec3a343d26 = function(arg0) {
451
- const ret = getObject(arg0).msCrypto;
452
- return addHeapObject(ret);
453
- };
454
451
  imports.wbg.__wbg_new_405e22f390576ce2 = function() {
455
452
  const ret = new Object();
456
453
  return addHeapObject(ret);
@@ -475,14 +472,6 @@ function __wbg_get_imports() {
475
472
  const ret = new Function(getStringFromWasm0(arg0, arg1));
476
473
  return addHeapObject(ret);
477
474
  };
478
- imports.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a = function(arg0, arg1, arg2) {
479
- const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);
480
- return addHeapObject(ret);
481
- };
482
- imports.wbg.__wbg_newwithlength_a381634e90c276d4 = function(arg0) {
483
- const ret = new Uint8Array(arg0 >>> 0);
484
- return addHeapObject(ret);
485
- };
486
475
  imports.wbg.__wbg_next_25feadfc0913fea9 = function(arg0) {
487
476
  const ret = getObject(arg0).next;
488
477
  return addHeapObject(ret);
@@ -491,10 +480,6 @@ function __wbg_get_imports() {
491
480
  const ret = getObject(arg0).next();
492
481
  return addHeapObject(ret);
493
482
  }, arguments) };
494
- imports.wbg.__wbg_node_02999533c4ea02e3 = function(arg0) {
495
- const ret = getObject(arg0).node;
496
- return addHeapObject(ret);
497
- };
498
483
  imports.wbg.__wbg_now_2c95c9de01293173 = function(arg0) {
499
484
  const ret = getObject(arg0).now();
500
485
  return ret;
@@ -503,17 +488,6 @@ function __wbg_get_imports() {
503
488
  const ret = getObject(arg0).performance;
504
489
  return addHeapObject(ret);
505
490
  };
506
- imports.wbg.__wbg_process_5c1d670bc53614b8 = function(arg0) {
507
- const ret = getObject(arg0).process;
508
- return addHeapObject(ret);
509
- };
510
- imports.wbg.__wbg_randomFillSync_ab2cfe79ebbf2740 = function() { return handleError(function (arg0, arg1) {
511
- getObject(arg0).randomFillSync(takeObject(arg1));
512
- }, arguments) };
513
- imports.wbg.__wbg_require_79b1e9274cde3c87 = function() { return handleError(function () {
514
- const ret = module.require;
515
- return addHeapObject(ret);
516
- }, arguments) };
517
491
  imports.wbg.__wbg_set_37837023f3d740e8 = function(arg0, arg1, arg2) {
518
492
  getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
519
493
  };
@@ -550,18 +524,10 @@ function __wbg_get_imports() {
550
524
  const ret = typeof window === 'undefined' ? null : window;
551
525
  return isLikeNone(ret) ? 0 : addHeapObject(ret);
552
526
  };
553
- imports.wbg.__wbg_subarray_aa9065fa9dc5df96 = function(arg0, arg1, arg2) {
554
- const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);
555
- return addHeapObject(ret);
556
- };
557
527
  imports.wbg.__wbg_value_cd1ffa7b1ab794f1 = function(arg0) {
558
528
  const ret = getObject(arg0).value;
559
529
  return addHeapObject(ret);
560
530
  };
561
- imports.wbg.__wbg_versions_c71aa1626a93e0a1 = function(arg0) {
562
- const ret = getObject(arg0).versions;
563
- return addHeapObject(ret);
564
- };
565
531
  imports.wbg.__wbindgen_as_number = function(arg0) {
566
532
  const ret = +getObject(arg0);
567
533
  return ret;
package/chai_bg.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Songchen Tan <i@tansongchen.com>"
6
6
  ],
7
7
  "description": "汉字编码优化算法",
8
- "version": "0.2.6",
8
+ "version": "0.3.0",
9
9
  "license": "GPL-3.0",
10
10
  "repository": {
11
11
  "type": "git",