@typed/template 0.14.0 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/README.md +121 -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 +298 -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 +29 -227
  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 +408 -0
  94. package/src/Parser.test.ts +923 -0
  95. package/src/Parser.ts +598 -10
  96. package/src/Render.test.ts +337 -0
  97. package/src/Render.ts +878 -63
  98. package/src/RenderEvent.ts +169 -40
  99. package/src/RenderQueue.ts +291 -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/Directive/package.json +0 -6
  120. package/ElementRef/package.json +0 -6
  121. package/ElementSource/package.json +0 -6
  122. package/Entry/package.json +0 -6
  123. package/EventHandler/package.json +0 -6
  124. package/Html/package.json +0 -6
  125. package/HtmlChunk/package.json +0 -6
  126. package/Hydrate/package.json +0 -6
  127. package/LICENSE +0 -21
  128. package/Many/package.json +0 -6
  129. package/Meta/package.json +0 -6
  130. package/Parser/package.json +0 -6
  131. package/Part/package.json +0 -6
  132. package/Placeholder/package.json +0 -6
  133. package/Platform/package.json +0 -6
  134. package/Render/package.json +0 -6
  135. package/RenderContext/package.json +0 -6
  136. package/RenderEvent/package.json +0 -6
  137. package/RenderQueue/package.json +0 -6
  138. package/RenderTemplate/package.json +0 -6
  139. package/Renderable/package.json +0 -6
  140. package/Template/package.json +0 -6
  141. package/Test/package.json +0 -6
  142. package/Vitest/package.json +0 -6
  143. package/compiler-tools/package.json +0 -6
  144. package/dist/cjs/Directive.js +0 -76
  145. package/dist/cjs/Directive.js.map +0 -1
  146. package/dist/cjs/ElementRef.js +0 -92
  147. package/dist/cjs/ElementRef.js.map +0 -1
  148. package/dist/cjs/ElementSource.js +0 -246
  149. package/dist/cjs/ElementSource.js.map +0 -1
  150. package/dist/cjs/Entry.js +0 -6
  151. package/dist/cjs/Entry.js.map +0 -1
  152. package/dist/cjs/EventHandler.js +0 -76
  153. package/dist/cjs/EventHandler.js.map +0 -1
  154. package/dist/cjs/Html.js +0 -224
  155. package/dist/cjs/Html.js.map +0 -1
  156. package/dist/cjs/HtmlChunk.js +0 -306
  157. package/dist/cjs/HtmlChunk.js.map +0 -1
  158. package/dist/cjs/Hydrate.js +0 -43
  159. package/dist/cjs/Hydrate.js.map +0 -1
  160. package/dist/cjs/Many.js +0 -66
  161. package/dist/cjs/Many.js.map +0 -1
  162. package/dist/cjs/Meta.js +0 -50
  163. package/dist/cjs/Meta.js.map +0 -1
  164. package/dist/cjs/Parser.js +0 -19
  165. package/dist/cjs/Parser.js.map +0 -1
  166. package/dist/cjs/Part.js +0 -6
  167. package/dist/cjs/Part.js.map +0 -1
  168. package/dist/cjs/Placeholder.js +0 -34
  169. package/dist/cjs/Placeholder.js.map +0 -1
  170. package/dist/cjs/Platform.js +0 -65
  171. package/dist/cjs/Platform.js.map +0 -1
  172. package/dist/cjs/Render.js +0 -50
  173. package/dist/cjs/Render.js.map +0 -1
  174. package/dist/cjs/RenderContext.js +0 -67
  175. package/dist/cjs/RenderContext.js.map +0 -1
  176. package/dist/cjs/RenderEvent.js +0 -52
  177. package/dist/cjs/RenderEvent.js.map +0 -1
  178. package/dist/cjs/RenderQueue.js +0 -343
  179. package/dist/cjs/RenderQueue.js.map +0 -1
  180. package/dist/cjs/RenderTemplate.js +0 -26
  181. package/dist/cjs/RenderTemplate.js.map +0 -1
  182. package/dist/cjs/Renderable.js +0 -6
  183. package/dist/cjs/Renderable.js.map +0 -1
  184. package/dist/cjs/Template.js +0 -305
  185. package/dist/cjs/Template.js.map +0 -1
  186. package/dist/cjs/Test.js +0 -184
  187. package/dist/cjs/Test.js.map +0 -1
  188. package/dist/cjs/Vitest.js +0 -52
  189. package/dist/cjs/Vitest.js.map +0 -1
  190. package/dist/cjs/compiler-tools.js +0 -100
  191. package/dist/cjs/compiler-tools.js.map +0 -1
  192. package/dist/cjs/index.js +0 -138
  193. package/dist/cjs/index.js.map +0 -1
  194. package/dist/cjs/internal/EventSource.js +0 -129
  195. package/dist/cjs/internal/EventSource.js.map +0 -1
  196. package/dist/cjs/internal/HydrateContext.js +0 -13
  197. package/dist/cjs/internal/HydrateContext.js.map +0 -1
  198. package/dist/cjs/internal/browser.js +0 -110
  199. package/dist/cjs/internal/browser.js.map +0 -1
  200. package/dist/cjs/internal/character-entities.js +0 -2141
  201. package/dist/cjs/internal/character-entities.js.map +0 -1
  202. package/dist/cjs/internal/chunks.js +0 -68
  203. package/dist/cjs/internal/chunks.js.map +0 -1
  204. package/dist/cjs/internal/errors.js +0 -52
  205. package/dist/cjs/internal/errors.js.map +0 -1
  206. package/dist/cjs/internal/indexRefCounter.js +0 -52
  207. package/dist/cjs/internal/indexRefCounter.js.map +0 -1
  208. package/dist/cjs/internal/module-augmentation.js +0 -6
  209. package/dist/cjs/internal/module-augmentation.js.map +0 -1
  210. package/dist/cjs/internal/parser.js +0 -568
  211. package/dist/cjs/internal/parser.js.map +0 -1
  212. package/dist/cjs/internal/parser2.js +0 -382
  213. package/dist/cjs/internal/parser2.js.map +0 -1
  214. package/dist/cjs/internal/server-parts.js +0 -124
  215. package/dist/cjs/internal/server-parts.js.map +0 -1
  216. package/dist/cjs/internal/server.js +0 -48
  217. package/dist/cjs/internal/server.js.map +0 -1
  218. package/dist/cjs/internal/utils.js +0 -136
  219. package/dist/cjs/internal/utils.js.map +0 -1
  220. package/dist/cjs/internal/v2/SyncPart.js +0 -6
  221. package/dist/cjs/internal/v2/SyncPart.js.map +0 -1
  222. package/dist/cjs/internal/v2/helpers.js +0 -15
  223. package/dist/cjs/internal/v2/helpers.js.map +0 -1
  224. package/dist/cjs/internal/v2/hydration-template.js +0 -269
  225. package/dist/cjs/internal/v2/hydration-template.js.map +0 -1
  226. package/dist/cjs/internal/v2/parts.js +0 -169
  227. package/dist/cjs/internal/v2/parts.js.map +0 -1
  228. package/dist/cjs/internal/v2/render-entry.js +0 -110
  229. package/dist/cjs/internal/v2/render-entry.js.map +0 -1
  230. package/dist/cjs/internal/v2/render-sync-parts.js +0 -318
  231. package/dist/cjs/internal/v2/render-sync-parts.js.map +0 -1
  232. package/dist/cjs/internal/v2/render.js +0 -592
  233. package/dist/cjs/internal/v2/render.js.map +0 -1
  234. package/dist/cjs/internal/v2/sync-parts.js +0 -115
  235. package/dist/cjs/internal/v2/sync-parts.js.map +0 -1
  236. package/dist/dts/Directive.d.ts +0 -70
  237. package/dist/dts/Directive.d.ts.map +0 -1
  238. package/dist/dts/ElementRef.d.ts +0 -42
  239. package/dist/dts/ElementRef.d.ts.map +0 -1
  240. package/dist/dts/ElementSource.d.ts +0 -79
  241. package/dist/dts/ElementSource.d.ts.map +0 -1
  242. package/dist/dts/Entry.d.ts +0 -26
  243. package/dist/dts/Entry.d.ts.map +0 -1
  244. package/dist/dts/EventHandler.d.ts +0 -73
  245. package/dist/dts/EventHandler.d.ts.map +0 -1
  246. package/dist/dts/Html.d.ts +0 -35
  247. package/dist/dts/Html.d.ts.map +0 -1
  248. package/dist/dts/HtmlChunk.d.ts +0 -56
  249. package/dist/dts/HtmlChunk.d.ts.map +0 -1
  250. package/dist/dts/Hydrate.d.ts +0 -19
  251. package/dist/dts/Hydrate.d.ts.map +0 -1
  252. package/dist/dts/Many.d.ts +0 -32
  253. package/dist/dts/Many.d.ts.map +0 -1
  254. package/dist/dts/Meta.d.ts +0 -33
  255. package/dist/dts/Meta.d.ts.map +0 -1
  256. package/dist/dts/Parser.d.ts +0 -13
  257. package/dist/dts/Parser.d.ts.map +0 -1
  258. package/dist/dts/Part.d.ts +0 -121
  259. package/dist/dts/Part.d.ts.map +0 -1
  260. package/dist/dts/Placeholder.d.ts +0 -48
  261. package/dist/dts/Placeholder.d.ts.map +0 -1
  262. package/dist/dts/Platform.d.ts +0 -21
  263. package/dist/dts/Platform.d.ts.map +0 -1
  264. package/dist/dts/Render.d.ts +0 -31
  265. package/dist/dts/Render.d.ts.map +0 -1
  266. package/dist/dts/RenderContext.d.ts +0 -70
  267. package/dist/dts/RenderContext.d.ts.map +0 -1
  268. package/dist/dts/RenderEvent.d.ts +0 -42
  269. package/dist/dts/RenderEvent.d.ts.map +0 -1
  270. package/dist/dts/RenderQueue.d.ts +0 -103
  271. package/dist/dts/RenderQueue.d.ts.map +0 -1
  272. package/dist/dts/RenderTemplate.d.ts +0 -25
  273. package/dist/dts/RenderTemplate.d.ts.map +0 -1
  274. package/dist/dts/Renderable.d.ts +0 -28
  275. package/dist/dts/Renderable.d.ts.map +0 -1
  276. package/dist/dts/Template.d.ts.map +0 -1
  277. package/dist/dts/Test.d.ts +0 -85
  278. package/dist/dts/Test.d.ts.map +0 -1
  279. package/dist/dts/Vitest.d.ts +0 -43
  280. package/dist/dts/Vitest.d.ts.map +0 -1
  281. package/dist/dts/compiler-tools.d.ts +0 -143
  282. package/dist/dts/compiler-tools.d.ts.map +0 -1
  283. package/dist/dts/index.d.ts +0 -65
  284. package/dist/dts/index.d.ts.map +0 -1
  285. package/dist/dts/internal/EventSource.d.ts +0 -13
  286. package/dist/dts/internal/EventSource.d.ts.map +0 -1
  287. package/dist/dts/internal/HydrateContext.d.ts +0 -2
  288. package/dist/dts/internal/HydrateContext.d.ts.map +0 -1
  289. package/dist/dts/internal/browser.d.ts +0 -8
  290. package/dist/dts/internal/browser.d.ts.map +0 -1
  291. package/dist/dts/internal/character-entities.d.ts +0 -2133
  292. package/dist/dts/internal/character-entities.d.ts.map +0 -1
  293. package/dist/dts/internal/chunks.d.ts +0 -23
  294. package/dist/dts/internal/chunks.d.ts.map +0 -1
  295. package/dist/dts/internal/errors.d.ts +0 -22
  296. package/dist/dts/internal/errors.d.ts.map +0 -1
  297. package/dist/dts/internal/indexRefCounter.d.ts +0 -7
  298. package/dist/dts/internal/indexRefCounter.d.ts.map +0 -1
  299. package/dist/dts/internal/module-augmentation.d.ts +0 -32
  300. package/dist/dts/internal/module-augmentation.d.ts.map +0 -1
  301. package/dist/dts/internal/parser.d.ts +0 -33
  302. package/dist/dts/internal/parser.d.ts.map +0 -1
  303. package/dist/dts/internal/parser2.d.ts +0 -12
  304. package/dist/dts/internal/parser2.d.ts.map +0 -1
  305. package/dist/dts/internal/server-parts.d.ts +0 -223
  306. package/dist/dts/internal/server-parts.d.ts.map +0 -1
  307. package/dist/dts/internal/server.d.ts +0 -5
  308. package/dist/dts/internal/server.d.ts.map +0 -1
  309. package/dist/dts/internal/utils.d.ts +0 -19
  310. package/dist/dts/internal/utils.d.ts.map +0 -1
  311. package/dist/dts/internal/v2/SyncPart.d.ts +0 -87
  312. package/dist/dts/internal/v2/SyncPart.d.ts.map +0 -1
  313. package/dist/dts/internal/v2/helpers.d.ts +0 -3
  314. package/dist/dts/internal/v2/helpers.d.ts.map +0 -1
  315. package/dist/dts/internal/v2/hydration-template.d.ts.map +0 -1
  316. package/dist/dts/internal/v2/parts.d.ts +0 -245
  317. package/dist/dts/internal/v2/parts.d.ts.map +0 -1
  318. package/dist/dts/internal/v2/render-entry.d.ts +0 -6
  319. package/dist/dts/internal/v2/render-entry.d.ts.map +0 -1
  320. package/dist/dts/internal/v2/render-sync-parts.d.ts +0 -22
  321. package/dist/dts/internal/v2/render-sync-parts.d.ts.map +0 -1
  322. package/dist/dts/internal/v2/render.d.ts +0 -83
  323. package/dist/dts/internal/v2/render.d.ts.map +0 -1
  324. package/dist/dts/internal/v2/sync-parts.d.ts +0 -129
  325. package/dist/dts/internal/v2/sync-parts.d.ts.map +0 -1
  326. package/dist/esm/Directive.js +0 -64
  327. package/dist/esm/Directive.js.map +0 -1
  328. package/dist/esm/ElementRef.js +0 -76
  329. package/dist/esm/ElementRef.js.map +0 -1
  330. package/dist/esm/ElementSource.js +0 -246
  331. package/dist/esm/ElementSource.js.map +0 -1
  332. package/dist/esm/Entry.js +0 -2
  333. package/dist/esm/Entry.js.map +0 -1
  334. package/dist/esm/EventHandler.js +0 -68
  335. package/dist/esm/EventHandler.js.map +0 -1
  336. package/dist/esm/Html.js +0 -230
  337. package/dist/esm/Html.js.map +0 -1
  338. package/dist/esm/HtmlChunk.js +0 -330
  339. package/dist/esm/HtmlChunk.js.map +0 -1
  340. package/dist/esm/Hydrate.js +0 -31
  341. package/dist/esm/Hydrate.js.map +0 -1
  342. package/dist/esm/Many.js +0 -54
  343. package/dist/esm/Many.js.map +0 -1
  344. package/dist/esm/Meta.js +0 -40
  345. package/dist/esm/Meta.js.map +0 -1
  346. package/dist/esm/Parser.js +0 -13
  347. package/dist/esm/Parser.js.map +0 -1
  348. package/dist/esm/Part.js +0 -5
  349. package/dist/esm/Part.js.map +0 -1
  350. package/dist/esm/Placeholder.js +0 -26
  351. package/dist/esm/Placeholder.js.map +0 -1
  352. package/dist/esm/Platform.js +0 -42
  353. package/dist/esm/Platform.js.map +0 -1
  354. package/dist/esm/Render.js +0 -36
  355. package/dist/esm/Render.js.map +0 -1
  356. package/dist/esm/RenderContext.js +0 -54
  357. package/dist/esm/RenderContext.js.map +0 -1
  358. package/dist/esm/RenderEvent.js +0 -43
  359. package/dist/esm/RenderEvent.js.map +0 -1
  360. package/dist/esm/RenderQueue.js +0 -338
  361. package/dist/esm/RenderQueue.js.map +0 -1
  362. package/dist/esm/RenderTemplate.js +0 -16
  363. package/dist/esm/RenderTemplate.js.map +0 -1
  364. package/dist/esm/Renderable.js +0 -2
  365. package/dist/esm/Renderable.js.map +0 -1
  366. package/dist/esm/Template.js.map +0 -1
  367. package/dist/esm/Test.js +0 -167
  368. package/dist/esm/Test.js.map +0 -1
  369. package/dist/esm/Vitest.js +0 -44
  370. package/dist/esm/Vitest.js.map +0 -1
  371. package/dist/esm/compiler-tools.js +0 -91
  372. package/dist/esm/compiler-tools.js.map +0 -1
  373. package/dist/esm/index.js +0 -65
  374. package/dist/esm/index.js.map +0 -1
  375. package/dist/esm/internal/EventSource.js +0 -126
  376. package/dist/esm/internal/EventSource.js.map +0 -1
  377. package/dist/esm/internal/HydrateContext.js +0 -7
  378. package/dist/esm/internal/HydrateContext.js.map +0 -1
  379. package/dist/esm/internal/browser.js +0 -103
  380. package/dist/esm/internal/browser.js.map +0 -1
  381. package/dist/esm/internal/character-entities.js +0 -2134
  382. package/dist/esm/internal/character-entities.js.map +0 -1
  383. package/dist/esm/internal/chunks.js +0 -60
  384. package/dist/esm/internal/chunks.js.map +0 -1
  385. package/dist/esm/internal/errors.js +0 -46
  386. package/dist/esm/internal/errors.js.map +0 -1
  387. package/dist/esm/internal/indexRefCounter.js +0 -47
  388. package/dist/esm/internal/indexRefCounter.js.map +0 -1
  389. package/dist/esm/internal/module-augmentation.js +0 -2
  390. package/dist/esm/internal/module-augmentation.js.map +0 -1
  391. package/dist/esm/internal/parser.js +0 -596
  392. package/dist/esm/internal/parser.js.map +0 -1
  393. package/dist/esm/internal/parser2.js +0 -393
  394. package/dist/esm/internal/parser2.js.map +0 -1
  395. package/dist/esm/internal/server-parts.js +0 -109
  396. package/dist/esm/internal/server-parts.js.map +0 -1
  397. package/dist/esm/internal/server.js +0 -22
  398. package/dist/esm/internal/server.js.map +0 -1
  399. package/dist/esm/internal/utils.js +0 -119
  400. package/dist/esm/internal/utils.js.map +0 -1
  401. package/dist/esm/internal/v2/SyncPart.js +0 -5
  402. package/dist/esm/internal/v2/SyncPart.js.map +0 -1
  403. package/dist/esm/internal/v2/helpers.js +0 -12
  404. package/dist/esm/internal/v2/helpers.js.map +0 -1
  405. package/dist/esm/internal/v2/hydration-template.js.map +0 -1
  406. package/dist/esm/internal/v2/parts.js +0 -150
  407. package/dist/esm/internal/v2/parts.js.map +0 -1
  408. package/dist/esm/internal/v2/render-entry.js +0 -102
  409. package/dist/esm/internal/v2/render-entry.js.map +0 -1
  410. package/dist/esm/internal/v2/render-sync-parts.js +0 -265
  411. package/dist/esm/internal/v2/render-sync-parts.js.map +0 -1
  412. package/dist/esm/internal/v2/render.js +0 -521
  413. package/dist/esm/internal/v2/render.js.map +0 -1
  414. package/dist/esm/internal/v2/sync-parts.js +0 -102
  415. package/dist/esm/internal/v2/sync-parts.js.map +0 -1
  416. package/dist/esm/package.json +0 -4
  417. package/src/Directive.ts +0 -114
  418. package/src/ElementRef.ts +0 -148
  419. package/src/ElementSource.ts +0 -510
  420. package/src/Entry.ts +0 -28
  421. package/src/Hydrate.ts +0 -51
  422. package/src/Many.ts +0 -161
  423. package/src/Meta.ts +0 -45
  424. package/src/Part.ts +0 -154
  425. package/src/Placeholder.ts +0 -78
  426. package/src/Platform.ts +0 -70
  427. package/src/RenderContext.ts +0 -121
  428. package/src/Test.ts +0 -354
  429. package/src/Vitest.ts +0 -141
  430. package/src/compiler-tools.ts +0 -250
  431. package/src/internal/EventSource.ts +0 -188
  432. package/src/internal/HydrateContext.ts +0 -22
  433. package/src/internal/browser.ts +0 -138
  434. package/src/internal/character-entities.ts +0 -2136
  435. package/src/internal/chunks.ts +0 -89
  436. package/src/internal/errors.ts +0 -49
  437. package/src/internal/external.d.ts +0 -11
  438. package/src/internal/indexRefCounter.ts +0 -54
  439. package/src/internal/module-augmentation.ts +0 -44
  440. package/src/internal/parser.ts +0 -757
  441. package/src/internal/parser2.ts +0 -468
  442. package/src/internal/server-parts.ts +0 -161
  443. package/src/internal/server.ts +0 -37
  444. package/src/internal/utils.ts +0 -153
  445. package/src/internal/v2/SyncPart.ts +0 -112
  446. package/src/internal/v2/helpers.ts +0 -13
  447. package/src/internal/v2/hydration-template.ts +0 -308
  448. package/src/internal/v2/parts.ts +0 -254
  449. package/src/internal/v2/render-entry.ts +0 -131
  450. package/src/internal/v2/render-sync-parts.ts +0 -440
  451. package/src/internal/v2/render.ts +0 -813
  452. package/src/internal/v2/sync-parts.ts +0 -133
