@lynx-js/react 0.111.0 → 0.111.2

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.
Files changed (144) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/components/lib/DeferredListItem.d.ts +3 -1
  3. package/components/lib/DeferredListItem.jsx +4 -2
  4. package/components/lib/DeferredListItem.jsx.map +1 -1
  5. package/components/src/DeferredListItem.tsx +5 -3
  6. package/package.json +6 -1
  7. package/refresh/.turbo/turbo-build.log +7 -3
  8. package/refresh/dist/index.js +223 -284
  9. package/refresh/package.json +3 -4
  10. package/refresh/rslib.config.ts +24 -0
  11. package/runtime/debug/index.cjs +8 -0
  12. package/runtime/debug/index.d.ts +4 -0
  13. package/runtime/debug/index.js +5 -0
  14. package/runtime/lib/alog/index.d.ts +1 -0
  15. package/runtime/lib/alog/index.js +8 -0
  16. package/runtime/lib/alog/index.js.map +1 -0
  17. package/runtime/lib/alog/render.d.ts +1 -0
  18. package/runtime/lib/alog/render.js +19 -0
  19. package/runtime/lib/alog/render.js.map +1 -0
  20. package/runtime/lib/backgroundSnapshot.d.ts +1 -0
  21. package/runtime/lib/backgroundSnapshot.js +31 -17
  22. package/runtime/lib/backgroundSnapshot.js.map +1 -1
  23. package/runtime/lib/debug/component-stack.d.ts +33 -0
  24. package/runtime/lib/debug/component-stack.js +145 -0
  25. package/runtime/lib/debug/component-stack.js.map +1 -0
  26. package/runtime/lib/debug/formatPatch.d.ts +2 -0
  27. package/runtime/lib/debug/formatPatch.js +27 -0
  28. package/runtime/lib/debug/formatPatch.js.map +1 -0
  29. package/runtime/lib/debug/printSnapshot.d.ts +1 -1
  30. package/runtime/lib/debug/printSnapshot.js +0 -4
  31. package/runtime/lib/debug/printSnapshot.js.map +1 -1
  32. package/runtime/lib/debug/profile.js +1 -3
  33. package/runtime/lib/debug/profile.js.map +1 -1
  34. package/runtime/lib/hydrate.js +11 -7
  35. package/runtime/lib/hydrate.js.map +1 -1
  36. package/runtime/lib/lifecycle/patch/commit.js +1 -1
  37. package/runtime/lib/lifecycle/patch/commit.js.map +1 -1
  38. package/runtime/lib/lifecycle/patch/snapshotPatch.d.ts +4 -0
  39. package/runtime/lib/lifecycle/patch/snapshotPatch.js +28 -0
  40. package/runtime/lib/lifecycle/patch/snapshotPatch.js.map +1 -1
  41. package/runtime/lib/lynx.js +9 -0
  42. package/runtime/lib/lynx.js.map +1 -1
  43. package/runtime/lib/pendingListUpdates.d.ts +2 -1
  44. package/runtime/lib/pendingListUpdates.js +16 -4
  45. package/runtime/lib/pendingListUpdates.js.map +1 -1
  46. package/runtime/lib/renderToOpcodes/constants.d.ts +2 -0
  47. package/runtime/lib/renderToOpcodes/constants.js +2 -0
  48. package/runtime/lib/renderToOpcodes/constants.js.map +1 -1
  49. package/runtime/lib/root.d.ts +6 -0
  50. package/runtime/lib/root.js +4 -0
  51. package/runtime/lib/root.js.map +1 -1
  52. package/runtime/lib/snapshot/platformInfo.js +5 -3
  53. package/runtime/lib/snapshot/platformInfo.js.map +1 -1
  54. package/runtime/lib/snapshot/ref.d.ts +2 -2
  55. package/runtime/lib/snapshot/spread.js +3 -1
  56. package/runtime/lib/snapshot/spread.js.map +1 -1
  57. package/runtime/lib/snapshot.js +13 -7
  58. package/runtime/lib/snapshot.js.map +1 -1
  59. package/runtime/lib/utils.d.ts +2 -0
  60. package/runtime/lib/utils.js +23 -2
  61. package/runtime/lib/utils.js.map +1 -1
  62. package/testing-library/dist/env/vitest.js +18 -7
  63. package/testing-library/dist/pure.js +3 -1
  64. package/testing-library/dist/vitest-global-setup.js +2 -2
  65. package/transform/dist/wasm.cjs +1 -1
  66. package/types/react.d.ts +13 -1
  67. package/worklet-runtime/dist/dev.js +403 -506
  68. package/worklet-runtime/dist/main.js +1 -517
  69. package/worklet-runtime/lib/workletRuntime.js +5 -5
  70. package/worklet-runtime/lib/workletRuntime.js.map +1 -1
  71. package/runtime/src/backgroundSnapshot.ts +0 -501
  72. package/runtime/src/compat/componentIs.ts +0 -30
  73. package/runtime/src/compat/initData.ts +0 -150
  74. package/runtime/src/compat/lynxComponent.ts +0 -79
  75. package/runtime/src/debug/debug.ts +0 -9
  76. package/runtime/src/debug/printSnapshot.ts +0 -28
  77. package/runtime/src/debug/profile.ts +0 -55
  78. package/runtime/src/document.ts +0 -84
  79. package/runtime/src/gesture/processGesture.ts +0 -89
  80. package/runtime/src/gesture/processGestureBagkround.ts +0 -19
  81. package/runtime/src/gesture/types.ts +0 -44
  82. package/runtime/src/hooks/react.ts +0 -62
  83. package/runtime/src/hooks/useLynxGlobalEventListener.ts +0 -59
  84. package/runtime/src/hydrate.ts +0 -368
  85. package/runtime/src/index.ts +0 -94
  86. package/runtime/src/internal.ts +0 -63
  87. package/runtime/src/legacy-react-runtime/index.ts +0 -42
  88. package/runtime/src/lifecycle/destroy.ts +0 -34
  89. package/runtime/src/lifecycle/event/delayEvents.ts +0 -11
  90. package/runtime/src/lifecycle/event/delayLifecycleEvents.ts +0 -15
  91. package/runtime/src/lifecycle/event/jsReady.ts +0 -34
  92. package/runtime/src/lifecycle/pass.ts +0 -14
  93. package/runtime/src/lifecycle/patch/commit.ts +0 -214
  94. package/runtime/src/lifecycle/patch/error.ts +0 -61
  95. package/runtime/src/lifecycle/patch/isMainThreadHydrationFinished.ts +0 -13
  96. package/runtime/src/lifecycle/patch/snapshotPatch.ts +0 -65
  97. package/runtime/src/lifecycle/patch/snapshotPatchApply.ts +0 -145
  98. package/runtime/src/lifecycle/patch/updateMainThread.ts +0 -64
  99. package/runtime/src/lifecycle/ref/delay.ts +0 -99
  100. package/runtime/src/lifecycle/reload.ts +0 -97
  101. package/runtime/src/lifecycle/render.ts +0 -54
  102. package/runtime/src/lifecycleConstant.ts +0 -21
  103. package/runtime/src/list.ts +0 -307
  104. package/runtime/src/listUpdateInfo.ts +0 -221
  105. package/runtime/src/lynx/calledByNative.ts +0 -160
  106. package/runtime/src/lynx/component.ts +0 -113
  107. package/runtime/src/lynx/dynamic-js.ts +0 -36
  108. package/runtime/src/lynx/env.ts +0 -109
  109. package/runtime/src/lynx/injectLepusMethods.ts +0 -53
  110. package/runtime/src/lynx/lazy-bundle.ts +0 -175
  111. package/runtime/src/lynx/performance.ts +0 -148
  112. package/runtime/src/lynx/runWithForce.ts +0 -67
  113. package/runtime/src/lynx/tt.ts +0 -215
  114. package/runtime/src/lynx-api.ts +0 -455
  115. package/runtime/src/lynx.ts +0 -58
  116. package/runtime/src/opcodes.ts +0 -155
  117. package/runtime/src/pendingListUpdates.ts +0 -18
  118. package/runtime/src/renderToOpcodes/constants.ts +0 -24
  119. package/runtime/src/renderToOpcodes/index.ts +0 -306
  120. package/runtime/src/root.ts +0 -23
  121. package/runtime/src/snapshot/dynamicPartType.ts +0 -16
  122. package/runtime/src/snapshot/event.ts +0 -33
  123. package/runtime/src/snapshot/gesture.ts +0 -30
  124. package/runtime/src/snapshot/list.ts +0 -36
  125. package/runtime/src/snapshot/platformInfo.ts +0 -62
  126. package/runtime/src/snapshot/ref.ts +0 -139
  127. package/runtime/src/snapshot/spread.ts +0 -330
  128. package/runtime/src/snapshot/workletEvent.ts +0 -35
  129. package/runtime/src/snapshot/workletRef.ts +0 -88
  130. package/runtime/src/snapshot.ts +0 -634
  131. package/runtime/src/snapshotInstanceHydrationMap.ts +0 -17
  132. package/runtime/src/utils.ts +0 -44
  133. package/runtime/src/worklet/ctx.ts +0 -22
  134. package/runtime/src/worklet/destroy.ts +0 -16
  135. package/runtime/src/worklet/execMap.ts +0 -51
  136. package/runtime/src/worklet/functionCall.ts +0 -42
  137. package/runtime/src/worklet/functionality.ts +0 -29
  138. package/runtime/src/worklet/hmr.ts +0 -34
  139. package/runtime/src/worklet/indexMap.ts +0 -23
  140. package/runtime/src/worklet/runOnBackground.ts +0 -147
  141. package/runtime/src/worklet/runOnMainThread.ts +0 -50
  142. package/runtime/src/worklet/transformToWorklet.ts +0 -26
  143. package/runtime/src/worklet/workletRef.ts +0 -231
  144. package/runtime/src/worklet/workletRefPool.ts +0 -29
