ripple 0.3.128 → 0.4.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 (197) hide show
  1. package/CHANGELOG.md +294 -0
  2. package/package.json +11 -4
  3. package/src/jsx-runtime.d.ts +12 -2
  4. package/src/runtime/element.js +23 -6
  5. package/src/runtime/index-client.js +81 -41
  6. package/src/runtime/index-server.js +1 -0
  7. package/src/runtime/internal/client/blocks.js +173 -91
  8. package/src/runtime/internal/client/component.js +4 -30
  9. package/src/runtime/internal/client/composite.js +12 -13
  10. package/src/runtime/internal/client/constants.js +9 -0
  11. package/src/runtime/internal/client/context.js +12 -19
  12. package/src/runtime/internal/client/css.js +7 -9
  13. package/src/runtime/internal/client/events.js +178 -90
  14. package/src/runtime/internal/client/expression.js +45 -25
  15. package/src/runtime/internal/client/for.js +409 -129
  16. package/src/runtime/internal/client/head.js +10 -5
  17. package/src/runtime/internal/client/html.js +1 -0
  18. package/src/runtime/internal/client/hydration.js +152 -10
  19. package/src/runtime/internal/client/if.js +239 -50
  20. package/src/runtime/internal/client/index.js +4 -12
  21. package/src/runtime/internal/client/operations.js +40 -61
  22. package/src/runtime/internal/client/portal.js +163 -85
  23. package/src/runtime/internal/client/render.js +44 -43
  24. package/src/runtime/internal/client/rpc.js +3 -3
  25. package/src/runtime/internal/client/runtime.js +592 -433
  26. package/src/runtime/internal/client/selector.js +5 -2
  27. package/src/runtime/internal/client/template.js +133 -158
  28. package/src/runtime/internal/client/transport.js +38 -0
  29. package/src/runtime/internal/client/try.js +465 -426
  30. package/src/runtime/internal/client/types.d.ts +56 -23
  31. package/src/runtime/internal/client/utils.js +1 -3
  32. package/src/runtime/internal/server/dynamic.js +20 -21
  33. package/src/runtime/internal/server/index.js +329 -277
  34. package/src/runtime/internal/server/rpc.js +3 -2
  35. package/src/runtime/internal/server/transport.js +16 -0
  36. package/src/runtime/transport.js +21 -0
  37. package/tests/client/__snapshots__/for.test.tsrx.snap +0 -5
  38. package/tests/client/array/array.copy-within.test.tsrx +12 -12
  39. package/tests/client/array/array.derived.test.tsrx +46 -46
  40. package/tests/client/array/array.iteration.test.tsrx +10 -10
  41. package/tests/client/array/array.mutations.test.tsrx +20 -20
  42. package/tests/client/array/array.static.test.tsrx +11 -11
  43. package/tests/client/array/array.to-methods.test.tsrx +6 -6
  44. package/tests/client/async-suspend.test.tsrx +74 -75
  45. package/tests/client/basic/basic.attributes.test.tsrx +123 -83
  46. package/tests/client/basic/basic.collections.test.tsrx +12 -12
  47. package/tests/client/basic/basic.components.test.tsrx +99 -25
  48. package/tests/client/basic/basic.errors.test.tsrx +18 -18
  49. package/tests/client/basic/basic.events.test.tsrx +42 -42
  50. package/tests/client/basic/basic.get-set.test.tsrx +8 -8
  51. package/tests/client/basic/basic.reactivity.test.tsrx +73 -38
  52. package/tests/client/basic/basic.rendering.test.tsrx +25 -25
  53. package/tests/client/basic/basic.utilities.test.tsrx +3 -3
  54. package/tests/client/boundaries.test.tsrx +8 -8
  55. package/tests/client/boxed-locals.test.tsrx +452 -0
  56. package/tests/client/compiler/__snapshots__/compiler.assignments.test.tsrx.snap +6 -6
  57. package/tests/client/compiler/compiler.assignments.test.tsrx +9 -73
  58. package/tests/client/compiler/compiler.attributes.test.tsrx +23 -23
  59. package/tests/client/compiler/compiler.basic.test.tsrx +15 -60
  60. package/tests/client/compiler/compiler.tracked-access.test.tsrx +18 -43
  61. package/tests/client/compiler/compiler.try-in-function.test.tsrx +2 -2
  62. package/tests/client/composite/__snapshots__/composite.render.test.tsrx.snap +0 -1
  63. package/tests/client/composite/composite.dynamic-components.test.tsrx +77 -6
  64. package/tests/client/composite/composite.props.test.tsrx +149 -12
  65. package/tests/client/composite/composite.reactivity.test.tsrx +51 -52
  66. package/tests/client/composite/composite.render.test.tsrx +26 -9
  67. package/tests/client/css/scoped-styles.test.tsrx +8 -8
  68. package/tests/client/date.test.tsrx +42 -42
  69. package/tests/client/derived-release.test.tsrx +370 -0
  70. package/tests/client/dynamic-elements.test.tsrx +45 -45
  71. package/tests/client/events.test.tsrx +97 -71
  72. package/tests/client/for-selector.test.tsrx +14 -14
  73. package/tests/client/for-single-root-items.test.tsrx +118 -3
  74. package/tests/client/for.test.tsrx +332 -31
  75. package/tests/client/head.test.tsrx +19 -19
  76. package/tests/client/html.test.tsrx +11 -9
  77. package/tests/client/if-block.test.tsrx +80 -0
  78. package/tests/client/map.test.tsrx +16 -16
  79. package/tests/client/media-query.test.tsrx +7 -7
  80. package/tests/client/portal.test.tsrx +224 -26
  81. package/tests/client/primitive-text.test.tsrx +50 -0
  82. package/tests/client/prop-kind-switch.test.tsrx +141 -0
  83. package/tests/client/ref.test.tsrx +17 -17
  84. package/tests/client/return.test.tsrx +26 -3
  85. package/tests/client/root-boundary.test.tsrx +42 -0
  86. package/tests/client/scoped-flush.test.tsrx +8 -8
  87. package/tests/client/set.test.tsrx +6 -6
  88. package/tests/client/svg.test.tsrx +11 -11
  89. package/tests/client/switch.test.tsrx +44 -44
  90. package/tests/client/track-async-hydration.test.tsrx +4 -4
  91. package/tests/client/try.test.tsrx +151 -83
  92. package/tests/client/tsx.test.tsrx +43 -40
  93. package/tests/client/url/url.derived.test.tsrx +6 -6
  94. package/tests/client/url-search-params/url-search-params.derived.test.tsrx +8 -8
  95. package/tests/client/url-search-params/url-search-params.iteration.test.tsrx +10 -10
  96. package/tests/client/url-search-params/url-search-params.mutation.test.tsrx +10 -10
  97. package/tests/client/url-search-params/url-search-params.retrieval.test.tsrx +18 -18
  98. package/tests/client/url-search-params/url-search-params.serialization.test.tsrx +2 -2
  99. package/tests/hydration/basic.test.js +74 -1
  100. package/tests/hydration/build-components.js +22 -1
  101. package/tests/hydration/compiled/client/basic.js +1142 -713
  102. package/tests/hydration/compiled/client/composite.js +151 -100
  103. package/tests/hydration/compiled/client/events.js +184 -171
  104. package/tests/hydration/compiled/client/for.js +1472 -1132
  105. package/tests/hydration/compiled/client/fragment-cursor.js +2341 -0
  106. package/tests/hydration/compiled/client/head.js +254 -201
  107. package/tests/hydration/compiled/client/hmr.js +54 -41
  108. package/tests/hydration/compiled/client/html-in-template.js +54 -39
  109. package/tests/hydration/compiled/client/html.js +1633 -1263
  110. package/tests/hydration/compiled/client/if-children.js +420 -270
  111. package/tests/hydration/compiled/client/if-fragment-controlflow.js +363 -317
  112. package/tests/hydration/compiled/client/if.js +229 -219
  113. package/tests/hydration/compiled/client/mixed-control-flow.js +420 -404
  114. package/tests/hydration/compiled/client/nested-control-flow.js +1326 -1277
  115. package/tests/hydration/compiled/client/portal.js +87 -95
  116. package/tests/hydration/compiled/client/reactivity.js +135 -101
  117. package/tests/hydration/compiled/client/return.js +28 -19
  118. package/tests/hydration/compiled/client/streaming.js +390 -306
  119. package/tests/hydration/compiled/client/switch.js +258 -266
  120. package/tests/hydration/compiled/client/track-async-serialization.js +448 -280
  121. package/tests/hydration/compiled/client/try.js +173 -129
  122. package/tests/hydration/compiled/client/typed-text.js +71 -0
  123. package/tests/hydration/compiled/fixtures/money.js +10 -0
  124. package/tests/hydration/compiled/server/basic.js +123 -6
  125. package/tests/hydration/compiled/server/composite.js +16 -30
  126. package/tests/hydration/compiled/server/events.js +66 -18
  127. package/tests/hydration/compiled/server/for.js +117 -41
  128. package/tests/hydration/compiled/server/fragment-cursor.js +1687 -0
  129. package/tests/hydration/compiled/server/head.js +20 -20
  130. package/tests/hydration/compiled/server/hmr.js +2 -2
  131. package/tests/hydration/compiled/server/html.js +70 -238
  132. package/tests/hydration/compiled/server/if-children.js +107 -15
  133. package/tests/hydration/compiled/server/if.js +11 -15
  134. package/tests/hydration/compiled/server/mixed-control-flow.js +8 -8
  135. package/tests/hydration/compiled/server/portal.js +14 -22
  136. package/tests/hydration/compiled/server/reactivity.js +14 -14
  137. package/tests/hydration/compiled/server/streaming.js +19 -19
  138. package/tests/hydration/compiled/server/switch.js +8 -8
  139. package/tests/hydration/compiled/server/track-async-serialization.js +150 -23
  140. package/tests/hydration/compiled/server/try.js +8 -8
  141. package/tests/hydration/compiled/server/typed-text.js +17 -0
  142. package/tests/hydration/components/basic.tsrx +44 -8
  143. package/tests/hydration/components/composite.tsrx +2 -2
  144. package/tests/hydration/components/events.tsrx +25 -25
  145. package/tests/hydration/components/for.tsrx +115 -67
  146. package/tests/hydration/components/fragment-cursor.tsrx +650 -0
  147. package/tests/hydration/components/head.tsrx +16 -16
  148. package/tests/hydration/components/hmr.tsrx +2 -2
  149. package/tests/hydration/components/html.tsrx +7 -7
  150. package/tests/hydration/components/if-children.tsrx +72 -25
  151. package/tests/hydration/components/if.tsrx +18 -18
  152. package/tests/hydration/components/mixed-control-flow.tsrx +11 -11
  153. package/tests/hydration/components/portal.tsrx +3 -3
  154. package/tests/hydration/components/reactivity.tsrx +16 -16
  155. package/tests/hydration/components/streaming.tsrx +20 -20
  156. package/tests/hydration/components/switch.tsrx +20 -20
  157. package/tests/hydration/components/text-types.ts +4 -0
  158. package/tests/hydration/components/track-async-serialization.tsrx +80 -26
  159. package/tests/hydration/components/try.tsrx +8 -8
  160. package/tests/hydration/components/typed-text.tsrx +22 -0
  161. package/tests/hydration/fixtures/money.js +10 -0
  162. package/tests/hydration/for.test.js +36 -0
  163. package/tests/hydration/fragment-cursor.test.js +111 -0
  164. package/tests/hydration/if-children.test.js +24 -0
  165. package/tests/hydration/streaming.test.js +19 -0
  166. package/tests/hydration/track-async-serialization.test.js +87 -2
  167. package/tests/hydration/tsconfig.text-types.json +10 -0
  168. package/tests/hydration/typed-text.test.js +34 -0
  169. package/tests/server/await.test.tsrx +3 -3
  170. package/tests/server/basic.attributes.test.tsrx +70 -42
  171. package/tests/server/basic.components.test.tsrx +64 -8
  172. package/tests/server/basic.test.tsrx +34 -32
  173. package/tests/server/compiler.test.tsrx +1 -70
  174. package/tests/server/composite.props.test.tsrx +6 -6
  175. package/tests/server/dynamic-elements.test.tsrx +31 -8
  176. package/tests/server/for.test.tsrx +94 -0
  177. package/tests/server/head.test.tsrx +11 -11
  178. package/tests/server/scoped-styles.test.tsrx +2 -2
  179. package/tests/server/streaming-ssr.test.tsrx +48 -43
  180. package/tests/server/track-async-serialization.test.tsrx +204 -21
  181. package/tests/server/try.test.tsrx +48 -48
  182. package/tests/types/transport.ts +40 -0
  183. package/tests/utils/jsx-runtime-types.test.js +67 -2
  184. package/tests/utils/tracked-types.test.js +117 -0
  185. package/tests/utils/vite-plugin-config.test.js +23 -0
  186. package/types/index.d.ts +49 -9
  187. package/types/server.d.ts +3 -0
  188. package/types/transport.d.ts +15 -0
  189. package/src/runtime/internal/client/switch.js +0 -113
  190. package/src/utils/errors.js +0 -13
  191. package/tests/client/compiler/__snapshots__/compiler.assignments.test.rsrx.snap +0 -12
  192. package/tests/client/compiler/__snapshots__/compiler.typescript.test.rsrx.snap +0 -46
  193. package/tests/client/lazy-array.test.tsrx +0 -31
  194. package/tests/client/lazy-destructuring.test.tsrx +0 -438
  195. package/tests/client/tracked-index-access.test.tsrx +0 -113
  196. package/tests/server/lazy-destructuring.test.tsrx +0 -595
  197. package/tests/server/tracked-index-access.test.tsrx +0 -76