package/src/Template.ts CHANGED
@@ -1,46 +1,79 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type { Chunk, NonEmptyChunk } from "effect/Chunk"
5
- import { type Inspectable, NodeInspectSymbol } from "effect/Inspectable"
6
-
7
- /**
8
- * @since 1.0.0
1
+ import { type Inspectable, NodeInspectSymbol } from "effect/Inspectable";
2
+
3
+ /**
4
+ * Represents a parsed HTML template.
5
+ *
6
+ * A `Template` instance contains the static structure of an HTML template (nodes)
7
+ * and metadata about dynamic parts (interpolation points).
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { parse } from "@typed/template/Parser"
12
+ * import * as Template from "@typed/template/Template"
13
+ *
14
+ * // Parse a template string
15
+ * const template = parse`<div>Hello ${"world"}</div>`
16
+ *
17
+ * // Access template structure
18
+ * console.log(template.nodes) // Array of parsed nodes
19
+ * console.log(template.parts) // Array of dynamic parts
20
+ * console.log(template.hash) // Unique hash for caching
21
+ * ```
22
+ *
23
+ * @since 1.0.0
24
+ * @category models
9
25
  */
10
26
  export class Template implements Inspectable {
11
- readonly _tag = "template"
27
+ readonly _tag = "template";
28
+
29
+ /**
30
+ * The root nodes of the template.
31
+ */
32
+ readonly nodes: ReadonlyArray<Node>;
33
+
34
+ /**
35
+ * A unique hash representing the template content. Used for caching and hydration.
36
+ */
37
+ readonly hash: string;
38
+
39
+ /**
40
+ * A list of dynamic parts in the template.
41
+ * Each part is associated with a path (array of indices) to locate the corresponding
42
+ * node in the DOM tree.
43
+ */
44
+ readonly parts: ReadonlyArray<readonly [part: PartNode | SparsePartNode, path: Array<number>]>;
12
45
 
13
46
  constructor(
14
- readonly nodes: ReadonlyArray<Node>,
15
- readonly hash: string,
16
- // Parts are a array of Parts to the respective path from the root node to access it prior to rendering
17
- /// any nodes/elements into the template.
18
- readonly parts: ReadonlyArray<
19
- readonly [part: PartNode | SparsePartNode, path: Chunk<number> | NonEmptyChunk<number>]
20
- >
21
- ) {}
47
+ nodes: ReadonlyArray<Node>,
48
+ hash: string,
49
+ parts: ReadonlyArray<readonly [part: PartNode | SparsePartNode, path: Array<number>]>,
50
+ ) {
51
+ this.nodes = nodes;
52
+ this.hash = hash;
53
+ this.parts = parts;
54
+ }
22
55
 
