tungsten 0.6.2 → 0.7.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 (486) hide show
  1. package/dist/.build-complete +1 -1
  2. package/dist/Brands.d.ts +16 -0
  3. package/dist/Brands.d.ts.map +1 -0
  4. package/dist/Brands.js +22 -0
  5. package/dist/Components.d.ts +4 -1
  6. package/dist/Components.d.ts.map +1 -1
  7. package/dist/Components.js +24 -6
  8. package/dist/ContentNode.d.ts +3 -2
  9. package/dist/ContentNode.d.ts.map +1 -1
  10. package/dist/ContentNode.js +11 -0
  11. package/dist/Framework.d.ts.map +1 -1
  12. package/dist/Framework.js +23 -4
  13. package/dist/FrameworkConfig.d.ts +7 -1
  14. package/dist/FrameworkConfig.d.ts.map +1 -1
  15. package/dist/FunctionComponent.d.ts +1 -0
  16. package/dist/FunctionComponent.d.ts.map +1 -1
  17. package/dist/FunctionComponentStandIn.d.ts.map +1 -1
  18. package/dist/Instance/Instance.d.ts +29 -12
  19. package/dist/Instance/Instance.d.ts.map +1 -1
  20. package/dist/Instance/Instance.js +59 -21
  21. package/dist/Instance/InstanceConfig.d.ts +2 -1
  22. package/dist/Instance/InstanceConfig.d.ts.map +1 -1
  23. package/dist/RenderedContentNode.d.ts.map +1 -1
  24. package/dist/RenderingNode.d.ts.map +1 -1
  25. package/dist/Servers/DevServer.d.ts +4 -2
  26. package/dist/Servers/DevServer.d.ts.map +1 -1
  27. package/dist/Servers/DevServer.js +62 -20
  28. package/dist/Servers/ProdServer.d.ts +4 -2
  29. package/dist/Servers/ProdServer.d.ts.map +1 -1
  30. package/dist/Servers/ProdServer.js +77 -18
  31. package/dist/Servers/StaticSiteServer.d.ts +1 -1
  32. package/dist/Servers/StaticSiteServer.d.ts.map +1 -1
  33. package/dist/Servers/TungstenServer.d.ts +2 -1
  34. package/dist/Servers/TungstenServer.d.ts.map +1 -1
  35. package/dist/Servers/TungstenServer.js +7 -0
  36. package/dist/Servers/cacheVersioned.d.ts +3 -0
  37. package/dist/Servers/cacheVersioned.d.ts.map +1 -0
  38. package/dist/Servers/cacheVersioned.js +23 -0
  39. package/dist/Servers/devErrorPageAutoRetry.d.ts.map +1 -1
  40. package/dist/Servers/devErrorPageAutoRetry.js +1 -0
  41. package/dist/Servers/initStores.d.ts +4 -4
  42. package/dist/Servers/initStores.d.ts.map +1 -1
  43. package/dist/Servers/initStores.js +2 -2
  44. package/dist/Servers/loadEnvsDev.d.ts.map +1 -1
  45. package/dist/Servers/loadEnvsDev.js +7 -6
  46. package/dist/Servers/resetRegistrations.d.ts +2 -0
  47. package/dist/Servers/resetRegistrations.d.ts.map +1 -0
  48. package/dist/Servers/resetRegistrations.js +13 -0
  49. package/dist/Servers/routing.d.ts +3 -2
  50. package/dist/Servers/routing.d.ts.map +1 -1
  51. package/dist/Servers/routing.js +3 -2
  52. package/dist/Store/InternalStoreSchema.d.ts +1 -1
  53. package/dist/Store/Store.js +2 -1
  54. package/dist/Store/StoreSchemaClass.d.ts +6 -3
  55. package/dist/Store/StoreSchemaClass.d.ts.map +1 -1
  56. package/dist/Store/StoreSchemaClass.js +8 -1
  57. package/dist/Store/TypeSafeStore.js +2 -1
  58. package/dist/Store/createStores.d.ts +3 -3
  59. package/dist/Store/createStores.d.ts.map +1 -1
  60. package/dist/Store/createStores.js +7 -2
  61. package/dist/Store/getInternalStore.d.ts.map +1 -1
  62. package/dist/Store/registerStore.d.ts.map +1 -1
  63. package/dist/Store/registerStore.js +2 -2
  64. package/dist/Store/storeCreators.d.ts +2 -2
  65. package/dist/Store/storeCreators.d.ts.map +1 -1
  66. package/dist/TungstenApp.d.ts +3 -3
  67. package/dist/TungstenApp.d.ts.map +1 -1
  68. package/dist/_client/cjsHelpers.d.ts.map +1 -1
  69. package/dist/_client/cjsHelpers.js +5 -3
  70. package/dist/_client/client.d.ts +2 -0
  71. package/dist/_client/client.d.ts.map +1 -1
  72. package/dist/_client/client.js +10 -3
  73. package/dist/api/getApiRoutes.d.ts.map +1 -1
  74. package/dist/api/getExport.d.ts +1 -1
  75. package/dist/api/getExport.d.ts.map +1 -1
  76. package/dist/api/getExport.js +2 -1
  77. package/dist/api/getExportDev.d.ts +1 -1
  78. package/dist/api/getExportDev.d.ts.map +1 -1
  79. package/dist/appBuilder.d.ts +69 -0
  80. package/dist/appBuilder.d.ts.map +1 -0
  81. package/dist/appBuilder.js +98 -0
  82. package/dist/appBuilder.types.test.d.ts +110 -0
  83. package/dist/appBuilder.types.test.d.ts.map +1 -0
  84. package/dist/appBuilder.types.test.js +240 -0
  85. package/dist/babelPlugins/BabelTransformBindDirect.js +7 -7
  86. package/dist/babelPlugins/BabelTransformBindVar.js +7 -7
  87. package/dist/babelPlugins/BabelTransformComponentState.d.ts.map +1 -1
  88. package/dist/babelPlugins/BabelTransformComponentStyles.d.ts.map +1 -1
  89. package/dist/babelPlugins/BabelTransformComponentStyles.js +5 -5
  90. package/dist/babelPlugins/BabelTransformCssImports.d.ts.map +1 -1
  91. package/dist/babelPlugins/BabelTransformCssImports.js +2 -2
  92. package/dist/babelPlugins/BabelTransformDeproxyState.d.ts.map +1 -1
  93. package/dist/babelPlugins/BabelTransformPackageImports.d.ts.map +1 -1
  94. package/dist/babelPlugins/BabelTransformPackageImports.js +11 -6
  95. package/dist/babelPlugins/BabelTransformRemoveDevBlocks.d.ts.map +1 -1
  96. package/dist/babelPlugins/BabelTransformRemoveServerBlocks.d.ts.map +1 -1
  97. package/dist/babelPlugins/BabelTypes.d.ts.map +1 -1
  98. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts.map +1 -1
  99. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.js +1 -1
  100. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts.map +1 -1
  101. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.js +2 -2
  102. package/dist/bin/commands/compile.d.ts.map +1 -1
  103. package/dist/bin/commands/compile.js +2 -1
  104. package/dist/build/CompilationInfo.d.ts +3 -0
  105. package/dist/build/CompilationInfo.d.ts.map +1 -1
  106. package/dist/build/assetVersions.d.ts +9 -0
  107. package/dist/build/assetVersions.d.ts.map +1 -0
  108. package/dist/build/assetVersions.js +39 -0
  109. package/dist/build/babel.user.common.config.d.ts.map +1 -1
  110. package/dist/build/bundle.d.ts.map +1 -1
  111. package/dist/build/bundle.js +2 -1
  112. package/dist/build/bundleBabelOptions.d.ts.map +1 -1
  113. package/dist/build/clientRoutesFile.d.ts +2 -0
  114. package/dist/build/clientRoutesFile.d.ts.map +1 -0
  115. package/dist/build/clientRoutesFile.js +13 -0
  116. package/dist/build/compileJavascript.d.ts.map +1 -1
  117. package/dist/build/compileJavascript.js +4 -3
  118. package/dist/build/compileStyles.d.ts +2 -1
  119. package/dist/build/compileStyles.d.ts.map +1 -1
  120. package/dist/build/compileStyles.js +38 -83
  121. package/dist/build/compileUserApp.d.ts.map +1 -1
  122. package/dist/build/componentStylesCache.d.ts.map +1 -1
  123. package/dist/build/componentStylesCache.js +3 -2
  124. package/dist/build/copyAssets.d.ts.map +1 -1
  125. package/dist/build/copyAssets.js +2 -1
  126. package/dist/build/copyPackageModulesToPackagesFolder.d.ts.map +1 -1
  127. package/dist/build/copyPackageModulesToPackagesFolder.js +1 -1
  128. package/dist/build/copyPublicFiles.d.ts.map +1 -1
  129. package/dist/build/copyPublicFiles.js +2 -1
  130. package/dist/build/createClientFiles.d.ts.map +1 -1
  131. package/dist/build/createClientFiles.js +9 -5
  132. package/dist/build/createInstanceConfigFile.d.ts +1 -1
  133. package/dist/build/createInstanceConfigFile.d.ts.map +1 -1
  134. package/dist/build/createInstanceConfigFile.js +9 -3
  135. package/dist/build/frameworkDestLocation.d.ts.map +1 -1
  136. package/dist/build/frameworkDestLocation.js +5 -6
  137. package/dist/build/frameworkStylesheets.d.ts.map +1 -1
  138. package/dist/build/frameworkStylesheets.js +1 -1
  139. package/dist/build/makeBabelRawConfig.d.ts.map +1 -1
  140. package/dist/build/makeBabelUserDevConfig.d.ts +2 -2
  141. package/dist/build/makeBabelUserDevConfig.d.ts.map +1 -1
  142. package/dist/build/makeBabelUserProdConfig.d.ts.map +1 -1
  143. package/dist/build/rollup.user.prod.config.d.ts.map +1 -1
  144. package/dist/build/rollup.user.prod.config.js +5 -3
  145. package/dist/build/rollupProdConstants.d.ts +5 -0
  146. package/dist/build/rollupProdConstants.d.ts.map +1 -0
  147. package/dist/build/rollupProdConstants.js +21 -0
  148. package/dist/cacheControl.d.ts +13 -0
  149. package/dist/cacheControl.d.ts.map +1 -0
  150. package/dist/cacheControl.js +22 -0
  151. package/dist/compat/types.d.ts +1 -1
  152. package/dist/compat/types.d.ts.map +1 -1
  153. package/dist/componentHelpers.d.ts +18 -0
  154. package/dist/componentHelpers.d.ts.map +1 -0
  155. package/dist/componentHelpers.js +28 -0
  156. package/dist/componentProxyHandlers.d.ts.map +1 -1
  157. package/dist/components/Fragment.d.ts +8 -0
  158. package/dist/components/Fragment.d.ts.map +1 -0
  159. package/dist/components/Fragment.js +10 -0
  160. package/dist/components/Link.d.ts +4 -3
  161. package/dist/components/Link.d.ts.map +1 -1
  162. package/dist/components/Link.js +1 -0
  163. package/dist/components/NoEscape.d.ts +8 -0
  164. package/dist/components/NoEscape.d.ts.map +1 -0
  165. package/dist/components/NoEscape.js +6 -0
  166. package/dist/components/RouteRedirectComponent.d.ts.map +1 -1
  167. package/dist/components/RouteRedirectComponent.js +1 -1
  168. package/dist/components/WebRedirectComponent.d.ts.map +1 -1
  169. package/dist/components/WebRedirectComponent.js +1 -1
  170. package/dist/components/bindable/BindVariable.d.ts +1 -0
  171. package/dist/components/bindable/BindVariable.d.ts.map +1 -1
  172. package/dist/components/bindable/BindableCheckbox.d.ts +7 -7
  173. package/dist/components/bindable/BindableCheckbox.d.ts.map +1 -1
  174. package/dist/components/bindable/BindableInput.d.ts +7 -7
  175. package/dist/components/bindable/BindableInput.d.ts.map +1 -1
  176. package/dist/components/bindable/BindableInputNonString.d.ts +2 -2
  177. package/dist/components/bindable/BindableInputNonString.d.ts.map +1 -1
  178. package/dist/components/bindable/BindableInputString.d.ts +2 -2
  179. package/dist/components/bindable/BindableInputString.d.ts.map +1 -1
  180. package/dist/components/bindable/BindableInputTyped.d.ts +3 -3
  181. package/dist/components/bindable/BindableInputTyped.d.ts.map +1 -1
  182. package/dist/components/bindable/BindableInputTypedLegacy.d.ts +3 -3
  183. package/dist/components/bindable/BindableInputTypedLegacy.d.ts.map +1 -1
  184. package/dist/components/bindable/BindableRadio.js +2 -2
  185. package/dist/components/bindable/BindableSelect.d.ts +13 -10
  186. package/dist/components/bindable/BindableSelect.d.ts.map +1 -1
  187. package/dist/components/bindable/BindableSelectNaive.js +3 -3
  188. package/dist/components/bindable/BindableTextarea.d.ts +7 -7
  189. package/dist/components/bindable/BindableTextarea.d.ts.map +1 -1
  190. package/dist/components/bindable/bindableCandidates.comparison.d.ts +136 -0
  191. package/dist/components/bindable/bindableCandidates.comparison.d.ts.map +1 -0
  192. package/dist/components/bindable/bindableCandidates.comparison.js +268 -0
  193. package/dist/components/bindable/bindableProps.types.test.d.ts +50 -0
  194. package/dist/components/bindable/bindableProps.types.test.d.ts.map +1 -0
  195. package/dist/components/bindable/bindableProps.types.test.js +252 -0
  196. package/dist/components/library/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  197. package/dist/components/library/RichTextEditor/contentTree.d.ts.map +1 -1
  198. package/dist/components/makeTypedLink.d.ts +9 -0
  199. package/dist/components/makeTypedLink.d.ts.map +1 -0
  200. package/dist/components/makeTypedLink.js +15 -0
  201. package/dist/context/registerContext.d.ts +22 -0
  202. package/dist/context/registerContext.d.ts.map +1 -0
  203. package/dist/context/registerContext.js +18 -0
  204. package/dist/env/getEnvSchemas.d.ts.map +1 -1
  205. package/dist/env/getEnvSchemas.js +2 -1
  206. package/dist/fileVersions.d.ts +9 -0
  207. package/dist/fileVersions.d.ts.map +1 -0
  208. package/dist/fileVersions.js +28 -0
  209. package/dist/findUserConfig.d.ts +1 -1
  210. package/dist/findUserConfig.d.ts.map +1 -1
  211. package/dist/findUserConfig.js +2 -1
  212. package/dist/frameworkConfigSchema.d.ts +14 -2
  213. package/dist/frameworkConfigSchema.d.ts.map +1 -1
  214. package/dist/frameworkConfigSchema.js +11 -2
  215. package/dist/getComponent.d.ts.map +1 -1
  216. package/dist/getComponent.js +4 -3
  217. package/dist/getRoutes.d.ts.map +1 -1
  218. package/dist/getRoutes.js +9 -8
  219. package/dist/hmr/applyHmrModule.d.ts.map +1 -1
  220. package/dist/hmr/componentIdentity.js +1 -1
  221. package/dist/hooks/getCurrentComponent.d.ts +1 -1
  222. package/dist/hooks/getCurrentComponent.d.ts.map +1 -1
  223. package/dist/hydrate/hydrate.d.ts +5 -1
  224. package/dist/hydrate/hydrate.d.ts.map +1 -1
  225. package/dist/hydrate/hydrate.js +59 -46
  226. package/dist/hydrate/hydrateGlobalData.d.ts +4 -3
  227. package/dist/hydrate/hydrateGlobalData.d.ts.map +1 -1
  228. package/dist/hydrate/reconcileHydratedAttributes.d.ts +2 -1
  229. package/dist/hydrate/reconcileHydratedAttributes.d.ts.map +1 -1
  230. package/dist/hydrate/reconcileHydratedAttributes.js +4 -3
  231. package/dist/hydrate/renderHydrationMismatchBanner.d.ts.map +1 -1
  232. package/dist/hydrate/renderHydrationMismatchBanner.js +2 -1
  233. package/dist/importDevModuleWithRetry.d.ts +2 -1
  234. package/dist/importDevModuleWithRetry.d.ts.map +1 -1
  235. package/dist/importDevModuleWithRetry.js +2 -1
  236. package/dist/importModule.d.ts +3 -0
  237. package/dist/importModule.d.ts.map +1 -0
  238. package/dist/importModule.js +4 -0
  239. package/dist/index.js +2 -1
  240. package/dist/indexInner.d.ts +30 -7
  241. package/dist/indexInner.d.ts.map +1 -1
  242. package/dist/indexInner.js +37 -2
  243. package/dist/json.d.ts +12 -0
  244. package/dist/json.d.ts.map +1 -0
  245. package/dist/json.js +8 -0
  246. package/dist/jsxHelpers.d.ts +3 -0
  247. package/dist/jsxHelpers.d.ts.map +1 -0
  248. package/dist/jsxHelpers.js +6 -0
  249. package/dist/jsxRuntime.d.ts +1 -0
  250. package/dist/jsxRuntime.d.ts.map +1 -1
  251. package/dist/jsxRuntime.js +3 -1
  252. package/dist/jsxRuntimeSignals.d.ts.map +1 -1
  253. package/dist/jsxRuntimeSignals.js +1 -0
  254. package/dist/makeInstanceConfigFromFrameworkConfig.d.ts.map +1 -1
  255. package/dist/makeInstanceConfigFromFrameworkConfig.js +1 -0
  256. package/dist/mergeConfigs.d.ts.map +1 -1
  257. package/dist/mergeConfigs.js +2 -6
  258. package/dist/nbsp.d.ts +1 -2
  259. package/dist/nbsp.d.ts.map +1 -1
  260. package/dist/nbsp.js +3 -7
  261. package/dist/objectMap.d.ts +1 -1
  262. package/dist/objectMap.d.ts.map +1 -1
  263. package/dist/pipeline/PipelineRequestHandler.d.ts +25 -0
  264. package/dist/pipeline/PipelineRequestHandler.d.ts.map +1 -0
  265. package/dist/pipeline/PipelineRequestHandler.js +96 -0
  266. package/dist/pipeline/contextStore.d.ts +12 -0
  267. package/dist/pipeline/contextStore.d.ts.map +1 -0
  268. package/dist/pipeline/contextStore.js +13 -0
  269. package/dist/pipeline/hydratePipeline.d.ts +4 -0
  270. package/dist/pipeline/hydratePipeline.d.ts.map +1 -0
  271. package/dist/pipeline/hydratePipeline.js +64 -0
  272. package/dist/pipeline/importRoutesModule.d.ts +6 -0
  273. package/dist/pipeline/importRoutesModule.d.ts.map +1 -0
  274. package/dist/pipeline/importRoutesModule.js +33 -0
  275. package/dist/pipeline/networkedTransport.d.ts +11 -0
  276. package/dist/pipeline/networkedTransport.d.ts.map +1 -0
  277. package/dist/pipeline/networkedTransport.js +54 -0
  278. package/dist/pipeline/pipeline.d.ts +105 -0
  279. package/dist/pipeline/pipeline.d.ts.map +1 -0
  280. package/dist/pipeline/pipeline.js +108 -0
  281. package/dist/pipeline/pipeline.types.test.d.ts +650 -0
  282. package/dist/pipeline/pipeline.types.test.d.ts.map +1 -0
  283. package/dist/pipeline/pipeline.types.test.js +342 -0
  284. package/dist/pipeline/pipelineDefinition.d.ts +67 -0
  285. package/dist/pipeline/pipelineDefinition.d.ts.map +1 -0
  286. package/dist/pipeline/pipelineDefinition.js +11 -0
  287. package/dist/pipeline/pipelineSplit.types.test.d.ts +1971 -0
  288. package/dist/pipeline/pipelineSplit.types.test.d.ts.map +1 -0
  289. package/dist/pipeline/pipelineSplit.types.test.js +440 -0
  290. package/dist/pipeline/runPipeline.d.ts +31 -0
  291. package/dist/pipeline/runPipeline.d.ts.map +1 -0
  292. package/dist/pipeline/runPipeline.js +71 -0
  293. package/dist/pipeline/runSplitPipeline.d.ts +10 -0
  294. package/dist/pipeline/runSplitPipeline.d.ts.map +1 -0
  295. package/dist/pipeline/runSplitPipeline.js +48 -0
  296. package/dist/pipeline/splitPipeline.d.ts +62 -0
  297. package/dist/pipeline/splitPipeline.d.ts.map +1 -0
  298. package/dist/pipeline/splitPipeline.js +76 -0
  299. package/dist/pop.js +1 -1
  300. package/dist/rawHtml/filterContentNode.d.ts.map +1 -1
  301. package/dist/render/HeadData.d.ts +3 -1
  302. package/dist/render/HeadData.d.ts.map +1 -1
  303. package/dist/render/classComponentNodeToRenderingTree.d.ts.map +1 -1
  304. package/dist/render/componentNodeToRenderingTree.d.ts.map +1 -1
  305. package/dist/render/contentToHtml.d.ts +2 -2
  306. package/dist/render/contentToHtml.d.ts.map +1 -1
  307. package/dist/render/contentToHtml.js +2 -1
  308. package/dist/render/contentToHtmlDev.d.ts +1 -1
  309. package/dist/render/contentToHtmlDev.d.ts.map +1 -1
  310. package/dist/render/contentTreeToRenderingTree.d.ts.map +1 -1
  311. package/dist/render/contentTreeToRenderingTree.js +2 -1
  312. package/dist/render/functionComponentNodeToRenderingTree.d.ts.map +1 -1
  313. package/dist/render/functionComponentNodeToRenderingTree.js +2 -2
  314. package/dist/render/instantiateComponent.d.ts.map +1 -1
  315. package/dist/render/processHead.d.ts.map +1 -1
  316. package/dist/render/processHead.js +12 -18
  317. package/dist/render/renderingTreeToHtml.d.ts.map +1 -1
  318. package/dist/render/renderingTreeToHtml.js +6 -3
  319. package/dist/render/rootToHtml.d.ts +2 -2
  320. package/dist/render/rootToHtml.d.ts.map +1 -1
  321. package/dist/requests/fetch/delete.d.ts.map +1 -1
  322. package/dist/requests/fetch/delete.js +5 -2
  323. package/dist/requests/fetch/get.js +1 -1
  324. package/dist/requests/fetch/patch.d.ts.map +1 -1
  325. package/dist/requests/fetch/patch.js +5 -2
  326. package/dist/requests/fetch/post.d.ts.map +1 -1
  327. package/dist/requests/fetch/post.js +5 -2
  328. package/dist/requests/fetch/put.d.ts.map +1 -1
  329. package/dist/requests/fetch/put.js +5 -2
  330. package/dist/routesLocationParts.d.ts +6 -0
  331. package/dist/routesLocationParts.d.ts.map +1 -0
  332. package/dist/routesLocationParts.js +10 -0
  333. package/dist/routing/AppRoutes.d.ts +5 -3
  334. package/dist/routing/AppRoutes.d.ts.map +1 -1
  335. package/dist/routing/MatchedRouteInfo.d.ts +11 -0
  336. package/dist/routing/MatchedRouteInfo.d.ts.map +1 -0
  337. package/dist/routing/RouteContentFunction.d.ts +1 -2
  338. package/dist/routing/RouteContentFunction.d.ts.map +1 -1
  339. package/dist/routing/RouteDataFunction.type.d.ts +4 -2
  340. package/dist/routing/RouteDataFunction.type.d.ts.map +1 -1
  341. package/dist/routing/RoutePaths.d.ts +12 -0
  342. package/dist/routing/RoutePaths.d.ts.map +1 -0
  343. package/dist/routing/RoutePaths.js +1 -0
  344. package/dist/routing/RouteTypes.d.ts +6 -4
  345. package/dist/routing/RouteTypes.d.ts.map +1 -1
  346. package/dist/routing/Routes.d.ts +17 -11
  347. package/dist/routing/Routes.d.ts.map +1 -1
  348. package/dist/routing/RoutesFunction.d.ts +11 -2
  349. package/dist/routing/RoutesFunction.d.ts.map +1 -1
  350. package/dist/routing/Serializable.d.ts +5 -0
  351. package/dist/routing/Serializable.d.ts.map +1 -0
  352. package/dist/routing/Serializable.js +1 -0
  353. package/dist/routing/builder.d.ts +99 -0
  354. package/dist/routing/builder.d.ts.map +1 -0
  355. package/dist/routing/builder.js +213 -0
  356. package/dist/routing/builder.trial.d.ts +2 -0
  357. package/dist/routing/builder.trial.d.ts.map +1 -0
  358. package/dist/routing/builder.trial.js +85 -0
  359. package/dist/routing/defineRoutes.d.ts +8 -0
  360. package/dist/routing/defineRoutes.d.ts.map +1 -0
  361. package/dist/routing/defineRoutes.js +3 -0
  362. package/dist/routing/pyramidRouting.d.ts +2 -0
  363. package/dist/routing/pyramidRouting.d.ts.map +1 -0
  364. package/dist/routing/pyramidRouting.js +13 -0
  365. package/dist/routing/registerGlobalData.d.ts +11 -3
  366. package/dist/routing/registerGlobalData.d.ts.map +1 -1
  367. package/dist/routing/registerGlobalData.js +6 -0
  368. package/dist/routing/registerParts.types.test.d.ts +2 -0
  369. package/dist/routing/registerParts.types.test.d.ts.map +1 -0
  370. package/dist/routing/registerParts.types.test.js +139 -0
  371. package/dist/routing/registerRoutes.d.ts +10 -0
  372. package/dist/routing/registerRoutes.d.ts.map +1 -0
  373. package/dist/routing/registerRoutes.js +9 -0
  374. package/dist/routing/registerRouting.d.ts +36 -0
  375. package/dist/routing/registerRouting.d.ts.map +1 -0
  376. package/dist/routing/registerRouting.js +34 -0
  377. package/dist/routing/registerRouting.types.test.d.ts +80 -0
  378. package/dist/routing/registerRouting.types.test.d.ts.map +1 -0
  379. package/dist/routing/registerRouting.types.test.js +120 -0
  380. package/dist/routing/registrationTypes.d.ts +11 -0
  381. package/dist/routing/registrationTypes.d.ts.map +1 -0
  382. package/dist/routing/registrationTypes.js +1 -0
  383. package/dist/routing/resolveAppRoutes.d.ts +5 -0
  384. package/dist/routing/resolveAppRoutes.d.ts.map +1 -0
  385. package/dist/routing/resolveAppRoutes.js +25 -0
  386. package/dist/routing/routeUrl.d.ts +4 -0
  387. package/dist/routing/routeUrl.d.ts.map +1 -1
  388. package/dist/routing/routeUrl.js +4 -0
  389. package/dist/routing/routesArray.d.ts +23 -0
  390. package/dist/routing/routesArray.d.ts.map +1 -0
  391. package/dist/routing/routesArray.js +20 -0
  392. package/dist/routing/routesArray.types.test.d.ts +2 -0
  393. package/dist/routing/routesArray.types.test.d.ts.map +1 -0
  394. package/dist/routing/routesArray.types.test.js +132 -0
  395. package/dist/routing/routingBuilder.d.ts +34 -0
  396. package/dist/routing/routingBuilder.d.ts.map +1 -0
  397. package/dist/routing/routingBuilder.js +33 -0
  398. package/dist/routing/routingBuilder.types.test.d.ts +2 -0
  399. package/dist/routing/routingBuilder.types.test.d.ts.map +1 -0
  400. package/dist/routing/routingBuilder.types.test.js +171 -0
  401. package/dist/routing/routingRegistry.d.ts +19 -0
  402. package/dist/routing/routingRegistry.d.ts.map +1 -0
  403. package/dist/routing/routingRegistry.js +29 -0
  404. package/dist/staticGen/getAppRoutes.d.ts +2 -2
  405. package/dist/staticGen/getAppRoutes.d.ts.map +1 -1
  406. package/dist/staticGen/getAppRoutes.js +9 -6
  407. package/dist/staticGen/staticGen.d.ts.map +1 -1
  408. package/dist/staticGen/staticGen.js +8 -2
  409. package/dist/style/styleContentSxy.d.ts.map +1 -1
  410. package/dist/sync/index.d.ts.map +1 -1
  411. package/dist/sync/index.js +2 -0
  412. package/dist/syncServer/index.cjs +1 -2
  413. package/dist/syncServer/preload.js +2 -0
  414. package/dist/testing/createTestApp.d.ts +25 -1
  415. package/dist/testing/createTestApp.d.ts.map +1 -1
  416. package/dist/testing/createTestApp.js +12 -3
  417. package/dist/testing/createTestPipelineApp.d.ts +25 -0
  418. package/dist/testing/createTestPipelineApp.d.ts.map +1 -0
  419. package/dist/testing/createTestPipelineApp.js +153 -0
  420. package/dist/testing/ensure.d.ts +108 -0
  421. package/dist/testing/ensure.d.ts.map +1 -0
  422. package/dist/testing/ensure.js +522 -0
  423. package/dist/testing/ensure.trial.d.ts +2 -0
  424. package/dist/testing/ensure.trial.d.ts.map +1 -0
  425. package/dist/testing/ensure.trial.js +9 -0
  426. package/dist/testing/helpers/contentHtmlElements.d.ts.map +1 -1
  427. package/dist/testing/host.d.ts +80 -9
  428. package/dist/testing/host.d.ts.map +1 -1
  429. package/dist/testing/host.js +81 -20
  430. package/dist/testing/hostPipeline.d.ts +157 -0
  431. package/dist/testing/hostPipeline.d.ts.map +1 -0
  432. package/dist/testing/hostPipeline.js +341 -0
  433. package/dist/testing/hydrateTestApp.d.ts +17 -0
  434. package/dist/testing/hydrateTestApp.d.ts.map +1 -1
  435. package/dist/testing/hydrateTestApp.js +26 -6
  436. package/dist/testing/hydrateTestPipelineApp.d.ts +30 -0
  437. package/dist/testing/hydrateTestPipelineApp.d.ts.map +1 -0
  438. package/dist/testing/hydrateTestPipelineApp.js +190 -0
  439. package/dist/testing/index.d.ts +6 -3
  440. package/dist/testing/index.d.ts.map +1 -1
  441. package/dist/testing/index.js +4 -1
  442. package/dist/testing/resolveContent.d.ts +16 -0
  443. package/dist/testing/resolveContent.d.ts.map +1 -0
  444. package/dist/testing/resolveContent.js +65 -0
  445. package/dist/testing/testingComponentPackage.d.ts +3 -1
  446. package/dist/testing/testingComponentPackage.d.ts.map +1 -1
  447. package/dist/testing/testingComponentPackage.js +16 -1
  448. package/dist/update/integrateUpdateVdom.d.ts.map +1 -1
  449. package/dist/update/integrateUpdateVdom.js +35 -31
  450. package/dist/update/integrateUpdateVdomPrebuild.js +20 -20
  451. package/dist/validChildren.d.ts.map +1 -1
  452. package/dist/zones/react.d.ts.map +1 -1
  453. package/package.json +20 -18
  454. package/types/helpers.d.ts +11 -2
  455. package/types/jsx/html.d.ts +29 -25
  456. package/types/jsx/jsx.d.ts +8 -8
  457. package/types/modules.d.ts +14 -3
  458. package/types/testing.d.ts +0 -0
  459. package/vendor/babel-core.js +5 -5
  460. package/vendor/babel-parser.js +1 -1
  461. package/vendor/babel-preset-react.js +32 -34
  462. package/vendor/babel-preset-typescript.js +5 -5
  463. package/vendor/chalk-extensions.js +3 -146
  464. package/vendor/chokidar.js +311 -5
  465. package/vendor/chunk-B34JUlnS.js +169 -0
  466. package/vendor/{chunk-Bu8ZRE-c.js → chunk-B9ttgKqg.js} +28 -25
  467. package/vendor/{chunk-D2EnpcLg.js → chunk-BGvapINa.js} +3 -164
  468. package/vendor/{chunk-Cqrj-Zqr.js → chunk-BmAiqUzD.js} +22 -8
  469. package/vendor/{chunk-BiUcnLhT.js → chunk-But4T5N_.js} +8 -3
  470. package/vendor/{chunk-OUnVY4Wm.js → chunk-DuR6SGzI.js} +162 -35
  471. package/vendor/dotenv.js +2 -2
  472. package/vendor/express.js +61 -10
  473. package/vendor/manifest.json +2 -2
  474. package/vendor/postcss.js +1 -1
  475. package/vendor/precinct.js +5914 -3591
  476. package/vendor/valibot.js +418 -504
  477. package/dist/Servers/MatchedRouteInfo.d.ts +0 -11
  478. package/dist/Servers/MatchedRouteInfo.d.ts.map +0 -1
  479. package/dist/routing/__fluentRouteBuilder.d.ts +0 -80
  480. package/dist/routing/__fluentRouteBuilder.d.ts.map +0 -1
  481. package/dist/routing/__fluentRouteBuilder.js +0 -183
  482. package/dist/routing/__fluentRoutes.d.ts +0 -2
  483. package/dist/routing/__fluentRoutes.d.ts.map +0 -1
  484. package/dist/routing/__fluentRoutes.js +0 -59
  485. package/vendor/chunk-Hy-cCmu-.js +0 -23
  486. /package/dist/{Servers → routing}/MatchedRouteInfo.js +0 -0