@@ -1,517 +1 @@
1
- "use strict";
2
- (() => {
3
- var __defProp = Object.defineProperty;
4
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
-
7
- // src/api/element.ts
8
- var _Element = class _Element {
9
- constructor(element) {
10
- // @ts-expect-error set in constructor
11
- __publicField(this, "element");
12
- Object.defineProperty(this, "element", {
13
- get() {
14
- return element;
15
- }
16
- });
17
- }
18
- setAttribute(name, value) {
19
- __SetAttribute(this.element, name, value);
20
- this.flushElementTree();
21
- }
22
- setStyleProperty(name, value) {
23
- __AddInlineStyle(this.element, name, value);
24
- this.flushElementTree();
25
- }
26
- setStyleProperties(styles) {
27
- for (const key in styles) {
28
- __AddInlineStyle(this.element, key, styles[key]);
29
- }
30
- this.flushElementTree();
31
- }
32
- getAttribute(attributeName) {
33
- return __GetAttributeByName(this.element, attributeName);
34
- }
35
- getAttributeNames() {
36
- return __GetAttributeNames(this.element);
37
- }
38
- querySelector(selector) {
39
- const ref = __QuerySelector(this.element, selector, {});
40
- return ref ? new _Element(ref) : null;
41
- }
42
- querySelectorAll(selector) {
43
- return __QuerySelectorAll(this.element, selector, {}).map((element) => {
44
- return new _Element(element);
45
- });
46
- }
47
- invoke(methodName, params) {
48
- return new Promise((resolve, reject) => {
49
- __InvokeUIMethod(
50
- this.element,
51
- methodName,
52
- params != null ? params : {},
53
- (res) => {
54
- if (res.code === 0) {
55
- resolve(res.data);
56
- } else {
57
- reject(new Error("UI method invoke: " + JSON.stringify(res)));
58
- }
59
- }
60
- );
61
- this.flushElementTree();
62
- });
63
- }
64
- flushElementTree() {
65
- if (_Element.willFlush) {
66
- return;
67
- }
68
- _Element.willFlush = true;
69
- void Promise.resolve().then(() => {
70
- _Element.willFlush = false;
71
- __FlushElementTree();
72
- });
73
- }
74
- };
75
- __publicField(_Element, "willFlush", false);
76
- var Element = _Element;
77
-
78
- // src/api/lepusQuerySelector.ts
79
- var _PageElement = class _PageElement {
80
- static get() {
81
- var _a;
82
- (_a = _PageElement.pageElement) != null ? _a : _PageElement.pageElement = __GetPageElement();
83
- return _PageElement.pageElement;
84
- }
85
- };
86
- __publicField(_PageElement, "pageElement");
87
- var PageElement = _PageElement;
88
- function querySelector(cssSelector) {
89
- const element = __QuerySelector(PageElement.get(), cssSelector, {});
90
- return element ? new Element(element) : null;
91
- }
92
- function querySelectorAll(cssSelector) {
93
- return __QuerySelectorAll(PageElement.get(), cssSelector, {}).map(
94
- (element) => {
95
- return new Element(element);
96
- }
97
- );
98
- }
99
-
100
- // src/utils/version.ts
101
- function isSdkVersionGt(major, minor) {
102
- var _a;
103
- const lynxSdkVersion = (_a = SystemInfo.lynxSdkVersion) != null ? _a : "1.0";
104
- const version = lynxSdkVersion.split(".");
105
- return Number(version[0]) > major || Number(version[0]) == major && Number(version[1]) > minor;
106
- }
107
-
108
- // src/api/lynxApi.ts
109
- function initApiEnv() {
110
- var _a;
111
- lynx.querySelector = querySelector;
112
- lynx.querySelectorAll = querySelectorAll;
113
- globalThis.setTimeout = lynx.setTimeout;
114
- globalThis.setInterval = lynx.setInterval;
115
- globalThis.clearTimeout = lynx.clearTimeout;
116
- globalThis.clearInterval = (_a = lynx.clearInterval) != null ? _a : lynx.clearTimeInterval;
117
- {
118
- const requestAnimationFrame = lynx.requestAnimationFrame;
119
- lynx.requestAnimationFrame = globalThis.requestAnimationFrame = (callback) => {
120
- if (!isSdkVersionGt(2, 15)) {
121
- throw new Error(
122
- "requestAnimationFrame in main thread script requires Lynx sdk version 2.16"
123
- );
124
- }
125
- return requestAnimationFrame(callback);
126
- };
127
- }
128
- globalThis.cancelAnimationFrame = lynx.cancelAnimationFrame;
129
- }
130
-
131
- // src/utils/profile.ts
132
- function profile(sliceName, f) {
133
- if (false) {
134
- console.profile(sliceName);
135
- try {
136
- return f();
137
- } finally {
138
- console.profileEnd();
139
- }
140
- } else {
141
- return f();
142
- }
143
- }
144
-
145
- // src/workletRef.ts
146
- var impl;
147
- function initWorkletRef() {
148
- return impl = {
149
- _workletRefMap: {},
150
- /**
151
- * Map of worklet refs that are created during first screen rendering.
152
- * These refs are created with negative IDs and need to be hydrated
153
- * when the app starts. The map is cleared after hydration is complete
154
- * to free up memory.
155
- */
156
- _firstScreenWorkletRefMap: {},
157
- updateWorkletRef,
158
- updateWorkletRefInitValueChanges,
159
- clearFirstScreenWorkletRefMap
160
- };
161
- }
162
- var createWorkletRef = (id, value) => {
163
- return {
164
- current: value,
165
- _wvid: id
166
- };
167
- };
168
- var getFromWorkletRefMap = (refImpl) => {
169
- const id = refImpl._wvid;
170
- let value;
171
- if (id < 0) {
172
- value = impl._firstScreenWorkletRefMap[id];
173
- if (!value) {
174
- value = impl._firstScreenWorkletRefMap[id] = createWorkletRef(id, refImpl._initValue);
175
- }
176
- } else {
177
- value = impl._workletRefMap[id];
178
- }
179
- if (false) {
180
- throw new Error("Worklet: ref is not initialized: " + id);
181
- }
182
- return value;
183
- };
184
- function removeValueFromWorkletRefMap(id) {
185
- delete impl._workletRefMap[id];
186
- }
187
- function updateWorkletRef(handle, element) {
188
- getFromWorkletRefMap(handle).current = element ? new Element(element) : null;
189
- }
190
- function updateWorkletRefInitValueChanges(patch) {
191
- profile("updateWorkletRefInitValueChanges", () => {
192
- patch.forEach(([id, value]) => {
193
- if (!impl._workletRefMap[id]) {
194
- impl._workletRefMap[id] = createWorkletRef(id, value);
195
- }
196
- });
197
- });
198
- }
199
- function clearFirstScreenWorkletRefMap() {
200
- impl._firstScreenWorkletRefMap = {};
201
- }
202
-
203
- // src/listeners.ts
204
- function initEventListeners() {
205
- const jsContext = lynx.getJSContext();
206
- jsContext.addEventListener(
207
- "Lynx.Worklet.runWorkletCtx" /* runWorkletCtx */,
208
- (event) => {
209
- const data = JSON.parse(event.data);
210
- const returnValue = runWorklet(data.worklet, data.params);
211
- jsContext.dispatchEvent({
212
- type: "Lynx.Worklet.FunctionCallRet" /* FunctionCallRet */,
213
- data: JSON.stringify({
214
- resolveId: data.resolveId,
215
- returnValue
216
- })
217
- });
218
- }
219
- );
220
- jsContext.addEventListener(
221
- "Lynx.Worklet.releaseWorkletRef" /* releaseWorkletRef */,
222
- (event) => {
223
- removeValueFromWorkletRefMap(event.data.id);
224
- }
225
- );
226
- }
227
-
228
- // src/delayRunOnBackground.ts
229
- var impl2;
230
- function initRunOnBackgroundDelay() {
231
- return impl2 = {
232
- delayedBackgroundFunctionArray: [],
233
- delayRunOnBackground,
234
- runDelayedBackgroundFunctions
235
- };
236
- }
237
- function delayRunOnBackground(fnObj, task) {
238
- var _a;
239
- impl2.delayedBackgroundFunctionArray.push({ task });
240
- const delayIndices = (_a = fnObj._delayIndices) != null ? _a : fnObj._delayIndices = [];
241
- delayIndices.push(impl2.delayedBackgroundFunctionArray.length - 1);
242
- }
243
- function runDelayedBackgroundFunctions() {
244
- for (const details of impl2.delayedBackgroundFunctionArray) {
245
- if (details.jsFnHandle) {
246
- details.task(details.jsFnHandle._jsFnId, details.jsFnHandle._execId);
247
- }
248
- }
249
- impl2.delayedBackgroundFunctionArray.length = 0;
250
- }
251
-
252
- // src/delayWorkletEvent.ts
253
- var impl3;
254
- function initEventDelay() {
255
- return impl3 = {
256
- _delayedWorkletParamsMap: /* @__PURE__ */ new Map(),
257
- runDelayedWorklet,
258
- clearDelayedWorklets
259
- };
260
- }
261
- function delayExecUntilJsReady(hash, params) {
262
- profile("delayExecUntilJsReady: " + hash, () => {
263
- const map = impl3._delayedWorkletParamsMap;
264
- const paramVec = map.get(hash);
265
- if (paramVec) {
266
- paramVec.push(params);
267
- } else {
268
- map.set(hash, [params]);
269
- }
270
- });
271
- }
272
- function runDelayedWorklet(worklet, element) {
273
- profile("commitDelayedWorklet", () => {
274
- const paramsVec = impl3._delayedWorkletParamsMap.get(
275
- worklet._wkltId
276
- );
277
- if (paramsVec === void 0) {
278
- return;
279
- }
280
- const leftParamsVec = [];
281
- paramsVec.forEach((params) => {
282
- var _a;
283
- const firstParam = params[0];
284
- if (((_a = firstParam == null ? void 0 : firstParam.currentTarget) == null ? void 0 : _a.elementRefptr) === element) {
285
- setTimeout(() => {
286
- profile("runDelayedWorklet", () => {
287
- runWorklet(worklet, params);
288
- });
289
- }, 0);
290
- } else {
291
- leftParamsVec.push(params);
292
- }
293
- });
294
- impl3._delayedWorkletParamsMap.set(
295
- worklet._wkltId,
296
- leftParamsVec
297
- );
298
- });
299
- }
300
- function clearDelayedWorklets() {
301
- impl3._delayedWorkletParamsMap.clear();
302
- }
303
-
304
- // src/hydrate.ts
305
- function hydrateCtx(ctx, firstScreenCtx) {
306
- profile("hydrateCtx", () => {
307
- hydrateCtxImpl(ctx, firstScreenCtx, ctx._execId);
308
- });
309
- }
310
- function hydrateCtxImpl(ctx, firstScreenCtx, execId) {
311
- if (!ctx || typeof ctx !== "object" || !firstScreenCtx || typeof firstScreenCtx !== "object") return;
312
- const ctxObj = ctx;
313
- const firstScreenCtxObj = firstScreenCtx;
314
- if (ctxObj["_wkltId"] && ctxObj["_wkltId"] !== firstScreenCtxObj["_wkltId"]) {
315
- return;
316
- }
317
- for (const key in ctx) {
318
- if (key === "_wvid") {
319
- hydrateMainThreadRef(ctxObj[key], firstScreenCtxObj);
320
- } else if (key === "_jsFn") {
321
- hydrateDelayRunOnBackgroundTasks(
322
- ctxObj[key],
323
- firstScreenCtxObj[key],
324
- execId
325
- );
326
- } else {
327
- const firstScreenValue = typeof firstScreenCtxObj[key] === "function" ? firstScreenCtxObj[key].ctx : firstScreenCtxObj[key];
328
- hydrateCtxImpl(ctxObj[key], firstScreenValue, execId);
329
- }
330
- }
331
- }
332
- function hydrateMainThreadRef(refId, value) {
333
- if ("_initValue" in value) {
334
- return;
335
- }
336
- const ref = lynxWorkletImpl._refImpl._workletRefMap[refId];
337
- ref.current = value.current;
338
- }
339
- function hydrateDelayRunOnBackgroundTasks(fnObjs, firstScreenFnObjs, execId) {
340
- for (const fnName in fnObjs) {
341
- const fnObj = fnObjs[fnName];
342
- const firstScreenFnObj = firstScreenFnObjs[fnName];
343
- if (!(firstScreenFnObj == null ? void 0 : firstScreenFnObj._delayIndices)) {
344
- continue;
345
- }
346
- for (const index of firstScreenFnObj._delayIndices) {
347
- const details = lynxWorkletImpl._runOnBackgroundDelayImpl.delayedBackgroundFunctionArray[index];
348
- fnObj._execId = execId;
349
- details.jsFnHandle = fnObj;
350
- }
351
- }
352
- }
353
-
354
- // src/jsFunctionLifecycle.ts
355
- var JsFunctionLifecycleManager = class {
356
- constructor() {
357
- __publicField(this, "execIdRefCount", /* @__PURE__ */ new Map());
358
- __publicField(this, "execIdSetToFire", /* @__PURE__ */ new Set());
359
- __publicField(this, "willFire", false);
360
- __publicField(this, "registry");
361
- this.registry = new FinalizationRegistry(this.removeRef.bind(this));
362
- }
363
- addRef(execId, objToRef) {
364
- var _a;
365
- this.execIdRefCount.set(
366
- execId,
367
- ((_a = this.execIdRefCount.get(execId)) != null ? _a : 0) + 1
368
- );
369
- this.registry.register(objToRef, execId);
370
- }
371
- removeRef(execId) {
372
- const rc = this.execIdRefCount.get(execId);
373
- if (rc > 1) {
374
- this.execIdRefCount.set(execId, rc - 1);
375
- return;
376
- }
377
- this.execIdRefCount.delete(execId);
378
- this.execIdSetToFire.add(execId);
379
- if (!this.willFire) {
380
- this.willFire = true;
381
- void Promise.resolve().then(() => {
382
- this.fire();
383
- });
384
- }
385
- }
386
- fire() {
387
- profile("JsFunctionLifecycleManager.fire", () => {
388
- lynx.getJSContext().dispatchEvent({
389
- type: "Lynx.Worklet.releaseBackgroundWorkletCtx" /* releaseBackgroundWorkletCtx */,
390
- data: Array.from(this.execIdSetToFire)
391
- });
392
- this.execIdSetToFire.clear();
393
- this.willFire = false;
394
- });
395
- }
396
- };
397
- function isRunOnBackgroundEnabled() {
398
- return isSdkVersionGt(2, 15);
399
- }
400
-
401
- // src/workletRuntime.ts
402
- function initWorklet() {
403
- globalThis.lynxWorkletImpl = {
404
- _workletMap: {},
405
- _refImpl: initWorkletRef(),
406
- _runOnBackgroundDelayImpl: initRunOnBackgroundDelay(),
407
- _hydrateCtx: hydrateCtx,
408
- _eventDelayImpl: initEventDelay()
409
- };
410
- if (isRunOnBackgroundEnabled()) {
411
- globalThis.lynxWorkletImpl._jsFunctionLifecycleManager = new JsFunctionLifecycleManager();
412
- }
413
- globalThis.registerWorklet = registerWorklet;
414
- globalThis.registerWorkletInternal = registerWorklet;
415
- globalThis.runWorklet = runWorklet2;
416
- }
417
- function registerWorklet(_type, id, worklet) {
418
- lynxWorkletImpl._workletMap[id] = worklet;
419
- }
420
- function runWorklet2(ctx, params) {
421
- if (!validateWorklet(ctx)) {
422
- console.warn("Worklet: Invalid worklet object: " + JSON.stringify(ctx));
423
- return;
424
- }
425
- if ("_lepusWorkletHash" in ctx) {
426
- delayExecUntilJsReady(ctx._lepusWorkletHash, params);
427
- return;
428
- }
429
- return runWorkletImpl(ctx, params);
430
- }
431
- function runWorkletImpl(ctx, params) {
432
- const worklet = profile(
433
- "transformWorkletCtx " + ctx._wkltId,
434
- () => transformWorklet(ctx, true)
435
- );
436
- const params_ = profile(
437
- "transformWorkletParams",
438
- () => transformWorklet(params || [], false)
439
- );
440
- return profile("runWorklet", () => worklet(...params_));
441
- }
442
- function validateWorklet(ctx) {
443
- return typeof ctx === "object" && ctx !== null && ("_wkltId" in ctx || "_lepusWorkletHash" in ctx);
444
- }
445
- var workletCache = /* @__PURE__ */ new WeakMap();
446
- function transformWorklet(ctx, isWorklet) {
447
- if (typeof ctx !== "object" || ctx === null) {
448
- return ctx;
449
- }
450
- if (isWorklet) {
451
- const res = workletCache.get(ctx);
452
- if (res) {
453
- return res;
454
- }
455
- }
456
- const worklet = { main: ctx };
457
- transformWorkletInner(worklet, 0, ctx);
458
- if (isWorklet) {
459
- workletCache.set(ctx, worklet.main);
460
- }
461
- return worklet.main;
462
- }
463
- var transformWorkletInner = (value, depth, ctx) => {
464
- var _a;
465
- const limit = 1e3;
466
- if (++depth >= limit) {
467
- throw new Error("Depth of value exceeds limit of " + limit + ".");
468
- }
469
- if (typeof value !== "object" || value === null) {
470
- return;
471
- }
472
- const obj = value;
473
- for (const key in obj) {
474
- const subObj = obj[key];
475
- if (typeof subObj !== "object" || subObj === null) {
476
- continue;
477
- }
478
- const isEventTarget = "elementRefptr" in subObj;
479
- if (!isEventTarget) {
480
- transformWorkletInner(subObj, depth, ctx);
481
- }
482
- if (isEventTarget) {
483
- obj[key] = new Element(subObj["elementRefptr"]);
484
- continue;
485
- }
486
- const isWorkletRef = "_wvid" in subObj;
487
- if (isWorkletRef) {
488
- obj[key] = getFromWorkletRefMap(
489
- subObj
490
- );
491
- continue;
492
- }
493
- const isWorklet = "_wkltId" in subObj;
494
- if (isWorklet) {
495
- obj[key] = lynxWorkletImpl._workletMap[subObj._wkltId].bind({ ...subObj });
496
- obj[key].ctx = subObj;
497
- continue;
498
- }
499
- const isJsFn = "_jsFnId" in subObj;
500
- if (isJsFn) {
501
- subObj["_execId"] = ctx._execId;
502
- (_a = lynxWorkletImpl._jsFunctionLifecycleManager) == null ? void 0 : _a.addRef(
503
- ctx._execId,
504
- subObj
505
- );
506
- continue;
507
- }
508
- }
509
- };
510
-
511
- // src/index.ts
512
- if (globalThis.lynxWorkletImpl === void 0) {
513
- initWorklet();
514
- initApiEnv();
515
- initEventListeners();
516
- }
517
- })();
1
+ (()=>{"use strict";let e,t,l;function n(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}class r{setAttribute(e,t){__SetAttribute(this.element,e,t),this.flushElementTree()}setStyleProperty(e,t){__AddInlineStyle(this.element,e,t),this.flushElementTree()}setStyleProperties(e){for(let t in e)__AddInlineStyle(this.element,t,e[t]);this.flushElementTree()}getAttribute(e){return __GetAttributeByName(this.element,e)}getAttributeNames(){return __GetAttributeNames(this.element)}querySelector(e){let t=__QuerySelector(this.element,e,{});return t?new r(t):null}querySelectorAll(e){return __QuerySelectorAll(this.element,e,{}).map(e=>new r(e))}invoke(e,t){return new Promise((l,n)=>{__InvokeUIMethod(this.element,e,null!=t?t:{},e=>{0===e.code?l(e.data):n(Error("UI method invoke: "+JSON.stringify(e)))}),this.flushElementTree()})}flushElementTree(){r.willFlush||(r.willFlush=!0,Promise.resolve().then(()=>{r.willFlush=!1,__FlushElementTree()}))}constructor(e){n(this,"element",void 0),Object.defineProperty(this,"element",{get:()=>e})}}n(r,"willFlush",!1);class i{static get(){return null!=i.pageElement||(i.pageElement=__GetPageElement()),i.pageElement}}function o(e){let t=__QuerySelector(i.get(),e,{});return t?new r(t):null}function a(e){return __QuerySelectorAll(i.get(),e,{}).map(e=>new r(e))}function u(e,t){var l;let n=(null!=(l=SystemInfo.lynxSdkVersion)?l:"1.0").split(".");return Number(n[0])>e||Number(n[0])==e&&Number(n[1])>t}!function(e,t,l){t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l}(i,"pageElement",void 0);var s=function(e){return e.runWorkletCtx="Lynx.Worklet.runWorkletCtx",e.runOnBackground="Lynx.Worklet.runOnBackground",e.FunctionCallRet="Lynx.Worklet.FunctionCallRet",e.releaseBackgroundWorkletCtx="Lynx.Worklet.releaseBackgroundWorkletCtx",e.releaseWorkletRef="Lynx.Worklet.releaseWorkletRef",e}(s||{});let c=(e,t)=>({current:t,_wvid:e}),d=t=>{let l,n=t._wvid;return n<0?(l=e._firstScreenWorkletRefMap[n])||(l=e._firstScreenWorkletRefMap[n]=c(n,t._initValue)):l=e._workletRefMap[n],l};function f(e,t,l){return t in e?Object.defineProperty(e,t,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[t]=l,e}function y(e,t,l){lynxWorkletImpl._workletMap[t]=l}let k=new WeakMap;function m(e,t){if("object"!=typeof e||null===e)return e;if(t){let t=k.get(e);if(t)return t}let l={main:e};return _(l,0,e),t&&k.set(e,l.main),l.main}let _=(e,t,l)=>{if(++t>=1e3)throw Error("Depth of value exceeds limit of 1000.");if("object"==typeof e&&null!==e)for(let i in e){let o=e[i];if("object"==typeof o&&null!==o){if("elementRefptr"in o){e[i]=new r(o.elementRefptr);continue}if(!(o instanceof r)){if(_(o,t,l),"_wvid"in o){e[i]=d(o);continue}if("_wkltId"in o){e[i]=lynxWorkletImpl._workletMap[o._wkltId].bind({...o}),e[i].ctx=o;continue}if("_jsFnId"in o){var n;o._execId=l._execId,null==(n=lynxWorkletImpl._jsFunctionLifecycleManager)||n.addRef(l._execId,o);continue}}}}};void 0===globalThis.lynxWorkletImpl&&(globalThis.lynxWorkletImpl={_workletMap:{},_refImpl:e={_workletRefMap:{},_firstScreenWorkletRefMap:{},updateWorkletRef:function(e,t){d(e).current=t?new r(t):null},updateWorkletRefInitValueChanges:function(t){t.forEach(([t,l])=>{e._workletRefMap[t]||(e._workletRefMap[t]=c(t,l))})},clearFirstScreenWorkletRefMap:function(){e._firstScreenWorkletRefMap={}}},_runOnBackgroundDelayImpl:t={delayedBackgroundFunctionArray:[],delayRunOnBackground:function(e,l){var n;t.delayedBackgroundFunctionArray.push({task:l}),(null!=(n=e._delayIndices)?n:e._delayIndices=[]).push(t.delayedBackgroundFunctionArray.length-1)},runDelayedBackgroundFunctions:function(){for(let e of t.delayedBackgroundFunctionArray)e.jsFnHandle&&e.task(e.jsFnHandle._jsFnId,e.jsFnHandle._execId);t.delayedBackgroundFunctionArray.length=0}},_hydrateCtx:function(e,t){(function e(t,l,n){if(t&&"object"==typeof t&&l&&"object"==typeof l&&(!t._wkltId||t._wkltId===l._wkltId))for(let o in t)if("_wvid"===o){var r,i;r=t[o],"_initValue"in(i=l)||(lynxWorkletImpl._refImpl._workletRefMap[r].current=i.current)}else if("_jsFn"===o)!function(e,t,l){for(let n in e){let r=e[n],i=t[n];if(null==i?void 0:i._delayIndices)for(let e of i._delayIndices){let t=lynxWorkletImpl._runOnBackgroundDelayImpl.delayedBackgroundFunctionArray[e];r._execId=l,t.jsFnHandle=r}}}(t[o],l[o],n);else{let r="function"==typeof l[o]?l[o].ctx:l[o];e(t[o],r,n)}})(e,t,e._execId)},_eventDelayImpl:l={_delayedWorkletParamsMap:new Map,runDelayedWorklet:function(e,t){(()=>{let n=l._delayedWorkletParamsMap.get(e._wkltId);if(void 0===n)return;let r=[];n.forEach(l=>{var n;let i=l[0];(null==i||null==(n=i.currentTarget)?void 0:n.elementRefptr)===t?setTimeout(()=>{runWorklet(e,l)},0):r.push(l)}),l._delayedWorkletParamsMap.set(e._wkltId,r)})()},clearDelayedWorklets:function(){l._delayedWorkletParamsMap.clear()}}},u(2,15)&&(globalThis.lynxWorkletImpl._jsFunctionLifecycleManager=new class e{addRef(e,t){var l;this.execIdRefCount.set(e,(null!=(l=this.execIdRefCount.get(e))?l:0)+1),this.registry.register(t,e)}removeRef(e){let t=this.execIdRefCount.get(e);if(t>1)return void this.execIdRefCount.set(e,t-1);this.execIdRefCount.delete(e),this.execIdSetToFire.add(e),this.willFire||(this.willFire=!0,Promise.resolve().then(()=>{this.fire()}))}fire(){lynx.getJSContext().dispatchEvent({type:s.releaseBackgroundWorkletCtx,data:Array.from(this.execIdSetToFire)}),this.execIdSetToFire.clear(),this.willFire=!1}constructor(){f(this,"execIdRefCount",new Map),f(this,"execIdSetToFire",new Set),f(this,"willFire",!1),f(this,"registry",void 0),this.registry=new FinalizationRegistry(this.removeRef.bind(this))}}),globalThis.registerWorklet=y,globalThis.registerWorkletInternal=y,globalThis.runWorklet=function(e,t){var n,r;if(!("object"==typeof(n=e)&&null!==n&&("_wkltId"in n||"_lepusWorkletHash"in n)))return void console.warn("Worklet: Invalid worklet object: "+JSON.stringify(e));if("_lepusWorkletHash"in e){return void(r=e._lepusWorkletHash,(()=>{let e=l._delayedWorkletParamsMap,n=e.get(r);n?n.push(t):e.set(r,[t])})())}return function(e,t){let l=(e._wkltId,m(e,!0)),n=m(t||[],!1);return l(...n)}(e,t)},function(){var e;lynx.querySelector=o,lynx.querySelectorAll=a,globalThis.setTimeout=lynx.setTimeout,globalThis.setInterval=lynx.setInterval,globalThis.clearTimeout=lynx.clearTimeout,globalThis.clearInterval=null!=(e=lynx.clearInterval)?e:lynx.clearTimeInterval;{let e=lynx.requestAnimationFrame;lynx.requestAnimationFrame=globalThis.requestAnimationFrame=t=>{if(!u(2,15))throw Error("requestAnimationFrame in main thread script requires Lynx sdk version 2.16");return e(t)}}globalThis.cancelAnimationFrame=lynx.cancelAnimationFrame}(),function(){let t=lynx.getJSContext();t.addEventListener(s.runWorkletCtx,e=>{let l=JSON.parse(e.data),n=runWorklet(l.worklet,l.params);t.dispatchEvent({type:s.FunctionCallRet,data:JSON.stringify({resolveId:l.resolveId,returnValue:n})})}),t.addEventListener(s.releaseWorkletRef,t=>{var l;l=t.data.id,delete e._workletRefMap[l]})}())})();
@@ -92,14 +92,14 @@ const transformWorkletInner = (value, depth, ctx) => {
92
92
  if (typeof subObj !== 'object' || subObj === null) {
93
93
  continue;
94
94
  }
95
- const isEventTarget = 'elementRefptr' in subObj;
96
- if (!isEventTarget) {
97
- transformWorkletInner(subObj, depth, ctx);
98
- }
99
- if (isEventTarget) {
95
+ if ( /** isEventTarget */'elementRefptr' in subObj) {
100
96
  obj[key] = new Element(subObj['elementRefptr']);
101
97
  continue;
102
98
  }
99
+ else if (subObj instanceof Element) {
100
+ continue;
101
+ }
102
+ transformWorkletInner(subObj, depth, ctx);
103
103
  const isWorkletRef = '_wvid' in subObj;
104
104
  if (isWorkletRef) {
105
105
  obj[key] = getFromWorkletRefMap(subObj);
@@ -1 +1 @@
1
- {"version":3,"file":"workletRuntime.js","sourceRoot":"","sources":["../src/workletRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workletRuntime.js","sourceRoot":"","sources":["../src/workletRuntime.ts"],"names":[],"mappings":"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"}