23
56
  toJSON() {
24
57
  return {
25
58
  _tag: "template",
26
59
  nodes: this.nodes,
27
60
  hash: this.hash,
28
- parts: this.parts.map(([part, path]) => [part, path.toJSON()])
29
- }
61
+ parts: this.parts,
62
+ };
30
63
  }
31
64
 
32
65
  [NodeInspectSymbol]() {
33
- return this.toJSON()
66
+ return this.toJSON();
34
67
  }
35
68
  }
36
69
 
37
70
  /**
38
- * @since 1.0.0
71
+ * Represents a node that can be a parent of other nodes in the template AST.
39
72
  */
40
- export type ParentNode = ElementNode | SelfClosingElementNode | TextOnlyElement
73
+ export type ParentNode = ElementNode | SelfClosingElementNode | TextOnlyElement;
41
74
 
42
75
  /**
43
- * @since 1.0.0
76
+ * Represents any node in the template AST.
44
77
  */
45
78
  export type Node =
46
79
  | ElementNode
@@ -49,10 +82,10 @@ export type Node =
49
82
  | TextNode
50
83
  | NodePart
51
84
  | Comment
52
- | DocType
85
+ | DocType;
53
86
 
54
87
  /**
55
- * @since 1.0.0
88
+ * Represents a dynamic part of the template that will be updated at runtime.
56
89
  */