@@ -0,0 +1,190 @@
1
+ import { $props, $type } from '../contentNodeSymbols.js';
2
+ import { DomPointer } from '../DomPointer.js';
3
+ import { hydrateRootComponent, hydrationRouting, makeDefaultHydrateMeta } from "../hydrate/hydrate.js";
4
+ import { Instance } from '../Instance/Instance.js';
5
+ import { JSONstringify } from '../json.js';
6
+ import { NetworkedTransport } from '../pipeline/networkedTransport.js';
7
+ import { afterRoutingFor, pipelineRoutes, routingContext, routingNetworkedData, symmetricServer } from '../pipeline/runPipeline.js';
8
+ import { clientRoute } from '../pipeline/pipelineDefinition.js';
9
+ import { splitServer } from '../pipeline/runSplitPipeline.js';
10
+ import { contentTreeToRenderingTree } from '../render/contentTreeToRenderingTree.js';
11
+ import { renderingNodeToHtml } from '../render/renderingTreeToHtml.js';
12
+ import { initStores } from '../Servers/initStores.js';
13
+ import { UpdateScheduler } from '../update/UpdateScheduler.js';
14
+ import { bridgeHappyDomGlobals, HydrateTestAppImplementation, requireClient } from './hydrateTestApp.js';
15
+ import { waitForEnvIfLoading } from './loadEnv.js';
16
+ // the framework brands what it builds
17
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
18
+ const asGlobalData = data => data;
19
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
20
+ const asContext = context => context;
21
+ const applyStores = async (instance, overrides) => {
22
+ for (const override of overrides) {
23
+ await override.initialize(override.registration.getStore(instance.stores));
24
+ }
25
+ };
26
+ const appRoutesFor = (app, init) => reqRes => pipelineRoutes(app, reqRes, init, true);
27
+ /**
28
+ * hydrateTestApp() for an app built with pipeline() or splitPipeline(): the server pass runs the
29
+ * app's server stages, as a request does, and renders; the page carries the all-routes data and
30
+ * the networked data; the client pass runs the app's client stages, as hydratePipeline() does, and
31
+ * hydrates the parsed HTML. So a component whose markup depends on a context only one side makes
32
+ * shows up in `mismatches`, or throws on a structural difference.
33
+ */
34
+ export async function hydrateTestPipelineApp(app, RootComponent, ...args) {
35
+ requireClient('hydrateTestPipelineApp()');
36
+ await waitForEnvIfLoading();
37
+ const options = args[0];
38
+ const suppliedDocument = options?.document ?? globalThis.document;
39
+ if (suppliedDocument === undefined) {
40
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition
41
+ throw new Error('hydrateTestPipelineApp() requires options.document when no global document is' + ' available.');
42
+ }
43
+ const document = suppliedDocument;
44
+ const ownsContainer = options?.container === undefined;
45
+ const container = options?.container ?? document.createElement('div');
46
+ if (container.ownerDocument !== document) {
47
+ throw new Error('The HydrateTestApp container must belong to options.document.');
48
+ }
49
+ if (container.childNodes.length > 0) {
50
+ throw new Error('The HydrateTestApp container must be empty before hydrating.');
51
+ }
52
+ const clientProps = options?.props ?? {}; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
53
+ const serverProps = options?.serverProps ?? clientProps;
54
+ const location = options?.location ?? '/';
55
+ const overrides = options?.stores ?? [];
56
+ const instanceConfig = {
57
+ prod: false,
58
+ useRootComponent: true,
59
+ clientSideNav: true,
60
+ siteBasePath: '/',
61
+ staticSite: false,
62
+ csr: options?.csr ?? false
63
+ };
64
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- a stand-in request
65
+ const reqRes = options?.reqRes ?? {
66
+ req: {
67
+ url: location,
68
+ headers: {}
69
+ },
70
+ res: {}
71
+ };
72
+ // Server pass: the app's server stages, as PipelineRequestHandler runs them, then the render
73
+ const runner = app.split === true ? splitServer : symmetricServer;
74
+ const serverDataLoading = {
75
+ value: false
76
+ };
77
+ const routed = await runner.route(app, reqRes, location, serverDataLoading, true);
78
+ const post = await runner.post(app, reqRes, routed.init, routed.allRoutesData);
79
+ const served = runner.networked(routed.init, post);
80
+ const transport = new NetworkedTransport(served);
81
+ transport.snapshotAfterRouting();
82
+ const serverGlobalData = asGlobalData(routed.allRoutesData);
83
+ const ssrScheduler = new UpdateScheduler();
84
+ let html;
85
+ try {
86
+ const serverContext = asContext(runner.context(routed.init, post));
87
+ const serverNetworked = transport; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- as the request handler hands it
88
+ const ssrStores = initStores(location, reqRes, serverGlobalData, routed.matchedRouteInfo, serverDataLoading, serverContext, serverNetworked);
89
+ const ssrInstance = new Instance(location, instanceConfig, reqRes, appRoutesFor(app, routed.init), routed.routes, ssrStores.internalStore, ssrStores.stores, ssrStores.storeSubscriptions, serverGlobalData, routed.matchedRouteInfo, {
90
+ document,
91
+ window: document.defaultView,
92
+ scheduler: ssrScheduler,
93
+ navigation: false
94
+ });
95
+ ssrInstance.fileVersions = options?.fileVersions;
96
+ ssrInstance.context = serverContext;
97
+ ssrInstance.networkedData = serverNetworked;
98
+ ssrInstance.pipelineNetworked = served ?? {};
99
+ await applyStores(ssrInstance, overrides);
100
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- rootToHtml.ts builds a root content node the same way
101
+ const componentNode = {
102
+ [$type]: RootComponent,
103
+ [$props]: serverProps
104
+ };
105
+ const renderingTree = await contentTreeToRenderingTree(componentNode, null, ssrInstance, false);
106
+ const headData = {
107
+ found: false,
108
+ instance: ssrInstance,
109
+ clientImportAliases: {},
110
+ importAliases: {},
111
+ compilationLocation: '',
112
+ dev: false,
113
+ tungstenPublicEnv: undefined,
114
+ siteBasePath: '',
115
+ hmr: true,
116
+ csr: instanceConfig.csr
117
+ };
118
+ html = await renderingNodeToHtml(renderingTree, false, headData, null);
119
+ } finally {
120
+ ssrScheduler.dispose();
121
+ }
122
+ // what the page carries: processHead writes the transport after the render
123
+ const fromPage = JSON.parse(JSONstringify(transport));
124
+ if (ownsContainer) {
125
+ if (document.body === null) {
126
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition
127
+ throw new Error('The supplied document must have a body element.');
128
+ }
129
+ document.body.appendChild(container);
130
+ }
131
+ container.innerHTML = html;
132
+ bridgeHappyDomGlobals(document);
133
+ // Client pass: the app's own client run, with the page's data, as hydratePipeline() runs it
134
+ const ran = await app.client(app, serverGlobalData, fromPage);
135
+ const routes = pipelineRoutes(app, null, ran.init, true);
136
+ const {
137
+ key,
138
+ params,
139
+ data
140
+ } = routed.matchedRouteInfo;
141
+ const matchedRouteInfo = hydrationRouting({
142
+ key,
143
+ params,
144
+ ...('data' in routed.matchedRouteInfo ? {
145
+ data
146
+ } : {})
147
+ }, routes);
148
+ const afterRouting = afterRoutingFor(ran.afterRouting);
149
+ const context = afterRouting === undefined ? asContext(ran.context) : await afterRouting(clientRoute(matchedRouteInfo, location), serverGlobalData);
150
+ const networkedData = routingNetworkedData(ran.routingNetworkedData);
151
+ const scheduler = new UpdateScheduler();
152
+ const {
153
+ internalStore,
154
+ stores,
155
+ storeSubscriptions
156
+ } = initStores(location, null, serverGlobalData, matchedRouteInfo, null, context, networkedData);
157
+ const instance = new Instance(location, instanceConfig, null, appRoutesFor(app, ran.init), routes, internalStore, stores, storeSubscriptions, serverGlobalData, matchedRouteInfo, {
158
+ document,
159
+ window: document.defaultView,
160
+ scheduler,
161
+ navigation: false
162
+ });
163
+ instance.fileVersions = options?.fileVersions;
164
+ instance.context = context;
165
+ instance.networkedData = networkedData;
166
+ instance.pipelineNetworked = ran.networked;
167
+ const rerun = ran.allRoutesData;
168
+ instance.pipeline = {
169
+ routingContext: routingContext(ran.routingContext),
170
+ routingNetworkedData: networkedData,
171
+ allRoutesData: rerun && (async () => asGlobalData(await rerun())),
172
+ afterRouting
173
+ };
174
+ try {
175
+ await applyStores(instance, overrides);
176
+ const meta = makeDefaultHydrateMeta();
177
+ const component = await hydrateRootComponent(instance, RootComponent, new DomPointer(container, 0), meta, clientProps, matchedRouteInfo.params, matchedRouteInfo.data);
178
+ return new HydrateTestAppImplementation(document, container, component, instance, scheduler, ownsContainer, html, meta.mismatches);
179
+ } catch (error) {
180
+ try {
181
+ instance.disposeRegisteredComponents();
182
+ } catch {
183
+ // Preserve the mount failure.
184
+ }
185
+ scheduler.dispose();
186
+ while (container.firstChild !== null) container.removeChild(container.firstChild);
187
+ if (ownsContainer) container.remove();
188
+ throw error;
189
+ }
190
+ }
@@ -1,9 +1,12 @@
1
1
  export { loadEnv } from './loadEnv.js';
