@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
@@ -1,510 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
-
5
- import type { EventWithCurrentTarget } from "@typed/dom/EventTarget"
6
- import { addEventListener } from "@typed/dom/EventTarget"
7
- import * as Fx from "@typed/fx/Fx"
8
- import { FxEffectBase } from "@typed/fx/Fx"
9
- import * as Versioned from "@typed/fx/Versioned"
10
- import type { Rendered } from "@typed/wire"
11
- import { isWire } from "@typed/wire"
12
- import type { NoSuchElementException } from "effect/Cause"
13
- import type { DurationInput } from "effect/Duration"
14
- import * as Effect from "effect/Effect"
15
- import { pipe } from "effect/Function"
16
- import type * as Scope from "effect/Scope"
17
- import { adjustTime } from "./internal/utils.js"
18
-
19
- import * as RefSubject from "@typed/fx/RefSubject"
20
- import type * as TQS from "typed-query-selector/parser"
21
-
22
- /**
23
- * @since 1.0.0
24
- */
25
- export interface ElementSource<
26
- T extends Rendered = Element,
27
- EventMap extends {} = DefaultEventMap<Rendered.Elements<T>[number]>
28
- > extends
29
- Versioned.Versioned<
30
- never,
31
- never,
32
- Rendered.Elements<T>,
33
- never,
34
- Scope.Scope,
35
- Rendered.Elements<T>,
36
- NoSuchElementException,
37
- never
38
- >
39
- {
40
- readonly selector: Selector
41
-
42
- readonly query: {
43
- <
44
- S extends string,
45
- Ev extends {} = DefaultEventMap<ParseSelector<S, Element>>
46
- >(
47
- selector: S
48
- ): ElementSource<ParseSelector<S, Element>, Ev>
49
-
50
- <Target extends Rendered, EventMap extends {} = DefaultEventMap<Target>>(
51
- rendered: Target
52
- ): ElementSource<Target, EventMap>
53
- }
54
-
55
- readonly elements: RefSubject.Filtered<Rendered.Elements<T>>
56
-
57
- readonly events: <Type extends keyof EventMap>(
58
- type: Type,
59
- options?: AddEventListenerOptions
60
- ) => Fx.Fx<
61
- EventWithCurrentTarget<Rendered.Elements<T>[number], EventMap[Type]>,
62
- never,
63
- Scope.Scope
64
- >
65
-
66
- readonly dispatchEvent: (
67
- event: Event,
68
- wait?: DurationInput
69
- ) => Effect.Effect<void, NoSuchElementException>
70
- }
71
-
72
- /**
73
- * @since 1.0.0
74
- */
75
- export function ElementSource<
76
- T extends Rendered,
77
- EventMap extends {} = DefaultEventMap<T>
78
- >(rootElement: RefSubject.Filtered<T>): ElementSource<T, EventMap> {
79
- return new ElementSourceImpl<T, EventMap>(rootElement) as any
80
- }
81
-
82
- /**
83
- * @since 1.0.0
84
- */
85
- export function fromElement<
86
- T extends Element,
87
- EventMap extends {} = DefaultEventMap<T>
88
- >(rootElement: T): ElementSource<T, EventMap> {
89
- return ElementSourceImpl.fromElement(rootElement) as any
90
- }
91
-
92
- /**
93
- * @since 1.0.0
94
- */
95
- export type ParseSelector<T extends string, Fallback> = [T] extends [
96
- typeof ROOT_CSS_SELECTOR
97
- ] ? Fallback
98
- : Fallback extends globalThis.Element ? Extract<TQS.ParseSelector<T, Fallback>, globalThis.Element>
99
- : Fallback
100
-
101
- /**
102
- * @since 1.0.0
103
- */
104
- export type DefaultEventMap<T> = T extends Window ? WindowEventMap
105
- : T extends Document ? DocumentEventMap
106
- : T extends HTMLVideoElement ? HTMLVideoElementEventMap
107
- : T extends HTMLMediaElement ? HTMLMediaElementEventMap
108
- : T extends HTMLElement ? HTMLElementEventMap
109
- : T extends SVGElement ? SVGElementEventMap
110
- : T extends Element ? ElementEventMap & Readonly<Record<string, Event>>
111
- : Readonly<Record<string, Event>>
112
-
113
- /**
114
- * @since 1.0.0
115
- */
116
- export const ROOT_CSS_SELECTOR = `:root` as const
117
-
118
- type RenderedWithoutArray = Exclude<Rendered, ReadonlyArray<Rendered>>
119
-
120
- /**
121
- * @since 1.0.0
122
- */
123
- export function getElements<T extends Rendered>(
124
- element: T
125
- ): ReadonlyArray<Element> {
126
- if (Array.isArray(element)) return element.flatMap(getElements)
127
- if (isWire(element as RenderedWithoutArray)) {
128
- return Array.from((element.valueOf() as DocumentFragment).children)
129
- }
130
- if (isElement(element as RenderedWithoutArray)) return [element as Element]
131
- if (isDocumentFragment(element as RenderedWithoutArray)) {
132
- return Array.from((element as DocumentFragment).children)
133
- }
134
-
135
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
136
- if ((element as Node).parentElement) {
137
- return [(element as Node).parentElement!]
138
- }
139
-
140
- return []
141
- }
142
-
143
- function findMostSpecificElement<T extends Element>(
144
- cssSelectors: ReadonlyArray<string>
145
- ) {
146
- return function(element: Rendered): T {
147
- const elements = getElements(element)
148
-
149
- for (let i = 0; i < cssSelectors.length; ++i) {
150
- const cssSelector = dropLast(i, cssSelectors).join(" ")
151
-
152
- for (let j = 0; j < elements.length; ++j) {
153
- const node = elements[j].querySelector(cssSelector)
154
-
155
- if (node) return node as T
156
- }
157
- }
158
-
159
- return element as T
160
- }
161
- }
162
-
163
- function findMatchingElements<El extends Element = Element>(
164
- cssSelectors: ReadonlyArray<string>
165
- ) {
166
- if (cssSelectors.length === 0) return getElements
167
-
168
- const cssSelector = cssSelectors.join(" ")
169
- return function(element: Rendered): ReadonlyArray<El> {
170
- const elements = getElements(element)
171
- const nodes = elements.flatMap((element) => Array.from(element.querySelectorAll<El>(cssSelector)))
172
-
173
- const matchedElements = elements.filter((element) => element.matches(cssSelector)) as Array<El>
174
-
175
- if (matchedElements.length > 0) return [...matchedElements, ...nodes]
176
-
177
- return nodes
178
- }
179
- }
180
-
181
- function dropLast(i: number, cssSelectors: ReadonlyArray<string>) {
182
- return cssSelectors.slice(0, cssSelectors.length - i)
183
- }
184
-
185
- function makeEventStream<Ev extends Event>(
186
- cssSelectors: ReadonlyArray<string>,
187
- eventName: string,
188
- options: EventListenerOptions = {}
189
- ) {
190
- return function(element: Rendered): Fx.Fx<Ev> {
191
- const { capture } = options
192
- const cssSelector = cssSelectors.join(" ")
193
- const lastTwoCssSelectors = cssSelectors.slice(-2).join("")
194
- const elements = getElements(element)
195
-
196
- const event$ = Fx.mergeAll(
197
- elements.map((element) =>
198
- Fx.filter(
199
- Fx.make<Ev>((sink) =>
200
- Effect.scoped(
201
- Effect.zipRight(
202
- addEventListener(element, {
203
- eventName,
204
- handler: (ev) => sink.onSuccess(ev as any as Ev)
205
- }),
206
- Effect.never
207
- )
208
- )
209
- ),
210
- (event: Ev) =>
211
- ensureMatches(cssSelector, element, event, capture) ||
212
- ensureMatches(lastTwoCssSelectors, element, event, capture)
213
- )
214
- )
215
- )
216
-
217
- if (capture) {
218
- return pipe(event$, Fx.map(findCurrentTarget(cssSelector, element)))
219
- }
220
-
221
- return event$
222
- }
223
- }
224
-
225
- function makeElementEventStream<Ev extends Event>(
226
- currentTarget: Element,
227
- eventName: string,
228
- options: EventListenerOptions = {}
229
- ) {
230
- return function(rendered: Rendered): Fx.Fx<Ev> {
231
- const { capture } = options
232
- const elements = getElements(rendered)
233
-
234
- const event$ = Fx.mergeAll(
235
- elements.map((element) =>
236
- Fx.filter(
237
- Fx.make<Ev>((sink) =>
238
- Effect.scoped(
239
- Effect.zipRight(
240
- addEventListener(element, {
241
- eventName,
242
- handler: (ev) => sink.onSuccess(ev as any as Ev)
243
- }),
244
- Effect.never
245
- )
246
- )
247
- ),
248
- (event: Ev) =>
249
- event.target
250
- ? currentTarget.contains(event.target as Element)
251
- : false
252
- )
253
- )
254
- )
255
-
256
- if (capture) {
257
- return event$.pipe(Fx.map((ev) => cloneEvent(ev, currentTarget)))
258
- }
259
-
260
- return event$
261
- }
262
- }
263
-
264
- function findCurrentTarget(cssSelector: string, element: Rendered) {
265
- const elements = getElements(element)
266
- const length = elements.length
267
-
268
- return function<E extends Event>(event: E): E {
269
- for (let i = 0; i < length; ++i) {
270
- const element = elements[i]
271
- const isCurrentTarget = !cssSelector || element.matches(cssSelector)
272
-
273
- if (isCurrentTarget) return cloneEvent(event, element) as E
274
-
275
- const nodes = element.querySelectorAll(cssSelector)
276
-
277
- for (let i = 0; i < nodes.length; ++i) {
278
- const node = nodes[i]
279
- const containsEventTarget = node.contains(event.target as Element)
280
-
281
- if (containsEventTarget) return cloneEvent(event, node)
282
- }
283
- }
284
-
285
- return event
286
- }
287
- }
288
-
289
- const EVENT_PROPERTY_TO_REPLACE = "currentTarget"
290
-
291
- function cloneEvent<E extends Event>(event: E, currentTarget: Element): E {
292
- return new Proxy(event, {
293
- get(target: E, property: string | symbol) {
294
- return property === EVENT_PROPERTY_TO_REPLACE
295
- ? currentTarget
296
- : target[property as keyof E]
297
- }
298
- })
299
- }
300
-
301
- function ensureMatches(
302
- cssSelector: string,
303
- element: Element,
304
- ev: Event,
305
- capture = false
306
- ): boolean {
307
- let target = ev.target as Element
308
-
309
- if (!cssSelector) {
310
- return (capture && element.contains(target)) || target === element
311
- }
312
-
313
- for (
314
- ;
315
- target && target !== element;
316
- target = target.parentElement as Element
317
- ) {
318
- if (target.matches(cssSelector)) return true
319
- }
320
-
321
- return element.matches(cssSelector)
322
- }
323
-
324
- function isDocumentFragment(
325
- element: RenderedWithoutArray
326
- ): element is DocumentFragment {
327
- return element.nodeType === element.DOCUMENT_FRAGMENT_NODE
328
- }
329
-
330
- function isElement(element: RenderedWithoutArray): element is Element {
331
- return element.nodeType === element.ELEMENT_NODE
332
- }
333
-
334
- /**
335
- * @internal
336
- * @since 1.0.0
337
- */
338
- // @ts-expect-error Missing PlaceholderTypeId
339
- export class ElementSourceImpl<
340
- T extends Rendered,
341
- EventMap extends {} = DefaultEventMap<Rendered.Elements<T>[number]>
342
- > extends FxEffectBase<
343
- Rendered.Elements<T>,
344
- never,
345
- Scope.Scope,
346
- Rendered.Elements<T>,
347
- NoSuchElementException,
348
- never
349
- > implements ElementSource<T, EventMap> {
350
- private bubbleMap = new Map<any, Fx.Fx<any, never, Scope.Scope>>()
351
- private captureMap = new Map<any, Fx.Fx<any, never, Scope.Scope>>()
352
-
353
- readonly elements: ElementSource<T, EventMap>["elements"]
354
- readonly version: ElementSource<T, EventMap>["version"]
355
-
356
- constructor(
357
- readonly rootElement: RefSubject.Filtered<T>,
358
- readonly selector: Selector = CssSelectors([])
359
- ) {
360
- super()
361
- this.query = this.query.bind(this)
362
- this.events = this.events.bind(this)
363
-
364
- this.elements = this.selector._tag === "css"
365
- ? RefSubject.map(
366
- this.rootElement,
367
- findMatchingElements<any>(this.selector.selectors)
368
- )
369
- : (RefSubject.filterMapEffect(
370
- Versioned.of(this.selector.element),
371
- (x) => Effect.succeedSome([x] as any as Rendered.Elements<T>)
372
- ) as any)
373
-
374
- this.version = this.elements.version
375
- }
376
-
377
- static fromElement<T extends Rendered>(rootElement: T): ElementSource<T> {
378
- return new ElementSourceImpl<T>(
379
- RefSubject.filterMapEffect(Versioned.of(rootElement), Effect.succeedSome)
380
- ) as any
381
- }
382
-
383
- toEffect(): Effect.Effect<Rendered.Elements<T>, NoSuchElementException> {
384
- return this.elements
385
- }
386
-
387
- toFx(): Fx.Fx<Rendered.Elements<T>, never, Scope.Scope> {
388
- return this.elements
389
- }
390
-
391
- query<
392
- S extends string,
393
- Ev extends {} = DefaultEventMap<ParseSelector<S, Element>>
394
- >(selector: S): ElementSource<ParseSelector<S, Element>, Ev> {
395
- if (selector === ROOT_CSS_SELECTOR) {
396
- return this as any
397
- } else if (typeof selector === "string") {
398
- if (this.selector._tag === "css") {
399
- return new ElementSourceImpl(
400
- this.rootElement,
401
- CssSelectors([...this.selector.selectors, selector])
402
- ) as any
403
- } else {
404
- return ElementSourceImpl.fromElement(this.selector.element).query(
405
- selector
406
- ) as any
407
- }
408
- } else {
409
- return new ElementSourceImpl(
410
- this.rootElement,
411
- ElementSelector(selector)
412
- ) as any
413
- }
414
- }
415
-
416
- events<Type extends keyof EventMap>(
417
- type: Type,
418
- options?: AddEventListenerOptions
419
- ): Fx.Fx<
420
- EventWithCurrentTarget<Rendered.Elements<T>[number], EventMap[Type]>,
421
- never,
422
- Scope.Scope
423
- > {
424
- const capture = options?.capture === true
425
- const map = capture ? this.captureMap : this.bubbleMap
426
-
427
- let current = map.get(type)
428
-
429
- if (current === undefined) {
430
- if (this.selector._tag === "css") {
431
- current = RefSubject.map(
432
- this.rootElement,
433
- findMostSpecificElement(this.selector.selectors)
434
- ).pipe(
435
- Fx.switchMap(
436
- makeEventStream(this.selector.selectors, type as any, options)
437
- ),
438
- Fx.multicast
439
- )
440
- } else {
441
- current = this.rootElement.pipe(
442
- Fx.switchMap(
443
- makeElementEventStream(
444
- this.selector.element,
445
- type as string,
446
- options
447
- )
448
- ),
449
- Fx.multicast
450
- )
451
- }
452
-
453
- map.set(type, current!)
454
- }
455
-
456
- return current
457
- }
458
-
459
- dispatchEvent(event: Event, wait?: DurationInput) {
460
- return Effect.zipRight(
461
- Effect.flatMap(
462
- this.elements,
463
- (elements) => Effect.sync(() => elements.length > 0 ? elements[0].dispatchEvent(event) : null)
464
- ),
465
- // Allow time to move forward
466
- adjustTime(wait)
467
- )
468
- }
469
- }
470
-
471
- /**
472
- * @since 1.0.0
473
- */
474
- export type Selector = CssSelectors | ElementSelector
475
-
476
- /**
477
- * @since 1.0.0
478
- */
479
- export interface CssSelectors {
480
- readonly _tag: "css"
481
- readonly selectors: ReadonlyArray<string>
482
- }
483
-
484
- /**
485
- * @since 1.0.0
486
- */
487
- export function CssSelectors(selectors: ReadonlyArray<string>): CssSelectors {
488
- return {
489
- _tag: "css",
490
- selectors
491
- }
492
- }
493
-
494
- /**
495
- * @since 1.0.0
496
- */
497
- export interface ElementSelector {
498
- readonly _tag: "element"
499
- readonly element: Element
500
- }
501
-
502
- /**
503
- * @since 1.0.0
504
- */
505
- export function ElementSelector(element: Element): ElementSelector {
506
- return {
507
- _tag: "element",
508
- element
509
- }
510
- }
package/src/Entry.ts DELETED
@@ -1,28 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type { HtmlChunk } from "./HtmlChunk.js"
5
- import type { Template } from "./Template.js"
6
-
7
- /**
8
- * @since 1.0.0
9
- */
10
- export type Entry = BrowserEntry | ServerEntry
11
-
12
- /**
13
- * @since 1.0.0
14
- */
15
- export interface BrowserEntry {
16
- readonly _tag: "Browser"
17
- readonly template: Template
18
- readonly content: DocumentFragment
19
- }
20
-
21
- /**
22
- * @since 1.0.0
23
- */
24
- export interface ServerEntry {
25
- readonly _tag: "Server"
26
- readonly template: Template
27
- readonly chunks: ReadonlyArray<HtmlChunk>
28
- }
package/src/Hydrate.ts DELETED
@@ -1,51 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
-
5
- import * as Context from "@typed/context"
6
- import { RootElement } from "@typed/dom/RootElement"
7
- import * as Fx from "@typed/fx/Fx"
8
- import * as Effect from "effect/Effect"
9
- import type * as Layer from "effect/Layer"
10
- import { HydrateContext } from "./internal/HydrateContext.js"
11
- import { getHydrationRoot } from "./internal/v2/hydration-template.js"
12
- import { attachRoot } from "./internal/v2/render.js"
13
- import type { ToRendered } from "./Render.js"
14
- import * as RenderContext from "./RenderContext.js"
15
- import { type RenderEvent } from "./RenderEvent.js"
16
- import type { RenderTemplate } from "./RenderTemplate.js"
17
-
18
- /**
19
- * @since 1.0.0
20
- */
21
- export function hydrate<R, E, T extends RenderEvent | null>(
22
- rendered: Fx.Fx<T, E, R>
23
- ): Fx.Fx<ToRendered<T>, E, R | RenderTemplate | RenderContext.RenderContext | RootElement> {
24
- return Fx.fromFxEffect(Effect.contextWith((context) => {
25
- const [renderContext, { rootElement }] = Context.getMany(
26
- context,
27
- RenderContext.RenderContext,
28
- RootElement
29
- )
30
- const ctx: HydrateContext = {
31
- where: getHydrationRoot(rootElement),
32
- hydrate: true
33
- }
34
-
35
- return Fx.provide(
36
- Fx.mapEffect(rendered, (what) => attachRoot(renderContext.renderCache, rootElement, what)),
37
- HydrateContext.layer(ctx)
38
- )
39
- }))
40
- }
41
-
42
- /**
43
- * @since 1.0.0
44
- */
45
- export function hydrateToLayer<R, E, T extends RenderEvent | null>(
46
- rendered: Fx.Fx<T, E, R>
47
- ): Layer.Layer<never, never, R | RenderTemplate | RenderContext.RenderContext | RootElement> {
48
- return Fx.drainLayer(
49
- Fx.switchMapCause(hydrate(rendered), (cause) => Fx.fromEffect(Effect.logError(`Hydration Failure`, cause)))
50
- )
51
- }