57
90
  export type PartNode =
58
91
  | AttrPartNode
@@ -65,70 +98,93 @@ export type PartNode =
65
98
  | PropertiesPartNode
66
99
  | RefPartNode
67
100
  | TextPartNode
68
- | CommentPartNode
101
+ | CommentPartNode;
69
102
 
70
103
  /**
71
- * @since 1.0.0
104
+ * Represents a "sparse" part, which is a text or attribute value composed of
105
+ * mix of static text and dynamic parts (e.g. `id="prefix-${id}"`).
72
106
  */
73
- export type SparsePartNode = SparseAttrNode | SparseClassNameNode | SparseCommentNode
107
+ export type SparsePartNode =
108
+ | SparseAttrNode
109
+ | SparseClassNameNode
110
+ | SparseCommentNode
111
+ | SparseTextNode;
74
112
 
75
113
  /**
76
- * @since 1.0.0
114
+ * Represents an HTML element with children.
77
115
  */
78
116
  export class ElementNode {
79
- readonly _tag = "element"
80
- constructor(
81
- readonly tagName: string,
82
- readonly attributes: Array<Attribute>,
83
- readonly children: Array<Node>
84
- ) {}
117
+ readonly _tag = "element";
118
+ readonly tagName: string;
119
+ readonly attributes: Array<Attribute>;
120
+ readonly children: Array<Node>;
121
+ constructor(tagName: string, attributes: Array<Attribute>, children: Array<Node>) {
122
+ this.tagName = tagName;
123
+ this.attributes = attributes;
124
+ this.children = children;
125
+ }
85
126
  }
