@typed/template 0.13.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 -223
  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 -383
  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 -242
  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 -66
  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 -341
  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 -77
  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 -240
  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 -43
  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 -336
  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 -126
  420. package/src/ElementSource.ts +0 -432
  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 -71
  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,568 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TEXT_ONLY_NODES_REGEX = exports.SELF_CLOSING_TAGS = exports.PathStack = void 0;
7
- exports.parse = parse;
8
- exports.parseTextAndParts = parseTextAndParts;
9
- exports.parser = void 0;
10
- exports.templateHash = templateHash;
11
- exports.templateWithParts = templateWithParts;
12
- exports.unsafeParsePartIndex = unsafeParsePartIndex;
13
- var Chunk = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Chunk"));
14
- var _GlobalValue = /*#__PURE__*/require("effect/GlobalValue");
15
- var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
16
- var Template = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("../Template.js"));
17
- var _characterEntities = /*#__PURE__*/require("./character-entities.js");
18
- var _chunks = /*#__PURE__*/require("./chunks.js");
19
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
- // TODO: Consider ways to surface useful errors and warnings.
22
- // TODO: Profile for performance optimization
23
- /**
24
- * @since 1.0.0
25
- */
26
- const TEXT_ONLY_NODES_REGEX = exports.TEXT_ONLY_NODES_REGEX = /*#__PURE__*/new Set(["textarea", "script", "style", "title", "plaintext", "xmp"]);
27
- /**
28
- * @since 1.0.0
29
- */
30
- const SELF_CLOSING_TAGS = exports.SELF_CLOSING_TAGS = /*#__PURE__*/new Set(["area", "base", "br", "col", "command", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
31
- const VALID_PROPS_NAMES = /*#__PURE__*/new Set(["props", "properties",
32
- // First "." will already be matched
33
- ".."]);
34
- function parse(templateStrings) {
35
- return parser.parse(templateStrings);
36
- }
37
- const SPACE_REGEX = /\s/;
38
- const PART_START = "{{__PART";
39
- const PART_END = "__}}";
40
- const chars = {
41
- openBracket: "{",
42
- closeBracket: "}",
43
- underscore: "_",
44
- equals: "=",
45
- quote: `"`,
46
- singleQuote: "'",
47
- slash: "/",
48
- greaterThan: ">",
49
- lessThan: "<",
50
- hypen: "-",
51
- dot: "."
52
- };
53
- const isPartToken = (input, pos) => input[pos] === chars.openBracket && input.slice(pos, pos + 8) === PART_START;
54
- const isPartEndToken = (input, pos) => input[pos] === chars.underscore && input.slice(pos, pos + 4) === PART_END;
55
- const isElementOpenToken = (input, pos) => input[pos] === chars.lessThan && input[pos + 1] !== chars.slash;
56
- const isElementCloseToken = (input, pos) => input[pos] === chars.lessThan && input[pos + 1] === chars.slash;
57
- const isEqualsToken = (input, pos) => input[pos] === chars.equals;
58
- const isQuoteToken = (input, pos) => input[pos] === chars.quote;
59
- const isSingleQuoteToken = (input, pos) => input[pos] === chars.singleQuote;
60
- const isWhitespaceToken = (input, pos) => SPACE_REGEX.test(input[pos]);
61
- const isOpenTagEndToken = (input, pos) => input[pos] === chars.greaterThan;
62
- const isSelfClosingTagEndToken = (input, pos) => input[pos] === chars.slash && input[pos + 1] === chars.greaterThan;
63
- const isCommentEndToken = (input, pos) => input[pos] === chars.hypen && input[pos + 1] === chars.hypen && input[pos + 2] === chars.greaterThan;
64
- const isGreaterThanToken = (input, pos) => input[pos] === chars.greaterThan;
65
- const Continue = a => ["continue", a];
66
- const Break = a => ["break", Option.fromNullable(a)];
67
- const Skip = ["skip"];
68
- const BREAK_ATTR = /*#__PURE__*/Break();
69
- const tagNameMatches = {
70
- whitespace: isWhitespaceToken,
71
- openTagEnd: isOpenTagEndToken,
72
- selfClosingTagEnd: isSelfClosingTagEndToken
73
- };
74
- const attributeMatches = {
75
- whitespace: isWhitespaceToken,
76
- equals: isEqualsToken,
77
- openTagEnd: isOpenTagEndToken,
78
- selfClosingTagEnd: isSelfClosingTagEndToken
79
- };
80
- const attributeValueMatches = {
81
- base: isWhitespaceToken,
82
- openTagEnd: isOpenTagEndToken,
83
- selfClosingTagEnd: isSelfClosingTagEndToken
84
- };
85
- const textChildMatches = {
86
- part: isPartToken,
87
- elementOpen: isElementOpenToken,
88
- elementClose: isElementCloseToken
89
- };
90
- class PathStack {
91
- chunk = Chunk.empty();
92
- count = 0;
93
- inc() {
94
- this.count++;
95
- }
96
- push() {
97
- this.chunk = this.toChunk();
98
- this.count = 0;
99
- }
100
- pop() {
101
- this.count = Chunk.unsafeLast(this.chunk);
102
- this.chunk = Chunk.dropRight(this.chunk, 1);
103
- }
104
- toChunk() {
105
- if (Chunk.isEmpty(this.chunk)) {
106
- return Chunk.of(this.count);
107
- }
108
- return Chunk.append(this.chunk, this.count);
109
- }
110
- previousChunk() {
111
- return this.chunk;
112
- }
113
- }
114
- exports.PathStack = PathStack;
115
- const predicatesCache = /*#__PURE__*/new WeakMap();
116
- function getPredicatesCache(predicates) {
117
- const cached = predicatesCache.get(predicates);
118
- if (cached === undefined) {
119
- const keys = Object.keys(predicates);
120
- const length = keys.length;
121
- const toCache = [keys, length];
122
- predicatesCache.set(predicates, toCache);
123
- return toCache;
124
- } else {
125
- return cached;
126
- }
127
- }
128
- class ParserImpl {
129
- context;
130
- input;
131
- length;
132
- parts;
133
- pos;
134
- path;
135
- _skipWhitespace;
136
- parse(templateStrings) {
137
- this.init(templateStrings);
138
- return this.parseTemplate(templateHash(templateStrings));
139
- }
140
- parseTemplate(hash) {
141
- return new Template.Template(this.parseTemplateChildren(), hash, this.parts);
142
- }
143
- parseTemplateChildren() {
144
- const nodes = [];
145
- while (this.pos < this.length) {
146
- const node = this.parseNodeFromContext(this.context);
147
- if (node === undefined) {
148
- return nodes;
149
- } else {
150
- nodes.push(...node);
151
- }
152
- }
153
- return nodes;
154
- }
155
- parseNodeFromContext(ctx) {
156
- if (ctx === "element") {
157
- return [this.parseElement()];
158
- } else {
159
- return this.parseUnknown();
160
- }
161
- }
162
- parseUnknown() {
163
- if (this.nextChar() === "<") {
164
- // Open tag / comment / self-closing tag
165
- return this.openBracket();
166
- } else {
167
- return this.unknownChunk();
168
- }
169
- }
170
- openBracket() {
171
- this.consumeAmount(1);
172
- this.skipWhitespace();
173
- const nextChar = this.nextChar();
174
- if (nextChar === "!") {
175
- // Comment
176
- this.consumeAmount(1);
177
- const nextChar = this.nextChar();
178
- if (nextChar == "-") {
179
- this.consumeAmount(2);
180
- return [this.parseComment()];
181
- } else if (nextChar.toLowerCase() === "d") {
182
- return [this.parseDocType()];
183
- } else {
184
- throw new SyntaxError(`Unknown comment type ${nextChar}`);
185
- }
186
- } else if (nextChar === "/") {
187
- // Self-closing tag
188
- return this.selfClosingTagEnd();
189
- } else {
190
- // Elements
191
- return [this.parseElement()];
192
- }
193
- }
194
- selfClosingTagEnd() {
195
- this.consumeAmount(1);
196
- this.parseTagName();
197
- this.skipWhitespace();
198
- this.consumeAmount(1);
199
- this.context = "unknown";
200
- return undefined;
201
- }
202
- unknownChunk() {
203
- let next;
204
- if (next = this.chunk(_chunks.getPart)) {
205
- // Parts
206
- this._skipWhitespace = false;
207
- return [this.addPartWithPrevious(new Template.NodePart(parseInt(next.match[2], 10)))];
208
- } else if (next = this.chunk(_chunks.getWhitespace)) {
209
- // Whitespace
210
- return this._skipWhitespace ? [] : (this.path.inc(), [new Template.TextNode((0, _characterEntities.convertCharacterEntities)(next.match[1]))]);
211
- } else if (next = this.chunk(_chunks.getTextUntilCloseBrace)) {
212
- // Text and parts
213
- return parseTextAndParts(next.match[1], i => this.addPartWithPrevious(new Template.NodePart(i)));
214
- } else {
215
- this.path.inc();
216
- return [new Template.TextNode((0, _characterEntities.convertCharacterEntities)(this.nextChar()))];
217
- }
218
- }
219
- parseElement() {
220
- const node = this.parseElementKind();
221
- this.path.inc();
222
- this.context = "unknown";
223
- this._skipWhitespace = true;
224
- return node;
225
- }
226
- parseElementKind() {
227
- this.context = "element";
228
- const [tagName, matched] = this.parseTagName();
229
- if (matched === "whitespace") {
230
- this.skipWhitespace();
231
- }
232
- if (SELF_CLOSING_TAGS.has(tagName)) {
233
- return this.parseSelfClosingElement(tagName);
234
- } else if (TEXT_ONLY_NODES_REGEX.has(tagName)) {
235
- return this.parseTextOnlyElement(tagName);
236
- } else {
237
- const attributes = this.parseAttributes();
238
- this.path.push();
239
- const children = this.parseTemplateChildren();
240
- this.path.pop();
241
- const element = new Template.ElementNode(tagName, attributes, children);
242
- this.skipWhitespace();
243
- this.consumeClosingTag(tagName);
244
- return element;
245
- }
246
- }
247
- consumeClosingTag(tagName) {
248
- this.chunk((0, _chunks.getClosingTagName)(tagName));
249
- }
250
- parseSelfClosingElement(tagName) {
251
- const attributes = this.parseAttributes();
252
- return new Template.SelfClosingElementNode(tagName, attributes);
253
- }
254
- parseTextOnlyElement(tagName) {
255
- const attributes = this.parseAttributes();
256
- this.path.push();
257
- const children = this.parseTextChildren(tagName);
258
- this.path.pop();
259
- return new Template.TextOnlyElement(tagName, attributes, children || []);
260
- }
261
- parseComment() {
262
- const text = this.parseTextUntil(isCommentEndToken);
263
- this.consumeAmount(3);
264
- const textAndParts = parseTextAndParts(text, i => new Template.CommentPartNode(i));
265
- if (textAndParts.length === 1) {
266
- const part = textAndParts[0];
267
- if (part._tag === "text") {
268
- return new Template.CommentNode(part.value);
269
- } else {
270
- return this.addPart(new Template.CommentPartNode(part.index));
271
- }
272
- }
273
- return this.addPart(new Template.SparseCommentNode(textAndParts));
274
- }
275
- parseDocType() {
276
- this.parseTextUntil(isGreaterThanToken);
277
- this.consumeAmount(1);
278
- this.skipWhitespace();
279
- return new Template.DocType("html");
280
- }
281
- parseTagName() {
282
- return this.parseTextUntilMany(tagNameMatches);
283
- }
284
- parseAttributes() {
285
- return this.parseArray(() => this.parseAttribute()) || [];
286
- }
287
- parseAttribute() {
288
- const [name, matched] = this.parseTextUntilMany(attributeMatches);
289
- switch (matched) {
290
- case null:
291
- return Skip;
292
- case "whitespace":
293
- this.skipWhitespace();
294
- return Continue([this.parseBooleanNode(name)]);
295
- case "equals":
296
- {
297
- this.consumeAmount(1);
298
- return Continue([this.parseAttributeValue(name)]);
299
- }
300
- case "openTagEnd":
301
- {
302
- this.consumeAmount(1);
303
- this.context = "unknown";
304
- return Break(name ? [this.parseBooleanNode(name)] : undefined);
305
- }
306
- case "selfClosingTagEnd":
307
- {
308
- this.consumeAmount(2);
309
- this.context = "unknown";
310
- return BREAK_ATTR;
311
- }
312
- }
313
- }
314
- parseAttributeValue(name) {
315
- this.skipWhitespace();
316
- const nextChar = this.nextChar();
317
- const isDoubleQuoted = nextChar === `"`;
318
- const isSingleQuoted = nextChar === "'";
319
- const isQuoted = isDoubleQuoted || isSingleQuoted;
320
- if (isQuoted) {
321
- attributeValueMatches.base = isDoubleQuoted ? isQuoteToken : isSingleQuoteToken;
322
- this.consumeAmount(1);
323
- } else {
324
- attributeValueMatches.base = isWhitespaceToken;
325
- }
326
- const matched = this.parseTextUntilMany(attributeValueMatches);
327
- const text = matched[0];
328
- if (isQuoted) {
329
- this.consumeAmount(1);
330
- }
331
- this.skipWhitespace();
332
- if (text === "") {
333
- return this.parseBooleanNode(name);
334
- }
335
- switch (name[0]) {
336
- case "?":
337
- return this.addPart(new Template.BooleanPartNode(name.slice(1), unsafeParsePartIndex(text)));
338
- case ".":
339
- {
340
- const property = name.slice(1);
341
- if (property === "data") {
342
- return this.addPart(new Template.DataPartNode(unsafeParsePartIndex(text)));
343
- } else if (VALID_PROPS_NAMES.has(property)) {
344
- return this.addPart(new Template.PropertiesPartNode(unsafeParsePartIndex(text)));
345
- } else {
346
- return this.addPart(new Template.PropertyPartNode(property, unsafeParsePartIndex(text)));
347
- }
348
- }
349
- case "@":
350
- return this.addPart(new Template.EventPartNode(name.slice(1), unsafeParsePartIndex(text)));
351
- case "o":
352
- {
353
- if (name[1] === "n") {
354
- return this.addPart(new Template.EventPartNode(name.slice(2), unsafeParsePartIndex(text)));
355
- }
356
- }
357
- }
358
- const lowerCaseName = name.toLowerCase();
359
- if (lowerCaseName === "ref") {
360
- return this.addPart(new Template.RefPartNode(unsafeParsePartIndex(text)));
361
- }
362
- const isClass = lowerCaseName === "class" || lowerCaseName === "classname";
363
- const textAndParts = parseTextAndParts(text, i => isClass ? new Template.ClassNamePartNode(i) : new Template.AttrPartNode(name, i));
364
- if (textAndParts.length === 1) {
365
- const part = textAndParts[0];
366
- if (part._tag === "text") {
367
- return new Template.AttributeNode(name, part.value);
368
- } else {
369
- return this.addPart(isClass ? new Template.ClassNamePartNode(part.index) : new Template.AttrPartNode(name, part.index));
370
- }
371
- }
372
- return this.addPart(isClass ? new Template.SparseClassNameNode(
373
- // We don't need empty text spaces to generate the correct class namesq
374
- textAndParts.filter(t => t._tag === "text" ? t.value.trim().length > 0 : true)) : new Template.SparseAttrNode(name, textAndParts));
375
- }
376
- parseBooleanNode(name) {
377
- if (isSpread(name)) {
378
- return this.addPart(new Template.PropertiesPartNode(unsafeParsePartIndex(name.slice(3))));
379
- } else {
380
- return new Template.BooleanNode(name);
381
- }
382
- }
383
- parseTextChildren(tagName) {
384
- return this.parseArray(() => this.parseTextChild(tagName));
385
- }
386
- parseTextChild(tagName) {
387
- const [parsed, matched] = this.parseTextUntilMany(textChildMatches);
388
- const text = parsed.trim();
389
- switch (matched) {
390
- case null:
391
- return Skip;
392
- case "part":
393
- {
394
- this.consumeAmount(8);
395
- const part = this.parsePartToken(i => this.addPartWithPrevious(new Template.TextPartNode(i)));
396
- return text === "" ? Continue([part]) : Continue([new Template.TextNode((0, _characterEntities.convertCharacterEntities)(text)), part]);
397
- }
398
- case "elementClose":
399
- {
400
- this.consumeClosingTag(tagName);
401
- return Break(text ? [new Template.TextNode((0, _characterEntities.convertCharacterEntities)(text))] : undefined);
402
- }
403
- case "elementOpen":
404
- // In this case we make the assumption that you forgot to close this element
405
- return Break(text ? [new Template.TextNode((0, _characterEntities.convertCharacterEntities)(text))] : undefined);
406
- }
407
- }
408
- parsePartToken(f) {
409
- const text = this.parseTextUntil(isPartEndToken);
410
- const index = Number(text);
411
- this.consumeAmount(4);
412
- return f(index);
413
- }
414
- parseTextUntil(predicate) {
415
- const start = this.pos;
416
- let i = 0;
417
- while (this.pos < this.length) {
418
- if (predicate(this.input, this.pos)) {
419
- break;
420
- }
421
- i++;
422
- this.consumeAmount(1);
423
- }
424
- return this.input.slice(start, start + i);
425
- }
426
- parseTextUntilMany(predicates) {
427
- const [keys, length] = getPredicatesCache(predicates);
428
- let text = "";
429
- let i = 0;
430
- while (this.pos < this.length) {
431
- const char = this.nextChar();
432
- for (; i < length; i++) {
433
- if (predicates[keys[i]](this.input, this.pos)) {
434
- return [text, keys[i]];
435
- }
436
- }
437
- i = 0;
438
- text += char;
439
- this.consumeAmount(1);
440
- }
441
- return [text, null];
442
- }
443
- parseArray(parser) {
444
- const children = [];
445
- while (this.pos < this.length) {
446
- const [decision, value] = parser();
447
- if (decision === "continue") {
448
- children.push(...value);
449
- } else if (decision === "break") {
450
- if (Option.isSome(value)) {
451
- children.push(...value.value);
452
- }
453
- return children;
454
- } else {
455
- return null;
456
- }
457
- }
458
- return children;
459
- }
460
- skipWhitespace() {
461
- while (this.pos < this.length) {
462
- const char = this.nextChar();
463
- if (SPACE_REGEX.test(char)) {
464
- this.consumeAmount(1);
465
- } else {
466
- break;
467
- }
468
- }
469
- }
470
- nextChar() {
471
- return this.input[this.pos];
472
- }
473
- consumeAmount(amount) {
474
- this.pos += amount;
475
- }
476
- chunk(f) {
477
- const chunk = f(this.input, this.pos);
478
- if (chunk) {
479
- this.pos += chunk.length;
480
- }
481
- return chunk;
482
- }
483
- addPart(part) {
484
- this.parts.push([part, this.path.toChunk()]);
485
- return part;
486
- }
487
- addPartWithPrevious(part) {
488
- this.parts.push([part, this.path.previousChunk()]);
489
- this.path.inc(); // Nodes will be inserted as a comment
490
- return part;
491
- }
492
- init(templateStrings) {
493
- this.context = "unknown";
494
- this.input = templateWithParts(templateStrings);
495
- this.length = this.input.length;
496
- this.parts = [];
497
- this.pos = 0;
498
- this.path = new PathStack();
499
- this._skipWhitespace = true;
500
- }
501
- }
502
- function templateWithParts(template) {
503
- const length = template.length;
504
- const lastIndex = length - 1;
505
- let output = "";
506
- for (let i = 0; i < length; i++) {
507
- const str = template[i];
508
- if (i === lastIndex) {
509
- output += str;
510
- } else {
511
- output += str + (0, _chunks.PART_STRING)(i);
512
- }
513
- }
514
- return output;
515
- }
516
- function unsafeParsePartIndex(text) {
517
- const next = (0, _chunks.getStrictPart)(text, 0);
518
- if (!next) {
519
- throw new SyntaxError(`Could not parse part index from ${text}`);
520
- }
521
- return parseInt(next.match[2], 10);
522
- }
523
- function parseTextAndParts(s, f) {
524
- let next;
525
- let pos = 0;
526
- const out = [];
527
- if (!_chunks.PART_REGEX.test(s)) {
528
- return [new Template.TextNode((0, _characterEntities.convertCharacterEntities)(s))];
529
- }
530
- while (pos < s.length) {
531
- if (next = (0, _chunks.getPart)(s, pos)) {
532
- out.push(f(parseInt(next.match[2], 10)));
533
- pos += next.length;
534
- } else if (next = (0, _chunks.getTextUntilPart)(s, pos)) {
535
- out.push(new Template.TextNode((0, _characterEntities.convertCharacterEntities)(next.match[1])));
536
- pos += next.length;
537
- } else {
538
- break;
539
- }
540
- }
541
- if (pos < s.length) {
542
- out.push(new Template.TextNode((0, _characterEntities.convertCharacterEntities)(s.slice(pos))));
543
- }
544
- return out;
545
- }
546
- const parser = exports.parser = /*#__PURE__*/(0, _GlobalValue.globalValue)( /*#__PURE__*/Symbol.for("@typed/template/Parser"), () => new ParserImpl());
547
- const digestSize = 2;
548
- const multiplier = 33;
549
- const fill = 5381;
550
- /**
551
- * Generates a hash for an ordered list of strings. Intended for the purposes
552
- * of server-side rendering with hydration.
553
- */
554
- function templateHash(strings) {
555
- const hashes = new Uint32Array(digestSize).fill(fill);
556
- for (let i = 0; i < strings.length; i++) {
557
- const string = strings[i];
558
- for (let j = 0; j < string.length; j++) {
559
- const key = j % digestSize;
560
- hashes[key] = hashes[key] * multiplier + string.charCodeAt(j);
561
- }
562
- }
563
- return btoa(String.fromCharCode(...new Uint8Array(hashes.buffer)));
564
- }
565
- function isSpread(str) {
566
- return str[0] === chars.dot && str[1] === chars.dot && str[2] === chars.dot;
567
- }
568
- //# sourceMappingURL=parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","names":["Chunk","_interopRequireWildcard","require","_GlobalValue","Option","Template","_characterEntities","_chunks","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TEXT_ONLY_NODES_REGEX","exports","Set","SELF_CLOSING_TAGS","VALID_PROPS_NAMES","parse","templateStrings","parser","SPACE_REGEX","PART_START","PART_END","chars","openBracket","closeBracket","underscore","equals","quote","singleQuote","slash","greaterThan","lessThan","hypen","dot","isPartToken","input","pos","slice","isPartEndToken","isElementOpenToken","isElementCloseToken","isEqualsToken","isQuoteToken","isSingleQuoteToken","isWhitespaceToken","test","isOpenTagEndToken","isSelfClosingTagEndToken","isCommentEndToken","isGreaterThanToken","Continue","Break","fromNullable","Skip","BREAK_ATTR","tagNameMatches","whitespace","openTagEnd","selfClosingTagEnd","attributeMatches","attributeValueMatches","base","textChildMatches","part","elementOpen","elementClose","PathStack","chunk","empty","count","inc","push","toChunk","pop","unsafeLast","dropRight","isEmpty","of","append","previousChunk","predicatesCache","getPredicatesCache","predicates","cached","undefined","keys","length","toCache","ParserImpl","context","parts","path","_skipWhitespace","init","parseTemplate","templateHash","hash","parseTemplateChildren","nodes","node","parseNodeFromContext","ctx","parseElement","parseUnknown","nextChar","unknownChunk","consumeAmount","skipWhitespace","parseComment","toLowerCase","parseDocType","SyntaxError","parseTagName","next","getPart","addPartWithPrevious","NodePart","parseInt","match","getWhitespace","TextNode","convertCharacterEntities","getTextUntilCloseBrace","parseTextAndParts","parseElementKind","tagName","matched","parseSelfClosingElement","parseTextOnlyElement","attributes","parseAttributes","children","element","ElementNode","consumeClosingTag","getClosingTagName","SelfClosingElementNode","parseTextChildren","TextOnlyElement","text","parseTextUntil","textAndParts","CommentPartNode","_tag","CommentNode","value","addPart","index","SparseCommentNode","DocType","parseTextUntilMany","parseArray","parseAttribute","name","parseBooleanNode","parseAttributeValue","isDoubleQuoted","isSingleQuoted","isQuoted","BooleanPartNode","unsafeParsePartIndex","property","DataPartNode","PropertiesPartNode","PropertyPartNode","EventPartNode","lowerCaseName","RefPartNode","isClass","ClassNamePartNode","AttrPartNode","AttributeNode","SparseClassNameNode","filter","trim","SparseAttrNode","isSpread","BooleanNode","parseTextChild","parsed","parsePartToken","TextPartNode","f","Number","predicate","start","char","decision","isSome","amount","templateWithParts","template","lastIndex","output","str","PART_STRING","getStrictPart","s","out","PART_REGEX","getTextUntilPart","globalValue","Symbol","for","digestSize","multiplier","fill","strings","hashes","Uint32Array","string","j","key","charCodeAt","btoa","String","fromCharCode","Uint8Array","buffer"],"sources":["../../../src/internal/parser.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}