@faiwer/react 0.8.4 → 0.9.0

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 (207) hide show
  1. package/README.md +20 -17
  2. package/dist/core/actions/applyAction.d.ts.map +1 -1
  3. package/dist/core/actions/applyAction.js +2 -0
  4. package/dist/core/actions/applyAction.js.map +1 -1
  5. package/dist/core/actions/createComment.action.d.ts +2 -2
  6. package/dist/core/actions/createComment.action.d.ts.map +1 -1
  7. package/dist/core/actions/createComment.action.js +1 -8
  8. package/dist/core/actions/createComment.action.js.map +1 -1
  9. package/dist/core/actions/createContainer.action.d.ts +7 -0
  10. package/dist/core/actions/createContainer.action.d.ts.map +1 -0
  11. package/dist/core/actions/createContainer.action.js +28 -0
  12. package/dist/core/actions/createContainer.action.js.map +1 -0
  13. package/dist/core/actions/createTag.action.d.ts +2 -1
  14. package/dist/core/actions/createTag.action.d.ts.map +1 -1
  15. package/dist/core/actions/createTag.action.js +22 -4
  16. package/dist/core/actions/createTag.action.js.map +1 -1
  17. package/dist/core/actions/createText.action.d.ts.map +1 -1
  18. package/dist/core/actions/createText.action.js +2 -5
  19. package/dist/core/actions/createText.action.js.map +1 -1
  20. package/dist/core/actions/dom/attributes.d.ts.map +1 -1
  21. package/dist/core/actions/dom/attributes.js +4 -1
  22. package/dist/core/actions/dom/attributes.js.map +1 -1
  23. package/dist/core/actions/dom/css.d.ts.map +1 -1
  24. package/dist/core/actions/dom/css.js +2 -1
  25. package/dist/core/actions/dom/css.js.map +1 -1
  26. package/dist/core/actions/dom/events.d.ts.map +1 -1
  27. package/dist/core/actions/dom/events.js +15 -3
  28. package/dist/core/actions/dom/events.js.map +1 -1
  29. package/dist/core/actions/dom/value.d.ts +17 -0
  30. package/dist/core/actions/dom/value.d.ts.map +1 -0
  31. package/dist/core/actions/dom/value.js +204 -0
  32. package/dist/core/actions/dom/value.js.map +1 -0
  33. package/dist/core/actions/helpers.d.ts +17 -10
  34. package/dist/core/actions/helpers.d.ts.map +1 -1
  35. package/dist/core/actions/helpers.js +63 -68
  36. package/dist/core/actions/helpers.js.map +1 -1
  37. package/dist/core/actions/relayout.action.d.ts +2 -1
  38. package/dist/core/actions/relayout.action.d.ts.map +1 -1
  39. package/dist/core/actions/relayout.action.js +119 -30
  40. package/dist/core/actions/relayout.action.js.map +1 -1
  41. package/dist/core/actions/remove.action.d.ts +2 -2
  42. package/dist/core/actions/remove.action.d.ts.map +1 -1
  43. package/dist/core/actions/remove.action.js +20 -16
  44. package/dist/core/actions/remove.action.js.map +1 -1
  45. package/dist/core/actions/replace.action.d.ts +1 -1
  46. package/dist/core/actions/replace.action.d.ts.map +1 -1
  47. package/dist/core/actions/replace.action.js +30 -23
  48. package/dist/core/actions/replace.action.js.map +1 -1
  49. package/dist/core/actions/setAttr.action.d.ts +1 -1
  50. package/dist/core/actions/setAttr.action.d.ts.map +1 -1
  51. package/dist/core/actions/setAttr.action.js +48 -6
  52. package/dist/core/actions/setAttr.action.js.map +1 -1
  53. package/dist/core/actions/setProps.action.d.ts.map +1 -1
  54. package/dist/core/actions/setProps.action.js +2 -1
  55. package/dist/core/actions/setProps.action.js.map +1 -1
  56. package/dist/core/actions/setRef.action.d.ts +1 -1
  57. package/dist/core/actions/setRef.action.d.ts.map +1 -1
  58. package/dist/core/actions/setRef.action.js +4 -4
  59. package/dist/core/actions/setRef.action.js.map +1 -1
  60. package/dist/core/actions/setText.action.d.ts.map +1 -1
  61. package/dist/core/actions/setText.action.js +3 -3
  62. package/dist/core/actions/setText.action.js.map +1 -1
  63. package/dist/core/classComponent.d.ts.map +1 -1
  64. package/dist/core/classComponent.js +4 -3
  65. package/dist/core/classComponent.js.map +1 -1
  66. package/dist/core/compact.d.ts +10 -29
  67. package/dist/core/compact.d.ts.map +1 -1
  68. package/dist/core/compact.js +12 -100
  69. package/dist/core/compact.js.map +1 -1
  70. package/dist/core/components.d.ts +2 -2
  71. package/dist/core/components.d.ts.map +1 -1
  72. package/dist/core/components.js +19 -6
  73. package/dist/core/components.js.map +1 -1
  74. package/dist/core/createElement.d.ts +2 -8
  75. package/dist/core/createElement.d.ts.map +1 -1
  76. package/dist/core/createElement.js +3 -1
  77. package/dist/core/createElement.js.map +1 -1
  78. package/dist/core/reactNodeToFiberNode.d.ts.map +1 -1
  79. package/dist/core/reactNodeToFiberNode.js +6 -1
  80. package/dist/core/reactNodeToFiberNode.js.map +1 -1
  81. package/dist/core/reconciliation/app.js +3 -3
  82. package/dist/core/reconciliation/app.js.map +1 -1
  83. package/dist/core/reconciliation/collect/fromApp.d.ts.map +1 -1
  84. package/dist/core/reconciliation/collect/fromApp.js +3 -27
  85. package/dist/core/reconciliation/collect/fromApp.js.map +1 -1
  86. package/dist/core/reconciliation/collect/fromChildrenPair.d.ts.map +1 -1
  87. package/dist/core/reconciliation/collect/fromChildrenPair.js +11 -6
  88. package/dist/core/reconciliation/collect/fromChildrenPair.js.map +1 -1
  89. package/dist/core/reconciliation/collect/fromComponent.d.ts +2 -2
  90. package/dist/core/reconciliation/collect/fromComponent.d.ts.map +1 -1
  91. package/dist/core/reconciliation/collect/fromComponent.js +4 -8
  92. package/dist/core/reconciliation/collect/fromComponent.js.map +1 -1
  93. package/dist/core/reconciliation/collect/fromFiberPair.d.ts.map +1 -1
  94. package/dist/core/reconciliation/collect/fromFiberPair.js +2 -4
  95. package/dist/core/reconciliation/collect/fromFiberPair.js.map +1 -1
  96. package/dist/core/reconciliation/collect/fromNewFiber.d.ts.map +1 -1
  97. package/dist/core/reconciliation/collect/fromNewFiber.js +7 -15
  98. package/dist/core/reconciliation/collect/fromNewFiber.js.map +1 -1
  99. package/dist/core/reconciliation/errors/ReactError.d.ts +7 -0
  100. package/dist/core/reconciliation/errors/ReactError.d.ts.map +1 -0
  101. package/dist/core/reconciliation/errors/ReactError.js +26 -0
  102. package/dist/core/reconciliation/errors/ReactError.js.map +1 -0
  103. package/dist/core/reconciliation/errors/stack.d.ts +7 -1
  104. package/dist/core/reconciliation/errors/stack.d.ts.map +1 -1
  105. package/dist/core/reconciliation/errors/stack.js +63 -6
  106. package/dist/core/reconciliation/errors/stack.js.map +1 -1
  107. package/dist/core/reconciliation/fibers.d.ts +1 -0
  108. package/dist/core/reconciliation/fibers.d.ts.map +1 -1
  109. package/dist/core/reconciliation/fibers.js +3 -2
  110. package/dist/core/reconciliation/fibers.js.map +1 -1
  111. package/dist/core/reconciliation/heap.d.ts +18 -0
  112. package/dist/core/reconciliation/heap.d.ts.map +1 -0
  113. package/dist/core/reconciliation/heap.js +81 -0
  114. package/dist/core/reconciliation/heap.js.map +1 -0
  115. package/dist/core/reconciliation/invalidateFiber.d.ts.map +1 -1
  116. package/dist/core/reconciliation/invalidateFiber.js +6 -5
  117. package/dist/core/reconciliation/invalidateFiber.js.map +1 -1
  118. package/dist/core/reconciliation/mount.d.ts.map +1 -1
  119. package/dist/core/reconciliation/mount.js +14 -4
  120. package/dist/core/reconciliation/mount.js.map +1 -1
  121. package/dist/core/reconciliation/postCommit.d.ts +1 -1
  122. package/dist/core/reconciliation/postCommit.d.ts.map +1 -1
  123. package/dist/core/reconciliation/postCommit.js +17 -4
  124. package/dist/core/reconciliation/postCommit.js.map +1 -1
  125. package/dist/core/reconciliation/queue.d.ts +21 -0
  126. package/dist/core/reconciliation/queue.d.ts.map +1 -0
  127. package/dist/core/reconciliation/queue.js +55 -0
  128. package/dist/core/reconciliation/queue.js.map +1 -0
  129. package/dist/core/reconciliation/render.js +1 -1
  130. package/dist/core/reconciliation/render.js.map +1 -1
  131. package/dist/core/reconciliation/runFiberComponents.d.ts.map +1 -1
  132. package/dist/core/reconciliation/runFiberComponents.js +2 -1
  133. package/dist/core/reconciliation/runFiberComponents.js.map +1 -1
  134. package/dist/core/reconciliation/typeGuards.d.ts +3 -0
  135. package/dist/core/reconciliation/typeGuards.d.ts.map +1 -1
  136. package/dist/core/reconciliation/typeGuards.js +13 -0
  137. package/dist/core/reconciliation/typeGuards.js.map +1 -1
  138. package/dist/core/reconciliation/validateApp.d.ts +1 -1
  139. package/dist/core/reconciliation/validateApp.d.ts.map +1 -1
  140. package/dist/core/reconciliation/validateApp.js +28 -21
  141. package/dist/core/reconciliation/validateApp.js.map +1 -1
  142. package/dist/hooks/helpers.d.ts +2 -2
  143. package/dist/hooks/helpers.d.ts.map +1 -1
  144. package/dist/hooks/helpers.js +3 -2
  145. package/dist/hooks/helpers.js.map +1 -1
  146. package/dist/hooks/index.d.ts +1 -1
  147. package/dist/hooks/index.d.ts.map +1 -1
  148. package/dist/hooks/index.js +1 -1
  149. package/dist/hooks/index.js.map +1 -1
  150. package/dist/hooks/useContext.d.ts.map +1 -1
  151. package/dist/hooks/useContext.js +6 -6
  152. package/dist/hooks/useContext.js.map +1 -1
  153. package/dist/hooks/useEffect.d.ts +2 -1
  154. package/dist/hooks/useEffect.d.ts.map +1 -1
  155. package/dist/hooks/useEffect.js +1 -1
  156. package/dist/hooks/useEffect.js.map +1 -1
  157. package/dist/hooks/useRef.d.ts +8 -3
  158. package/dist/hooks/useRef.d.ts.map +1 -1
  159. package/dist/hooks/useRef.js +27 -0
  160. package/dist/hooks/useRef.js.map +1 -1
  161. package/dist/hooks/useState.d.ts +1 -1
  162. package/dist/hooks/useState.d.ts.map +1 -1
  163. package/dist/hooks/useState.js +4 -6
  164. package/dist/hooks/useState.js.map +1 -1
  165. package/dist/index.d.ts +3 -0
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.js +1 -0
  168. package/dist/index.js.map +1 -1
  169. package/dist/jsx.d.ts +159 -44
  170. package/dist/mocks.d.ts +0 -7
  171. package/dist/mocks.d.ts.map +1 -1
  172. package/dist/mocks.js +0 -6
  173. package/dist/mocks.js.map +1 -1
  174. package/dist/react.d.ts +46 -0
  175. package/dist/types/actions.d.ts +11 -4
  176. package/dist/types/actions.d.ts.map +1 -1
  177. package/dist/types/app.d.ts +12 -2
  178. package/dist/types/app.d.ts.map +1 -1
  179. package/dist/types/attributes.d.ts +42 -0
  180. package/dist/types/attributes.d.ts.map +1 -0
  181. package/dist/types/attributes.js +2 -0
  182. package/dist/types/attributes.js.map +1 -0
  183. package/dist/types/common.d.ts +10 -1
  184. package/dist/types/common.d.ts.map +1 -1
  185. package/dist/types/component.d.ts +5 -2
  186. package/dist/types/component.d.ts.map +1 -1
  187. package/dist/types/context.d.ts +3 -2
  188. package/dist/types/context.d.ts.map +1 -1
  189. package/dist/types/core.d.ts +17 -13
  190. package/dist/types/core.d.ts.map +1 -1
  191. package/dist/types/dom.d.ts +23 -22
  192. package/dist/types/dom.d.ts.map +1 -1
  193. package/dist/types/events.d.ts +18 -11
  194. package/dist/types/events.d.ts.map +1 -1
  195. package/dist/types/fiber.d.ts +29 -11
  196. package/dist/types/fiber.d.ts.map +1 -1
  197. package/dist/types/fiber.js +5 -1
  198. package/dist/types/fiber.js.map +1 -1
  199. package/dist/types/hooks.d.ts +4 -4
  200. package/dist/types/hooks.d.ts.map +1 -1
  201. package/dist/types/react.d.ts +35 -0
  202. package/dist/types/react.d.ts.map +1 -0
  203. package/dist/types/react.js +2 -0
  204. package/dist/types/react.js.map +1 -0
  205. package/dist/types/refs.d.ts +5 -8
  206. package/dist/types/refs.d.ts.map +1 -1
  207. package/package.json +11 -3