86
127
 
87
128
  /**
88
- * @since 1.0.0
129
+ * Represents a dynamic insertion point within the node structure (e.g. `<div>${content}</div>`).
89
130
  */
90
131
  export class NodePart {
91
- readonly _tag = "node"
92
- constructor(readonly index: number) {}
132
+ readonly _tag = "node";
133
+ /**
134
+ * The index of the value in the interpolation array.
135
+ */
136
+ readonly index: number;
137
+ constructor(index: number) {
138
+ this.index = index;
139
+ }
93
140
  }
94
141
 
95
142
  /**
96
- * @since 1.0.0
143
+ * Represents a self-closing HTML element (e.g. `<br />`, `<img />`).
97
144
  */
98
145
  export class SelfClosingElementNode {
99
- readonly _tag = "self-closing-element"
100
- constructor(
101
- readonly tagName: string,
102
- readonly attributes: Array<Attribute>
103
- ) {}
146
+ readonly _tag = "self-closing-element";
147
+ readonly tagName: string;
148
+ readonly attributes: Array<Attribute>;
149
+ constructor(tagName: string, attributes: Array<Attribute>) {
150
+ this.tagName = tagName;
151
+ this.attributes = attributes;
152
+ }
104
153
  }
105
154
 
106
155
  /**
107
- * @since 1.0.0
156
+ * Represents an element that contains only text (e.g. `<script>`, `<style>`).
108
157
  */
