@typed/template 0.9.6 → 0.10.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 (300) hide show
  1. package/RenderQueue/package.json +6 -0
  2. package/dist/cjs/Directive.js +1 -1
  3. package/dist/cjs/Directive.js.map +1 -1
  4. package/dist/cjs/ElementRef.js +1 -1
  5. package/dist/cjs/ElementRef.js.map +1 -1
  6. package/dist/cjs/ElementSource.js +1 -1
  7. package/dist/cjs/ElementSource.js.map +1 -1
  8. package/dist/cjs/EventHandler.js +11 -4
  9. package/dist/cjs/EventHandler.js.map +1 -1
  10. package/dist/cjs/Html.js +84 -44
  11. package/dist/cjs/Html.js.map +1 -1
  12. package/dist/cjs/HtmlChunk.js +67 -21
  13. package/dist/cjs/HtmlChunk.js.map +1 -1
  14. package/dist/cjs/Hydrate.js +6 -6
  15. package/dist/cjs/Hydrate.js.map +1 -1
  16. package/dist/cjs/Many.js +4 -4
  17. package/dist/cjs/Many.js.map +1 -1
  18. package/dist/cjs/Meta.js +10 -3
  19. package/dist/cjs/Meta.js.map +1 -1
  20. package/dist/cjs/Parser.js +1 -1
  21. package/dist/cjs/Placeholder.js +5 -9
  22. package/dist/cjs/Placeholder.js.map +1 -1
  23. package/dist/cjs/Platform.js +7 -5
  24. package/dist/cjs/Platform.js.map +1 -1
  25. package/dist/cjs/Render.js +8 -7
  26. package/dist/cjs/Render.js.map +1 -1
  27. package/dist/cjs/RenderContext.js +8 -92
  28. package/dist/cjs/RenderContext.js.map +1 -1
  29. package/dist/cjs/RenderEvent.js +9 -1
  30. package/dist/cjs/RenderEvent.js.map +1 -1
  31. package/dist/cjs/RenderQueue.js +341 -0
  32. package/dist/cjs/RenderQueue.js.map +1 -0
  33. package/dist/cjs/RenderTemplate.js +1 -1
  34. package/dist/cjs/RenderTemplate.js.map +1 -1
  35. package/dist/cjs/Template.js +12 -0
  36. package/dist/cjs/Template.js.map +1 -1
  37. package/dist/cjs/Test.js +64 -33
  38. package/dist/cjs/Test.js.map +1 -1
  39. package/dist/cjs/Vitest.js +12 -20
  40. package/dist/cjs/Vitest.js.map +1 -1
  41. package/dist/cjs/index.js +6 -3
  42. package/dist/cjs/index.js.map +1 -1
  43. package/dist/cjs/internal/EventSource.js +16 -9
  44. package/dist/cjs/internal/EventSource.js.map +1 -1
  45. package/dist/cjs/internal/HydrateContext.js.map +1 -1
  46. package/dist/cjs/internal/browser.js +11 -10
  47. package/dist/cjs/internal/browser.js.map +1 -1
  48. package/dist/cjs/internal/character-entities.js +2141 -0
  49. package/dist/cjs/internal/character-entities.js.map +1 -0
  50. package/dist/cjs/internal/errors.js +19 -2
  51. package/dist/cjs/internal/errors.js.map +1 -1
  52. package/dist/cjs/internal/indexRefCounter.js +36 -63
  53. package/dist/cjs/internal/indexRefCounter.js.map +1 -1
  54. package/dist/cjs/internal/parser.js +18 -17
  55. package/dist/cjs/internal/parser.js.map +1 -1
  56. package/dist/cjs/internal/parser2.js +382 -0
  57. package/dist/cjs/internal/parser2.js.map +1 -0
  58. package/dist/cjs/internal/server-parts.js +124 -0
  59. package/dist/cjs/internal/server-parts.js.map +1 -0
  60. package/dist/cjs/internal/server.js +15 -185
  61. package/dist/cjs/internal/server.js.map +1 -1
  62. package/dist/cjs/internal/utils.js +73 -9
  63. package/dist/cjs/internal/utils.js.map +1 -1
  64. package/dist/cjs/internal/v2/SyncPart.js +6 -0
  65. package/dist/cjs/internal/v2/SyncPart.js.map +1 -0
  66. package/dist/cjs/internal/v2/helpers.js +15 -0
  67. package/dist/cjs/internal/v2/helpers.js.map +1 -0
  68. package/dist/cjs/internal/v2/hydrate.js +202 -0
  69. package/dist/cjs/internal/v2/hydrate.js.map +1 -0
  70. package/dist/cjs/internal/v2/hydration-template.js +269 -0
  71. package/dist/cjs/internal/v2/hydration-template.js.map +1 -0
  72. package/dist/cjs/internal/v2/parts.js +169 -0
  73. package/dist/cjs/internal/v2/parts.js.map +1 -0
  74. package/dist/cjs/internal/v2/render-entry.js +110 -0
  75. package/dist/cjs/internal/v2/render-entry.js.map +1 -0
  76. package/dist/cjs/internal/v2/render-sync-parts.js +318 -0
  77. package/dist/cjs/internal/v2/render-sync-parts.js.map +1 -0
  78. package/dist/cjs/internal/v2/render.js +417 -0
  79. package/dist/cjs/internal/v2/render.js.map +1 -0
  80. package/dist/cjs/internal/v2/sync-parts.js +115 -0
  81. package/dist/cjs/internal/v2/sync-parts.js.map +1 -0
  82. package/dist/dts/ElementRef.d.ts +1 -1
  83. package/dist/dts/ElementRef.d.ts.map +1 -1
  84. package/dist/dts/ElementSource.d.ts +1 -1
  85. package/dist/dts/ElementSource.d.ts.map +1 -1
  86. package/dist/dts/EventHandler.d.ts +12 -8
  87. package/dist/dts/EventHandler.d.ts.map +1 -1
  88. package/dist/dts/Html.d.ts +6 -5
  89. package/dist/dts/Html.d.ts.map +1 -1
  90. package/dist/dts/HtmlChunk.d.ts.map +1 -1
  91. package/dist/dts/Hydrate.d.ts +1 -3
  92. package/dist/dts/Hydrate.d.ts.map +1 -1
  93. package/dist/dts/Many.d.ts +9 -11
  94. package/dist/dts/Many.d.ts.map +1 -1
  95. package/dist/dts/Meta.d.ts +5 -1
  96. package/dist/dts/Meta.d.ts.map +1 -1
  97. package/dist/dts/Parser.d.ts +1 -1
  98. package/dist/dts/Parser.d.ts.map +1 -1
  99. package/dist/dts/Part.d.ts +20 -56
  100. package/dist/dts/Part.d.ts.map +1 -1
  101. package/dist/dts/Placeholder.d.ts +6 -10
  102. package/dist/dts/Placeholder.d.ts.map +1 -1
  103. package/dist/dts/Platform.d.ts +2 -4
  104. package/dist/dts/Platform.d.ts.map +1 -1
  105. package/dist/dts/Render.d.ts +4 -8
  106. package/dist/dts/Render.d.ts.map +1 -1
  107. package/dist/dts/RenderContext.d.ts +3 -22
  108. package/dist/dts/RenderContext.d.ts.map +1 -1
  109. package/dist/dts/RenderEvent.d.ts +6 -1
  110. package/dist/dts/RenderEvent.d.ts.map +1 -1
  111. package/dist/dts/RenderQueue.d.ts +103 -0
  112. package/dist/dts/RenderQueue.d.ts.map +1 -0
  113. package/dist/dts/RenderTemplate.d.ts +3 -2
  114. package/dist/dts/RenderTemplate.d.ts.map +1 -1
  115. package/dist/dts/Renderable.d.ts +1 -1
  116. package/dist/dts/Template.d.ts +14 -1
  117. package/dist/dts/Template.d.ts.map +1 -1
  118. package/dist/dts/Test.d.ts +14 -1
  119. package/dist/dts/Test.d.ts.map +1 -1
  120. package/dist/dts/Vitest.d.ts +11 -8
  121. package/dist/dts/Vitest.d.ts.map +1 -1
  122. package/dist/dts/index.d.ts +4 -0
  123. package/dist/dts/index.d.ts.map +1 -1
  124. package/dist/dts/internal/EventSource.d.ts +2 -1
  125. package/dist/dts/internal/EventSource.d.ts.map +1 -1
  126. package/dist/dts/internal/browser.d.ts +3 -3
  127. package/dist/dts/internal/browser.d.ts.map +1 -1
  128. package/dist/dts/internal/character-entities.d.ts +2133 -0
  129. package/dist/dts/internal/character-entities.d.ts.map +1 -0
  130. package/dist/dts/internal/errors.d.ts +9 -1
  131. package/dist/dts/internal/errors.d.ts.map +1 -1
  132. package/dist/dts/internal/indexRefCounter.d.ts +0 -4
  133. package/dist/dts/internal/indexRefCounter.d.ts.map +1 -1
  134. package/dist/dts/internal/parser.d.ts +13 -0
  135. package/dist/dts/internal/parser.d.ts.map +1 -1
  136. package/dist/dts/internal/parser2.d.ts +12 -0
  137. package/dist/dts/internal/parser2.d.ts.map +1 -0
  138. package/dist/dts/internal/server-parts.d.ts +223 -0
  139. package/dist/dts/internal/server-parts.d.ts.map +1 -0
  140. package/dist/dts/internal/server.d.ts +2 -28
  141. package/dist/dts/internal/server.d.ts.map +1 -1
  142. package/dist/dts/internal/utils.d.ts +4 -1
  143. package/dist/dts/internal/utils.d.ts.map +1 -1
  144. package/dist/dts/internal/v2/SyncPart.d.ts +87 -0
  145. package/dist/dts/internal/v2/SyncPart.d.ts.map +1 -0
  146. package/dist/dts/internal/v2/helpers.d.ts +3 -0
  147. package/dist/dts/internal/v2/helpers.d.ts.map +1 -0
  148. package/dist/dts/internal/v2/hydrate.d.ts +7 -0
  149. package/dist/dts/internal/v2/hydrate.d.ts.map +1 -0
  150. package/dist/dts/internal/v2/hydration-template.d.ts +54 -0
  151. package/dist/dts/internal/v2/hydration-template.d.ts.map +1 -0
  152. package/dist/dts/internal/v2/parts.d.ts +245 -0
  153. package/dist/dts/internal/v2/parts.d.ts.map +1 -0
  154. package/dist/dts/internal/v2/render-entry.d.ts +6 -0
  155. package/dist/dts/internal/v2/render-entry.d.ts.map +1 -0
  156. package/dist/dts/internal/v2/render-sync-parts.d.ts +22 -0
  157. package/dist/dts/internal/v2/render-sync-parts.d.ts.map +1 -0
  158. package/dist/dts/internal/v2/render.d.ts +62 -0
  159. package/dist/dts/internal/v2/render.d.ts.map +1 -0
  160. package/dist/dts/internal/v2/sync-parts.d.ts +129 -0
  161. package/dist/dts/internal/v2/sync-parts.d.ts.map +1 -0
  162. package/dist/esm/ElementRef.js.map +1 -1
  163. package/dist/esm/EventHandler.js +14 -4
  164. package/dist/esm/EventHandler.js.map +1 -1
  165. package/dist/esm/Html.js +91 -50
  166. package/dist/esm/Html.js.map +1 -1
  167. package/dist/esm/HtmlChunk.js +75 -24
  168. package/dist/esm/HtmlChunk.js.map +1 -1
  169. package/dist/esm/Hydrate.js +5 -5
  170. package/dist/esm/Hydrate.js.map +1 -1
  171. package/dist/esm/Many.js +3 -3
  172. package/dist/esm/Many.js.map +1 -1
  173. package/dist/esm/Meta.js +7 -1
  174. package/dist/esm/Meta.js.map +1 -1
  175. package/dist/esm/Parser.js +1 -1
  176. package/dist/esm/Parser.js.map +1 -1
  177. package/dist/esm/Placeholder.js +4 -8
  178. package/dist/esm/Placeholder.js.map +1 -1
  179. package/dist/esm/Platform.js +3 -1
  180. package/dist/esm/Platform.js.map +1 -1
  181. package/dist/esm/Render.js +6 -5
  182. package/dist/esm/Render.js.map +1 -1
  183. package/dist/esm/RenderContext.js +5 -85
  184. package/dist/esm/RenderContext.js.map +1 -1
  185. package/dist/esm/RenderEvent.js +8 -1
  186. package/dist/esm/RenderEvent.js.map +1 -1
  187. package/dist/esm/RenderQueue.js +336 -0
  188. package/dist/esm/RenderQueue.js.map +1 -0
  189. package/dist/esm/RenderTemplate.js.map +1 -1
  190. package/dist/esm/Template.js +12 -0
  191. package/dist/esm/Template.js.map +1 -1
  192. package/dist/esm/Test.js +71 -30
  193. package/dist/esm/Test.js.map +1 -1
  194. package/dist/esm/Vitest.js +11 -8
  195. package/dist/esm/Vitest.js.map +1 -1
  196. package/dist/esm/index.js +4 -0
  197. package/dist/esm/index.js.map +1 -1
  198. package/dist/esm/internal/EventSource.js +12 -7
  199. package/dist/esm/internal/EventSource.js.map +1 -1
  200. package/dist/esm/internal/HydrateContext.js.map +1 -1
  201. package/dist/esm/internal/browser.js +10 -9
  202. package/dist/esm/internal/browser.js.map +1 -1
  203. package/dist/esm/internal/character-entities.js +2134 -0
  204. package/dist/esm/internal/character-entities.js.map +1 -0
  205. package/dist/esm/internal/errors.js +22 -2
  206. package/dist/esm/internal/errors.js.map +1 -1
  207. package/dist/esm/internal/indexRefCounter.js +36 -61
  208. package/dist/esm/internal/indexRefCounter.js.map +1 -1
  209. package/dist/esm/internal/parser.js +18 -18
  210. package/dist/esm/internal/parser.js.map +1 -1
  211. package/dist/esm/internal/parser2.js +393 -0
  212. package/dist/esm/internal/parser2.js.map +1 -0
  213. package/dist/esm/internal/server-parts.js +109 -0
  214. package/dist/esm/internal/server-parts.js.map +1 -0
  215. package/dist/esm/internal/server.js +12 -161
  216. package/dist/esm/internal/server.js.map +1 -1
  217. package/dist/esm/internal/utils.js +71 -7
  218. package/dist/esm/internal/utils.js.map +1 -1
  219. package/dist/esm/internal/v2/SyncPart.js +5 -0
  220. package/dist/esm/internal/v2/SyncPart.js.map +1 -0
  221. package/dist/esm/internal/v2/helpers.js +12 -0
  222. package/dist/esm/internal/v2/helpers.js.map +1 -0
  223. package/dist/esm/internal/v2/hydrate.js +195 -0
  224. package/dist/esm/internal/v2/hydrate.js.map +1 -0
  225. package/dist/esm/internal/v2/hydration-template.js +265 -0
  226. package/dist/esm/internal/v2/hydration-template.js.map +1 -0
  227. package/dist/esm/internal/v2/parts.js +150 -0
  228. package/dist/esm/internal/v2/parts.js.map +1 -0
  229. package/dist/esm/internal/v2/render-entry.js +102 -0
  230. package/dist/esm/internal/v2/render-entry.js.map +1 -0
  231. package/dist/esm/internal/v2/render-sync-parts.js +265 -0
  232. package/dist/esm/internal/v2/render-sync-parts.js.map +1 -0
  233. package/dist/esm/internal/v2/render.js +353 -0
  234. package/dist/esm/internal/v2/render.js.map +1 -0
  235. package/dist/esm/internal/v2/sync-parts.js +102 -0
  236. package/dist/esm/internal/v2/sync-parts.js.map +1 -0
  237. package/package.json +20 -13
  238. package/src/ElementRef.ts +1 -1
  239. package/src/ElementSource.ts +1 -1
  240. package/src/EventHandler.ts +29 -11
  241. package/src/Html.ts +199 -90
  242. package/src/HtmlChunk.ts +77 -30
  243. package/src/Hydrate.ts +20 -14
  244. package/src/Many.ts +17 -14
  245. package/src/Meta.ts +8 -1
  246. package/src/Parser.ts +1 -1
  247. package/src/Part.ts +22 -66
  248. package/src/Placeholder.ts +17 -15
  249. package/src/Platform.ts +5 -5
  250. package/src/Render.ts +23 -26
  251. package/src/RenderContext.ts +14 -142
  252. package/src/RenderEvent.ts +10 -1
  253. package/src/RenderQueue.ts +445 -0
  254. package/src/RenderTemplate.ts +7 -2
  255. package/src/Renderable.ts +1 -1
  256. package/src/Template.ts +15 -1
  257. package/src/Test.ts +122 -38
  258. package/src/Vitest.ts +20 -10
  259. package/src/index.ts +4 -0
  260. package/src/internal/EventSource.ts +14 -8
  261. package/src/internal/HydrateContext.ts +3 -4
  262. package/src/internal/browser.ts +26 -21
  263. package/src/internal/character-entities.ts +2136 -0
  264. package/src/internal/errors.ts +30 -3
  265. package/src/internal/indexRefCounter.ts +38 -70
  266. package/src/internal/parser.ts +19 -19
  267. package/src/internal/parser2.ts +468 -0
  268. package/src/internal/server-parts.ts +161 -0
  269. package/src/internal/server.ts +16 -272
  270. package/src/internal/utils.ts +83 -7
  271. package/src/internal/v2/SyncPart.ts +112 -0
  272. package/src/internal/v2/helpers.ts +13 -0
  273. package/src/internal/v2/hydrate.ts +289 -0
  274. package/src/internal/v2/hydration-template.ts +308 -0
  275. package/src/internal/v2/parts.ts +254 -0
  276. package/src/internal/v2/render-entry.ts +131 -0
  277. package/src/internal/v2/render-sync-parts.ts +440 -0
  278. package/src/internal/v2/render.ts +588 -0
  279. package/src/internal/v2/sync-parts.ts +133 -0
  280. package/dist/cjs/internal/hydrate.js +0 -274
  281. package/dist/cjs/internal/hydrate.js.map +0 -1
  282. package/dist/cjs/internal/parts.js +0 -451
  283. package/dist/cjs/internal/parts.js.map +0 -1
  284. package/dist/cjs/internal/render.js +0 -704
  285. package/dist/cjs/internal/render.js.map +0 -1
  286. package/dist/dts/internal/hydrate.d.ts +0 -33
  287. package/dist/dts/internal/hydrate.d.ts.map +0 -1
  288. package/dist/dts/internal/parts.d.ts +0 -314
  289. package/dist/dts/internal/parts.d.ts.map +0 -1
  290. package/dist/dts/internal/render.d.ts +0 -16
  291. package/dist/dts/internal/render.d.ts.map +0 -1
  292. package/dist/esm/internal/hydrate.js +0 -239
  293. package/dist/esm/internal/hydrate.js.map +0 -1
  294. package/dist/esm/internal/parts.js +0 -373
  295. package/dist/esm/internal/parts.js.map +0 -1
  296. package/dist/esm/internal/render.js +0 -689
  297. package/dist/esm/internal/render.js.map +0 -1
  298. package/src/internal/hydrate.ts +0 -366
  299. package/src/internal/parts.ts +0 -609
  300. package/src/internal/render.ts +0 -971