@@ -2,375 +2,543 @@
2
2
  import * as _$_ from 'ripple/internal/client';
3
3
 
4
4
  var root = _$_.template(`<p class="result"> </p>`, 0);
5
+
6
+ function MoneyResult_render(__anchor, __block, { count }) {
7
+ const money = _$_.track_async(() => _$_.with_scope(__block, () => doubleMoney(new Money(count.value, 'USD'))), __block, '2e21cbe9');
8
+ var p = root();
9
+
10
+ {
11
+ var expression = _$_.hydrating ? _$_.hydrate_child() : p.firstChild;
12
+
13
+ _$_.expression(expression, () => _$_.with_scope(__block, () => money.value.format()));
14
+ _$_.hydrating && _$_.pop(p);
15
+ }
16
+
17
+ _$_.append(__anchor, p);
18
+ }
19
+
20
+ MoneyResult[_$_.$r] = MoneyResult_render;
21
+
5
22
  var root_3 = _$_.template(`<p class="loading">loading...</p>`, 0);
6
23
  var root_2 = _$_.template(`<button class="increment">increment</button><!>`, 1, 2);
7
24
  var root_1 = _$_.template(`<!>`, 1, 1);
8
- var root_4 = _$_.template(`<p class="result"> </p>`, 0);
9
- var root_5 = _$_.template(`<p class="loading">loading...</p>`, 0);
10
- var root_6 = _$_.template(`<span class="count"> </span>`, 0);
11
- var root_7 = _$_.template(`<span class="pending">...</span>`, 0);
12
- var root_8 = _$_.template(`<div class="user"><span class="name"> </span><span class="age"> </span></div>`, 0);
13
- var root_9 = _$_.template(`<div class="loading">loading user...</div>`, 0);
14
- var root_10 = _$_.template(`<div class="multi"><span class="first"> </span><span class="second"> </span></div>`, 0);
15
- var root_11 = _$_.template(`<div class="loading">loading...</div>`, 0);
16
- var root_12 = _$_.template(`<p class="result"> </p>`, 0);
17
- var root_13 = _$_.template(`<p class="error"> </p>`, 0);
18
- var root_14 = _$_.template(`<p class="loading">loading...</p>`, 0);
19
- var root_15 = _$_.template(`<p class="result"> </p>`, 0);
20
- var root_16 = _$_.template(`<p class="pending">loading...</p>`, 0);
21
- var root_17 = _$_.template(`<p class="parent-error"> </p>`, 0);
22
- var root_18 = _$_.template(`<p class="result"> </p>`, 0);
23
- var root_21 = _$_.template(`<p class="loading">loading...</p>`, 0);
24
- var root_20 = _$_.template(`<button class="increment">increment</button><!>`, 1, 2);
25
- var root_19 = _$_.template(`<!>`, 1, 1);
26
25
 
