@takumi-rs/wasm 0.64.1 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,10 @@
1
+ const wasm = require("../pkg/takumi_wasm");
2
+ const { readFileSync } = require("node:fs");
3
+ const { join } = require("node:path");
4
+
5
+ const wasmPath = join(__dirname, "../pkg/takumi_wasm_bg.wasm");
6
+ const wasmBytes = readFileSync(wasmPath);
7
+
8
+ wasm.initSync(wasmBytes);
9
+
10
+ module.exports = wasm;
@@ -0,0 +1 @@
1
+ export * from "../pkg/takumi_wasm";
@@ -0,0 +1,15 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { initSync } from "../pkg/takumi_wasm";
5
+
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = dirname(__filename);
8
+
9
+ const wasmPath = join(__dirname, "../pkg/takumi_wasm_bg.wasm");
10
+ const wasmBytes = readFileSync(wasmPath);
11
+
12
+ initSync(wasmBytes);
13
+
14
+ export * from "../pkg/takumi_wasm";
15
+ export { default } from "../pkg/takumi_wasm";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takumi-rs/wasm",
3
- "version": "0.64.1",
3
+ "version": "0.66.0",
4
4
  "keywords": [
5
5
  "image",
6
6
  "rendering",
@@ -30,9 +30,23 @@
30
30
  },