@@ -1 +1 @@
1
- {"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../src/Meta.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,0DAA0D;AAC1D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAA;AAC/C;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,eAAe,IAAI,GAAG,CAAA;AAElE,2EAA2E;AAC3E,0BAA0B;AAC1B;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAA;AAEvC,kFAAkF;AAClF,yCAAyC;AACzC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,KAAK,KAAK,CAAA;AAElE;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAgB,EAAE,EAAE,CAAC,WAAW,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAA"}
1
+ {"version":3,"file":"Meta.js","sourceRoot":"","sources":["../../src/Meta.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,0DAA0D;AAC1D;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,oBAAoB,CAAA;AAC/C;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,kBAAkB,CAAA;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,eAAe,IAAI,GAAG,CAAA;AAElE,2EAA2E;AAC3E,0BAA0B;AAC1B;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAA;AAEvC,kFAAkF;AAClF,yCAAyC;AACzC;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,WAAW,KAAK,KAAK,CAAA;AAExE,kFAAkF;AAClF,yCAAyC;AACzC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,YAAY,KAAK,KAAK,CAAA;AAEvE;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAgB,EAAE,EAAE,CAAC,WAAW,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAA"}
@@ -9,5 +9,5 @@ parse,
9
9
  /**
10
10
  * @since 1.0.0
11
11
  */
12
- templateHash } from "./internal/parser.js";
12
+ templateHash } from "./internal/parser2.js";
13
13
  //# sourceMappingURL=Parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../src/Parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO;AACL;;GAEG;AACH,KAAK;AACL;;GAEG;AACH,YAAY,EACb,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"Parser.js","sourceRoot":"","sources":["../../src/Parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO;AACL;;GAEG;AACH,KAAK;AACL;;GAEG;AACH,YAAY,EACb,MAAM,uBAAuB,CAAA"}