27
- import { track, trackAsync } from 'ripple';
26
+ function AsyncCustomType_render(__anchor, __block) {
27
+ const count = _$_.track(6, __block, 'f0c2b41e');
28
+ var fragment = root_1();
29
+ var node_1 = _$_.first_child_frag(fragment);
28
30
 
29
- const formatValue = function (...args) {
30
- return _$_.rpc('1215faad', args);
31
- };
31
+ _$_.expression(node_1, () => _$_.tsrx_element((__anchor, __block) => {
32
+ var fragment_1 = root_2();
33
+ var button = _$_.first_child_frag(fragment_1);
32
34
 
33
- function ServerCallResult({ count }) {
34
- return _$_.tsrx_element((__anchor, __block) => {
35
- let lazy = _$_.track_async(() => _$_.with_scope(__block, () => formatValue(count.value)), __block, '2e21cbe9');
36
- var p = root();
35
+ button.__click = () => {
36
+ count.value++;
37
+ };
37
38
 
38
- {
39
- var expression = _$_.hydrating ? _$_.hydrate_child() : p.firstChild;
39
+ var node = _$_.hydrating ? _$_.hydrate_sibling() : button.nextSibling;
40
40
 
41
- _$_.expression(expression, () => lazy.value);
42
- _$_.pop(p);
43
- }
41
+ _$_.try(
42
+ node,
43
+ (__anchor) => {
44
+ _$_.render_component(MoneyResult, __anchor, { count });
45
+ },
46
+ null,
47
+ (__anchor) => {
48
+ var p_1 = root_3();
49
+
50
+ _$_.append(__anchor, p_1);
51
+ }
52
+ );
53
+
54
+ _$_.append(__anchor, fragment_1);
55
+ }));
44
56
 
45
- _$_.append(__anchor, p);
46
- });
57
+ _$_.append(__anchor, fragment);
47
58
  }
48
59
 
49
- export function AsyncWithServerCall() {
50
- return _$_.tsrx_element((__anchor, __block) => {
51
- let lazy_1 = _$_.track(0, __block, 'f0c2b41e');
52
- var fragment = root_1();
53
- var node_1 = _$_.first_child_frag(fragment);
54
-
55
- _$_.expression(node_1, () => _$_.tsrx_element((__anchor, __block) => {
56
- var fragment_1 = root_2();
57
- var button = _$_.first_child_frag(fragment_1);
58
-
59
- button.__click = () => {
60
- _$_.update(lazy_1);
61
- };
62
-
63
- var node = _$_.hydrating ? _$_.hydrate_sibling() : button.nextSibling;
64
-
65
- _$_.try(
66
- node,
67
- (__anchor) => {
68
- _$_.render_component(ServerCallResult, __anchor, {
69
- get count() {
70
- return lazy_1;
71
- }
72
- });
73
- },
74
- null,
75
- (__anchor) => {
76
- var p_1 = root_3();
77
-
78
- _$_.append(__anchor, p_1);
79
- }
80
- );
60
+ AsyncCustomType[_$_.$r] = AsyncCustomType_render;
61
+
62
+ var root_4 = _$_.template(`<p class="result"> </p>`, 0);
81
63
 
82
- _$_.append(__anchor, fragment_1);
83
- }));
64
+ function ServerCallResult_render(__anchor, __block, { count }) {
65
+ const data = _$_.track_async(() => _$_.with_scope(__block, () => formatValue(count.value)), __block, '4e502c38');
66
+ var p_2 = root_4();
84
67
 
85
- _$_.append(__anchor, fragment);
86
- });
68
+ {
69
+ var expression_1 = _$_.hydrating ? _$_.hydrate_child() : p_2.firstChild;
70
+
71
+ _$_.expression(expression_1, () => data.value);
72
+ _$_.hydrating && _$_.pop(p_2);
73
+ }
74
+
75
+ _$_.append(__anchor, p_2);
87
76
  }
88
77
 
89
- export function AsyncSimpleValue() {
90
- return _$_.tsrx_element((__anchor, __block) => {
91
- _$_.try(
92
- __anchor,
93
- (__anchor) => {
94
- let lazy_2 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('hydrated value')), __block, '4e502c38');
95
- var p_2 = root_4();
78
+ ServerCallResult[_$_.$r] = ServerCallResult_render;
96
79
 
97
- {
98
- var expression_1 = _$_.hydrating ? _$_.hydrate_child() : p_2.firstChild;
80
+ var root_7 = _$_.template(`<p class="loading">loading...</p>`, 0);
81
+ var root_6 = _$_.template(`<button class="increment">increment</button><!>`, 1, 2);
82
+ var root_5 = _$_.template(`<!>`, 1, 1);
99
83
 
100
- _$_.expression(expression_1, () => lazy_2.value);
101
- _$_.pop(p_2);
102
- }
84
+ function AsyncWithServerCall_render(__anchor, __block) {
85
+ const count = _$_.track(0, __block, '14891754');
86
+ var fragment_2 = root_5();
87
+ var node_3 = _$_.first_child_frag(fragment_2);
88
+
89
+ _$_.expression(node_3, () => _$_.tsrx_element((__anchor, __block) => {
90
+ var fragment_3 = root_6();
91
+ var button_1 = _$_.first_child_frag(fragment_3);
92
+
93
+ button_1.__click = () => {
94
+ count.value++;
95
+ };
103
96
 
104
- _$_.append(__anchor, p_2);
97
+ var node_2 = _$_.hydrating ? _$_.hydrate_sibling() : button_1.nextSibling;
98
+
99
+ _$_.try(
100
+ node_2,
101
+ (__anchor) => {
102
+ _$_.render_component(ServerCallResult, __anchor, { count });
105
103
  },
106
104
  null,
107
105
  (__anchor) => {
108
- var p_3 = root_5();
106
+ var p_3 = root_7();
109
107
 
110
108
  _$_.append(__anchor, p_3);
111
- },
112
- true
109
+ }
113
110
  );
114
- });
111
+
112
+ _$_.append(__anchor, fragment_3);
113
+ }));
114
+
115
+ _$_.append(__anchor, fragment_2);
115
116
  }
116
117
 
117
- export function AsyncNumericValue() {
118
- return _$_.tsrx_element((__anchor, __block) => {
119
- _$_.try(
120
- __anchor,
121
- (__anchor) => {
122
- let lazy_3 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(42)), __block, '14891754');
123
- var span = root_6();
118
+ AsyncWithServerCall[_$_.$r] = AsyncWithServerCall_render;
124
119
 
125
- {
126
- var expression_2 = _$_.hydrating ? _$_.hydrate_child() : span.firstChild;
120
+ var root_8 = _$_.template(`<p class="result"> </p>`, 0);
121
+ var root_9 = _$_.template(`<p class="loading">loading...</p>`, 0);
127
122
 
128
- _$_.expression(expression_2, () => lazy_3.value);
129
- _$_.pop(span);
130
- }
123
+ function AsyncSimpleValue_render(__anchor, __block) {
124
+ _$_.try(
125
+ __anchor,
126
+ (__anchor) => {
127
+ const data = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('hydrated value')), __block, 'f325448a');
128
+ var p_4 = root_8();
131
129
 
132
- _$_.append(__anchor, span);
133
- },
134
- null,
135
- (__anchor) => {
136
- var span_1 = root_7();
130
+ {
131
+ var expression_2 = _$_.hydrating ? _$_.hydrate_child() : p_4.firstChild;
137
132
 
138
- _$_.append(__anchor, span_1);
139
- },
140
- true
141
- );
142
- });
143
- }
133
+ _$_.expression(expression_2, () => data.value);
134
+ _$_.hydrating && _$_.pop(p_4);
135
+ }
144
136
 
145
- export function AsyncObjectValue() {
146
- return _$_.tsrx_element((__anchor, __block) => {
147
- _$_.try(
148
- __anchor,
149
- (__anchor) => {
150
- let lazy_4 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve({ name: 'Alice', age: 30 })), __block, 'f325448a');
151
- var div = root_8();
137
+ _$_.append(__anchor, p_4);
138
+ },
139
+ null,
140
+ (__anchor) => {
141
+ var p_5 = root_9();
152
142
 
153
- {
154
- var span_2 = _$_.hydrating ? _$_.hydrate_child() : div.firstChild;
143
+ _$_.append(__anchor, p_5);
144
+ },
145
+ true
146
+ );
147
+ }
155
148
 
156
- {
157
- var expression_3 = _$_.hydrating ? _$_.hydrate_child() : span_2.firstChild;
149
+ AsyncSimpleValue[_$_.$r] = AsyncSimpleValue_render;
158
150
 
159
- _$_.expression(expression_3, () => lazy_4.value.name);
160
- _$_.pop(span_2);
161
- }
151
+ var root_10 = _$_.template(`<span class="count"> </span>`, 0);
152
+ var root_11 = _$_.template(`<span class="pending">...</span>`, 0);
162
153
 
163
- var span_3 = _$_.hydrating ? _$_.hydrate_sibling() : span_2.nextSibling;
154
+ function AsyncNumericValue_render(__anchor, __block) {
155
+ _$_.try(
156
+ __anchor,
157
+ (__anchor) => {
158
+ const count = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(42)), __block, 'ab8199a0');
159
+ var span = root_10();
164
160
 
165
- {
166
- var expression_4 = _$_.hydrating ? _$_.hydrate_child() : span_3.firstChild;
161
+ {
162
+ var expression_3 = _$_.hydrating ? _$_.hydrate_child() : span.firstChild;
167
163
 
168
- _$_.expression(expression_4, () => lazy_4.value.age);
169
- _$_.pop(span_3);
170
- }
171
- }
164
+ _$_.expression(expression_3, () => count.value);
165
+ _$_.hydrating && _$_.pop(span);
166
+ }
172
167
 
173
- _$_.append(__anchor, div);
174
- },
175
- null,
176
- (__anchor) => {
177
- var div_1 = root_9();
168
+ _$_.append(__anchor, span);
169
+ },
170
+ null,
171
+ (__anchor) => {
172
+ var span_1 = root_11();
178
173
 
179
- _$_.append(__anchor, div_1);
180
- },
181
- true
182
- );
183
- });
174
+ _$_.append(__anchor, span_1);
175
+ },
176
+ true
177
+ );
184
178
  }
