@lynx-js/react 0.121.0 → 0.121.1

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 (167) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +2 -2
  3. package/runtime/lib/core/commit-context.d.ts +8 -0
  4. package/runtime/lib/core/commit-context.js +18 -0
  5. package/runtime/lib/core/commit-context.js.map +1 -0
  6. package/runtime/lib/core/forceRootRender.d.ts +7 -0
  7. package/runtime/lib/core/forceRootRender.js +40 -0
  8. package/runtime/lib/core/forceRootRender.js.map +1 -0
  9. package/runtime/lib/core/globalProps.d.ts +31 -0
  10. package/runtime/lib/core/globalProps.js +55 -0
  11. package/runtime/lib/core/globalProps.js.map +1 -0
  12. package/runtime/lib/core/hooks/useLynxGlobalEventListener.js +1 -1
  13. package/runtime/lib/core/hooks/useLynxGlobalEventListener.js.map +1 -1
  14. package/runtime/lib/{snapshot/compat → core}/initData.d.ts +1 -1
  15. package/runtime/lib/{snapshot/compat → core}/initData.js +4 -5
  16. package/runtime/lib/core/initData.js.map +1 -0
  17. package/runtime/lib/core/lynx-data-processors.d.ts +2 -0
  18. package/runtime/lib/core/lynx-data-processors.js +53 -0
  19. package/runtime/lib/core/lynx-data-processors.js.map +1 -0
  20. package/runtime/lib/core/lynx-page-data.d.ts +1 -0
  21. package/runtime/lib/core/lynx-page-data.js +14 -0
  22. package/runtime/lib/core/lynx-page-data.js.map +1 -0
  23. package/runtime/lib/core/lynx-update-data.d.ts +11 -0
  24. package/runtime/lib/core/lynx-update-data.js +21 -0
  25. package/runtime/lib/core/lynx-update-data.js.map +1 -0
  26. package/runtime/lib/core/ref.d.ts +37 -0
  27. package/runtime/lib/core/ref.js +108 -0
  28. package/runtime/lib/core/ref.js.map +1 -0
  29. package/runtime/lib/core/reload-version.d.ts +2 -0
  30. package/runtime/lib/{snapshot/lifecycle/pass.js → core/reload-version.js} +4 -5
  31. package/runtime/lib/core/reload-version.js.map +1 -0
  32. package/runtime/lib/element-template/background/attr-slots.d.ts +6 -1
  33. package/runtime/lib/element-template/background/attr-slots.js +35 -2
  34. package/runtime/lib/element-template/background/attr-slots.js.map +1 -1
  35. package/runtime/lib/element-template/background/commit-context.d.ts +3 -3
  36. package/runtime/lib/element-template/background/commit-context.js +15 -18
  37. package/runtime/lib/element-template/background/commit-context.js.map +1 -1
  38. package/runtime/lib/element-template/background/commit-hook.d.ts +1 -1
  39. package/runtime/lib/element-template/background/commit-hook.js +66 -41
  40. package/runtime/lib/element-template/background/commit-hook.js.map +1 -1
  41. package/runtime/lib/element-template/background/destroy.js +9 -6
  42. package/runtime/lib/element-template/background/destroy.js.map +1 -1
  43. package/runtime/lib/element-template/background/document.js +1 -7
  44. package/runtime/lib/element-template/background/document.js.map +1 -1
  45. package/runtime/lib/element-template/background/hydrate.d.ts +1 -1
  46. package/runtime/lib/element-template/background/hydrate.js +53 -36
  47. package/runtime/lib/element-template/background/hydrate.js.map +1 -1
  48. package/runtime/lib/element-template/background/hydration-listener.js +55 -9
  49. package/runtime/lib/element-template/background/hydration-listener.js.map +1 -1
  50. package/runtime/lib/element-template/background/instance.d.ts +12 -10
  51. package/runtime/lib/element-template/background/instance.js +113 -115
  52. package/runtime/lib/element-template/background/instance.js.map +1 -1
  53. package/runtime/lib/element-template/client/root.d.ts +7 -0
  54. package/runtime/lib/element-template/client/root.js +3 -6
  55. package/runtime/lib/element-template/client/root.js.map +1 -1
  56. package/runtime/lib/element-template/debug/alog.d.ts +7 -0
  57. package/runtime/lib/element-template/debug/alog.js +10 -0
  58. package/runtime/lib/element-template/debug/alog.js.map +1 -1
  59. package/runtime/lib/element-template/debug/elementPAPICall.js +4 -0
  60. package/runtime/lib/element-template/debug/elementPAPICall.js.map +1 -1
  61. package/runtime/lib/element-template/hydration-map.d.ts +5 -0
  62. package/runtime/lib/element-template/hydration-map.js +12 -0
  63. package/runtime/lib/element-template/hydration-map.js.map +1 -0
  64. package/runtime/lib/element-template/index.d.ts +22 -1
  65. package/runtime/lib/element-template/index.js +32 -2
  66. package/runtime/lib/element-template/index.js.map +1 -1
  67. package/runtime/lib/element-template/internal.d.ts +1 -1
  68. package/runtime/lib/element-template/internal.js +2 -3
  69. package/runtime/lib/element-template/internal.js.map +1 -1
  70. package/runtime/lib/element-template/lynx/env.js +5 -48
  71. package/runtime/lib/element-template/lynx/env.js.map +1 -1
  72. package/runtime/lib/element-template/native/index.d.ts +1 -1
  73. package/runtime/lib/element-template/native/index.js +28 -2
  74. package/runtime/lib/element-template/native/index.js.map +1 -1
  75. package/runtime/lib/element-template/native/main-thread-api.js +27 -5
  76. package/runtime/lib/element-template/native/main-thread-api.js.map +1 -1
  77. package/runtime/lib/element-template/native/patch-listener.js +5 -1
  78. package/runtime/lib/element-template/native/patch-listener.js.map +1 -1
  79. package/runtime/lib/element-template/native/reload.d.ts +2 -0
  80. package/runtime/lib/element-template/native/reload.js +64 -0
  81. package/runtime/lib/element-template/native/reload.js.map +1 -0
  82. package/runtime/lib/element-template/prop-adapters/event.d.ts +1 -0
  83. package/runtime/lib/element-template/prop-adapters/event.js +4 -1
  84. package/runtime/lib/element-template/prop-adapters/event.js.map +1 -1
  85. package/runtime/lib/element-template/prop-adapters/ref.d.ts +26 -0
  86. package/runtime/lib/element-template/prop-adapters/ref.js +107 -0
  87. package/runtime/lib/element-template/prop-adapters/ref.js.map +1 -0
  88. package/runtime/lib/element-template/prop-adapters/spread.js +8 -1
  89. package/runtime/lib/element-template/prop-adapters/spread.js.map +1 -1
  90. package/runtime/lib/element-template/protocol/opcodes.d.ts +1 -0
  91. package/runtime/lib/element-template/protocol/opcodes.js +1 -0
  92. package/runtime/lib/element-template/protocol/opcodes.js.map +1 -1
  93. package/runtime/lib/element-template/protocol/types.d.ts +50 -2
  94. package/runtime/lib/element-template/runtime/page/page.d.ts +5 -2
  95. package/runtime/lib/element-template/runtime/page/page.js +12 -0
  96. package/runtime/lib/element-template/runtime/page/page.js.map +1 -1
  97. package/runtime/lib/element-template/runtime/patch.js +70 -1
  98. package/runtime/lib/element-template/runtime/patch.js.map +1 -1
  99. package/runtime/lib/element-template/runtime/render/render-main-thread.d.ts +3 -1
  100. package/runtime/lib/element-template/runtime/render/render-main-thread.js +25 -7
  101. package/runtime/lib/element-template/runtime/render/render-main-thread.js.map +1 -1
  102. package/runtime/lib/element-template/runtime/render/render-to-opcodes.js +9 -3
  103. package/runtime/lib/element-template/runtime/render/render-to-opcodes.js.map +1 -1
  104. package/runtime/lib/element-template/runtime/template/attr-slot-plan.d.ts +1 -0
  105. package/runtime/lib/element-template/runtime/template/attr-slot-plan.js +4 -0
  106. package/runtime/lib/element-template/runtime/template/attr-slot-plan.js.map +1 -1
  107. package/runtime/lib/element-template/runtime/template/handle.js +0 -1
  108. package/runtime/lib/element-template/runtime/template/handle.js.map +1 -1
  109. package/runtime/lib/element-template/runtime/template/registry.js +1 -1
  110. package/runtime/lib/element-template/runtime/template/registry.js.map +1 -1
  111. package/runtime/lib/internal.d.ts +1 -1
  112. package/runtime/lib/internal.js +1 -1
  113. package/runtime/lib/internal.js.map +1 -1
  114. package/runtime/lib/lynx-api.d.ts +3 -8
  115. package/runtime/lib/lynx-api.js +8 -45
  116. package/runtime/lib/lynx-api.js.map +1 -1
  117. package/runtime/lib/snapshot/debug/vnodeSource.js +1 -1
  118. package/runtime/lib/snapshot/debug/vnodeSource.js.map +1 -1
  119. package/runtime/lib/snapshot/lifecycle/patch/commit.d.ts +0 -1
  120. package/runtime/lib/snapshot/lifecycle/patch/commit.js +3 -8
  121. package/runtime/lib/snapshot/lifecycle/patch/commit.js.map +1 -1
  122. package/runtime/lib/snapshot/lifecycle/patch/updateMainThread.js +1 -1
  123. package/runtime/lib/snapshot/lifecycle/patch/updateMainThread.js.map +1 -1
  124. package/runtime/lib/snapshot/lifecycle/ref/delay.d.ts +6 -13
  125. package/runtime/lib/snapshot/lifecycle/ref/delay.js +9 -30
  126. package/runtime/lib/snapshot/lifecycle/ref/delay.js.map +1 -1
  127. package/runtime/lib/snapshot/lifecycle/reload.js +2 -2
  128. package/runtime/lib/snapshot/lifecycle/reload.js.map +1 -1
  129. package/runtime/lib/snapshot/list/list.js +1 -1
  130. package/runtime/lib/snapshot/list/list.js.map +1 -1
  131. package/runtime/lib/snapshot/list/listUpdateInfo.js +3 -2
  132. package/runtime/lib/snapshot/list/listUpdateInfo.js.map +1 -1
  133. package/runtime/lib/snapshot/lynx/calledByNative.js +2 -8
  134. package/runtime/lib/snapshot/lynx/calledByNative.js.map +1 -1
  135. package/runtime/lib/snapshot/lynx/component.js +2 -2
  136. package/runtime/lib/snapshot/lynx/component.js.map +1 -1
  137. package/runtime/lib/snapshot/lynx/env.js +5 -51
  138. package/runtime/lib/snapshot/lynx/env.js.map +1 -1
  139. package/runtime/lib/snapshot/lynx/runWithForce.js +9 -39
  140. package/runtime/lib/snapshot/lynx/runWithForce.js.map +1 -1
  141. package/runtime/lib/snapshot/lynx/tt.js +9 -29
  142. package/runtime/lib/snapshot/lynx/tt.js.map +1 -1
  143. package/runtime/lib/snapshot/snapshot/backgroundSnapshot.js +3 -3
  144. package/runtime/lib/snapshot/snapshot/backgroundSnapshot.js.map +1 -1
  145. package/runtime/lib/snapshot/snapshot/list.js +1 -1
  146. package/runtime/lib/snapshot/snapshot/list.js.map +1 -1
  147. package/runtime/lib/snapshot/snapshot/ref.d.ts +3 -5
  148. package/runtime/lib/snapshot/snapshot/ref.js +16 -59
  149. package/runtime/lib/snapshot/snapshot/ref.js.map +1 -1
  150. package/runtime/lib/snapshot/snapshot/snapshotInstanceHydrationMap.js +1 -1
  151. package/runtime/lib/snapshot/snapshot/snapshotInstanceHydrationMap.js.map +1 -1
  152. package/runtime/lib/tsconfig.tsbuildinfo +1 -1
  153. package/runtime/lib/worklet-runtime/workletRuntime.js +1 -1
  154. package/runtime/lib/worklet-runtime/workletRuntime.js.map +1 -1
  155. package/runtime/worklet-runtime/dev.js +2 -2
  156. package/testing-library/dist/env/index.js +2 -8
  157. package/testing-library/dist/plugins/index.js +12 -1
  158. package/transform/dist/wasm.cjs +1 -1
  159. package/runtime/lib/element-template/hooks/react.d.ts +0 -14
  160. package/runtime/lib/element-template/hooks/react.js +0 -24
  161. package/runtime/lib/element-template/hooks/react.js.map +0 -1
  162. package/runtime/lib/element-template/runtime/components/slot.d.ts +0 -1
  163. package/runtime/lib/element-template/runtime/components/slot.js +0 -11
  164. package/runtime/lib/element-template/runtime/components/slot.js.map +0 -1
  165. package/runtime/lib/snapshot/compat/initData.js.map +0 -1
  166. package/runtime/lib/snapshot/lifecycle/pass.d.ts +0 -3
  167. package/runtime/lib/snapshot/lifecycle/pass.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