@@ -1,9 +1,8 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import * as Fx from "@typed/fx";
4
5
  import "./internal/module-augmentation.js";
5
- import { isFx } from "@typed/fx/Fx";
6
- import * as RefSubject from "@typed/fx/RefSubject";
7
6
  import * as Effect from "effect/Effect";
8
7
  /**
9
8
  * @since 1.0.0
@@ -14,15 +13,12 @@ export const PlaceholderTypeId = Symbol.for("@typed/template/Placholder");
14
13
  */
15
14
  export var Placeholder;
16
15
  (function (Placeholder) {
17
- /**
18
- * @since 1.0.0
19
- */
20
16
  function asRef(placeholder) {
21
- if (isFx(placeholder) || Effect.isEffect(placeholder)) {
22
- return RefSubject.make(placeholder);
17
+ if (Fx.isFx(placeholder) || Effect.isEffect(placeholder)) {
18
+ return Fx.RefSubject.make(placeholder);
23
19
  }
24
20
  else {
25
- return RefSubject.of(placeholder);
21
+ return Fx.RefSubject.of(placeholder);
26
22
  }
27
23
  }
28
24
  Placeholder.asRef = asRef;
@@ -1 +1 @@
1
- {"version":3,"file":"Placeholder.js","sourceRoot":"","sources":["../../src/Placeholder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,mCAAmC,CAAA;AAE1C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AAiBzE;;GAEG;AACH,MAAM,KAAW,WAAW,CAyC3B;AAzCD,WAAiB,WAAW;IA6B1B;;OAEG;IACH,SAAgB,KAAK,CACnB,WAA4E;QAE5E,IAAI,IAAI,CAAU,WAAW,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/D,OAAO,UAAU,CAAC,IAAI,CAAC,WAA0B,CAAC,CAAA;QACpD,CAAC;aAAM,CAAC;YACN,OAAO,UAAU,CAAC,EAAE,CAAO,WAAgB,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;IARe,iBAAK,QAQpB,CAAA;AACH,CAAC,EAzCgB,WAAW,KAAX,WAAW,QAyC3B"}
1
+ {"version":3,"file":"Placeholder.js","sourceRoot":"","sources":["../../src/Placeholder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,mCAAmC,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;AAiBzE;;GAEG;AACH,MAAM,KAAW,WAAW,CA6C3B;AA7CD,WAAiB,WAAW;IAoC1B,SAAgB,KAAK,CACnB,WAA+E;QAE/E,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACzD,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACxC,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,WAAgB,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IARe,iBAAK,QAQpB,CAAA;AACH,CAAC,EA7CgB,WAAW,KAAX,WAAW,QA6C3B"}
@@ -4,7 +4,9 @@
4
4
  import * as Headers from "@effect/platform/Http/Headers";
5
5
  import * as HttpServer from "@effect/platform/HttpServer";
6
6
  import { toStream } from "@typed/fx/Stream";
7
- import { Effect, Option, Stream } from "effect";
7
+ import * as Effect from "effect/Effect";
8
+ import * as Option from "effect/Option";
9
+ import * as Stream from "effect/Stream";
8
10
  import { renderToHtml } from "./Html.js";
9
11
  const HTML_CONTENT_TYPE = "text/html";
10
12
  const CAMEL_CASE_CONTENT_TYPE = { contentType: HTML_CONTENT_TYPE };
@@ -1 +1 @@
1
- {"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../src/Platform.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAExD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAKxC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AACrC,MAAM,uBAAuB,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAA;AAClE,MAAM,uBAAuB,GAAG,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAA;AAErE;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,EAA4B,EAC5B,OAAqC;IAErC,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,UAAU,CAAC,QAAQ,CAAC,MAAM,CACxB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACzE;QACE,GAAG,uBAAuB;QAC1B,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,GAAG,uBAAuB,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;KACvF,CACF,CACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,OAAqC;IAErC,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAC5B,IAAI,EACJ;QACE,GAAG,uBAAuB;QAC1B,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,GAAG,uBAAuB,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;KACvF,CACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAsB;IAC5D,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,IAAI,CACxD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EACjD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CACpC,CAAA;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAC7D,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EACrD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAC/B,CAAA;IAED,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,MAAM,IAAI,EAAE,CAAC,CAAA;AACtD,CAAC"}
1
+ {"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../src/Platform.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,+BAA+B,CAAA;AAExD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAGxC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AACrC,MAAM,uBAAuB,GAAG,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAA;AAClE,MAAM,uBAAuB,GAAG,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAA;AAErE;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,EAAmC,EACnC,OAAqC;IAErC,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,UAAU,CAAC,QAAQ,CAAC,MAAM,CACxB,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EACzE;QACE,GAAG,uBAAuB;QAC1B,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,GAAG,uBAAuB,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;KACvF,CACF,CACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,OAAqC;IAErC,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAC5B,IAAI,EACJ;QACE,GAAG,uBAAuB;QAC1B,GAAG,OAAO;QACV,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,GAAG,uBAAuB,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC;KACvF,CACF,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAsB;IAC5D,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC,IAAI,CACxD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EACjD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CACpC,CAAA;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAC7D,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EACrD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAC/B,CAAA;IAED,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,MAAM,IAAI,EAAE,CAAC,CAAA;AACtD,CAAC"}
@@ -5,16 +5,17 @@ import * as Context from "@typed/context";
5
5
  import { Document } from "@typed/dom/Document";
6
6
  import { RootElement } from "@typed/dom/RootElement";
7
7
  import * as Fx from "@typed/fx/Fx";
8
- import { Layer } from "effect";
9
8
  import * as Effect from "effect/Effect";
10
- import { attachRoot, renderTemplate } from "./internal/render.js";
9
+ import { pipe } from "effect/Function";
10
+ import * as Layer from "effect/Layer";
11
+ import { attachRoot, renderTemplate } from "./internal/v2/render.js";
11
12
  import * as RenderContext from "./RenderContext.js";
12
13
  import { RenderTemplate } from "./RenderTemplate.js";
13
14
  /**
14
15
  * @since 1.0.0
15
16
  */
16
17
  export const renderLayer = (window, options) => Layer.provideMerge(RenderTemplate.layer(Effect.contextWith((context) => {
17
- const [document, ctx] = Context.getMany(context, Document, RenderContext.RenderContext);
18
+ const [document, ctx] = pipe(context, Context.getMany(Document, RenderContext.RenderContext));
18
19
  return renderTemplate(document, ctx);
19
20
  })), RenderContext.dom(window, options));
20
21
  /**
@@ -29,7 +30,7 @@ export function render(rendered) {
29
30
  /**
30
31
  * @since 1.0.0
31
32
  */
32
- export function renderToLayer(rendered, window = globalThis.window, options) {
33
- return Layer.provideMerge(Fx.drainLayer(Fx.switchMapCause(render(rendered), (e) => Fx.fromEffect(Effect.logError(e)))), renderLayer(window, options));
33
+ export function renderToLayer(rendered) {
34
+ return Fx.drainLayer(Fx.switchMapCause(render(rendered), (e) => Fx.fromEffect(Effect.logError(`Rendering Failure`, e))));
34
35
  }
35
36
  //# sourceMappingURL=Render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Render.js","sourceRoot":"","sources":["../../src/Render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,KAAK,EAAE,MAAM,cAAc,CAAA;AAGlC,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAOpD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,MAA2B,EAC3B,OAAgF,EAMhF,EAAE,CACF,KAAK,CAAC,YAAY,CAChB,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAgE,EAAE,EAAE;IAC3G,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,OAAO,CACrC,OAAO,EACP,QAAQ,EACR,aAAa,CAAC,aAAa,CAC5B,CAAA;IAED,OAAO,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACtC,CAAC,CAAC,CAAC,EACH,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CACnC,CAAA;AAEH;;GAEG;AACH,MAAM,UAAU,MAAM,CACpB,QAAwB;IAExB,OAAO,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE;QACpD,MAAM,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAC5C,OAAO,EACP,aAAa,CAAC,aAAa,EAC3B,WAAW,CACZ,CAAA;QAED,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAA;IACzF,CAAC,CAAC,CAAC,CAAA;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAwB,EACxB,SAA8B,UAAU,CAAC,MAAM,EAC/C,OAAgF;IAShF,OAAO,KAAK,CAAC,YAAY,CACvB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC5F,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAC7B,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"Render.js","sourceRoot":"","sources":["../../src/Render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAG9C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD,OAAO,KAAK,EAAE,MAAM,cAAc,CAAA;AAElC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AACtC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAOpD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,MAA2B,EAC3B,OAAkC,EAMlC,EAAE,CACF,KAAK,CAAC,YAAY,CAChB,cAAc,CAAC,KAAK,CAClB,MAAM,CAAC,WAAW,CAChB,CAAC,OAAgE,EAAE,EAAE;IACnE,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAC1B,OAAO,EACP,OAAO,CAAC,OAAO,CACb,QAAQ,EACR,aAAa,CAAC,aAAa,CAC5B,CACF,CAAA;IAED,OAAO,cAAc,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACtC,CAAC,CACF,CACF,EACD,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CACnC,CAAA;AAEH;;GAEG;AACH,MAAM,UAAU,MAAM,CACpB,QAAwB;IAExB,OAAO,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE;QACpD,MAAM,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAC5C,OAAO,EACP,aAAa,CAAC,aAAa,EAC3B,WAAW,CACZ,CAAA;QAED,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAA;IACzF,CAAC,CAAC,CAAC,CAAA;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,QAAwB;IAExB,OAAO,EAAE,CAAC,UAAU,CAClB,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,CACnG,CAAA;AACH,CAAC"}
@@ -7,31 +7,21 @@ import { domServices } from "@typed/dom/DomServices";
7
7
  import { GlobalThis } from "@typed/dom/GlobalThis";
8
8
  import { Window } from "@typed/dom/Window";
9
9
  import { CurrentEnvironment } from "@typed/environment";
10
- import * as Idle from "@typed/fx/Idle";
11
- import * as Effect from "effect/Effect";
12
10
  import * as Layer from "effect/Layer";
13
11
  import * as Option from "effect/Option";
14
- import * as Scope from "effect/Scope";
15
12
  /**
16
13
  * The context in which templates are rendered within
17
14
  * @since 1.0.0
18
15
  */
19
- export const RenderContext = Context.Tagged("./RenderContext.js");
16
+ export const RenderContext = Context.Tagged("@typed/template/RenderContext");
20
17
  /**
21
18
  * @since 1.0.0
22
19
  */
23
- export function make({ ...options }, skipRenderScheduling) {
24
- return Effect.scopeWith((scope) => Effect.succeed(unsafeMake({ ...options, scope }, skipRenderScheduling)));
25
- }
26
- /**
27
- * @since 1.0.0
28
- */
29
- export function unsafeMake({ environment, scope, ...options }, skipRenderScheduling) {
20
+ export function make({ environment }) {
30
21
  return {
31
22
  environment,
32
23
  renderCache: new WeakMap(),
33
- templateCache: new WeakMap(),
34
- queue: new RenderQueueImpl(scope, options, skipRenderScheduling ?? false)
24
+ templateCache: new WeakMap()
35
25
  };
36
26
  }
37
27
  /**
@@ -46,11 +36,11 @@ export function getRenderCache(renderCache, key) {
46
36
  export function getTemplateCache(templateCache, key) {
47
37
  return Option.fromNullable(templateCache.get(key));
48
38
  }
49
- const buildWithCurrentEnvironment = (environment, skipRenderScheduling) => Layer.mergeAll(RenderContext.scoped(make({ environment }, skipRenderScheduling)), CurrentEnvironment.layer(environment));
39
+ const buildWithCurrentEnvironment = (environment) => Layer.mergeAll(RenderContext.layer(make({ environment })), CurrentEnvironment.layer(environment));
50
40
  /**
51
41
  * @since 1.0.0
52
42
  */
53
- export const dom = (window, options) => Layer.provideMerge(Layer.mergeAll(buildWithCurrentEnvironment("dom", options?.skipRenderScheduling), domServices(options)), Layer.mergeAll(Window.layer(window), GlobalThis.layer(window)));
43
+ export const dom = (window, options) => Layer.provideMerge(Layer.mergeAll(buildWithCurrentEnvironment("dom"), domServices(options)), Layer.mergeAll(Window.layer(window), GlobalThis.layer(window)));
54
44
  /**
55
45
  * @since 1.0.0
56
46
  */
@@ -61,74 +51,4 @@ export {
61
51
  * @since 1.0.0
62
52
  */
63
53
  static_ as static };
64
- class RenderQueueImpl {
65
- scope;
66
- options;
67
- skipRenderScheduling;
68
- queue = new Map();
69
- scheduled = false;
70
- run;
71
- constructor(scope, options, skipRenderScheduling = false) {
72
- this.scope = scope;
73
- this.options = options;
74
- this.skipRenderScheduling = skipRenderScheduling;
75
- this.add.bind(this);
76
- this.run = typeof requestAnimationFrame === "undefined" ? this.runIdle : this.runAnimationFrame;
77
- }
78
- add(part, task) {
79
- if (this.skipRenderScheduling)
80
- return Effect.sync(task);
81
- return Effect.suspend(() => {
82
- this.queue.set(part, task);
83
- return Effect.zipRight(Effect.addFinalizer(() => Effect.sync(() => {
84
- const currentTask = this.queue.get(part);
85
- // If the current task is still the same we'll delete it from the queue
86
- if (currentTask === task) {
87
- this.queue.delete(part);
88
- }
89
- })), this.scheduleNextRun);
90
- });
91
- }
92
- scheduleNextRun = Effect.suspend(() => {
93
- if (this.queue.size === 0 || this.scheduled)
94
- return Effect.unit;
95
- this.scheduled = true;
96
- return this.run.pipe(Scope.extend(this.scope), Effect.forkIn(this.scope));
97
- });
98
- runIdle = Effect.suspend(() => {
99
- return Effect.flatMap(Idle.whenIdle(this.options), (deadline) => Effect.suspend(() => {
100
- const iterator = this.queue.entries();
101
- while (Idle.shouldContinue(deadline) && this.runTask(iterator)) {
102
- // Continue
103
- }
104
- // If we have more work to do, schedule another run
105
- if (this.queue.size > 0) {
106
- return this.runIdle;
107
- }
108
- this.scheduled = false;
109
- return Effect.unit;
110
- }));
111
- });
112
- runAnimationFrame = Effect.zipRight(Effect.async((cb) => {
113
- const id = requestAnimationFrame(() => cb(Effect.unit));
114
- return Effect.sync(() => cancelAnimationFrame(id));
115
- }), Effect.sync(() => {
116
- const iterator = this.queue.entries();
117
- while (this.runTask(iterator)) {
118
- // Continue
119
- }
120
- this.scheduled = false;
121
- }));
122
- runTask = (iterator) => {
123
- const result = iterator.next();
124
- if (result.done)
125
- return false;
126
- else {
127
- const [part, task] = result.value;
128
- this.queue.delete(part);
129
- task();
130
- return true;
131
- }
132
- };
133
- }
134
54
  //# sourceMappingURL=RenderContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderContext.js","sourceRoot":"","sources":["../../src/RenderContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderContext.js","sourceRoot":"","sources":["../../src/RenderContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAoB,WAAW,EAAiC,MAAM,wBAAwB,CAAA;AACrG,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAwBvC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAiD,OAAO,CAAC,MAAM,CACvF,+BAA+B,CAChC,CAAA;AASD;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,EACnB,WAAW,EACU;IACrB,OAAO;QACL,WAAW;QACX,WAAW,EAAE,IAAI,OAAO,EAAE;QAC1B,aAAa,EAAE,IAAI,OAAO,EAAE;KAC7B,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAI,WAAyC,EAAE,GAAW;IACtF,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;AACtF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,aAA6C,EAC7C,GAAyB;IAEzB,OAAO,MAAM,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,2BAA2B,GAAG,CAAC,WAAwB,EAAE,EAAE,CAC/D,KAAK,CAAC,QAAQ,CACZ,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,EAC1C,kBAAkB,CAAC,KAAK,CAAC,WAAW,CAAC,CACtC,CAAA;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAGqD,CACnE,MAAM,EACN,OAAO,EACP,EAAE,CACF,KAAK,CAAC,YAAY,CAChB,KAAK,CAAC,QAAQ,CACZ,2BAA2B,CAAC,KAAK,CAAC,EAClC,WAAW,CAAC,OAAO,CAAC,CACrB,EACD,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAC/D,CAAA;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAoD,2BAA2B,CAChG,QAAQ,CACT,CAAA;AAED,MAAM,OAAO,GAAoD,2BAA2B,CAAC,QAAQ,CAAC,CAAA;AAEtG,OAAO;AACL;;GAEG;AACH,OAAO,IAAI,MAAM,EAClB,CAAA"}
@@ -14,10 +14,11 @@ export function DomRenderEvent(rendered) {
14
14
  /**
15
15
  * @since 1.0.0
16
16
  */
17
- export function HtmlRenderEvent(html) {
17
+ export function HtmlRenderEvent(html, done) {
18
18
  return {
19
19
  _tag: "html",
20
20
  html,
21
+ done,
21
22
  valueOf: () => html
22
23
  };
23
24
  }
@@ -27,6 +28,12 @@ export function HtmlRenderEvent(html) {
27
28
  export function isRenderEvent(value) {
28
29
  return isTaggedObject(value) && (value._tag === "html" || value._tag === "dom");
29
30
  }
31
+ /**
32
+ * @since 1.0.0
33
+ */
34
+ export function isHtmlRenderEvent(value) {
35
+ return isTaggedObject(value) && value._tag === "html";
36
+ }
30
37
  function isTaggedObject(value) {
31
38
  return isObject(value) && "_tag" in value;
32
39
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RenderEvent.js","sourceRoot":"","sources":["../../src/RenderEvent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,OAAO;QACL,IAAI,EAAE,KAAK;QACX,QAAQ;QACR,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ;KACxB,CAAA;AACH,CAAC;AAWD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI;QACJ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;KACpB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;AACjF,CAAC;AAED,SAAS,cAAc,CACrB,KAAc;IAEd,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,KAAK,CAAA;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAA;AAC7C,CAAC"}
1
+ {"version":3,"file":"RenderEvent.js","sourceRoot":"","sources":["../../src/RenderEvent.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkBH;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,OAAO;QACL,IAAI,EAAE,KAAK;QACX,QAAQ;QACR,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ;KACxB,CAAA;AACH,CAAC;AAYD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,IAAa;IACzD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,IAAI;QACJ,IAAI;QACJ,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;KACpB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;AACjF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAA;AACvD,CAAC;AAED,SAAS,cAAc,CACrB,KAAc;IAEd,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,KAAK,CAAA;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAA;AAC7C,CAAC"}
@@ -0,0 +1,336 @@
1
+ /**
2
+ * The context in which templates are rendered within
3
+ * @since 1.0.0
4
+ */
5
+ import * as Context from "@typed/context";
6
+ import * as Idle from "@typed/fx/Idle";
7
+ import * as Effect from "effect/Effect";
8
+ import * as FiberRef from "effect/FiberRef";
9
+ import { dual } from "effect/Function";
10
+ import * as Scope from "effect/Scope";
11
+ /**
12
+ * @since 1.0.0
13
+ */
14
+ export const DEFAULT_PRIORITY = 10;
15
+ /**
16
+ * The context in which templates are rendered within
17
+ * @since 1.0.0
18
+ */
19
+ export const RenderQueue = Context.Tagged("@typed/template/RenderQueue");
20
+ /**
21
+ * @since 1.0.0
22
+ */
23
+ export const currentPriority = FiberRef.unsafeMake(DEFAULT_PRIORITY);
24
+ /**
25
+ * @since 1.0.0
26
+ */
27
+ export const unsafeMakeIdleRenderQueue = ({ scope, ...options }) => new IdleImpl(scope, options);
28
+ /**
29
+ * @since 1.0.0
30
+ */
31
+ export const unsafeMakeRafRenderQueue = (scope) => new RafImpl(scope);
32
+ /**
33
+ * @since 1.0.0
34
+ */
35
+ export const unsafeMakeMicrotaskRenderQueue = (scope) => new MicroTaskImpl(scope);
36
+ /**
37
+ * @since 1.0.0
38
+ */
39
+ export const unsafeMakeSyncRenderQueue = () => new SyncImpl();
40
+ /**
41
+ * @since 1.0.0
42
+ */
43
+ export const idle = (options) => RenderQueue.scoped(Effect.scopeWith((scope) => Effect.succeed(unsafeMakeIdleRenderQueue({ scope, ...options }))));
44
+ /**
45
+ * @since 1.0.0
46
+ */
47
+ export const raf = RenderQueue.scoped(Effect.scopeWith((scope) => Effect.succeed(unsafeMakeRafRenderQueue(scope))));
48
+ /**
49
+ * @since 1.0.0
50
+ */
51
+ export const microtask = RenderQueue.scoped(Effect.scopeWith((scope) => Effect.succeed(unsafeMakeMicrotaskRenderQueue(scope))));
52
+ /**
53
+ * @since 1.0.0
54
+ */
55
+ export const sync = RenderQueue.layer(Effect.sync(unsafeMakeSyncRenderQueue));
56
+ const MICRO_TASK_END = DEFAULT_PRIORITY - 1;
57
+ const RAF_END = DEFAULT_PRIORITY + 9;
58
+ const IDLE_START = RAF_END + 1;
59
+ /**
60
+ * @since 1.0.0
61
+ */
62
+ export const mixed = (options) => RenderQueue.scoped(Effect.gen(function* () {
63
+ const scope = yield* Effect.scope;
64
+ const queues = [
65
+ [[-1, -1], new SyncImpl()],
66
+ [[0, MICRO_TASK_END], new MicroTaskImpl(scope)],
67
+ [[DEFAULT_PRIORITY, RAF_END], new RafImpl(scope)],
68
+ [[IDLE_START, Number.MAX_SAFE_INTEGER], new IdleImpl(scope, options)]
69
+ ];
70
+ return new MixedImpl(queues);
71
+ }));
72
+ /**
73
+ * @since 1.0.0
74
+ */
75
+ export const Priority = {
76
+ Sync: -1,
77
+ /**
78
+ * @example
79
+ * RenderPriority.MicroTask(0-9)
80
+ */
81
+ MicroTask: (priority) => Math.min(Math.max(0, priority), MICRO_TASK_END),
82
+ /**
83
+ * @example
84
+ * RenderPriority.Raf(0-9)
85
+ */
86
+ Raf: (priority) => Math.min(Math.max(DEFAULT_PRIORITY, DEFAULT_PRIORITY + priority), RAF_END),
87
+ /**
88
+ * @example
89
+ * RenderPriority.Idle(0-9)
90
+ */
91
+ Idle: (priority) => Math.max(IDLE_START, IDLE_START + priority)
92
+ };
93
+ class PriorityQueue {
94
+ tasks = new Map();
95
+ priority = new Map();
96
+ priorities = new Map();
97
+ add(part, task, priority) {
98
+ this.tasks.set(part, task);
99
+ this.setPriority(part, priority);
100
+ }
101
+ get(part) {
102
+ return this.tasks.get(part);
103
+ }
104
+ delete(part) {
105
+ this.tasks.delete(part);
106
+ const priority = this.priority.get(part);
107
+ if (priority === undefined) {
108
+ return false;
109
+ }
110
+ else {
111
+ this.priorities.get(priority)?.delete(part);
112
+ this.priority.delete(part);
113
+ return true;
114
+ }
115
+ }
116
+ get isEmpty() {
117
+ return this.priorities.size === 0;
118
+ }
119
+ *entries() {
120
+ for (const priority of Array.from(this.priorities.keys()).sort((a, b) => a - b)) {
121
+ const parts = this.priorities.get(priority);
122
+ this.priorities.delete(priority);
123
+ yield this.getTasks(parts);
124
+ }
125
+ }
126
+ getTasks(parts) {
127
+ return Array.from(parts.values()).flatMap((part) => {
128
+ const task = this.tasks.get(part);
129
+ if (task === undefined)
130
+ return [];
131
+ this.tasks.delete(part);
132
+ this.priority.delete(part);
133
+ return [task];
134
+ });
135
+ }
136
+ setPriority(task, priority) {
137
+ const current = this.priority.get(task);
138
+ if (current === undefined) {
139
+ this.priority.set(task, priority);
140
+ this.addTaskToPriority(task, priority);
141
+ return priority;
142
+ }
143
+ else if (priority < current) {
144
+ this.priorities.get(current)?.delete(task);
145
+ this.priority.set(task, priority);
146
+ this.addTaskToPriority(task, priority);
147
+ return priority;
148
+ }
149
+ else {
150
+ return current;
151
+ }
152
+ }
153
+ addTaskToPriority(task, priority) {
154
+ let set = this.priorities.get(priority);
155
+ if (set === undefined) {
156
+ set = new Set();
157
+ this.priorities.set(priority, set);
158
+ }
159
+ set.add(task);
160
+ }
161
+ }
162
+ class BaseImpl {
163
+ scope;
164
+ queue = new PriorityQueue();
165
+ scheduled = false;
166
+ constructor(scope) {
167
+ this.scope = scope;
168
+ this.add.bind(this);
169
+ }
170
+ add(part, task, priority) {
171
+ return Effect.suspend(() => {
172
+ this.queue.add(part, task, priority);
173
+ return Effect.zipRight(Effect.addFinalizer(() => Effect.sync(() => {
174
+ const currentTask = this.queue.get(part);
175
+ // If the current task is still the same we'll delete it from the queue
176
+ if (currentTask === task) {
177
+ this.queue.delete(part);
178
+ }
179
+ })), this.scheduleNextRun);
180
+ });
181
+ }
182
+ scheduleNextRun = Effect.suspend(() => {
183
+ if (this.queue.isEmpty || this.scheduled)
184
+ return Effect.void;
185
+ this.scheduled = true;
186
+ return this.run.pipe(Scope.extend(this.scope), Effect.forkIn(this.scope));
187
+ });
188
+ runTasks = (iterator) => {
189
+ const result = iterator.next();
190
+ if (result.done)
191
+ return false;
192
+ else {
193
+ for (const task of result.value) {
194
+ this.tryRunTask(task);
195
+ }
196
+ return true;
197
+ }
198
+ };
199
+ tryRunTask = (task) => {
200
+ try {
201
+ task();
202
+ }
203
+ catch (error) {
204
+ // TODO: We should probably be able to report this back to a template
205
+ console.error(error);
206
+ }
207
+ };
208
+ }
209
+ class IdleImpl extends BaseImpl {
210
+ options;
211
+ constructor(scope, options) {
212
+ super(scope);
213
+ this.options = options;
214
+ }
215
+ run = Effect.suspend(() => {
216
+ return Effect.flatMap(Idle.whenIdle(this.options), (deadline) => Effect.suspend(() => {
217
+ const iterator = this.queue.entries();
218
+ while (Idle.shouldContinue(deadline) && this.runTasks(iterator)) {
219
+ // Continue
220
+ }
221
+ // If we have more work to do, schedule another run
222
+ if (!this.queue.isEmpty) {
223
+ return this.run;
224
+ }
225
+ this.scheduled = false;
226
+ return Effect.void;
227
+ }));
228
+ });
229
+ }
230
+ class RafImpl extends BaseImpl {
231
+ scope;
232
+ _set;
233
+ _clear;
234
+ constructor(scope) {
235
+ super(scope);
236
+ this.scope = scope;
237
+ const [set, clear] = typeof globalThis.requestAnimationFrame === "function"
238
+ ? [requestAnimationFrame.bind(globalThis), cancelAnimationFrame.bind(globalThis)]
239
+ : [setTimeout, clearTimeout];
240
+ this._set = set;
241
+ this._clear = clear;
242
+ }
243
+ run = Effect.async((cb) => {
244
+ const id = this._set(() => {
245
+ this.runAllTasks();
246
+ return cb(Effect.void);
247
+ });
248
+ return Effect.sync(() => {
249
+ this.scheduled = false;
250
+ this._clear(id);
251
+ });
252
+ });
253
+ runAllTasks = () => {
254
+ const iterator = this.queue.entries();
255
+ while (this.runTasks(iterator)) {
256
+ // Continue
257
+ }
258
+ this.scheduled = false;
259
+ };
260
+ }
261
+ const noOp = () => void 0;
262
+ class MicroTaskImpl extends BaseImpl {
263
+ scope;
264
+ _set;
265
+ _clear;
266
+ constructor(scope) {
267
+ super(scope);
268
+ this.scope = scope;
269
+ const [set, clear] = typeof globalThis.queueMicrotask === "function"
270
+ ? [globalThis.queueMicrotask.bind(globalThis), noOp]
271
+ : [setTimeout, clearTimeout];
272
+ this._set = set;
273
+ this._clear = clear;
274
+ }
275
+ run = Effect.async((cb) => {
276
+ const id = this._set(() => {
277
+ this.runAllTasks();
278
+ return cb(Effect.void);
279
+ });
280
+ return Effect.sync(() => {
281
+ this.scheduled = false;
282
+ id && this._clear(id);
283
+ });
284
+ });
285
+ runAllTasks = () => {
286
+ const iterator = this.queue.entries();
287
+ while (this.runTasks(iterator)) {
288
+ // Continue
289
+ }
290
+ this.scheduled = false;
291
+ };
292
+ }
293
+ class SyncImpl {
294
+ constructor() {
295
+ this.add.bind(this);
296
+ }
297
+ add(_, task) {
298
+ return Effect.sync(task);
299
+ }
300
+ }
301
+ class MixedImpl {
302
+ queues;
303
+ _priorityCache = new Map();
304
+ constructor(queues) {
305
+ this.queues = queues;
306
+ this.queues.sort(([a], [b]) => a[0] - b[0]);
307
+ this.add.bind(this);
308
+ }
309
+ add(part, task, priority) {
310
+ let queue = this.getQueueForPriority(priority);
311
+ if (queue === undefined) {
312
+ queue = this.queues[this.queues.length - 1][1];
313
+ }
314
+ return queue.add(part, task, priority);
315
+ }
316
+ getQueueForPriority(priority) {
317
+ if (this._priorityCache.has(priority)) {
318
+ return this._priorityCache.get(priority);
319
+ }
320
+ const q = this.queues.find(([range]) => priority >= range[0] && priority <= range[1]);
321
+ if (q) {
322
+ this._priorityCache.set(priority, q[1]);
323
+ return q[1];
324
+ }
325
+ return q;
326
+ }
327
+ }
328
+ /**
329
+ * @since 1.0.0
330
+ */
331
+ export const withCurrentPriority = (f) => Effect.flatMap(FiberRef.get(currentPriority), f);
332
+ /**
333
+ * @since 1.0.0
334
+ */
335
+ export const usingCurrentPriority = dual(2, (effect, priority) => Effect.locally(effect, currentPriority, priority));
336
+ //# sourceMappingURL=RenderQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RenderQueue.js","sourceRoot":"","sources":["../../src/RenderQueue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RenderTemplate.js","sourceRoot":"","sources":["../../src/RenderTemplate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,cAAc,CAAA;AAgBlC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAmD,OAAO,CAAC,MAAM,CAI1F,gCAAgC,CACjC,CAAA;AACD;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,QAA8B,EAC9B,GAAG,MAAc;IAEjB,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AACnF,CAAC"}
1
+ {"version":3,"file":"RenderTemplate.js","sourceRoot":"","sources":["../../src/RenderTemplate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,cAAc,CAAA;AAiBlC;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAmD,OAAO,CAAC,MAAM,CAI1F,gCAAgC,CACjC,CAAA;AACD;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,QAA8B,EAC9B,GAAG,MAAc;IAMjB,OAAO,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AACnF,CAAC"}