109
158
  export class TextOnlyElement {
110
- readonly _tag = "text-only-element"
111
- constructor(
112
- readonly tagName: string,
113
- readonly attributes: Array<Attribute>,
114
- readonly children: Array<Text>
115
- ) {}
159
+ readonly _tag = "text-only-element";
160
+
161
+ readonly tagName: string;
162
+ readonly attributes: Array<Attribute>;
163
+ readonly textContent: Text | null;
164
+ constructor(tagName: string, attributes: Array<Attribute>, textContent: Text | null) {
165
+ this.tagName = tagName;
166
+ this.attributes = attributes;
167
+ this.textContent = textContent;
168
+ }
116
169
  }
117
170
 
118
171
  /**
119
- * @since 1.0.0
172
+ * Represents a DOCTYPE declaration.
120
173
  */
121
174
  export class DocType {
122
- readonly _tag = "doctype"
123
- constructor(
124
- readonly name: string,
125
- readonly publicType?: string,
126
- readonly systemId?: string
127
- ) {}
175
+ readonly _tag = "doctype";
176
+ readonly name: string;
177
+ readonly publicId: string | undefined;
178
+ readonly systemId: string | undefined;
179
+ constructor(name: string, publicType?: string, systemId?: string) {
180
+ this.name = name;
181
+ this.publicId = publicType;
182
+ this.systemId = systemId;
183
+ }
128
184
  }
129
185
 
130
186
  /**
131
- * @since 1.0.0
187
+ * Represents an attribute on an element.
132
188
  */
133
189
  export type Attribute =
134
190
  | AttributeNode
@@ -136,192 +192,237 @@ export type Attribute =
136
192
  | SparseAttrNode
137
193
  | BooleanNode
138
194
  | BooleanPartNode
139
- | ClassNameNode
195
+ | ClassNamePartNode
140
196
  | SparseClassNameNode