185
179
 
186
- export function AsyncMultipleValues() {
187
- return _$_.tsrx_element((__anchor, __block) => {
188
- _$_.try(
189
- __anchor,
190
- (__anchor) => {
191
- let lazy_5 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('alpha')), __block, 'ab8199a0');
192
- let lazy_6 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('beta')), __block, 'fb7ad40b');
193
- var div_2 = root_10();
180
+ AsyncNumericValue[_$_.$r] = AsyncNumericValue_render;
194
181
 
195
- {
196
- var span_4 = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
182
+ var root_12 = _$_.template(`<div class="user"><span class="name"> </span><span class="age"> </span></div>`, 0);
183
+ var root_13 = _$_.template(`<div class="loading">loading user...</div>`, 0);
197
184
 
198
- {
199
- var expression_5 = _$_.hydrating ? _$_.hydrate_child() : span_4.firstChild;
185
+ function AsyncObjectValue_render(__anchor, __block) {
186
+ _$_.try(
187
+ __anchor,
188
+ (__anchor) => {
189
+ const user = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve({ name: 'Alice', age: 30 })), __block, 'fb7ad40b');
190
+ var div = root_12();
200
191
 
201
- _$_.expression(expression_5, () => lazy_5.value);
202
- _$_.pop(span_4);
203
- }
192
+ {
193
+ var span_2 = _$_.hydrating ? _$_.hydrate_child() : div.firstChild;
204
194
 
205
- var span_5 = _$_.hydrating ? _$_.hydrate_sibling() : span_4.nextSibling;
206
-
207
- {
208
- var expression_6 = _$_.hydrating ? _$_.hydrate_child() : span_5.firstChild;
195
+ {
196
+ var expression_4 = _$_.hydrating ? _$_.hydrate_child() : span_2.firstChild;
209
197
 
210
- _$_.expression(expression_6, () => lazy_6.value);
211
- _$_.pop(span_5);
212
- }
198
+ _$_.expression(expression_4, () => user.value.name);
199
+ _$_.hydrating && _$_.pop(span_2);
213
200
  }
214
201
 
215
- _$_.append(__anchor, div_2);
216
- },
217
- null,
218
- (__anchor) => {
219
- var div_3 = root_11();
202
+ var span_3 = _$_.hydrating ? _$_.hydrate_sibling() : span_2.nextSibling;
220
203
 
221
- _$_.append(__anchor, div_3);
222
- },
223
- true
224
- );
225
- });
204
+ {
205
+ var expression_5 = _$_.hydrating ? _$_.hydrate_child() : span_3.firstChild;
206
+
207
+ _$_.expression(expression_5, () => user.value.age);
208
+ _$_.hydrating && _$_.pop(span_3);
209
+ }
210
+ }
211
+
212
+ _$_.append(__anchor, div);
213
+ },
214
+ null,
215
+ (__anchor) => {
216
+ var div_1 = root_13();
217
+
218
+ _$_.append(__anchor, div_1);
219
+ },
220
+ true
221
+ );
226
222
  }
