@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/Many.ts DELETED
@@ -1,161 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as AsyncData from "@typed/async-data/AsyncData"
5
- import type { Progress } from "@typed/async-data/Progress"
6
- import * as RefAsyncData from "@typed/fx/AsyncData"
7
- import * as Fx from "@typed/fx/Fx"
8
- import * as RefSubject from "@typed/fx/RefSubject"
9
- import { get, getOption } from "effect/Context"
10
- import * as Effect from "effect/Effect"
11
- import { dual } from "effect/Function"
12
- import { isSome } from "effect/Option"
13
- import type * as Scope from "effect/Scope"
14
- import { HydrateContext } from "./internal/HydrateContext.js"
15
- import { MANY_HOLE } from "./Meta.js"
16
- import { RenderContext } from "./RenderContext.js"
17
- import { HtmlRenderEvent, type RenderEvent } from "./RenderEvent.js"
18
-
19
- /**
20
- * @since 1.0.0
21
- */
22
- export function many<A, E, R, B extends PropertyKey, R2, E2>(
23
- values: Fx.Fx<ReadonlyArray<A>, E, R>,
24
- getKey: (a: NoInfer<A>) => B,
25
- f: (a: RefSubject.RefSubject<A>, key: B) => Fx.Fx<RenderEvent, E2, R2>
26
- ): Fx.Fx<RenderEvent | ReadonlyArray<RenderEvent>, E | E2, R | R2 | Scope.Scope | RenderContext> {
27
- return Fx.fromFxEffect(
28
- Effect.contextWith(
29
- (context): Fx.Fx<RenderEvent | ReadonlyArray<RenderEvent>, E | E2, R | R2 | RenderContext | Scope.Scope> => {
30
- const ctx = get(context, RenderContext)
31
- const hydrateContext = getOption(context, HydrateContext)
32
-
33
- if (ctx.environment === "dom" || ctx.environment === "test:dom") {
34
- // If we're hydrating, attempt to provide the correct HydrateContext to rendering Fx
35
- if (isSome(hydrateContext) && hydrateContext.value.hydrate) {
36
- return Fx.keyed(values, {
37
- getKey,
38
- onValue: (ref, key) =>
39
- Fx.provideService(f(ref, key), HydrateContext, { ...hydrateContext.value, manyKey: key.toString() })
40
- })
41
- }
42
-
43
- // In other environments we just used Fx.keyed to allow indefinite subscriptions to RefSubjects
44
- return Fx.keyed(values, {
45
- getKey,
46
- onValue: f
47
- })
48
- }
49
-
50
- // When rendering HTML, we want to ensure that we order our HTML events in the same order
51
- // as the templates are defined which is why we use mergeOrdered. We also want to ensure that
52
- // our templates end, so we take only the first of our source values and also ensure that a subscription
53
- // to our RefSubjects only include its first event.
54
- return Fx.fromFxEffect(
55
- Effect.map(Fx.first(values), (values) =>
56
- Fx.mergeOrdered(
57
- values.map((value, i) =>
58
- Fx.fromFxEffect(Effect.map(RefSubject.of(value), (ref) => {
59
- const key = getKey(value)
60
- return Fx.append(
61
- Fx.map(
62
- f(RefSubject.take(ref, 1), key),
63
- (r) => HtmlRenderEvent((r as HtmlRenderEvent).html, false)
64
- ),
65
- HtmlRenderEvent(MANY_HOLE(key), i === values.length - 1)
66
- )
67
- }))
68
- )
69
- ))
70
- )
71
- }
72
- )
73
- )
74
- }
75
-
76
- /**
77
- * @since 1.0.0
78
- */
79
- export const manyAsyncData: {
80
- <
81
- E1,
82
- A,
83
- B extends PropertyKey,
84
- NoData extends Fx.Fx<any, any, any>,
85
- Loading extends Fx.Fx<any, any, any>,
86
- Failure extends Fx.Fx<any, any, any>,
87
- Success extends Fx.Fx<any, any, any>
88
- >(
89
- getKey: (a: A) => B,
90
- matchers: {
91
- NoData: () => NoData
92
- Loading: (data: RefSubject.Filtered<Progress>) => Loading
93
- Failure: (data: RefSubject.Computed<E1>) => Failure
94
- Success: (value: RefSubject.Computed<A>) => Success
95
- }
96
- ): <E, R>(
97
- fx: Fx.Fx<AsyncData.AsyncData<ReadonlyArray<A>, E1>, E, R>
98
- ) => Fx.Fx<
99
- Fx.Fx.Success<NoData | Loading | Failure | Success>,
100
- E | Fx.Fx.Error<NoData | Loading | Failure | Success>,
101
- R | Fx.Fx.Context<NoData | Loading | Failure | Success>
102
- >
103
-
104
- <
105
- R,
106
- E,
107
- E1,
108
- A,
109
- B extends PropertyKey,
110
- NoData extends Fx.Fx<any, any, any>,
111
- Loading extends Fx.Fx<any, any, any>,
112
- Failure extends Fx.Fx<any, any, any>,
113
- Success extends Fx.Fx<any, any, any>
114
- >(
115
- fx: Fx.Fx<AsyncData.AsyncData<ReadonlyArray<A>, E1>, E, R>,
116
- getKey: (a: A) => B,
117
- matchers: {
118
- NoData: () => NoData
119
- Loading: (data: RefSubject.Filtered<Progress>) => Loading
120
- Failure: (data: RefSubject.Computed<E1>) => Failure
121
- Success: (value: RefSubject.Computed<A>) => Success
122
- }
123
- ): Fx.Fx<
124
- Fx.Fx.Success<NoData | Loading | Failure | Success>,
125
- E | Fx.Fx.Error<NoData | Loading | Failure | Success>,
126
- R | Fx.Fx.Context<NoData | Loading | Failure | Success>
127
- >
128
- } = dual(
129
- 3,
130
- <
131
- R,
132
- E,
133
- E1,
134
- A,
135
- B extends PropertyKey,
136
- NoData extends Fx.Fx<RenderEvent, any, any>,
137
- Loading extends Fx.Fx<RenderEvent, any, any>,
138
- Failure extends Fx.Fx<RenderEvent, any, any>,
139
- Success extends Fx.Fx<RenderEvent, any, any>
140
- >(
141
- fx: Fx.Fx<AsyncData.AsyncData<ReadonlyArray<A>, E1>, E, R>,
142
- getKey: (a: A) => B,
143
- matchers: {
144
- NoData: NoData
145
- Loading: (data: RefSubject.Filtered<Progress>) => Loading
146
- Failure: (data: RefSubject.Computed<E1>) => Failure
147
- Success: (value: RefSubject.Computed<A>, key: B) => Success
148
- }
149
- ): Fx.Fx<
150
- RenderEvent | ReadonlyArray<RenderEvent>,
151
- E | Fx.Fx.Error<NoData | Loading | Failure | Success>,
152
- R | Fx.Fx.Context<NoData | Loading | Failure | Success>
153
- > => {
154
- return RefAsyncData.matchAsyncData(fx, {
155
- NoData: matchers.NoData,
156
- Loading: matchers.Loading,
157
- Failure: matchers.Failure,
158
- Success: (ref) => many(ref, getKey, matchers.Success)
159
- })
160
- }
161
- )
package/src/Meta.ts DELETED
@@ -1,45 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
-
5
- // Used to mark where the typed templates are in the html.
6
- /**
7
- * @since 1.0.0
8
- */
9
- export const TYPED_START = `<!--typed-start-->`
10
- /**
11
- * @since 1.0.0
12
- */
13
- export const TYPED_END = `<!--typed-end-->`
14
-
15
- /**
16
- * @since 1.0.0
17
- */
18
- export const TYPED_HASH = (hash: string) => `data-typed="${hash}"`
19
-
20
- // Inserted into the html to mark where the text starts and ensure separate
21
- // text nodes are created.
22
- /**
23
- * @since 1.0.0
24
- */
25
- export const TEXT_START = "<!--text-->"
26
-
27
- // Used to mark where a NodePart is in the DOM. It can be found directly after the
28
- // elements or text nodes it is managing.
29
- /**
30
- * @since 1.0.0
31
- */
32
- export const TYPED_HOLE_START = (index: number) => `<!--hole${index}-->`
33
-
34
- // Used to mark where a NodePart is in the DOM. It can be found directly after the
35
- // elements or text nodes it is managing.
36
- /**
37
- * @since 1.0.0
38
- */
39
- export const TYPED_HOLE_END = (index: number) => `<!--/hole${index}-->`
40
-
41
- /**
42
- * Used to mark separation between the start and end of a template.
43
- * @since 1.0.0
44
- */
45
- export const MANY_HOLE = (key: PropertyKey) => `<!--many${key.toString()}-->`
package/src/Part.ts DELETED
@@ -1,154 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
-
5
- import type { Cause } from "effect/Cause"
6
- import type { Effect } from "effect/Effect"
7
- import type { Scope } from "effect/Scope"
8
- import type { ElementSource } from "./ElementSource.js"
9
- import type { EventHandler } from "./EventHandler.js"
10
-
11
- /**
12
- * @since 1.0.0
13
- */
14
- export type Part =
15
- | AttributePart
16
- | BooleanPart
17
- | ClassNamePart
18
- | CommentPart
19
- | DataPart
20
- | EventPart
21
- | NodePart
22
- | PropertyPart
23
- | PropertiesPart
24
- | RefPart
25
- | TextPart
26
-
27
- /**
28
- * @since 1.0.0
29
- */
30
- export interface AttributePart {
31
- readonly _tag: "attribute"
32
- readonly name: string
33
- readonly value: string | null | undefined
34
- readonly index: number
35
-
36
- readonly update: (value: this["value"], priority?: number) => Effect<void, never, Scope>
37
- }
38
-
39
- /**
40
- * @since 1.0.0
41
- */
42
- export interface BooleanPart {
43
- readonly _tag: "boolean"
44
- readonly name: string
45
- readonly value: boolean | null | undefined
46
- readonly index: number
47
-
48
- readonly update: (value: this["value"], priority?: number) => Effect<void, never, Scope>
49
- }
50
-
51
- /**
52
- * @since 1.0.0
53
- */
54
- export interface ClassNamePart {
55
- readonly _tag: "className"
56
- readonly value: ReadonlyArray<string>
57
- readonly index: number
58
-
59
- readonly update: (value: this["value"], priority?: number) => Effect<void, never, Scope>
60
- }
61
-
62
- /**
63
- * @since 1.0.0
64
- */
65
- export interface DataPart {
66
- readonly _tag: "data"
67
- readonly value: Readonly<Record<string, string | undefined>> | null | undefined
68
- readonly index: number
69
-
70
- readonly update: (value: this["value"], priority?: number) => Effect<void, never, Scope>
71
- }
72
-
73
- /**
74
- * @since 1.0.0
75
- */
76
- export interface EventPart {
77
- readonly _tag: "event"
78
- readonly name: string
79
- readonly source: ElementSource<any>
80
- readonly value: null
81
- readonly index: number
82
- readonly onCause: (cause: Cause<unknown>) => Effect<unknown>
83
- readonly addEventListener: (handler: EventHandler<Event>) => void
84
- }
85
-
86
- /**
87
- * @since 1.0.0
88
- */
89
- export interface PropertyPart {
90
- readonly _tag: "property"
91
- readonly name: string
92
- readonly value: unknown
93
- readonly index: number
94
-
95
- readonly update: (value: this["value"], priority?: number) => Effect<void, never, Scope>
96
- }
97
-
98
- /**
99
- * @since 1.0.0
100
- */
101
- export interface PropertiesPart {
102
- readonly _tag: "properties"
103
- readonly value: Record<string, any> | null | undefined
104
- readonly index: number
105
-
106
- readonly update: (value: this["value"], priority?: number) => Effect<void, never, Scope>
107
- }
108
-
109
- /**
110
- * @since 1.0.0
111
- */
112
- export interface RefPart<T extends HTMLElement | SVGElement = HTMLElement | SVGElement> {
113
- readonly _tag: "ref"
114
- readonly value: ElementSource<T>
115
- readonly index: number
116
- }
117
-
118
- /**
119
- * @since 1.0.0
120
- */
121
- export interface CommentPart {
122
- readonly _tag: "comment"
123
- readonly value: string | null | undefined
124
- readonly index: number
125
-
126
- readonly update: (value: this["value"], priority?: number) => Effect<void, never, Scope>
127
- }
128
-
129
- /**
130
- * @since 1.0.0
131
- */
132
- export interface TextPart {
133
- readonly _tag: "text"
134
- readonly value: string | null | undefined
135
- readonly index: number
136
-
137
- readonly update: (value: this["value"], priority?: number) => Effect<void, never, Scope>
138
- }
139
-
140
- /**
141
- * @since 1.0.0
142
- */
143
- export interface NodePart {
144
- readonly _tag: "node"
145
- readonly value: unknown
146
- readonly index: number
147
-
148
- readonly update: (value: this["value"], priority?: number) => Effect<void, never, Scope>
149
- }
150
-
151
- /**
152
- * @since 1.0.0
153
- */
154
- export type Parts = ReadonlyArray<Part>
@@ -1,78 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
-
5
- import * as Fx from "@typed/fx"
6
- import "./internal/module-augmentation.js"
7
- import * as Effect from "effect/Effect"
8
- import type * as Scope from "effect/Scope"
9
-
10
- /**
11
- * @since 1.0.0
12
- */
13
- export const PlaceholderTypeId = Symbol.for("@typed/template/Placholder")
14
- /**
15
- * @since 1.0.0
16
- */
17
- export type PlaceholderTypeId = typeof PlaceholderTypeId
18
-
19
- /**
20
- * @since 1.0.0
21
- */
22
- export interface Placeholder<A = unknown, E = never, R = never> {
23
- readonly [PlaceholderTypeId]: {
24
- readonly _R: (_: never) => R
25
- readonly _E: (_: never) => E
26
- readonly _A: (_: never) => A
27
- }
28
- }
29
-
30
- /**
31
- * @since 1.0.0
32
- */
33
- export namespace Placeholder {
34
- /**
35
- * @since 1.0.0
36
- */
37
- export type Any<A = any> =
38
- | Placeholder<A, any, any>
39
- | Placeholder<A, never, any>
40
- | Placeholder<A>
41
- | Placeholder<A, any>
42
- | Effect.Effect<A, any, any>
43
- // Null/Undefined cannot be modified globally to make them placeholders
44
- | ([A] extends [null] ? null : never)
45
- | ([A] extends [undefined] ? undefined : never)
46
-
47
- /**
48
- * @since 1.0.0
49
- */
50
- export type Context<T> = [T] extends [never] ? never
51
- : T extends Effect.Effect<infer _A, infer _E, infer R> ? R
52
- : T extends Placeholder<infer _A, infer _E, infer R> ? R
53
- : never
54
- /**
55
- * @since 1.0.0
56
- */
57
- export type Error<T> = [T] extends [never] ? never
58
- : T extends Effect.Effect<infer _A, infer E, infer _R> ? E
59
- : T extends Placeholder<infer _A, infer E, infer _R> ? E
60
- : never
61
- /**
62
- * @since 1.0.0
63
- */
64
- export type Success<T> = [T] extends [never] ? never
65
- : T extends Effect.Effect<infer A, infer _E, infer _R> ? A
66
- : T extends Placeholder<infer A, infer _E, infer _R> ? A
67
- : never
68
-
69
- export function asRef<A, E = never, R = never>(
70
- placeholder: Fx.Fx<A, E, R> | Effect.Effect<A, E, R> | Placeholder<A, E, R> | A
71
- ): Effect.Effect<Fx.RefSubject.RefSubject<A, E, never>, never, Scope.Scope | R> {
72
- if (Fx.isFx(placeholder) || Effect.isEffect(placeholder)) {
73
- return Fx.RefSubject.make(placeholder)
74
- } else {
75
- return Fx.RefSubject.of(placeholder as A)
76
- }
77
- }
78
- }
package/src/Platform.ts DELETED
@@ -1,70 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
-
5
- import type { HttpServerRequest } from "@effect/platform"
6
- import { Headers, HttpServerResponse } from "@effect/platform"
7
- import type * as Fx from "@typed/fx/Fx"
8
- import { toStream } from "@typed/fx/Stream"
9
- import * as Effect from "effect/Effect"
10
- import * as Option from "effect/Option"
11
- import * as Stream from "effect/Stream"
12
- import { renderToHtml } from "./Html.js"
13
- import type { RenderEvent } from "./RenderEvent.js"
14
-
15
- const HTML_CONTENT_TYPE = "text/html"
16
- const CAMEL_CASE_CONTENT_TYPE = { contentType: HTML_CONTENT_TYPE }
17
- const HYPHENATED_CONTENT_TYPE = { "content-type": HTML_CONTENT_TYPE }
18
-
19
- /**
20
- * @since 1.0.0
21
- */
22
- export function htmlResponse<E, R>(
23
- fx: Fx.Fx<RenderEvent | null, E, R>,
24
- options?: HttpServerResponse.Options
25
- ): Effect.Effect<HttpServerResponse.HttpServerResponse, E, R> {
26
- return Effect.contextWithEffect((ctx) =>
27
- HttpServerResponse.stream(
28
- Stream.provideContext(Stream.encodeText(toStream(renderToHtml(fx))), ctx),
29
- {
30
- ...CAMEL_CASE_CONTENT_TYPE,
31
- ...options,
32
- headers: Headers.unsafeFromRecord({ ...HYPHENATED_CONTENT_TYPE, ...options?.headers })
33
- }
34
- )
35
- )
36
- }
37
-
38
- /**
39
- * @since 1.0.0
40
- */
41
- export function htmlResponseString(
42
- html: string,
43
- options?: HttpServerResponse.Options
44
- ): HttpServerResponse.HttpServerResponse {
45
- return HttpServerResponse.raw(
46
- html,
47
- {
48
- ...CAMEL_CASE_CONTENT_TYPE,
49
- ...options,
50
- headers: Headers.unsafeFromRecord({ ...HYPHENATED_CONTENT_TYPE, ...options?.headers })
51
- }
52
- )
53
- }
54
-
55
- /**
56
- * @since 1.0.0
57
- */
58
- export function getUrlFromServerRequest(request: HttpServerRequest.HttpServerRequest): URL {
59
- const { headers } = request
60
- const host = Headers.get(headers, "x-forwarded-host").pipe(
61
- Option.orElse(() => Headers.get(headers, "host")),
62
- Option.getOrElse(() => "localhost")
63
- )
64
- const protocol = Headers.get(headers, "x-forwarded-proto").pipe(
65
- Option.orElse(() => Headers.get(headers, "protocol")),
66
- Option.getOrElse(() => "http")
67
- )
68
-
69
- return new URL(request.url, `${protocol}://${host}`)
70
- }
@@ -1,121 +0,0 @@
1
- /**
2
- * The context in which templates are rendered within
3
- * @since 1.0.0
4
- */
5
-
6
- import * as Context from "@typed/context"
7
- import { type DomServices, domServices, type DomServicesElementParams } from "@typed/dom/DomServices"
8
- import { GlobalThis } from "@typed/dom/GlobalThis"
9
- import { Window } from "@typed/dom/Window"
10
- import type { Environment } from "@typed/environment"
11
- import { CurrentEnvironment } from "@typed/environment"
12
- import type { Rendered } from "@typed/wire"
13
- import * as Layer from "effect/Layer"
14
- import * as Option from "effect/Option"
15
- import type { Entry } from "./Entry.js"
16
-
17
- /**
18
- * The context in which templates are rendered within
19
- * @since 1.0.0
20
- */
21
- export interface RenderContext {
22
- /**
23
- * The current environment we are rendering within
24
- */
25
- readonly environment: Environment
26
-
27
- /**
28
- * Cache for root Node's being rendered into.
29
- */
30
- readonly renderCache: WeakMap<object, Rendered | null>
31
-
32
- /**
33
- * Cache for individual templates.
34
- */
35
- readonly templateCache: WeakMap<TemplateStringsArray, Entry>
36
- }
37
-
38
- /**
39
- * The context in which templates are rendered within
40
- * @since 1.0.0
41
- */
42
- export const RenderContext: Context.Tagged<RenderContext, RenderContext> = Context.Tagged<RenderContext>(
43
- "@typed/template/RenderContext"
44
- )
45
-
46
- /**
47
- * @since 1.0.0
48
- */
49
- export type RenderContextOptions = {
50
- readonly environment: Environment
51
- }
52
-
53
- /**
54
- * @since 1.0.0
55
- */
56
- export function make({
57
- environment
58
- }: RenderContextOptions): RenderContext {
59
- return {
60
- environment,
61
- renderCache: new WeakMap(),
62
- templateCache: new WeakMap()
63
- }
64
- }
65
-
66
- /**
67
- * @since 1.0.0
68
- */
69
- export function getRenderCache<T>(renderCache: RenderContext["renderCache"], key: object): Option.Option<T> {
70
- return renderCache.has(key) ? Option.some(renderCache.get(key) as T) : Option.none()
71
- }
72
-
73
- /**
74
- * @since 1.0.0
75
- */
76
- export function getTemplateCache(
77
- templateCache: RenderContext["templateCache"],
78
- key: TemplateStringsArray
79
- ): Option.Option<Entry> {
80
- return Option.fromNullable(templateCache.get(key))
81
- }
82
-
83
- const buildWithCurrentEnvironment = (environment: Environment) =>
84
- Layer.mergeAll(
85
- RenderContext.layer(make({ environment })),
86
- CurrentEnvironment.layer(environment)
87
- )
88
-
89
- /**
90
- * @since 1.0.0
91
- */
92
- export const dom: (
93
- window: Window & GlobalThis,
94
- options?: DomServicesElementParams
95
- ) => Layer.Layer<RenderContext | CurrentEnvironment | DomServices> = (
96
- window,
97
- options
98
- ) =>
99
- Layer.provideMerge(
100
- Layer.mergeAll(
101
- buildWithCurrentEnvironment("dom"),
102
- domServices(options)
103
- ),
104
- Layer.mergeAll(Window.layer(window), GlobalThis.layer(window))
105
- )
106
-
107
- /**
108
- * @since 1.0.0
109
- */
110
- export const server: Layer.Layer<RenderContext | CurrentEnvironment> = buildWithCurrentEnvironment(
111
- "server"
112
- )
113
-
114
- const static_: Layer.Layer<RenderContext | CurrentEnvironment> = buildWithCurrentEnvironment("static")
115
-
116
- export {
117
- /**
118
- * @since 1.0.0
119
- */
120
- static_ as static
121
- }