@takumi-rs/wasm 0.67.3 → 0.68.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/bundlers/node.cjs CHANGED
@@ -5,6 +5,6 @@ const { join } = require("node:path");
5
5
  const wasmPath = join(__dirname, "../pkg/takumi_wasm_bg.wasm");
6
6
  const wasmBytes = readFileSync(wasmPath);
7
7
 
8
- wasm.initSync(wasmBytes);
8
+ wasm.initSync({ module: wasmBytes });
9
9
 
10
10
  module.exports = wasm;
package/bundlers/node.mjs CHANGED
@@ -9,7 +9,7 @@ const __dirname = dirname(__filename);
9
9
  const wasmPath = join(__dirname, "../pkg/takumi_wasm_bg.wasm");
10
10
  const wasmBytes = readFileSync(wasmPath);
11
11
 
12
- initSync(wasmBytes);
12
+ initSync({ module: wasmBytes });
13
13
 
14
14
  export * from "../pkg/takumi_wasm";
15
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.67.3",
3
+ "version": "0.68.0",
4
4
  "keywords": [
5
5
  "image",
6
6
  "rendering",
@@ -33,6 +33,7 @@ __export(exports_takumi_wasm, {
33
33
  extractResourceUrls: () => extractResourceUrls,
34
34
  default: () => __wbg_init,
35
35
  collectNodeFetchTasks: () => collectNodeFetchTasks,
36
+ WasmBuffer: () => WasmBuffer,
36
37
  Renderer: () => Renderer
37
38
  });
38
39
  module.exports = __toCommonJS(exports_takumi_wasm);
@@ -129,13 +130,10 @@ class Renderer {
129
130
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
130
131
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
131
132
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
132
- var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
133
- if (r3) {
134
- throw takeObject(r2);
133
+ if (r2) {
134
+ throw takeObject(r1);
135
135
  }
136
- var v1 = getArrayU8FromWasm0(r0, r1).slice();
137
- wasm.__wbindgen_export4(r0, r1 * 1, 1);
138
- return v1;
136
+ return WasmBuffer.__wrap(r0);
139
137
  } finally {
140
138
  wasm.__wbindgen_add_to_stack_pointer(16);
141
139
  }
@@ -149,13 +147,10 @@ class Renderer {
149
147
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
150
148
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
151
149
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
152
- var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
153
- if (r3) {
154
- throw takeObject(r2);
150
+ if (r2) {
151
+ throw takeObject(r1);
155
152
  }
156
- var v2 = getArrayU8FromWasm0(r0, r1).slice();
157
- wasm.__wbindgen_export4(r0, r1 * 1, 1);
158
- return v2;
153
+ return WasmBuffer.__wrap(r0);
159
154
  } finally {
160
155
  wasm.__wbindgen_add_to_stack_pointer(16);
161
156
  }
@@ -188,6 +183,36 @@ class Renderer {
188
183
  }
189
184
  if (Symbol.dispose)
190
185
  Renderer.prototype[Symbol.dispose] = Renderer.prototype.free;
186
+
187
+ class WasmBuffer {
188
+ static __wrap(ptr) {
189
+ ptr = ptr >>> 0;
190
+ const obj = Object.create(WasmBuffer.prototype);
191
+ obj.__wbg_ptr = ptr;
192
+ WasmBufferFinalization.register(obj, obj.__wbg_ptr, obj);
193
+ return obj;
194
+ }
195
+ __destroy_into_raw() {
196
+ const ptr = this.__wbg_ptr;
197
+ this.__wbg_ptr = 0;
198
+ WasmBufferFinalization.unregister(this);
199
+ return ptr;
200
+ }
201
+ free() {
202
+ const ptr = this.__destroy_into_raw();
203
+ wasm.__wbg_wasmbuffer_free(ptr, 0);
204
+ }
205
+ asUint8Array() {
206
+ const ret = wasm.wasmbuffer_asUint8Array(this.__wbg_ptr);
207
+ return takeObject(ret);
208
+ }
209
+ get byteLength() {
210
+ const ret = wasm.wasmbuffer_byte_length(this.__wbg_ptr);
211
+ return ret >>> 0;
212
+ }
213
+ }
214
+ if (Symbol.dispose)
215
+ WasmBuffer.prototype[Symbol.dispose] = WasmBuffer.prototype.free;
191
216
  function collectNodeFetchTasks(node) {
192
217
  try {
193
218
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
@@ -436,14 +461,18 @@ function __wbg_get_imports() {
436
461
  return addHeapObject(ret);
437
462
  },
438
463
  __wbindgen_cast_0000000000000003: function(arg0, arg1) {
464
+ const ret = getArrayU8FromWasm0(arg0, arg1);
465
+ return addHeapObject(ret);
466
+ },
467
+ __wbindgen_cast_0000000000000004: function(arg0, arg1) {
439
468
  const ret = getStringFromWasm0(arg0, arg1);
440
469
  return addHeapObject(ret);
441
470
  },
442
- __wbindgen_cast_0000000000000004: function(arg0) {
471
+ __wbindgen_cast_0000000000000005: function(arg0) {
443
472
  const ret = BigInt.asUintN(64, arg0);
444
473
  return addHeapObject(ret);
445
474
  },
446
- __wbindgen_cast_0000000000000005: function(arg0, arg1) {
475
+ __wbindgen_cast_0000000000000006: function(arg0, arg1) {
447
476
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
448
477
  wasm.__wbindgen_export4(arg0, arg1 * 4, 4);
449
478
  const ret = v0;
@@ -463,6 +492,7 @@ function __wbg_get_imports() {
463
492
  };
464
493
  }
465
494
  var RendererFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_renderer_free(ptr >>> 0, 1));
495
+ var WasmBufferFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry((ptr) => wasm.__wbg_wasmbuffer_free(ptr >>> 0, 1));
466
496
  function addHeapObject(obj) {
467
497
  if (heap_next === heap.length)
468
498
  heap.push(heap.length + 1);
@@ -126,11 +126,11 @@ export class Renderer {
126
126
  /**
127
127
  * Renders a node tree into an image buffer.
128
128
  */
129
- render(node: AnyNode, options?: RenderOptions | null): Uint8Array;
129
+ render(node: AnyNode, options?: RenderOptions | null): WasmBuffer;
130
130
  /**
131
131
  * Renders an animation sequence into a buffer.
132
132
  */
133
- renderAnimation(frames: AnimationFrameSource[], options: RenderAnimationOptions): Uint8Array;
133
+ renderAnimation(frames: AnimationFrameSource[], options: RenderAnimationOptions): WasmBuffer;
134
134
  /**
135
135
  * Renders a node tree into a data URL.
136
136
  *
@@ -139,6 +139,23 @@ export class Renderer {
139
139
  renderAsDataUrl(node: AnyNode, options: RenderOptions): string;
140
140
  }
141
141
 
142
+ /**
143
+ * A zero-copy WASM buffer view holder.
144
+ */
145
+ export class WasmBuffer {
146
+ private constructor();
147
+ free(): void;
148
+ [Symbol.dispose](): void;
149
+ /**
150
+ * Returns a Uint8Array view over WASM memory without cloning.
151
+ */
152
+ asUint8Array(): Uint8Array;
153
+ /**
154
+ * Returns the buffer byte length.
155
+ */
156
+ readonly byteLength: number;
157
+ }
158
+
142
159
  /**
143
160
  * Collects the fetch task urls from the node.
144
161
  * @deprecated Use `extractResourceUrls` instead.
@@ -155,6 +172,7 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
155
172
  export interface InitOutput {
156
173
  readonly memory: WebAssembly.Memory;
157
174
  readonly __wbg_renderer_free: (a: number, b: number) => void;
175
+ readonly __wbg_wasmbuffer_free: (a: number, b: number) => void;
158
176
  readonly collectNodeFetchTasks: (a: number, b: number) => void;
159
177
  readonly renderer_clearImageStore: (a: number) => void;
160
178
  readonly renderer_loadFont: (a: number, b: number, c: number) => void;
@@ -165,6 +183,8 @@ export interface InitOutput {
165
183
  readonly renderer_render: (a: number, b: number, c: number, d: number) => void;
166
184
  readonly renderer_renderAnimation: (a: number, b: number, c: number, d: number, e: number) => void;
167
185
  readonly renderer_renderAsDataUrl: (a: number, b: number, c: number, d: number) => void;
186
+ readonly wasmbuffer_asUint8Array: (a: number) => number;
187
+ readonly wasmbuffer_byte_length: (a: number) => number;
168
188
  readonly extractResourceUrls: (a: number, b: number) => void;
169
189
  readonly __wbindgen_export: (a: number, b: number) => number;
170
190
  readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
@@ -117,7 +117,7 @@ export class Renderer {
117
117
  * Renders a node tree into an image buffer.
118
118
  * @param {AnyNode} node
119
119
  * @param {RenderOptions | null} [options]
120
- * @returns {Uint8Array}
120
+ * @returns {WasmBuffer}
121
121
  */
122
122
  render(node, options) {
123
123
  try {
@@ -126,13 +126,10 @@ export class Renderer {
126
126
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
127
127
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
128
128
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
129
- var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
130
- if (r3) {
131
- throw takeObject(r2);
129
+ if (r2) {
130
+ throw takeObject(r1);
132
131
  }
133
- var v1 = getArrayU8FromWasm0(r0, r1).slice();
134
- wasm.__wbindgen_export4(r0, r1 * 1, 1);
135
- return v1;
132
+ return WasmBuffer.__wrap(r0);
136
133
  } finally {
137
134
  wasm.__wbindgen_add_to_stack_pointer(16);
138
135
  }
@@ -141,7 +138,7 @@ export class Renderer {
141
138
  * Renders an animation sequence into a buffer.
142
139
  * @param {AnimationFrameSource[]} frames
143
140
  * @param {RenderAnimationOptions} options
144
- * @returns {Uint8Array}
141
+ * @returns {WasmBuffer}
145
142
  */
146
143
  renderAnimation(frames, options) {
147
144
  try {
@@ -152,13 +149,10 @@ export class Renderer {
152
149
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
153
150
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
154
151
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
155
- var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
156
- if (r3) {
157
- throw takeObject(r2);
152
+ if (r2) {
153
+ throw takeObject(r1);
158
154
  }
159
- var v2 = getArrayU8FromWasm0(r0, r1).slice();
160
- wasm.__wbindgen_export4(r0, r1 * 1, 1);
161
- return v2;
155
+ return WasmBuffer.__wrap(r0);
162
156
  } finally {
163
157
  wasm.__wbindgen_add_to_stack_pointer(16);
164
158
  }
@@ -198,6 +192,46 @@ export class Renderer {
198
192
  }
199
193
  if (Symbol.dispose) Renderer.prototype[Symbol.dispose] = Renderer.prototype.free;
200
194
 
195
+ /**
196
+ * A zero-copy WASM buffer view holder.
197
+ */
198
+ export class WasmBuffer {
199
+ static __wrap(ptr) {
200
+ ptr = ptr >>> 0;
201
+ const obj = Object.create(WasmBuffer.prototype);
202
+ obj.__wbg_ptr = ptr;
203
+ WasmBufferFinalization.register(obj, obj.__wbg_ptr, obj);
204
+ return obj;
205
+ }
206
+ __destroy_into_raw() {
207
+ const ptr = this.__wbg_ptr;
208
+ this.__wbg_ptr = 0;
209
+ WasmBufferFinalization.unregister(this);
210
+ return ptr;
211
+ }
212
+ free() {
213
+ const ptr = this.__destroy_into_raw();
214
+ wasm.__wbg_wasmbuffer_free(ptr, 0);
215
+ }
216
+ /**
217
+ * Returns a Uint8Array view over WASM memory without cloning.
218
+ * @returns {Uint8Array}
219
+ */
220
+ asUint8Array() {
221
+ const ret = wasm.wasmbuffer_asUint8Array(this.__wbg_ptr);
222
+ return takeObject(ret);
223
+ }
224
+ /**
225
+ * Returns the buffer byte length.
226
+ * @returns {number}
227
+ */
228
+ get byteLength() {
229
+ const ret = wasm.wasmbuffer_byte_length(this.__wbg_ptr);
230
+ return ret >>> 0;
231
+ }
232
+ }
233
+ if (Symbol.dispose) WasmBuffer.prototype[Symbol.dispose] = WasmBuffer.prototype.free;
234
+
201
235
  /**
202
236
  * Collects the fetch task urls from the node.
203
237
  * @deprecated Use `extractResourceUrls` instead.
@@ -455,16 +489,21 @@ function __wbg_get_imports() {
455
489
  return addHeapObject(ret);
456
490
  },
457
491
  __wbindgen_cast_0000000000000003: function(arg0, arg1) {
492
+ // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref("Uint8Array")`.
493
+ const ret = getArrayU8FromWasm0(arg0, arg1);
494
+ return addHeapObject(ret);
495
+ },
496
+ __wbindgen_cast_0000000000000004: function(arg0, arg1) {
458
497
  // Cast intrinsic for `Ref(String) -> Externref`.
459
498
  const ret = getStringFromWasm0(arg0, arg1);
460
499
  return addHeapObject(ret);
461
500
  },
462
- __wbindgen_cast_0000000000000004: function(arg0) {
501
+ __wbindgen_cast_0000000000000005: function(arg0) {
463
502
  // Cast intrinsic for `U64 -> Externref`.
464
503
  const ret = BigInt.asUintN(64, arg0);
465
504
  return addHeapObject(ret);
466
505
  },
467
- __wbindgen_cast_0000000000000005: function(arg0, arg1) {
506
+ __wbindgen_cast_0000000000000006: function(arg0, arg1) {
468
507
  var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
469
508
  wasm.__wbindgen_export4(arg0, arg1 * 4, 4);
470
509
  // Cast intrinsic for `Vector(NamedExternref("AnimationFrameSource")) -> Externref`.
@@ -488,6 +527,9 @@ function __wbg_get_imports() {
488
527
  const RendererFinalization = (typeof FinalizationRegistry === 'undefined')
489
528
  ? { register: () => {}, unregister: () => {} }
490
529
  : new FinalizationRegistry(ptr => wasm.__wbg_renderer_free(ptr >>> 0, 1));
530
+ const WasmBufferFinalization = (typeof FinalizationRegistry === 'undefined')
531
+ ? { register: () => {}, unregister: () => {} }
532
+ : new FinalizationRegistry(ptr => wasm.__wbg_wasmbuffer_free(ptr >>> 0, 1));
491
533
 
492
534
  function addHeapObject(obj) {
493
535
  if (heap_next === heap.length) heap.push(heap.length + 1);
Binary file
@@ -2,6 +2,7 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const __wbg_renderer_free: (a: number, b: number) => void;
5
+ export const __wbg_wasmbuffer_free: (a: number, b: number) => void;
5
6
  export const collectNodeFetchTasks: (a: number, b: number) => void;
6
7
  export const renderer_clearImageStore: (a: number) => void;
7
8
  export const renderer_loadFont: (a: number, b: number, c: number) => void;
@@ -12,6 +13,8 @@ export const renderer_putPersistentImage: (a: number, b: number, c: number) => v
12
13
  export const renderer_render: (a: number, b: number, c: number, d: number) => void;
13
14
  export const renderer_renderAnimation: (a: number, b: number, c: number, d: number, e: number) => void;
14
15
  export const renderer_renderAsDataUrl: (a: number, b: number, c: number, d: number) => void;
16
+ export const wasmbuffer_asUint8Array: (a: number) => number;
17
+ export const wasmbuffer_byte_length: (a: number) => number;
15
18
  export const extractResourceUrls: (a: number, b: number) => void;
16
19
  export const __wbindgen_export: (a: number, b: number) => number;
17
20
  export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;