227
223
 
228
- export function AsyncWithCatch() {
229
- return _$_.tsrx_element((__anchor, __block) => {
230
- _$_.try(
231
- __anchor,
232
- (__anchor) => {
233
- let lazy_7 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.reject(new Error('fetch failed'))), __block, '99982de5');
234
- var p_4 = root_12();
224
+ AsyncObjectValue[_$_.$r] = AsyncObjectValue_render;
225
+
226
+ var root_14 = _$_.template(`<div class="multi"><span class="first"> </span><span class="second"> </span></div>`, 0);
227
+ var root_15 = _$_.template(`<div class="loading">loading...</div>`, 0);
228
+
229
+ function AsyncMultipleValues_render(__anchor, __block) {
230
+ _$_.try(
231
+ __anchor,
232
+ (__anchor) => {
233
+ const first = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('alpha')), __block, '99982de5');
234
+ const second = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve('beta')), __block, '1dea4c85');
235
+ var div_2 = root_14();
236
+
237
+ {
238
+ var span_4 = _$_.hydrating ? _$_.hydrate_child() : div_2.firstChild;
235
239
 
236
240
  {
237
- var expression_7 = _$_.hydrating ? _$_.hydrate_child() : p_4.firstChild;
241
+ var expression_6 = _$_.hydrating ? _$_.hydrate_child() : span_4.firstChild;
238
242
 
239
- _$_.expression(expression_7, () => lazy_7.value);
240
- _$_.pop(p_4);
243
+ _$_.expression(expression_6, () => first.value);
244
+ _$_.hydrating && _$_.pop(span_4);
241
245
  }
242
246
 
243
- _$_.append(__anchor, p_4);
244
- },
245
- (__anchor, e) => {
246
- var p_5 = root_13();
247
+ var span_5 = _$_.hydrating ? _$_.hydrate_sibling() : span_4.nextSibling;
247
248
 
248
249
  {
249
- var expression_8 = _$_.hydrating ? _$_.hydrate_child() : p_5.firstChild;
250
+ var expression_7 = _$_.hydrating ? _$_.hydrate_child() : span_5.firstChild;
250
251
 
251
- _$_.expression(expression_8, () => e.message);
252
- _$_.pop(p_5);
252
+ _$_.expression(expression_7, () => second.value);
253
+ _$_.hydrating && _$_.pop(span_5);
253
254
  }
255
+ }
256
+
257
+ _$_.append(__anchor, div_2);
258
+ },
259
+ null,
260
+ (__anchor) => {
261
+ var div_3 = root_15();
262
+
263
+ _$_.append(__anchor, div_3);
264
+ },
265
+ true
266
+ );
267
+ }
254
268
 
