tungsten 0.6.3 → 0.7.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 (532) 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 +9 -1
  14. package/dist/FrameworkConfig.d.ts.map +1 -1
  15. package/dist/FrameworkConfig.types.test.d.ts +2 -0
  16. package/dist/FrameworkConfig.types.test.d.ts.map +1 -0
  17. package/dist/FrameworkConfig.types.test.js +6 -0
  18. package/dist/FunctionComponent.d.ts +1 -0
  19. package/dist/FunctionComponent.d.ts.map +1 -1
  20. package/dist/FunctionComponentStandIn.d.ts.map +1 -1
  21. package/dist/Instance/Instance.d.ts +21 -9
  22. package/dist/Instance/Instance.d.ts.map +1 -1
  23. package/dist/Instance/Instance.js +42 -38
  24. package/dist/Instance/InstanceConfig.d.ts +3 -1
  25. package/dist/Instance/InstanceConfig.d.ts.map +1 -1
  26. package/dist/RenderedContentNode.d.ts.map +1 -1
  27. package/dist/RenderingNode.d.ts.map +1 -1
  28. package/dist/Servers/DevServer.d.ts +4 -2
  29. package/dist/Servers/DevServer.d.ts.map +1 -1
  30. package/dist/Servers/DevServer.js +72 -21
  31. package/dist/Servers/ProdServer.d.ts +5 -2
  32. package/dist/Servers/ProdServer.d.ts.map +1 -1
  33. package/dist/Servers/ProdServer.js +95 -19
  34. package/dist/Servers/StaticSiteServer.d.ts +1 -1
  35. package/dist/Servers/StaticSiteServer.d.ts.map +1 -1
  36. package/dist/Servers/TungstenServer.d.ts +2 -1
  37. package/dist/Servers/TungstenServer.d.ts.map +1 -1
  38. package/dist/Servers/TungstenServer.js +7 -0
  39. package/dist/Servers/cacheVersioned.d.ts +3 -0
  40. package/dist/Servers/cacheVersioned.d.ts.map +1 -0
  41. package/dist/Servers/cacheVersioned.js +23 -0
  42. package/dist/Servers/devErrorPageAutoRetry.d.ts.map +1 -1
  43. package/dist/Servers/devErrorPageAutoRetry.js +1 -0
  44. package/dist/Servers/initStores.d.ts +4 -4
  45. package/dist/Servers/initStores.d.ts.map +1 -1
  46. package/dist/Servers/initStores.js +2 -2
  47. package/dist/Servers/loadEnvsDev.d.ts.map +1 -1
  48. package/dist/Servers/loadEnvsDev.js +7 -6
  49. package/dist/Servers/resetRegistrations.d.ts +2 -0
  50. package/dist/Servers/resetRegistrations.d.ts.map +1 -0
  51. package/dist/Servers/resetRegistrations.js +13 -0
  52. package/dist/Servers/routing.d.ts +3 -2
  53. package/dist/Servers/routing.d.ts.map +1 -1
  54. package/dist/Servers/routing.js +12 -7
  55. package/dist/Servers/stubInstance.d.ts +8 -0
  56. package/dist/Servers/stubInstance.d.ts.map +1 -0
  57. package/dist/Servers/stubInstance.js +40 -0
  58. package/dist/Store/InternalStoreSchema.d.ts +1 -1
  59. package/dist/Store/Store.js +2 -1
  60. package/dist/Store/StoreSchemaClass.d.ts +6 -3
  61. package/dist/Store/StoreSchemaClass.d.ts.map +1 -1
  62. package/dist/Store/StoreSchemaClass.js +8 -1
  63. package/dist/Store/TypeSafeStore.js +2 -1
  64. package/dist/Store/createStores.d.ts +3 -3
  65. package/dist/Store/createStores.d.ts.map +1 -1
  66. package/dist/Store/createStores.js +7 -2
  67. package/dist/Store/getInternalStore.d.ts.map +1 -1
  68. package/dist/Store/registerStore.d.ts.map +1 -1
  69. package/dist/Store/registerStore.js +2 -2
  70. package/dist/Store/storeCreators.d.ts +2 -2
  71. package/dist/Store/storeCreators.d.ts.map +1 -1
  72. package/dist/TungstenApp.d.ts +3 -3
  73. package/dist/TungstenApp.d.ts.map +1 -1
  74. package/dist/_client/cjsHelpers.d.ts.map +1 -1
  75. package/dist/_client/cjsHelpers.js +5 -3
  76. package/dist/_client/client.d.ts +2 -0
  77. package/dist/_client/client.d.ts.map +1 -1
  78. package/dist/_client/client.js +10 -3
  79. package/dist/api/getApiRoutes.d.ts.map +1 -1
  80. package/dist/api/getExport.d.ts +1 -1
  81. package/dist/api/getExport.d.ts.map +1 -1
  82. package/dist/api/getExport.js +2 -1
  83. package/dist/api/getExportDev.d.ts +1 -1
  84. package/dist/api/getExportDev.d.ts.map +1 -1
  85. package/dist/appBuilder.d.ts +69 -0
  86. package/dist/appBuilder.d.ts.map +1 -0
  87. package/dist/appBuilder.js +98 -0
  88. package/dist/appBuilder.types.test.d.ts +110 -0
  89. package/dist/appBuilder.types.test.d.ts.map +1 -0
  90. package/dist/appBuilder.types.test.js +240 -0
  91. package/dist/babelPlugins/BabelTransformBindDirect.js +7 -7
  92. package/dist/babelPlugins/BabelTransformBindVar.js +7 -7
  93. package/dist/babelPlugins/BabelTransformComponentState.d.ts.map +1 -1
  94. package/dist/babelPlugins/BabelTransformComponentStyles.d.ts.map +1 -1
  95. package/dist/babelPlugins/BabelTransformComponentStyles.js +5 -5
  96. package/dist/babelPlugins/BabelTransformCssImports.d.ts.map +1 -1
  97. package/dist/babelPlugins/BabelTransformCssImports.js +2 -2
  98. package/dist/babelPlugins/BabelTransformDeproxyState.d.ts.map +1 -1
  99. package/dist/babelPlugins/BabelTransformPackageImports.d.ts.map +1 -1
  100. package/dist/babelPlugins/BabelTransformPackageImports.js +11 -6
  101. package/dist/babelPlugins/BabelTransformRemoveDevBlocks.d.ts.map +1 -1
  102. package/dist/babelPlugins/BabelTransformRemoveServerBlocks.d.ts.map +1 -1
  103. package/dist/babelPlugins/BabelTypes.d.ts.map +1 -1
  104. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts.map +1 -1
  105. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.js +1 -1
  106. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts.map +1 -1
  107. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.js +2 -2
  108. package/dist/bin/commands/compile.d.ts.map +1 -1
  109. package/dist/bin/commands/compile.js +2 -1
  110. package/dist/build/CompilationInfo.d.ts +3 -0
  111. package/dist/build/CompilationInfo.d.ts.map +1 -1
  112. package/dist/build/assetVersions.d.ts +9 -0
  113. package/dist/build/assetVersions.d.ts.map +1 -0
  114. package/dist/build/assetVersions.js +39 -0
  115. package/dist/build/babel.user.common.config.d.ts.map +1 -1
  116. package/dist/build/bundle.d.ts.map +1 -1
  117. package/dist/build/bundle.js +2 -1
  118. package/dist/build/bundleBabelOptions.d.ts.map +1 -1
  119. package/dist/build/clientRoutesFile.d.ts +2 -0
  120. package/dist/build/clientRoutesFile.d.ts.map +1 -0
  121. package/dist/build/clientRoutesFile.js +13 -0
  122. package/dist/build/compileJavascript.d.ts.map +1 -1
  123. package/dist/build/compileJavascript.js +4 -3
  124. package/dist/build/compileStyles.d.ts +2 -1
  125. package/dist/build/compileStyles.d.ts.map +1 -1
  126. package/dist/build/compileStyles.js +38 -83
  127. package/dist/build/compileUserApp.d.ts.map +1 -1
  128. package/dist/build/componentStylesCache.d.ts.map +1 -1
  129. package/dist/build/componentStylesCache.js +3 -2
  130. package/dist/build/copyAssets.d.ts.map +1 -1
  131. package/dist/build/copyAssets.js +2 -1
  132. package/dist/build/copyPackageModulesToPackagesFolder.d.ts.map +1 -1
  133. package/dist/build/copyPackageModulesToPackagesFolder.js +1 -1
  134. package/dist/build/copyPublicFiles.d.ts.map +1 -1
  135. package/dist/build/copyPublicFiles.js +2 -1
  136. package/dist/build/createClientFiles.d.ts.map +1 -1
  137. package/dist/build/createClientFiles.js +9 -5
  138. package/dist/build/createInstanceConfigFile.d.ts +1 -1
  139. package/dist/build/createInstanceConfigFile.d.ts.map +1 -1
  140. package/dist/build/createInstanceConfigFile.js +9 -3
  141. package/dist/build/frameworkDestLocation.d.ts.map +1 -1
  142. package/dist/build/frameworkDestLocation.js +5 -6
  143. package/dist/build/frameworkStylesheets.d.ts.map +1 -1
  144. package/dist/build/frameworkStylesheets.js +1 -1
  145. package/dist/build/makeBabelRawConfig.d.ts.map +1 -1
  146. package/dist/build/makeBabelUserDevConfig.d.ts +2 -2
  147. package/dist/build/makeBabelUserDevConfig.d.ts.map +1 -1
  148. package/dist/build/makeBabelUserProdConfig.d.ts.map +1 -1
  149. package/dist/build/rollup.user.prod.config.d.ts.map +1 -1
  150. package/dist/build/rollup.user.prod.config.js +5 -3
  151. package/dist/build/rollupProdConstants.d.ts +5 -0
  152. package/dist/build/rollupProdConstants.d.ts.map +1 -0
  153. package/dist/build/rollupProdConstants.js +21 -0
  154. package/dist/cacheControl.d.ts +13 -0
  155. package/dist/cacheControl.d.ts.map +1 -0
  156. package/dist/cacheControl.js +22 -0
  157. package/dist/compat/types.d.ts +1 -1
  158. package/dist/compat/types.d.ts.map +1 -1
  159. package/dist/componentHelpers.d.ts +19 -0
  160. package/dist/componentHelpers.d.ts.map +1 -0
  161. package/dist/componentHelpers.js +31 -0
  162. package/dist/componentProxyHandlers.d.ts.map +1 -1
  163. package/dist/components/Fragment.d.ts +8 -0
  164. package/dist/components/Fragment.d.ts.map +1 -0
  165. package/dist/components/Fragment.js +10 -0
  166. package/dist/components/Link.d.ts +4 -3
  167. package/dist/components/Link.d.ts.map +1 -1
  168. package/dist/components/Link.js +1 -0
  169. package/dist/components/NoEscape.d.ts +8 -0
  170. package/dist/components/NoEscape.d.ts.map +1 -0
  171. package/dist/components/NoEscape.js +6 -0
  172. package/dist/components/RouteRedirectComponent.d.ts.map +1 -1
  173. package/dist/components/RouteRedirectComponent.js +1 -1
  174. package/dist/components/WebRedirectComponent.d.ts.map +1 -1
  175. package/dist/components/WebRedirectComponent.js +1 -1
  176. package/dist/components/bindable/BindVariable.d.ts +1 -0
  177. package/dist/components/bindable/BindVariable.d.ts.map +1 -1
  178. package/dist/components/bindable/BindableCheckbox.d.ts +7 -7
  179. package/dist/components/bindable/BindableCheckbox.d.ts.map +1 -1
  180. package/dist/components/bindable/BindableInput.d.ts +7 -7
  181. package/dist/components/bindable/BindableInput.d.ts.map +1 -1
  182. package/dist/components/bindable/BindableInputNonString.d.ts +2 -2
  183. package/dist/components/bindable/BindableInputNonString.d.ts.map +1 -1
  184. package/dist/components/bindable/BindableInputString.d.ts +2 -2
  185. package/dist/components/bindable/BindableInputString.d.ts.map +1 -1
  186. package/dist/components/bindable/BindableInputTyped.d.ts +3 -3
  187. package/dist/components/bindable/BindableInputTyped.d.ts.map +1 -1
  188. package/dist/components/bindable/BindableInputTypedLegacy.d.ts +3 -3
  189. package/dist/components/bindable/BindableInputTypedLegacy.d.ts.map +1 -1
  190. package/dist/components/bindable/BindableRadio.js +2 -2
  191. package/dist/components/bindable/BindableSelect.d.ts +13 -10
  192. package/dist/components/bindable/BindableSelect.d.ts.map +1 -1
  193. package/dist/components/bindable/BindableSelectNaive.js +3 -3
  194. package/dist/components/bindable/BindableTextarea.d.ts +7 -7
  195. package/dist/components/bindable/BindableTextarea.d.ts.map +1 -1
  196. package/dist/components/bindable/bindableCandidates.comparison.d.ts +136 -0
  197. package/dist/components/bindable/bindableCandidates.comparison.d.ts.map +1 -0
  198. package/dist/components/bindable/bindableCandidates.comparison.js +268 -0
  199. package/dist/components/bindable/bindableProps.types.test.d.ts +50 -0
  200. package/dist/components/bindable/bindableProps.types.test.d.ts.map +1 -0
  201. package/dist/components/bindable/bindableProps.types.test.js +252 -0
  202. package/dist/components/library/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  203. package/dist/components/library/RichTextEditor/contentTree.d.ts.map +1 -1
  204. package/dist/components/makeTypedLink.d.ts +9 -0
  205. package/dist/components/makeTypedLink.d.ts.map +1 -0
  206. package/dist/components/makeTypedLink.js +15 -0
  207. package/dist/context/registerContext.d.ts +22 -0
  208. package/dist/context/registerContext.d.ts.map +1 -0
  209. package/dist/context/registerContext.js +18 -0
  210. package/dist/env/getEnvSchemas.d.ts.map +1 -1
  211. package/dist/env/getEnvSchemas.js +2 -1
  212. package/dist/fileVersions.d.ts +9 -0
  213. package/dist/fileVersions.d.ts.map +1 -0
  214. package/dist/fileVersions.js +28 -0
  215. package/dist/findUserConfig.d.ts +1 -1
  216. package/dist/findUserConfig.d.ts.map +1 -1
  217. package/dist/findUserConfig.js +2 -1
  218. package/dist/frameworkConfigSchema.d.ts +16 -2
  219. package/dist/frameworkConfigSchema.d.ts.map +1 -1
  220. package/dist/frameworkConfigSchema.js +15 -3
  221. package/dist/getComponent.d.ts.map +1 -1
  222. package/dist/getComponent.js +4 -3
  223. package/dist/getRoutes.d.ts.map +1 -1
  224. package/dist/getRoutes.js +9 -8
  225. package/dist/getUserConfig.d.ts.map +1 -1
  226. package/dist/hmr/applyHmrModule.d.ts.map +1 -1
  227. package/dist/hmr/componentIdentity.js +1 -1
  228. package/dist/hooks/getCurrentComponent.d.ts +1 -1
  229. package/dist/hooks/getCurrentComponent.d.ts.map +1 -1
  230. package/dist/hydrate/hydrate.d.ts +5 -1
  231. package/dist/hydrate/hydrate.d.ts.map +1 -1
  232. package/dist/hydrate/hydrate.js +86 -52
  233. package/dist/hydrate/hydrateGlobalData.d.ts +4 -3
  234. package/dist/hydrate/hydrateGlobalData.d.ts.map +1 -1
  235. package/dist/hydrate/reconcileHydratedAttributes.d.ts +2 -1
  236. package/dist/hydrate/reconcileHydratedAttributes.d.ts.map +1 -1
  237. package/dist/hydrate/reconcileHydratedAttributes.js +4 -3
  238. package/dist/hydrate/renderHydrationMismatchBanner.d.ts.map +1 -1
  239. package/dist/hydrate/renderHydrationMismatchBanner.js +2 -1
  240. package/dist/hydrate/stubRouting.d.ts +8 -0
  241. package/dist/hydrate/stubRouting.d.ts.map +1 -0
  242. package/dist/hydrate/stubRouting.js +25 -0
  243. package/dist/importDevModuleWithRetry.d.ts +2 -1
  244. package/dist/importDevModuleWithRetry.d.ts.map +1 -1
  245. package/dist/importDevModuleWithRetry.js +2 -1
  246. package/dist/importModule.d.ts +3 -0
  247. package/dist/importModule.d.ts.map +1 -0
  248. package/dist/importModule.js +4 -0
  249. package/dist/index.js +2 -1
  250. package/dist/indexInner.d.ts +30 -7
  251. package/dist/indexInner.d.ts.map +1 -1
  252. package/dist/indexInner.js +37 -2
  253. package/dist/json.d.ts +12 -0
  254. package/dist/json.d.ts.map +1 -0
  255. package/dist/json.js +8 -0
  256. package/dist/jsxHelpers.d.ts +3 -0
  257. package/dist/jsxHelpers.d.ts.map +1 -0
  258. package/dist/jsxHelpers.js +6 -0
  259. package/dist/jsxRuntime.d.ts +1 -0
  260. package/dist/jsxRuntime.d.ts.map +1 -1
  261. package/dist/jsxRuntime.js +3 -1
  262. package/dist/jsxRuntimeSignals.d.ts.map +1 -1
  263. package/dist/jsxRuntimeSignals.js +1 -0
  264. package/dist/makeFinalConfig.d.ts.map +1 -1
  265. package/dist/makeFinalConfig.js +2 -0
  266. package/dist/makeInstanceConfigFromFrameworkConfig.d.ts.map +1 -1
  267. package/dist/makeInstanceConfigFromFrameworkConfig.js +2 -0
  268. package/dist/mergeConfigs.d.ts.map +1 -1
  269. package/dist/mergeConfigs.js +2 -6
  270. package/dist/nbsp.d.ts +1 -2
  271. package/dist/nbsp.d.ts.map +1 -1
  272. package/dist/nbsp.js +3 -7
  273. package/dist/objectMap.d.ts +1 -1
  274. package/dist/objectMap.d.ts.map +1 -1
  275. package/dist/pipeline/PipelineRequestHandler.d.ts +25 -0
  276. package/dist/pipeline/PipelineRequestHandler.d.ts.map +1 -0
  277. package/dist/pipeline/PipelineRequestHandler.js +104 -0
  278. package/dist/pipeline/contextStore.d.ts +12 -0
  279. package/dist/pipeline/contextStore.d.ts.map +1 -0
  280. package/dist/pipeline/contextStore.js +13 -0
  281. package/dist/pipeline/hydratePipeline.d.ts +4 -0
  282. package/dist/pipeline/hydratePipeline.d.ts.map +1 -0
  283. package/dist/pipeline/hydratePipeline.js +83 -0
  284. package/dist/pipeline/importRoutesModule.d.ts +6 -0
  285. package/dist/pipeline/importRoutesModule.d.ts.map +1 -0
  286. package/dist/pipeline/importRoutesModule.js +33 -0
  287. package/dist/pipeline/networkedTransport.d.ts +11 -0
  288. package/dist/pipeline/networkedTransport.d.ts.map +1 -0
  289. package/dist/pipeline/networkedTransport.js +54 -0
  290. package/dist/pipeline/pipeline.d.ts +107 -0
  291. package/dist/pipeline/pipeline.d.ts.map +1 -0
  292. package/dist/pipeline/pipeline.js +113 -0
  293. package/dist/pipeline/pipeline.types.test.d.ts +760 -0
  294. package/dist/pipeline/pipeline.types.test.d.ts.map +1 -0
  295. package/dist/pipeline/pipeline.types.test.js +344 -0
  296. package/dist/pipeline/pipelineDefinition.d.ts +78 -0
  297. package/dist/pipeline/pipelineDefinition.d.ts.map +1 -0
  298. package/dist/pipeline/pipelineDefinition.js +11 -0
  299. package/dist/pipeline/pipelineSplit.types.test.d.ts +2445 -0
  300. package/dist/pipeline/pipelineSplit.types.test.d.ts.map +1 -0
  301. package/dist/pipeline/pipelineSplit.types.test.js +440 -0
  302. package/dist/pipeline/runPipeline.d.ts +29 -0
  303. package/dist/pipeline/runPipeline.d.ts.map +1 -0
  304. package/dist/pipeline/runPipeline.js +71 -0
  305. package/dist/pipeline/runSplitPipeline.d.ts +10 -0
  306. package/dist/pipeline/runSplitPipeline.d.ts.map +1 -0
  307. package/dist/pipeline/runSplitPipeline.js +52 -0
  308. package/dist/pipeline/splitPipeline.d.ts +62 -0
  309. package/dist/pipeline/splitPipeline.d.ts.map +1 -0
  310. package/dist/pipeline/splitPipeline.js +76 -0
  311. package/dist/pop.js +1 -1
  312. package/dist/rawHtml/filterContentNode.d.ts.map +1 -1
  313. package/dist/render/HeadData.d.ts +3 -1
  314. package/dist/render/HeadData.d.ts.map +1 -1
  315. package/dist/render/classComponentNodeToRenderingTree.d.ts.map +1 -1
  316. package/dist/render/componentNodeToRenderingTree.d.ts.map +1 -1
  317. package/dist/render/contentToHtml.d.ts +2 -2
  318. package/dist/render/contentToHtml.d.ts.map +1 -1
  319. package/dist/render/contentToHtml.js +2 -1
  320. package/dist/render/contentToHtmlDev.d.ts +1 -1
  321. package/dist/render/contentToHtmlDev.d.ts.map +1 -1
  322. package/dist/render/contentTreeToRenderingTree.d.ts.map +1 -1
  323. package/dist/render/contentTreeToRenderingTree.js +6 -2
  324. package/dist/render/functionComponentNodeToRenderingTree.d.ts.map +1 -1
  325. package/dist/render/functionComponentNodeToRenderingTree.js +2 -2
  326. package/dist/render/instantiateComponent.d.ts.map +1 -1
  327. package/dist/render/processHead.d.ts.map +1 -1
  328. package/dist/render/processHead.js +12 -18
  329. package/dist/render/renderingTreeToHtml.d.ts.map +1 -1
  330. package/dist/render/renderingTreeToHtml.js +6 -3
  331. package/dist/render/rootToHtml.d.ts +2 -2
  332. package/dist/render/rootToHtml.d.ts.map +1 -1
  333. package/dist/requests/fetch/delete.d.ts.map +1 -1
  334. package/dist/requests/fetch/delete.js +5 -2
  335. package/dist/requests/fetch/get.js +1 -1
  336. package/dist/requests/fetch/patch.d.ts.map +1 -1
  337. package/dist/requests/fetch/patch.js +5 -2
  338. package/dist/requests/fetch/post.d.ts.map +1 -1
  339. package/dist/requests/fetch/post.js +5 -2
  340. package/dist/requests/fetch/put.d.ts.map +1 -1
  341. package/dist/requests/fetch/put.js +5 -2
  342. package/dist/routesLocationParts.d.ts +6 -0
  343. package/dist/routesLocationParts.d.ts.map +1 -0
  344. package/dist/routesLocationParts.js +10 -0
  345. package/dist/routing/AppRoutes.d.ts +5 -3
  346. package/dist/routing/AppRoutes.d.ts.map +1 -1
  347. package/dist/routing/MatchedRouteInfo.d.ts +13 -0
  348. package/dist/routing/MatchedRouteInfo.d.ts.map +1 -0
  349. package/dist/routing/MatchedRouteInfo.js +1 -0
  350. package/dist/routing/RouteContentFunction.d.ts +1 -2
  351. package/dist/routing/RouteContentFunction.d.ts.map +1 -1
  352. package/dist/routing/RouteDataFunction.type.d.ts +4 -2
  353. package/dist/routing/RouteDataFunction.type.d.ts.map +1 -1
  354. package/dist/routing/RoutePaths.d.ts +12 -0
  355. package/dist/routing/RoutePaths.d.ts.map +1 -0
  356. package/dist/routing/RouteTypes.d.ts +6 -4
  357. package/dist/routing/RouteTypes.d.ts.map +1 -1
  358. package/dist/routing/Routes.d.ts +20 -11
  359. package/dist/routing/Routes.d.ts.map +1 -1
  360. package/dist/routing/RoutesFunction.d.ts +11 -2
  361. package/dist/routing/RoutesFunction.d.ts.map +1 -1
  362. package/dist/routing/Serializable.d.ts +5 -0
  363. package/dist/routing/Serializable.d.ts.map +1 -0
  364. package/dist/routing/Serializable.js +1 -0
  365. package/dist/routing/builder.d.ts +100 -0
  366. package/dist/routing/builder.d.ts.map +1 -0
  367. package/dist/routing/builder.js +219 -0
  368. package/dist/routing/builder.trial.d.ts +2 -0
  369. package/dist/routing/builder.trial.d.ts.map +1 -0
  370. package/dist/routing/builder.trial.js +85 -0
  371. package/dist/routing/defineRoutes.d.ts +8 -0
  372. package/dist/routing/defineRoutes.d.ts.map +1 -0
  373. package/dist/routing/defineRoutes.js +3 -0
  374. package/dist/routing/pyramidRouting.d.ts +2 -0
  375. package/dist/routing/pyramidRouting.d.ts.map +1 -0
  376. package/dist/routing/pyramidRouting.js +13 -0
  377. package/dist/routing/redirectOf.d.ts +11 -0
  378. package/dist/routing/redirectOf.d.ts.map +1 -0
  379. package/dist/routing/redirectOf.js +32 -0
  380. package/dist/routing/registerGlobalData.d.ts +11 -3
  381. package/dist/routing/registerGlobalData.d.ts.map +1 -1
  382. package/dist/routing/registerGlobalData.js +6 -0
  383. package/dist/routing/registerParts.types.test.d.ts +2 -0
  384. package/dist/routing/registerParts.types.test.d.ts.map +1 -0
  385. package/dist/routing/registerParts.types.test.js +139 -0
  386. package/dist/routing/registerRoutes.d.ts +10 -0
  387. package/dist/routing/registerRoutes.d.ts.map +1 -0
  388. package/dist/routing/registerRoutes.js +9 -0
  389. package/dist/routing/registerRouting.d.ts +36 -0
  390. package/dist/routing/registerRouting.d.ts.map +1 -0
  391. package/dist/routing/registerRouting.js +34 -0
  392. package/dist/routing/registerRouting.types.test.d.ts +80 -0
  393. package/dist/routing/registerRouting.types.test.d.ts.map +1 -0
  394. package/dist/routing/registerRouting.types.test.js +120 -0
  395. package/dist/routing/registrationTypes.d.ts +11 -0
  396. package/dist/routing/registrationTypes.d.ts.map +1 -0
  397. package/dist/routing/registrationTypes.js +1 -0
  398. package/dist/routing/resolveAppRoutes.d.ts +5 -0
  399. package/dist/routing/resolveAppRoutes.d.ts.map +1 -0
  400. package/dist/routing/resolveAppRoutes.js +25 -0
  401. package/dist/routing/routesArray.d.ts +23 -0
  402. package/dist/routing/routesArray.d.ts.map +1 -0
  403. package/dist/routing/routesArray.js +20 -0
  404. package/dist/routing/routesArray.types.test.d.ts +2 -0
  405. package/dist/routing/routesArray.types.test.d.ts.map +1 -0
  406. package/dist/routing/routesArray.types.test.js +132 -0
  407. package/dist/routing/routingBuilder.d.ts +34 -0
  408. package/dist/routing/routingBuilder.d.ts.map +1 -0
  409. package/dist/routing/routingBuilder.js +32 -0
  410. package/dist/routing/routingBuilder.types.test.d.ts +2 -0
  411. package/dist/routing/routingBuilder.types.test.d.ts.map +1 -0
  412. package/dist/routing/routingBuilder.types.test.js +171 -0
  413. package/dist/routing/routingRegistry.d.ts +19 -0
  414. package/dist/routing/routingRegistry.d.ts.map +1 -0
  415. package/dist/routing/routingRegistry.js +29 -0
  416. package/dist/staticGen/getAppRoutes.d.ts +2 -2
  417. package/dist/staticGen/getAppRoutes.d.ts.map +1 -1
  418. package/dist/staticGen/getAppRoutes.js +9 -6
  419. package/dist/staticGen/staticGen.d.ts.map +1 -1
  420. package/dist/staticGen/staticGen.js +8 -2
  421. package/dist/style/styleContentSxy.d.ts.map +1 -1
  422. package/dist/sync/index.d.ts.map +1 -1
  423. package/dist/sync/index.js +2 -0
  424. package/dist/syncServer/index.cjs +1 -2
  425. package/dist/syncServer/preload.js +2 -0
  426. package/dist/testing/contentToString.d.ts +13 -0
  427. package/dist/testing/contentToString.d.ts.map +1 -0
  428. package/dist/testing/contentToString.js +105 -0
  429. package/dist/testing/createTestApp.d.ts +25 -1
  430. package/dist/testing/createTestApp.d.ts.map +1 -1
  431. package/dist/testing/createTestApp.js +12 -3
  432. package/dist/testing/display.d.ts +2 -0
  433. package/dist/testing/display.d.ts.map +1 -0
  434. package/dist/testing/display.js +37 -0
  435. package/dist/testing/ensure.d.ts +119 -0
  436. package/dist/testing/ensure.d.ts.map +1 -0
  437. package/dist/testing/ensure.js +664 -0
  438. package/dist/testing/ensure.trial.d.ts +2 -0
  439. package/dist/testing/ensure.trial.d.ts.map +1 -0
  440. package/dist/testing/ensure.trial.js +9 -0
  441. package/dist/testing/ensure.types.test.d.ts +2 -0
  442. package/dist/testing/ensure.types.test.d.ts.map +1 -0
  443. package/dist/testing/ensure.types.test.js +34 -0
  444. package/dist/testing/helpers/contentHtmlElements.d.ts.map +1 -1
  445. package/dist/testing/host.d.ts +86 -15
  446. package/dist/testing/host.d.ts.map +1 -1
  447. package/dist/testing/host.js +82 -23
  448. package/dist/testing/host.types.test.d.ts +2 -0
  449. package/dist/testing/host.types.test.d.ts.map +1 -0
  450. package/dist/testing/host.types.test.js +81 -0
  451. package/dist/testing/hydrateTestApp.d.ts +17 -0
  452. package/dist/testing/hydrateTestApp.d.ts.map +1 -1
  453. package/dist/testing/hydrateTestApp.js +27 -6
  454. package/dist/testing/index.d.ts +5 -3
  455. package/dist/testing/index.d.ts.map +1 -1
  456. package/dist/testing/index.js +3 -1
  457. package/dist/testing/pipeline/createTestPacketApp.d.ts +30 -0
  458. package/dist/testing/pipeline/createTestPacketApp.d.ts.map +1 -0
  459. package/dist/testing/pipeline/createTestPacketApp.js +45 -0
  460. package/dist/testing/pipeline/createTestPacketApp.types.test.d.ts +3 -0
  461. package/dist/testing/pipeline/createTestPacketApp.types.test.d.ts.map +1 -0
  462. package/dist/testing/pipeline/createTestPacketApp.types.test.js +101 -0
  463. package/dist/testing/pipeline/createTestPipelineApp.d.ts +70 -0
  464. package/dist/testing/pipeline/createTestPipelineApp.d.ts.map +1 -0
  465. package/dist/testing/pipeline/createTestPipelineApp.js +90 -0
  466. package/dist/testing/pipeline/createTestPipelineApp.types.test.d.ts +6 -0
  467. package/dist/testing/pipeline/createTestPipelineApp.types.test.d.ts.map +1 -0
  468. package/dist/testing/pipeline/createTestPipelineApp.types.test.js +146 -0
  469. package/dist/testing/pipeline/hostPipeline.d.ts +25 -0
  470. package/dist/testing/pipeline/hostPipeline.d.ts.map +1 -0
  471. package/dist/testing/pipeline/hostPipeline.js +18 -0
  472. package/dist/testing/pipeline/hydrateTestPipelineApp.d.ts +30 -0
  473. package/dist/testing/pipeline/hydrateTestPipelineApp.d.ts.map +1 -0
  474. package/dist/testing/pipeline/hydrateTestPipelineApp.js +193 -0
  475. package/dist/testing/pipeline/hydrateTestPipelineApp.types.test.d.ts +2 -0
  476. package/dist/testing/pipeline/hydrateTestPipelineApp.types.test.d.ts.map +1 -0
  477. package/dist/testing/pipeline/hydrateTestPipelineApp.types.test.js +27 -0
  478. package/dist/testing/pipeline/index.d.ts +5 -0
  479. package/dist/testing/pipeline/index.d.ts.map +1 -0
  480. package/dist/testing/pipeline/index.js +4 -0
  481. package/dist/testing/pipeline/pipelineTestApp.d.ts +34 -0
  482. package/dist/testing/pipeline/pipelineTestApp.d.ts.map +1 -0
  483. package/dist/testing/pipeline/pipelineTestApp.js +100 -0
  484. package/dist/testing/pipeline/testPipelineRoute.d.ts +2 -0
  485. package/dist/testing/pipeline/testPipelineRoute.d.ts.map +1 -0
  486. package/dist/testing/pipeline/testPipelineRoute.js +1 -0
  487. package/dist/testing/resolveContent.d.ts +18 -0
  488. package/dist/testing/resolveContent.d.ts.map +1 -0
  489. package/dist/testing/resolveContent.js +73 -0
  490. package/dist/testing/testingComponentPackage.d.ts +3 -1
  491. package/dist/testing/testingComponentPackage.d.ts.map +1 -1
  492. package/dist/testing/testingComponentPackage.js +16 -1
  493. package/dist/update/integrateUpdateVdom.d.ts.map +1 -1
  494. package/dist/update/integrateUpdateVdom.js +35 -31
  495. package/dist/update/integrateUpdateVdomPrebuild.js +20 -20
  496. package/dist/validChildren.d.ts.map +1 -1
  497. package/dist/zones/react.d.ts.map +1 -1
  498. package/package.json +23 -19
  499. package/types/helpers.d.ts +11 -2
  500. package/types/jsx/html.d.ts +29 -25
  501. package/types/jsx/jsx.d.ts +8 -8
  502. package/types/modules.d.ts +14 -3
  503. package/types/testing.d.ts +0 -0
  504. package/vendor/babel-core.js +5 -5
  505. package/vendor/babel-parser.js +1 -1
  506. package/vendor/babel-preset-react.js +32 -34
  507. package/vendor/babel-preset-typescript.js +5 -5
  508. package/vendor/chalk-extensions.js +3 -146
  509. package/vendor/chokidar.js +311 -5
  510. package/vendor/chunk-B34JUlnS.js +169 -0
  511. package/vendor/{chunk-Bu8ZRE-c.js → chunk-B9ttgKqg.js} +28 -25
  512. package/vendor/{chunk-D2EnpcLg.js → chunk-BGvapINa.js} +3 -164
  513. package/vendor/{chunk-Cqrj-Zqr.js → chunk-BmAiqUzD.js} +22 -8
  514. package/vendor/{chunk-BiUcnLhT.js → chunk-But4T5N_.js} +8 -3
  515. package/vendor/{chunk-OUnVY4Wm.js → chunk-DuR6SGzI.js} +162 -35
  516. package/vendor/css-select.js +3383 -0
  517. package/vendor/dotenv.js +2 -2
  518. package/vendor/express.js +61 -10
  519. package/vendor/manifest.json +4 -3
  520. package/vendor/postcss.js +1 -1
  521. package/vendor/precinct.js +5914 -3591
  522. package/vendor/valibot.js +418 -504
  523. package/dist/Servers/MatchedRouteInfo.d.ts +0 -11
  524. package/dist/Servers/MatchedRouteInfo.d.ts.map +0 -1
  525. package/dist/routing/__fluentRouteBuilder.d.ts +0 -80
  526. package/dist/routing/__fluentRouteBuilder.d.ts.map +0 -1
  527. package/dist/routing/__fluentRouteBuilder.js +0 -183
  528. package/dist/routing/__fluentRoutes.d.ts +0 -2
  529. package/dist/routing/__fluentRoutes.d.ts.map +0 -1
  530. package/dist/routing/__fluentRoutes.js +0 -59
  531. package/vendor/chunk-Hy-cCmu-.js +0 -23
  532. /package/dist/{Servers/MatchedRouteInfo.js → routing/RoutePaths.js} +0 -0