2
2
  export { testEnvVariableName } from './testEnvIsRequested.js';
3
- export { hydrateTestApp, type HydrateTestApp, type HydrateTestAppOptions } from './hydrateTestApp.js';
4
- export { createTestApp, testStore, type ComponentProps, type CreateTestAppArgs, type TestApp, type TestAppOptions, type TestStore, type TestStoreOverride, type TestStoreRegistration, type TestRoutes, } from './createTestApp.js';
5
- export { host, type HostOptions, type HostStoreOptions, type Hosted } from './host.js';
3
+ export { type HydrateTestApp, type HydrateTestAppOptions, hydrateTestApp, } from './hydrateTestApp.js';
4
+ export { type HydrateTestPipelineApp, type HydrateTestPipelineAppOptions, hydrateTestPipelineApp, } from './hydrateTestPipelineApp.js';
5
+ export { type ComponentProps, type CreateTestAppArgs, type TestApp, type TestAppOptions, type TestStore, type TestStoreOverride, type TestStoreRegistration, type TestRoutes, createTestApp, testStore, } from './createTestApp.js';
6
+ export { type CreateTestPipelineAppArgs, type TestPipelineApp, type TestPipelineAppOptions, createTestPipelineApp, } from './createTestPipelineApp.js';
7
+ export { type HostOptions, type HostStoreOptions, type Hosted, type HostedResolved, host, hostGeneric, hostJsx, } from './host.js';
6
8
  export { testingComponentPackage } from './testingComponentPackage.js';