255
- _$_.append(__anchor, p_5);
256
- },
257
- (__anchor) => {
258
- var p_6 = root_14();
269
+ AsyncMultipleValues[_$_.$r] = AsyncMultipleValues_render;
259
270
 
260
- _$_.append(__anchor, p_6);
261
- },
262
- true
263
- );
264
- });
271
+ var root_16 = _$_.template(`<p class="result"> </p>`, 0);
272
+ var root_17 = _$_.template(`<p class="error"> </p>`, 0);
273
+ var root_18 = _$_.template(`<p class="loading">loading...</p>`, 0);
274
+
275
+ function AsyncWithCatch_render(__anchor, __block) {
276
+ _$_.try(
277
+ __anchor,
278
+ (__anchor) => {
279
+ const data = _$_.track_async(() => _$_.with_scope(__block, () => Promise.reject(new Error('fetch failed'))), __block, 'c9d12acf');
280
+ var p_6 = root_16();
281
+
282
+ {
283
+ var expression_8 = _$_.hydrating ? _$_.hydrate_child() : p_6.firstChild;
284
+
285
+ _$_.expression(expression_8, () => data.value);
286
+ _$_.hydrating && _$_.pop(p_6);
287
+ }
288
+
289
+ _$_.append(__anchor, p_6);
290
+ },
291
+ (__anchor, e) => {
292
+ var p_7 = root_17();
293
+
294
+ {
295
+ var expression_9 = _$_.hydrating ? _$_.hydrate_child() : p_7.firstChild;
296
+
297
+ _$_.expression(expression_9, () => e.message);
298
+ _$_.hydrating && _$_.pop(p_7);
299
+ }
300
+
301
+ _$_.append(__anchor, p_7);
302
+ },
303
+ (__anchor) => {
304
+ var p_8 = root_18();
305
+
306
+ _$_.append(__anchor, p_8);
307
+ },
308
+ true
309
+ );
265
310
  }
266
311
 