141
197
  | DataPartNode
142
198
  | EventPartNode
143
199
  | PropertyPartNode
144
200
  | PropertiesPartNode
145
- | RefPartNode
201
+ | RefPartNode;
146
202
 
147
203
  /**
148
- * @since 1.0.0
204
+ * Represents a static attribute (e.g. `class="foo"`).
149
205
  */
150
206
  export class AttributeNode {
151
- readonly _tag = "attribute" as const
152
- constructor(
153
- readonly name: string,
154
- readonly value: string
155
- ) {}
207
+ readonly _tag = "attribute" as const;
208
+ readonly name: string;
209
+ readonly value: string;
210
+ constructor(name: string, value: string) {
211
+ this.name = name;
212
+ this.value = value;
213
+ }
156
214
  }
157
215
 
158
216
  /**
159
- * @since 1.0.0
217
+ * Represents a dynamic attribute (e.g. `src="${url}"`).
160
218
  */
161
219
  export class AttrPartNode {
162
- readonly _tag = "attr" as const
163
- constructor(
164
- readonly name: string,
165
- readonly index: number
166
- ) {}
220
+ readonly _tag = "attr" as const;
221
+ readonly name: string;
222
+ readonly index: number;
223
+ constructor(name: string, index: number) {
224
+ this.name = name;
225
+ this.index = index;
226
+ }
167
227
  }
168
228
 
169
229
  /**
170
- * @since 1.0.0
230
+ * Represents a sparse attribute (e.g. `class="foo ${bar}"`).
171
231
  */
172
232
  export class SparseAttrNode {
173
- readonly _tag = "sparse-attr" as const
174
- constructor(
175
- readonly name: string,
176
- readonly nodes: Array<AttrPartNode | TextNode>
177
- ) {}
233
+ readonly _tag = "sparse-attr" as const;
234
+ readonly name: string;
235
+ readonly nodes: Array<AttrPartNode | TextNode>;
236
+ constructor(name: string, nodes: Array<AttrPartNode | TextNode>) {
237
+ this.name = name;
238
+ this.nodes = nodes;
239
+ }
178
240
  }
179
241
 
180
242
  /**
181
- * @since 1.0.0
243
+ * Represents a boolean attribute (e.g. `disabled`).
182
244
  */
183
245
  export class BooleanNode {
184
- readonly _tag = "boolean" as const
185
- constructor(readonly name: string) {}
246
+ readonly _tag = "boolean" as const;
247
+ readonly name: string;
248
+ constructor(name: string) {
249
+ this.name = name;
250
+ }
186
251
  }
187
252
 
188
253
  /**
189
- * @since 1.0.0
254
+ * Represents a dynamic boolean attribute (e.g. `?disabled="${isDisabled}"`).
190
255
  */
191
256
  export class BooleanPartNode {
192
- readonly _tag = "boolean-part" as const
193
- constructor(
194
- readonly name: string,
195
- readonly index: number
196
- ) {}
257
+ readonly _tag = "boolean-part" as const;
258
+ readonly name: string;
259
+ readonly index: number;
260
+ constructor(name: string, index: number) {
261
+ this.name = name;
262
+ this.index = index;
263
+ }
197
264
  }
198
-
199
265
  /**
200
- * @since 1.0.0
201
- */
202
- export type ClassNameNode = TextNode | ClassNamePartNode
203
-
204
- /**
205
- * @since 1.0.0
266
+ * Represents a dynamic class name part (e.g. `class="${classes}"`).
206
267
  */
207
268
  export class ClassNamePartNode {
208
- readonly _tag = "className-part" as const
209
- constructor(readonly index: number) {}
269
+ readonly _tag = "className-part" as const;
270
+ readonly index: number;
271
+ constructor(index: number) {
272
+ this.index = index;
273
+ }
210
274
  }
211
275
 
212
276
  /**
213
- * @since 1.0.0
277
+ * Represents a sparse class name (e.g. `class="foo ${bar}"`).
214
278
  */
215
279
  export class SparseClassNameNode {
216
- readonly _tag = "sparse-class-name" as const
280
+ readonly _tag = "sparse-class-name" as const;
217
281
 
218
- constructor(readonly nodes: Array<ClassNameNode>) {}
282
+ readonly nodes: Array<ClassNamePartNode | TextNode>;
283
+ constructor(nodes: Array<ClassNamePartNode | TextNode>) {
284
+ this.nodes = nodes;
285
+ }
219
286
  }
220
287
 
221
288
  /**
222
- * @since 1.0.0
289
+ * Represents a data attribute part (e.g. `data-foo="${value}"`).
223
290
  */
224
291
  export class DataPartNode {
225
- readonly _tag = "data" as const
292
+ readonly _tag = "data" as const;
226
293
 
227
- constructor(readonly index: number) {}
294
+ readonly index: number;
295
+ constructor(index: number) {
296
+ this.index = index;
297
+ }
228
298
  }
229
299
 
230
300
  /**
231
- * @since 1.0.0
301
+ * Represents an event listener part (e.g. `@click="${handler}"`).
232
302
  */
