@jieyin/editor-sdk 1.1.194 → 1.1.286

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.
@@ -1,29 +1,7 @@
1
- function re() {
2
- try {
3
- const o = typeof self < "u" && typeof self.location < "u" ? self.location.href : typeof window < "u" ? window.location.href : "";
4
- if (!o) return "";
5
- const r = new URL(o).pathname;
6
- for (const e of ["/sdk-workers/", "/assets/"]) {
7
- const t = r.indexOf(e);
8
- if (t >= 0) return r.slice(0, t);
9
- }
10
- } catch {
11
- }
12
- return "";
13
- }
14
- function te() {
15
- return re();
16
- }
17
- function V(o) {
18
- const r = o.replace(/^\//, ""), e = te();
19
- return e ? `${e}/${r}` : `/${r}`;
20
- }
21
- class _ {
22
- static instance;
23
- wasmReady = !1;
24
- go = null;
25
- wasmModule = null;
1
+ var te = Object.defineProperty, re = (s, t, e) => t in s ? te(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e, z = (s, t, e) => re(s, typeof t != "symbol" ? t + "" : t, e);
2
+ const Z = class P {
26
3
  constructor() {
4
+ z(this, "wasmReady", !1), z(this, "go", null), z(this, "wasmModule", null);
27
5
  }
28
6
  isDebugEnabled() {
29
7
  try {
@@ -32,137 +10,135 @@ class _ {
32
10
  }
33
11
  return !1;
34
12
  }
35
- debugLog(...r) {
36
- this.isDebugEnabled() && console.log(...r);
13
+ debugLog(...t) {
14
+ this.isDebugEnabled();
37
15
  }
38
- debugWarn(...r) {
39
- this.isDebugEnabled() && console.warn(...r);
16
+ debugWarn(...t) {
17
+ this.isDebugEnabled();
40
18
  }
41
19
  static getInstance() {
42
- return _.instance || (_.instance = new _()), _.instance;
20
+ return P.instance || (P.instance = new P()), P.instance;
43
21
  }
44
22
  /**
45
23
  * 在 Worker 环境中加载 WASM 模块
46
24
  * @param wasmUrl WASM 文件路径
47
25
  * @param wasmExecUrl wasm_exec.js 路径
48
26
  */
49
- async load(r, e) {
27
+ async load(t, e) {
50
28
  if (this.wasmReady) {
51
29
  this.debugLog("✅ WASM 已加载,跳过重复加载");
52
30
  return;
53
31
  }
54
32
  try {
55
33
  this.debugLog("🚀 Worker: 加载透视变换 WASM...");
56
- const t = (c) => {
57
- if (e && c === "wasm_exec.js")
34
+ const r = (i) => {
35
+ if (e && i === "wasm_exec.js")
58
36
  return e;
59
- if (r && c === "perspective.wasm")
60
- return r;
37
+ if (t && i === "perspective.wasm")
38
+ return t;
61
39
  try {
62
- let f = null;
63
- if (typeof import.meta < "u" && import.meta.url ? f = import.meta.url : typeof self < "u" && self.location && (f = self.location.href), f) {
64
- const u = new URL(f), w = u.pathname;
65
- if (w.includes("/js/")) {
66
- const m = "../assets/" + c, y = new URL(m, u);
67
- return this.debugLog(`🔍 [WASM] 计算路径: ${c} -> ${y.pathname} (Worker: ${w})`), y.pathname;
68
- } else if (w.includes("/assets/")) {
69
- const m = "./" + c, y = new URL(m, u);
70
- return this.debugLog(`🔍 [WASM] 计算路径: ${c} -> ${y.pathname} (Worker: ${w})`), y.pathname;
71
- } else {
72
- const m = V(`assets/${c}`);
73
- return this.debugLog(`🔍 [WASM] 使用 SDK 资源路径: ${m}`), m;
74
- }
40
+ let h = null;
41
+ if (typeof import.meta < "u" && import.meta.url ? h = import.meta.url : typeof self < "u" && self.location && (h = self.location.href), h) {
42
+ const f = new URL(h), d = f.pathname;
43
+ if (d.includes("/js/")) {
44
+ const y = "../assets/" + i, m = new URL(y, f);
45
+ return this.debugLog(`🔍 [WASM] 计算路径: ${i} -> ${m.pathname} (Worker: ${d})`), m.pathname;
46
+ } else if (d.includes("/assets/")) {
47
+ const y = "./" + i, m = new URL(y, f);
48
+ return this.debugLog(`🔍 [WASM] 计算路径: ${i} -> ${m.pathname} (Worker: ${d})`), m.pathname;
49
+ } else
50
+ return this.debugLog(`🔍 [WASM] 使用默认绝对路径: /assets/${i}`), "/assets/" + i;
75
51
  }
76
- } catch (f) {
77
- this.debugWarn("⚠️ 无法计算 WASM 相对路径,使用默认路径:", f);
52
+ } catch (h) {
53
+ this.debugWarn("⚠️ 无法计算 WASM 相对路径,使用默认路径:", h);
78
54
  }
79
- return V(`assets/${c}`);
80
- }, n = e || t("wasm_exec.js"), s = r || t("perspective.wasm");
81
- this.debugLog("🔍 [WASM] 最终使用的路径:", { execUrl: n, moduleUrl: s }), await this.loadWasmExec(n);
82
- const i = typeof self < "u" ? self : globalThis;
83
- this.go = new i.Go();
84
- const a = await fetch(s);
85
- if (!a.ok)
86
- throw new Error(`无法加载 WASM 文件: ${a.status}`);
87
- const d = await a.arrayBuffer(), l = await WebAssembly.instantiate(d, this.go.importObject);
88
- this.wasmModule = l.instance, this.go.run(this.wasmModule), this.wasmReady = !0;
89
- const h = this.call("wasmInit");
90
- if (h && h.success)
91
- this.debugLog("✅ Worker WASM 加载成功:", h);
55
+ return "/assets/" + i;
56
+ }, n = e || r("wasm_exec.js"), u = t || r("perspective.wasm");
57
+ this.debugLog("🔍 [WASM] 最终使用的路径:", { execUrl: n, moduleUrl: u }), await this.loadWasmExec(n);
58
+ const o = typeof self < "u" ? self : globalThis;
59
+ this.go = new o.Go();
60
+ const c = await fetch(u);
61
+ if (!c.ok)
62
+ throw new Error(`无法加载 WASM 文件: ${c.status}`);
63
+ const w = await c.arrayBuffer(), a = await WebAssembly.instantiate(w, this.go.importObject);
64
+ this.wasmModule = a.instance, this.go.run(this.wasmModule), this.wasmReady = !0;
65
+ const l = this.call("wasmInit");
66
+ if (l && l.success)
67
+ this.debugLog("✅ Worker WASM 加载成功:", l);
92
68
  else
93
69
  throw new Error("WASM 初始化失败");
94
- } catch (t) {
95
- throw console.error("❌ Worker WASM 加载失败:", t), this.wasmReady = !1, t;
70
+ } catch (r) {
71
+ throw this.wasmReady = !1, r;
96
72
  }
97
73
  }
98
74
  /**
99
75
  * 在 Worker 中加载 wasm_exec.js
100
76
  * Module Worker 不支持 importScripts(),仅 Classic Worker 可尝试 importScripts,否则用 fetch + eval
101
77
  */
102
- async loadWasmExec(r) {
103
- return new Promise((e, t) => {
78
+ async loadWasmExec(t) {
79
+ return new Promise((e, r) => {
104
80
  if (!(typeof import.meta < "u" && import.meta.url) && typeof self.importScripts == "function")
105
81
  try {
106
- self.importScripts(r), e();
82
+ self.importScripts(t), e();
107
83
  return;
108
- } catch (s) {
109
- this.debugWarn("⚠️ importScripts 失败,使用 fetch:", s);
84
+ } catch (u) {
85
+ this.debugWarn("⚠️ importScripts 失败,使用 fetch:", u);
110
86
  }
111
- fetch(r).then((s) => {
112
- if (!s.ok)
113
- throw new Error(`HTTP ${s.status}: ${s.statusText} - URL: ${r}`);
114
- const i = s.headers.get("content-type") || "";
115
- return !i.includes("javascript") && !i.includes("text/plain") && this.debugWarn("⚠️ [WASM] 响应 Content-Type 不是 JavaScript:", i), s.text();
116
- }).then((s) => {
117
- if (s.trim().startsWith("<!DOCTYPE") || s.trim().startsWith("<html"))
118
- throw console.error("❌ [WASM] 返回的是 HTML 而不是 JavaScript,可能是 404 错误"), console.error("❌ [WASM] URL:", r), console.error("❌ [WASM] 响应前100字符:", s.substring(0, 100)), new Error(`返回的是 HTML 而不是 JavaScript,可能是 404 错误。URL: ${r}`);
87
+ fetch(t).then((u) => {
88
+ if (!u.ok)
89
+ throw new Error(`HTTP ${u.status}: ${u.statusText} - URL: ${t}`);
90
+ const o = u.headers.get("content-type") || "";
91
+ return !o.includes("javascript") && !o.includes("text/plain") && this.debugWarn("⚠️ [WASM] 响应 Content-Type 不是 JavaScript:", o), u.text();
92
+ }).then((u) => {
93
+ if (u.trim().startsWith("<!DOCTYPE") || u.trim().startsWith("<html"))
94
+ throw new Error(`返回的是 HTML 而不是 JavaScript,可能是 404 错误。URL: ${t}`);
119
95
  try {
120
- const i = typeof self < "u" ? self : globalThis;
121
- new Function("self", s)(i), e();
122
- } catch (i) {
123
- t(new Error(`执行 wasm_exec.js 失败: ${i}`));
96
+ const o = typeof self < "u" ? self : globalThis;
97
+ new Function("self", u)(o), e();
98
+ } catch (o) {
99
+ r(new Error(`执行 wasm_exec.js 失败: ${o}`));
124
100
  }
125
- }).catch((s) => {
126
- console.error("❌ [WASM] 加载 wasm_exec.js 失败:", { url: r, error: s.message }), t(s);
101
+ }).catch((u) => {
102
+ r(u);
127
103
  });
128
104
  });
129
105
  }
130
106
  /**
131
107
  * 验证授权(通过 API)
132
108
  */
133
- async verifyLicense(r, e) {
109
+ async verifyLicense(t, e) {
134
110
  if (!this.wasmReady)
135
111
  return !1;
136
112
  if (e)
137
113
  try {
138
- const t = this.getDeviceID(), n = this.getDomain(), i = await (await fetch(`${e}/jet_license/interface/license/verify`, {
114
+ const r = this.getDeviceID(), n = this.getDomain(), o = await (await fetch(`${e}/jet_license/interface/license/verify`, {
139
115
  method: "POST",
140
116
  headers: {
141
117
  "Content-Type": "application/json"
142
118
  },
143
119
  body: JSON.stringify({
144
- token: r,
145
- deviceId: t,
120
+ token: t,
121
+ deviceId: r,
146
122
  domain: n
147
123
  })
148
124
  })).json();
149
- if (!i.success || !i.valid) {
150
- const d = i.error || "License 验证失败";
151
- throw new Error(d);
125
+ if (!o.success || !o.valid) {
126
+ const w = o.error || "License 验证失败";
127
+ throw new Error(w);
152
128
  }
153
- const a = this.call("wasmVerifyLicense", r);
154
- if (!a.success || a.valid !== !0)
129
+ const c = this.call("wasmVerifyLicense", t);
130
+ if (!c.success || c.valid !== !0)
155
131
  throw new Error("WASM 验证失败");
156
132
  return !0;
157
- } catch (t) {
158
- throw console.error("License API 验证失败:", t), t;
133
+ } catch (r) {
134
+ throw r;
159
135
  }
160
136
  else
161
137
  try {
162
- const t = this.call("wasmVerifyLicense", r);
163
- return t.success && t.valid === !0;
164
- } catch (t) {
165
- return console.error("License 验证失败:", t), !1;
138
+ const r = this.call("wasmVerifyLicense", t);
139
+ return r.success && r.valid === !0;
140
+ } catch {
141
+ return !1;
166
142
  }
167
143
  }
168
144
  /**
@@ -180,83 +156,83 @@ class _ {
180
156
  /**
181
157
  * 计算透视变换矩阵
182
158
  */
183
- calcPerspectiveMatrix(r) {
159
+ calcPerspectiveMatrix(t) {
184
160
  if (!this.wasmReady)
185
161
  throw new Error("WASM 未加载");
186
- if (r.length !== 4)
162
+ if (t.length !== 4)
187
163
  throw new Error("需要恰好 4 个点");
188
164
  try {
189
- const e = this.call("wasmCalcPerspectiveMatrix", JSON.stringify(r));
165
+ const e = this.call("wasmCalcPerspectiveMatrix", JSON.stringify(t));
190
166
  if (!e.success)
191
167
  throw new Error(e.error || "计算失败");
192
168
  return e.matrix;
193
169
  } catch (e) {
194
- throw console.error("计算透视矩阵失败:", e), e;
170
+ throw e;
195
171
  }
196
172
  }
197
173
  /**
198
174
  * 矩阵求逆
199
175
  */
200
- invertMatrix(r) {
176
+ invertMatrix(t) {
201
177
  if (!this.wasmReady)
202
178
  throw new Error("WASM 未加载");
203
179
  try {
204
- const e = this.call("wasmInvertMatrix", JSON.stringify(r));
180
+ const e = this.call("wasmInvertMatrix", JSON.stringify(t));
205
181
  if (!e.success)
206
182
  throw new Error(e.error || "矩阵求逆失败");
207
183
  return e.matrix;
208
184
  } catch (e) {
209
- throw console.error("矩阵求逆失败:", e), e;
185
+ throw e;
210
186
  }
211
187
  }
212
188
  /**
213
189
  * 应用透视变换到单个点
214
190
  */
215
- applyPerspective(r, e, t) {
191
+ applyPerspective(t, e, r) {
216
192
  if (!this.wasmReady)
217
193
  throw new Error("WASM 未加载");
218
194
  try {
219
- const n = this.call("wasmApplyPerspective", r, e, JSON.stringify(t));
195
+ const n = this.call("wasmApplyPerspective", t, e, JSON.stringify(r));
220
196
  if (!n.success)
221
197
  throw new Error(n.error || "变换失败");
222
198
  return { x: n.x, y: n.y };
223
199
  } catch (n) {
224
- throw console.error("应用透视变换失败:", n), n;
200
+ throw n;
225
201
  }
226
202
  }
227
203
  /**
228
204
  * 应用逆透视变换到单个点
229
205
  */
230
- applyInversePerspective(r, e, t) {
206
+ applyInversePerspective(t, e, r) {
231
207
  if (!this.wasmReady)
232
208
  throw new Error("WASM 未加载");
233
209
  try {
234
- const n = this.call("wasmApplyInversePerspective", r, e, JSON.stringify(t));
210
+ const n = this.call("wasmApplyInversePerspective", t, e, JSON.stringify(r));
235
211
  if (!n.success)
236
212
  throw new Error(n.error || "逆变换失败");
237
213
  return { x: n.x, y: n.y };
238
214
  } catch (n) {
239
- throw console.error("应用逆透视变换失败:", n), n;
215
+ throw n;
240
216
  }
241
217
  }
242
218
  /**
243
219
  * 批量变换点(高性能)
244
220
  */
245
- transformPoints(r, e, t = !1) {
221
+ transformPoints(t, e, r = !1) {
246
222
  if (!this.wasmReady)
247
223
  throw new Error("WASM 未加载");
248
224
  try {
249
225
  const n = this.call(
250
226
  "wasmTransformPoints",
251
- JSON.stringify(r),
227
+ JSON.stringify(t),
252
228
  JSON.stringify(e),
253
- t
229
+ r
254
230
  );
255
231
  if (!n.success)
256
232
  throw new Error(n.error || "批量变换失败");
257
233
  return JSON.parse(n.points);
258
234
  } catch (n) {
259
- throw console.error("批量变换失败:", n), n;
235
+ throw n;
260
236
  }
261
237
  }
262
238
  /**
@@ -268,414 +244,407 @@ class _ {
268
244
  /**
269
245
  * 双三次插值点计算
270
246
  */
271
- getBicubicPoint(r, e, t) {
247
+ getBicubicPoint(t, e, r) {
272
248
  if (!this.wasmReady)
273
249
  throw new Error("WASM 未加载");
274
- if (t.length !== 16)
250
+ if (r.length !== 16)
275
251
  throw new Error("需要恰好 16 个点");
276
252
  try {
277
- const n = this.call("wasmGetBicubicPoint", r, e, JSON.stringify(t));
253
+ const n = this.call("wasmGetBicubicPoint", t, e, JSON.stringify(r));
278
254
  if (!n.success)
279
255
  throw new Error(n.error || "计算失败");
280
256
  return { x: n.x, y: n.y };
281
257
  } catch (n) {
282
- throw console.error("双三次插值计算失败:", n), n;
258
+ throw n;
283
259
  }
284
260
  }
285
261
  /**
286
262
  * 双线性插值点计算
287
263
  */
288
- getBilinearPoint(r, e, t) {
264
+ getBilinearPoint(t, e, r) {
289
265
  if (!this.wasmReady)
290
266
  throw new Error("WASM 未加载");
291
- if (t.length !== 4)
267
+ if (r.length !== 4)
292
268
  throw new Error("需要恰好 4 个点");
293
269
  try {
294
- const n = this.call("wasmGetBilinearPoint", r, e, JSON.stringify(t));
270
+ const n = this.call("wasmGetBilinearPoint", t, e, JSON.stringify(r));
295
271
  if (!n.success)
296
272
  throw new Error(n.error || "计算失败");
297
273
  return { x: n.x, y: n.y };
298
274
  } catch (n) {
299
- throw console.error("双线性插值计算失败:", n), n;
275
+ throw n;
300
276
  }
301
277
  }
302
278
  /**
303
279
  * 任意网格点插值计算
304
280
  */
305
- getArbitraryMeshPoint(r, e, t, n) {
281
+ getArbitraryMeshPoint(t, e, r, n) {
306
282
  if (!this.wasmReady)
307
283
  throw new Error("WASM 未加载");
308
284
  try {
309
- const s = this.call("wasmGetArbitraryMeshPoint", r, e, JSON.stringify(t), n);
310
- if (!s.success)
311
- throw new Error(s.error || "计算失败");
312
- return { x: s.x, y: s.y };
313
- } catch (s) {
314
- throw console.error("任意网格点插值计算失败:", s), s;
285
+ const u = this.call("wasmGetArbitraryMeshPoint", t, e, JSON.stringify(r), n);
286
+ if (!u.success)
287
+ throw new Error(u.error || "计算失败");
288
+ return { x: u.x, y: u.y };
289
+ } catch (u) {
290
+ throw u;
315
291
  }
316
292
  }
317
293
  /**
318
294
  * 批量双三次插值(高性能优化)
319
295
  * 一次性处理多个坐标,避免频繁的 JS/WASM 边界调用
320
296
  */
321
- batchBicubicInterpolation(r, e) {
297
+ batchBicubicInterpolation(t, e) {
322
298
  if (!this.wasmReady)
323
299
  throw new Error("WASM 未加载");
324
300
  if (e.length !== 16)
325
301
  throw new Error("需要恰好 16 个控制点");
326
302
  try {
327
- const t = this.call(
303
+ const r = this.call(
328
304
  "wasmBatchBicubicInterpolation",
329
- JSON.stringify(r),
305
+ JSON.stringify(t),
330
306
  JSON.stringify(e)
331
307
  );
332
- if (!t.success)
333
- throw new Error(t.error || "批量双三次插值失败");
334
- return t.points;
335
- } catch (t) {
336
- throw console.error("批量双三次插值失败:", t), t;
308
+ if (!r.success)
309
+ throw new Error(r.error || "批量双三次插值失败");
310
+ return r.points;
311
+ } catch (r) {
312
+ throw r;
337
313
  }
338
314
  }
339
315
  /**
340
316
  * 批量双线性插值(高性能优化)
341
317
  */
342
- batchBilinearInterpolation(r, e) {
318
+ batchBilinearInterpolation(t, e) {
343
319
  if (!this.wasmReady)
344
320
  throw new Error("WASM 未加载");
345
321
  if (e.length !== 4)
346
322
  throw new Error("需要恰好 4 个控制点");
347
323
  try {
348
- const t = this.call(
324
+ const r = this.call(
349
325
  "wasmBatchBilinearInterpolation",
350
- JSON.stringify(r),
326
+ JSON.stringify(t),
351
327
  JSON.stringify(e)
352
328
  );
353
- if (!t.success)
354
- throw new Error(t.error || "批量双线性插值失败");
355
- return t.points;
356
- } catch (t) {
357
- throw console.error("批量双线性插值失败:", t), t;
329
+ if (!r.success)
330
+ throw new Error(r.error || "批量双线性插值失败");
331
+ return r.points;
332
+ } catch (r) {
333
+ throw r;
358
334
  }
359
335
  }
360
336
  /**
361
337
  * 批量任意网格插值(高性能优化)
362
338
  */
363
- batchArbitraryMeshInterpolation(r, e, t) {
339
+ batchArbitraryMeshInterpolation(t, e, r) {
364
340
  if (!this.wasmReady)
365
341
  throw new Error("WASM 未加载");
366
342
  try {
367
343
  const n = this.call(
368
344
  "wasmBatchArbitraryMeshInterpolation",
369
- JSON.stringify(r),
345
+ JSON.stringify(t),
370
346
  JSON.stringify(e),
371
- t
347
+ r
372
348
  );
373
349
  if (!n.success)
374
350
  throw new Error(n.error || "批量网格插值失败");
375
351
  return n.points;
376
352
  } catch (n) {
377
- throw console.error("批量网格插值失败:", n), n;
353
+ throw n;
378
354
  }
379
355
  }
380
356
  /**
381
357
  * 调用 WASM 函数
382
358
  */
383
- call(r, ...e) {
359
+ call(t, ...e) {
384
360
  if (!this.wasmReady)
385
361
  throw new Error("WASM 未加载");
386
- const n = (typeof self < "u" ? self : globalThis)[r];
362
+ const n = (typeof self < "u" ? self : globalThis)[t];
387
363
  if (!n)
388
- throw new Error(`函数不存在: ${r}`);
364
+ throw new Error(`函数不存在: ${t}`);
389
365
  try {
390
366
  return n(...e);
391
- } catch (s) {
392
- throw console.error(`调用 ${r} 失败:`, s), s;
367
+ } catch (u) {
368
+ throw u;
393
369
  }
394
370
  }
395
- }
396
- let X = !1;
397
- const A = (...o) => {
398
- X && console.log(...o);
399
- }, D = (...o) => {
400
- X && console.warn(...o);
401
371
  };
402
- let g = null, P = !1, b = null, R = null, U = null, C = null, j = null;
403
- function ne(o) {
404
- R = o.licenseToken, U = o.licenseApiUrl, C = o.deviceId, j = o.domain, self.LICENSE_TOKEN = R, self.LICENSE_API_URL = U, self.DEVICE_ID = C, self.DOMAIN = j, A("✅ [deform.worker] License 信息已接收"), g || (b && !P && (b = null), A("🔄 [deform.worker] 开始初始化 WASM..."), K().then(() => {
405
- A("✅ [deform.worker] WASM 初始化完成");
406
- }).catch((r) => {
407
- D("⚠️ [deform.worker] WASM 初始化失败:", r);
372
+ z(Z, "instance");
373
+ let ne = Z, H = !1;
374
+ const L = (...s) => {
375
+ }, se = (...s) => {
376
+ };
377
+ let E = null, R = !1, M = null, b = null, O = null, $ = null, U = null;
378
+ function ue(s) {
379
+ b = s.licenseToken, O = s.licenseApiUrl, $ = s.deviceId, U = s.domain, self.LICENSE_TOKEN = b, self.LICENSE_API_URL = O, self.DEVICE_ID = $, self.DOMAIN = U, E || (M && !R && (M = null), G().then(() => {
380
+ }).catch((t) => {
408
381
  }));
409
382
  }
410
- async function K() {
411
- return g ? void 0 : P ? b || Promise.resolve() : R || self.LICENSE_TOKEN ? (P = !0, b = (async () => {
383
+ async function G() {
384
+ return E ? void 0 : R ? M || Promise.resolve() : b || self.LICENSE_TOKEN ? (R = !0, M = (async () => {
412
385
  try {
413
- g = _.getInstance();
414
- const r = (l) => {
415
- const h = self.WASM_URL, c = self.WASM_EXEC_URL;
416
- if (l === "perspective.wasm" && h)
417
- return h;
418
- if (l === "wasm_exec.js" && c)
419
- return c;
386
+ E = ne.getInstance();
387
+ const t = (a) => {
388
+ const l = self.WASM_URL, i = self.WASM_EXEC_URL;
389
+ if (a === "perspective.wasm" && l)
390
+ return l;
391
+ if (a === "wasm_exec.js" && i)
392
+ return i;
420
393
  try {
421
- let f = null;
422
- if (typeof import.meta < "u" && import.meta.url ? f = import.meta.url : typeof self < "u" && self.location && (f = self.location.href), f) {
423
- const u = new URL(f), w = u.pathname;
424
- if (w.includes("/js/")) {
425
- const m = "../assets/" + l, y = new URL(m, u);
426
- return A(`🔍 [deform.worker] 计算路径: ${l} -> ${y.pathname} (Worker: ${w})`), y.pathname;
427
- } else if (w.includes("/assets/")) {
428
- const m = "./" + l, y = new URL(m, u);
429
- return A(`🔍 [deform.worker] 计算路径: ${l} -> ${y.pathname} (Worker: ${w})`), y.pathname;
430
- } else {
431
- const m = V(`assets/${l}`);
432
- return A(`🔍 [deform.worker] 使用 SDK 资源路径: ${m}`), m;
433
- }
394
+ let h = null;
395
+ if (typeof import.meta < "u" && import.meta.url ? h = import.meta.url : typeof self < "u" && self.location && (h = self.location.href), h) {
396
+ const f = new URL(h), d = f.pathname;
397
+ if (d.includes("/js/")) {
398
+ const y = "../assets/" + a, m = new URL(y, f);
399
+ return L(`🔍 [deform.worker] 计算路径: ${a} -> ${m.pathname} (Worker: ${d})`), m.pathname;
400
+ } else if (d.includes("/assets/")) {
401
+ const y = "./" + a, m = new URL(y, f);
402
+ return L(`🔍 [deform.worker] 计算路径: ${a} -> ${m.pathname} (Worker: ${d})`), m.pathname;
403
+ } else
404
+ return L(`🔍 [deform.worker] 使用默认绝对路径: /assets/${a}`), "/assets/" + a;
434
405
  }
435
- } catch (f) {
436
- D("⚠️ [deform.worker] 无法计算 WASM 相对路径,使用默认路径:", f);
406
+ } catch (h) {
407
+ se("⚠️ [deform.worker] 无法计算 WASM 相对路径,使用默认路径:", h);
437
408
  }
438
- return V(`assets/${l}`);
439
- }, e = self.WASM_URL || r("perspective.wasm"), t = self.WASM_EXEC_URL || r("wasm_exec.js");
440
- A("🔍 [deform.worker] 最终使用的 WASM 路径:", { wasmUrl: e, wasmExecUrl: t }), await g.load(e, t);
441
- const n = R || self.LICENSE_TOKEN, s = U || self.LICENSE_API_URL, i = C || self.DEVICE_ID, a = j || self.DOMAIN;
409
+ return "/assets/" + a;
410
+ }, e = self.WASM_URL || t("perspective.wasm"), r = self.WASM_EXEC_URL || t("wasm_exec.js");
411
+ L("🔍 [deform.worker] 最终使用的 WASM 路径:", { wasmUrl: e, wasmExecUrl: r }), await E.load(e, r);
412
+ const n = b || self.LICENSE_TOKEN, u = O || self.LICENSE_API_URL, o = $ || self.DEVICE_ID, c = U || self.DOMAIN;
442
413
  if (!n)
443
414
  throw new Error("LICENSE_TOKEN 未设置,无法使用 WASM 功能");
444
- if (!await g.verifyLicense(n, s))
415
+ if (!await E.verifyLicense(n, u))
445
416
  throw new Error("WASM License 验证失败,无法使用 WASM 功能");
446
- console.log("✅ Worker WASM 模块加载并验证成功");
447
- } catch (r) {
448
- throw console.error("❌ WASM 加载或验证失败:", r), g = null, b = null, r;
417
+ } catch (t) {
418
+ throw E = null, M = null, t;
449
419
  } finally {
450
- P = !1;
420
+ R = !1;
451
421
  }
452
- })(), b) : (A("⏳ [deform.worker] 等待 License Token..."), Promise.resolve());
422
+ })(), M) : Promise.resolve();
453
423
  }
454
- function q(o) {
455
- return "naturalWidth" in o && o.naturalWidth ? { width: o.naturalWidth, height: o.naturalHeight } : "width" in o ? { width: o.width, height: o.height } : { width: 0, height: 0 };
424
+ function Y(s) {
425
+ return "naturalWidth" in s && s.naturalWidth ? { width: s.naturalWidth, height: s.naturalHeight } : "width" in s ? { width: s.width, height: s.height } : { width: 0, height: 0 };
456
426
  }
457
- function oe(o, r) {
458
- if (!o || !o.bounds)
427
+ function oe(s, t) {
428
+ if (!s || !s.bounds)
459
429
  throw new Error("Invalid layer data: missing bounds");
460
- const e = o.bounds;
461
- if (r && r.width > 0 && r.height > 0)
462
- return { ...o };
463
- const t = o.size || o.placedLayer || {
430
+ const e = s.bounds;
431
+ if (t && t.width > 0 && t.height > 0)
432
+ return { ...s };
433
+ const r = s.size || s.placedLayer || {
464
434
  width: e.width,
465
435
  height: e.height
466
- }, n = t.width / e.width, s = t.height / e.height, i = { ...o };
467
- return o.transform && o.transform.length === 8 && (i.transform = [
468
- (o.transform[0] - e.left) * n,
469
- (o.transform[1] - e.top) * s,
470
- (o.transform[2] - e.left) * n,
471
- (o.transform[3] - e.top) * s,
472
- (o.transform[4] - e.left) * n,
473
- (o.transform[5] - e.top) * s,
474
- (o.transform[6] - e.left) * n,
475
- (o.transform[7] - e.top) * s
476
- ]), i;
436
+ }, n = r.width / e.width, u = r.height / e.height, o = { ...s };
437
+ return s.transform && s.transform.length === 8 && (o.transform = [
438
+ (s.transform[0] - e.left) * n,
439
+ (s.transform[1] - e.top) * u,
440
+ (s.transform[2] - e.left) * n,
441
+ (s.transform[3] - e.top) * u,
442
+ (s.transform[4] - e.left) * n,
443
+ (s.transform[5] - e.top) * u,
444
+ (s.transform[6] - e.left) * n,
445
+ (s.transform[7] - e.top) * u
446
+ ]), o;
477
447
  }
478
- function se(o) {
479
- return o.error, o;
448
+ function ie(s) {
449
+ return s.error, s;
480
450
  }
481
- function ie(o, r, e) {
482
- if (!o || !r || !e)
451
+ function ce(s, t, e) {
452
+ if (!s || !t || !e)
483
453
  return "Invalid Parameters";
484
- const t = "naturalWidth" in r ? r.naturalWidth : "width" in r ? r.width : 0, n = "naturalHeight" in r ? r.naturalHeight : "height" in r ? r.height : 0;
485
- if (!t || !n)
454
+ const r = "naturalWidth" in t ? t.naturalWidth : "width" in t ? t.width : 0, n = "naturalHeight" in t ? t.naturalHeight : "height" in t ? t.height : 0;
455
+ if (!r || !n)
486
456
  return "Image Not Loaded";
487
- o.imageSmoothingEnabled = !0, o.imageSmoothingQuality = "high";
488
- let s = null, i = null, a = null, d = null, l = 0, h = 0, c = null, f = "Unknown";
489
- if (e.size && e.size.width ? (l = e.size.width, h = e.size.height) : e.placedLayer && e.placedLayer.width ? (l = e.placedLayer.width, h = e.placedLayer.height) : e.originalWidth && (l = e.originalWidth, h = e.originalHeight), e.meshPoints && e.meshPoints.length > 0 && (s = e.meshPoints), e.transform && e.transform.length === 8) {
490
- const u = e.transform;
491
- i = [
492
- { x: u[0], y: u[1] },
493
- { x: u[2], y: u[3] },
494
- { x: u[4], y: u[5] },
495
- { x: u[6], y: u[7] }
457
+ s.imageSmoothingEnabled = !0, s.imageSmoothingQuality = "high";
458
+ let u = null, o = null, c = null, w = null, a = 0, l = 0, i = null, h = "Unknown";
459
+ if (e.size && e.size.width ? (a = e.size.width, l = e.size.height) : e.placedLayer && e.placedLayer.width ? (a = e.placedLayer.width, l = e.placedLayer.height) : e.originalWidth && (a = e.originalWidth, l = e.originalHeight), e.meshPoints && e.meshPoints.length > 0 && (u = e.meshPoints), e.transform && e.transform.length === 8) {
460
+ const f = e.transform;
461
+ o = [
462
+ { x: f[0], y: f[1] },
463
+ { x: f[2], y: f[3] },
464
+ { x: f[4], y: f[5] },
465
+ { x: f[6], y: f[7] }
496
466
  ];
497
467
  }
498
- return e.quiltSliceX && (a = e.quiltSliceX), e.quiltSliceY && (d = e.quiltSliceY), e.filterList && (c = e.filterList.find((u) => u.type === "puppet" && u.enabled)), l === 0 && a && a.length > 0 && (l = a[a.length - 1]), l === 0 && (l = 1e3), h === 0 && (h = 1e3), c && c.filter && c.filter.puppetShapeList && c.filter.puppetShapeList.length > 0 && i ? (ce(o, r, i, c.filter.puppetShapeList[0]), f = "Puppet Warp") : s && i ? a && d ? (le(o, r, i, s, a, d, l, h), f = "Quilt Mesh") : s.length === 16 ? (ae(o, r, i, s), f = "Std Mesh (16pt)") : (fe(o, r, i, s), f = "Auto-Fit Mesh") : s ? (ue(o, r, s), f = "Direct Mesh") : i && (F(o, r, i), f = "Transform Only"), f;
468
+ return e.quiltSliceX && (c = e.quiltSliceX), e.quiltSliceY && (w = e.quiltSliceY), e.filterList && (i = e.filterList.find((f) => f.type === "puppet" && f.enabled)), a === 0 && c && c.length > 0 && (a = c[c.length - 1]), a === 0 && (a = 1e3), l === 0 && (l = 1e3), i && i.filter && i.filter.puppetShapeList && i.filter.puppetShapeList.length > 0 && o ? (ae(s, t, o, i.filter.puppetShapeList[0]), h = "Puppet Warp") : u && o ? c && w ? (he(s, t, o, u, c, w, a, l), h = "Quilt Mesh") : u.length === 16 ? (le(s, t, o, u), h = "Std Mesh (16pt)") : (fe(s, t, o, u), h = "Auto-Fit Mesh") : u ? (de(s, t, u), h = "Direct Mesh") : o && (K(s, t, o), h = "Transform Only"), h;
499
469
  }
500
- function ce(o, r, e, t, n, s) {
501
- if (!t.originalVertexArray || !t.deformedVertexArray || !t.indexArray)
470
+ function ae(s, t, e, r, n, u) {
471
+ if (!r.originalVertexArray || !r.deformedVertexArray || !r.indexArray)
502
472
  return;
503
- const i = Q(e), a = de(i);
504
- if (!a) {
505
- F(o, r, e);
473
+ const o = q(e), c = ye(o);
474
+ if (!c) {
475
+ K(s, t, e);
506
476
  return;
507
477
  }
508
- const d = t.originalVertexArray, l = t.deformedVertexArray, h = t.indexArray;
509
- for (let c = 0; c < h.length; c += 3) {
510
- const f = h[c], u = h[c + 1], w = h[c + 2];
511
- if (!d[f] || !d[u] || !d[w]) continue;
512
- const m = d[f], y = d[u], x = d[w], p = Y(m.x, m.y, a), E = Y(y.x, y.y, a), S = Y(x.x, x.y, a), M = q(r), W = { x: p.x * M.width, y: p.y * M.height }, L = { x: E.x * M.width, y: E.y * M.height }, k = { x: S.x * M.width, y: S.y * M.height }, N = l[f], T = l[u], $ = l[w];
513
- J(o, r, W, L, k, N, T, $);
478
+ const w = r.originalVertexArray, a = r.deformedVertexArray, l = r.indexArray;
479
+ for (let i = 0; i < l.length; i += 3) {
480
+ const h = l[i], f = l[i + 1], d = l[i + 2];
481
+ if (!w[h] || !w[f] || !w[d]) continue;
482
+ const y = w[h], m = w[f], F = w[d], g = X(y.x, y.y, c), p = X(m.x, m.y, c), x = X(F.x, F.y, c), A = Y(t), D = { x: g.x * A.width, y: g.y * A.height }, W = { x: p.x * A.width, y: p.y * A.height }, B = { x: x.x * A.width, y: x.y * A.height }, _ = a[h], I = a[f], v = a[d];
483
+ k(s, t, D, W, B, _, I, v);
514
484
  }
515
485
  }
516
- function ae(o, r, e, t) {
517
- let n = 1 / 0, s = -1 / 0, i = 1 / 0, a = -1 / 0;
518
- t.forEach((c) => {
519
- n = Math.min(n, c.x), s = Math.max(s, c.x), i = Math.min(i, c.y), a = Math.max(a, c.y);
486
+ function le(s, t, e, r) {
487
+ let n = 1 / 0, u = -1 / 0, o = 1 / 0, c = -1 / 0;
488
+ r.forEach((i) => {
489
+ n = Math.min(n, i.x), u = Math.max(u, i.x), o = Math.min(o, i.y), c = Math.max(c, i.y);
520
490
  });
521
- const d = s - n, l = a - i;
522
- if (d < 1 || l < 1) {
523
- F(o, r, e);
491
+ const w = u - n, a = c - o;
492
+ if (w < 1 || a < 1) {
493
+ K(s, t, e);
524
494
  return;
525
495
  }
526
- const h = t.map((c) => {
527
- const f = (c.x - n) / d, u = (c.y - i) / l;
528
- return B(f, u, e);
496
+ const l = r.map((i) => {
497
+ const h = (i.x - n) / w, f = (i.y - o) / a;
498
+ return N(h, f, e);
529
499
  });
530
- G(o, r, h, "bicubic", 4, 40);
500
+ V(s, t, l, "bicubic", 4, 40);
531
501
  }
532
- function le(o, r, e, t, n, s, i, a) {
533
- const d = Q(e);
534
- let l = 1 / 0, h = -1 / 0, c = 1 / 0, f = -1 / 0;
535
- t.forEach((x) => {
536
- l = Math.min(l, x.x), h = Math.max(h, x.x), c = Math.min(c, x.y), f = Math.max(f, x.y);
502
+ function he(s, t, e, r, n, u, o, c) {
503
+ const w = q(e);
504
+ let a = 1 / 0, l = -1 / 0, i = 1 / 0, h = -1 / 0;
505
+ r.forEach((F) => {
506
+ a = Math.min(a, F.x), l = Math.max(l, F.x), i = Math.min(i, F.y), h = Math.max(h, F.y);
537
507
  });
538
- const u = h - l || 1, w = f - c || 1, m = n.length - 1, y = s.length - 1;
539
- for (let x = 0; x < y; x++)
540
- for (let p = 0; p < m; p++) {
541
- const E = x * 3, S = p * 3, M = [], W = m * 3 + 1;
508
+ const f = l - a || 1, d = h - i || 1, y = n.length - 1, m = u.length - 1;
509
+ for (let F = 0; F < m; F++)
510
+ for (let g = 0; g < y; g++) {
511
+ const p = F * 3, x = g * 3, A = [], D = y * 3 + 1;
542
512
  try {
543
- for (let I = 0; I < 4; I++)
544
- for (let O = 0; O < 4; O++) {
545
- const H = (E + I) * W + (S + O);
546
- t[H] && M.push(t[H]);
513
+ for (let S = 0; S < 4; S++)
514
+ for (let T = 0; T < 4; T++) {
515
+ const J = (p + S) * D + (x + T);
516
+ r[J] && A.push(r[J]);
547
517
  }
548
518
  } catch {
549
519
  continue;
550
520
  }
551
- if (M.length < 16) continue;
552
- const L = M.map((I) => {
553
- const O = (I.x - l) / u, H = (I.y - c) / w;
554
- return ee(O, H, d);
555
- }), k = n[p] / i, N = n[p + 1] / i, T = s[x] / a, $ = s[x + 1] / a;
556
- he(o, r, L, k, N, T, $);
521
+ if (A.length < 16) continue;
522
+ const W = A.map((S) => {
523
+ const T = (S.x - a) / f, J = (S.y - i) / d;
524
+ return ee(T, J, w);
525
+ }), B = n[g] / o, _ = n[g + 1] / o, I = u[F] / c, v = u[F + 1] / c;
526
+ we(s, t, W, B, _, I, v);
557
527
  }
558
528
  }
559
- function fe(o, r, e, t) {
560
- const n = Q(e);
561
- let s = 1 / 0, i = -1 / 0, a = 1 / 0, d = -1 / 0;
562
- t.forEach((u) => {
563
- s = Math.min(s, u.x), i = Math.max(i, u.x), a = Math.min(a, u.y), d = Math.max(d, u.y);
529
+ function fe(s, t, e, r) {
530
+ const n = q(e);
531
+ let u = 1 / 0, o = -1 / 0, c = 1 / 0, w = -1 / 0;
532
+ r.forEach((f) => {
533
+ u = Math.min(u, f.x), o = Math.max(o, f.x), c = Math.min(c, f.y), w = Math.max(w, f.y);
564
534
  });
565
- const l = i - s || 1, h = d - a || 1, c = t.map((u) => {
566
- const w = (u.x - s) / l, m = (u.y - a) / h;
567
- return ee(w, m, n);
568
- }), f = Math.floor(Math.sqrt(t.length)) || 4;
569
- G(o, r, c, "grid", f, 40);
535
+ const a = o - u || 1, l = w - c || 1, i = r.map((f) => {
536
+ const d = (f.x - u) / a, y = (f.y - c) / l;
537
+ return ee(d, y, n);
538
+ }), h = Math.floor(Math.sqrt(r.length)) || 4;
539
+ V(s, t, i, "grid", h, 40);
570
540
  }
571
- function he(o, r, e, t, n, s, i) {
572
- const d = q(r), l = d.width, h = d.height;
573
- for (let c = 0; c < 20; c++)
574
- for (let f = 0; f < 20; f++) {
575
- const u = f / 20, w = c / 20, m = (f + 1) / 20, y = (c + 1) / 20, x = t + u * (n - t), p = t + m * (n - t), E = s + w * (i - s), S = s + y * (i - s), M = { x: x * l, y: E * h }, W = { x: p * l, y: E * h }, L = { x: x * l, y: S * h }, k = { x: p * l, y: S * h }, N = v(u, w, e), T = v(m, w, e), $ = v(u, y, e), I = v(m, y, e);
576
- J(o, r, M, W, L, N, T, $), J(o, r, W, k, L, T, I, $);
541
+ function we(s, t, e, r, n, u, o) {
542
+ const w = Y(t), a = w.width, l = w.height;
543
+ for (let i = 0; i < 20; i++)
544
+ for (let h = 0; h < 20; h++) {
545
+ const f = h / 20, d = i / 20, y = (h + 1) / 20, m = (i + 1) / 20, F = r + f * (n - r), g = r + y * (n - r), p = u + d * (o - u), x = u + m * (o - u), A = { x: F * a, y: p * l }, D = { x: g * a, y: p * l }, W = { x: F * a, y: x * l }, B = { x: g * a, y: x * l }, _ = C(f, d, e), I = C(y, d, e), v = C(f, m, e), S = C(y, m, e);
546
+ k(s, t, A, D, W, _, I, v), k(s, t, D, B, W, I, S, v);
577
547
  }
578
548
  }
579
- function F(o, r, e) {
580
- G(o, r, e, "bilinear", 0, 10);
549
+ function K(s, t, e) {
550
+ V(s, t, e, "bilinear", 0, 10);
581
551
  }
582
- function ue(o, r, e) {
583
- G(o, r, e, "bicubic", 4, 40);
552
+ function de(s, t, e) {
553
+ V(s, t, e, "bicubic", 4, 40);
584
554
  }
585
- function G(o, r, e, t, n, s) {
586
- const i = q(r), a = i.width, d = i.height;
587
- for (let l = 0; l < s; l++)
588
- for (let h = 0; h < s; h++) {
589
- const c = h / s, f = l / s, u = (h + 1) / s, w = (l + 1) / s, m = { x: c * a, y: f * d }, y = { x: u * a, y: f * d }, x = { x: c * a, y: w * d }, p = { x: u * a, y: w * d };
590
- let E, S, M, W;
591
- t === "bicubic" ? (E = v(c, f, e), S = v(u, f, e), M = v(c, w, e), W = v(u, w, e)) : t === "grid" ? (E = z(c, f, e, n), S = z(u, f, e, n), M = z(c, w, e, n), W = z(u, w, e, n)) : (E = B(c, f, e), S = B(u, f, e), M = B(c, w, e), W = B(u, w, e)), J(o, r, m, y, x, E, S, M), J(o, r, y, p, x, S, W, M);
555
+ function V(s, t, e, r, n, u) {
556
+ const o = Y(t), c = o.width, w = o.height;
557
+ for (let a = 0; a < u; a++)
558
+ for (let l = 0; l < u; l++) {
559
+ const i = l / u, h = a / u, f = (l + 1) / u, d = (a + 1) / u, y = { x: i * c, y: h * w }, m = { x: f * c, y: h * w }, F = { x: i * c, y: d * w }, g = { x: f * c, y: d * w };
560
+ let p, x, A, D;
561
+ r === "bicubic" ? (p = C(i, h, e), x = C(f, h, e), A = C(i, d, e), D = C(f, d, e)) : r === "grid" ? (p = j(i, h, e, n), x = j(f, h, e, n), A = j(i, d, e, n), D = j(f, d, e, n)) : (p = N(i, h, e), x = N(f, h, e), A = N(i, d, e), D = N(f, d, e)), k(s, t, y, m, F, p, x, A), k(s, t, m, g, F, x, D, A);
592
562
  }
593
563
  }
594
- function Z(o, r) {
595
- const e = 1 - r;
596
- return o === 0 ? e * e * e : o === 1 ? 3 * e * e * r : o === 2 ? 3 * e * r * r : r * r * r;
564
+ function Q(s, t) {
565
+ const e = 1 - t;
566
+ return s === 0 ? e * e * e : s === 1 ? 3 * e * e * t : s === 2 ? 3 * e * t * t : t * t * t;
597
567
  }
598
- function v(o, r, e) {
599
- let t = 0, n = 0;
600
- for (let s = 0; s < 4; s++)
601
- for (let i = 0; i < 4; i++) {
602
- const a = Z(s, r) * Z(i, o);
603
- t += e[s * 4 + i].x * a, n += e[s * 4 + i].y * a;
568
+ function C(s, t, e) {
569
+ let r = 0, n = 0;
570
+ for (let u = 0; u < 4; u++)
571
+ for (let o = 0; o < 4; o++) {
572
+ const c = Q(u, t) * Q(o, s);
573
+ r += e[u * 4 + o].x * c, n += e[u * 4 + o].y * c;
604
574
  }
605
- return { x: t, y: n };
575
+ return { x: r, y: n };
606
576
  }
607
- function B(o, r, e) {
608
- const t = (1 - o) * (1 - r) * e[0].x + o * (1 - r) * e[1].x + o * r * e[2].x + (1 - o) * r * e[3].x, n = (1 - o) * (1 - r) * e[0].y + o * (1 - r) * e[1].y + o * r * e[2].y + (1 - o) * r * e[3].y;
609
- return { x: t, y: n };
577
+ function N(s, t, e) {
578
+ const r = (1 - s) * (1 - t) * e[0].x + s * (1 - t) * e[1].x + s * t * e[2].x + (1 - s) * t * e[3].x, n = (1 - s) * (1 - t) * e[0].y + s * (1 - t) * e[1].y + s * t * e[2].y + (1 - s) * t * e[3].y;
579
+ return { x: r, y: n };
610
580
  }
611
- function z(o, r, e, t) {
612
- const n = t - 1, s = o * n, i = r * n;
613
- let a = Math.floor(s), d = Math.floor(i);
614
- a >= n && (a = n - 1), d >= n && (d = n - 1), a < 0 && (a = 0), d < 0 && (d = 0);
615
- const l = s - a, h = i - d, c = e[d * t + a], f = e[d * t + (a + 1)], u = e[(d + 1) * t + a], w = e[(d + 1) * t + (a + 1)], m = (1 - l) * (1 - h) * c.x + l * (1 - h) * f.x + l * h * w.x + (1 - l) * h * u.x, y = (1 - l) * (1 - h) * c.y + l * (1 - h) * f.y + l * h * w.y + (1 - l) * h * u.y;
616
- return { x: m, y };
581
+ function j(s, t, e, r) {
582
+ const n = r - 1, u = s * n, o = t * n;
583
+ let c = Math.floor(u), w = Math.floor(o);
584
+ c >= n && (c = n - 1), w >= n && (w = n - 1), c < 0 && (c = 0), w < 0 && (w = 0);
585
+ const a = u - c, l = o - w, i = e[w * r + c], h = e[w * r + (c + 1)], f = e[(w + 1) * r + c], d = e[(w + 1) * r + (c + 1)], y = (1 - a) * (1 - l) * i.x + a * (1 - l) * h.x + a * l * d.x + (1 - a) * l * f.x, m = (1 - a) * (1 - l) * i.y + a * (1 - l) * h.y + a * l * d.y + (1 - a) * l * f.y;
586
+ return { x: y, y: m };
617
587
  }
618
- function Q(o) {
619
- if (!g || !g.isReady())
588
+ function q(s) {
589
+ if (!E || !E.isReady())
620
590
  throw new Error("WASM 模块未加载,无法计算透视变换矩阵");
621
591
  try {
622
- return g.calcPerspectiveMatrix(o);
623
- } catch (r) {
624
- throw new Error(`WASM 计算透视矩阵失败: ${r}`);
592
+ return E.calcPerspectiveMatrix(s);
593
+ } catch (t) {
594
+ throw new Error(`WASM 计算透视矩阵失败: ${t}`);
625
595
  }
626
596
  }
627
- function de(o) {
628
- if (!g || !g.isReady())
597
+ function ye(s) {
598
+ if (!E || !E.isReady())
629
599
  throw new Error("WASM 模块未加载,无法求逆矩阵");
630
600
  try {
631
- return g.invertMatrix(o);
632
- } catch (r) {
633
- throw new Error(`WASM 求逆矩阵失败: ${r}`);
601
+ return E.invertMatrix(s);
602
+ } catch (t) {
603
+ throw new Error(`WASM 求逆矩阵失败: ${t}`);
634
604
  }
635
605
  }
636
- function Y(o, r, e) {
637
- if (!g || !g.isReady())
606
+ function X(s, t, e) {
607
+ if (!E || !E.isReady())
638
608
  throw new Error("WASM 模块未加载,无法应用逆透视变换");
639
609
  try {
640
- return g.applyInversePerspective(o, r, e);
641
- } catch (t) {
642
- throw new Error(`WASM 应用逆透视变换失败: ${t}`);
610
+ return E.applyInversePerspective(s, t, e);
611
+ } catch (r) {
612
+ throw new Error(`WASM 应用逆透视变换失败: ${r}`);
643
613
  }
644
614
  }
645
- function ee(o, r, e) {
646
- if (!g || !g.isReady())
615
+ function ee(s, t, e) {
616
+ if (!E || !E.isReady())
647
617
  throw new Error("WASM 模块未加载,无法应用透视变换");
648
618
  try {
649
- return g.applyPerspective(o, r, e);
650
- } catch (t) {
651
- throw new Error(`WASM 应用透视变换失败: ${t}`);
619
+ return E.applyPerspective(s, t, e);
620
+ } catch (r) {
621
+ throw new Error(`WASM 应用透视变换失败: ${r}`);
652
622
  }
653
623
  }
654
- function J(o, r, e, t, n, s, i, a) {
655
- if (!r || "complete" in r && !r.complete || !("naturalWidth" in r ? r.naturalWidth : r.width)) return;
656
- const l = (s.x + i.x + a.x) / 3, h = (s.y + i.y + a.y) / 3, c = 1.65, f = l + (s.x - l) * c, u = h + (s.y - h) * c, w = l + (i.x - l) * c, m = h + (i.y - h) * c, y = l + (a.x - l) * c, x = h + (a.y - h) * c;
657
- o.save(), o.beginPath(), o.moveTo(f, u), o.lineTo(w, m), o.lineTo(y, x), o.closePath(), o.clip();
658
- const p = e.x * (n.y - t.y) - t.x * n.y + n.x * t.y + (t.x - n.x) * e.y;
659
- if (Math.abs(p) < 1e-3) {
660
- o.restore();
624
+ function k(s, t, e, r, n, u, o, c) {
625
+ if (!t || "complete" in t && !t.complete || !("naturalWidth" in t ? t.naturalWidth : t.width)) return;
626
+ const a = (u.x + o.x + c.x) / 3, l = (u.y + o.y + c.y) / 3, i = 1.65, h = a + (u.x - a) * i, f = l + (u.y - l) * i, d = a + (o.x - a) * i, y = l + (o.y - l) * i, m = a + (c.x - a) * i, F = l + (c.y - l) * i;
627
+ s.save(), s.beginPath(), s.moveTo(h, f), s.lineTo(d, y), s.lineTo(m, F), s.closePath(), s.clip();
628
+ const g = e.x * (n.y - r.y) - r.x * n.y + n.x * r.y + (r.x - n.x) * e.y;
629
+ if (Math.abs(g) < 1e-3) {
630
+ s.restore();
661
631
  return;
662
632
  }
663
- const E = -(e.y * (a.x - i.x) - t.y * a.x + n.y * i.x + (t.y - n.y) * s.x) / p, S = (t.y * a.y + e.y * (i.y - a.y) - n.y * i.y + (n.y - t.y) * s.y) / p, M = (e.x * (a.x - i.x) - t.x * a.x + n.x * i.x + (t.x - n.x) * s.x) / p, W = -(t.x * a.y + e.x * (i.y - a.y) - n.x * i.y + (n.x - t.x) * s.y) / p, L = (e.x * (n.y * i.x - t.y * a.x) + e.y * (t.x * a.x - n.x * i.x) + (n.x * t.y - t.x * n.y) * s.x) / p, k = (e.x * (n.y * i.y - t.y * a.y) + e.y * (t.x * a.y - n.x * i.y) + (n.x * t.y - t.x * n.y) * s.y) / p;
664
- o.transform(E, S, M, W, L, k), o.drawImage(r, 0, 0), o.restore();
633
+ const p = -(e.y * (c.x - o.x) - r.y * c.x + n.y * o.x + (r.y - n.y) * u.x) / g, x = (r.y * c.y + e.y * (o.y - c.y) - n.y * o.y + (n.y - r.y) * u.y) / g, A = (e.x * (c.x - o.x) - r.x * c.x + n.x * o.x + (r.x - n.x) * u.x) / g, D = -(r.x * c.y + e.x * (o.y - c.y) - n.x * o.y + (n.x - r.x) * u.y) / g, W = (e.x * (n.y * o.x - r.y * c.x) + e.y * (r.x * c.x - n.x * o.x) + (n.x * r.y - r.x * n.y) * u.x) / g, B = (e.x * (n.y * o.y - r.y * c.y) + e.y * (r.x * c.y - n.x * o.y) + (n.x * r.y - r.x * n.y) * u.y) / g;
634
+ s.transform(p, x, A, D, W, B), s.drawImage(t, 0, 0), s.restore();
665
635
  }
666
- A("🚀 [deform.worker] Worker 启动,等待 License Token...");
667
- self.onmessage = async (o) => {
668
- if (o.data?.type === "SET_DEBUG") {
669
- X = !!o.data?.debugRender, self.__DEBUG_RENDER__ = X;
636
+ self.onmessage = async (s) => {
637
+ if (s.data?.type === "SET_DEBUG") {
638
+ H = !!s.data?.debugRender, self.__DEBUG_RENDER__ = H;
670
639
  return;
671
640
  }
672
- if (o.data?.type === "SET_LICENSE") {
673
- ne(o.data);
641
+ if (s.data?.type === "SET_LICENSE") {
642
+ ue(s.data);
674
643
  return;
675
644
  }
676
- const r = o.data, { id: e, designBitmap: t, layerData: n, canvasSize: s } = r;
677
- if (!t) {
678
- console.error(`[deform worker] ❌ designBitmap 未定义 id=${e}`), self.postMessage({
645
+ const t = s.data, { id: e, designBitmap: r, layerData: n, canvasSize: u } = t;
646
+ if (!r) {
647
+ self.postMessage({
679
648
  id: e,
680
649
  imageBitmap: null,
681
650
  error: "designBitmap 未定义",
@@ -684,7 +653,7 @@ self.onmessage = async (o) => {
684
653
  return;
685
654
  }
686
655
  if (!n) {
687
- console.error(`[deform worker] ❌ layerData 未定义 id=${e}`), self.postMessage({
656
+ self.postMessage({
688
657
  id: e,
689
658
  imageBitmap: null,
690
659
  error: "layerData 未定义",
@@ -692,66 +661,59 @@ self.onmessage = async (o) => {
692
661
  });
693
662
  return;
694
663
  }
695
- const i = performance.now(), a = (/* @__PURE__ */ new Date()).toISOString();
696
- if (A(`[deform worker] ⏰ 开始 id=${e} 时间=${a}`, {
697
- designBitmap: { width: t.width, height: t.height },
664
+ const o = performance.now(), c = (/* @__PURE__ */ new Date()).toISOString();
665
+ if (L(`[deform worker] ⏰ 开始 id=${e} 时间=${c}`, {
666
+ designBitmap: { width: r.width, height: r.height },
698
667
  size: n.size,
699
668
  bounds: n.bounds,
700
- canvasSize: s
701
- }), !g || !g.isReady())
702
- if (R || self.LICENSE_TOKEN) {
703
- console.log("🔄 [deform.worker] WASM 未就绪,尝试初始化...");
669
+ canvasSize: u
670
+ }), !E || !E.isReady())
671
+ if (b || self.LICENSE_TOKEN)
704
672
  try {
705
- if (P && b && (console.log("⏳ [deform.worker] WASM 正在加载中,等待完成..."), await b), (!g || !g.isReady()) && await K(), !g || !g.isReady())
673
+ if (R && M && await M, (!E || !E.isReady()) && await G(), !E || !E.isReady())
706
674
  throw new Error("WASM 模块仍未就绪");
707
- console.log("✅ [deform.worker] WASM 初始化成功,继续处理任务");
708
- } catch (l) {
709
- console.error("❌ [deform.worker] WASM 初始化失败:", l);
710
- const c = performance.now() - i;
675
+ } catch (a) {
676
+ const i = performance.now() - o;
711
677
  self.postMessage({
712
678
  id: e,
713
- error: `WASM 初始化失败: ${l.message}`,
714
- duration: c
679
+ error: `WASM 初始化失败: ${a.message}`,
680
+ duration: i
715
681
  });
716
682
  return;
717
683
  }
718
- } else {
719
- console.log("⏳ [deform.worker] 等待 License Token...");
720
- let l = 0;
721
- const h = 500, c = 50;
722
- let f = null;
723
- for (; l < h && !f; )
724
- await new Promise((u) => setTimeout(u, c)), l += c, f = R || self.LICENSE_TOKEN;
725
- if (f)
684
+ else {
685
+ let a = 0;
686
+ const l = 500, i = 50;
687
+ let h = null;
688
+ for (; a < l && !h; )
689
+ await new Promise((f) => setTimeout(f, i)), a += i, h = b || self.LICENSE_TOKEN;
690
+ if (h)
726
691
  try {
727
- if (R = f, U = U || self.LICENSE_API_URL, C = C || self.DEVICE_ID, j = j || self.DOMAIN, P && b ? (console.log("⏳ [deform.worker] WASM 正在加载中,等待完成..."), await b) : g || await K(), !g || !g.isReady())
692
+ if (b = h, O = O || self.LICENSE_API_URL, $ = $ || self.DEVICE_ID, U = U || self.DOMAIN, R && M ? await M : E || await G(), !E || !E.isReady())
728
693
  throw new Error("WASM 模块未就绪");
729
- console.log("✅ [deform.worker] WASM 初始化成功,继续处理任务");
730
- } catch (u) {
731
- console.error("❌ [deform.worker] WASM 初始化失败:", u);
732
- const m = performance.now() - i;
694
+ } catch (f) {
695
+ const y = performance.now() - o;
733
696
  self.postMessage({
734
697
  id: e,
735
- error: `WASM 初始化失败: ${u.message}`,
736
- duration: m
698
+ error: `WASM 初始化失败: ${f.message}`,
699
+ duration: y
737
700
  });
738
701
  return;
739
702
  }
740
- else if (!f) {
741
- console.error("❌ [deform.worker] 等待超时,License Token 未设置");
742
- const w = performance.now() - i;
703
+ else if (!h) {
704
+ const d = performance.now() - o;
743
705
  self.postMessage({
744
706
  id: e,
745
707
  error: "LICENSE_TOKEN 未设置,无法使用 WASM 功能",
746
- duration: w
708
+ duration: d
747
709
  });
748
710
  return;
749
711
  }
750
712
  }
751
713
  try {
752
- const d = n.bounds;
753
- if (!d || !d.width || !d.height) {
754
- console.error(`[deform worker] ❌ bounds 无效 id=${e}`, d), self.postMessage({
714
+ const w = n.bounds;
715
+ if (!w || !w.width || !w.height) {
716
+ self.postMessage({
755
717
  id: e,
756
718
  imageBitmap: null,
757
719
  error: "bounds 无效",
@@ -759,43 +721,40 @@ self.onmessage = async (o) => {
759
721
  });
760
722
  return;
761
723
  }
762
- const l = oe(n, s);
763
- let h, c;
764
- if (s && s.width > 0 && s.height > 0)
765
- h = s.width, c = s.height;
724
+ const a = oe(n, u);
725
+ let l, i;
726
+ if (u && u.width > 0 && u.height > 0)
727
+ l = u.width, i = u.height;
766
728
  else {
767
- const S = n.size || n.placedLayer || {
768
- width: d.width,
769
- height: d.height
729
+ const x = n.size || n.placedLayer || {
730
+ width: w.width,
731
+ height: w.height
770
732
  };
771
- h = S.width, c = S.height;
733
+ l = x.width, i = x.height;
772
734
  }
773
- const f = new OffscreenCanvas(h, c), u = f.getContext("2d");
774
- if (!u) {
775
- const M = performance.now() - i;
776
- self.postMessage({ id: e, error: "Canvas context unavailable", duration: M });
735
+ const h = new OffscreenCanvas(l, i), f = h.getContext("2d");
736
+ if (!f) {
737
+ const A = performance.now() - o;
738
+ self.postMessage({ id: e, error: "Canvas context unavailable", duration: A });
777
739
  return;
778
740
  }
779
- const w = ie(u, t, l), m = f.transferToImageBitmap(), x = performance.now() - i, p = (/* @__PURE__ */ new Date()).toISOString();
780
- A(
781
- `[deform worker] ✅ 结束 id=${e} 时间=${p} 耗时=${Math.round(x)}ms 变形方法=${w}`,
741
+ const d = ce(f, r, a), y = h.transferToImageBitmap(), F = performance.now() - o, g = (/* @__PURE__ */ new Date()).toISOString();
742
+ L(
743
+ `[deform worker] ✅ 结束 id=${e} 时间=${g} 耗时=${Math.round(F)}ms 变形方法=${d}`,
782
744
  {
783
- width: m.width,
784
- height: m.height
745
+ width: y.width,
746
+ height: y.height
785
747
  }
786
- ), t.close();
787
- const E = se(
788
- { id: e, imageBitmap: m, duration: x }
748
+ ), r.close();
749
+ const p = ie(
750
+ { id: e, imageBitmap: y, duration: F }
789
751
  );
790
752
  self.postMessage(
791
- E,
792
- E.imageBitmap ? [E.imageBitmap] : []
753
+ p,
754
+ p.imageBitmap ? [p.imageBitmap] : []
793
755
  );
794
- } catch (d) {
795
- const h = performance.now() - i, c = d instanceof Error ? d.message : String(d), f = (/* @__PURE__ */ new Date()).toISOString();
796
- A(
797
- `[deform worker] ❌ 错误 id=${e} 时间=${f} 耗时=${Math.round(h)}ms`,
798
- c
799
- ), self.postMessage({ id: e, error: c, duration: h });
756
+ } catch (w) {
757
+ const l = performance.now() - o, i = w instanceof Error ? w.message : String(w);
758
+ (/* @__PURE__ */ new Date()).toISOString(), self.postMessage({ id: e, error: i, duration: l });
800
759
  }
801
760
  };