267
- export function ChildWithError() {
268
- return _$_.tsrx_element((__anchor, __block) => {
269
- _$_.try(
270
- __anchor,
271
- (__anchor) => {
272
- let lazy_8 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.reject(new Error('child error'))), __block, '1dea4c85');
273
- var p_7 = root_15();
312
+ AsyncWithCatch[_$_.$r] = AsyncWithCatch_render;
274
313
 
275
- {
276
- var expression_9 = _$_.hydrating ? _$_.hydrate_child() : p_7.firstChild;
314
+ var root_19 = _$_.template(`<p class="result"> </p>`, 0);
315
+ var root_20 = _$_.template(`<p class="pending">loading...</p>`, 0);
277
316
 
278
- _$_.expression(expression_9, () => lazy_8.value);
279
- _$_.pop(p_7);
280
- }
317
+ function ChildWithError_render(__anchor, __block) {
318
+ _$_.try(
319
+ __anchor,
320
+ (__anchor) => {
321
+ const data = _$_.track_async(() => _$_.with_scope(__block, () => Promise.reject(new Error('child error'))), __block, 'cdd1adb8');
322
+ var p_9 = root_19();
323
+
324
+ {
325
+ var expression_10 = _$_.hydrating ? _$_.hydrate_child() : p_9.firstChild;
326
+
327
+ _$_.expression(expression_10, () => data.value);
328
+ _$_.hydrating && _$_.pop(p_9);
329
+ }
330
+
331
+ _$_.append(__anchor, p_9);
332
+ },
333
+ null,
334
+ (__anchor) => {
335
+ var p_10 = root_20();
336
+
337
+ _$_.append(__anchor, p_10);
338
+ },
339
+ true
340
+ );
341
+ }
342
+
343
+ ChildWithError[_$_.$r] = ChildWithError_render;
344
+
345
+ var root_21 = _$_.template(`<p class="parent-error"> </p>`, 0);
346
+
347
+ function ParentWithCatch_render(__anchor, __block) {
348
+ _$_.try(
349
+ __anchor,
350
+ (__anchor) => {
351
+ _$_.render_component(ChildWithError, __anchor, {});
352
+ },
353
+ (__anchor, e) => {
354
+ var p_11 = root_21();
355
+
356
+ {
357
+ var expression_11 = _$_.hydrating ? _$_.hydrate_child() : p_11.firstChild;
358
+
359
+ _$_.expression(expression_11, () => e.message);
360
+ _$_.hydrating && _$_.pop(p_11);
361
+ }
362
+
363
+ _$_.append(__anchor, p_11);
364
+ },
365
+ null,
366
+ true
367
+ );
368
+ }
369
+
370
+ ParentWithCatch[_$_.$r] = ParentWithCatch_render;
371
+
372
+ var root_22 = _$_.template(`<p class="result"> </p>`, 0);
373
+
374
+ function ReactiveDependencyResult_render(__anchor, __block, { count }) {
375
+ const data = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(`count-${count.value}`)), __block, '18c43c3a');
376
+ var p_12 = root_22();
377
+
378
+ {
379
+ var expression_12 = _$_.hydrating ? _$_.hydrate_child() : p_12.firstChild;
380
+
381
+ _$_.expression(expression_12, () => data.value);
382
+ _$_.hydrating && _$_.pop(p_12);
383
+ }
281
384
 
282
- _$_.append(__anchor, p_7);
385
+ _$_.append(__anchor, p_12);
386
+ }
387
+
388
+ ReactiveDependencyResult[_$_.$r] = ReactiveDependencyResult_render;
389
+
390
+ var root_25 = _$_.template(`<p class="loading">loading...</p>`, 0);
391
+ var root_24 = _$_.template(`<button class="increment">increment</button><!>`, 1, 2);
392
+ var root_23 = _$_.template(`<!>`, 1, 1);
393
+
394
+ function AsyncWithReactiveDependency_render(__anchor, __block) {
395
+ const count = _$_.track(0, __block, 'd5dcc1d3');
396
+ var fragment_4 = root_23();
397
+ var node_5 = _$_.first_child_frag(fragment_4);
398
+
399
+ _$_.expression(node_5, () => _$_.tsrx_element((__anchor, __block) => {
400
+ var fragment_5 = root_24();
401
+ var button_2 = _$_.first_child_frag(fragment_5);
402
+
403
+ button_2.__click = () => {
404
+ count.value++;
405
+ };
406
+
407
+ var node_4 = _$_.hydrating ? _$_.hydrate_sibling() : button_2.nextSibling;
408
+
409
+ _$_.try(
410
+ node_4,
411
+ (__anchor) => {
412
+ _$_.render_component(ReactiveDependencyResult, __anchor, { count });
283
413
  },
284
414
  null,
285
415
  (__anchor) => {
286
- var p_8 = root_16();
416
+ var p_13 = root_25();
287
417
 
288
- _$_.append(__anchor, p_8);
289
- },
290
- true
418
+ _$_.append(__anchor, p_13);
419
+ }
291
420
  );
292
- });
421
+
422
+ _$_.append(__anchor, fragment_5);
423
+ }));
424
+
425
+ _$_.append(__anchor, fragment_4);
293
426
  }
294
427
 