7
9
  export { contentHtmlElements } from './helpers/contentHtmlElements.js';
10
+ export { ensure } from './ensure.js';
8
11
  export { makeStore, type TrueStore } from '../Store/makeStore.js';
9
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AACrG,OAAO,EACH,aAAa,EACb,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,GAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EACH,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAC/C,cAAc,GACjB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACH,KAAK,sBAAsB,EAAE,KAAK,6BAA6B,EAC/D,sBAAsB,GACzB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACH,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,KAAK,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,SAAS,EAC9F,KAAK,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,KAAK,UAAU,EACnE,aAAa,EAAE,SAAS,GAC3B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACH,KAAK,yBAAyB,EAAE,KAAK,eAAe,EAAE,KAAK,sBAAsB,EACjF,qBAAqB,GACxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACH,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EACzE,IAAI,EAAE,WAAW,EAAE,OAAO,GAC7B,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1,8 +1,11 @@
1
1
  export { loadEnv } from './loadEnv.js';
2
2
  export { testEnvVariableName } from './testEnvIsRequested.js';
3
3
  export { hydrateTestApp } from './hydrateTestApp.js';
4
+ export { hydrateTestPipelineApp } from './hydrateTestPipelineApp.js';
4
5
  export { createTestApp, testStore } from './createTestApp.js';