+ import type { DataProcessorDefinition } from '../../lynx-api.js';
2
3
  /**
3
4
  * The default root exported by `@lynx-js/react` for you to render a JSX
4
5
  * @public
@@ -23,6 +24,12 @@ export interface Root {
23
24
  * @public
24
25
  */
25
26
  render: (jsx: ReactNode) => void;
27
+ /**
28
+ * {@inheritDoc Lynx.registerDataProcessors}
29
+ * @deprecated use {@link Lynx.registerDataProcessors | lynx.registerDataProcessors} instead
30
+ * @public
31
+ */
32
+ registerDataProcessors: (dataProcessorDefinition?: DataProcessorDefinition) => void;
26
33
  }
27
34
  /**
28
35
  * The default and only root of ReactLynx for you to render JSX
@@ -1,7 +1,5 @@
1
1
  import { render } from 'preact';
2
- // import { factory, withInitDataInState } from '../../compat/initData.js';
3
2
  import { profileEnd, profileStart } from '../debug/profile.js';
4
- // import { useLynxGlobalEventListener } from '../../core/hooks/useLynxGlobalEventListener.js';
5
3
  import { __root } from '../runtime/page/root-instance.js';
6
4
  /**
7
5
  * The default and only root of ReactLynx for you to render JSX
@@ -25,9 +23,8 @@ export const root = {
25
23
  }
26
24
  }
27
25
  },
28
- /* v8 ignore next 3 */
29
- // registerDataProcessors: (dataProcessorDefinition: DataProcessorDefinition): void => {
30
- // lynx.registerDataProcessors(dataProcessorDefinition);
31
- // },
26
+ registerDataProcessors: (dataProcessorDefinition) => {
27
+ lynx.registerDataProcessors(dataProcessorDefinition);
28
+ },
32
29
  };