295
- export function ParentWithCatch() {
296
- return _$_.tsrx_element((__anchor, __block) => {
297
- _$_.try(
298
- __anchor,
299
- (__anchor) => {
300
- _$_.render_component(ChildWithError, __anchor, {});
301
- },
302
- (__anchor, e) => {
303
- var p_9 = root_17();
428
+ AsyncWithReactiveDependency[_$_.$r] = AsyncWithReactiveDependency_render;
304
429
 
305
- {
306
- var expression_10 = _$_.hydrating ? _$_.hydrate_child() : p_9.firstChild;
430
+ var root_28 = _$_.template(`<p class="loading">loading...</p>`, 0);
431
+ var root_27 = _$_.template(`<button class="increment">increment</button><!>`, 1, 2);
432
+ var root_26 = _$_.template(`<!>`, 1, 1);
307
433
 
308
- _$_.expression(expression_10, () => e.message);
309
- _$_.pop(p_9);
310
- }
434
+ function AsyncWithReadOnlyDependency_render(__anchor, __block) {
435
+ const count = _$_.track(0, __block, '75a97b64');
436
+ var fragment_6 = root_26();
437
+ var node_7 = _$_.first_child_frag(fragment_6);
438
+
439
+ _$_.expression(node_7, () => _$_.tsrx_element((__anchor, __block) => {
440
+ var fragment_7 = root_27();
441
+ var button_3 = _$_.first_child_frag(fragment_7);
442
+
443
+ button_3.__click = () => {
444
+ count.value++;
445
+ };
311
446
 
312
- _$_.append(__anchor, p_9);
447
+ var node_6 = _$_.hydrating ? _$_.hydrate_sibling() : button_3.nextSibling;
448
+
449
+ _$_.try(
450
+ node_6,
451
+ (__anchor) => {
452
+ _$_.render_component(ReactiveDependencyResult, __anchor, { count: _$_.with_scope(__block, () => count.readOnly()) });
313
453
  },
314
454
  null,
315
- true
455
+ (__anchor) => {
456
+ var p_14 = root_28();
457
+
458
+ _$_.append(__anchor, p_14);
459
+ }
316
460
  );
317
- });
461
+
462
+ _$_.append(__anchor, fragment_7);
463
+ }));
464
+
465
+ _$_.append(__anchor, fragment_6);
318
466
  }
319
467
 
320
- function ReactiveDependencyResult({ count }) {
321
- return _$_.tsrx_element((__anchor, __block) => {
322
- let lazy_9 = _$_.track_async(() => _$_.with_scope(__block, () => Promise.resolve(`count-${count.value}`)), __block, 'c9d12acf');
323
- var p_10 = root_18();
468
+ AsyncWithReadOnlyDependency[_$_.$r] = AsyncWithReadOnlyDependency_render;
469
+
470
+ import { track, trackAsync } from 'ripple';
471
+ import { Money } from '../fixtures/money.js';
324
472
 
325
- {
326
- var expression_11 = _$_.hydrating ? _$_.hydrate_child() : p_10.firstChild;
473
+ export const transport = {
474
+ Money: {
475
+ encode: (value) => value instanceof Money && [value.amount, value.currency],
476
+ decode: ([amount, currency]) => new Money(amount, currency)
477
+ }
478
+ };
327
479
 
328
- _$_.expression(expression_11, () => lazy_9.value);
329
- _$_.pop(p_10);
330
- }
480
+ const doubleMoney = function (...args) {
481
+ return _$_.rpc('4a0a0675', args);
482
+ };
331
483
 
332
- _$_.append(__anchor, p_10);
333
- });
484
+ const formatValue = function (...args) {
485
+ return _$_.rpc('1215faad', args);
486
+ };
487
+
488
+ function MoneyResult(__props) {
489
+ return _$_.tsrx_element(MoneyResult_render, __props);
334
490
  }
335
491
 
336
- export function AsyncWithReactiveDependency() {
337
- return _$_.tsrx_element((__anchor, __block) => {
338
- let lazy_10 = _$_.track(0, __block, 'cdd1adb8');
339
- var fragment_2 = root_19();
340
- var node_3 = _$_.first_child_frag(fragment_2);
341
-
342
- _$_.expression(node_3, () => _$_.tsrx_element((__anchor, __block) => {
343
- var fragment_3 = root_20();
344
- var button_1 = _$_.first_child_frag(fragment_3);
345
-
346
- button_1.__click = () => {
347
- _$_.update(lazy_10);
348
- };
349
-
350
- var node_2 = _$_.hydrating ? _$_.hydrate_sibling() : button_1.nextSibling;
351
-
352
- _$_.try(
353
- node_2,
354
- (__anchor) => {
355
- _$_.render_component(ReactiveDependencyResult, __anchor, {
356
- get count() {
357
- return lazy_10;
358
- }
359
- });
360
- },
361
- null,
362
- (__anchor) => {
363
- var p_11 = root_21();
364
-
365
- _$_.append(__anchor, p_11);
366
- }
367
- );
492
+ export function AsyncCustomType() {
493
+ return _$_.tsrx_element(AsyncCustomType_render);
494
+ }
495
+
496
+ function ServerCallResult(__props) {
497
+ return _$_.tsrx_element(ServerCallResult_render, __props);
498
+ }
499
+
500
+ export function AsyncWithServerCall() {
501
+ return _$_.tsrx_element(AsyncWithServerCall_render);
502
+ }
503
+
504
+ export function AsyncSimpleValue() {
505
+ return _$_.tsrx_element(AsyncSimpleValue_render);
506
+ }
507
+
508
+ export function AsyncNumericValue() {
509
+ return _$_.tsrx_element(AsyncNumericValue_render);
510
+ }
511
+
512
+ export function AsyncObjectValue() {
513
+ return _$_.tsrx_element(AsyncObjectValue_render);
514
+ }
515
+
516
+ export function AsyncMultipleValues() {
517
+ return _$_.tsrx_element(AsyncMultipleValues_render);
518
+ }
368
519
 
369
- _$_.append(__anchor, fragment_3);
370
- }));
520
+ export function AsyncWithCatch() {
521
+ return _$_.tsrx_element(AsyncWithCatch_render);
522
+ }
523
+
524
+ export function ChildWithError() {
525
+ return _$_.tsrx_element(ChildWithError_render);
526
+ }
527
+
528
+ export function ParentWithCatch() {
529
+ return _$_.tsrx_element(ParentWithCatch_render);
530
+ }
531
+
532
+ function ReactiveDependencyResult(__props) {
533
+ return _$_.tsrx_element(ReactiveDependencyResult_render, __props);
534
+ }
535
+
536
+ export function AsyncWithReactiveDependency() {
537
+ return _$_.tsrx_element(AsyncWithReactiveDependency_render);
538
+ }
371
539
 
372
- _$_.append(__anchor, fragment_2);
373
- });
540
+ export function AsyncWithReadOnlyDependency() {
541
+ return _$_.tsrx_element(AsyncWithReadOnlyDependency_render);
374
542
  }
375
543
 
376
544
  _$_.delegate(['click']);