@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,250 +0,0 @@
1
- /**
2
- * A collection of tools utilized by @typed/compiler to setup templates imperatively.
3
- * This is not intended for direct usage by end-users and the API surface is not guaranteed
4
- * to have the same stabilitiy as the rest of the library.
5
- *
6
- * @since 1.0.0
7
- */
8
-
9
- import type { Option } from "effect"
10
- import type * as Cause from "effect/Cause"
11
- import type * as Chunk from "effect/Chunk"
12
- import type * as Effect from "effect/Effect"
13
- import type * as Scope from "effect/Scope"
14
- import type * as internalHydrateContext from "./internal/HydrateContext.js"
15
- import * as utils from "./internal/utils.js"
16
- import * as hydrationTemplate from "./internal/v2/hydration-template.js"
17
- import * as render from "./internal/v2/render.js"
18
- import type { Placeholder } from "./Placeholder.js"
19
- import type { Renderable } from "./Renderable.js"
20
- import type { RenderContext } from "./RenderContext.js"
21
- import type { RenderQueue } from "./RenderQueue.js"
22
- import type * as Template from "./Template.js"
23
-
24
- /**
25
- * @since 1.0.0
26
- */
27
- export interface TemplateContext extends render.TemplateContext {}
28
-
29
- /**
30
- * @since 1.0.0
31
- */
32
- export interface HydrateContext extends internalHydrateContext.HydrateContext {}
33
-
34
- /**
35
- * @since 1.0.0
36
- */
37
- export interface HydrationTemplate extends hydrationTemplate.HydrationTemplate {}
38
-
39
- /**
40
- * @since 1.0.0
41
- */
42
- export type HydrationNode = hydrationTemplate.HydrationNode
43
-
44
- /**
45
- * @since 1.0.0
46
- */
47
- export interface HydrationHole extends hydrationTemplate.HydrationHole {}
48
-
49
- /**
50
- * @since 1.0.0
51
- */
52
- export interface HydrationMany extends hydrationTemplate.HydrationMany {}
53
-
54
- /**
55
- * @since 1.0.0
56
- */
57
- export interface HydrationElement extends hydrationTemplate.HydrationElement {}
58
-
59
- /**
60
- * @since 1.0.0
61
- */
62
- export interface HydrationLiteral extends hydrationTemplate.HydrationLiteral {}
63
-
64
- /**
65
- * @since 1.0.0
66
- */
67
- export const makeTemplateContext: <Values extends ReadonlyArray<Renderable<any, any>>>(
68
- document: Document,
69
- renderContext: RenderContext,
70
- values: ReadonlyArray<Renderable<any, any>>,
71
- onCause: (cause: Cause.Cause<Placeholder.Error<Values[number]>>) => Effect.Effect<unknown, never, never>
72
- ) => Effect.Effect<TemplateContext, never, Scope.Scope | RenderQueue | Placeholder.Context<Values[number]>> =
73
- render.makeTemplateContext
74
-
75
- /**
76
- * @since 1.0.0
77
- */
78
- export const setupAttrPart: (
79
- { index, name }: Pick<Template.AttrPartNode, "index" | "name">,
80
- element: HTMLElement | SVGElement,
81
- ctx: TemplateContext,
82
- renderable: Renderable<any, any>
83
- ) => Effect.Effect<void, any, any> | null = render.setupAttrPart
84
-
85
- /**
86
- * @since 1.0.0
87
- */
88
- export const setupBooleanPart: (
89
- { index, name }: Pick<Template.BooleanPartNode, "index" | "name">,
90
- element: HTMLElement | SVGElement,
91
- ctx: TemplateContext,
92
- renderable: Renderable<any, any>
93
- ) => Effect.Effect<void, any, any> | null = render.setupBooleanPart
94
-
95
- /**
96
- * @since 1.0.0
97
- */
98
- export const setupClassNamePart: (
99
- { index }: Pick<Template.ClassNamePartNode, "index">,
100
- element: HTMLElement | SVGElement,
101
- ctx: TemplateContext,
102
- renderable: Renderable<any, any>
103
- ) => Effect.Effect<void, any, any> | null = render.setupClassNamePart
104
-
105
- /**
106
- * @since 1.0.0
107
- */
108
- export const setupCommentPart: (
109
- { index }: Pick<Template.CommentPartNode, "index">,
110
- comment: Comment,
111
- ctx: render.TemplateContext,
112
- renderable: Renderable<any, any>
113
- ) => Effect.Effect<void, any, any> | null = render.setupCommentPart
114
-
115
- /**
116
- * @since 1.0.0
117
- */
118
- export const setupDataPart: (
119
- { index }: Pick<Template.DataPartNode, "index">,
120
- element: HTMLElement | SVGElement,
121
- ctx: TemplateContext,
122
- renderable: Renderable<any, any>
123
- ) => Effect.Effect<void, any, any> | null = render.setupDataPart
124
-
125
- /**
126
- * @since 1.0.0
127
- */
128
- export const setupEventPart: (
129
- { index, name }: Pick<Template.EventPartNode, "index" | "name">,
130
- element: HTMLElement | SVGElement,
131
- ctx: TemplateContext,
132
- renderable: Renderable<any, any>
133
- ) => Effect.Effect<unknown, unknown, unknown> | null = render.setupEventPart
134
-
135
- /**
136
- * @since 1.0.0
137
- */
138
- export const setupNodePart: (
139
- { index }: Template.NodePart,
140
- comment: Comment,
141
- ctx: TemplateContext,
142
- text: Text | null,
143
- nodes: Array<Node>
144
- ) => Effect.Effect<void, any, any> | null = render.setupNodePart
145
-
146
- /**
147
- * @since 1.0.0
148
- */
149
- export const setupHydratedNodePart: (
150
- part: Template.NodePart,
151
- hole: hydrationTemplate.HydrationHole,
152
- ctx: render.HydrateTemplateContext
153
- ) => Effect.Effect<void, any, any> | null = render.setupHydratedNodePart
154
-
155
- /**
156
- * @since 1.0.0
157
- */
158
- export const setupPropertyPart: (
159
- { index, name }: Pick<Template.PropertyPartNode, "index" | "name">,
160
- element: HTMLElement | SVGElement,
161
- ctx: TemplateContext,
162
- renderable: Renderable<any, any>
163
- ) => Effect.Effect<void, any, any> | null = render.setupPropertyPart
164
-
165
- /**
166
- * @since 1.0.0
167
- */
168
- export const setupRefPart: (
169
- { index }: Pick<Template.RefPartNode, "index">,
170
- element: HTMLElement | SVGElement,
171
- renderable: Renderable<any, any>
172
- ) => Effect.Effect<void, any, any> | null = render.setupRefPart
173
-
174
- /**
175
- * @since 1.0.0
176
- */
177
- export const setupPropertiesPart: (
178
- element: HTMLElement | SVGElement,
179
- ctx: render.TemplateContext,
180
- renderable: Renderable<any, any>
181
- ) => Effect.Effect<Array<void>, any, any> | null = render.setupPropertiesPart
182
-
183
- /**
184
- * @since 1.0.0
185
- */
186
- export const setupSparseAttrPart: (
187
- { name, nodes }: Pick<Template.SparseAttrNode, "name" | "nodes">,
188
- element: HTMLElement | SVGElement,
189
- ctx: render.TemplateContext
190
- ) => Effect.Effect<void, any, any> = render.setupSparseAttrPart
191
-
192
- /**
193
- * @since 1.0.0
194
- */
195
- export const setupSparseClassNamePart: (
196
- { nodes }: Pick<Template.SparseClassNameNode, "nodes">,
197
- element: HTMLElement | SVGElement,
198
- ctx: render.TemplateContext
199
- ) => Effect.Effect<void, any, any> = render.setupSparseClassNamePart
200
-
201
- /**
202
- * @since 1.0.0
203
- */
204
- export const setupSparseCommentPart: (
205
- { nodes }: Template.SparseCommentNode,
206
- comment: Comment,
207
- ctx: render.TemplateContext
208
- ) => Effect.Effect<void, any, any> = render.setupSparseCommentPart
209
-
210
- /**
211
- * @since 1.0.0
212
- */
213
- export const setupTextPart: (
214
- { index }: Template.TextPartNode,
215
- comment: Comment,
216
- ctx: render.TemplateContext
217
- ) => Effect.Effect<void, any, any> | null = render.setupTextPart
218
-
219
- /**
220
- * @since 1.0.0
221
- */
222
- export const findHydrationHole: (
223
- nodes: Array<hydrationTemplate.HydrationNode>,
224
- index: number
225
- ) => hydrationTemplate.HydrationHole | null = hydrationTemplate.findHydrationHole
226
-
227
- /**
228
- * @since 1.0.0
229
- */
230
- export const getChildNodes: (node: hydrationTemplate.HydrationNode) => Array<hydrationTemplate.HydrationNode> =
231
- hydrationTemplate.getChildNodes
232
-
233
- /**
234
- * @since 1.0.0
235
- */
236
- export const findHydratePath: (node: hydrationTemplate.HydrationNode, path: Chunk.Chunk<number>) => Node =
237
- utils.findHydratePath
238
-
239
- /**
240
- * @since 1.0.0
241
- */
242
- export const attemptHydration: (
243
- ctx: TemplateContext,
244
- hash: string
245
- ) => Option.Option<
246
- {
247
- readonly where: HydrationTemplate
248
- readonly hydrateCtx: HydrateContext
249
- }
250
- > = render.attemptHydration
@@ -1,188 +0,0 @@
1
- import type { Rendered } from "@typed/wire"
2
- import * as Effect from "effect/Effect"
3
- import * as Fiber from "effect/Fiber"
4
- import * as Runtime from "effect/Runtime"
5
- import * as Scope from "effect/Scope"
6
- import { getElements } from "../ElementSource.js"
7
- import type { EventHandler } from "../EventHandler.js"
8
-
9
- type EventName = string
10
-
11
- type Handler<Ev extends Event> = EventHandler<Ev>
12
-
13
- export interface EventSource {
14
- readonly addEventListener: <Ev extends Event>(
15
- element: Element,
16
- event: EventName,
17
- handler: Handler<Ev>
18
- ) => void
19
-
20
- readonly setup: (rendered: Rendered, scope: Scope.Scope) => Effect.Effect<void>
21
- }
22
-
23
- type Entry = readonly [Element, Handler<any>]
24
- type Run = <E, A>(effect: Effect.Effect<A, E>) => Fiber.RuntimeFiber<A, E>
25
-
26
- const disposable = (f: () => void): Disposable => ({
27
- [Symbol.dispose]: f
28
- })
29
-
30
- const dispose = (d: Disposable): void => d[Symbol.dispose]()
31
-
32
- export function makeEventSource(): EventSource {
33
- const bubbleListeners = new Map<
34
- EventName,
35
- readonly [normal: Set<Entry>, once: Set<Entry>]
36
- >()
37
- const captureListeners = new Map<
38
- EventName,
39
- readonly [normal: Set<Entry>, once: Set<Entry>]
40
- >()
41
-
42
- function addListener(
43
- listeners: Map<
44
- EventName,
45
- readonly [normal: Set<Entry>, once: Set<Entry>]
46
- >,
47
- event: EventName,
48
- entry: Entry
49
- ): void {
50
- const sets = listeners.get(event)
51
- const isOnce = entry[1].options?.once === true
52
- if (sets === undefined) {
53
- const normal = new Set<Entry>()
54
- const once = new Set<Entry>()
55
- if (isOnce) {
56
- once.add(entry)
57
- } else {
58
- normal.add(entry)
59
- }
60
- listeners.set(event, [normal, once])
61
- } else {
62
- const [normal, once] = sets
63
- if (isOnce) {
64
- once.add(entry)
65
- } else {
66
- normal.add(entry)
67
- }
68
- }
69
- }
70
-
71
- function addEventListener<Ev extends Event>(
72
- element: Element,
73
- event: EventName,
74
- handler: Handler<Ev>
75
- ): void {
76
- if (handler.options?.capture === true) {
77
- return addListener(captureListeners, event, [element, handler])
78
- } else {
79
- return addListener(bubbleListeners, event, [element, handler])
80
- }
81
- }
82
-
83
- function setupBubbleListeners(element: Element, run: Run) {
84
- const disposables: Array<Disposable> = []
85
-
86
- for (const [event, sets] of bubbleListeners) {
87
- for (const handlers of sets) {
88
- if (handlers.size === 0) continue
89
- const listener = (ev: Event) =>
90
- run(
91
- Effect.forEach(
92
- handlers,
93
- ([el, { handler }]) => ev.target === el || el.contains(ev.target as Node) ? handler(ev) : Effect.void
94
- )
95
- )
96
-
97
- element.addEventListener(event, listener, getDerivedAddEventListenerOptions(handlers))
98
- disposables.push(disposable(() => element.removeEventListener(event, listener)))
99
- }
100
- }
101
-
102
- return disposables
103
- }
104
-
105
- function setupCaptureListeners(element: Element, run: Run) {
106
- const disposables: Array<Disposable> = []
107
-
108
- for (const [event, sets] of captureListeners) {
109
- for (const handlers of sets) {
110
- if (handlers.size === 0) continue
111
- const listener = (ev: Event) =>
112
- run(
113
- Effect.forEach(handlers, ([el, { handler }]) =>
114
- ev.target === el || el.contains(ev.target as Node)
115
- ? handler(proxyCurrentTargetForCaptureEvents(ev, el))
116
- : Effect.void)
117
- )
118
- element.addEventListener(event, listener, getDerivedAddEventListenerOptions(handlers))
119
- disposables.push(disposable(() => element.removeEventListener(event, listener)))
120
- }
121
- }
122
-
123
- return disposables
124
- }
125
-
126
- function setup(rendered: Rendered, scope: Scope.Scope) {
127
- const hasBubbleListeners = bubbleListeners.size > 0
128
- const hasCaptureListeners = captureListeners.size > 0
129
- const elements = getElements(rendered)
130
-
131
- if (elements.length === 0 || (!hasBubbleListeners && !hasCaptureListeners)) {
132
- return Effect.void
133
- }
134
-
135
- return Effect.flatMap(Effect.runtime<never>(), (runtime) => {
136
- const disposables: Array<Disposable> = []
137
- const fibers = new Map<symbol, Fiber.RuntimeFiber<any, any>>()
138
- const runFork = Runtime.runFork(runtime)
139
- const run: Run = <E, A>(effect: Effect.Effect<A, E>) => {
140
- const id = Symbol()
141
- const fiber = runFork(Effect.onExit(effect, () => Effect.sync(() => fibers.delete(id))))
142
- fibers.set(id, fiber)
143
- return fiber
144
- }
145
-
146
- for (const element of elements) {
147
- if (hasBubbleListeners) {
148
- disposables.push(...setupBubbleListeners(element, run))
149
- }
150
- if (hasCaptureListeners) {
151
- disposables.push(...setupCaptureListeners(element, run))
152
- }
153
- }
154
-
155
- return Scope.addFinalizer(
156
- scope,
157
- Effect.suspend(() => {
158
- disposables.forEach(dispose)
159
- if (fibers.size === 0) return Effect.void
160
- return Fiber.interruptAll(fibers.values())
161
- })
162
- )
163
- })
164
- }
165
-
166
- return {
167
- addEventListener,
168
- setup
169
- }
170
- }
171
-
172
- const EVENT_PROPERTY_TO_REPLACE = "currentTarget"
173
-
174
- function proxyCurrentTargetForCaptureEvents<E extends Event>(event: E, currentTarget: Element): E {
175
- return new Proxy(event, {
176
- get(target: E, property: string | symbol) {
177
- return property === EVENT_PROPERTY_TO_REPLACE ? currentTarget : target[property as keyof E]
178
- }
179
- })
180
- }
181
-
182
- function getDerivedAddEventListenerOptions(entries: Set<Entry>): AddEventListenerOptions {
183
- const hs = Array.from(entries)
184
- return {
185
- once: hs.every((h) => h[1].options?.once === true),
186
- passive: hs.every((h) => h[1].options?.passive === true)
187
- }
188
- }
@@ -1,22 +0,0 @@
1
- import { Tagged } from "@typed/context"
2
- import type { HydrationNode } from "./v2/hydration-template.js"
3
-
4
- /**
5
- * Used Internally to pass context down to components for hydration
6
- * @internal
7
- */
8
- export type HydrateContext = {
9
- readonly where: HydrationNode
10
-
11
- // Used to match sibling components using many() to the correct elements
12
- readonly manyKey?: string
13
-
14
- /**@internal */
15
- hydrate: boolean
16
- }
17
-
18
- /**
19
- * Used Internally to pass context down to components for hydration
20
- * @internal
21
- */
22
- export const HydrateContext = Tagged<HydrateContext>("@typed/html/HydrateContext")
@@ -1,138 +0,0 @@
1
- import { diffable, isComment } from "@typed/wire"
2
- import udomdiff from "udomdiff"
3
- import { isRenderEvent } from "../RenderEvent.js"
4
- import type { RenderQueue } from "../RenderQueue.js"
5
- import { convertCharacterEntities } from "./character-entities.js"
6
- import { NodePartImpl } from "./server-parts.js"
7
- import { findHoleComment, isCommentWithValue } from "./utils.js"
8
-
9
- export function makeRenderNodePart(
10
- index: number,
11
- parent: HTMLElement | SVGElement,
12
- queue: RenderQueue,
13
- document: Document,
14
- isHydrating: boolean
15
- ) {
16
- const comment = findHoleComment(parent, index)
17
- let text: Text | null = isHydrating ? getPreviousTextSibling(comment) : null
18
- let nodes = isHydrating ? findPreviousNodes(comment, index) : []
19
-
20
- return new NodePartImpl(index, ({ part, value }, priority) => {
21
- return queue.add(
22
- part,
23
- () => {
24
- matchValue(
25
- value,
26
- (content) => {
27
- if (text === null) {
28
- text = document.createTextNode("")
29
- }
30
- text.textContent = convertCharacterEntities(content)
31
-
32
- nodes = diffChildren(comment, nodes, [text], document)
33
- },
34
- (updatedNodes) => {
35
- nodes = diffChildren(comment, nodes, updatedNodes, document)
36
- }
37
- )
38
- },
39
- priority
40
- )
41
- }, nodes)
42
- }
43
-
44
- export function getPreviousTextSibling(node: Node | null) {
45
- if (!node) return null
46
-
47
- if (node && node.nodeType === node.TEXT_NODE) {
48
- // During hydration there should be a comment to separate these values
49
- if (
50
- node.previousSibling &&
51
- isComment(node.previousSibling) &&
52
- isCommentWithValue(node.previousSibling, "text")
53
- ) {
54
- return node as Text
55
- }
56
- }
57
-
58
- return null
59
- }
60
-
61
- export function notIsEmptyTextNode(node: Node) {
62
- if (node.nodeType === node.TEXT_NODE) {
63
- return node.nodeValue?.trim() === ""
64
- }
65
-
66
- return true
67
- }
68
-
69
- export function findPreviousNodes(comment: Comment, index: number) {
70
- const previousIndex = `hole${index - 1}`
71
-
72
- const nodes: Array<Node> = []
73
-
74
- let node = comment.previousSibling
75
- while (node && !isCommentWithValue(node, previousIndex) && !isCommentWithValue(node, "text")) {
76
- nodes.unshift(node)
77
- node = node.previousSibling
78
- }
79
-
80
- return nodes
81
- }
82
-
83
- export function diffChildren(
84
- comment: Comment,
85
- currentNodes: Array<Node>,
86
- nextNodes: Array<Node>,
87
- document: Document
88
- ) {
89
- return udomdiff(
90
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
91
- comment.parentNode!,
92
- // Document Fragments cannot be removed, so we filter them out
93
- currentNodes.filter((x) => x.nodeType !== x.DOCUMENT_FRAGMENT_NODE),
94
- nextNodes,
95
- diffable(document),
96
- comment
97
- )
98
- }
99
-
100
- function matchValue<A, B>(value: unknown, onText: (text: string) => A, onNodes: (nodes: Array<Node>) => B): A | B {
101
- switch (typeof value) {
102
- // primitives are handled as text content
103
- case "string":
104
- case "symbol":
105
- case "number":
106
- case "bigint":
107
- case "boolean":
108
- return onText(String(value))
109
- case "undefined":
110
- case "object": {
111
- if (!value) {
112
- return onNodes([])
113
- } else if (Array.isArray(value)) {
114
- // arrays can be used to cleanup, if empty
115
- if (value.length === 0) return onNodes([])
116
- // or diffed, if these contains nodes or "wires"
117
- else if (value.some((x) => typeof x === "object")) {
118
- return onNodes(value.flatMap(renderEventToArray))
119
- } // in all other cases the content is stringified as is
120
- else return onText(String(value))
121
- } else {
122
- return onNodes(renderEventToArray(value))
123
- }
124
- }
125
- case "function":
126
- return onNodes([])
127
- }
128
- }
129
-
130
- function renderEventToArray(x: unknown): Array<Node> {
131
- if (x === null || x === undefined) return []
132
- if (isRenderEvent(x)) {
133
- const value = x.valueOf()
134
- return Array.isArray(value) ? value : [value]
135
- }
136
-
137
- return [x as Node]
138
- }