33
30
  //# sourceMappingURL=root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/element-template/client/root.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,2EAA2E;AAC3E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,+FAA+F;AAC/F,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAkC1D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,MAAM,EAAE,CAAC,GAAc,EAAQ,EAAE;QAC/B,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;QACnB,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,WAAW,EAAE,CAAC;gBAChB,YAAY,CAAC,6BAA6B,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,CAAC,GAAqB,EAAE,MAAkC,CAAC,CAAC;YAClE,IAAI,WAAW,EAAE,CAAC;gBAChB,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,sBAAsB;IACtB,wFAAwF;IACxF,0DAA0D;IAC1D,KAAK;CACN,CAAC"}
1
+ {"version":3,"file":"root.js","sourceRoot":"","sources":["../../../src/element-template/client/root.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIhC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAkC1D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,IAAI,GAAS;IACxB,MAAM,EAAE,CAAC,GAAc,EAAQ,EAAE;QAC/B,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;QACnB,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,WAAW,EAAE,CAAC;gBAChB,YAAY,CAAC,6BAA6B,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,CAAC,GAAqB,EAAE,MAAkC,CAAC,CAAC;YAClE,IAAI,WAAW,EAAE,CAAC;gBAChB,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,sBAAsB,EAAE,CAAC,uBAAiD,EAAQ,EAAE;QAClF,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,CAAC;IACvD,CAAC;CACF,CAAC"}
@@ -7,6 +7,13 @@ export type FormattedElementTemplateUpdateCommand = {
7
7
  bundleUrl: string | null | undefined;
8
8
  attributeSlots: unknown;
9
9
  elementSlots: unknown;
10
+ } | {
11
+ op: 'createTypedElement';
12
+ handleId: number;
13
+ type: string;
14
+ attributes: unknown;
15
+ elementSlots: unknown;
16
+ options: unknown;
10
17
  } | {
11
18
  op: 'setAttribute';
12
19
  targetId: number;
@@ -29,6 +29,16 @@ export function formatElementTemplateUpdateCommands(stream) {
29
29
  value: stream[index++],
30
30
  });
31
31
  break;
32
+ case ElementTemplateUpdateOps.createTypedElement:
33
+ result.push({
34
+ op: 'createTypedElement',
35
+ handleId: stream[index++],
36
+ type: stream[index++],
37
+ attributes: stream[index++],
38
+ elementSlots: stream[index++],
39
+ options: stream[index++],
40
+ });
41
+ break;
32
42
  case ElementTemplateUpdateOps.insertNode:
33
43
  result.push({
34
44
  op: 'insertNode',
@@ -1 +1 @@
1
- {"version":3,"file":"alog.js","sourceRoot":"","sources":["../../../src/element-template/debug/alog.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAG1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAwClE,MAAM,UAAU,mCAAmC,CACjD,MAAsD;IAEtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAA4C,EAAE,CAAC;IAC3D,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;QAC3C,MAAM,OAAO,GAAG,KAAK,CAAC;QACtB,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAA4B,CAAC;QAEtD,QAAQ,EAAE,EAAE,CAAC;YACX,KAAK,wBAAwB,CAAC,cAAc;gBAC1C,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,gBAAgB;oBACpB,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,CAAW;oBACnC,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,CAAW;oBACtC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,CAA8B;oBACvD,cAAc,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC/B,YAAY,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;iBAC9B,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,wBAAwB,CAAC,YAAY;gBACxC,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,cAAc;oBAClB,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,CAAW;oBACnC,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,CAAW;oBACxC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;iBACvB,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,wBAAwB,CAAC,UAAU;gBACtC,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,YAAY;oBAChB,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,CAAW;oBACnC,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,CAAW;oBAC3C,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAW;oBAClC,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,CAAW;iBACvC,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,wBAAwB,CAAC,UAAU;gBACtC,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,YAAY;oBAChB,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAE,CAAW;oBACnC,gBAAgB,EAAE,MAAM,CAAC,KAAK,EAAE,CAAW;oBAC3C,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAW;oBAClC,uBAAuB,EAAE,MAAM,CAAC,KAAK,EAAE,CAAa;iBACrD,CAAC,CAAC;gBACH,MAAM;YAER;gBACE,MAAM,CAAC,IAAI,CAAC;oBACV,EAAE,EAAE,SAAS;oBACb,MAAM,EAAE,EAAE;oBACV,KAAK,EAAE,OAAO;oBACd,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;iBAC/B,CAAC,CAAC;gBACH,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,MAAM;QACV,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,IAA0D;IAE1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CACrB,KAAe,EACf,QAA2C,EAC3C,KAAa;IAEb,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,WAAW,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,WAAW,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;IAE7C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,qBAAqB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACvF,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,IAAI,CAAC,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvC,SAAS;QACX,CAAC;QACD,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,kBAAkB,SAAS,OAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACjG,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC;IAChC,OAAO,KAAK,EAAE,CAAC;QACb,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACxC,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;IAC5B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"alog.js","sourceRoot":"","sources":["../../../src/element-template/debug/alog.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@
4
4
  import { profileEnd, profileStart } from '../../shared/profile.js';
5
5
  const elementTemplatePAPINameList = [
6
6
  '__CreateElementTemplate',
7
+ '__CreateTypedElementTemplate',
7
8
  '__SetAttributeOfElementTemplate',
8
9
  '__InsertNodeToElementTemplate',
9
10
  '__RemoveNodeFromElementTemplate',
@@ -39,6 +40,9 @@ export function initElementTemplatePAPICallAlog(globalWithIndex = globalThis) {
39
40
  if (elementTemplatePAPIName === '__CreateElementTemplate' && result != null) {
40
41
  elementTemplateMap.set(result, `${String(args[0])}#${String(args[4])}`);
41
42
  }
43
+ else if (elementTemplatePAPIName === '__CreateTypedElementTemplate' && result != null) {
44
+ elementTemplateMap.set(result, `${String(args[0])}#${String(args[3])}`);
45
+ }
42
46
  const formattedResult = result == null ? undefined : formatValue(result, elementTemplateMap);
43
47
  console.alog?.(`[ReactLynxDebug] ElementTemplate API call #${++count}: ${elementTemplatePAPIName}(${args.map(arg => formatValue(arg, elementTemplateMap)).join(', ')})${formattedResult == null ? '' : ` => ${formattedResult}`}`);
44
48
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"elementPAPICall.js","sourceRoot":"","sources":["../../../src/element-template/debug/elementPAPICall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elementPAPICall.js","sourceRoot":"","sources":["../../../src/element-template/debug/elementPAPICall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Maps pre-hydration background handle ids to stable hydrated handle ids.
3
+ */
4
+ declare const hydrationMap: Map<number, number>;
5
+ export {};
@@ -0,0 +1,12 @@
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
+ /**
5
+ * Maps pre-hydration background handle ids to stable hydrated handle ids.
6
+ */
7
+ const hydrationMap = /*#__PURE__*/ new Map();
8
+ /**
9
+ * @internal
10
+ */
11
+ export { hydrationMap };
12
+ //# sourceMappingURL=hydration-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydration-map.js","sourceRoot":"","sources":["../../src/element-template/hydration-map.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D;;GAEG;AACH,MAAM,YAAY,GAAwB,aAAa,CAAC,IAAI,GAAG,EAAkB,CAAC;AAElF;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,7 +1,28 @@
1
1
  import { Children, Fragment, cloneElement, createElement, createRef, forwardRef, isValidElement, lazy, memo, useSyncExternalStore } from 'preact/compat';
2
+ import type { Consumer, FC, ReactNode } from 'react';
3
+ import type { GlobalProps } from '../core/globalProps.js';
4
+ import { useLynxGlobalEventListener } from '../core/hooks/useLynxGlobalEventListener.js';
5
+ import { withInitDataInState } from '../core/initData.js';
6
+ import type { InitData } from '../lynx-api.js';
2
7
  import './native/index.js';
3
8
  export { Component, createContext } from 'preact';
4
9
  export { PureComponent } from 'preact/compat';
5
- export * from './hooks/react.js';
10
+ export * from '@lynx-js/react/hooks';
6
11
  export { Children, createRef, Fragment, isValidElement, memo, forwardRef, lazy, createElement, cloneElement, useSyncExternalStore, };
12
+ export declare const InitDataProvider: FC<{
13
+ children?: ReactNode | undefined;
14
+ }>;
15
+ export declare const InitDataConsumer: Consumer<InitData>;
16
+ export declare const useInitData: () => InitData;
17
+ export declare const useInitDataChanged: (callback: (data: InitData) => void) => void;
18
+ export declare const GlobalPropsProvider: FC<{
19
+ children?: ReactNode | undefined;
20
+ }>;
21
+ export declare const GlobalPropsConsumer: Consumer<GlobalProps>;
22
+ export declare const useGlobalProps: () => GlobalProps;
23
+ export declare const useGlobalPropsChanged: (callback: (data: GlobalProps) => void) => void;
24
+ export { withInitDataInState };
25
+ export { useLynxGlobalEventListener };
7
26
  export * from './client/root.js';
27
+ export type { GlobalProps } from '../core/globalProps.js';
28
+ export type { DataProcessorDefinition, DataProcessors, InitData, InitDataRaw } from '../lynx-api.js';
@@ -2,13 +2,16 @@
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
  import { Children, Component, Fragment, PureComponent, cloneElement, createContext, createElement, createRef, forwardRef, isValidElement, lazy, memo, useSyncExternalStore, } from 'preact/compat';
5
- import { useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, } from './hooks/react.js';
5
+ import { useCallback, useContext, useDebugValue, useEffect, useImperativeHandle, useLayoutEffect, useMemo, useReducer, useRef, useState, } from '@lynx-js/react/hooks';
6
+ import { createGlobalProps } from '../core/globalProps.js';
7
+ import { useLynxGlobalEventListener } from '../core/hooks/useLynxGlobalEventListener.js';
8
+ import { factory, withInitDataInState } from '../core/initData.js';
6
9
  import './native/index.js';
7
10
  // import './lynx/component.js';
8
11
  // import { Suspense } from './lynx/suspense.js';
9
12
  export { Component, createContext } from 'preact';
10
13
  export { PureComponent } from 'preact/compat';
11
- export * from './hooks/react.js';
14
+ export * from '@lynx-js/react/hooks';
12
15
  /**
13
16
  * @internal
14
17
  */
@@ -41,5 +44,32 @@ export default {
41
44
  export { Children, createRef, Fragment, isValidElement, memo, forwardRef,
42
45
  // Suspense,
43
46
  lazy, createElement, cloneElement, useSyncExternalStore, };
47
+ const _InitData = /* @__PURE__ */ factory({
48
+ createContext,
49
+ useState,
50
+ createElement,
51
+ useLynxGlobalEventListener,
52
+ }, '__initData', 'onDataChanged');
53
+ // @ts-expect-error make preact and react types work
54
+ export const InitDataProvider = /* @__PURE__ */ _InitData.Provider();
55
+ // @ts-expect-error make preact and react types work
56
+ export const InitDataConsumer = /* @__PURE__ */ _InitData.Consumer();
57
+ export const useInitData = /* @__PURE__ */ _InitData.use();
58
+ export const useInitDataChanged = /* @__PURE__ */ _InitData.useChanged();
59
+ const _GlobalProps = /* @__PURE__ */ createGlobalProps({
60
+ createContext,
61
+ useState,
62
+ createElement,
63
+ useLynxGlobalEventListener,
64
+ });
65
+ // @ts-expect-error make preact and react types work
66
+ export const GlobalPropsProvider = /* @__PURE__ */ _GlobalProps.Provider();
67
+ // @ts-expect-error make preact and react types work
68
+ export const GlobalPropsConsumer = /* @__PURE__ */ _GlobalProps.Consumer();
69
+ export const useGlobalProps = /* @__PURE__ */ _GlobalProps.use();
70
+ export const useGlobalPropsChanged = /* @__PURE__ */ _GlobalProps
71
+ .useChanged();
72
+ export { withInitDataInState };
73
+ export { useLynxGlobalEventListener };
44
74
  export * from './client/root.js';
45
75
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/element-template/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,EACV,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,EACb,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,UAAU,EACV,MAAM,EACN,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,mBAAmB,CAAC;AAC3B,gCAAgC;AAChC,iDAAiD;AAEjD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,kBAAkB,CAAC;AAEjC;;GAEG;AACH,eAAe;IACb,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,SAAS;IACT,eAAe;IACf,MAAM;IACN,mBAAmB;IACnB,OAAO;IACP,WAAW;IACX,UAAU;IACV,aAAa;IACb,oBAAoB;IAEpB,aAAa;IACb,SAAS;IACT,QAAQ;IACR,cAAc;IACd,QAAQ;IACR,SAAS;IACT,aAAa;IACb,IAAI;IACJ,UAAU;IACV,YAAY;IACZ,IAAI;IACJ,aAAa;CACd,CAAC;AAEF,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,UAAU;AACV,YAAY;AACZ,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,oBAAoB,GACrB,CAAC;AAEF,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/element-template/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,EACb,SAAS,EACT,UAAU,EACV,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,WAAW,EACX,UAAU,EACV,aAAa,EACb,SAAS,EACT,mBAAmB,EACnB,eAAe,EACf,OAAO,EACP,UAAU,EACV,MAAM,EACN,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,mBAAmB,CAAC;AAC3B,gCAAgC;AAChC,iDAAiD;AAEjD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AAErC;;GAEG;AACH,eAAe;IACb,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,SAAS;IACT,eAAe;IACf,MAAM;IACN,mBAAmB;IACnB,OAAO;IACP,WAAW;IACX,UAAU;IACV,aAAa;IACb,oBAAoB;IAEpB,aAAa;IACb,SAAS;IACT,QAAQ;IACR,cAAc;IACd,QAAQ;IACR,SAAS;IACT,aAAa;IACb,IAAI;IACJ,UAAU;IACV,YAAY;IACZ,IAAI;IACJ,aAAa;CACd,CAAC;AAEF,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,cAAc,EACd,IAAI,EACJ,UAAU;AACV,YAAY;AACZ,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,oBAAoB,GACrB,CAAC;AAEF,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CACvC;IACE,aAAa;IACb,QAAQ;IACR,aAAa;IACb,0BAA0B;CAC3B,EACD,YAAY,EACZ,eAAe,CAChB,CAAC;AAEF,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAA6C,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC/G,oDAAoD;AACpD,MAAM,CAAC,MAAM,gBAAgB,GAAuB,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;AACzF,MAAM,CAAC,MAAM,WAAW,GAAmB,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAiD,eAAe,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;AAEvH,MAAM,YAAY,GAAG,eAAe,CAAC,iBAAiB,CAAc;IAClE,aAAa;IACb,QAAQ;IACR,aAAa;IACb,0BAA0B;CAC3B,CAAC,CAAC;AAEH,oDAAoD;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAA6C,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AACrH,oDAAoD;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAA0B,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;AAClG,MAAM,CAAC,MAAM,cAAc,GAAsB,eAAe,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;AACpF,MAAM,CAAC,MAAM,qBAAqB,GAAoD,eAAe,CAAC,YAAY;KAC/G,UAAU,EAAE,CAAC;AAEhB,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAC/B,OAAO,EAAE,0BAA0B,EAAE,CAAC;AAEtC,cAAc,kBAAkB,CAAC"}
@@ -3,4 +3,4 @@ import { __root } from './runtime/page/root-instance.js';
3
3
  export { __root };
4
4
  export { options, Component, process, } from 'preact';
5
5
  export type { Options } from 'preact';
6
- export { __etAttrPlanMap, adaptEventAttrSlot, adaptSpreadAttrSlot } from './runtime/template/attr-slot-plan.js';
6
+ export { withInitDataInState } from '../core/initData.js';
@@ -24,7 +24,7 @@ export { options,
24
24
  // Component is not an internal API, but refresh needs it from 'react/internal'
25
25
  Component, process, } from 'preact';
26
26
  // export { loadDynamicJS, __dynamicImport } from '../lynx/dynamic-js.js';
27
- // export { withInitDataInState } from '../compat/initData.js';
27
+ export { withInitDataInState } from '../core/initData.js';
28
28
  // export { wrapWithLynxComponent } from '../compat/lynxComponent.js';
29
29
  /**
30
30
  * @internal a polyfill for <component is=? />
@@ -39,6 +39,5 @@ Component, process, } from 'preact';
39
39
  // export { transformToWorklet } from '../worklet/call/transformToWorklet.js';
40
40
  // export { registerWorkletOnBackground } from '../worklet/hmr.js';
41
41
  // export { loadWorkletRuntime } from '@lynx-js/react/worklet-runtime/bindings';
42
- export { __etSlot } from './runtime/components/slot.js';
43
- export { __etAttrPlanMap, adaptEventAttrSlot, adaptSpreadAttrSlot } from './runtime/template/attr-slot-plan.js';
42
+ export { __etAttrPlanMap, adaptEventAttrSlot, adaptRefAttrSlot, adaptSpreadAttrSlot, } from './runtime/template/attr-slot-plan.js';
44
43
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/element-template/internal.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,iEAAiE;AACjE,mCAAmC;AAEnC,OAAO,mBAAmB,CAAC;AAE3B,kEAAkE;AAClE,oDAAoD;AACpD,2DAA2D;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACR;IAAnB,YAAmB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAC7B,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;CACF;AAED,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,OAAO,EACL,OAAO;AACP,+EAA+E;AAC/E,SAAS,EACT,OAAO,GACR,MAAM,QAAQ,CAAC;AAGhB,0EAA0E;AAE1E,+DAA+D;AAE/D,sEAAsE;AAEtE;;GAEG;AACH,qFAAqF;AACrF,sEAAsE;AACtE,uDAAuD;AACvD,oBAAoB;AACpB,KAAK;AAEL,2DAA2D;AAE3D,0FAA0F;AAC1F,8EAA8E;AAC9E,mEAAmE;AACnE,gFAAgF;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../src/element-template/internal.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,iEAAiE;AACjE,mCAAmC;AAEnC,OAAO,mBAAmB,CAAC;AAE3B,kEAAkE;AAClE,oDAAoD;AACpD,2DAA2D;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAEzD;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACR;IAAnB,YAAmB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;QAC7B,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC9F,CAAC;CACF;AAED,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,OAAO,EACL,OAAO;AACP,+EAA+E;AAC/E,SAAS,EACT,OAAO,GACR,MAAM,QAAQ,CAAC;AAGhB,0EAA0E;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,sEAAsE;AAEtE;;GAEG;AACH,qFAAqF;AACrF,sEAAsE;AACtE,uDAAuD;AACvD,oBAAoB;AACpB,KAAK;AAEL,2DAA2D;AAE3D,0FAA0F;AAC1F,8EAA8E;AAC9E,mEAAmE;AACnE,gFAAgF;AAChF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sCAAsC,CAAC"}
@@ -1,4 +1,7 @@
1
- import { profileEnd, profileStart } from '../debug/profile.js';
1
+ // Copyright 2024 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 { createProcessData } from '../../core/lynx-data-processors.js';
2
5
  export function setupLynxEnv() {
3
6
  if (!__LEPUS__) {
4
7
  let initData = {};
@@ -35,53 +38,7 @@ export function setupLynxEnv() {
35
38
  }
36
39
  }
37
40
  lynx.registerDataProcessors = function (dataProcessorDefinition) {
38
- let hasDefaultDataProcessorExecuted = false;
39
- globalThis.processData = (data, processorName) => {
40
- if (__PROFILE__) {
41
- profileStart('processData');
42
- }
43
- let r;
44
- try {
45
- if (processorName) {
46
- r = dataProcessorDefinition?.dataProcessors?.[processorName]?.(data) ?? data;
47
- }
48
- else {
49
- r = dataProcessorDefinition?.defaultDataProcessor?.(data) ?? data;
50
- }
51
- }
52
- catch (e) {
53
- lynx.reportError(e);
54
- r = {};
55
- }
56
- if (__PROFILE__) {
57
- profileEnd();
58
- }
59
- if (hasDefaultDataProcessorExecuted === false) {
60
- // @ts-expect-error todo: add types to i18n logic
61
- if (globalThis.__I18N_RESOURCE_TRANSLATION__) {
62
- r = {
63
- ...r,
64
- // @ts-expect-error todo: add types to i18n logic
65
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
66
- __I18N_RESOURCE_TRANSLATION__: globalThis.__I18N_RESOURCE_TRANSLATION__,
67
- };
68
- }
69
- // @ts-expect-error todo: add types to __EXTRACT_STR__
70
- if (__EXTRACT_STR__) {
71
- r = {
72
- ...r,
73
- // @ts-expect-error todo: add types to __EXTRACT_STR__
74
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
75
- _EXTRACT_STR: __EXTRACT_STR_IDENT_FLAG__,
76
- };
77
- }
78
- }
79
- if (processorName) { }
80
- else {
81
- hasDefaultDataProcessorExecuted = true;
82
- }
83
- return r;
84
- };
41
+ globalThis.processData = createProcessData(dataProcessorDefinition);
85
42
  };
86
43
  lynx.registerDataProcessors();
87
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/element-template/lynx/env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/element-template/lynx/env.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAGvE,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,QAAQ,GAA4B,EAAE,CAAC;QAC3C,IAAI,UAAU,GAA4B,EAAE,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,MAAM,GAAI,cAEd;gBACA,EAAE,EAAE,EAAE,OAAO,CAAC;YAChB,IAAI,MAAM,EAAE,CAAC;gBACX,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACjC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QAEV,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;QACjD,IAAI,CAAC,sBAAsB,GAAG,cAAY,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,GAAG;QAChB,kCAAkC;SACnC,CAAC;QAEF,IAAI,CAAC,2BAA2B,GAAG,UACjC,SAAiB,EACjB,MAAW;YAEX,kBAAkB,CAAC,CAAC,sBAAsB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC;QAEF,CAAC;YACC,+DAA+D;YAC/D,SAAS,MAAM,CAAC,KAAa;gBAC3B,OAAO,SAAS,KAAK,SAAS,CAAC;YACjC,CAAC;YACD,8GAA8G;YAC9G,wBAAwB;YACxB,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,EAAE,CAAC;gBAClD,wBAAwB;gBACxB,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;YACrC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,sBAAsB,GAAG,UAC5B,uBAAiD;YAEjD,UAAU,CAAC,WAAW,GAAG,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;QACtE,CAAC,CAAC;QAEF,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- import '../hooks/react.js';
1
+ import '@lynx-js/react/hooks';
@@ -1,12 +1,17 @@
1
1
  // Copyright 2024 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 '../hooks/react.js';
4
+ import '@lynx-js/react/hooks';
5
+ import { render } from 'preact';
5
6
  import { callDestroyLifetimeFun } from './callDestroyLifetimeFun.js';
6
7
  import { injectCalledByNative } from './main-thread-api.js';
7
8
  import { installOnMtsDestruction } from './mts-destroy.js';
8
9
  import { installElementTemplatePatchListener } from './patch-listener.js';
10
+ import { reloadBackground } from './reload.js';
11
+ import { runWithForceRootRender } from '../../core/forceRootRender.js';
12
+ import { updateGlobalProps as updateGlobalPropsCore } from '../../core/globalProps.js';
9
13
  import { installMainThreadHooks } from '../../core/hooks/mainThreadImpl.js';
14
+ import { updateCardData } from '../../core/lynx-update-data.js';
10
15
  import { installElementTemplateCommitHook } from '../background/commit-hook.js';
11
16
  import { setupBackgroundElementTemplateDocument } from '../background/document.js';
12
17
  import { installElementTemplateHydrationListener } from '../background/hydration-listener.js';
@@ -16,7 +21,25 @@ import { initProfileHook } from '../debug/profile.js';
16
21
  import { setupLynxEnv } from '../lynx/env.js';
17
22
  import { initTimingAPI } from '../lynx/performance.js';
18
23
  import { publicComponentEvent, publishEvent, resetEventStateForRuntime } from '../prop-adapters/event.js';
19
- import { setRoot } from '../runtime/page/root-instance.js';
24
+ import { __root, setRoot } from '../runtime/page/root-instance.js';
25
+ function forceRootRender() {
26
+ runWithForceRootRender({
27
+ getRootVNode: () => __root.__jsx,
28
+ setRootVNode: (vnode) => {
29
+ // @ts-expect-error: __root.__jsx is a Preact VNode during background force render.
30
+ __root.__jsx = vnode;
31
+ },
32
+ render: () => {
33
+ render(__root.__jsx, __root);
34
+ },
35
+ });
36
+ }
37
+ const updateGlobalPropsOptions = {
38
+ forceRerender: forceRootRender,
39
+ };
40
+ function updateGlobalProps(newData) {
41
+ updateGlobalPropsCore(newData, updateGlobalPropsOptions);
42
+ }
20
43
  function init() {
21
44
  if (typeof __ALOG_ELEMENT_API__ !== 'undefined' && __ALOG_ELEMENT_API__) {
22
45
  initElementTemplatePAPICallAlog();
@@ -39,6 +62,9 @@ function init() {
39
62
  lynxCoreInject.tt.callDestroyLifetimeFun = callDestroyLifetimeFun;
40
63
  lynxCoreInject.tt.publishEvent = publishEvent;
41
64
  lynxCoreInject.tt.publicComponentEvent = publicComponentEvent;
65
+ lynxCoreInject.tt.updateGlobalProps = updateGlobalProps;
66
+ lynxCoreInject.tt.updateCardData = updateCardData;
67
+ lynxCoreInject.tt.onAppReload = reloadBackground;
42
68
  installElementTemplateCommitHook();
43
69
  if (process.env['NODE_ENV'] !== 'test') {
44
70
  initTimingAPI();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/element-template/native/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,mBAAmB,CAAC;AAC3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,sCAAsC,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,uCAAuC,EAAE,MAAM,qCAAqC,CAAC;AAC9F,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC1G,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAE3D,SAAS,IAAI;IACX,IAAI,OAAO,oBAAoB,KAAK,WAAW,IAAI,oBAAoB,EAAE,CAAC;QACxE,+BAA+B,EAAE,CAAC;IACpC,CAAC;IAED,IAAI,eAAe,EAAE,CAAC;QACpB,sBAAsB,EAAE,CAAC;QACzB,oBAAoB,EAAE,CAAC;QACvB,mCAAmC,EAAE,CAAC;QACtC,uBAAuB,EAAE,CAAC;QAC1B,IAAI,WAAW,EAAE,CAAC;YAChB,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,wBAAwB,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,iCAAiC,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,sCAAsC,EAAE,CAAC;QACzC,uCAAuC,EAAE,CAAC;QAC1C,yBAAyB,EAAE,CAAC;QAC5B,cAAc,CAAC,EAAE,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QAClE,cAAc,CAAC,EAAE,CAAC,YAAY,GAAG,YAAY,CAAC;QAC9C,cAAc,CAAC,EAAE,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QAC9D,gCAAgC,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;YACvC,aAAa,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;gBAC7C,eAAe,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAED,YAAY,EAAE,CAAC;AACjB,CAAC;AAED,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/element-template/native/index.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,15 @@
1
1
  // Copyright 2024 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 { setupPage } from '../runtime/page/page.js';
5
- import { renderMainThread } from '../runtime/render/render-main-thread.js';
4
+ import { reloadMainThread } from './reload.js';
5
+ import { applyUpdatePageData } from '../../core/lynx-page-data.js';
6
+ import { __page, createElementTemplatePage, setupPage } from '../runtime/page/page.js';
7
+ import { renderMainThread, resetMainThreadRootRefs } from '../runtime/render/render-main-thread.js';
6
8
  function injectCalledByNative() {
7
9
  const calledByNative = {
8
10
  renderPage,
9
- updatePage: function () { },
10
- updateGlobalProps: function () { },
11
+ updatePage,
12
+ updateGlobalProps,
11
13
  getPageData: function () {
12
14
  return null;
13
15
  },
@@ -17,9 +19,29 @@ function injectCalledByNative() {
17
19
  }
18
20
  function renderPage(data) {
19
21
  lynx.__initData = data ?? {};
20
- setupPage(__CreatePage('0', 0));
22
+ setupPage(createElementTemplatePage());
23
+ resetMainThreadRootRefs();
21
24
  renderMainThread();
22
25
  }
26
+ function updatePage(data, options) {
27
+ if (__FIRST_SCREEN_SYNC_TIMING__ !== 'immediately') {
28
+ return;
29
+ }
30
+ if (options?.reloadTemplate) {
31
+ reloadMainThread(data, options);
32
+ return;
33
+ }
34
+ applyUpdatePageData(data, options);
35
+ __FlushElementTree(__page, options ?? {});
36
+ }
37
+ function updateGlobalProps(_data, options) {
38
+ if (options) {
39
+ __FlushElementTree(__page, options);
40
+ }
41
+ else {
42
+ __FlushElementTree();
43
+ }
44
+ }
23
45
  /**
24
46
  * @internal
25
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":"main-thread-api.js","sourceRoot":"","sources":["../../../src/element-template/native/main-thread-api.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,SAAS,oBAAoB;IAC3B,MAAM,cAAc,GAAqB;QACvC,UAAU;QACV,UAAU,EAAE,cAAkB,CAAC;QAC/B,iBAAiB,EAAE,cAAkB,CAAC;QACtC,WAAW,EAAE;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,gBAAgB,EAAE,cAAkB,CAAC;KACtC,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,UAAU,CAAC,IAAyC;IAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,SAAS,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAChC,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"main-thread-api.js","sourceRoot":"","sources":["../../../src/element-template/native/main-thread-api.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAEpG,SAAS,oBAAoB;IAC3B,MAAM,cAAc,GAAqB;QACvC,UAAU;QACV,UAAU;QACV,iBAAiB;QACjB,WAAW,EAAE;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,gBAAgB,EAAE,cAAkB,CAAC;KACtC,CAAC;IAEF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,UAAU,CAAC,IAAyC;IAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,SAAS,CAAC,yBAAyB,EAAE,CAAC,CAAC;IACvC,uBAAuB,EAAE,CAAC;IAC1B,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,UAAU,CAAC,IAAyC,EAAE,OAA0B;IACvF,IAAI,4BAA4B,KAAK,aAAa,EAAE,CAAC;QACnD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;QAC5B,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO;IACT,CAAC;IAED,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnC,kBAAkB,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc,EAAE,OAA0B;IACnE,IAAI,OAAO,EAAE,CAAC;QACZ,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,kBAAkB,EAAE,CAAC;IACvB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  // Copyright 2024 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 { getReloadVersion } from '../../core/reload-version.js';
4
5
  import { formatElementTemplateUpdateCommands } from '../debug/alog.js';
5
6
  import { markTiming, setPipeline } from '../lynx/performance.js';
6
7
  import { ElementTemplateLifecycleConstant } from '../protocol/lifecycle-constant.js';
@@ -12,7 +13,10 @@ export function installElementTemplatePatchListener() {
12
13
  listener = (event) => {
13
14
  const { data } = event;
14
15
  const payload = data;
15
- const hasOps = Array.isArray(payload?.ops);
16
+ if (typeof payload?.reloadVersion === 'number' && payload.reloadVersion < getReloadVersion()) {
17
+ return;
18
+ }
19
+ const hasOps = Array.isArray(payload?.ops) && payload.ops.length > 0;
16
20
  const flushOptions = payload?.flushOptions ?? {};
17
21
  const pipelineOptions = flushOptions.pipelineOptions;
18
22
  setPipeline(pipelineOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"patch-listener.js","sourceRoot":"","sources":["../../../src/element-template/native/patch-listener.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"patch-listener.js","sourceRoot":"","sources":["../../../src/element-template/native/patch-listener.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function reloadMainThread(data: unknown, options: UpdatePageOption): void;
2
+ export declare function reloadBackground(updateData: unknown): void;
@@ -0,0 +1,64 @@
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 { render } from 'preact';
5
+ import { applyUpdatePageData } from '../../core/lynx-page-data.js';
6
+ import { increaseReloadVersion } from '../../core/reload-version.js';
7
+ import { destroyElementTemplateBackgroundRuntime } from '../background/destroy.js';
8
+ import { setupBackgroundElementTemplateDocument } from '../background/document.js';
9
+ import { installElementTemplateHydrationListener } from '../background/hydration-listener.js';
10
+ import { BackgroundElementTemplateInstance } from '../background/instance.js';
11
+ import { profileEnd, profileStart } from '../debug/profile.js';
12
+ import { resetEventStateForRuntime } from '../prop-adapters/event.js';
13
+ import { __page } from '../runtime/page/page.js';
14
+ import { __root, setRoot } from '../runtime/page/root-instance.js';
15
+ import { removeMainThreadRootRefs, renderMainThread } from '../runtime/render/render-main-thread.js';
16
+ import { resetTemplateId } from '../runtime/template/handle.js';
17
+ import { elementTemplateRegistry } from '../runtime/template/registry.js';
18
+ export function reloadMainThread(data, options) {
19
+ if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
20
+ profileStart('ReactLynx::reloadMainThread');
21
+ }
22
+ try {
23
+ increaseReloadVersion();
24
+ applyUpdatePageData(data, options);
25
+ elementTemplateRegistry.clear();
26
+ resetTemplateId();
27
+ const oldRoot = __root;
28
+ removeMainThreadRootRefs();
29
+ setRoot({ __jsx: oldRoot.__jsx });
30
+ renderMainThread();
31
+ __FlushElementTree(__page, options);
32
+ }
33
+ finally {
34
+ if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
35
+ profileEnd();
36
+ }
37
+ }
38
+ }
39
+ export function reloadBackground(updateData) {
40
+ if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
41
+ profileStart('ReactLynx::reloadBackground');
42
+ }
43
+ try {
44
+ const jsx = __root.__jsx;
45
+ destroyElementTemplateBackgroundRuntime();
46
+ increaseReloadVersion();
47
+ // Reload creates a new object so InitData Provider / Consumer observers do
48
+ // not retain the pre-reload object identity.
49
+ lynx.__initData = Object.assign({}, lynx.__initData);
50
+ applyUpdatePageData(updateData);
51
+ setRoot(new BackgroundElementTemplateInstance('root'));
52
+ __root.__jsx = jsx;
53
+ setupBackgroundElementTemplateDocument();
54
+ installElementTemplateHydrationListener();
55
+ resetEventStateForRuntime();
56
+ render(jsx, __root);
57
+ }
58
+ finally {
59
+ if (typeof __PROFILE__ !== 'undefined' && __PROFILE__) {
60
+ profileEnd();
61
+ }
62
+ }
63
+ }
64
+ //# sourceMappingURL=reload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reload.js","sourceRoot":"","sources":["../../../src/element-template/native/reload.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,yEAAyE;AACzE,0DAA0D;AAG1D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,uCAAuC,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,sCAAsC,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,uCAAuC,EAAE,MAAM,qCAAqC,CAAC;AAC9F,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,UAAU,gBAAgB,CAAC,IAAa,EAAE,OAAyB;IACvE,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;QACtD,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC;QACH,qBAAqB,EAAE,CAAC;QACxB,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEnC,uBAAuB,CAAC,KAAK,EAAE,CAAC;QAChC,eAAe,EAAE,CAAC;QAElB,MAAM,OAAO,GAAG,MAAM,CAAC;QACvB,wBAAwB,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAClC,gBAAgB,EAAE,CAAC;QAEnB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;YAAS,CAAC;QACT,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;YACtD,UAAU,EAAE,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAmB;IAClD,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;QACtD,YAAY,CAAC,6BAA6B,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC;QACzB,uCAAuC,EAAE,CAAC;QAC1C,qBAAqB,EAAE,CAAC;QACxB,2EAA2E;QAC3E,6CAA6C;QAC7C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEhC,OAAO,CAAC,IAAI,iCAAiC,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;QACnB,sCAAsC,EAAE,CAAC;QACzC,uCAAuC,EAAE,CAAC;QAC1C,yBAAyB,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAqB,EAAE,MAAkC,CAAC,CAAC;IACpE,CAAC;YAAS,CAAC;QACT,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,EAAE,CAAC;YACtD,UAAU,EAAE,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export type EtEventHandler = (data: EventDataType) => unknown;
2
2
  export declare function clearEventState(): void;
3
+ export declare function clearPendingEvents(): void;
3
4
  export declare function resetEventStateForRuntime(): void;
4
5
  export declare function getEventHandlerForEventValue(eventValue: string): EtEventHandler | undefined;
5
6
  export declare function publishEvent(eventValue: string, data: EventDataType): void;