5
- export { host } from './host.js';
6
+ export { createTestPipelineApp } from './createTestPipelineApp.js';
7
+ export { host, hostGeneric, hostJsx } from './host.js';
6
8
  export { testingComponentPackage } from './testingComponentPackage.js';
7
9
  export { contentHtmlElements } from './helpers/contentHtmlElements.js';
10
+ export { ensure } from './ensure.js';
8
11
  export { makeStore } from '../Store/makeStore.js';
@@ -0,0 +1,16 @@
1
+ import type { AnyComponent } from '../AnyComponent.js';
2
+ import type { Instance } from '../Instance/Instance.js';
3
+ import type { ContentNode } from '../ContentNode.js';
4
+ /**
5
+ * The tree as it renders: every component in it constructed and asked for its content, down to
6
+ * html and text. host({ resolve: true }) hands this back, where host() alone hands back what the
7
+ * hosted component itself returned, its child components still unexpanded.
8
+ *
9
+ * render/contentTreeToRenderingTree does this for the app, but a rendering tree drops a component's
10
+ * props, keeping only its rendered children. Here a component node stays as written - its type, key
11
+ * and props - with what it rendered in place of the children it was passed, so a test can read it
12
+ * by name and by prop as well as by what it put on the page.
13
+ */
14
+ export declare function resolveContent(content: ContentNode, parentComponent: AnyComponent | null, instance: Instance, constructed?: Constructed): Promise<ContentNode>;
15
+ export type Constructed = (component: object) => void;
16
+ //# sourceMappingURL=resolveContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveContent.d.ts","sourceRoot":"","sources":["../../src/testing/resolveContent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,EAAE,WAAW,EAA4C,MAAM,mBAAmB,CAAA;AAa9F;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAChC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,GAAG,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAG9E,WAAW,CAAC,EAAE,WAAW,GAC1B,OAAO,CAAC,WAAW,CAAC,CAiBtB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA"}
@@ -0,0 +1,65 @@
1
+ import { ContentNodeComponentIsClassComponent, ContentNodeElementIsComponent, ContentNodeIsArray, ContentNodeIsElement, ContentNodeIsLiteral } from '../ContentNode.js';
2
+ import { $props, $type } from '../contentNodeSymbols.js';
3
+ import { clearCurrentComponent } from '../hooks/clearCurrentComponent.js';
4
+ import { setCurrentComponent } from '../hooks/setCurrentComponent.js';
5
+ import { getStyledContentFromFunctionComponent } from '../getStyledContentFromFunctionComponent.js';
6
+ import { instantiateClassComponent } from '../render/instantiateClassComponent.js';
7
+ import { instantiateFunctionComponent } from '../render/instantiateFunctionComponent.js';
8
+ /**
9
+ * The tree as it renders: every component in it constructed and asked for its content, down to
10
+ * html and text. host({ resolve: true }) hands this back, where host() alone hands back what the
11
+ * hosted component itself returned, its child components still unexpanded.
12
+ *
13
+ * render/contentTreeToRenderingTree does this for the app, but a rendering tree drops a component's
14
+ * props, keeping only its rendered children. Here a component node stays as written - its type, key
15
+ * and props - with what it rendered in place of the children it was passed, so a test can read it
16
+ * by name and by prop as well as by what it put on the page.
17
+ */
18
+ export async function resolveContent(content, parentComponent, instance,
19
+ // each component once built, before its content is asked for: host() guards a partial store on
20
+ // it, as it does the one it hosts. Its init has already run, so a key read there is not covered
21
+ constructed) {
22
+ if (ContentNodeIsArray(content)) {
23
+ const nodes = [];
24
+ // in order: a component's init may read what an earlier one wrote
25
+ for (const node of content) {
26
+ nodes.push(await resolveContent(node, parentComponent, instance, constructed));
27
+ }
28
+ return nodes;
29
+ }
30
+ if (ContentNodeIsLiteral(content) || !ContentNodeIsElement(content)) return content;
31
+ // an element or fragment: its children as they render. A component's children are its output
32
+ if (!ContentNodeElementIsComponent(content)) {
33
+ return withChildren(content, await resolveContent(content[$props].children, parentComponent, instance, constructed));
34
+ }
35
+ return withChildren(content, await rendered(content, parentComponent, instance, constructed));
36
+ }
37
+ // what the component put on the page, resolved in its turn.
38
+ // As render/componentNodeToRenderingTree: a component the app renders on the client alone never
39
+ // runs its content here, so its placeholder stands for it
40
+ async function rendered(node, parentComponent, instance, constructed) {
41
+ const render = node[$type].render;
42
+ if (render !== undefined) {
43
+ const placeholder = typeof render === 'object' && 'placeholder' in render ? render.placeholder : null;
44
+ return resolveContent(placeholder, parentComponent, instance, constructed);
45
+ }
46
+ // parentComponent, not the component itself: the parent the framework's own render path passes
47
+ if (ContentNodeComponentIsClassComponent(node)) {
48
+ const component = await instantiateClassComponent(node, parentComponent, instance);
49
+ constructed?.(component);
50
+ return resolveContent(await component.__styledContent(), parentComponent, instance, constructed);
51
+ }
52
+ const standIn = instantiateFunctionComponent(node, parentComponent, instance);
53
+ setCurrentComponent(standIn);
54
+ const content = await getStyledContentFromFunctionComponent(standIn);
55
+ clearCurrentComponent();
56
+ return resolveContent(content, parentComponent, instance, constructed);
57
+ }
58
+ // the node as written, with the content it holds replaced
59
+ const withChildren = (node, children) => ({
60
+ ...node,
61
+ [$props]: {
62
+ ...node[$props],
63
+ children
64
+ }
65
+ });
@@ -3,11 +3,13 @@ import type { Instance } from '../Instance/Instance.js';
3
3
  import type { InstanceConfig } from '../Instance/InstanceConfig.js';