@@ -0,0 +1,9 @@
1
+ import { $props, $type } from '../contentNodeSymbols.js';
2
+ import { ensure } from './ensure.js';
3
+ const content = {
4
+ [$type]: 'span',
5
+ [$props]: {
6
+ children: 'Bob'
7
+ }
8
+ };
9
+ ensure(content, [ensure.one.text('Bob'), ensure.one.text.contains('o'), ensure.one.prop('to').is('foo')]);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ensure.types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure.types.test.d.ts","sourceRoot":"","sources":["../../src/testing/ensure.types.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import { children, no, one } from './ensure.js';
2
+ /*
3
+ * Type tests for ensure()'s with. tsc is the assertion - nothing here runs.
4
+ *
5
+ * with is a set of properties on a match: its props, classes, id, text, children. Its tag or a
6
+ * selector, and the text and elements it holds, are not properties - children and content() reach
7
+ * those, as trees of their own.
8
+ */
9
+ const properties = [one.html('a').with.one.prop('href'), one.html('a').with.no.className('x'), one.html('a').with.one.id(), one.html('a').with.one.interruptedText('Save'), one.html('a').with.one.prop('rows').content().with.one.html('tr'), one.html('a').with([one.prop('href'), one.className('x'), one.id(), one.interruptedText('Save'), one.prop('rows').content().with.one.html('tr'), children.one.html('b'), children([one.text('Save'), no.html('b')]), children.one.select('li > a')]), one.select('li').with.one.prop('title')];
10
+ const trees = [one.html('ul').with.children.one.html('li'), one.html('ul').with.children.one.text('Save'), one.html('ul').with.children.one.html('li').with.one.prop('title'), one.prop('rows').content().with.one.text('Bob'), one.prop('rows').content().with([one.html('tr'), one.text('Bob')])];
11
+ const notProperties = [
12
+ // @ts-expect-error the match's tag is the fact's own; what it holds is children.one.html('b')
13
+ one.html('a').with.one.html('b'),
14
+ // @ts-expect-error a component in the match is children.one.component('Badge')
15
+ one.html('a').with.one.component('Badge'),
16
+ // @ts-expect-error a text node is held, so children.one.text('Save'); interruptedText is own
17
+ one.html('a').with.one.text('Save'),
18
+ // @ts-expect-error as text
19
+ one.html('a').with.one.textCi('save'),
20
+ // @ts-expect-error a fragment is held, never the match itself
21
+ one.html('a').with.one.fragment(),
22
+ // @ts-expect-error in a list, as chained
23
+ one.html('a').with([one.html('b')]),
24
+ // @ts-expect-error in a list, as chained
25
+ one.html('a').with([one.prop('href'), one.text('Save')]),
26
+ // @ts-expect-error an element with its own with is still an element, not a property
27
+ one.html('a').with([one.html('b').with.one.prop('href')]),
28
+ // @ts-expect-error as for html
29
+ one.select('li').with.one.html('b'),
30
+ // @ts-expect-error a selector names the match; what it holds is children.one.select('li')
31
+ one.select('ul').with.one.select('li'),
32
+ // @ts-expect-error in a list, as chained
33
+ one.html('ul').with([one.select('li')])];
34
+ void [properties, trees, notProperties];
@@ -1 +1 @@
1
- {"version":3,"file":"contentHtmlElements.d.ts","sourceRoot":"","sources":["../../../src/testing/helpers/contentHtmlElements.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,KAAK,WAAW,EAChB,KAAK,eAAe,EACvB,MAAM,sBAAsB,CAAA;AAG7B,eAAO,MAAM,mBAAmB,GAAI,SAAS,WAAW,KAAG,eAAe,EAUzE,CAAA"}
1
+ {"version":3,"file":"contentHtmlElements.d.ts","sourceRoot":"","sources":["../../../src/testing/helpers/contentHtmlElements.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,WAAW,EAAE,KAAK,eAAe,EAEzC,MAAM,sBAAsB,CAAA;AAG7B,eAAO,MAAM,mBAAmB,GAAI,SAAS,WAAW,KAAG,eAAe,EAUzE,CAAA"}
@@ -1,10 +1,10 @@
1
- import type { ContentNode } from '../ContentNode.js';
1
+ import type { ContentNode, ContentNodeElement } from '../ContentNode.js';
2
2
  import type { InternalStoreSchema } from '../Store/InternalStoreSchema.js';
3
3
  import type { TrueStore } from '../Store/makeStore.js';
4
4
  import type { Routes } from '../routing/Routes.js';
5
5
  import type { RoutesFunction } from '../routing/RoutesFunction.js';
6
6
  import type { Path, RouteKey } from '../routing/RouteTypes.js';
7
- import { TungstenBaseComponent, TungstenSimpleComponent, type ComponentStore, type TungstenComponent, type TungstenComponentClass, type TungstenComponentPropsBase, type TungstenStatefulComponent } from '../Components.jsx';
7
+ import { type ComponentStore, type TungstenComponent, type TungstenComponentClass, type TungstenComponentPropsBase, type TungstenStatefulComponent, TungstenBaseComponent, TungstenSimpleComponent } from '../Components.jsx';
8
8
  type StateOf<Component> = Component extends {
9
9
  state?: infer State;
10
10
  } ? State : never;
@@ -19,17 +19,18 @@ export type Navigation = {
19
19
  to: string;
20
20
  };
21
21
  export type StateSetter<Component extends TungstenBaseComponent<any, any>> = (state: StateOf<Component>) => StateOf<Component> | void;
22
- type HostedCore<Component extends TungstenBaseComponent<any, any>> = {
22
+ type HostedCore<Component extends TungstenBaseComponent<any, any>, Content = ContentOf<Component>> = {
23
23
  readonly component: Component;
24
24
  readonly props: Component['props'];
25
25
  readonly state: StateOf<Component>;
26
26
  readonly title: string | undefined;
27
27
  readonly navigations: readonly Navigation[];
28
- content: () => ContentOf<Component>;
29
- updateProps: (props: Component['props']) => Promise<Awaited<ContentOf<Component>>>;
30
- updateState: (setter: StateSetter<Component>) => Promise<Awaited<ContentOf<Component>>>;
28
+ content: () => Content;
29
+ updateProps: (props: Component['props']) => Promise<Awaited<Content>>;
30
+ updateState: (setter: StateSetter<Component>) => Promise<Awaited<Content>>;
31
31
  };
32
32
  export type Hosted<Component extends TungstenBaseComponent<any, any>> = HostedCore<Component> & ComponentApi<Component>;
33
+ export type HostedResolved<Component extends TungstenBaseComponent<any, any>> = HostedCore<Component, Promise<ContentNode>> & ComponentApi<Component>;
33
34
  type StoreSchemaOf<Component> = Component extends {
34
35
  store: ComponentStore<infer Schema extends object>;
35
36
  } ? Schema : never;
@@ -39,15 +40,15 @@ export type HostedRoute = {
39
40
  params?: Record<string, string>;
40
41
  data?: unknown;
41
42
  };
42
- type RouteOptions = {
43
+ export type RouteOptions = {
43
44
  routing: true;
44
45
  location: Path;
45
- routes: Routes | RoutesFunction;
46
+ routes: Routes<any> | RoutesFunction<any>;
46
47
  matchedRoute?: never;
47
48
  } | {
48
49
  routing?: false;
49
50
  location?: Path;
50
- routes?: Routes;
51
+ routes?: Routes<any>;
51
52
  matchedRoute?: HostedRoute;
52
53
  };
53
54
  type NoStore = {
@@ -81,13 +82,38 @@ type StoreOptionsFor<Schema extends object> = {
81
82
  partialStore?: never;
82
83
  storeData?: never;
83
84
  };
84
- export type HostStoreOptions<Schema extends object> = (RouteOptions & StoreOptionsFor<Schema>) extends infer Options ? Options extends unknown ? {
85
+ /**
86
+ * Resolve the content through every component in the tree (the default). false: the hosted
87
+ * component's own content alone, its child components unexpanded.
88
+ */
89
+ export type ResolveOption = {
90
+ resolve?: boolean;
91
+ };
92
+ export type Resolve = {
93
+ resolve?: true;
94
+ };
95
+ export type DontResolve = {
96
+ resolve: false;
97
+ };
98
+ export type AppDataOptions = {
99
+ /** What this.tungsten.context reads. An empty object when not given. */
100
+ context?: object;
101
+ /** What this.tungsten.networkedData reads. An empty object when not given. */
102
+ networkedData?: object;
103
+ /** What this.tungsten.globalData reads. An empty object when not given. */
104
+ globalData?: object;
105
+ };
106
+ export type HostStoreOptions<Schema extends object, R extends ResolveOption = ResolveOption> = (RouteOptions & R & AppDataOptions & StoreOptionsFor<Schema>) extends infer Options ? Options extends unknown ? {
85
107
  [K in keyof Options]: Options[K];
86
108
  } : never : never;
87
- export type HostOptions<Component> = [StoreOf<Component>] extends [never] ? (RouteOptions & NoStore) extends infer Options ? Options extends unknown ? {
109
+ export type HostOptions<Component, R extends ResolveOption = ResolveOption> = [StoreOf<Component>] extends [never] ? (RouteOptions & R & AppDataOptions & (NoStore | StoreOptionsFor<any>)) extends infer Options ? Options extends unknown ? {
88
110
  [K in keyof Options]: Options[K];
89
- } : never : never : HostStoreOptions<StoreOf<Component>>;
90
- type HostArgs<Props, Component> = [StoreOf<Component>] extends [never] ? object extends Props ? [props?: Props, options?: HostOptions<Component>] : [props: Props, options?: HostOptions<Component>] : object extends Props ? [props: Props | undefined, options: HostOptions<Component>] : [props: Props, options: HostOptions<Component>];
111
+ } : never : never : HostStoreOptions<StoreOf<Component>, R>;
112
+ export type HostStoreResolveOptions<Schema extends object> = HostStoreOptions<Schema, Resolve>;
113
+ export type HostStoreDontResolveOptions<Schema extends object> = HostStoreOptions<Schema, DontResolve>;
114
+ export type HostResolveOptions<Component> = HostOptions<Component, Resolve>;
115
+ export type HostDontResolveOptions<Component> = HostOptions<Component, DontResolve>;
116
+ type HostArgs<Props, Component> = [StoreOf<Component>] extends [never] ? object extends Props ? [props?: Props, options?: HostOptions<Component> & Resolve] : [props: Props, options?: HostOptions<Component> & Resolve] : object extends Props ? [props: Props | undefined, options: HostOptions<Component> & Resolve] : [props: Props, options: HostOptions<Component> & Resolve];
91
117
  /**
92
118
  * Constructs a component outside of any app and drives it the way the framework
93
119
  * does - init, then the mount lifecycles - calling its content function with
@@ -111,7 +137,52 @@ export declare function host<Props extends TungstenComponentPropsBase, Schema ex
111
137
  store: ComponentStore<Schema>;
112
138
  }>(ComponentType: TungstenComponentClass<Props, Component> & (new (...args: any) => {
113
139
  store: ComponentStore<Schema>;
114
- }), props: Props, options: NoInfer<[Schema] extends [InternalStoreSchema] ? never : HostStoreOptions<Schema>>): Promise<Hosted<Component>>;
115
- export declare function host<Props extends TungstenComponentPropsBase, Component extends TungstenBaseComponent<any, any>>(ComponentType: TungstenComponentClass<Props, Component>, ...[props, options]: HostArgs<Props, Component>): Promise<Hosted<Component>>;
140
+ }), props: Props, options: NoInfer<[
141
+ Schema
142
+ ] extends [InternalStoreSchema] ? never : HostStoreOptions<Schema> & DontResolve>): Promise<Hosted<Component>>;
143
+ export declare function host<Props extends TungstenComponentPropsBase, Component extends TungstenBaseComponent<any, any>>(ComponentType: TungstenComponentClass<Props, Component>, props: Props | undefined, options: HostOptions<Component> & DontResolve): Promise<Hosted<Component>>;
144
+ export declare function host<Props extends TungstenComponentPropsBase, Schema extends object, Component extends TungstenBaseComponent<any, any> & {
145
+ store: ComponentStore<Schema>;
146
+ }>(ComponentType: TungstenComponentClass<Props, Component> & (new (...args: any) => {
147
+ store: ComponentStore<Schema>;
148
+ }), props: Props, options: NoInfer<[
149
+ Schema
150
+ ] extends [InternalStoreSchema] ? never : HostStoreOptions<Schema> & Resolve>): Promise<HostedResolved<Component>>;
151
+ export declare function host<Props extends TungstenComponentPropsBase, Component extends TungstenBaseComponent<any, any>>(ComponentType: TungstenComponentClass<Props, Component>, ...[props, options]: HostArgs<Props, Component>): Promise<HostedResolved<Component>>;
152
+ export declare namespace host {
153
+ var generic: typeof hostGeneric;
154
+ var jsx: typeof hostJsx;
155
+ }
156
+ type HostGenericArgs<Component> = [StoreOf<Component>] extends [never] ? [options?: HostOptions<Component> & Resolve] : [options: HostOptions<Component> & Resolve];
157
+ /**
158
+ * host() for a generic component class, whose type arguments it cannot infer: passed as an
159
+ * argument, the class's own parameters are erased to their constraints before the props are
160
+ * looked at, so `bind: [form, 'value']` widens to an array and the class stops fitting.
161
+ * Taking the class in a call of its own gets higher-order inference instead, so the props
162
+ * are checked against the component the way JSX checks them.
163
+ *
164
+ * await hostGeneric(BoundValue)({ bind: [form, 'value'] })
165
+ * await hostGeneric(BoundValue, { resolve: false })({ bind: [form, 'value'] })
166
+ *
167
+ * Options go on the first call because the returned signature has to stay a single plain
168
+ * one: give it type parameters of its own, or a second call signature, and the inference
169
+ * that makes this work is lost.
170
+ */
171
+ export declare function hostGeneric<Props extends TungstenComponentPropsBase, Component extends TungstenBaseComponent<any, any>>(ComponentType: TungstenComponentClass<Props, Component>, options: HostOptions<Component> & DontResolve): (props: Props) => Promise<Hosted<Component>>;
172
+ export declare function hostGeneric<Props extends TungstenComponentPropsBase, Component extends TungstenBaseComponent<any, any>>(ComponentType: TungstenComponentClass<Props, Component>, ...args: HostGenericArgs<Component>): (props: Props) => Promise<HostedResolved<Component>>;
173
+ type AnyClassComponent = TungstenBaseComponent<any, any>;
174
+ /**
175
+ * host(), given the element rather than the class and a props object:
176
+ * `await hostJsx(<DataTable head={head} rows={rows} columns={2} />)`. The options are host()'s,
177
+ * and everything else about it is the same - a class component, its init and mount lifecycles run.
178
+ *
179
+ * TypeScript types every JSX expression as `JSX.Element` (here `ContentNodeElement`), so the
180
+ * element does not carry the component it names: the wrapper comes back as the base component
181
+ * unless the call says which - `hostJsx<DataTable>(<DataTable … />)` - which is what gives back
182
+ * `props`, `state` and the component's own methods. host() itself infers all of that from the
183
+ * class, so a test that leans on the wrapper's api is better off with host().
184
+ */
185
+ export declare function hostJsx<Component extends AnyClassComponent = AnyClassComponent>(element: ContentNodeElement, options: HostOptions<Component> & DontResolve): Promise<Hosted<Component>>;
186
+ export declare function hostJsx<Component extends AnyClassComponent = AnyClassComponent>(element: ContentNodeElement, options?: HostOptions<Component> & Resolve): Promise<HostedResolved<Component>>;
116
187
  export {};
117
188
  //# sourceMappingURL=host.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/testing/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../src/testing/host.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,31 @@
1
1
  import { TungstenBaseComponent, TungstenBaseSimpleStoreComponent, TungstenBaseStatefulStoreComponent, TungstenBaseStoreComponent, TungstenSimpleComponent } from "../Components.js";
2
+ import { ContentNodeComponentIsClassComponent, ContentNodeElementIsComponent } from '../ContentNode.js';
3
+ import { $props, $type } from '../contentNodeSymbols.js';
4
+ import { componentTypeIdentityKey } from '../hmr/componentIdentity.js';
2
5
  import { makeStore } from '../Store/makeStore.js';
3
6
  import { routing } from "../Servers/routing.js";
7
+ import { resolveContent } from './resolveContent.js';
4
8
  import { missingStoreValue, testingComponentPackage } from './testingComponentPackage.js';
5
9
  const isPromise = value => value instanceof Promise || typeof value === 'object' && value !== null && 'then' in value;
6
10
  // The same list at runtime. Underscore-prefixed members are excluded by rule
7
11
  // (the framework's naming scheme), so only the plain-named ones are listed, and
8
12
  // frameworkMembersAreComplete below fails to compile if one is ever missed.
9
- const frameworkMemberNames = ['props', 'routeParams', 'routeData', 'parentComponent', 'childComponents', 'globalData', 'state', 'storeData', 'style', 'title', 'content', 'render', 'init', 'clientInit', 'serverInit', 'componentDidMount', 'componentDidHydrate', 'componentDidUpdate', 'componentDidRender', 'componentWillUnmount', 'componentDidUnmount', 'shouldStoreComponentUpdate', 'setState', 'triggerUpdate', 'pickProps', 'pickState', 'using', 'reactive', 'setTimeout', 'setInterval', 'clearTimeout', 'clearInterval'];
13
+ const frameworkMemberNames = ['props', 'routeParams', 'routeData', 'parentComponent', 'childComponents', 'globalData', 'state', 'storeData', 'style', 'title', 'content', 'render', 'init', 'clientInit', 'serverInit', 'componentDidMount', 'componentDidHydrate', 'componentDidUpdate', 'componentDidRender', 'componentWillUnmount', 'componentDidUnmount', 'shouldStoreComponentUpdate', 'setState', 'triggerUpdate', 'pickProps', 'pickState', 'using', 'reactive', 'setTimeout', 'setInterval', 'clearTimeout', 'clearInterval', 'tungsten'];
10
14
  const frameworkMembers = new Set(frameworkMemberNames);
15
+ // a key the store does not hold names itself when it is read, rather than coming back undefined
16
+ const namingMissingKeys = store => new Proxy(store, {
17
+ get: (target, key) => typeof key === 'symbol' || key in target ? Reflect.get(target, key) : missingStoreValue(`store.${key}`)
18
+ });
11
19
  const isStoreComponent = component => component instanceof TungstenBaseStoreComponent || component instanceof TungstenBaseSimpleStoreComponent || component instanceof TungstenBaseStatefulStoreComponent;
12
20
  // Runs routing only when asked: a unit test otherwise states the route itself.
13
- async function hostedRouting(options) {
21
+ async function hostedRouting(options, context, networkedData) {
14
22
  if (options.routing === true) {
15
- const routes = typeof options.routes === 'function' ? options.routes(null) : options.routes;
23
+ const routes = typeof options.routes === 'function' ? options.routes(null, context, networkedData) : options.routes;
16
24
  return {
17
25
  routes,
18
26
  internalStore: {
19
27
  location: options.location,
20
- matchedRouteInfo: await routing(options.location, routes),
28
+ matchedRouteInfo: await routing(options.location, routes, context, networkedData),
21
29
  popMessages: []
22
30
  }
23
31
  };
@@ -37,9 +45,7 @@ async function hostedRouting(options) {
37
45
  return {
38
46
  routes: options.routes,
39
47
  internalStore: {
40
- ...(location !== undefined ? {
41
- location
42
- } : {}),
48
+ location: location ?? '/',
43
49
  ...(matchedRouteInfo !== undefined ? {
44
50
  matchedRouteInfo
45
51
  } : {}),
@@ -47,6 +53,7 @@ async function hostedRouting(options) {
47
53
  }
48
54
  };
49
55
  }
56
+ // actual
50
57
  export async function host(ComponentType, props,
51
58
  // unknown, not a loose object type: the general overload's rest tuple can't be related to one
52
59
  options) {
@@ -54,7 +61,16 @@ options) {
54
61
  const storeData = stored.storeData ?? stored.partialStoreData;
55
62
  const store = stored.store ?? stored.partialStore ?? (storeData === undefined ? undefined : makeStore(storeData, new Map()));
56
63
  const partial = stored.partialStore !== undefined || stored.partialStoreData !== undefined;
57
- const route = await hostedRouting(stored);
64
+ // a partial store holds only the keys supplied, so name any other one read. On the store the
65
+ // instance shares, so a component resolve: true constructs is named it the same way
66
+ const shared = partial && store !== undefined ? namingMissingKeys(store) : store;
67
+ // one object each, so the routes function, the data function and the component see the same
68
+ // ones, as a request's do. Branded here, as the framework brands what it builds
69
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
70
+ const context = stored.context ?? {};
71
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
72
+ const networkedData = stored.networkedData ?? {};
73
+ const route = await hostedRouting(stored, context, networkedData);
58
74
  const pending = [];
59
75
  const failures = [];
60
76
  // Instance.trackWork's no-scheduler path, except the work is kept so host
@@ -80,16 +96,22 @@ options) {
80
96
  };
81
97
  let title;
82
98
  const navigations = [];
83
- const component = new ComponentType(testingComponentPackage(
99
+ // kept, not inlined: its instance is what resolving renders the rest of the tree against
100
+ const constructPackage = testingComponentPackage(
84
101
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- an absent props object is only reachable when Props allows {}
85
102
  props ?? {}, {
86
- ...(store !== undefined ? {
87
- store
103
+ ...(shared !== undefined ? {
104
+ store: shared
88
105
  } : {}),
89
106
  ...(route.routes !== undefined ? {
90
107
  routes: route.routes
91
108
  } : {}),
92
109
  internalStore: route.internalStore,
110
+ context,
111
+ networkedData,
112
+ ...(stored.globalData !== undefined ? {
113
+ globalData: stored.globalData
114
+ } : {}),
93
115
  trackWork,
94
116
  // setState's work, run and awaited here rather than left to a timer
95
117
  queueTask: (task, description) => {
@@ -112,19 +134,16 @@ options) {
112
134
  to
113
135
  });
114
136
  }
115
- }));
116
- // a partial store only has the keys supplied, so name any other it reads
117
- if (partial && isStoreComponent(component)) {
118
- component.store = new Proxy(component.store, {
119
- get: (target, key) => typeof key === 'symbol' || key in target ? Reflect.get(target, key) : missingStoreValue(`store.${key}`)
120
- });
121
- }
137
+ });
138
+ const component = new ComponentType(constructPackage);
139
+ // the component's own store is built at construction, from the keys there were: guard it too
140
+ if (partial && isStoreComponent(component)) component.store = namingMissingKeys(component.store);
122
141
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- state isn't on the base class, see StateOf
123
142
  const stateful = component;
124
143
  const simple = component instanceof TungstenSimpleComponent;
125
144
  // Not awaited here: what the component's own content function returns is
126
145
  // what comes back, so its declared type tells a test whether to await.
127
- const content = () => {
146
+ const ownContent = () => {
128
147
  const contentFunction = component.content ?? component.render;
129
148
  if (contentFunction === undefined) {
130
149
  throw new Error(`host(): ${ComponentType.name} has no content or render function.`);
@@ -134,6 +153,16 @@ options) {
134
153
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ContentOf recovers the concrete component's own return type
135
154
  return result;
136
155
  };
156
+ // resolve: the tree the app would render - every component in it constructed and asked for its
157
+ // content - so it is awaited whatever the hosted component's own content function returns
158
+ const guardPartialStore = built => {
159
+ if (isStoreComponent(built)) built.store = namingMissingKeys(built.store);
160
+ };
161
+ const resolved = async () => resolveContent(
162
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- ContentOf stays unresolved inside the generic; a content function returns a content tree
163
+ await ownContent(), component, constructPackage.instance, partial ? guardPartialStore : undefined);
164
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- resolving has its own overloads, whose content this is
165
+ const content = stored.resolve === false ? ownContent : resolved;
137
166
  await component.__init();
138
167
  component.__didMount();
139
168
  await settle();
@@ -188,6 +217,35 @@ options) {
188
217
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- componentApi() collects exactly the members ComponentApi describes
189
218
  return Object.assign(core, componentApi(component, core));
190
219
  }
220
+ export function hostGeneric(ComponentType, options) {
221
+ // host()'s args are a conditional on Component, which stays deferred in a generic
222
+ // wrapper, so nothing is assignable to it here - the implementation signature is
223
+ // what this is calling
224
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- as above
225
+ const call = host;
226
+ return async props => call(ComponentType, props, options);
227
+ }
228
+ export async function hostJsx(element,
229
+ // unknown: the overloads' options are conditional on Component, which nothing satisfies here
230
+ options) {
231
+ if (!ContentNodeElementIsComponent(element) || !ContentNodeComponentIsClassComponent(element)) {
232
+ throw new Error(`hostJsx(): ${described(element)} is not a class component element.` + ' Give host() a component class; a function component is a function - call it.');
233
+ }
234
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- the element's own class, which the call names when it wants the wrapper typed
235
+ const ComponentType = element[$type];
236
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- as above: host() checks them against the class it was given
237
+ return host(ComponentType, element[$props], options);
238
+ }
239
+ // an html tag as written, a fragment as <>, a function component by name
240
+ function described(element) {
241
+ const type = element[$type];
242
+ if (typeof type === 'string') return `<${type}>`;
243
+ if (typeof type === 'function') return `<${componentTypeIdentityKey(type)}>`;
244
+ return '<>';
245
+ }
246
+ // the variants hang off host() too, so a test reaches for one name
247
+ host.generic = hostGeneric;
248
+ host.jsx = hostJsx;
191
249
  // The component's own function members, bound and ready to call. Framework
192
250
  // members and anything the wrapper already provides are left out; the framework
193
251
  // keeps its internals under an underscore, which is the rest of the rule.
@@ -197,19 +255,20 @@ function componentApi(component, core) {
197
255
  if (descriptor === undefined || typeof descriptor.value !== 'function') return;
198
256
  if (name.startsWith('_') || frameworkMembers.has(name)) return;
199
257
  if (name in core || name in api) return;
200
- // class fields are already arrows; a prototype method needs binding
201
- api[name] = descriptor.value.bind(component); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- guarded by the typeof above
258
+ const method = descriptor.value; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- guarded by the typeof above
259
+ // looked up only when called: a proxy field (a tRPC client) reads .bind as a procedure
260
+ api[name] = (...args) => Reflect.apply(method, component, args);
202
261
  };
203
262
  for (const name of Object.getOwnPropertyNames(component)) {
204
263
  add(name, Object.getOwnPropertyDescriptor(component, name));
205
264
  }
206
- let prototype = Object.getPrototypeOf(component);
265
+ let prototype = Object.getPrototypeOf(component); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
207
266
  while (prototype !== null && prototype !== TungstenBaseComponent.prototype) {
208
267
  for (const name of Object.getOwnPropertyNames(prototype)) {
209
268
  if (name === 'constructor') continue;
210
269
  add(name, Object.getOwnPropertyDescriptor(prototype, name));
211
270
  }
212
- prototype = Object.getPrototypeOf(prototype);
271
+ prototype = Object.getPrototypeOf(prototype); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
213
272
  }
214
273
  return api;
215
274
  }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=host.types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host.types.test.d.ts","sourceRoot":"","sources":["../../src/testing/host.types.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
2
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
+ import { TungstenStatefulComponent } from "../Components.js";
5
+ // Type tests: tsc is the assertion - nothing here runs. What each wrapper's content and updates
6
+ // hand back: the component's own content type, or resolved content
7
+ class Counter extends TungstenStatefulComponent {
8
+ constructor(...args) {
9
+ super(...args);
10
+ _defineProperty(this, "state", {
11
+ n: 0
12
+ });
13
+ _defineProperty(this, "content", () => `${this.state.n}`);
14
+ _defineProperty(this, "bump", () => {
15
+ this.setState({
16
+ n: this.state.n + 1
17
+ });
18
+ });
19
+ }
20
+ }
21
+ const _ownContent = true;
22
+ const _ownUpdate = true;
23
+ const _ownState = true;
24
+ const _resolvedContent = true;
25
+ const _resolvedUpdate = true;
26
+ const _resolvedState = true;
27
+ // the rest is shared, and the component's own methods come out on both
28
+ const _props = true;
29
+ const _api = true;
30
+ const _storeResolve = {
31
+ storeData: {
32
+ n: 1
33
+ },
34
+ resolve: true
35
+ };
36
+ const _storeResolveAbsent = {
37
+ storeData: {
38
+ n: 1
39
+ }
40
+ };
41
+ // @ts-expect-error -- resolve is true or absent
42
+ const _storeResolveFalse = {
43
+ storeData: {
44
+ n: 1
45
+ },
46
+ resolve: false
47
+ };
48
+ const _storeDont = {
49
+ storeData: {
50
+ n: 1
51
+ },
52
+ resolve: false
53
+ };
54
+ // @ts-expect-error -- resolve: false is required
55
+ const _storeDontAbsent = {
56
+ storeData: {
57
+ n: 1
58
+ }
59
+ };
60
+ // @ts-expect-error -- one store form, as host()'s own options
61
+ const _storeTwoForms = {
62
+ storeData: {
63
+ n: 1
64
+ },
65
+ store: {}
66
+ };
67
+ const _resolve = {
68
+ location: '/leads'
69
+ };
70
+ // @ts-expect-error -- resolve is true or absent
71
+ const _resolveFalse = {
72
+ resolve: false
73
+ };
74
+ const _dont = {
75
+ location: '/leads',
76
+ resolve: false
77
+ };
78
+ // @ts-expect-error -- resolve: false is required
79
+ const _dontAbsent = {
80
+ location: '/leads'
81
+ };
@@ -1,6 +1,8 @@
1
1
  import type { ConstructPackage, TungstenBaseComponent, TungstenComponentPropsBase } from '../Components.jsx';
2
2
  import type { TaggedAttributeMismatch } from '../hydrate/renderHydrationMismatchBanner.js';
3
3
  import type { TestAppOptions } from './createTestApp.js';
4
+ import { Instance } from '../Instance/Instance.js';
5
+ import { UpdateScheduler } from '../update/UpdateScheduler.js';
4
6
  export type HydrateTestAppOptions<Props extends object> = TestAppOptions<Props> & {
5
7
  serverProps?: Props;
6
8
  csr?: boolean;
@@ -19,6 +21,21 @@ export type HydrateTestApp<Component extends TungstenBaseComponent> = {
19
21
  unmount(): Promise<void>;
20
22
  [Symbol.asyncDispose](): Promise<void>;
21
23
  };
24
+ export declare function requireClient(harness: string): void;
25
+ export declare function bridgeHappyDomGlobals(document: Document): void;
26
+ export declare class HydrateTestAppImplementation<Component extends TungstenBaseComponent> implements HydrateTestApp<Component> {
27
+ #private;
28
+ readonly document: Document;
29
+ readonly container: HTMLElement;
30
+ readonly component: Component;
31
+ readonly html: string;
32
+ readonly mismatches: readonly TaggedAttributeMismatch[];
33
+ constructor(document: Document, container: HTMLElement, component: Component, instance: Instance, scheduler: UpdateScheduler, ownsContainer: boolean, html: string, mismatches: readonly TaggedAttributeMismatch[]);
34
+ resolved: () => Promise<void>;
35
+ setProps: (props: Component["props"]) => Promise<void>;
36
+ [Symbol.asyncDispose]: () => Promise<void>;
37
+ unmount: () => Promise<void>;
38
+ }
22
39
  /**
23
40
  * The hydration round trip createTestApp() deliberately doesn't cover: render a component to
24
41
  * HTML the way a real server would, parse it with a real HTML parser, hydrate a fresh client
@@ -1 +1 @@
1
- {"version":3,"file":"hydrateTestApp.d.ts","sourceRoot":"","sources":["../../src/testing/hydrateTestApp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC7B,MAAM,mBAAmB,CAAA;AAI1B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAA;AAK1F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAaxD,MAAM,MAAM,qBAAqB,CAAC,KAAK,SAAS,MAAM,IAAI,cAAc,CAAC,KAAK,CAAC,GAAG;IAM9E,WAAW,CAAC,EAAE,KAAK,CAAA;IAEnB,GAAG,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,KAAK,kBAAkB,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,GAC9D,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,GACxC,MAAM,KAAK,SAAS,KAAK,GACrB,CAAC,OAAO,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,CAAC,GACxC,CAAC,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAEpE,MAAM,MAAM,cAAc,CAAC,SAAS,SAAS,qBAAqB,IAAI;IAClE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAA;IAG7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAIrB,QAAQ,CAAC,UAAU,EAAE,SAAS,uBAAuB,EAAE,CAAA;IAEvD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAExB,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACzC,CAAA;AAsGD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,cAAc,CAChC,KAAK,SAAS,0BAA0B,EACxC,SAAS,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,EACjD,SAAS,GAAG,SAAS,EAErB,aAAa,EAAE,KAAK,GAAG,EAAE,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,SAAS,EACzE,GAAG,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,GACnC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAgIpC"}
1
+ {"version":3,"file":"hydrateTestApp.d.ts","sourceRoot":"","sources":["../../src/testing/hydrateTestApp.ts"],"names":[],"mappings":"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"}