@lynx-js/react 0.121.0 → 0.121.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.
- package/CHANGELOG.md +34 -0
- package/package.json +5 -5
- package/runtime/lazy/element-template-import.js +73 -0
- package/runtime/lazy/import.js +4 -0
- package/runtime/lazy/target.js +23 -0
- package/runtime/lib/core/commit-context.d.ts +8 -0
- package/runtime/lib/core/commit-context.js +18 -0
- package/runtime/lib/core/commit-context.js.map +1 -0
- package/runtime/lib/{snapshot/legacy-react-runtime/index.d.ts → core/compat/legacy-react-runtime.d.ts} +4 -4
- package/runtime/lib/{snapshot/legacy-react-runtime/index.js → core/compat/legacy-react-runtime.js} +6 -6
- package/runtime/lib/core/compat/legacy-react-runtime.js.map +1 -0
- package/runtime/lib/{snapshot → core}/compat/lynxComponent.d.ts +2 -1
- package/runtime/lib/{snapshot → core}/compat/lynxComponent.js +11 -5
- package/runtime/lib/core/compat/lynxComponent.js.map +1 -0
- package/runtime/lib/core/component.d.ts +2 -0
- package/runtime/lib/core/component.js +79 -0
- package/runtime/lib/core/component.js.map +1 -0
- package/runtime/lib/core/forceRootRender.d.ts +7 -0
- package/runtime/lib/core/forceRootRender.js +40 -0
- package/runtime/lib/core/forceRootRender.js.map +1 -0
- package/runtime/lib/core/globalProps.d.ts +31 -0
- package/runtime/lib/core/globalProps.js +55 -0
- package/runtime/lib/core/globalProps.js.map +1 -0
- package/runtime/lib/core/hooks/useLynxGlobalEventListener.js +1 -1
- package/runtime/lib/core/hooks/useLynxGlobalEventListener.js.map +1 -1
- package/runtime/lib/{snapshot/compat → core}/initData.d.ts +1 -1
- package/runtime/lib/{snapshot/compat → core}/initData.js +4 -5
- package/runtime/lib/core/initData.js.map +1 -0
- package/runtime/lib/{snapshot/lynx/dynamic-js.js → core/lynx/dynamic-import.js} +1 -1
- package/runtime/lib/core/lynx/dynamic-import.js.map +1 -0
- package/runtime/lib/core/lynx/lazy-bundle.js.map +1 -0
- package/runtime/lib/core/lynx/runtime-backend.d.ts +5 -0
- package/runtime/lib/core/lynx/runtime-backend.js +20 -0
- package/runtime/lib/core/lynx/runtime-backend.js.map +1 -0
- package/runtime/lib/core/lynx-data-processors.d.ts +2 -0
- package/runtime/lib/core/lynx-data-processors.js +53 -0
- package/runtime/lib/core/lynx-data-processors.js.map +1 -0
- package/runtime/lib/core/lynx-page-data.d.ts +1 -0
- package/runtime/lib/core/lynx-page-data.js +14 -0
- package/runtime/lib/core/lynx-page-data.js.map +1 -0
- package/runtime/lib/core/lynx-update-data.d.ts +11 -0
- package/runtime/lib/core/lynx-update-data.js +21 -0
- package/runtime/lib/core/lynx-update-data.js.map +1 -0
- package/runtime/lib/core/performance.d.ts +30 -0
- package/runtime/lib/core/performance.js +145 -0
- package/runtime/lib/core/performance.js.map +1 -0
- package/runtime/lib/core/ref.d.ts +37 -0
- package/runtime/lib/core/ref.js +108 -0
- package/runtime/lib/core/ref.js.map +1 -0
- package/runtime/lib/core/reload-version.d.ts +2 -0
- package/runtime/lib/{snapshot/lifecycle/pass.js → core/reload-version.js} +4 -5
- package/runtime/lib/core/reload-version.js.map +1 -0
- package/runtime/lib/element-template/background/attr-slots.d.ts +6 -1
- package/runtime/lib/element-template/background/attr-slots.js +35 -2
- package/runtime/lib/element-template/background/attr-slots.js.map +1 -1
- package/runtime/lib/element-template/background/commit-context.d.ts +3 -3
- package/runtime/lib/element-template/background/commit-context.js +15 -18
- package/runtime/lib/element-template/background/commit-context.js.map +1 -1
- package/runtime/lib/element-template/background/commit-hook.d.ts +1 -1
- package/runtime/lib/element-template/background/commit-hook.js +68 -43
- package/runtime/lib/element-template/background/commit-hook.js.map +1 -1
- package/runtime/lib/element-template/background/destroy.js +9 -6
- package/runtime/lib/element-template/background/destroy.js.map +1 -1
- package/runtime/lib/element-template/background/document.js +5 -5
- package/runtime/lib/element-template/background/document.js.map +1 -1
- package/runtime/lib/element-template/background/hydrate.d.ts +2 -3
- package/runtime/lib/element-template/background/hydrate.js +247 -74
- package/runtime/lib/element-template/background/hydrate.js.map +1 -1
- package/runtime/lib/element-template/background/hydration-listener.js +49 -22
- package/runtime/lib/element-template/background/hydration-listener.js.map +1 -1
- package/runtime/lib/element-template/background/instance.d.ts +38 -9
- package/runtime/lib/element-template/background/instance.js +292 -113
- package/runtime/lib/element-template/background/instance.js.map +1 -1
- package/runtime/lib/element-template/client/root.d.ts +7 -0
- package/runtime/lib/element-template/client/root.js +3 -6
- package/runtime/lib/element-template/client/root.js.map +1 -1
- package/runtime/lib/element-template/debug/alog.d.ts +21 -0
- package/runtime/lib/element-template/debug/alog.js +33 -0
- package/runtime/lib/element-template/debug/alog.js.map +1 -1
- package/runtime/lib/element-template/debug/elementPAPICall.js +5 -0
- package/runtime/lib/element-template/debug/elementPAPICall.js.map +1 -1
- package/runtime/lib/element-template/hydration-map.d.ts +5 -0
- package/runtime/lib/element-template/hydration-map.js +12 -0
- package/runtime/lib/element-template/hydration-map.js.map +1 -0
- package/runtime/lib/element-template/index.d.ts +25 -3
- package/runtime/lib/element-template/index.js +38 -9
- package/runtime/lib/element-template/index.js.map +1 -1
- package/runtime/lib/element-template/internal.d.ts +5 -1
- package/runtime/lib/element-template/internal.js +6 -7
- package/runtime/lib/element-template/internal.js.map +1 -1
- package/runtime/lib/element-template/lynx/env.js +5 -48
- package/runtime/lib/element-template/lynx/env.js.map +1 -1
- package/runtime/lib/element-template/lynx/performance.d.ts +0 -21
- package/runtime/lib/element-template/lynx/performance.js +4 -121
- package/runtime/lib/element-template/lynx/performance.js.map +1 -1
- package/runtime/lib/element-template/native/index.d.ts +1 -1
- package/runtime/lib/element-template/native/index.js +28 -2
- package/runtime/lib/element-template/native/index.js.map +1 -1
- package/runtime/lib/element-template/native/main-thread-api.js +27 -5
- package/runtime/lib/element-template/native/main-thread-api.js.map +1 -1
- package/runtime/lib/element-template/native/mts-destroy.js +2 -0
- package/runtime/lib/element-template/native/mts-destroy.js.map +1 -1
- package/runtime/lib/element-template/native/patch-listener.js +6 -2
- package/runtime/lib/element-template/native/patch-listener.js.map +1 -1
- package/runtime/lib/element-template/native/reload-background.d.ts +1 -0
- package/runtime/lib/element-template/native/reload-background.js +39 -0
- package/runtime/lib/element-template/native/reload-background.js.map +1 -0
- package/runtime/lib/element-template/native/reload-main-thread.d.ts +1 -0
- package/runtime/lib/element-template/native/reload-main-thread.js +35 -0
- package/runtime/lib/element-template/native/reload-main-thread.js.map +1 -0
- package/runtime/lib/element-template/prop-adapters/event.d.ts +1 -0
- package/runtime/lib/element-template/prop-adapters/event.js +4 -1
- package/runtime/lib/element-template/prop-adapters/event.js.map +1 -1
- package/runtime/lib/element-template/prop-adapters/ref.d.ts +26 -0
- package/runtime/lib/element-template/prop-adapters/ref.js +107 -0
- package/runtime/lib/element-template/prop-adapters/ref.js.map +1 -0
- package/runtime/lib/element-template/prop-adapters/spread.js +8 -1
- package/runtime/lib/element-template/prop-adapters/spread.js.map +1 -1
- package/runtime/lib/element-template/protocol/opcodes.d.ts +4 -0
- package/runtime/lib/element-template/protocol/opcodes.js +4 -0
- package/runtime/lib/element-template/protocol/opcodes.js.map +1 -1
- package/runtime/lib/element-template/protocol/template-type.d.ts +6 -0
- package/runtime/lib/element-template/protocol/template-type.js +20 -0
- package/runtime/lib/element-template/protocol/template-type.js.map +1 -0
- package/runtime/lib/element-template/protocol/types.d.ts +74 -6
- package/runtime/lib/element-template/runtime/list/list.d.ts +65 -0
- package/runtime/lib/element-template/runtime/list/list.js +587 -0
- package/runtime/lib/element-template/runtime/list/list.js.map +1 -0
- package/runtime/lib/element-template/runtime/page/page.d.ts +5 -2
- package/runtime/lib/element-template/runtime/page/page.js +12 -0
- package/runtime/lib/element-template/runtime/page/page.js.map +1 -1
- package/runtime/lib/element-template/runtime/patch.js +210 -38
- package/runtime/lib/element-template/runtime/patch.js.map +1 -1
- package/runtime/lib/element-template/runtime/render/render-main-thread.d.ts +3 -1
- package/runtime/lib/element-template/runtime/render/render-main-thread.js +38 -7
- package/runtime/lib/element-template/runtime/render/render-main-thread.js.map +1 -1
- package/runtime/lib/element-template/runtime/render/render-opcodes.js +80 -43
- package/runtime/lib/element-template/runtime/render/render-opcodes.js.map +1 -1
- package/runtime/lib/element-template/runtime/render/render-to-opcodes.js +41 -4
- package/runtime/lib/element-template/runtime/render/render-to-opcodes.js.map +1 -1
- package/runtime/lib/element-template/runtime/template/attr-slot-plan.d.ts +1 -0
- package/runtime/lib/element-template/runtime/template/attr-slot-plan.js +4 -0
- package/runtime/lib/element-template/runtime/template/attr-slot-plan.js.map +1 -1
- package/runtime/lib/element-template/runtime/template/handle.d.ts +3 -2
- package/runtime/lib/element-template/runtime/template/handle.js +5 -1
- package/runtime/lib/element-template/runtime/template/handle.js.map +1 -1
- package/runtime/lib/element-template/runtime/template/registry.d.ts +2 -0
- package/runtime/lib/element-template/runtime/template/registry.js +6 -1
- package/runtime/lib/element-template/runtime/template/registry.js.map +1 -1
- package/runtime/lib/element-template/runtime-backend-marker.js +6 -0
- package/runtime/lib/element-template/runtime-backend-marker.js.map +1 -0
- package/runtime/lib/index.d.ts +1 -1
- package/runtime/lib/index.js +3 -1
- package/runtime/lib/index.js.map +1 -1
- package/runtime/lib/internal.d.ts +5 -4
- package/runtime/lib/internal.js +6 -5
- package/runtime/lib/internal.js.map +1 -1
- package/runtime/lib/lynx-api.d.ts +3 -8
- package/runtime/lib/lynx-api.js +8 -45
- package/runtime/lib/lynx-api.js.map +1 -1
- package/runtime/lib/runtime-backend-marker.js +6 -0
- package/runtime/lib/runtime-backend-marker.js.map +1 -0
- package/runtime/lib/snapshot/debug/vnodeSource.js +1 -1
- package/runtime/lib/snapshot/debug/vnodeSource.js.map +1 -1
- package/runtime/lib/snapshot/lifecycle/patch/commit.d.ts +0 -1
- package/runtime/lib/snapshot/lifecycle/patch/commit.js +4 -9
- package/runtime/lib/snapshot/lifecycle/patch/commit.js.map +1 -1
- package/runtime/lib/snapshot/lifecycle/patch/updateMainThread.js +2 -2
- package/runtime/lib/snapshot/lifecycle/patch/updateMainThread.js.map +1 -1
- package/runtime/lib/snapshot/lifecycle/ref/delay.d.ts +6 -13
- package/runtime/lib/snapshot/lifecycle/ref/delay.js +9 -30
- package/runtime/lib/snapshot/lifecycle/ref/delay.js.map +1 -1
- package/runtime/lib/snapshot/lifecycle/reload.js +2 -2
- package/runtime/lib/snapshot/lifecycle/reload.js.map +1 -1
- package/runtime/lib/snapshot/list/list.js +1 -1
- package/runtime/lib/snapshot/list/list.js.map +1 -1
- package/runtime/lib/snapshot/list/listUpdateInfo.js +3 -2
- package/runtime/lib/snapshot/list/listUpdateInfo.js.map +1 -1
- package/runtime/lib/snapshot/lynx/calledByNative.js +3 -9
- package/runtime/lib/snapshot/lynx/calledByNative.js.map +1 -1
- package/runtime/lib/snapshot/lynx/env.js +5 -51
- package/runtime/lib/snapshot/lynx/env.js.map +1 -1
- package/runtime/lib/snapshot/lynx/performance.d.ts +0 -21
- package/runtime/lib/snapshot/lynx/performance.js +7 -121
- package/runtime/lib/snapshot/lynx/performance.js.map +1 -1
- package/runtime/lib/snapshot/lynx/runWithForce.js +9 -39
- package/runtime/lib/snapshot/lynx/runWithForce.js.map +1 -1
- package/runtime/lib/snapshot/lynx/tt.js +10 -30
- package/runtime/lib/snapshot/lynx/tt.js.map +1 -1
- package/runtime/lib/snapshot/snapshot/backgroundSnapshot.js +4 -4
- package/runtime/lib/snapshot/snapshot/backgroundSnapshot.js.map +1 -1
- package/runtime/lib/snapshot/snapshot/list.js +1 -1
- package/runtime/lib/snapshot/snapshot/list.js.map +1 -1
- package/runtime/lib/snapshot/snapshot/ref.d.ts +3 -5
- package/runtime/lib/snapshot/snapshot/ref.js +16 -59
- package/runtime/lib/snapshot/snapshot/ref.js.map +1 -1
- package/runtime/lib/snapshot/snapshot/snapshot.js +1 -1
- package/runtime/lib/snapshot/snapshot/snapshot.js.map +1 -1
- package/runtime/lib/snapshot/snapshot/snapshotInstanceHydrationMap.js +1 -1
- package/runtime/lib/snapshot/snapshot/snapshotInstanceHydrationMap.js.map +1 -1
- package/runtime/lib/tsconfig.tsbuildinfo +1 -1
- package/runtime/lib/worklet-runtime/workletRuntime.js +1 -1
- package/runtime/lib/worklet-runtime/workletRuntime.js.map +1 -1
- package/runtime/worklet-runtime/dev.js +2 -3
- package/runtime/worklet-runtime/main.js +1 -1
- package/testing-library/dist/{rslib-runtime.js → 0~rslib-runtime.js} +14 -13
- package/testing-library/dist/env/index.js +2 -8
- package/testing-library/dist/env/vitest.js +1 -1
- package/testing-library/dist/plugins/index.js +13 -2
- package/testing-library/dist/pure.js +18 -18
- package/testing-library/dist/rstest-config.js +2 -4
- package/testing-library/dist/setupFiles/common/bootstrap.js +1 -0
- package/testing-library/dist/setupFiles/common/runtime-setup.js +1 -1
- package/testing-library/dist/setupFiles/inner/rstest.js +2 -1
- package/testing-library/dist/setupFiles/inner/vitest.js +2 -1
- package/testing-library/dist/type-entry/index.js +1 -0
- package/transform/dist/wasm.cjs +113 -40
- package/runtime/lib/element-template/hooks/react.d.ts +0 -14
- package/runtime/lib/element-template/hooks/react.js +0 -24
- package/runtime/lib/element-template/hooks/react.js.map +0 -1
- package/runtime/lib/element-template/runtime/components/slot.js +0 -11
- package/runtime/lib/element-template/runtime/components/slot.js.map +0 -1
- package/runtime/lib/snapshot/compat/initData.js.map +0 -1
- package/runtime/lib/snapshot/compat/lynxComponent.js.map +0 -1
- package/runtime/lib/snapshot/legacy-react-runtime/index.js.map +0 -1
- package/runtime/lib/snapshot/lifecycle/pass.d.ts +0 -3
- package/runtime/lib/snapshot/lifecycle/pass.js.map +0 -1
- package/runtime/lib/snapshot/lynx/component.js +0 -73
- package/runtime/lib/snapshot/lynx/component.js.map +0 -1
- package/runtime/lib/snapshot/lynx/dynamic-js.js.map +0 -1
- package/runtime/lib/snapshot/lynx/lazy-bundle.js.map +0 -1
- package/testing-library/dist/881.js +0 -1
- /package/runtime/lib/{snapshot/lynx/dynamic-js.d.ts → core/lynx/dynamic-import.d.ts} +0 -0
- /package/runtime/lib/{snapshot → core}/lynx/lazy-bundle.d.ts +0 -0
- /package/runtime/lib/{snapshot → core}/lynx/lazy-bundle.js +0 -0
- /package/runtime/lib/element-template/{runtime/components/slot.d.ts → runtime-backend-marker.d.ts} +0 -0
- /package/runtime/lib/{snapshot/lynx/component.d.ts → runtime-backend-marker.d.ts} +0 -0
- /package/testing-library/dist/{0~123.js → 0~@rstest/adapter-rsbuild.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initData.js","sourceRoot":"","sources":["../../src/core/initData.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic-import.js","sourceRoot":"","sources":["../../../src/core/lynx/dynamic-import.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,UAAU,aAAa,CAAI,GAAW;IAC1C,IAAI,SAAS,EAAE,CAAC;QACd,YAAY,CACV,IAAI,KAAK,CAAC,yBAAyB,GAAG,+BAA+B,CAAC,EACtE,EAAE,SAAS,EAAE,GAAG,EAAE,CACnB,CAAC;QACF,2EAA2E;QAC3E,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CAAC,kBAAkB,CAAI,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC5C,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAS,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,OAA2D;IAE3D,MAAM,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;IAC9B,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QACpD,OAAO,cAAc,CAAM,GAAG,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-bundle.js","sourceRoot":"","sources":["../../../src/core/lynx/lazy-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const RUNTIME_BACKEND_SNAPSHOT = "Snapshot";
|
|
2
|
+
export declare const RUNTIME_BACKEND_ELEMENT_TEMPLATE = "Element Template";
|
|
3
|
+
export type RuntimeBackend = typeof RUNTIME_BACKEND_SNAPSHOT | typeof RUNTIME_BACKEND_ELEMENT_TEMPLATE;
|
|
4
|
+
export declare const sRuntimeBackend: symbol;
|
|
5
|
+
export declare function registerRuntimeBackend(backend: RuntimeBackend): void;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
|
+
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
export const RUNTIME_BACKEND_SNAPSHOT = 'Snapshot';
|
|
5
|
+
export const RUNTIME_BACKEND_ELEMENT_TEMPLATE = 'Element Template';
|
|
6
|
+
export const sRuntimeBackend = Symbol.for('__REACT_LYNX_RUNTIME_BACKEND__');
|
|
7
|
+
export function registerRuntimeBackend(backend) {
|
|
8
|
+
const target = (__LEPUS__ ? globalThis : lynx);
|
|
9
|
+
const currentBackend = target[sRuntimeBackend];
|
|
10
|
+
if (currentBackend !== undefined && currentBackend !== backend) {
|
|
11
|
+
throw new Error(`ReactLynx runtime backend mismatch: the current template uses ${currentBackend}, but this bundle was built for ${backend}. Snapshot and Element Template templates cannot share lazy bundles. Rebuild the main template and lazy bundle with the same elementTemplate setting.`);
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(target, sRuntimeBackend, {
|
|
14
|
+
value: backend,
|
|
15
|
+
enumerable: false,
|
|
16
|
+
writable: false,
|
|
17
|
+
configurable: true,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=runtime-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-backend.js","sourceRoot":"","sources":["../../../src/core/lynx/runtime-backend.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,UAAU,CAAC;AACnD,MAAM,CAAC,MAAM,gCAAgC,GAAG,kBAAkB,CAAC;AAMnE,MAAM,CAAC,MAAM,eAAe,GAAW,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAEpF,MAAM,UAAU,sBAAsB,CAAC,OAAuB;IAC5D,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAgD,CAAC;IAC9F,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAA+B,CAAC;IAE7E,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CACb,iEAAiE,cAAc,mCAAmC,OAAO,uJAAuJ,CACjR,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE;QAC7C,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { profileEnd, profileStart } from '../shared/profile.js';
|
|
2
|
+
export function createProcessData(dataProcessorDefinition) {
|
|
3
|
+
let hasDefaultDataProcessorExecuted = false;
|
|
4
|
+
return (data, processorName) => {
|
|
5
|
+
if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
|
|
6
|
+
profileStart('processData');
|
|
7
|
+
}
|
|
8
|
+
let result;
|
|
9
|
+
try {
|
|
10
|
+
if (processorName) {
|
|
11
|
+
result = dataProcessorDefinition?.dataProcessors?.[processorName]?.(data) ?? data;
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
result = dataProcessorDefinition?.defaultDataProcessor?.(data) ?? data;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
lynx.reportError(error);
|
|
19
|
+
result = {};
|
|
20
|
+
}
|
|
21
|
+
if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
|
|
22
|
+
profileEnd();
|
|
23
|
+
}
|
|
24
|
+
if (!hasDefaultDataProcessorExecuted) {
|
|
25
|
+
result = appendInitDataMetadata(result);
|
|
26
|
+
}
|
|
27
|
+
if (!processorName) {
|
|
28
|
+
hasDefaultDataProcessorExecuted = true;
|
|
29
|
+
}
|
|
30
|
+
return result;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function appendInitDataMetadata(result) {
|
|
34
|
+
// @ts-expect-error todo: add types to i18n logic
|
|
35
|
+
const i18nResourceTranslation = globalThis.__I18N_RESOURCE_TRANSLATION__;
|
|
36
|
+
if (i18nResourceTranslation) {
|
|
37
|
+
result = {
|
|
38
|
+
...result,
|
|
39
|
+
__I18N_RESOURCE_TRANSLATION__: i18nResourceTranslation,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// @ts-expect-error todo: add types to __EXTRACT_STR__
|
|
43
|
+
if (__EXTRACT_STR__) {
|
|
44
|
+
// @ts-expect-error todo: add types to __EXTRACT_STR__
|
|
45
|
+
const extractStrIdentFlag = __EXTRACT_STR_IDENT_FLAG__;
|
|
46
|
+
result = {
|
|
47
|
+
...result,
|
|
48
|
+
_EXTRACT_STR: extractStrIdentFlag,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return result;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=lynx-data-processors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lynx-data-processors.js","sourceRoot":"","sources":["../../src/core/lynx-data-processors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,UAAU,iBAAiB,CAC/B,uBAAiD;IAEjD,IAAI,+BAA+B,GAAG,KAAK,CAAC;IAE5C,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE;QAC7B,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;YACtD,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,MAA8B,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,GAAG,uBAAuB,EAAE,cAAc,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAa,IAAI,IAAI,CAAC;YAChG,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,uBAAuB,EAAE,oBAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;YACzE,CAAC;QACH,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,KAAc,CAAC,CAAC;YACjC,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;QAED,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;YACtD,UAAU,EAAE,CAAC;QACf,CAAC;QAED,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACrC,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,+BAA+B,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,MAA8B;IAC5D,iDAAiD;IACjD,MAAM,uBAAuB,GAAY,UAAU,CAAC,6BAA6B,CAAC;IAClF,IAAI,uBAAuB,EAAE,CAAC;QAC5B,MAAM,GAAG;YACP,GAAG,MAAM;YACT,6BAA6B,EAAE,uBAAuB;SACvD,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,IAAI,eAAe,EAAE,CAAC;QACpB,sDAAsD;QACtD,MAAM,mBAAmB,GAAY,0BAA0B,CAAC;QAChE,MAAM,GAAG;YACP,GAAG,MAAM;YACT,YAAY,EAAE,mBAAmB;SAClC,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function applyUpdatePageData(data: unknown, options?: Pick<UpdatePageOption, 'resetPageData'>): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
|
+
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
import { isEmptyObject } from '../utils.js';
|
|
5
|
+
export function applyUpdatePageData(data, options) {
|
|
6
|
+
if (options?.resetPageData) {
|
|
7
|
+
lynx.__initData = {};
|
|
8
|
+
}
|
|
9
|
+
if (typeof data == 'object' && data !== null && !isEmptyObject(data)) {
|
|
10
|
+
lynx.__initData ??= {};
|
|
11
|
+
Object.assign(lynx.__initData, data);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=lynx-page-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lynx-page-data.js","sourceRoot":"","sources":["../../src/core/lynx-page-data.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,UAAU,mBAAmB,CAAC,IAAa,EAAE,OAAiD;IAClG,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,OAAO,IAAI,IAAI,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const NativeUpdateDataType: {
|
|
2
|
+
readonly UPDATE: 0;
|
|
3
|
+
readonly RESET: 1;
|
|
4
|
+
};
|
|
5
|
+
export type NativeUpdateDataType = (typeof NativeUpdateDataType)[keyof typeof NativeUpdateDataType];
|
|
6
|
+
export interface NativeUpdateDataOptions {
|
|
7
|
+
type?: NativeUpdateDataType | undefined;
|
|
8
|
+
}
|
|
9
|
+
type InitDataPatch = Record<string, any>;
|
|
10
|
+
export declare function updateCardData(newData: InitDataPatch, options?: NativeUpdateDataOptions): void;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
|
+
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
export const NativeUpdateDataType = {
|
|
5
|
+
UPDATE: 0,
|
|
6
|
+
RESET: 1,
|
|
7
|
+
};
|
|
8
|
+
export function updateCardData(newData, options) {
|
|
9
|
+
const { ['__lynx_timing_flag']: performanceTimingFlag, ...restNewData } = newData;
|
|
10
|
+
if (performanceTimingFlag) {
|
|
11
|
+
lynx.reportError(new Error(`Received unsupported updateData with \`__lynx_timing_flag\` (value "${performanceTimingFlag}"), the timing flag is ignored`));
|
|
12
|
+
}
|
|
13
|
+
const { type = NativeUpdateDataType.UPDATE } = options ?? {};
|
|
14
|
+
if (type == NativeUpdateDataType.RESET) {
|
|
15
|
+
lynx.__initData = {};
|
|
16
|
+
}
|
|
17
|
+
// COW keeps provider/consumer readers aligned with Snapshot updateData behavior.
|
|
18
|
+
lynx.__initData = Object.assign({}, lynx.__initData, restNewData);
|
|
19
|
+
lynx.getJSModule('GlobalEventEmitter').emit('onDataChanged', [restNewData]);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=lynx-update-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lynx-update-data.js","sourceRoot":"","sources":["../../src/core/lynx-update-data.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;CACA,CAAC;AAUX,MAAM,UAAU,cAAc,CAC5B,OAAsB,EACtB,OAAiC;IAEjC,MAAM,EAAE,CAAC,oBAAoB,CAAC,EAAE,qBAAqB,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;IAClF,IAAI,qBAAqB,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,CACd,IAAI,KAAK,CACP,uEAAuE,qBAAqB,gCAAgC,CAC7H,CACF,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,IAAI,GAAG,oBAAoB,CAAC,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC7D,IAAI,IAAI,IAAI,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,iFAAiF;IACjF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAElE,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
declare const PerformanceTimingKeys: readonly ["updateSetStateTrigger", "updateDiffVdomStart", "updateDiffVdomEnd", "diffVdomStart", "diffVdomEnd", "packChangesStart", "packChangesEnd", "parseChangesStart", "parseChangesEnd", "patchChangesStart", "patchChangesEnd", "hydrateParseSnapshotStart", "hydrateParseSnapshotEnd", "mtsRenderStart", "mtsRenderEnd"];
|
|
2
|
+
declare const PerformanceTimingFlags: {
|
|
3
|
+
readonly reactLynxHydrate: "react_lynx_hydrate";
|
|
4
|
+
};
|
|
5
|
+
declare const PipelineOrigins: {
|
|
6
|
+
readonly reactLynxHydrate: "reactLynxHydrate";
|
|
7
|
+
readonly updateTriggeredByBts: "updateTriggeredByBts";
|
|
8
|
+
};
|
|
9
|
+
type PerformanceTimingKey = typeof PerformanceTimingKeys[number];
|
|
10
|
+
type PipelineOrigin = typeof PipelineOrigins[keyof typeof PipelineOrigins];
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated used by old timing api(setState timing flag)
|
|
13
|
+
*/
|
|
14
|
+
declare const PerfSpecificKey = "__lynx_timing_flag";
|
|
15
|
+
declare let globalPipelineOptions: PipelineOptions | undefined;
|
|
16
|
+
interface TimingAPIOptions {
|
|
17
|
+
shouldStartUpdatePipeline: () => boolean;
|
|
18
|
+
beginPipeline?: typeof beginPipeline;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated used by old timing api(setState timing flag)
|
|
22
|
+
*/
|
|
23
|
+
declare function markTimingLegacy(key: PerformanceTimingKey, timingFlag_?: string): void;
|
|
24
|
+
declare function beginPipeline(needTimestamps: boolean, pipelineOrigin: PipelineOrigin, timingFlag?: string): void;
|
|
25
|
+
declare function setPipeline(pipeline: PipelineOptions | undefined): void;
|
|
26
|
+
declare function resetTimingState(): void;
|
|
27
|
+
declare function markTiming(timestampKey: PerformanceTimingKey, force?: boolean): void;
|
|
28
|
+
declare function initTimingAPI(timingAPIOptions: TimingAPIOptions): void;
|
|
29
|
+
export { PerformanceTimingFlags, PipelineOrigins, PerfSpecificKey, markTimingLegacy, initTimingAPI, beginPipeline, markTiming, setPipeline, resetTimingState, globalPipelineOptions, };
|
|
30
|
+
export type { PerformanceTimingKey, PipelineOrigin };
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
|
+
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
import { options } from 'preact';
|
|
5
|
+
import { RENDER_COMPONENT, ROOT } from '../shared/render-constants.js';
|
|
6
|
+
import { hook, isSdkVersionGt } from '../utils.js';
|
|
7
|
+
const PerformanceTimingKeys = [
|
|
8
|
+
'updateSetStateTrigger',
|
|
9
|
+
'updateDiffVdomStart',
|
|
10
|
+
'updateDiffVdomEnd',
|
|
11
|
+
// updateSetStateTrigger, updateDiffVdomStart and updateDiffVdomEnd is deprecated
|
|
12
|
+
'diffVdomStart',
|
|
13
|
+
'diffVdomEnd',
|
|
14
|
+
'packChangesStart',
|
|
15
|
+
'packChangesEnd',
|
|
16
|
+
'parseChangesStart',
|
|
17
|
+
'parseChangesEnd',
|
|
18
|
+
'patchChangesStart',
|
|
19
|
+
'patchChangesEnd',
|
|
20
|
+
'hydrateParseSnapshotStart',
|
|
21
|
+
'hydrateParseSnapshotEnd',
|
|
22
|
+
'mtsRenderStart',
|
|
23
|
+
'mtsRenderEnd',
|
|
24
|
+
];
|
|
25
|
+
const PerformanceTimingFlags = {
|
|
26
|
+
reactLynxHydrate: 'react_lynx_hydrate',
|
|
27
|
+
};
|
|
28
|
+
const PipelineOrigins = {
|
|
29
|
+
reactLynxHydrate: 'reactLynxHydrate',
|
|
30
|
+
updateTriggeredByBts: 'updateTriggeredByBts',
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* @deprecated used by old timing api(setState timing flag)
|
|
34
|
+
*/
|
|
35
|
+
const PerfSpecificKey = '__lynx_timing_flag';
|
|
36
|
+
let timingFlag;
|
|
37
|
+
let shouldMarkDiffVdomStart = false;
|
|
38
|
+
let shouldMarkDiffVdomEnd = false;
|
|
39
|
+
let globalPipelineOptions;
|
|
40
|
+
let activeTimingAPIOptions;
|
|
41
|
+
let didInstallTimingAPIHooks = false;
|
|
42
|
+
/**
|
|
43
|
+
* @deprecated used by old timing api(setState timing flag)
|
|
44
|
+
*/
|
|
45
|
+
function markTimingLegacy(key, timingFlag_) {
|
|
46
|
+
switch (key) {
|
|
47
|
+
case 'updateSetStateTrigger': {
|
|
48
|
+
shouldMarkDiffVdomStart = true;
|
|
49
|
+
shouldMarkDiffVdomEnd = true;
|
|
50
|
+
timingFlag = timingFlag_;
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
case 'updateDiffVdomStart': {
|
|
54
|
+
if (!shouldMarkDiffVdomStart) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
shouldMarkDiffVdomStart = false;
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
case 'updateDiffVdomEnd': {
|
|
61
|
+
if (!shouldMarkDiffVdomEnd) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
shouldMarkDiffVdomEnd = false;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
lynx.getNativeApp().markTiming?.(timingFlag, key);
|
|
69
|
+
}
|
|
70
|
+
function beginPipeline(needTimestamps, pipelineOrigin, timingFlag) {
|
|
71
|
+
globalPipelineOptions = lynx.performance?._generatePipelineOptions?.();
|
|
72
|
+
if (globalPipelineOptions) {
|
|
73
|
+
globalPipelineOptions.needTimestamps = needTimestamps;
|
|
74
|
+
globalPipelineOptions.pipelineOrigin = pipelineOrigin;
|
|
75
|
+
globalPipelineOptions.dsl = 'reactLynx';
|
|
76
|
+
switch (pipelineOrigin) {
|
|
77
|
+
case PipelineOrigins.reactLynxHydrate:
|
|
78
|
+
globalPipelineOptions.stage = 'hydrate';
|
|
79
|
+
break;
|
|
80
|
+
case PipelineOrigins.updateTriggeredByBts:
|
|
81
|
+
globalPipelineOptions.stage = 'update';
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
if (isSdkVersionGt(3, 0)) {
|
|
85
|
+
lynx.performance?._onPipelineStart?.(globalPipelineOptions.pipelineID, globalPipelineOptions);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
lynx.performance?._onPipelineStart?.(globalPipelineOptions.pipelineID);
|
|
89
|
+
}
|
|
90
|
+
if (timingFlag) {
|
|
91
|
+
lynx.performance?._bindPipelineIdWithTimingFlag?.(globalPipelineOptions.pipelineID, timingFlag);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
function setPipeline(pipeline) {
|
|
96
|
+
globalPipelineOptions = pipeline;
|
|
97
|
+
}
|
|
98
|
+
function resetTimingState() {
|
|
99
|
+
timingFlag = undefined;
|
|
100
|
+
shouldMarkDiffVdomStart = false;
|
|
101
|
+
shouldMarkDiffVdomEnd = false;
|
|
102
|
+
globalPipelineOptions = undefined;
|
|
103
|
+
}
|
|
104
|
+
function markTiming(timestampKey, force) {
|
|
105
|
+
if (globalPipelineOptions && (force || globalPipelineOptions.needTimestamps)) {
|
|
106
|
+
lynx.performance?._markTiming?.(globalPipelineOptions.pipelineID, timestampKey);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function initTimingAPI(timingAPIOptions) {
|
|
110
|
+
activeTimingAPIOptions = timingAPIOptions;
|
|
111
|
+
resetTimingState();
|
|
112
|
+
if (didInstallTimingAPIHooks) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
didInstallTimingAPIHooks = true;
|
|
116
|
+
const helper = () => {
|
|
117
|
+
const timingAPIOptions = activeTimingAPIOptions;
|
|
118
|
+
/* v8 ignore start */
|
|
119
|
+
if (!timingAPIOptions) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
/* v8 ignore stop */
|
|
123
|
+
const startPipeline = timingAPIOptions.beginPipeline ?? beginPipeline;
|
|
124
|
+
if (__JS__ && timingAPIOptions.shouldStartUpdatePipeline()) {
|
|
125
|
+
if (!globalPipelineOptions) {
|
|
126
|
+
startPipeline(false, PipelineOrigins.updateTriggeredByBts);
|
|
127
|
+
markTiming('diffVdomStart', true);
|
|
128
|
+
}
|
|
129
|
+
if (shouldMarkDiffVdomStart) {
|
|
130
|
+
markTimingLegacy('updateDiffVdomStart');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
const onHook = (old, ...args) => {
|
|
135
|
+
helper();
|
|
136
|
+
/* v8 ignore start */
|
|
137
|
+
if (old)
|
|
138
|
+
old(...args);
|
|
139
|
+
/* v8 ignore stop */
|
|
140
|
+
};
|
|
141
|
+
hook(options, RENDER_COMPONENT, onHook);
|
|
142
|
+
hook(options, ROOT, onHook);
|
|
143
|
+
}
|
|
144
|
+
export { PerformanceTimingFlags, PipelineOrigins, PerfSpecificKey, markTimingLegacy, initTimingAPI, beginPipeline, markTiming, setPipeline, resetTimingState, globalPipelineOptions, };
|
|
145
|
+
//# sourceMappingURL=performance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.js","sourceRoot":"","sources":["../../src/core/performance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { NodesRef } from '@lynx-js/types';
|
|
2
|
+
export type RefCleanup = (() => void) | void;
|
|
3
|
+
export type RefCallback<T> = ((ref: T | null) => RefCleanup) & {
|
|
4
|
+
_unmount?: RefCleanup;
|
|
5
|
+
};
|
|
6
|
+
export interface RefObject<T> {
|
|
7
|
+
current: T | null;
|
|
8
|
+
}
|
|
9
|
+
export type OrdinaryRef<T> = RefCallback<T> | RefObject<T>;
|
|
10
|
+
type FunctionPropertyNames<T> = {
|
|
11
|
+
[K in keyof T]: T[K] extends (...args: unknown[]) => unknown ? K : never;
|
|
12
|
+
}[keyof T];
|
|
13
|
+
export type ForwardableNodesRefMethod = Exclude<FunctionPropertyNames<NodesRef>, 'exec'>;
|
|
14
|
+
export type RefProxyForwardedMethods<TProxy> = {
|
|
15
|
+
[K in ForwardableNodesRefMethod]: (...args: Parameters<NodesRef[K]>) => TProxy;
|
|
16
|
+
};
|
|
17
|
+
export declare function assertValidRef<T>(value: unknown): OrdinaryRef<T>;
|
|
18
|
+
export declare function normalizeRefValue<T>(value: unknown): OrdinaryRef<T> | null | undefined;
|
|
19
|
+
export declare function applyOrdinaryRef<T>(ref: OrdinaryRef<T>, value: T | null): void;
|
|
20
|
+
export declare class OrdinaryRefEffectQueue<TProxy, TToken> {
|
|
21
|
+
private readonly refsToClear;
|
|
22
|
+
private readonly refsToApply;
|
|
23
|
+
queue(oldRef: OrdinaryRef<TProxy> | null | undefined, newRef: OrdinaryRef<TProxy> | null | undefined, token: TToken): void;
|
|
24
|
+
flush(createValue: (token: TToken) => TProxy): void;
|
|
25
|
+
clear(): void;
|
|
26
|
+
hasPending(): boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare abstract class SelectorRefProxy<TProxy extends SelectorRefProxy<TProxy>> {
|
|
29
|
+
private task;
|
|
30
|
+
protected createProxy(): TProxy;
|
|
31
|
+
protected abstract createProxyTarget(): TProxy;
|
|
32
|
+
protected abstract runOrDelay(task: () => void): void;
|
|
33
|
+
abstract get selector(): string;
|
|
34
|
+
private setTask;
|
|
35
|
+
exec(): void;
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
2
|
+
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
|
+
// LICENSE file in the root directory of this source tree.
|
|
4
|
+
export function assertValidRef(value) {
|
|
5
|
+
if (typeof value === 'function'
|
|
6
|
+
|| (typeof value === 'object' && value !== null && 'current' in value)) {
|
|
7
|
+
return value;
|
|
8
|
+
}
|
|
9
|
+
throw new Error(`Elements' "ref" property should be a function, or an object created `
|
|
10
|
+
+ `by createRef(), but got [${typeof value}] instead`);
|
|
11
|
+
}
|
|
12
|
+
export function normalizeRefValue(value) {
|
|
13
|
+
if (value === null || value === undefined) {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
return assertValidRef(value);
|
|
17
|
+
}
|
|
18
|
+
export function applyOrdinaryRef(ref, value) {
|
|
19
|
+
try {
|
|
20
|
+
if (typeof ref === 'function') {
|
|
21
|
+
const cleanup = ref._unmount;
|
|
22
|
+
const hasCleanup = typeof cleanup === 'function';
|
|
23
|
+
if (hasCleanup) {
|
|
24
|
+
cleanup();
|
|
25
|
+
}
|
|
26
|
+
ref._unmount = undefined;
|
|
27
|
+
if (!hasCleanup || value !== null) {
|
|
28
|
+
const nextCleanup = ref(value);
|
|
29
|
+
if (typeof nextCleanup === 'function') {
|
|
30
|
+
ref._unmount = nextCleanup;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
ref.current = value;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
lynx.reportError(error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// Keeps the Snapshot/ET ordinary ref ordering shared without owning backend
|
|
43
|
+
// timing: each backend decides when to queue/flush and how to build the proxy.
|
|
44
|
+
export class OrdinaryRefEffectQueue {
|
|
45
|
+
refsToClear = [];
|
|
46
|
+
refsToApply = [];
|
|
47
|
+
queue(oldRef, newRef, token) {
|
|
48
|
+
if (oldRef === newRef) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (oldRef) {
|
|
52
|
+
this.refsToClear.push(oldRef);
|
|
53
|
+
}
|
|
54
|
+
if (newRef) {
|
|
55
|
+
this.refsToApply.push([newRef, token]);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
flush(createValue) {
|
|
59
|
+
// Ref callbacks can synchronously trigger more work; detach this batch from
|
|
60
|
+
// the queue before invoking user code so later effects stay in the next batch.
|
|
61
|
+
const refsToClearNow = this.refsToClear.splice(0);
|
|
62
|
+
const refsToApplyNow = this.refsToApply.splice(0);
|
|
63
|
+
for (const ref of refsToClearNow) {
|
|
64
|
+
applyOrdinaryRef(ref, null);
|
|
65
|
+
}
|
|
66
|
+
for (const [ref, token] of refsToApplyNow) {
|
|
67
|
+
applyOrdinaryRef(ref, createValue(token));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
clear() {
|
|
71
|
+
this.refsToClear.length = 0;
|
|
72
|
+
this.refsToApply.length = 0;
|
|
73
|
+
}
|
|
74
|
+
hasPending() {
|
|
75
|
+
return this.refsToClear.length > 0 || this.refsToApply.length > 0;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
export class SelectorRefProxy {
|
|
79
|
+
task;
|
|
80
|
+
createProxy() {
|
|
81
|
+
return new Proxy(this, {
|
|
82
|
+
get: (target, prop, receiver) => {
|
|
83
|
+
if (typeof prop === 'symbol'
|
|
84
|
+
|| prop === 'then'
|
|
85
|
+
|| prop in target
|
|
86
|
+
|| typeof prop !== 'string') {
|
|
87
|
+
return Reflect.get(target, prop, receiver);
|
|
88
|
+
}
|
|
89
|
+
return (...args) => {
|
|
90
|
+
return target.createProxyTarget().setTask(prop, args);
|
|
91
|
+
};
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
setTask(method, args) {
|
|
96
|
+
this.task = (nodesRef) => {
|
|
97
|
+
const nodesRefMethod = nodesRef[method];
|
|
98
|
+
return nodesRefMethod.apply(nodesRef, args);
|
|
99
|
+
};
|
|
100
|
+
return this;
|
|
101
|
+
}
|
|
102
|
+
exec() {
|
|
103
|
+
this.runOrDelay(() => {
|
|
104
|
+
this.task(lynx.createSelectorQuery().select(this.selector)).exec();
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ref.js","sourceRoot":"","sources":["../../src/core/ref.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
// Copyright
|
|
1
|
+
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
2
2
|
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
3
|
// LICENSE file in the root directory of this source tree.
|
|
4
4
|
let reloadVersion = 0;
|
|
5
|
-
function getReloadVersion() {
|
|
5
|
+
export function getReloadVersion() {
|
|
6
6
|
return reloadVersion;
|
|
7
7
|
}
|
|
8
|
-
function increaseReloadVersion() {
|
|
8
|
+
export function increaseReloadVersion() {
|
|
9
9
|
return ++reloadVersion;
|
|
10
10
|
}
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=pass.js.map
|
|
11
|
+
//# sourceMappingURL=reload-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reload-version.js","sourceRoot":"","sources":["../../src/core/reload-version.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB,MAAM,UAAU,gBAAgB;IAC9B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,EAAE,aAAa,CAAC;AACzB,CAAC"}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
import type { SerializableValue } from '../protocol/types.js';
|
|
2
|
-
export
|
|
2
|
+
export interface PrepareAttributeSlotsOptions {
|
|
3
|
+
previousRawSlots?: readonly unknown[];
|
|
4
|
+
queueRefEffects?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function prepareAttributeSlots(templateKey: string, handleId: number, rawSlots: readonly unknown[], options?: PrepareAttributeSlotsOptions): SerializableValue[];
|
|
7
|
+
export declare function queueRefAttributeSlotUpdates(templateKey: string, handleId: number, previousRawSlots?: readonly unknown[], nextRawSlots?: readonly unknown[]): void;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// Copyright 2026 The Lynx Authors. All rights reserved.
|
|
2
2
|
// Licensed under the Apache License Version 2.0 that can be found in the
|
|
3
3
|
// LICENSE file in the root directory of this source tree.
|
|
4
|
-
import {
|
|
4
|
+
import { getSpreadRefFromValue, queueRefAttrUpdate } from '../prop-adapters/ref.js';
|
|
5
|
+
import { __etAttrPlanMap, adaptRefAttrSlot, adaptSpreadAttrSlot } from '../runtime/template/attr-slot-plan.js';
|
|
5
6
|
function normalizeAttributeSlots(rawSlots) {
|
|
6
7
|
let normalizedSlots;
|
|
7
8
|
for (let slotIndex = 0; slotIndex < rawSlots.length; slotIndex += 1) {
|
|
@@ -14,7 +15,25 @@ function normalizeAttributeSlots(rawSlots) {
|
|
|
14
15
|
}
|
|
15
16
|
return normalizedSlots ?? rawSlots;
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
function queuePlannedRefAttributeSlotUpdates(handleId, attrPlan, previousRawSlots, nextRawSlots) {
|
|
19
|
+
for (let planIndex = 0; planIndex < attrPlan.length; planIndex += 2) {
|
|
20
|
+
const attrSlotIndex = attrPlan[planIndex];
|
|
21
|
+
const adapter = attrPlan[planIndex + 1];
|
|
22
|
+
if (adapter === adaptRefAttrSlot) {
|
|
23
|
+
queueRefAttrUpdate(previousRawSlots?.[attrSlotIndex], nextRawSlots?.[attrSlotIndex], handleId, attrSlotIndex);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
if (adapter === adaptSpreadAttrSlot) {
|
|
27
|
+
const previousSpreadRef = getSpreadRefFromValue(previousRawSlots?.[attrSlotIndex]);
|
|
28
|
+
const nextSpreadRef = getSpreadRefFromValue(nextRawSlots?.[attrSlotIndex]);
|
|
29
|
+
if (previousSpreadRef === undefined && nextSpreadRef === undefined) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
queueRefAttrUpdate(previousSpreadRef, nextSpreadRef ?? null, handleId, attrSlotIndex);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export function prepareAttributeSlots(templateKey, handleId, rawSlots, options) {
|
|
18
37
|
const attrPlan = __etAttrPlanMap[templateKey];
|
|
19
38
|
if (!attrPlan || attrPlan.length === 0) {
|
|
20
39
|
return normalizeAttributeSlots(rawSlots);
|
|
@@ -23,12 +42,26 @@ export function prepareAttributeSlots(templateKey, handleId, rawSlots) {
|
|
|
23
42
|
const preparedSlots = normalizedSlots === rawSlots
|
|
24
43
|
? rawSlots.slice()
|
|
25
44
|
: normalizedSlots;
|
|
45
|
+
const shouldQueueRefEffects = options?.queueRefEffects === true;
|
|
46
|
+
const previousRawSlots = options?.previousRawSlots;
|
|
26
47
|
for (let planIndex = 0; planIndex < attrPlan.length; planIndex += 2) {
|
|
27
48
|
const attrSlotIndex = attrPlan[planIndex];
|
|
28
49
|
const adapter = attrPlan[planIndex + 1];
|
|
29
50
|
const rawValue = rawSlots[attrSlotIndex];
|
|
30
51
|
preparedSlots[attrSlotIndex] = adapter(handleId, attrSlotIndex, rawValue);
|
|
31
52
|
}
|
|
53
|
+
if (shouldQueueRefEffects) {
|
|
54
|
+
// Ref effects compare raw user refs, not prepared marker strings or the
|
|
55
|
+
// spread wrapper object.
|
|
56
|
+
queuePlannedRefAttributeSlotUpdates(handleId, attrPlan, previousRawSlots, rawSlots);
|
|
57
|
+
}
|
|
32
58
|
return preparedSlots;
|
|
33
59
|
}
|
|
60
|
+
export function queueRefAttributeSlotUpdates(templateKey, handleId, previousRawSlots, nextRawSlots) {
|
|
61
|
+
const attrPlan = __etAttrPlanMap[templateKey];
|
|
62
|
+
if (!attrPlan || attrPlan.length === 0) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
queuePlannedRefAttributeSlotUpdates(handleId, attrPlan, previousRawSlots, nextRawSlots);
|
|
66
|
+
}
|
|
34
67
|
//# sourceMappingURL=attr-slots.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attr-slots.js","sourceRoot":"","sources":["../../../src/element-template/background/attr-slots.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;
|
|
1
|
+
{"version":3,"file":"attr-slots.js","sourceRoot":"","sources":["../../../src/element-template/background/attr-slots.ts"],"names":[],"mappings":"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"}
|