4
4
  import type { PartialInternalStoreSchema } from '../Store/InternalStoreSchema.js';
5
5
  import type { GlobalData } from '../routing/registerGlobalData.js';
6
- import { $trueStoreValue, type TrueStore } from '../Store/makeStore.js';
6
+ import { type TrueStore, $trueStoreValue } from '../Store/makeStore.js';
7
7
  export type TestingComponentPackageOptions = {
8
8
  store?: Partial<TrueStore<any>>;
9
9
  routes?: object;
10
10
  globalData?: GlobalData;
11
+ context?: object;
12
+ networkedData?: object;
11
13
  internalStore?: PartialInternalStoreSchema;
12
14
  config?: Partial<InstanceConfig>;
13
15
  trackWork?: Instance['trackWork'];
@@ -1 +1 @@
1
- {"version":3,"file":"testingComponentPackage.d.ts","sourceRoot":"","sources":["../../src/testing/testingComponentPackage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAA;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAuB,0BAA0B,EAAE,MAAM,iCAAiC,CAAA;AACtG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAGlE,OAAO,EACH,eAAe,EAAc,KAAK,SAAS,EAC9C,MAAM,uBAAuB,CAAA;AAI9B,MAAM,MAAM,8BAA8B,GAAG;IAIzC,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IAG/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,UAAU,CAAA;IAMvB,aAAa,CAAC,EAAE,0BAA0B,CAAA;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAGhC,SAAS,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IAIjC,WAAW,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IAGrC,SAAS,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;IAG/B,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;CAClC,CAAA;AAYD,eAAO,MAAM,iBAAiB,GAAI,KAAK,EAAE,KAAK,MAAM;;eAEvC,KAAK;;;;gBAIJ,KAAK;aACN,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAG,EAAE;iBAC3F,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAG,EAAE;;CAErE,CAAA;AAoC3C,eAAO,MAAM,uBAAuB,GAAI,KAAK,SAAS,MAAM,EACxD,OAAO,KAAK,EACZ,UAAS,8BAAmC,KAC7C,gBAAgB,CAAC,KAAK,EAAE,SAAS,CA6ClC,CAAA"}
1
+ {"version":3,"file":"testingComponentPackage.d.ts","sourceRoot":"","sources":["../../src/testing/testingComponentPackage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAA;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EACa,0BAA0B,EAClD,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAIlE,OAAO,EACH,KAAK,SAAS,EACd,eAAe,EAClB,MAAM,uBAAuB,CAAA;AAK9B,MAAM,MAAM,8BAA8B,GAAG;IAIzC,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IAG/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IAMtB,aAAa,CAAC,EAAE,0BAA0B,CAAA;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAGhC,SAAS,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IAIjC,WAAW,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IAGrC,SAAS,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IACjC,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;IAG/B,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;CAClC,CAAA;AAYD,eAAO,MAAM,iBAAiB,GAAI,KAAK,EAAE,KAAK,MAAM;;eAEvC,KAAK;;;;gBAIJ,KAAK;aACN,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAG,EAAE;iBAC3F,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAG,EAAE;;CAErE,CAAA;AAoC3C,eAAO,MAAM,uBAAuB,GAAI,KAAK,SAAS,MAAM,EACxD,OAAO,KAAK,EACZ,UAAS,8BAAmC,KAC7C,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAyDlC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { $trueStoreValue, StoreValue } from '../Store/makeStore.js';
2
2
  import { routeKeyToUrl } from '../routing/routeUrl.js';
3
+ import { storeSchemas } from '../Store/storeCreators.js';
3
4
  const missing = key => {
4
5
  throw new Error(`testingComponentPackage: no ${key} supplied. Pass one in the options if the value is part` + ` of the test, or use createTestApp() for a component that needs a real app.`);
5
6
  };
@@ -51,14 +52,23 @@ export const testingComponentPackage = (props, options = {}) => ({
51
52
  // the rest.
52
53
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
53
54
  instance: {
55
+ // the one store stands in every slot, whichever registerStore() gave the component
56
+ stores: Array.from({
57
+ length: Math.max(storeSchemas.length, 1)
58
+ },
54
59
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- partial by design: host() names the keys left out
55
- stores: [options.store ?? {}],
60
+ () => options.store ?? {}),
56
61
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- the mock supplies store keys, not the store machinery behind them
57
62
  internalStore: internalStore(options.internalStore),
58
63
  // Route passthrough: tests supply loosely-typed route maps, narrowed
59
64
  // to Routes here (assertion confined to this boundary).
60
65
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
61
66
  getRoutes: () => options.routes ?? {},
67
+ // what this.tungsten.routes reads
68
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
69
+ get routes() {
70
+ return options.routes ?? {};
71
+ },
62
72
  // the instance's own copies of what the store holds - one source, as
63
73
  // updateLocation() keeps them in the real thing
64
74
  get location() {
@@ -68,6 +78,11 @@ export const testingComponentPackage = (props, options = {}) => ({
68
78
  return options.internalStore?.matchedRouteInfo ?? missing('internalStore.matchedRouteInfo');
69
79
  },
70
80
  globalData: options.globalData ?? {},
81
+ // the framework brands what it builds, and here the test built it
82
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
83
+ context: options.context ?? {},
84
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
85
+ networkedData: options.networkedData ?? {},
71
86
  config: {
72
87
  ...defaultConfig,
73
88
  ...options.config
@@ -1 +1 @@
1
- {"version":3,"file":"integrateUpdateVdom.d.ts","sourceRoot":"","sources":["../../src/update/integrateUpdateVdom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"integrateUpdateVdom.d.ts","sourceRoot":"","sources":["../../src/update/integrateUpdateVdom.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { setCurrentComponent } from 'tungsten/hooks/setCurrentComponent.js';
2
- import { clearCurrentComponent } from 'tungsten/hooks/clearCurrentComponent.js';
1
+ import { setCurrentComponent } from '../hooks/setCurrentComponent.js';
2
+ import { clearCurrentComponent } from '../hooks/clearCurrentComponent.js';
3
3
  import { IsHTMLElement } from '../DomNodes.js';
4
4
  import { DomRegion } from '../DomRegion.js';
5
5
  import { DomPointer } from '../DomPointer.js';
@@ -10,6 +10,7 @@ import { out, warn } from '../appOutput.js';
10
10
  import { getStyledContentFromFunctionComponent } from '../getStyledContentFromFunctionComponent.js';
11
11
  import { FunctionElement } from '../FunctionComponentStandIn.js';
12
12
  import { jssToCss } from '../style/jssToCss.js';
13
+ import { versionAttributes } from '../fileVersions.js';
13
14
  import { htmlEventHandlerKey } from '../htmlEventHandlerKey.js';
14
15
  import { $contentNull } from '../symbols.js';
15
16
  import { throwError } from '../throwError.js';
@@ -717,13 +718,14 @@ export function processHtmlNode(node, parentNode) {
717
718
  //// we have event handler code here as well as in addAttributes -- should this be moved to updateAttributes??
718
719
  if (node[$type] in bindableHtmlElementsString) {
719
720
  debug('binding');
720
- const [bindObject, bindKey] = props.bind;
721
- props.value = bindObject[bindKey] ?? ''; // nullish coalesce to avoid putting undef/null into elements
721
+ const [bindObject, bindKey] = props.bind; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
722
+ // nullish coalesce to avoid putting undef/null into elements
723
+ props.value = bindObject[bindKey] ?? ''; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
722
724
  let handler;
723
- if ('filter' in props) {
724
- const filterFunc = props.filter;
725
+ if ('convert' in props) {
726
+ const convertFunc = props.convert;
725
727
  handler = async event => {
726
- bindObject[bindKey] = await filterFunc(event.target.value, event);
728
+ bindObject[bindKey] = await convertFunc(event.target.value, event);
727
729
  };
728
730
  } else {
729
731
  handler = event => {
@@ -741,16 +743,17 @@ export function processHtmlNode(node, parentNode) {
741
743
  // should we be saving the handler like we do in hydrate?
742
744
  //props[eventName] = handler
743
745
  delete props.bind;
744
- delete props.filter;
746
+ delete props.convert;
745
747
  } else if (node[$type] in bindableHtmlElementsNumber) {
746
748
  debug('binding');
747
- const [bindObject, bindKey] = props.bind;
748
- props.value = bindObject[bindKey] ?? ''; // nullish coalesce to avoid putting undef/null into elements
749
+ const [bindObject, bindKey] = props.bind; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
750
+ // nullish coalesce to avoid putting undef/null into elements
751
+ props.value = bindObject[bindKey] ?? ''; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
749
752
  let handler;
750
- if ('filter' in props) {
751
- const filterFunc = props.filter;
753
+ if ('convert' in props) {
754
+ const convertFunc = props.convert;
752
755
  handler = async event => {
753
- bindObject[bindKey] = await filterFunc(event.target.value, event);
756
+ bindObject[bindKey] = await convertFunc(event.target.value, event);
754
757
  };
755
758
  } else {
756
759
  handler = event => {
@@ -767,19 +770,19 @@ export function processHtmlNode(node, parentNode) {
767
770
  }
768
771
  //props[eventName] = handler
769
772
  delete props.bind;
770
- delete props.filter;
773
+ delete props.convert;
771
774
  }
772
775
  }
773
776
  if (props.bindChecked !== undefined) {
774
777
  const eventName = 'onChange';
775
778
  debug('bindChecked');
776
- const [bindObject, bindKey] = props.bindChecked;
779
+ const [bindObject, bindKey] = props.bindChecked; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
777
780
  props.checked = checkedValueToBoolean(bindObject[bindKey]);
778
781
  let handler;
779
- if ('filterChecked' in props) {
780
- const filterFunc = props.filterChecked;
782
+ if ('convertChecked' in props) {
783
+ const convertFunc = props.convertChecked;
781
784
  handler = async event => {
782
- bindObject[bindKey] = await filterFunc(event.target.checked, event);
785
+ bindObject[bindKey] = await convertFunc(event.target.checked, event);
783
786
  };
784
787
  } else {
785
788
  handler = event => {
@@ -795,12 +798,12 @@ export function processHtmlNode(node, parentNode) {
795
798
  props[eventName] = handler;
796
799
  }
797
800
  delete props.bindChecked;
798
- delete props.filterChecked;
801
+ delete props.convertChecked;
799
802
  }
800
803
  if (props.bindRadio !== undefined) {
801
804
  const eventName = 'onChange';
802
805
  debug('bindRadio');
803
- const [bindObject, bindKey] = props.bindRadio;
806
+ const [bindObject, bindKey] = props.bindRadio; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
804
807
  props.checked = bindObject[bindKey] === props.value;
805
808
  const handler = event => {
806
809
  //console.log('bound radio changed 3', (event.target as HTMLCheckedBindableElement).value)
@@ -922,7 +925,7 @@ function removeAttribute(htmlElement, attr) {
922
925
  }
923
926
  function addAttributes(tungstenElement, instance, node, domNode) {
924
927
  //console.log('-addAttributes', node)
925
- const attributes = processAttributes(node);
928
+ const attributes = versionAttributes(processAttributes(node), instance);
926
929
  debug('attributes', attributes);
927
930
  for (const key in attributes) {
928
931
  //console.log('attr', key)
@@ -965,7 +968,7 @@ function updateAttributes(tungstenElement, instance, node, oldNode, domNodeHTMLE
965
968
  const domNode = domNodeHTMLElement;
966
969
  //console.log('-updateAttributes', node)
967
970
  debug('-updateAttributes', node);
968
- const newAttributes = processAttributes(node);
971
+ const newAttributes = versionAttributes(processAttributes(node), instance);
969
972
  // are re-process the old node attribs here to we can see what we applied last time.
970
973
  // would be better to save this and then grab it later
971
974
  //const oldAttributes = processAttributes(oldNode)
@@ -1064,10 +1067,10 @@ function processAttributes(node) {
1064
1067
  // this will overwrite any other onChange
1065
1068
  if (node[$type] in bindableHtmlElementsString) {
1066
1069
  let handler;
1067
- if ('filter' in attributes) {
1068
- const filterFunc = attributes.filter;
1070
+ if ('convert' in attributes) {
1071
+ const convertFunc = attributes.convert;
1069
1072
  handler = async event => {
1070
- bind[0][bind[1]] = await filterFunc(event.target.value, event);
1073
+ bind[0][bind[1]] = await convertFunc(event.target.value, event);
1071
1074
  };
1072
1075
  } else {
1073
1076
  handler = event => {
@@ -1077,10 +1080,10 @@ function processAttributes(node) {
1077
1080
  attributes.onChange = handler;
1078
1081
  } else if (node[$type] in bindableHtmlElementsNumber) {
1079
1082
  let handler;
1080
- if ('filter' in attributes) {
1081
- const filterFunc = attributes.filter;
1083
+ if ('convert' in attributes) {
1084
+ const convertFunc = attributes.convert;
1082
1085
  handler = async event => {
1083
- bind[0][bind[1]] = await filterFunc(event.target.value, event);
1086
+ bind[0][bind[1]] = await convertFunc(event.target.value, event);
1084
1087
  };
1085
1088
  } else {
1086
1089
  handler = event => {
@@ -1090,7 +1093,7 @@ function processAttributes(node) {
1090
1093
  attributes.onChange = handler;
1091
1094
  }
1092
1095
  delete attributes.bind;
1093
- delete attributes.filter;
1096
+ delete attributes.convert;
1094
1097
  }
1095
1098
  if (attributes.children !== undefined) {
1096
1099
  delete attributes.children;
@@ -1448,7 +1451,7 @@ export async function hotSwapFunctionComponent(oldElement, NewType) {
1448
1451
  standIn.__domRegion = new DomRegion(parent, domStartIndex, domPointer.index - domStartIndex);
1449
1452
  standIn.__currentContent = renderedContent;
1450
1453
  wrapper.element = standIn;
1451
- wrapper[$props] = standIn.props;
1454
+ wrapper[$props] = standIn.props; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
1452
1455
  standIn.__renderedNode = wrapper;
1453
1456
  return standIn;
1454
1457
  }
@@ -1464,6 +1467,7 @@ export async function hotSwapClassComponent(oldElement, NewType) {
1464
1467
  if (wrapper === undefined) return null;
1465
1468
  const newElement = new NewType({
1466
1469
  props: oldElement.props,
1470
+ // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
1467
1471
  routeParams: oldElement.routeParams,
1468
1472
  routeData: oldElement.routeData,
1469
1473
  instance: oldElement.__instance,
@@ -1491,7 +1495,7 @@ export async function hotSwapClassComponent(oldElement, NewType) {
1491
1495
  newElement.__currentContent = renderedContent;
1492
1496
  queueMount(() => newElement.__didMount());
1493
1497
  wrapper.element = newElement;
1494
- wrapper[$props] = newElement.props;
1498
+ wrapper[$props] = newElement.props; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
1495
1499
  newElement.__renderedNode = wrapper;
1496
1500
  return newElement;
1497
1501
  }