@typed/template 0.14.0 → 1.0.0-beta.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 (453) hide show
  1. package/README.md +108 -2
  2. package/dist/EventHandler.d.ts +273 -0
  3. package/dist/EventHandler.d.ts.map +1 -0
  4. package/dist/EventHandler.js +261 -0
  5. package/dist/EventSource.d.ts +82 -0
  6. package/dist/EventSource.d.ts.map +1 -0
  7. package/dist/EventSource.js +127 -0
  8. package/dist/Html.d.ts +122 -0
  9. package/dist/Html.d.ts.map +1 -0
  10. package/dist/Html.js +250 -0
  11. package/dist/HtmlChunk.d.ts +118 -0
  12. package/dist/HtmlChunk.d.ts.map +1 -0
  13. package/dist/HtmlChunk.js +211 -0
  14. package/dist/HydrateContext.d.ts +28 -0
  15. package/dist/HydrateContext.d.ts.map +1 -0
  16. package/dist/HydrateContext.js +25 -0
  17. package/dist/Parser.d.ts +35 -0
  18. package/dist/Parser.d.ts.map +1 -0
  19. package/dist/Parser.js +437 -0
  20. package/dist/Render.d.ts +195 -0
  21. package/dist/Render.d.ts.map +1 -0
  22. package/dist/Render.js +609 -0
  23. package/dist/RenderEvent.d.ts +179 -0
  24. package/dist/RenderEvent.d.ts.map +1 -0
  25. package/dist/RenderEvent.js +102 -0
  26. package/dist/RenderQueue.d.ts +167 -0
  27. package/dist/RenderQueue.d.ts.map +1 -0
  28. package/dist/RenderQueue.js +297 -0
  29. package/dist/RenderTemplate.d.ts +90 -0
  30. package/dist/RenderTemplate.d.ts.map +1 -0
  31. package/dist/RenderTemplate.js +87 -0
  32. package/dist/Renderable.d.ts +88 -0
  33. package/dist/Renderable.d.ts.map +1 -0
  34. package/dist/Renderable.js +3 -0
  35. package/dist/{dts/Template.d.ts → Template.d.ts} +109 -74
  36. package/dist/Template.d.ts.map +1 -0
  37. package/dist/{esm/Template.js → Template.js} +96 -56
  38. package/dist/Wire.d.ts +169 -0
  39. package/dist/Wire.d.ts.map +1 -0
  40. package/dist/Wire.js +217 -0
  41. package/dist/errors.d.ts +145 -0
  42. package/dist/errors.d.ts.map +1 -0
  43. package/dist/errors.js +159 -0
  44. package/dist/index.d.ts +15 -0
  45. package/dist/index.d.ts.map +1 -0
  46. package/dist/index.js +14 -0
  47. package/dist/internal/IndexRefCounter.d.ts +11 -0
  48. package/dist/internal/IndexRefCounter.d.ts.map +1 -0
  49. package/dist/internal/IndexRefCounter.js +42 -0
  50. package/dist/internal/ParentChildNodes.d.ts +6 -0
  51. package/dist/internal/ParentChildNodes.d.ts.map +1 -0
  52. package/dist/internal/ParentChildNodes.js +1 -0
  53. package/dist/internal/PathStack.d.ts +9 -0
  54. package/dist/internal/PathStack.d.ts.map +1 -0
  55. package/dist/internal/PathStack.js +18 -0
  56. package/dist/internal/buildTemplateFragement.d.ts +3 -0
  57. package/dist/internal/buildTemplateFragement.d.ts.map +1 -0
  58. package/dist/internal/buildTemplateFragement.js +61 -0
  59. package/dist/internal/diff.d.ts +2 -0
  60. package/dist/internal/diff.d.ts.map +1 -0
  61. package/dist/internal/diff.js +119 -0
  62. package/dist/internal/dom.d.ts +45 -0
  63. package/dist/internal/dom.d.ts.map +1 -0
  64. package/dist/internal/dom.js +304 -0
  65. package/dist/internal/encoding.d.ts +7 -0
  66. package/dist/internal/encoding.d.ts.map +1 -0
  67. package/dist/internal/encoding.js +134 -0
  68. package/dist/{dts/internal/v2/hydration-template.d.ts → internal/hydration.d.ts} +10 -7
  69. package/dist/internal/hydration.d.ts.map +1 -0
  70. package/dist/{esm/internal/v2/hydration-template.js → internal/hydration.js} +80 -26
  71. package/dist/internal/keyToPartType.d.ts +2 -0
  72. package/dist/internal/keyToPartType.d.ts.map +1 -0
  73. package/dist/internal/keyToPartType.js +110 -0
  74. package/dist/internal/meta.d.ts +17 -0
  75. package/dist/internal/meta.d.ts.map +1 -0
  76. package/dist/internal/meta.js +14 -0
  77. package/dist/internal/takeOneIfNotRenderEvent.d.ts +4 -0
  78. package/dist/internal/takeOneIfNotRenderEvent.d.ts.map +1 -0
  79. package/dist/internal/takeOneIfNotRenderEvent.js +10 -0
  80. package/dist/internal/templateHash.d.ts +2 -0
  81. package/dist/internal/templateHash.d.ts.map +1 -0
  82. package/dist/internal/templateHash.js +14 -0
  83. package/dist/many.d.ts +68 -0
  84. package/dist/many.d.ts.map +1 -0
  85. package/dist/many.js +107 -0
  86. package/package.json +22 -224
  87. package/src/EventHandler.ts +318 -86
  88. package/src/EventSource.ts +202 -0
  89. package/src/Html.test.ts +490 -0
  90. package/src/Html.ts +292 -333
  91. package/src/HtmlChunk.ts +290 -332
  92. package/src/HydrateContext.ts +40 -0
  93. package/src/Hydration.test.ts +409 -0
  94. package/src/Parser.test.ts +924 -0
  95. package/src/Parser.ts +598 -10
  96. package/src/Render.test.ts +338 -0
  97. package/src/Render.ts +878 -63
  98. package/src/RenderEvent.ts +169 -40
  99. package/src/RenderQueue.ts +290 -385
  100. package/src/RenderTemplate.ts +98 -31
  101. package/src/Renderable.ts +122 -24
  102. package/src/Template.ts +246 -145
  103. package/src/Wire.ts +309 -0
  104. package/src/errors.ts +173 -0
  105. package/src/index.ts +14 -66
  106. package/src/internal/IndexRefCounter.ts +53 -0
  107. package/src/internal/ParentChildNodes.ts +7 -0
  108. package/src/internal/PathStack.ts +23 -0
  109. package/src/internal/buildTemplateFragement.ts +82 -0
  110. package/src/internal/diff.ts +127 -0
  111. package/src/internal/dom.ts +357 -0
  112. package/src/internal/encoding.ts +147 -0
  113. package/src/internal/hydration.ts +406 -0
  114. package/src/internal/keyToPartType.ts +113 -0
  115. package/src/internal/meta.ts +25 -0
  116. package/src/internal/takeOneIfNotRenderEvent.ts +19 -0
  117. package/src/internal/templateHash.ts +18 -0
  118. package/src/many.ts +148 -0
  119. package/tsconfig.json +6 -0
  120. package/Directive/package.json +0 -6
  121. package/ElementRef/package.json +0 -6
  122. package/ElementSource/package.json +0 -6
  123. package/Entry/package.json +0 -6
  124. package/EventHandler/package.json +0 -6
  125. package/Html/package.json +0 -6
  126. package/HtmlChunk/package.json +0 -6
  127. package/Hydrate/package.json +0 -6
  128. package/LICENSE +0 -21
  129. package/Many/package.json +0 -6
  130. package/Meta/package.json +0 -6
  131. package/Parser/package.json +0 -6
  132. package/Part/package.json +0 -6
  133. package/Placeholder/package.json +0 -6
  134. package/Platform/package.json +0 -6
  135. package/Render/package.json +0 -6
  136. package/RenderContext/package.json +0 -6
  137. package/RenderEvent/package.json +0 -6
  138. package/RenderQueue/package.json +0 -6
  139. package/RenderTemplate/package.json +0 -6
  140. package/Renderable/package.json +0 -6
  141. package/Template/package.json +0 -6
  142. package/Test/package.json +0 -6
  143. package/Vitest/package.json +0 -6
  144. package/compiler-tools/package.json +0 -6
  145. package/dist/cjs/Directive.js +0 -76
  146. package/dist/cjs/Directive.js.map +0 -1
  147. package/dist/cjs/ElementRef.js +0 -92
  148. package/dist/cjs/ElementRef.js.map +0 -1
  149. package/dist/cjs/ElementSource.js +0 -246
  150. package/dist/cjs/ElementSource.js.map +0 -1
  151. package/dist/cjs/Entry.js +0 -6
  152. package/dist/cjs/Entry.js.map +0 -1
  153. package/dist/cjs/EventHandler.js +0 -76
  154. package/dist/cjs/EventHandler.js.map +0 -1
  155. package/dist/cjs/Html.js +0 -224
  156. package/dist/cjs/Html.js.map +0 -1
  157. package/dist/cjs/HtmlChunk.js +0 -306
  158. package/dist/cjs/HtmlChunk.js.map +0 -1
  159. package/dist/cjs/Hydrate.js +0 -43
  160. package/dist/cjs/Hydrate.js.map +0 -1
  161. package/dist/cjs/Many.js +0 -66
  162. package/dist/cjs/Many.js.map +0 -1
  163. package/dist/cjs/Meta.js +0 -50
  164. package/dist/cjs/Meta.js.map +0 -1
  165. package/dist/cjs/Parser.js +0 -19
  166. package/dist/cjs/Parser.js.map +0 -1
  167. package/dist/cjs/Part.js +0 -6
  168. package/dist/cjs/Part.js.map +0 -1
  169. package/dist/cjs/Placeholder.js +0 -34
  170. package/dist/cjs/Placeholder.js.map +0 -1
  171. package/dist/cjs/Platform.js +0 -65
  172. package/dist/cjs/Platform.js.map +0 -1
  173. package/dist/cjs/Render.js +0 -50
  174. package/dist/cjs/Render.js.map +0 -1
  175. package/dist/cjs/RenderContext.js +0 -67
  176. package/dist/cjs/RenderContext.js.map +0 -1
  177. package/dist/cjs/RenderEvent.js +0 -52
  178. package/dist/cjs/RenderEvent.js.map +0 -1
  179. package/dist/cjs/RenderQueue.js +0 -343
  180. package/dist/cjs/RenderQueue.js.map +0 -1
  181. package/dist/cjs/RenderTemplate.js +0 -26
  182. package/dist/cjs/RenderTemplate.js.map +0 -1
  183. package/dist/cjs/Renderable.js +0 -6
  184. package/dist/cjs/Renderable.js.map +0 -1
  185. package/dist/cjs/Template.js +0 -305
  186. package/dist/cjs/Template.js.map +0 -1
  187. package/dist/cjs/Test.js +0 -184
  188. package/dist/cjs/Test.js.map +0 -1
  189. package/dist/cjs/Vitest.js +0 -52
  190. package/dist/cjs/Vitest.js.map +0 -1
  191. package/dist/cjs/compiler-tools.js +0 -100
  192. package/dist/cjs/compiler-tools.js.map +0 -1
  193. package/dist/cjs/index.js +0 -138
  194. package/dist/cjs/index.js.map +0 -1
  195. package/dist/cjs/internal/EventSource.js +0 -129
  196. package/dist/cjs/internal/EventSource.js.map +0 -1
  197. package/dist/cjs/internal/HydrateContext.js +0 -13
  198. package/dist/cjs/internal/HydrateContext.js.map +0 -1
  199. package/dist/cjs/internal/browser.js +0 -110
  200. package/dist/cjs/internal/browser.js.map +0 -1
  201. package/dist/cjs/internal/character-entities.js +0 -2141
  202. package/dist/cjs/internal/character-entities.js.map +0 -1
  203. package/dist/cjs/internal/chunks.js +0 -68
  204. package/dist/cjs/internal/chunks.js.map +0 -1
  205. package/dist/cjs/internal/errors.js +0 -52
  206. package/dist/cjs/internal/errors.js.map +0 -1
  207. package/dist/cjs/internal/indexRefCounter.js +0 -52
  208. package/dist/cjs/internal/indexRefCounter.js.map +0 -1
  209. package/dist/cjs/internal/module-augmentation.js +0 -6
  210. package/dist/cjs/internal/module-augmentation.js.map +0 -1
  211. package/dist/cjs/internal/parser.js +0 -568
  212. package/dist/cjs/internal/parser.js.map +0 -1
  213. package/dist/cjs/internal/parser2.js +0 -382
  214. package/dist/cjs/internal/parser2.js.map +0 -1
  215. package/dist/cjs/internal/server-parts.js +0 -124
  216. package/dist/cjs/internal/server-parts.js.map +0 -1
  217. package/dist/cjs/internal/server.js +0 -48
  218. package/dist/cjs/internal/server.js.map +0 -1
  219. package/dist/cjs/internal/utils.js +0 -136
  220. package/dist/cjs/internal/utils.js.map +0 -1
  221. package/dist/cjs/internal/v2/SyncPart.js +0 -6
  222. package/dist/cjs/internal/v2/SyncPart.js.map +0 -1
  223. package/dist/cjs/internal/v2/helpers.js +0 -15
  224. package/dist/cjs/internal/v2/helpers.js.map +0 -1
  225. package/dist/cjs/internal/v2/hydration-template.js +0 -269
  226. package/dist/cjs/internal/v2/hydration-template.js.map +0 -1
  227. package/dist/cjs/internal/v2/parts.js +0 -169
  228. package/dist/cjs/internal/v2/parts.js.map +0 -1
  229. package/dist/cjs/internal/v2/render-entry.js +0 -110
  230. package/dist/cjs/internal/v2/render-entry.js.map +0 -1
  231. package/dist/cjs/internal/v2/render-sync-parts.js +0 -318
  232. package/dist/cjs/internal/v2/render-sync-parts.js.map +0 -1
  233. package/dist/cjs/internal/v2/render.js +0 -592
  234. package/dist/cjs/internal/v2/render.js.map +0 -1
  235. package/dist/cjs/internal/v2/sync-parts.js +0 -115
  236. package/dist/cjs/internal/v2/sync-parts.js.map +0 -1
  237. package/dist/dts/Directive.d.ts +0 -70
  238. package/dist/dts/Directive.d.ts.map +0 -1
  239. package/dist/dts/ElementRef.d.ts +0 -42
  240. package/dist/dts/ElementRef.d.ts.map +0 -1
  241. package/dist/dts/ElementSource.d.ts +0 -79
  242. package/dist/dts/ElementSource.d.ts.map +0 -1
  243. package/dist/dts/Entry.d.ts +0 -26
  244. package/dist/dts/Entry.d.ts.map +0 -1
  245. package/dist/dts/EventHandler.d.ts +0 -73
  246. package/dist/dts/EventHandler.d.ts.map +0 -1
  247. package/dist/dts/Html.d.ts +0 -35
  248. package/dist/dts/Html.d.ts.map +0 -1
  249. package/dist/dts/HtmlChunk.d.ts +0 -56
  250. package/dist/dts/HtmlChunk.d.ts.map +0 -1
  251. package/dist/dts/Hydrate.d.ts +0 -19
  252. package/dist/dts/Hydrate.d.ts.map +0 -1
  253. package/dist/dts/Many.d.ts +0 -32
  254. package/dist/dts/Many.d.ts.map +0 -1
  255. package/dist/dts/Meta.d.ts +0 -33
  256. package/dist/dts/Meta.d.ts.map +0 -1
  257. package/dist/dts/Parser.d.ts +0 -13
  258. package/dist/dts/Parser.d.ts.map +0 -1
  259. package/dist/dts/Part.d.ts +0 -121
  260. package/dist/dts/Part.d.ts.map +0 -1
  261. package/dist/dts/Placeholder.d.ts +0 -48
  262. package/dist/dts/Placeholder.d.ts.map +0 -1
  263. package/dist/dts/Platform.d.ts +0 -21
  264. package/dist/dts/Platform.d.ts.map +0 -1
  265. package/dist/dts/Render.d.ts +0 -31
  266. package/dist/dts/Render.d.ts.map +0 -1
  267. package/dist/dts/RenderContext.d.ts +0 -70
  268. package/dist/dts/RenderContext.d.ts.map +0 -1
  269. package/dist/dts/RenderEvent.d.ts +0 -42
  270. package/dist/dts/RenderEvent.d.ts.map +0 -1
  271. package/dist/dts/RenderQueue.d.ts +0 -103
  272. package/dist/dts/RenderQueue.d.ts.map +0 -1
  273. package/dist/dts/RenderTemplate.d.ts +0 -25
  274. package/dist/dts/RenderTemplate.d.ts.map +0 -1
  275. package/dist/dts/Renderable.d.ts +0 -28
  276. package/dist/dts/Renderable.d.ts.map +0 -1
  277. package/dist/dts/Template.d.ts.map +0 -1
  278. package/dist/dts/Test.d.ts +0 -85
  279. package/dist/dts/Test.d.ts.map +0 -1
  280. package/dist/dts/Vitest.d.ts +0 -43
  281. package/dist/dts/Vitest.d.ts.map +0 -1
  282. package/dist/dts/compiler-tools.d.ts +0 -143
  283. package/dist/dts/compiler-tools.d.ts.map +0 -1
  284. package/dist/dts/index.d.ts +0 -65
  285. package/dist/dts/index.d.ts.map +0 -1
  286. package/dist/dts/internal/EventSource.d.ts +0 -13
  287. package/dist/dts/internal/EventSource.d.ts.map +0 -1
  288. package/dist/dts/internal/HydrateContext.d.ts +0 -2
  289. package/dist/dts/internal/HydrateContext.d.ts.map +0 -1
  290. package/dist/dts/internal/browser.d.ts +0 -8
  291. package/dist/dts/internal/browser.d.ts.map +0 -1
  292. package/dist/dts/internal/character-entities.d.ts +0 -2133
  293. package/dist/dts/internal/character-entities.d.ts.map +0 -1
  294. package/dist/dts/internal/chunks.d.ts +0 -23
  295. package/dist/dts/internal/chunks.d.ts.map +0 -1
  296. package/dist/dts/internal/errors.d.ts +0 -22
  297. package/dist/dts/internal/errors.d.ts.map +0 -1
  298. package/dist/dts/internal/indexRefCounter.d.ts +0 -7
  299. package/dist/dts/internal/indexRefCounter.d.ts.map +0 -1
  300. package/dist/dts/internal/module-augmentation.d.ts +0 -32
  301. package/dist/dts/internal/module-augmentation.d.ts.map +0 -1
  302. package/dist/dts/internal/parser.d.ts +0 -33
  303. package/dist/dts/internal/parser.d.ts.map +0 -1
  304. package/dist/dts/internal/parser2.d.ts +0 -12
  305. package/dist/dts/internal/parser2.d.ts.map +0 -1
  306. package/dist/dts/internal/server-parts.d.ts +0 -223
  307. package/dist/dts/internal/server-parts.d.ts.map +0 -1
  308. package/dist/dts/internal/server.d.ts +0 -5
  309. package/dist/dts/internal/server.d.ts.map +0 -1
  310. package/dist/dts/internal/utils.d.ts +0 -19
  311. package/dist/dts/internal/utils.d.ts.map +0 -1
  312. package/dist/dts/internal/v2/SyncPart.d.ts +0 -87
  313. package/dist/dts/internal/v2/SyncPart.d.ts.map +0 -1
  314. package/dist/dts/internal/v2/helpers.d.ts +0 -3
  315. package/dist/dts/internal/v2/helpers.d.ts.map +0 -1
  316. package/dist/dts/internal/v2/hydration-template.d.ts.map +0 -1
  317. package/dist/dts/internal/v2/parts.d.ts +0 -245
  318. package/dist/dts/internal/v2/parts.d.ts.map +0 -1
  319. package/dist/dts/internal/v2/render-entry.d.ts +0 -6
  320. package/dist/dts/internal/v2/render-entry.d.ts.map +0 -1
  321. package/dist/dts/internal/v2/render-sync-parts.d.ts +0 -22
  322. package/dist/dts/internal/v2/render-sync-parts.d.ts.map +0 -1
  323. package/dist/dts/internal/v2/render.d.ts +0 -83
  324. package/dist/dts/internal/v2/render.d.ts.map +0 -1
  325. package/dist/dts/internal/v2/sync-parts.d.ts +0 -129
  326. package/dist/dts/internal/v2/sync-parts.d.ts.map +0 -1
  327. package/dist/esm/Directive.js +0 -64
  328. package/dist/esm/Directive.js.map +0 -1
  329. package/dist/esm/ElementRef.js +0 -76
  330. package/dist/esm/ElementRef.js.map +0 -1
  331. package/dist/esm/ElementSource.js +0 -246
  332. package/dist/esm/ElementSource.js.map +0 -1
  333. package/dist/esm/Entry.js +0 -2
  334. package/dist/esm/Entry.js.map +0 -1
  335. package/dist/esm/EventHandler.js +0 -68
  336. package/dist/esm/EventHandler.js.map +0 -1
  337. package/dist/esm/Html.js +0 -230
  338. package/dist/esm/Html.js.map +0 -1
  339. package/dist/esm/HtmlChunk.js +0 -330
  340. package/dist/esm/HtmlChunk.js.map +0 -1
  341. package/dist/esm/Hydrate.js +0 -31
  342. package/dist/esm/Hydrate.js.map +0 -1
  343. package/dist/esm/Many.js +0 -54
  344. package/dist/esm/Many.js.map +0 -1
  345. package/dist/esm/Meta.js +0 -40
  346. package/dist/esm/Meta.js.map +0 -1
  347. package/dist/esm/Parser.js +0 -13
  348. package/dist/esm/Parser.js.map +0 -1
  349. package/dist/esm/Part.js +0 -5
  350. package/dist/esm/Part.js.map +0 -1
  351. package/dist/esm/Placeholder.js +0 -26
  352. package/dist/esm/Placeholder.js.map +0 -1
  353. package/dist/esm/Platform.js +0 -42
  354. package/dist/esm/Platform.js.map +0 -1
  355. package/dist/esm/Render.js +0 -36
  356. package/dist/esm/Render.js.map +0 -1
  357. package/dist/esm/RenderContext.js +0 -54
  358. package/dist/esm/RenderContext.js.map +0 -1
  359. package/dist/esm/RenderEvent.js +0 -43
  360. package/dist/esm/RenderEvent.js.map +0 -1
  361. package/dist/esm/RenderQueue.js +0 -338
  362. package/dist/esm/RenderQueue.js.map +0 -1
  363. package/dist/esm/RenderTemplate.js +0 -16
  364. package/dist/esm/RenderTemplate.js.map +0 -1
  365. package/dist/esm/Renderable.js +0 -2
  366. package/dist/esm/Renderable.js.map +0 -1
  367. package/dist/esm/Template.js.map +0 -1
  368. package/dist/esm/Test.js +0 -167
  369. package/dist/esm/Test.js.map +0 -1
  370. package/dist/esm/Vitest.js +0 -44
  371. package/dist/esm/Vitest.js.map +0 -1
  372. package/dist/esm/compiler-tools.js +0 -91
  373. package/dist/esm/compiler-tools.js.map +0 -1
  374. package/dist/esm/index.js +0 -65
  375. package/dist/esm/index.js.map +0 -1
  376. package/dist/esm/internal/EventSource.js +0 -126
  377. package/dist/esm/internal/EventSource.js.map +0 -1
  378. package/dist/esm/internal/HydrateContext.js +0 -7
  379. package/dist/esm/internal/HydrateContext.js.map +0 -1
  380. package/dist/esm/internal/browser.js +0 -103
  381. package/dist/esm/internal/browser.js.map +0 -1
  382. package/dist/esm/internal/character-entities.js +0 -2134
  383. package/dist/esm/internal/character-entities.js.map +0 -1
  384. package/dist/esm/internal/chunks.js +0 -60
  385. package/dist/esm/internal/chunks.js.map +0 -1
  386. package/dist/esm/internal/errors.js +0 -46
  387. package/dist/esm/internal/errors.js.map +0 -1
  388. package/dist/esm/internal/indexRefCounter.js +0 -47
  389. package/dist/esm/internal/indexRefCounter.js.map +0 -1
  390. package/dist/esm/internal/module-augmentation.js +0 -2
  391. package/dist/esm/internal/module-augmentation.js.map +0 -1
  392. package/dist/esm/internal/parser.js +0 -596
  393. package/dist/esm/internal/parser.js.map +0 -1
  394. package/dist/esm/internal/parser2.js +0 -393
  395. package/dist/esm/internal/parser2.js.map +0 -1
  396. package/dist/esm/internal/server-parts.js +0 -109
  397. package/dist/esm/internal/server-parts.js.map +0 -1
  398. package/dist/esm/internal/server.js +0 -22
  399. package/dist/esm/internal/server.js.map +0 -1
  400. package/dist/esm/internal/utils.js +0 -119
  401. package/dist/esm/internal/utils.js.map +0 -1
  402. package/dist/esm/internal/v2/SyncPart.js +0 -5
  403. package/dist/esm/internal/v2/SyncPart.js.map +0 -1
  404. package/dist/esm/internal/v2/helpers.js +0 -12
  405. package/dist/esm/internal/v2/helpers.js.map +0 -1
  406. package/dist/esm/internal/v2/hydration-template.js.map +0 -1
  407. package/dist/esm/internal/v2/parts.js +0 -150
  408. package/dist/esm/internal/v2/parts.js.map +0 -1
  409. package/dist/esm/internal/v2/render-entry.js +0 -102
  410. package/dist/esm/internal/v2/render-entry.js.map +0 -1
  411. package/dist/esm/internal/v2/render-sync-parts.js +0 -265
  412. package/dist/esm/internal/v2/render-sync-parts.js.map +0 -1
  413. package/dist/esm/internal/v2/render.js +0 -521
  414. package/dist/esm/internal/v2/render.js.map +0 -1
  415. package/dist/esm/internal/v2/sync-parts.js +0 -102
  416. package/dist/esm/internal/v2/sync-parts.js.map +0 -1
  417. package/dist/esm/package.json +0 -4
  418. package/src/Directive.ts +0 -114
  419. package/src/ElementRef.ts +0 -148
  420. package/src/ElementSource.ts +0 -510
  421. package/src/Entry.ts +0 -28
  422. package/src/Hydrate.ts +0 -51
  423. package/src/Many.ts +0 -161
  424. package/src/Meta.ts +0 -45
  425. package/src/Part.ts +0 -154
  426. package/src/Placeholder.ts +0 -78
  427. package/src/Platform.ts +0 -70
  428. package/src/RenderContext.ts +0 -121
  429. package/src/Test.ts +0 -354
  430. package/src/Vitest.ts +0 -141
  431. package/src/compiler-tools.ts +0 -250
  432. package/src/internal/EventSource.ts +0 -188
  433. package/src/internal/HydrateContext.ts +0 -22
  434. package/src/internal/browser.ts +0 -138
  435. package/src/internal/character-entities.ts +0 -2136
  436. package/src/internal/chunks.ts +0 -89
  437. package/src/internal/errors.ts +0 -49
  438. package/src/internal/external.d.ts +0 -11
  439. package/src/internal/indexRefCounter.ts +0 -54
  440. package/src/internal/module-augmentation.ts +0 -44
  441. package/src/internal/parser.ts +0 -757
  442. package/src/internal/parser2.ts +0 -468
  443. package/src/internal/server-parts.ts +0 -161
  444. package/src/internal/server.ts +0 -37
  445. package/src/internal/utils.ts +0 -153
  446. package/src/internal/v2/SyncPart.ts +0 -112
  447. package/src/internal/v2/helpers.ts +0 -13
  448. package/src/internal/v2/hydration-template.ts +0 -308
  449. package/src/internal/v2/parts.ts +0 -254
  450. package/src/internal/v2/render-entry.ts +0 -131
  451. package/src/internal/v2/render-sync-parts.ts +0 -440
  452. package/src/internal/v2/render.ts +0 -813
  453. package/src/internal/v2/sync-parts.ts +0 -133
