@openheart/tavio-renderer 2.3.2-with-wasm → 2.3.3-with-wasm

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.
@@ -37463,19 +37463,36 @@ function WorkerWrapper$1(options) {
37463
37463
  );
37464
37464
  }
37465
37465
  }
37466
+ let wasmPkgBaseUrlOverride = null;
37467
+ function setWasmPkgBaseUrl(url) {
37468
+ const u = url.trim();
37469
+ wasmPkgBaseUrlOverride = u.endsWith("/") ? u : `${u}/`;
37470
+ }
37471
+ function getWasmPkgBaseUrl() {
37472
+ if (wasmPkgBaseUrlOverride != null) {
37473
+ return wasmPkgBaseUrlOverride;
37474
+ }
37475
+ return new URL(
37476
+ /* @vite-ignore */
37477
+ "./wasm/pkg/",
37478
+ import.meta.url
37479
+ ).href;
37480
+ }
37466
37481
  const TavioWasm = /* @__PURE__ */ (() => {
37467
37482
  let instancePromise = null;
37468
37483
  return () => {
37469
37484
  if (instancePromise == null) {
37470
37485
  instancePromise = (async () => {
37471
- const isThreadSupported = false;
37472
- const instance = isThreadSupported ? (
37473
- // @ts-ignore
37474
- await import("./wasm/pkg/thread/tavio.js")
37475
- ) : (
37476
- // @ts-ignore
37477
- await import("./wasm/pkg/no-thread/tavio.js")
37478
- );
37486
+ let instance;
37487
+ {
37488
+ const raw = getWasmPkgBaseUrl();
37489
+ const base = raw.endsWith("/") ? raw : `${raw}/`;
37490
+ const href = new URL("no-thread/tavio.js", base).href;
37491
+ instance = await import(
37492
+ /* @vite-ignore */
37493
+ href
37494
+ );
37495
+ }
37479
37496
  console.info("[TavioMesh] Initializing WASM...");
37480
37497
  try {
37481
37498
  await instance.default();
@@ -37503,7 +37520,7 @@ const TavioWasm = /* @__PURE__ */ (() => {
37503
37520
  })();
37504
37521
  function WorkerWrapper(options) {
37505
37522
  return new Worker(
37506
- "" + new URL("wasm-worker-CEuC2YyS.js", import.meta.url).href,
37523
+ "" + new URL("wasm-worker-_2ktlwfC.js", import.meta.url).href,
37507
37524
  {
37508
37525
  type: "module",
37509
37526
  name: options?.name
@@ -37521,7 +37538,10 @@ class TavioWasmWorkerClient {
37521
37538
  this.worker.onmessage = this.handleMessage;
37522
37539
  this.worker.postMessage({
37523
37540
  kind: "init",
37524
- options
37541
+ options: {
37542
+ ...options,
37543
+ wasmPkgBaseUrl: options?.wasmPkgBaseUrl ?? getWasmPkgBaseUrl()
37544
+ }
37525
37545
  });
37526
37546
  this.readyPromise = new Promise((resolve) => {
37527
37547
  this.readyResolve = resolve;
@@ -45204,5 +45224,7 @@ export {
45204
45224
  Core,
45205
45225
  TavioError,
45206
45226
  TavioErrorCode,
45207
- Core as default
45227
+ Core as default,
45228
+ getWasmPkgBaseUrl,
45229
+ setWasmPkgBaseUrl
45208
45230
  };
@@ -2,4 +2,5 @@ import { Core, TavioError, TavioErrorCode } from './viewer/canvas';
2
2
  import { iAnimationConfig } from './animation/animationController';
3
3
  export { Core, TavioError, TavioErrorCode };
4
4
  export type { iAnimationConfig };
5
+ export { getWasmPkgBaseUrl, setWasmPkgBaseUrl } from './wasm-bindings/wasm-pkg-base-url';
5
6
  export default Core;
@@ -1,6 +1,2 @@
1
- /**
2
- * wasm/pkg のベース URL(末尾スラッシュ付き)。
3
- * - ライブラリ本番ビルド(build/esm/index.js): index と同階層の ./wasm/pkg/
4
- * - Vite 開発サーバ: ソースは src/wasm-bindings 配下のためリポジトリルートの ../../wasm/pkg/
5
- */
1
+ export declare function setWasmPkgBaseUrl(url: string): void;
6
2
  export declare function getWasmPkgBaseUrl(): string;
@@ -13,6 +13,8 @@ export type WasmWorkerInitRequest = {
13
13
  options?: {
14
14
  useSharedArrayBuffer?: boolean;
15
15
  threadCount?: number;
16
+ /** メインスレッドの {@link getWasmPkgBaseUrl} を渡す(バンドラで Worker の import.meta.url が壊れる場合に必須) */
17
+ wasmPkgBaseUrl?: string;
16
18
  };
17
19
  };
18
20
  export type WasmWorkerRegisterEventHandlerRequest = {
@@ -42,16 +42,13 @@ self.onmessage = async (e) => {
42
42
  break;
43
43
  }
44
44
  };
45
- async function importWasmBindings(useSharedArrayBuffer) {
46
- const href = useSharedArrayBuffer ? new URL(
45
+ async function importWasmBindings(useSharedArrayBuffer, wasmPkgBaseUrl) {
46
+ const base = wasmPkgBaseUrl != null && wasmPkgBaseUrl !== "" ? wasmPkgBaseUrl.endsWith("/") ? wasmPkgBaseUrl : `${wasmPkgBaseUrl}/` : new URL(
47
47
  /* @vite-ignore */
48
- "./wasm/pkg/thread/tavio.js",
49
- import.meta.url
50
- ).href : new URL(
51
- /* @vite-ignore */
52
- "./wasm/pkg/no-thread/tavio.js",
48
+ "./wasm/pkg/",
53
49
  import.meta.url
54
50
  ).href;
51
+ const href = useSharedArrayBuffer ? new URL("thread/tavio.js", base).href : new URL("no-thread/tavio.js", base).href;
55
52
  return await import(
56
53
  /* @vite-ignore */
57
54
  href
@@ -64,7 +61,10 @@ async function init(options) {
64
61
  navigator.hardwareConcurrency
65
62
  );
66
63
  const isParallel = useSharedArrayBuffer && threadCount > 1;
67
- wasm = await importWasmBindings(useSharedArrayBuffer);
64
+ wasm = await importWasmBindings(
65
+ useSharedArrayBuffer,
66
+ options?.wasmPkgBaseUrl
67
+ );
68
68
  try {
69
69
  await wasm.default();
70
70
  console.info(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openheart/tavio-renderer",
3
- "version": "2.3.2-with-wasm",
3
+ "version": "2.3.3-with-wasm",
4
4
  "author": "OpenHeart Inc.",
5
5
  "license": "UNLICENSED",
6
6
  "description": "Rendering Engine for Tavio Format 3D data",