@takumi-rs/wasm 0.36.2 → 0.38.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takumi-rs/wasm",
3
- "version": "0.36.2",
3
+ "version": "0.38.0",
4
4
  "keywords": [
5
5
  "image",
6
6
  "rendering",
@@ -1,17 +1,35 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
- type AnimationOutputFormat = "webp" | "apng";
4
- /**
5
- * Proxy type for the ImageOutputFormat enum.
6
- * This is needed because wasm-bindgen doesn't support cfg macro in enum variants.
7
- * https://github.com/erwanvivien/fast_qr/pull/41/files
8
- */
9
- type ImageOutputFormat = "webp" | "png" | "jpeg";
3
+ export function collectNodeFetchTasks(node: AnyNode): string[];
10
4
 
11
- export interface AnyNode {
12
- type: string;
13
- [key: string]: any;
14
- }
5
+ export type AnyNode = { type: string; [key: string]: any };
6
+
7
+ export type ByteBuf = Uint8Array | ArrayBuffer | Buffer;
8
+
9
+ export type RenderOptions = {
10
+ width: number,
11
+ height: number,
12
+ format?: "png" | "jpeg" | "webp",
13
+ quality?: number,
14
+ fetchedResources?: Map<string, ByteBuf>,
15
+ drawDebugBorder?: boolean,
16
+ };
17
+
18
+ export type RenderAnimationOptions = {
19
+ width: number,
20
+ height: number,
21
+ format?: "webp" | "apng",
22
+ drawDebugBorder?: boolean,
23
+ };
24
+
25
+ export type FontDetails = {
26
+ name?: string,
27
+ data: ByteBuf,
28
+ weight?: number,
29
+ style?: "normal" | "italic" | "oblique",
30
+ };
31
+
32
+ export type Font = FontDetails | ByteBuf;
15
33
 
16
34
 
17
35
  export class AnimationFrameSource {
@@ -19,46 +37,45 @@ export class AnimationFrameSource {
19
37
  [Symbol.dispose](): void;
20
38
  constructor(node: AnyNode, durationMs: number);
21
39
  }
22
- export class FontInfo {
23
- private constructor();
24
- free(): void;
25
- [Symbol.dispose](): void;
26
- }
27
40
  export class Renderer {
28
41
  free(): void;
29
42
  [Symbol.dispose](): void;
30
43
  constructor();
31
- loadFontWithInfo(fontData: FontInfo): void;
32
- loadFont(buffer: Uint8Array): void;
44
+ /**
45
+ * @deprecated use `loadFont` instead.
46
+ */
47
+ loadFontWithInfo(font: Font): void;
48
+ loadFont(font: Font): void;
33
49
  putPersistentImage(src: string, data: Uint8Array): void;
34
50
  clearImageStore(): void;
35
- render(node: AnyNode, width: number, height: number, format?: ImageOutputFormat | null, quality?: number | null, drawDebugBorder?: boolean | null): Uint8Array;
36
- renderAsDataUrl(node: AnyNode, width: number, height: number, format?: ImageOutputFormat | null, quality?: number | null, drawDebugBorder?: boolean | null): string;
37
- renderAnimation(frames: AnimationFrameSource[], width: number, height: number, format?: AnimationOutputFormat | null, drawDebugBorder?: boolean | null): Uint8Array;
51
+ render(node: AnyNode, options: RenderOptions): Uint8Array;
52
+ renderAsDataUrl(node: AnyNode, options: RenderOptions): string;
53
+ renderAnimation(frames: AnimationFrameSource[], options: RenderAnimationOptions): Uint8Array;
38
54
  }
39
55
 
40
56
  export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
41
57
 
42
58
  export interface InitOutput {
43
59
  readonly memory: WebAssembly.Memory;
44
- readonly __wbg_fontinfo_free: (a: number, b: number) => void;
45
60
  readonly __wbg_animationframesource_free: (a: number, b: number) => void;
46
61
  readonly animationframesource_new: (a: any, b: number) => number;
47
62
  readonly __wbg_renderer_free: (a: number, b: number) => void;
48
63
  readonly renderer_new: () => number;
49
- readonly renderer_loadFontWithInfo: (a: number, b: number) => void;
50
- readonly renderer_loadFont: (a: number, b: number, c: number) => void;
64
+ readonly renderer_loadFont: (a: number, b: any) => void;
51
65
  readonly renderer_putPersistentImage: (a: number, b: number, c: number, d: number, e: number) => void;
52
66
  readonly renderer_clearImageStore: (a: number) => void;
53
- readonly renderer_render: (a: number, b: any, c: number, d: number, e: number, f: number, g: number) => [number, number];
54
- readonly renderer_renderAsDataUrl: (a: number, b: any, c: number, d: number, e: number, f: number, g: number) => [number, number];
55
- readonly renderer_renderAnimation: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
67
+ readonly renderer_render: (a: number, b: any, c: any) => [number, number];
68
+ readonly renderer_renderAsDataUrl: (a: number, b: any, c: any) => [number, number];
69
+ readonly renderer_renderAnimation: (a: number, b: number, c: number, d: any) => [number, number];
70
+ readonly collectNodeFetchTasks: (a: any) => [number, number];
71
+ readonly renderer_loadFontWithInfo: (a: number, b: any) => void;
56
72
  readonly __wbindgen_malloc: (a: number, b: number) => number;
57
73
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
58
74
  readonly __wbindgen_exn_store: (a: number) => void;
59
75
  readonly __externref_table_alloc: () => number;
60
76
  readonly __wbindgen_export_4: WebAssembly.Table;
61
77
  readonly __wbindgen_free: (a: number, b: number, c: number) => void;
78
+ readonly __externref_drop_slice: (a: number, b: number) => void;
62
79
  readonly __wbindgen_start: () => void;
63
80
  }
64
81
 
@@ -182,12 +182,6 @@ function debugString(val) {
182
182
  return className;
183
183
  }
184
184
 
185
- function _assertClass(instance, klass) {
186
- if (!(instance instanceof klass)) {
187
- throw new Error(`expected instance of ${klass.name}`);
188
- }
189
- }
190
-
191
185
  function passArray8ToWasm0(arg, malloc) {
192
186
  const ptr = malloc(arg.length * 1, 1) >>> 0;
193
187
  getUint8ArrayMemory0().set(arg, ptr / 1);
@@ -205,9 +199,26 @@ function passArrayJsValueToWasm0(array, malloc) {
205
199
  return ptr;
206
200
  }
207
201
 
208
- const __wbindgen_enum_AnimationOutputFormat = ["webp", "apng"];
209
-
210
- const __wbindgen_enum_ImageOutputFormat = ["webp", "png", "jpeg"];
202
+ function getArrayJsValueFromWasm0(ptr, len) {
203
+ ptr = ptr >>> 0;
204
+ const mem = getDataViewMemory0();
205
+ const result = [];
206
+ for (let i = ptr; i < ptr + 4 * len; i += 4) {
207
+ result.push(wasm.__wbindgen_export_4.get(mem.getUint32(i, true)));
208
+ }
209
+ wasm.__externref_drop_slice(ptr, len);
210
+ return result;
211
+ }
212
+ /**
213
+ * @param {AnyNode} node
214
+ * @returns {string[]}
215
+ */
216
+ export function collectNodeFetchTasks(node) {
217
+ const ret = wasm.collectNodeFetchTasks(node);
218
+ var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
219
+ wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
220
+ return v1;
221
+ }
211
222
 
212
223
  const AnimationFrameSourceFinalization = (typeof FinalizationRegistry === 'undefined')
213
224
  ? { register: () => {}, unregister: () => {} }
@@ -246,26 +257,6 @@ export class AnimationFrameSource {
246
257
  }
247
258
  if (Symbol.dispose) AnimationFrameSource.prototype[Symbol.dispose] = AnimationFrameSource.prototype.free;
248
259
 
249
- const FontInfoFinalization = (typeof FinalizationRegistry === 'undefined')
250
- ? { register: () => {}, unregister: () => {} }
251
- : new FinalizationRegistry(ptr => wasm.__wbg_fontinfo_free(ptr >>> 0, 1));
252
-
253
- export class FontInfo {
254
-
255
- __destroy_into_raw() {
256
- const ptr = this.__wbg_ptr;
257
- this.__wbg_ptr = 0;
258
- FontInfoFinalization.unregister(this);
259
- return ptr;
260
- }
261
-
262
- free() {
263
- const ptr = this.__destroy_into_raw();
264
- wasm.__wbg_fontinfo_free(ptr, 0);
265
- }
266
- }
267
- if (Symbol.dispose) FontInfo.prototype[Symbol.dispose] = FontInfo.prototype.free;
268
-
269
260
  const RendererFinalization = (typeof FinalizationRegistry === 'undefined')
270
261
  ? { register: () => {}, unregister: () => {} }
271
262
  : new FinalizationRegistry(ptr => wasm.__wbg_renderer_free(ptr >>> 0, 1));
@@ -290,20 +281,17 @@ export class Renderer {
290
281
  return this;
291
282
  }
292
283
  /**
293
- * @param {FontInfo} fontData
284
+ * @deprecated use `loadFont` instead.
285
+ * @param {Font} font
294
286
  */
295
- loadFontWithInfo(fontData) {
296
- _assertClass(fontData, FontInfo);
297
- var ptr0 = fontData.__destroy_into_raw();
298
- wasm.renderer_loadFontWithInfo(this.__wbg_ptr, ptr0);
287
+ loadFontWithInfo(font) {
288
+ wasm.renderer_loadFontWithInfo(this.__wbg_ptr, font);
299
289
  }
300
290
  /**
301
- * @param {Uint8Array} buffer
291
+ * @param {Font} font
302
292
  */
303
- loadFont(buffer) {
304
- const ptr0 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);
305
- const len0 = WASM_VECTOR_LEN;
306
- wasm.renderer_loadFont(this.__wbg_ptr, ptr0, len0);
293
+ loadFont(font) {
294
+ wasm.renderer_loadFont(this.__wbg_ptr, font);
307
295
  }
308
296
  /**
309
297
  * @param {string} src
@@ -321,33 +309,25 @@ export class Renderer {
321
309
  }
322
310
  /**
323
311
  * @param {AnyNode} node
324
- * @param {number} width
325
- * @param {number} height
326
- * @param {ImageOutputFormat | null} [format]
327
- * @param {number | null} [quality]
328
- * @param {boolean | null} [drawDebugBorder]
312
+ * @param {RenderOptions} options
329
313
  * @returns {Uint8Array}
330
314
  */
331
- render(node, width, height, format, quality, drawDebugBorder) {
332
- const ret = wasm.renderer_render(this.__wbg_ptr, node, width, height, isLikeNone(format) ? 4 : ((__wbindgen_enum_ImageOutputFormat.indexOf(format) + 1 || 4) - 1), isLikeNone(quality) ? 0xFFFFFF : quality, isLikeNone(drawDebugBorder) ? 0xFFFFFF : drawDebugBorder ? 1 : 0);
315
+ render(node, options) {
316
+ const ret = wasm.renderer_render(this.__wbg_ptr, node, options);
333
317
  var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
334
318
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
335
319
  return v1;
336
320
  }
337
321
  /**
338
322
  * @param {AnyNode} node
339
- * @param {number} width
340
- * @param {number} height
341
- * @param {ImageOutputFormat | null} [format]
342
- * @param {number | null} [quality]
343
- * @param {boolean | null} [drawDebugBorder]
323
+ * @param {RenderOptions} options
344
324
  * @returns {string}
345
325
  */
346
- renderAsDataUrl(node, width, height, format, quality, drawDebugBorder) {
326
+ renderAsDataUrl(node, options) {
347
327
  let deferred1_0;
348
328
  let deferred1_1;
349
329
  try {
350
- const ret = wasm.renderer_renderAsDataUrl(this.__wbg_ptr, node, width, height, isLikeNone(format) ? 4 : ((__wbindgen_enum_ImageOutputFormat.indexOf(format) + 1 || 4) - 1), isLikeNone(quality) ? 0xFFFFFF : quality, isLikeNone(drawDebugBorder) ? 0xFFFFFF : drawDebugBorder ? 1 : 0);
330
+ const ret = wasm.renderer_renderAsDataUrl(this.__wbg_ptr, node, options);
351
331
  deferred1_0 = ret[0];
352
332
  deferred1_1 = ret[1];
353
333
  return getStringFromWasm0(ret[0], ret[1]);
@@ -357,16 +337,13 @@ export class Renderer {
357
337
  }
358
338
  /**
359
339
  * @param {AnimationFrameSource[]} frames
360
- * @param {number} width
361
- * @param {number} height
362
- * @param {AnimationOutputFormat | null} [format]
363
- * @param {boolean | null} [drawDebugBorder]
340
+ * @param {RenderAnimationOptions} options
364
341
  * @returns {Uint8Array}
365
342
  */
366
- renderAnimation(frames, width, height, format, drawDebugBorder) {
343
+ renderAnimation(frames, options) {
367
344
  const ptr0 = passArrayJsValueToWasm0(frames, wasm.__wbindgen_malloc);
368
345
  const len0 = WASM_VECTOR_LEN;
369
- const ret = wasm.renderer_renderAnimation(this.__wbg_ptr, ptr0, len0, width, height, isLikeNone(format) ? 3 : ((__wbindgen_enum_AnimationOutputFormat.indexOf(format) + 1 || 3) - 1), isLikeNone(drawDebugBorder) ? 0xFFFFFF : drawDebugBorder ? 1 : 0);
346
+ const ret = wasm.renderer_renderAnimation(this.__wbg_ptr, ptr0, len0, options);
370
347
  var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
371
348
  wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
372
349
  return v2;
@@ -416,6 +393,10 @@ function __wbg_get_imports() {
416
393
  const ret = Error(getStringFromWasm0(arg0, arg1));
417
394
  return ret;
418
395
  };
396
+ imports.wbg.__wbg_Number_998bea33bd87c3e0 = function(arg0) {
397
+ const ret = Number(arg0);
398
+ return ret;
399
+ };
419
400
  imports.wbg.__wbg_String_8f0eb39a4a4c2f66 = function(arg0, arg1) {
420
401
  const ret = String(arg1);
421
402
  const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
@@ -439,6 +420,17 @@ function __wbg_get_imports() {
439
420
  const ret = Object.entries(arg0);
440
421
  return ret;
441
422
  };
423
+ imports.wbg.__wbg_error_a49d63f573cdc73c = function(arg0, arg1) {
424
+ let deferred0_0;
425
+ let deferred0_1;
426
+ try {
427
+ deferred0_0 = arg0;
428
+ deferred0_1 = arg1;
429
+ console.error(getStringFromWasm0(arg0, arg1));
430
+ } finally {
431
+ wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
432
+ }
433
+ };
442
434
  imports.wbg.__wbg_get_0da715ceaecea5c8 = function(arg0, arg1) {
443
435
  const ret = arg0[arg1 >>> 0];
444
436
  return ret;
@@ -447,6 +439,10 @@ function __wbg_get_imports() {
447
439
  const ret = Reflect.get(arg0, arg1);
448
440
  return ret;
449
441
  }, arguments) };
442
+ imports.wbg.__wbg_getwithrefkey_1dc361bd10053bfe = function(arg0, arg1) {
443
+ const ret = arg0[arg1];
444
+ return ret;
445
+ };
450
446
  imports.wbg.__wbg_instanceof_ArrayBuffer_67f3012529f6a2dd = function(arg0) {
451
447
  let result;
452
448
  try {
@@ -551,6 +547,14 @@ function __wbg_get_imports() {
551
547
  const ret = typeof(val) === 'object' && val !== null;
552
548
  return ret;
553
549
  };
550
+ imports.wbg.__wbg_wbindgenisstring_d4fa939789f003b0 = function(arg0) {
551
+ const ret = typeof(arg0) === 'string';
552
+ return ret;
553
+ };
554
+ imports.wbg.__wbg_wbindgenisundefined_c4b71d073b92f3c5 = function(arg0) {
555
+ const ret = arg0 === undefined;
556
+ return ret;
557
+ };
554
558
  imports.wbg.__wbg_wbindgenjsvaleq_e6f2ad59ccae1b58 = function(arg0, arg1) {
555
559
  const ret = arg0 === arg1;
556
560
  return ret;
@@ -576,6 +580,11 @@ function __wbg_get_imports() {
576
580
  imports.wbg.__wbg_wbindgenthrow_451ec1a8469d7eb6 = function(arg0, arg1) {
577
581
  throw new Error(getStringFromWasm0(arg0, arg1));
578
582
  };
583
+ imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
584
+ // Cast intrinsic for `Ref(String) -> Externref`.
585
+ const ret = getStringFromWasm0(arg0, arg1);
586
+ return ret;
587
+ };
579
588
  imports.wbg.__wbindgen_cast_4625c577ab2ec9ee = function(arg0) {
580
589
  // Cast intrinsic for `U64 -> Externref`.
581
590
  const ret = BigInt.asUintN(64, arg0);
Binary file
@@ -1,22 +1,23 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
- export const __wbg_fontinfo_free: (a: number, b: number) => void;
5
4
  export const __wbg_animationframesource_free: (a: number, b: number) => void;
6
5
  export const animationframesource_new: (a: any, b: number) => number;
7
6
  export const __wbg_renderer_free: (a: number, b: number) => void;
8
7
  export const renderer_new: () => number;
9
- export const renderer_loadFontWithInfo: (a: number, b: number) => void;
10
- export const renderer_loadFont: (a: number, b: number, c: number) => void;
8
+ export const renderer_loadFont: (a: number, b: any) => void;
11
9
  export const renderer_putPersistentImage: (a: number, b: number, c: number, d: number, e: number) => void;
12
10
  export const renderer_clearImageStore: (a: number) => void;
13
- export const renderer_render: (a: number, b: any, c: number, d: number, e: number, f: number, g: number) => [number, number];
14
- export const renderer_renderAsDataUrl: (a: number, b: any, c: number, d: number, e: number, f: number, g: number) => [number, number];
15
- export const renderer_renderAnimation: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
11
+ export const renderer_render: (a: number, b: any, c: any) => [number, number];
12
+ export const renderer_renderAsDataUrl: (a: number, b: any, c: any) => [number, number];
13
+ export const renderer_renderAnimation: (a: number, b: number, c: number, d: any) => [number, number];
14
+ export const collectNodeFetchTasks: (a: any) => [number, number];
15
+ export const renderer_loadFontWithInfo: (a: number, b: any) => void;
16
16
  export const __wbindgen_malloc: (a: number, b: number) => number;
17
17
  export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
18
18
  export const __wbindgen_exn_store: (a: number) => void;
19
19
  export const __externref_table_alloc: () => number;
20
20
  export const __wbindgen_export_4: WebAssembly.Table;
21
21
  export const __wbindgen_free: (a: number, b: number, c: number) => void;
22
+ export const __externref_drop_slice: (a: number, b: number) => void;
22
23
  export const __wbindgen_start: () => void;