233
303
  export class EventPartNode {
234
- readonly _tag = "event" as const
235
-
236
- constructor(
237
- readonly name: string,
238
- readonly index: number
239
- ) {}
304
+ readonly _tag = "event" as const;
305
+ readonly name: string;
306
+ readonly index: number;
307
+ constructor(name: string, index: number) {
308
+ this.name = name;
309
+ this.index = index;
310
+ }
240
311
  }
241
312
 
242
313
  /**
243
- * @since 1.0.0
314
+ * Represents a property assignment (e.g. `.value="${value}"`).
244
315
  */
245
316
  export class PropertyPartNode {
246
- readonly _tag = "property" as const
247
-
248
- constructor(
249
- readonly name: string,
250
- readonly index: number
251
- ) {}
317
+ readonly _tag = "property" as const;
318
+ readonly name: string;
319
+ readonly index: number;
320
+ constructor(name: string, index: number) {
321
+ this.name = name;
322
+ this.index = index;
323
+ }
252
324
  }
253
325
 
254
326
  /**
255
- * @since 1.0.0
327
+ * Represents a spread of properties (e.g. `${...props}`).
256
328
  */
257
329
  export class PropertiesPartNode {
258
- readonly _tag = "properties" as const
259
-
260
- constructor(
261
- readonly index: number
262
- ) {}
330
+ readonly _tag = "properties" as const;
331
+ readonly index: number;
332
+ constructor(index: number) {
333
+ this.index = index;
334
+ }
263
335
  }
264
336
 
265
337
  /**
266
- * @since 1.0.0
338
+ * Represents a reference capture (e.g. `ref="${ref}"`).
267
339
  */
268
340
  export class RefPartNode {
269
- readonly _tag = "ref" as const
341
+ readonly _tag = "ref" as const;
270
342
 
271
- constructor(readonly index: number) {}
343
+ readonly index: number;
344
+ constructor(index: number) {
345
+ this.index = index;
346
+ }
272
347
  }
273
348
 
274
349
  /**
275
- * @since 1.0.0
350
+ * Represents text content.
276
351
  */
277
- export type Text = TextNode | TextPartNode
352
+ export type Text = TextNode | TextPartNode | SparseTextNode;
278
353
 
279
354
  /**
280
- * @since 1.0.0
355
+ * Represents a static text node.
281
356
  */
282
357
  export class TextNode {
283
- readonly _tag = "text" as const
358
+ readonly _tag = "text" as const;
284
359
 
285
- constructor(readonly value: string) {}
360
+ readonly value: string;
361
+ constructor(value: string) {
362
+ this.value = value;
363
+ }
286
364
  }
287
365
 
288
366
  /**
289
- * @since 1.0.0
367
+ * Represents a dynamic text part (e.g. `${text}`).
290
368
  */
291
369
  export class TextPartNode {
292
- readonly _tag = "text-part" as const
370
+ readonly _tag = "text-part" as const;
293
371
 
294
- constructor(readonly index: number) {}
372
+ readonly index: number;
373
+ constructor(index: number) {
374
+ this.index = index;
375
+ }
295
376
  }
296
377
 
297
378
  /**
298
- * @since 1.0.0
379
+ * Represents sparse text content (e.g. `Hello ${name}!`).
299
380
  */
300
- export type Comment = CommentNode | CommentPartNode | SparseCommentNode
381
+ export class SparseTextNode {
382
+ readonly _tag = "sparse-text" as const;
383
+ readonly nodes: Array<TextNode | TextPartNode>;
384
+ constructor(nodes: Array<TextNode | TextPartNode>) {
385
+ this.nodes = nodes;
386
+ }
387
+ }
301
388
 
302
389
  /**
303
- * @since 1.0.0
390
+ * Represents a comment node.
391
+ */
392
+ export type Comment = CommentNode | CommentPartNode | SparseCommentNode;
393
+
394
+ /**
395
+ * Represents a static comment.
304
396
  */
305
397
  export class CommentNode {
306
- readonly _tag = "comment" as const
398
+ readonly _tag = "comment" as const;
307
399
 
308
- constructor(readonly value: string) {}
400
+ readonly value: string;
401
+ constructor(value: string) {
402
+ this.value = value;
403
+ }
309
404
  }
310
405
 
311
406
  /**
312
- * @since 1.0.0
407
+ * Represents a dynamic comment part.
313
408
  */
314
409
  export class CommentPartNode {
315
- readonly _tag = "comment-part" as const
410
+ readonly _tag = "comment-part" as const;
316
411
 
317
- constructor(readonly index: number) {}
412
+ readonly index: number;
413
+ constructor(index: number) {
414
+ this.index = index;
415
+ }
318
416
  }
319
417
 
320
418
  /**
321
- * @since 1.0.0
419
+ * Represents a sparse comment.
322
420
  */
323
421
  export class SparseCommentNode {
324
- readonly _tag = "sparse-comment" as const
422
+ readonly _tag = "sparse-comment" as const;
325
423
 
326
- constructor(readonly nodes: Array<TextNode | CommentPartNode>) {}
424
+ readonly nodes: Array<TextNode | CommentPartNode>;
425
+ constructor(nodes: Array<TextNode | CommentPartNode>) {
426
+ this.nodes = nodes;
427
+ }
327
428
  }