package/src/Test.ts DELETED
@@ -1,354 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type { Document } from "@typed/dom/Document"
5
- import { type DomServices, domServices, type DomServicesElementParams } from "@typed/dom/DomServices"
6
- import { GlobalThis } from "@typed/dom/GlobalThis"
7
- import { Window } from "@typed/dom/Window"
8
- import type { CurrentEnvironment } from "@typed/environment"
9
- import * as Fx from "@typed/fx/Fx"
10
- import * as RefArray from "@typed/fx/RefArray"
11
- import * as RefSubject from "@typed/fx/RefSubject"
12
- import * as Sink from "@typed/fx/Sink"
13
- import { isComment, type Rendered } from "@typed/wire"
14
- import * as Cause from "effect/Cause"
15
- import type { DurationInput } from "effect/Duration"
16
- import * as Effect from "effect/Effect"
17
- import * as Either from "effect/Either"
18
- import * as Fiber from "effect/Fiber"
19
- import * as Layer from "effect/Layer"
20
- import type * as Scope from "effect/Scope"
21
- import * as ElementRef from "./ElementRef.js"
22
- import { ROOT_CSS_SELECTOR } from "./ElementSource.js"
23
- import { renderToHtml, renderToHtmlString, serverLayer, staticLayer } from "./Html.js"
24
- import { hydrate } from "./Hydrate.js"
25
- import { adjustTime } from "./internal/utils.js"
26
- import { render, renderLayer } from "./Render.js"
27
- import type * as RenderContext from "./RenderContext.js"
28
- import type { RenderEvent } from "./RenderEvent.js"
29
- import * as RenderQueue from "./RenderQueue.js"
30
- import type { RenderTemplate } from "./RenderTemplate.js"
31
-
32
- // TODO: Instrument RenderTemplate to log info about when specific values are hanging for too long
33
- // TODO: Input events
34
- // TODO: Form events
35
- // TODO: keyboard events
36
- // TODO: drag and drop events
37
-
38
- // eslint-disable-next-line @typescript-eslint/consistent-type-imports
39
- export type HappyDOMOptions = ConstructorParameters<typeof import("happy-dom").Window>[0]
40
-
41
- /**
42
- * @since 1.0.0
43
- */
44
- export interface TestRender<E> {
45
- readonly window: Window & GlobalThis
46
- readonly document: Document
47
- readonly elementRef: ElementRef.ElementRef
48
- readonly errors: RefSubject.Computed<ReadonlyArray<E>>
49
- readonly lastError: RefSubject.Filtered<E>
50
- readonly interrupt: Effect.Effect<void>
51
- readonly makeEvent: (type: string, eventInitDict?: EventInit) => Event
52
- readonly makeCustomEvent: <A>(type: string, eventInitDict?: CustomEventInit<A>) => CustomEvent<A>
53
- readonly dispatchEvent: (options: EventOptions) => Effect.Effect<void, Cause.NoSuchElementException>
54
- readonly click: (options?: Omit<EventOptions, "event">) => Effect.Effect<void, Cause.NoSuchElementException>
55
- }
56
-
57
- /**
58
- * @since 1.0.0
59
- */
60
- export function testRender<E, R>(
61
- fx: Fx.Fx<RenderEvent, E, R>,
62
- options?:
63
- & HappyDOMOptions
64
- & { readonly [K in keyof DomServicesElementParams]?: (document: Document) => DomServicesElementParams[K] }
65
- & { renderTimeout?: DurationInput }
66
- ): Effect.Effect<
67
- TestRender<E>,
68
- never,
69
- | Scope.Scope
70
- | Exclude<
71
- R,
72
- RenderTemplate | RenderContext.RenderContext | CurrentEnvironment | DomServices
73
- >
74
- > {
75
- return Effect.gen(function*() {
76
- const window = yield* getOrMakeWindow(options)
77
- const elementRef = yield* ElementRef.make()
78
- const errors = yield* RefSubject.make<ReadonlyArray<E>>(Effect.succeed([]))
79
- const fiber = yield* fx.pipe(
80
- render,
81
- (x) =>
82
- x.run(Sink.make(
83
- (cause) =>
84
- Cause.failureOrCause(cause).pipe(
85
- Either.match({
86
- onLeft: (error) => RefArray.append(errors, error),
87
- onRight: (cause) => errors.onFailure(cause)
88
- })
89
- ),
90
- (rendered) => ElementRef.set(elementRef, rendered)
91
- )),
92
- Effect.forkScoped,
93
- Effect.provide(Layer.mergeAll(renderLayer(window)))
94
- )
95
-
96
- const test: TestRender<E> = {
97
- window,
98
- document: window.document,
99
- elementRef,
100
- errors,
101
- lastError: RefArray.last(errors),
102
- interrupt: Fiber.interrupt(fiber),
103
- makeEvent: (type, init) => new window.Event(type, init),
104
- makeCustomEvent: (type, init) => new window.CustomEvent(type, init),
105
- dispatchEvent: (options) => dispatchEvent(test, options),
106
- click: (options) => click(test, options)
107
- }
108
-
109
- // Allow our fibers to start
110
- yield* adjustTime(1)
111
- yield* adjustTime(1)
112
-
113
- // Await the first render
114
- yield* Effect.race(
115
- Fx.first(elementRef),
116
- Effect.flatMap(
117
- Effect.sleep(options?.renderTimeout ?? 1000),
118
- (_) => Effect.dieMessage(`Rendering taking too long`)
119
- )
120
- )
121
-
122
- return test
123
- }).pipe(Effect.provide(RenderQueue.sync))
124
- }
125
-
126
- /**
127
- * @since 1.0.0
128
- */
129
- export type EventOptions = {
130
- readonly event: string
131
- readonly selector?: string
132
- readonly eventInit?: EventInit
133
- }
134
-
135
- // TODO: Find more events to add here
136
- const NON_BUBBLING_EVENTS = new Set([
137
- "focus",
138
- "blur",
139
- "loadstart",
140
- "progress",
141
- "error",
142
- "load",
143
- "loadend"
144
- ])
145
-
146
- /**
147
- * @since 1.0.0
148
- */
149
- export function dispatchEvent<E>(
150
- { elementRef, makeEvent }: Pick<TestRender<E>, "elementRef" | "makeEvent">,
151
- options: EventOptions
152
- ) {
153
- const selector = options.selector ?? ROOT_CSS_SELECTOR
154
-
155
- return elementRef.query(selector).dispatchEvent(
156
- makeEvent(options.event, {
157
- bubbles: !NON_BUBBLING_EVENTS.has(selector),
158
- cancelable: true,
159
- composed: false,
160
- ...options?.eventInit
161
- })
162
- )
163
- }
164
-
165
- /**
166
- * @since 1.0.0
167
- */
168
- export function click<E>(
169
- rendered: Pick<TestRender<E>, "elementRef" | "makeEvent">,
170
- options?: Omit<EventOptions, "event">
171
- ) {
172
- return dispatchEvent(rendered, { event: "click", ...options, eventInit: { bubbles: true, ...options?.eventInit } })
173
- }
174
-
175
- // internals
176
-
177
- export function getOrMakeWindow(
178
- options?: HappyDOMOptions
179
- ): Effect.Effect<Window & GlobalThis, never, Scope.Scope> {
180
- if (typeof window !== "undefined" && typeof document !== "undefined") {
181
- return Effect.gen(function*() {
182
- window.document.head.innerHTML = ""
183
- window.document.body.innerHTML = ""
184
- yield* Effect.addFinalizer(() =>
185
- Effect.sync(() => {
186
- window.document.head.innerHTML = ""
187
- window.document.body.innerHTML = ""
188
- })
189
- )
190
-
191
- return window
192
- })
193
- }
194
-
195
- return Effect.promise(() =>
196
- import("happy-dom").then((happyDOM) => new happyDOM.Window(options) as any as Window & GlobalThis)
197
- )
198
- }
199
-
200
- /**
201
- * @since 1.0.0
202
- */
203
- export interface TestHydrate<E, Elements> extends TestRender<E> {
204
- readonly elements: Elements
205
- }
206
-
207
- /**
208
- * @since 1.0.0
209
- */
210
- export function testHydrate<R, E, Elements>(
211
- fx: Fx.Fx<RenderEvent, E, R>,
212
- f: (rendered: Rendered, window: Window & GlobalThis) => Elements,
213
- options?:
214
- & HappyDOMOptions
215
- & { readonly [K in keyof DomServicesElementParams]?: (document: Document) => DomServicesElementParams[K] }
216
- ): Effect.Effect<
217
- TestHydrate<E, Elements>,
218
- E,
219
- | Scope.Scope
220
- | Exclude<
221
- R,
222
- RenderContext.RenderContext | RenderQueue.RenderQueue | RenderTemplate | CurrentEnvironment | DomServices
223
- >
224
- | Exclude<R, RenderContext.RenderContext | RenderTemplate | CurrentEnvironment | DomServices>
225
- > {
226
- return Effect.gen(function*() {
227
- const window = yield* getOrMakeWindow(options)
228
- const { body } = window.document
229
-
230
- const html = yield* Effect.provide(
231
- renderToHtmlString(fx),
232
- serverLayer.pipe(
233
- // Add DomServices to the layer for the types
234
- Layer.provideMerge(domServices()),
235
- Layer.provideMerge(Window.layer(window)),
236
- Layer.provideMerge(GlobalThis.layer(window))
237
- )
238
- )
239
-
240
- body.innerHTML = html
241
-
242
- const rendered = Array.from(body.childNodes)
243
- const elements = f(fromRendered(rendered), window)
244
- const elementRef = yield* ElementRef.make()
245
- const errors = yield* RefSubject.make<ReadonlyArray<E>>(Effect.succeed([]))
246
- const fiber = yield* fx.pipe(
247
- hydrate,
248
- (x) =>
249
- x.run(Sink.make(
250
- (cause) =>
251
- Effect.zipRight(
252
- Effect.logError(cause),
253
- Cause.failureOrCause(cause).pipe(
254
- Either.match({
255
- onLeft: (error) => RefArray.append(errors, error),
256
- onRight: (cause) => elementRef[ElementRef.ElementRefTypeId].onFailure(cause)
257
- })
258
- )
259
- ),
260
- (rendered) =>
261
- ElementRef.set(
262
- elementRef,
263
- fromRendered(rendered)
264
- )
265
- )),
266
- Effect.provide(renderLayer(window)),
267
- Effect.forkScoped
268
- )
269
-
270
- const test: TestHydrate<E, Elements> = {
271
- elements,
272
- window,
273
- document: window.document,
274
- elementRef,
275
- errors,
276
- lastError: RefArray.last(errors),
277
- interrupt: Fiber.interrupt(fiber),
278
- makeEvent: (type, init) => new window.Event(type, init),
279
- makeCustomEvent: (type, init) => new window.CustomEvent(type, init),
280
- dispatchEvent: (options) => dispatchEvent(test, options),
281
- click: (options) => click(test, options)
282
- }
283
-
284
- // Allow our fibers to start
285
- yield* adjustTime(1)
286
- yield* adjustTime(1)
287
-
288
- // Await the first render
289
- yield* Effect.race(Fx.first(elementRef), Effect.delay(Effect.dieMessage(`Rendering taking too long`), 1000))
290
-
291
- return test
292
- })
293
- }
294
-
295
- function fromRendered(rendered: Rendered) {
296
- const elements = Array.isArray(rendered)
297
- ? rendered.filter((x) => isComment(x) ? !(x.data.startsWith("typed") || x.data.startsWith("/typed")) : true)
298
- : rendered
299
-
300
- return Array.isArray(elements) && elements.length === 1
301
- ? elements[0]
302
- : elements
303
- }
304
-
305
- const typedTemplateStartCommentRegex =
306
- /<!--typed-((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2}))-->/g
307
- const typedTemplateEndCommentRegex =
308
- /<!--\/typed-((?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}={2}))-->/g
309
-
310
- export function isTemplateStartComment(comment: Comment) {
311
- return typedTemplateStartCommentRegex.test(`${comment.nodeValue}`)
312
- }
313
-
314
- export function isTemplateEndComment(comment: Comment) {
315
- return typedTemplateEndCommentRegex.test(`${comment.nodeValue}`)
316
- }
317
-
318
- export function stripTypedTemplateComments(html: string) {
319
- return html.replace(typedTemplateStartCommentRegex, "").replace(typedTemplateEndCommentRegex, "")
320
- }
321
-
322
- /**
323
- * @since 1.0.0
324
- */
325
- export function testHtmlString<E, R>(
326
- fx: Fx.Fx<RenderEvent, E, R>
327
- ): Effect.Effect<
328
- string,
329
- E,
330
- | Scope.Scope
331
- | Exclude<
332
- R,
333
- RenderContext.RenderContext | RenderQueue.RenderQueue | RenderTemplate | CurrentEnvironment
334
- >
335
- > {
336
- return Effect.provide(renderToHtmlString(fx), staticLayer)
337
- }
338
-
339
- /**
340
- * @since 1.0.0
341
- */
342
- export function testHtmlChunks<E, R>(
343
- fx: Fx.Fx<RenderEvent, E, R>
344
- ): Effect.Effect<
345
- ReadonlyArray<string>,
346
- E,
347
- | Scope.Scope
348
- | Exclude<
349
- R,
350
- RenderContext.RenderContext | RenderQueue.RenderQueue | RenderTemplate | CurrentEnvironment
351
- >
352
- > {
353
- return Fx.toReadonlyArray(Fx.provide(Fx.map(renderToHtml(fx), stripTypedTemplateComments), serverLayer))
354
- }
package/src/Vitest.ts DELETED
@@ -1,141 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import * as Effect from "effect/Effect"
5
- import type { Scope } from "effect/Scope"
6
- import * as TestClock from "effect/TestClock"
7
- import * as TestContext from "effect/TestContext"
8
- import type * as TestServices from "effect/TestServices"
9
- import * as vitest from "vitest"
10
- import * as RenderQueue from "./RenderQueue.js"
11
-
12
- const describeConcurrent = vitest.describe.concurrent
13
- const expect = vitest.expect
14
-
15
- export {
16
- /**
17
- * @since 1.0.0
18
- */
19
- describeConcurrent as describe,
20
- /**
21
- * @since 1.0.0
22
- */
23
- expect
24
- }
25
-
26
- /**
27
- * @since 1.0.0
28
- */
29
- export function it<E, A>(
30
- name: string,
31
- test: () => Effect.Effect<A, E, Scope | RenderQueue.RenderQueue>,
32
- options?: vitest.TestOptions
33
- ) {
34
- return vitest.it.concurrent(
35
- name,
36
- () =>
37
- test().pipe(
38
- Effect.provide(RenderQueue.sync),
39
- Effect.scoped,
40
- Effect.runPromise
41
- ),
42
- options
43
- )
44
- }
45
-
46
- it.only = function it<E, A>(
47
- name: string,
48
- test: () => Effect.Effect<A, E, Scope | RenderQueue.RenderQueue>,
49
- options?: vitest.TestOptions
50
- ) {
51
- return vitest.it.only(
52
- name,
53
- () =>
54
- test().pipe(
55
- Effect.provide(RenderQueue.sync),
56
- Effect.scoped,
57
- Effect.runPromise
58
- ),
59
- options
60
- )
61
- }
62
-
63
- it.skip = function it<E, A>(
64
- name: string,
65
- test: () => Effect.Effect<A, E, Scope | RenderQueue.RenderQueue>,
66
- options?: vitest.TestOptions
67
- ) {
68
- return vitest.it.skip(
69
- name,
70
- () =>
71
- test().pipe(
72
- Effect.provide(RenderQueue.sync),
73
- Effect.scoped,
74
- Effect.runPromise
75
- ),
76
- options
77
- )
78
- }
79
-
80
- /**
81
- * @since 1.0.0
82
- */
83
- export function test<E, A>(
84
- name: string,
85
- test: (options: {
86
- readonly clock: TestClock.TestClock
87
- }) => Effect.Effect<A, E, Scope | RenderQueue.RenderQueue | TestServices.TestServices>,
88
- options?: vitest.TestOptions
89
- ) {
90
- return vitest.it.concurrent(
91
- name,
92
- () =>
93
- TestClock.testClockWith((clock) => test({ clock })).pipe(
94
- Effect.provide(RenderQueue.sync),
95
- Effect.provide(TestContext.TestContext),
96
- Effect.scoped,
97
- Effect.runPromise
98
- ),
99
- options
100
- )
101
- }
102
-
103
- test.only = function test<E, A>(
104
- name: string,
105
- test: (options: {
106
- readonly clock: TestClock.TestClock
107
- }) => Effect.Effect<A, E, Scope | RenderQueue.RenderQueue | TestServices.TestServices>,
108
- options?: vitest.TestOptions
109
- ) {
110
- return vitest.it.only(
111
- name,
112
- () =>
113
- TestClock.testClockWith((clock) => test({ clock })).pipe(
114
- Effect.provide(RenderQueue.sync),
115
- Effect.provide(TestContext.TestContext),
116
- Effect.scoped,
117
- Effect.runPromise
118
- ),
119
- options
120
- )
121
- }
122
-
123
- test.skip = function test<E, A>(
124
- name: string,
125
- test: (options: {
126
- readonly clock: TestClock.TestClock
127
- }) => Effect.Effect<A, E, Scope | RenderQueue.RenderQueue | TestServices.TestServices>,
128
- options?: vitest.TestOptions
129
- ) {
130
- return vitest.it.skip(
131
- name,
132
- () =>
133
- TestClock.testClockWith((clock) => test({ clock })).pipe(
134
- Effect.provide(RenderQueue.sync),
135
- Effect.provide(TestContext.TestContext),
136
- Effect.scoped,
137
- Effect.runPromise
138
- ),
139
- options
140
- )
141
- }