@@ -1,12 +1,12 @@
1
- import { nullthrows } from '../../utils';
1
+ import { nullthrowsForFiber, ReactError, } from '../reconciliation/errors/ReactError';
2
2
  /**
3
3
  * Replaces the text content within a Text DOM node.
4
4
  */
5
5
  export function setTextAction(fiber, { text }) {
6
6
  if (fiber.type !== 'text') {
7
- throw new Error(`Can't apply setText action to non-text node`);
7
+ throw new ReactError(fiber, `Can't apply setText action to non-text node`);
8
8
  }
9
9
  fiber.props = { text };
10
- nullthrows(fiber.element).textContent = text;
10
+ nullthrowsForFiber(fiber, fiber.element).textContent = text;
11
11
  }
12
12
  //# sourceMappingURL=setText.action.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setText.action.js","sourceRoot":"","sources":["../../../src/core/actions/setText.action.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB,EAAE,EAAE,IAAI,EAAiB,EAAE;IACvE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IACD,KAAK,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;AAAA,CAC9C"}
1
+ {"version":3,"file":"setText.action.js","sourceRoot":"","sources":["../../../src/core/actions/setText.action.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,UAAU,GACX,MAAM,qCAAqC,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB,EAAE,EAAE,IAAI,EAAiB,EAAE;IACvE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,UAAU,CAAC,KAAK,EAAE,6CAA6C,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;AAAA,CAC7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"classComponent.d.ts","sourceRoot":"","sources":["../../src/core/classComponent.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,oBAAoB,CAAC;AAG5B,eAAO,MAAM,gBAAgB,yEAO5B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,SAAS,CACpB,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,KAAK,SAAS,YAAY,GAAG,YAAY;IAEzC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAG,KAAK,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IAEvC,YAAY,KAAK,EAAE,KAAK,EAEvB;IAGD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAI;IAGpC,iBAAiB,IAAI,IAAI,CAAG;IAC5B,oBAAoB,IAAI,IAAI,CAAG;IAE/B,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,QAK1B;IAED,kBAAkB,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,QAAI;IAE3D,qBAAqB,CACnB,UAAU,EAAE,KAAK,EACjB,UAAU,EAAE,KAAK,EACjB,YAAY,CAAC,EAAE,OAAO,WAGvB;IAED,MAAM,IAAI,GAAG,CAAC,OAAO,CAEpB;IAED,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAEvD;IAED,uBAAuB,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAEzE;IAED,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAEtE;CACF;AASD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,KAAK,uBACL,KAAK,uGA6FN,CAAC;AAEF,MAAM,MAAM,cAAc,CACxB,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,KAAK,SAAS,YAAY,GAAG,YAAY,IACvC,KAAK,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"classComponent.d.ts","sourceRoot":"","sources":["../../src/core/classComponent.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EACb,MAAM,oBAAoB,CAAC;AAI5B,eAAO,MAAM,gBAAgB,yEAO5B,CAAC;AAEF;;;;GAIG;AACH,qBAAa,SAAS,CACpB,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,KAAK,SAAS,YAAY,GAAG,YAAY;IAEzC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAG,KAAK,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC7B,MAAM,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IAEvC,YAAY,KAAK,EAAE,KAAK,EAEvB;IAGD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAI;IAGpC,iBAAiB,IAAI,IAAI,CAAG;IAC5B,oBAAoB,IAAI,IAAI,CAAG;IAE/B,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,QAK1B;IAED,kBAAkB,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,QAAI;IAE3D,qBAAqB,CACnB,UAAU,EAAE,KAAK,EACjB,UAAU,EAAE,KAAK,EACjB,YAAY,CAAC,EAAE,OAAO,WAGvB;IAED,MAAM,IAAI,GAAG,CAAC,OAAO,CAKpB;IAED,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAEvD;IAED,uBAAuB,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAEzE;IAED,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAEtE;CACF;AASD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,KAAK,uBACL,KAAK,uGA6FN,CAAC;AAEF,MAAM,MAAM,cAAc,CACxB,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,KAAK,SAAS,YAAY,GAAG,YAAY,IACvC,KAAK,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { useContext, useEffect, useLayoutEffect, useMemo, useRef, useState, } from '../hooks';
2
2
  import { getCurrentComponentFiber } from './components';
3
+ import { ReactError } from './reconciliation/errors/ReactError';
3
4
  export const isComponentClass = (value) => {
4
5
  return (value != null &&
5
6
  typeof value === 'function' &&
@@ -36,13 +37,13 @@ export class Component {
36
37
  return true;
37
38
  }
38
39
  render() {
39
- throw new Error(`Render method must be overridden`);
40
+ throw new ReactError(getCurrentComponentFiber(), `Render method must be overridden`);
40
41
  }
41
42
  componentDidCatch(_error, _info) {
42
- throw new Error(`Not implemented`);
43
+ throw new ReactError(getCurrentComponentFiber(), `Not implemented`);
43
44
  }
44
45
  getSnapshotBeforeUpdate(_prevProps, _prevState) {
45
- throw new Error(`Not implemented`);
46
+ throw new ReactError(getCurrentComponentFiber(), `Not implemented`);
46
47
  }
47
48
  static getDerivedStateFromProps(_props, _state) {
48
49
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"classComponent.js","sourceRoot":"","sources":["../../src/core/classComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"classComponent.js","sourceRoot":"","sources":["../../src/core/classComponent.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,19 @@
1
- import { type DomNode, type FiberNode } from '../types';
2
- /**
3
- * Returns true if domNode is <!--r:begin:ID--> where ID is fiber.id
4
- */
5
- export declare const isBeginOf: (domNode: ChildNode, fiber: FiberNode) => domNode is Comment;
1
+ import { containerSym, type DomNode, type FiberNode } from '../types';
2
+ export declare const isAutoContainer: (fiber: FiberNode) => fiber is FiberNode & {
3
+ element: typeof containerSym;
4
+ };
6
5
  /**
7
- * Returns true if the given `fiber` is in solo compact mode. This means it
8
- * doesn't have its own direct DOM element. Instead, its `element` refers to its
9
- * only child's `element`, avoiding the need for <!--brackets-->.
6
+ * Returns true if the given `fiber` is in the single-child mode. This means it
7
+ * its `element` refers to its only child's DOM element.
10
8
  */
11
- export declare const isCompactSingleChild: (fiber: FiberNode) => fiber is FiberNode & {
9
+ export declare const isSingleChildContainer: (fiber: FiberNode) => fiber is FiberNode & {
12
10
  element: DomNode;
13
11
  };
14
12
  /**
15
- * Returns true if the given `fiber` is in none compact mode. This means it
16
- * has no fiber children, and its element is <!--r:empty:id-->
13
+ * Returns true if the given `fiber` is in the empty mode. This means it has no
14
+ * fiber children, and its element is <!--r:empty:id-->
17
15
  */
18
- export declare const isCompactNone: (fiber: FiberNode) => fiber is FiberNode & {
16
+ export declare const isEmptyContainer: (fiber: FiberNode) => fiber is FiberNode & {
19
17
  element: DomNode;
20
18
  };
21
- /**
22
- * If the given fiber node has <!--brackets-->, this function tries to apply one
23
- * of the "compact" optimizations:
24
- *
25
- * - If the node has no children, it replaces the brackets with
26
- * <!--r:empty:id-->
27
- * - If the node has only one child, it removes the brackets and sets
28
- * `fiber.element` to reference its only direct DOM child
29
- *
30
- * It also tries to recursively compact parent nodes when possible.
31
- */
32
- export declare function tryToCompactNode(fiber: FiberNode): void;
33
- /**
34
- * Converts <!--empty--> or the single compact container node into:
35
- * <!--begin-->...children...<!--end-->
36
- */
37
- export declare const unwrapCompactFiber: (fiber: FiberNode) => void;
38
19
  //# sourceMappingURL=compact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/core/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAGxD;;GAEG;AACH,eAAO,MAAM,SAAS,8DAKuC,CAAC;AAgB9D;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;CAOE,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,aAAa;;CAMQ,CAAC;AAEnC;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAiCvD;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,4BAuC9B,CAAC"}
1
+ {"version":3,"file":"compact.d.ts","sourceRoot":"","sources":["../../src/core/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAEZ,KAAK,OAAO,EACZ,KAAK,SAAS,EACf,MAAM,UAAU,CAAC;AAelB,eAAO,MAAM,eAAe;;CAGI,CAAC;AAEjC;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;CAOA,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;CAMK,CAAC"}
@@ -1,112 +1,24 @@
1
- import { buildComment, buildCommentText } from './reconciliation/comments';
2
- /**
3
- * Returns true if domNode is <!--r:begin:ID--> where ID is fiber.id
4
- */
5
- export const isBeginOf = (domNode, fiber) => domNode instanceof Comment &&
6
- domNode.textContent === buildCommentText('begin', fiber.id);
7
- /**
8
- * Returns true if domNode is <!--r:end:ID--> where ID is fiber.id
9
- */
10
- const isEndOf = (domNode, fiber) => domNode instanceof Comment &&
11
- domNode.textContent === buildCommentText('end', fiber.id);
1
+ import { containerSym, } from '../types';
2
+ import { buildCommentText } from './reconciliation/comments';
12
3
  /**
13
4
  * Returns true if domNode is <!--r:empty:ID--> where ID is fiber.id
14
5
  */
15
6
  const isEmptyOf = (domNode, fiber) => domNode instanceof Comment &&
16
7
  domNode.textContent === buildCommentText('empty', fiber.id);
8
+ // Returns true when the given fiber is a component or a fragment that contains
9
+ // more than one direct DOM-nodes.
10
+ export const isAutoContainer = (fiber) => fiber.element === containerSym;
17
11
  /**
18
- * Returns true if the given `fiber` is in solo compact mode. This means it
19
- * doesn't have its own direct DOM element. Instead, its `element` refers to its
20
- * only child's `element`, avoiding the need for <!--brackets-->.
12
+ * Returns true if the given `fiber` is in the single-child mode. This means it
13
+ * its `element` refers to its only child's DOM element.
21
14
  */
22
- export const isCompactSingleChild = (fiber) => (fiber.type === 'fragment' || fiber.type === 'component') &&
23
- !isEndOf(fiber.element, fiber) &&
15
+ export const isSingleChildContainer = (fiber) => (fiber.type === 'fragment' || fiber.type === 'component') &&
16
+ fiber.element !== containerSym &&
24
17
  !isEmptyOf(fiber.element, fiber);
25
18
  /**
26
- * Returns true if the given `fiber` is in none compact mode. This means it
27
- * has no fiber children, and its element is <!--r:empty:id-->
19
+ * Returns true if the given `fiber` is in the empty mode. This means it has no
20
+ * fiber children, and its element is <!--r:empty:id-->
28
21
  */
29
- export const isCompactNone = (fiber) => (fiber.type === 'fragment' || fiber.type === 'component') &&
22
+ export const isEmptyContainer = (fiber) => (fiber.type === 'fragment' || fiber.type === 'component') &&
30
23
  isEmptyOf(fiber.element, fiber);
31
- /**
32
- * If the given fiber node has <!--brackets-->, this function tries to apply one
33
- * of the "compact" optimizations:
34
- *
35
- * - If the node has no children, it replaces the brackets with
36
- * <!--r:empty:id-->
37
- * - If the node has only one child, it removes the brackets and sets
38
- * `fiber.element` to reference its only direct DOM child
39
- *
40
- * It also tries to recursively compact parent nodes when possible.
41
- */
42
- export function tryToCompactNode(fiber) {
43
- if (!isEndOf(fiber.element, fiber)) {
44
- return; // Node is not a !--container or is already compact.
45
- }
46
- // By default each fragment or component is rendered with 3+ nodes:
47
- // <!--r:begin:id--> + …children + <!--r:end:id-->
48
- // This approach supports 0 or 2+ nodes without overly complex logic.
49
- // However, most cases have only one child or none. For these scenarios,
50
- // we support two different compact modes.
51
- const prev1 = fiber.element.previousSibling;
52
- // Scenario 1: 0 children.
53
- if (prev1 && isBeginOf(prev1, fiber)) {
54
- const emptyNode = buildComment('empty', fiber.id);
55
- prev1.parentElement.insertBefore(emptyNode, prev1);
56
- prev1.remove(); // !--begin
57
- fiber.element.remove(); // !--end
58
- fiber.element = emptyNode;
59
- return;
60
- // <!--begin--><--end--> are replaced with <!--empty-->
61
- }
62
- const prev2 = prev1?.previousSibling;
63
- // Scenario 2: 1 children
64
- if (prev2 && isBeginOf(prev2, fiber)) {
65
- prev2.remove(); // !--begin
66
- fiber.element.remove(); // !--end
67
- fiber.element = fiber.children[0].element;
68
- // <!--begin--><!--end--> are removed. Now `fiber.element` refers to its
69
- // only child node.
70
- tryToCompactNode(fiber.parent);
71
- }
72
- }
73
- /**
74
- * Converts <!--empty--> or the single compact container node into:
75
- * <!--begin-->...children...<!--end-->
76
- */
77
- export const unwrapCompactFiber = (fiber) => {
78
- const container = fiber.element.parentElement;
79
- let begin = buildComment('begin', fiber.id);
80
- let end = buildComment('end', fiber.id);
81
- if (isCompactSingleChild(fiber)) {
82
- // before: <container><child/></container>
83
- // after: <container><!--begin--><child/><!--end--></container>
84
- container.insertBefore(begin, fiber.element);
85
- container.insertBefore(end, fiber.element.nextSibling);
86
- fiber.element = end;
87
- // Repeat the same with every single-compact ancestor:
88
- let parent = fiber.parent;
89
- while (isCompactSingleChild(parent)) {
90
- const pBegin = buildComment('begin', parent.id);
91
- const pEnd = buildComment('end', parent.id);
92
- container.insertBefore(pBegin, begin);
93
- container.insertBefore(pEnd, end.nextSibling);
94
- parent.element = pEnd;
95
- begin = pBegin;
96
- end = pEnd;
97
- parent = parent.parent;
98
- }
99
- return;
100
- }
101
- if (isCompactNone(fiber)) {
102
- // before: <container><!--empty--></container>
103
- // after: <container><!--begin--><!--end--></container>
104
- container.insertBefore(begin, fiber.element);
105
- container.insertBefore(end, fiber.element.nextSibling);
106
- fiber.element.remove();
107
- fiber.element = end;
108
- return;
109
- }
110
- throw new Error(`Unsupported format of compact node`);
111
- };
112
24
  //# sourceMappingURL=compact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/core/compact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compact.js","sourceRoot":"","sources":["../../src/core/compact.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAIb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;GAEG;AACH,MAAM,SAAS,GAAG,CAChB,OAAoC,EACpC,KAAgB,EACI,EAAE,CACtB,OAAO,YAAY,OAAO;IAC1B,OAAO,CAAC,WAAW,KAAK,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;AAE9D,+EAA+E;AAC/E,kCAAkC;AAClC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,KAAgB,EAC6B,EAAE,CAC/C,KAAK,CAAC,OAAO,KAAK,YAAY,CAAC;AAEjC;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,KAAgB,EAGhB,EAAE,CACF,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;IACzD,KAAK,CAAC,OAAO,KAAK,YAAY;IAC9B,CAAC,SAAS,CAAC,KAAK,CAAC,OAAQ,EAAE,KAAK,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,KAAgB,EAGhB,EAAE,CACF,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;IACzD,SAAS,CAAC,KAAK,CAAC,OAAQ,EAAE,KAAK,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type HookStateItem, type FiberNode, type App, type ComponentFiberNode } from '../types';
1
+ import { type HookStateItem, type FiberNode, type App, type ComponentFiberNode, type UnknownProps } from '../types';
2
2
  /**
3
3
  * Returns the fiber of the component that is being rendered right now. Don't
4
4
  * run this function outside of the render phase.
@@ -18,7 +18,7 @@ export declare const isFirstFiberRender: () => boolean;
18
18
  * is required to make hooks work. The result is JSX returned from the component
19
19
  * function.
20
20
  */
21
- export declare const runComponent: (fiber: FiberNode, propsSource: FiberNode | null) => import("../index.js").JsxElement;
21
+ export declare const runComponent: (fiber: FiberNode, props: UnknownProps | null) => import("../index.js").JsxElement;
22
22
  /**
23
23
  * Switches to the next hook and returns its state.
24
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/core/components.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEd,KAAK,GAAG,EACR,KAAK,kBAAkB,EACxB,MAAM,UAAU,CAAC;AAOlB;;;GAGG;AACH,eAAO,MAAM,wBAAwB,0BACX,CAAC;AAE3B;;;GAGG;AACH,eAAO,MAAM,aAAa,WAC6B,CAAC;AAIxD;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAAkC,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,YAAY,wFAyBxB,CAAC;AAYF;;GAEG;AACH,eAAO,MAAM,iBAAiB,qBACgC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,iBAAiB;;UAI7B,CAAC"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/core/components.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,SAAS,EAEd,KAAK,GAAG,EACR,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,UAAU,CAAC;AAWlB;;;GAGG;AACH,eAAO,MAAM,wBAAwB,0BACX,CAAC;AAE3B;;;GAGG;AACH,eAAO,MAAM,aAAa,WAGzB,CAAC;AAIF;;GAEG;AACH,eAAO,MAAM,kBAAkB,eAAkC,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,YAAY,qFAuCxB,CAAC;AAYF;;GAEG;AACH,eAAO,MAAM,iBAAiB,qBACgC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,iBAAiB;;UAI7B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { nullthrows } from '../utils';
2
2
  import { getAppByFiber } from './reconciliation/app';
3
3
  import { isFiberDead } from './reconciliation/fibers';
4
+ import { nullthrowsForFiber, ReactError, } from './reconciliation/errors/ReactError';
4
5
  /** Component that is rendered right now. */
5
6
  let currentFiber;
6
7
  /**
@@ -12,7 +13,10 @@ export const getCurrentComponentFiber = () => nullthrows(currentFiber);
12
13
  * The app of the component that is being rendered right now. Don't run this
13
14
  * function outside of the render phase.
14
15
  */
15
- export const getCurrentApp = () => nullthrows(getAppByFiber(getCurrentComponentFiber()));
16
+ export const getCurrentApp = () => {
17
+ const fiber = getCurrentComponentFiber();
18
+ return nullthrowsForFiber(fiber, getAppByFiber(fiber));
19
+ };
16
20
  let firstFiberRender = false;
17
21
  /**
18
22
  * Returns true when it's the 1st render of currentFiber's component.
@@ -25,18 +29,27 @@ export const isFirstFiberRender = () => firstFiberRender;
25
29
  */
26
30
  export const runComponent = (fiber,
27
31
  /** Source of `.props`. If not given `fiber.props` are used. */
28
- propsSource) => {
32
+ props) => {
29
33
  if (fiber.type !== 'component') {
30
- throw new Error(`Can't run ${fiber.type} as a component`);
34
+ throw new ReactError(fiber, `Can't run ${fiber.type} as a component`);
31
35
  }
32
36
  if (isFiberDead(fiber)) {
33
- throw new Error(`Can't run a dead component`);
37
+ throw new ReactError(fiber, `Can't run a dead component`);
34
38
  }
35
39
  currentFiber = fiber;
36
40
  firstFiberRender = !fiber.data.hooks;
37
41
  fiber.data.hooks ??= [];
38
42
  hookIdx = -1;
39
- let jsxElement = fiber.component(propsSource?.props ?? fiber.props);
43
+ let jsxElement;
44
+ try {
45
+ jsxElement = fiber.component(props ?? fiber.props);
46
+ }
47
+ catch (error) {
48
+ throw new ReactError(fiber, error, `Error during rendering a component: %fiber%`);
49
+ }
50
+ if (!firstFiberRender && hookIdx !== fiber.data.hooks.length - 1) {
51
+ throw new ReactError(fiber, `The hook order is violated. There were ${fiber.data.hooks.length} hooks in the previous render. Now only ${hookIdx + 1}`);
52
+ }
40
53
  currentFiber = null;
41
54
  firstFiberRender = false;
42
55
  return jsxElement;
@@ -44,7 +57,7 @@ propsSource) => {
44
57
  let hookIdx = -1;
45
58
  const getComponentHookStore = (fiberNode) => {
46
59
  if (!fiberNode.data.hooks) {
47
- throw new Error(`HookStore is empty.`);
60
+ throw new ReactError(fiberNode, `HookStore is empty.`);
48
61
  }
49
62
  return fiberNode.data.hooks;
50
63
  };
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/core/components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAQrC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,4CAA4C;AAC5C,IAAI,YAAuC,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAuB,EAAE,CAC/D,UAAU,CAAC,YAAY,CAAC,CAAC;AAE3B;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAQ,EAAE,CACrC,UAAU,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;AAExD,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAY,EAAE,CAAC,gBAAgB,CAAC;AAElE;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAAgB;AAChB,+DAA+D;AAC/D,WAA6B,EAChB,EAAE,CAAC;IAChB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,IAAI,iBAAiB,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,YAAY,GAAG,KAAK,CAAC;IACrB,gBAAgB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACrC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;IACxB,OAAO,GAAG,CAAC,CAAC,CAAC;IAEb,IAAI,UAAU,GAAgB,KAAK,CAAC,SAAU,CAC5C,WAAW,EAAE,KAAK,IAAI,KAAK,CAAC,KAAK,CAClC,CAAC;IAEF,YAAY,GAAG,IAAI,CAAC;IACpB,gBAAgB,GAAG,KAAK,CAAC;IAEzB,OAAO,UAAU,CAAC;AAAA,CACnB,CAAC;AAEF,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;AAEjB,MAAM,qBAAqB,GAAG,CAAC,SAA6B,EAAa,EAAE,CAAC;IAC1E,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAAA,CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAkB,EAAE,CACnD,qBAAqB,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAE/D;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAEjC,EAAQ,EAAE,CAAC;IACV,qBAAqB,CAAC,wBAAwB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAqB,CAAC,CAAC;AAAA,CAC/E,CAAC"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../src/core/components.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ElementNode, ElementType, ReactContextProvider, ReactKey } from '../types';
1
+ import type { ElementNode, ElementType, JsxSource, ReactContextProvider, ReactKey } from '../types';
2
2
  import { type ComponentClass } from './classComponent';
3
3
  /**
4
4
  * This method is used as the JSX resolver. Every <tag/> or <Component/> is a
@@ -23,12 +23,7 @@ export declare function createElementNew(
23
23
  * What to render. Can be a tag (string), a component (function),
24
24
  * or a portal target (HTMLElement).
25
25
  */
26
- type: ReactContextProvider | ElementType | HTMLElement | ComponentClass, propsRaw: Record<PropertyKey, unknown>, key: ReactKey | null | undefined, _isStaticChildren?: boolean, _source?: Source, _self?: unknown): ElementNode;
27
- type Source = {
28
- fileName: string;
29
- lineNumber: number;
30
- columnNumber: number;
31
- };
26
+ type: ReactContextProvider | ElementType | HTMLElement | ComponentClass, propsRaw: Record<PropertyKey, unknown>, key: ReactKey | null | undefined, _isStaticChildren?: boolean, source?: JsxSource | null, _self?: unknown): ElementNode;
32
27
  /**
33
28
  * Renders content into an external HTML node. Unlike React, this version
34
29
  * doesn't support interdimensional event bubbling.
@@ -49,5 +44,4 @@ key?: string): ElementNode;
49
44
  * built with this signature.
50
45
  */
51
46
  export declare function createElement(type: ReactContextProvider | ElementType | HTMLElement, propsRaw: Record<PropertyKey, unknown>, ...children: JSX.Element[]): ElementNode;
52
- export {};
53
47
  //# sourceMappingURL=createElement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../src/core/createElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,EACpB,QAAQ,EAET,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB;AAC9B;;;GAGG;AAEH,IAAI,EAEA,oBAAoB,GAEpB,WAAW,GAEX,WAAW,GAEX,cAAc,EAClB,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EAGhC,iBAAiB,CAAC,EAAE,OAAO,EAC3B,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,OAAO,GACd,WAAW,CAoCb;AAED,KAAK,MAAM,GAAG;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAMF;;;;;;;GAOG;AACH,wBAAgB,YAAY;AAC1B,sBAAsB;AACtB,QAAQ,EAAE,GAAG,CAAC,OAAO;AACrB,uBAAuB;AACvB,OAAO,EAAE,WAAW;AACpB,gEAAgE;AAChE,GAAG,CAAC,EAAE,MAAM,eAGb;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAE3B,IAAI,EACA,oBAAoB,GAEpB,WAAW,GAEX,WAAW,EACf,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,GAAG,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,GACzB,WAAW,CAOb"}
1
+ {"version":3,"file":"createElement.d.ts","sourceRoot":"","sources":["../../src/core/createElement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,QAAQ,EAET,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB;AAC9B;;;GAGG;AAEH,IAAI,EAEA,oBAAoB,GAEpB,WAAW,GAEX,WAAW,GAEX,cAAc,EAClB,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EAGhC,iBAAiB,CAAC,EAAE,OAAO,EAC3B,MAAM,GAAE,SAAS,GAAG,IAAW,EAC/B,KAAK,CAAC,EAAE,OAAO,GACd,WAAW,CAsCb;AAMD;;;;;;;GAOG;AACH,wBAAgB,YAAY;AAC1B,sBAAsB;AACtB,QAAQ,EAAE,GAAG,CAAC,OAAO;AACrB,uBAAuB;AACvB,OAAO,EAAE,WAAW;AACpB,gEAAgE;AAChE,GAAG,CAAC,EAAE,MAAM,eAGb;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAE3B,IAAI,EACA,oBAAoB,GAEpB,WAAW,GAEX,WAAW,EACf,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,EACtC,GAAG,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,GACzB,WAAW,CAOb"}
@@ -26,7 +26,7 @@ export function createElementNew(
26
26
  type, propsRaw, key,
27
27
  // The following arguments are provided only in the development mode.
28
28
  // TODO: Support them to show more informative warnings and errors.
29
- _isStaticChildren, _source, _self) {
29
+ _isStaticChildren, source = null, _self) {
30
30
  key ??= null; // Narrow the type for simplicity.
31
31
  if (isComponentClass(type)) {
32
32
  type = convertClassComponentToFC(type);
@@ -41,6 +41,7 @@ _isStaticChildren, _source, _self) {
41
41
  // what's inside until the component runs. Children are passed via `props`
42
42
  // instead.
43
43
  children: [],
44
+ source,
44
45
  };
45
46
  }
46
47
  // Any tag instance (<div/>).
@@ -55,6 +56,7 @@ _isStaticChildren, _source, _self) {
55
56
  props: propsWithoutChildren,
56
57
  key,
57
58
  children,
59
+ source,
58
60
  };
59
61
  }
60
62
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"createElement.js","sourceRoot":"","sources":["../../src/core/createElement.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,yBAAyB,EACzB,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,gBAAgB;AAC9B;;;GAGG;AACH,kBAAkB;AAClB,IAQkB,EAClB,QAAsC,EACtC,GAAgC;AAChC,qEAAqE;AACrE,mEAAmE;AACnE,iBAA2B,EAC3B,OAAgB,EAChB,KAAe,EACF;IACb,GAAG,KAAK,IAAI,CAAC,CAAC,kCAAkC;IAEhD,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,uCAAuC;QACvC,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,QAAQ;YACf,GAAG;YACH,qEAAqE;YACrE,0EAA0E;YAC1E,WAAW;YACX,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;IAED,6BAA6B;IAE7B,IAAI,EAAE,QAAQ,EAAE,GAAG,oBAAoB,EAAE,GAAG,QAAoB,CAAC;IAEjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,0CAA0C;QAC1C,+CAA+C;QAC/C,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,oBAAoB;QAC3B,GAAG;QACH,QAAQ;KACT,CAAC;AAAA,CACH;AAYD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY;AAC1B,sBAAsB;AACtB,QAAqB;AACrB,uBAAuB;AACvB,OAAoB;AACpB,gEAAgE;AAChE,GAAY,EACZ;IACA,OAAO,gBAAgB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;AAAA,CACrD;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;AAC3B,kBAAkB;AAClB,IAKe,EACf,QAAsC,EACtC,GAAG,QAAuB,EACb;IACb,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;IACzC,OAAO,gBAAgB,CACrB,IAAI,EACJ,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,QAAQ,EAAE,EAClD,GAA2B,CAC5B,CAAC;AAAA,CACH"}
1
+ {"version":3,"file":"createElement.js","sourceRoot":"","sources":["../../src/core/createElement.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,yBAAyB,EACzB,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,gBAAgB;AAC9B;;;GAGG;AACH,kBAAkB;AAClB,IAQkB,EAClB,QAAsC,EACtC,GAAgC;AAChC,qEAAqE;AACrE,mEAAmE;AACnE,iBAA2B,EAC3B,MAAM,GAAqB,IAAI,EAC/B,KAAe,EACF;IACb,GAAG,KAAK,IAAI,CAAC,CAAC,kCAAkC;IAEhD,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAC/B,uCAAuC;QACvC,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,QAAQ;YACf,GAAG;YACH,qEAAqE;YACrE,0EAA0E;YAC1E,WAAW;YACX,QAAQ,EAAE,EAAE;YACZ,MAAM;SACP,CAAC;IACJ,CAAC;IAED,6BAA6B;IAE7B,IAAI,EAAE,QAAQ,EAAE,GAAG,oBAAoB,EAAE,GAAG,QAAoB,CAAC;IAEjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,0CAA0C;QAC1C,+CAA+C;QAC/C,QAAQ,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,oBAAoB;QAC3B,GAAG;QACH,QAAQ;QACR,MAAM;KACP,CAAC;AAAA,CACH;AAMD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY;AAC1B,sBAAsB;AACtB,QAAqB;AACrB,uBAAuB;AACvB,OAAoB;AACpB,gEAAgE;AAChE,GAAY,EACZ;IACA,OAAO,gBAAgB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC;AAAA,CACrD;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;AAC3B,kBAAkB;AAClB,IAKe,EACf,QAAsC,EACtC,GAAG,QAAuB,EACb;IACb,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;IACzC,OAAO,gBAAgB,CACrB,IAAI,EACJ,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,QAAQ,EAAE,EAClD,GAA2B,CAC5B,CAAC;AAAA,CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"reactNodeToFiberNode.d.ts","sourceRoot":"","sources":["../../src/core/reactNodeToFiberNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EASf,MAAM,UAAU,CAAC;AASlB;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,4GA+HjC,CAAC"}
1
+ {"version":3,"file":"reactNodeToFiberNode.d.ts","sourceRoot":"","sources":["../../src/core/reactNodeToFiberNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EAUf,MAAM,UAAU,CAAC;AASlB;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,4GAoIjC,CAAC"}
@@ -19,6 +19,7 @@ unwrapComponents) => {
19
19
  props: {},
20
20
  key: null,
21
21
  children: jsxElement,
22
+ source: null,
22
23
  };
23
24
  }
24
25
  // Any null-like value, i.e. it doesn't render a tag or a text node.
@@ -66,6 +67,7 @@ unwrapComponents) => {
66
67
  role: 'context',
67
68
  props,
68
69
  data: { ctx: jsxElement.type.__ctx, consumers: new Set() },
70
+ source: jsxElement.source,
69
71
  };
70
72
  contextFiber.children = jsxElement.children.map((n) => jsxElementToFiberNode(n, contextFiber, unwrapComponents));
71
73
  return contextFiber;
@@ -76,6 +78,7 @@ unwrapComponents) => {
76
78
  ...createFiberNode(parent),
77
79
  type: 'fragment',
78
80
  key,
81
+ source: jsxElement.source,
79
82
  };
80
83
  fragmentFiber.children = jsxElement.children.map((n) => jsxElementToFiberNode(n, fragmentFiber, unwrapComponents));
81
84
  return fragmentFiber;
@@ -87,8 +90,9 @@ unwrapComponents) => {
87
90
  type: 'component',
88
91
  component: jsxElement.type,
89
92
  key,
90
- props,
93
+ props: jsxElement.props,
91
94
  data: { hooks: null },
95
+ source: jsxElement.source,
92
96
  };
93
97
  if (unwrapComponents) {
94
98
  const content = runComponent(fiber, null);
@@ -107,6 +111,7 @@ unwrapComponents) => {
107
111
  tag: jsxElement.type,
108
112
  ref,
109
113
  data: { events: {}, styles: null },
114
+ source: jsxElement.source,
110
115
  };
111
116
  tagFiber.children = jsxElement.children
112
117
  .map((n) => jsxElementToFiberNode(n, tagFiber, unwrapComponents))
@@ -1 +1 @@
1
- {"version":3,"file":"reactNodeToFiberNode.js","sourceRoot":"","sources":["../../src/core/reactNodeToFiberNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactNodeToFiberNode.js","sourceRoot":"","sources":["../../src/core/reactNodeToFiberNode.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { nullthrows } from '../../utils';
1
+ import { nullthrowsForFiber } from './errors/ReactError';
2
2
  const apps = [];
3
3
  export const getAppByFiber = (fiber) => {
4
- return nullthrows(apps[fiber.appId]);
4
+ return nullthrowsForFiber(fiber, apps[fiber.appId]);
5
5
  };
6
6
  export const registerApp = (fn) => {
7
7
  apps.push(fn(apps.length));
@@ -14,7 +14,7 @@ export const removeApp = (id) => {
14
14
  // Help with garbage collection.
15
15
  app.root = app.tempContext = null;
16
16
  app.effects = { normal: [] };
17
- app.invalidatedComponents = { size: 0 };
17
+ app.invalidatedComponents = { isEmpty: () => true };
18
18
  }
19
19
  };
20
20
  //# sourceMappingURL=app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/core/reconciliation/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,IAAI,GAAsB,EAAE,CAAC;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAgB,EAAO,EAAE,CAAC;IACtD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAAA,CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAuB,EAAO,EAAE,CAAC;IAC3D,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;AAAA,CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAQ,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAA4B,CAAC;IAChD,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAChB,gCAAgC;QAChC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QAClC,GAAG,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC7B,GAAG,CAAC,qBAAqB,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC1C,CAAC;AAAA,CACF,CAAC"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/core/reconciliation/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,IAAI,GAAsB,EAAE,CAAC;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAgB,EAAO,EAAE,CAAC;IACtD,OAAO,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAAA,CACrD,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAuB,EAAO,EAAE,CAAC;IAC3D,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;AAAA,CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAU,EAAQ,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAA4B,CAAC;IAChD,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;QAChB,gCAAgC;QAChC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;QAClC,GAAG,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC7B,GAAG,CAAC,qBAAqB,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;AAAA,CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fromApp.d.ts","sourceRoot":"","sources":["../../../../src/core/reconciliation/collect/fromApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAIzD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,wBAoCjC,CAAC"}
1
+ {"version":3,"file":"fromApp.d.ts","sourceRoot":"","sources":["../../../../src/core/reconciliation/collect/fromApp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGzD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,wBASjC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { collectActionsFromComponent } from './fromComponent';
2
- import { getFiberLevel } from '../fibers';
3
2
  /**
4
3
  * Goes through the list of invalidated components, runs them, finds the diff,
5
4
  * and returns the list of actions to convert the previous fiber tree to the new
@@ -7,32 +6,9 @@ import { getFiberLevel } from '../fibers';
7
6
  */
8
7
  export const collectActionsFromApp = (app) => {
9
8
  const actions = [];
10
- // Sort invalidated components by their level in the fiber tree to run the
11
- // parent components before their children components.
12
- const sorted = [...app.invalidatedComponents]
13
- .map((f) => ({ fiber: f, level: getFiberLevel(f) }))
14
- .sort((a, b) => a.level - b.level);
15
- for (const { fiber } of sorted) {
16
- // Redo the check because some components can be indirectly removed in between.
17
- if (app.invalidatedComponents.has(fiber)) {
18
- actions.push(...collectActionsFromComponent(app, fiber, null));
19
- }
20
- }
21
- if (app.invalidatedComponents.size > 0) {
22
- // The only reason why a component might be kept in `invalidatedComponents`
23
- // after the first run is that this component was "trapped" inside a
24
- // non-invalidated component. We don't traverse through the whole fiber
25
- // tree, so we need to run the rest of the queue again.
26
- if (app.testMode) {
27
- // A sanity check
28
- for (const fiber of app.invalidatedComponents) {
29
- if (fiber.type !== 'component' ||
30
- !fiber.data.hooks?.some((h) => h.type === 'context')) {
31
- throw new Error(`Fiber node is stuck`);
32
- }
33
- }
34
- }
35
- actions.push(...collectActionsFromApp(app));
9
+ while (!app.invalidatedComponents.isEmpty()) {
10
+ const [fiber, props] = app.invalidatedComponents.poll();
11
+ actions.push(...collectActionsFromComponent(fiber, props));
36
12
  }
37
13
  return actions;
38
14
  };
@@ -1 +1 @@
1
- {"version":3,"file":"fromApp.js","sourceRoot":"","sources":["../../../../src/core/reconciliation/collect/fromApp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAQ,EAAY,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,0EAA0E;IAC1E,sDAAsD;IACtD,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC,qBAAqB,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACnD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACrC,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,CAAC;QAC/B,+EAA+E;QAC/E,IAAI,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,qBAAqB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACvC,2EAA2E;QAC3E,oEAAoE;QACpE,uEAAuE;QACvE,uDAAuD;QACvD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjB,iBAAiB;YACjB,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,qBAAqB,EAAE,CAAC;gBAC9C,IACE,KAAK,CAAC,IAAI,KAAK,WAAW;oBAC1B,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,EACpD,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,OAAO,CAAC;AAAA,CAChB,CAAC"}
1
+ {"version":3,"file":"fromApp.js","sourceRoot":"","sources":["../../../../src/core/reconciliation/collect/fromApp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAQ,EAAY,EAAE,CAAC;IAC3D,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,GAAG,2BAA2B,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,OAAO,CAAC;AAAA,CAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fromChildrenPair.d.ts","sourceRoot":"","sources":["../../../../src/core/reconciliation/collect/fromChildrenPair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,SAAS,EAGV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AASzD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,oDA8D1C,CAAC"}
1
+ {"version":3,"file":"fromChildrenPair.d.ts","sourceRoot":"","sources":["../../../../src/core/reconciliation/collect/fromChildrenPair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,SAAS,EAGV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AASzD;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,oDAsE1C,CAAC"}