31
31
  "exports": {
32
32
  ".": {
33
+ "node": {
34
+ "types": "./bundlers/node.d.ts",
35
+ "import": "./bundlers/node.mjs",
36
+ "require": "./bundlers/node.cjs"
37
+ },
33
38
  "types": "./pkg/takumi_wasm.d.ts",
34
39
  "default": "./pkg/takumi_wasm.js"
35
40
  },
41
+ "./no-bundler": {
42
+ "types": "./pkg/takumi_wasm.d.ts",
43
+ "default": "./pkg/takumi_wasm.js"
44
+ },
45
+ "./node": {
46
+ "types": "./node.d.ts",
47
+ "import": "./node.mjs",
48
+ "require": "./node.cjs"
49
+ },
36
50
  "./takumi_wasm_bg.wasm": {
37
51
  "types": "./pkg/takumi_wasm_bg.wasm.d.ts",
38
52
  "default": "./pkg/takumi_wasm_bg.wasm"
@@ -59,13 +59,28 @@ export type ImageSource = {
59
59
 
60
60
  export type Font = FontDetails | ByteBuf;
61
61
 
62
+ export type MeasuredTextRun = {
63
+ text: string,
64
+ x: number,
65
+ y: number,
66
+ width: number,
67
+ height: number,
68
+ };
69
+
70
+ export type MeasuredNode = {
71
+ width: number,
72
+ height: number,
73
+ transform: [number, number, number, number, number, number],
74
+ children: MeasuredNode[],
75
+ runs: MeasuredTextRun[],
76
+ };
77
+
78
+ export type AnimationFrameSource = {
79
+ node: AnyNode,
80
+ durationMs: number,
81
+ };
62
82
 
63
83
 
64
- export class AnimationFrameSource {
65
- free(): void;
66
- [Symbol.dispose](): void;
67
- constructor(node: AnyNode, durationMs: number);
68
- }
69
84
 
70
85
  export class Renderer {
71
86
  free(): void;
@@ -76,6 +91,7 @@ export class Renderer {
76
91
  * @deprecated use `loadFont` instead.
77
92
  */
78
93
  loadFontWithInfo(font: Font): void;
94
+ measure(node: AnyNode, options?: RenderOptions | null): MeasuredNode;
79
95
  constructor();
80
96
  putPersistentImage(data: ImageSource): void;
81
97
  render(node: AnyNode, options?: RenderOptions | null): Uint8Array;
@@ -98,13 +114,12 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
98
114
 
99
115
  export interface InitOutput {
100
116
  readonly memory: WebAssembly.Memory;
101
- readonly __wbg_animationframesource_free: (a: number, b: number) => void;
102
117
  readonly __wbg_renderer_free: (a: number, b: number) => void;
103
- readonly animationframesource_new: (a: number, b: number) => number;
104
118
  readonly collectNodeFetchTasks: (a: number, b: number) => void;
105
119
  readonly renderer_clearImageStore: (a: number) => void;
106
120
  readonly renderer_loadFont: (a: number, b: number, c: number) => void;
107
121
  readonly renderer_loadFontWithInfo: (a: number, b: number, c: number) => void;
122
+ readonly renderer_measure: (a: number, b: number, c: number, d: number) => void;
108
123
  readonly renderer_new: () => number;
109
124
  readonly renderer_putPersistentImage: (a: number, b: number, c: number) => void;
110
125
  readonly renderer_render: (a: number, b: number, c: number, d: number) => void;
@@ -114,8 +129,8 @@ export interface InitOutput {
114
129
  readonly __wbindgen_export: (a: number, b: number) => number;
115
130
  readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
116
131
  readonly __wbindgen_export3: (a: number) => void;
117
- readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
118
132
  readonly __wbindgen_export4: (a: number, b: number, c: number) => void;
133
+ readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
119
134
  }
120
135
 
121
136
  export type SyncInitInput = BufferSource | WebAssembly.Module;
@@ -1,35 +1,5 @@
1
1
  /* @ts-self-types="./takumi_wasm.d.ts" */
2
2
 
3
- export class AnimationFrameSource {
4
- static __unwrap(jsValue) {
5
- if (!(jsValue instanceof AnimationFrameSource)) {
6
- return 0;
7
- }
8
- return jsValue.__destroy_into_raw();
9
- }
10
- __destroy_into_raw() {
11
- const ptr = this.__wbg_ptr;
12
- this.__wbg_ptr = 0;
13
- AnimationFrameSourceFinalization.unregister(this);
14
- return ptr;
15
- }
16
- free() {
17
- const ptr = this.__destroy_into_raw();
18
- wasm.__wbg_animationframesource_free(ptr, 0);
19
- }
20
- /**
21
- * @param {AnyNode} node
22
- * @param {number} durationMs
23
- */
24
- constructor(node, durationMs) {
25
- const ret = wasm.animationframesource_new(addHeapObject(node), durationMs);
26
- this.__wbg_ptr = ret >>> 0;
27
- AnimationFrameSourceFinalization.register(this, this.__wbg_ptr, this);
28
- return this;
29
- }
30
- }
31
- if (Symbol.dispose) AnimationFrameSource.prototype[Symbol.dispose] = AnimationFrameSource.prototype.free;
32
-
33
3
  export class Renderer {
34
4
  __destroy_into_raw() {
35
5
  const ptr = this.__wbg_ptr;
@@ -77,6 +47,26 @@ export class Renderer {
77
47
  wasm.__wbindgen_add_to_stack_pointer(16);
78
48
  }
79
49
  }
50
+ /**
51
+ * @param {AnyNode} node
52
+ * @param {RenderOptions | null} [options]
53
+ * @returns {MeasuredNode}
54
+ */
55
+ measure(node, options) {
56
+ try {
57
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
58
+ wasm.renderer_measure(retptr, this.__wbg_ptr, addHeapObject(node), isLikeNone(options) ? 0 : addHeapObject(options));
59
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
60
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
61
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
62
+ if (r2) {
63
+ throw takeObject(r1);
64
+ }
65
+ return takeObject(r0);
66
+ } finally {
67
+ wasm.__wbindgen_add_to_stack_pointer(16);
68
+ }
69
+ }
80
70
  constructor() {
81
71
  const ret = wasm.renderer_new();
82
72
  this.__wbg_ptr = ret >>> 0;
@@ -314,10 +304,6 @@ function __wbg_get_imports() {
314
304
  __wbg___wbindgen_throw_be289d5034ed271b: function(arg0, arg1) {
315
305
  throw new Error(getStringFromWasm0(arg0, arg1));
316
306
  },
317
- __wbg_animationframesource_unwrap: function(arg0) {
318
- const ret = AnimationFrameSource.__unwrap(getObject(arg0));
319
- return ret;
320
- },
321
307
  __wbg_call_389efe28435a9388: function() { return handleError(function (arg0, arg1) {
322
308
  const ret = getObject(arg0).call(getObject(arg1));
323
309
  return addHeapObject(ret);
@@ -392,6 +378,14 @@ function __wbg_get_imports() {
392
378
  const ret = getObject(arg0).length;
393
379
  return ret;
394
380
  },
381
+ __wbg_new_361308b2356cecd0: function() {
382
+ const ret = new Object();
383
+ return addHeapObject(ret);
384
+ },
385
+ __wbg_new_3eb36ae241fe6f44: function() {
386
+ const ret = new Array();
387
+ return addHeapObject(ret);
388
+ },
395
389
  __wbg_new_72b49615380db768: function(arg0, arg1) {
396
390
  const ret = new Error(getStringFromWasm0(arg0, arg1));
397
391
  return addHeapObject(ret);
@@ -411,25 +405,43 @@ function __wbg_get_imports() {
411
405
  __wbg_prototypesetcall_bdcdcc5842e4d77d: function(arg0, arg1, arg2) {
412
406
  Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
413
407
  },
408
+ __wbg_set_3f1d0b984ed272ed: function(arg0, arg1, arg2) {
409
+ getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
410
+ },
411
+ __wbg_set_f43e577aea94465b: function(arg0, arg1, arg2) {
412
+ getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
413
+ },
414
414
  __wbg_value_0546255b415e96c1: function(arg0) {
415
415
  const ret = getObject(arg0).value;
416
416
  return addHeapObject(ret);
417
417
  },
418
418
  __wbindgen_cast_0000000000000001: function(arg0) {
419
+ // Cast intrinsic for `F64 -> Externref`.
420
+ const ret = arg0;
421
+ return addHeapObject(ret);
422
+ },
423
+ __wbindgen_cast_0000000000000002: function(arg0) {
419
424
  // Cast intrinsic for `I64 -> Externref`.
420
425
  const ret = arg0;
421
426
  return addHeapObject(ret);
422
427
  },
423
- __wbindgen_cast_0000000000000002: function(arg0, arg1) {
428
+ __wbindgen_cast_0000000000000003: function(arg0, arg1) {
424
429
  // Cast intrinsic for `Ref(String) -> Externref`.
425
430
  const ret = getStringFromWasm0(arg0, arg1);
426
431
  return addHeapObject(ret);
427
432
  },
428
- __wbindgen_cast_0000000000000003: function(arg0) {
433
+ __wbindgen_cast_0000000000000004: function(arg0) {
429
434
  // Cast intrinsic for `U64 -> Externref`.
430
435
  const ret = BigInt.asUintN(64, arg0);
431
436
  return addHeapObject(ret);
432
437
  },
438
+ __wbindgen_cast_0000000000000005: function(arg0, arg1) {
439
+ var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
440
+ wasm.__wbindgen_export4(arg0, arg1 * 4, 4);
441
+ // Cast intrinsic for `Vector(NamedExternref("AnimationFrameSource")) -> Externref`.
442
+ const ret = v0;
443
+ return addHeapObject(ret);
444
+ },
433
445
  __wbindgen_object_clone_ref: function(arg0) {
434
446
  const ret = getObject(arg0);
435
447
  return addHeapObject(ret);
@@ -444,9 +456,6 @@ function __wbg_get_imports() {
444
456
  };
445
457
  }
446
458
 
447
- const AnimationFrameSourceFinalization = (typeof FinalizationRegistry === 'undefined')
448
- ? { register: () => {}, unregister: () => {} }
449
- : new FinalizationRegistry(ptr => wasm.__wbg_animationframesource_free(ptr >>> 0, 1));
450
459
  const RendererFinalization = (typeof FinalizationRegistry === 'undefined')
451
460
  ? { register: () => {}, unregister: () => {} }
452
461
  : new FinalizationRegistry(ptr => wasm.__wbg_renderer_free(ptr >>> 0, 1));
Binary file
@@ -1,13 +1,12 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
- export const __wbg_animationframesource_free: (a: number, b: number) => void;
5
4
  export const __wbg_renderer_free: (a: number, b: number) => void;
6
- export const animationframesource_new: (a: number, b: number) => number;
7
5
  export const collectNodeFetchTasks: (a: number, b: number) => void;
8
6
  export const renderer_clearImageStore: (a: number) => void;
9
7
  export const renderer_loadFont: (a: number, b: number, c: number) => void;
10
8
  export const renderer_loadFontWithInfo: (a: number, b: number, c: number) => void;
9
+ export const renderer_measure: (a: number, b: number, c: number, d: number) => void;
11
10
  export const renderer_new: () => number;
12
11
  export const renderer_putPersistentImage: (a: number, b: number, c: number) => void;
13
12
  export const renderer_render: (a: number, b: number, c: number, d: number) => void;
@@ -17,5 +16,5 @@ export const extractResourceUrls: (a: number, b: number) => void;
17
16
  export const __wbindgen_export: (a: number, b: number) => number;
18
17
  export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
19
18
  export const __wbindgen_export3: (a: number) => void;
20
- export const __wbindgen_add_to_stack_pointer: (a: number) => number;
21
19
  export const __wbindgen_export4: (a: number, b: number, c: number) => void;
20
+ export const __wbindgen_add_to_stack_pointer: (a: number) => number;