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,146 @@
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 { TungstenSimpleComponent } from "../../Components.js";
5
+ import { contextStore } from '../../pipeline/contextStore.js';
6
+ import { pipeline } from '../../pipeline/pipeline.js';
7
+ import { splitPipeline } from '../../pipeline/splitPipeline.js';
8
+ import { createTestPipelineApp } from './createTestPipelineApp.js';
9
+ // Type tests: tsc is the assertion - nothing here runs. The root says what it reads, from its
10
+ // pipeline base; the app handed in must make it
11
+ const stage = pipeline.server('express').init(() => ({
12
+ api: 'client'
13
+ })).allRoutesData(() => ({
14
+ theme: 'dark'
15
+ }));
16
+ const app = stage.routes(() => []);
17
+ class Reads extends stage.SimpleComponent {
18
+ constructor(...args) {
19
+ super(...args);
20
+ _defineProperty(this, "content", () => `${this.tungsten.context.api} ${this.tungsten.allRoutesData.theme}`);
21
+ }
22
+ }
23
+ const other = pipeline.server('express').init(() => ({
24
+ db: 1
25
+ }));
26
+ class ReadsOther extends other.SimpleComponent {
27
+ constructor(...args) {
28
+ super(...args);
29
+ _defineProperty(this, "content", () => String(this.tungsten.context.db));
30
+ }
31
+ }
32
+ class Plain extends TungstenSimpleComponent {
33
+ constructor(...args) {
34
+ super(...args);
35
+ _defineProperty(this, "content", () => null);
36
+ }
37
+ }
38
+ export async function checks() {
39
+ await createTestPipelineApp(app, Reads);
40
+ // not a pipeline component: it reads nothing of the app's
41
+ await createTestPipelineApp(app, Plain);
42
+ // @ts-expect-error -- ReadsOther reads a context this app does not make
43
+ await createTestPipelineApp(app, ReadsOther);
44
+ // the server's all-routes data, in the app's shape
45
+ await createTestPipelineApp(app, Reads, {
46
+ allRoutesData: {
47
+ theme: 'light'
48
+ }
49
+ });
50
+ // @ts-expect-error -- not the app's all-routes data
51
+ await createTestPipelineApp(app, Reads, {
52
+ allRoutesData: {
53
+ theme: 1
54
+ }
55
+ });
56
+ }
57
+ const _mismatch = true;
58
+ const _fits = true;
59
+ // a stage in place of the app: the harness adds empty routes
60
+ export async function stageChecks() {
61
+ await createTestPipelineApp(stage, Reads);
62
+ // @ts-expect-error -- another pipeline's stage
63
+ await createTestPipelineApp(other, Reads);
64
+ await createTestPipelineApp(stage, Reads, {
65
+ allRoutesData: {
66
+ theme: 'light'
67
+ }
68
+ });
69
+ // @ts-expect-error -- not the stage's all-routes data
70
+ await createTestPipelineApp(stage, Reads, {
71
+ allRoutesData: {
72
+ theme: 1
73
+ }
74
+ });
75
+ }
76
+ // no Init: the stage's context is undefined, which its components read as Nothing
77
+ const bare = pipeline.server('express');
78
+ class ReadsNothing extends bare.SimpleComponent {
79
+ constructor(...args) {
80
+ super(...args);
81
+ _defineProperty(this, "content", () => null);
82
+ }
83
+ }
84
+ export async function bareChecks() {
85
+ await createTestPipelineApp(bare.routes(() => []), ReadsNothing);
86
+ }
87
+ // the split pipeline: the networked data the components read, this.tungsten.networked
88
+ const split = splitPipeline.server('express').serverInit(() => ({
89
+ networked: {
90
+ count: contextStore({
91
+ n: 0
92
+ }),
93
+ userId: 0
94
+ }
95
+ })).clientInit(networked => ({
96
+ context: {
97
+ userId: networked.userId
98
+ }
99
+ }));
100
+ const splitApp = split.routes(() => []);
101
+ class ReadsNetworked extends split.SimpleComponent {
102
+ constructor(...args) {
103
+ super(...args);
104
+ _defineProperty(this, "content", () => String(this.tungsten.networked.count.n.get()));
105
+ }
106
+ }
107
+ const _networked = true;
108
+ export async function splitChecks() {
109
+ await createTestPipelineApp(splitApp, ReadsNetworked, {
110
+ networked: {
111
+ count: contextStore({
112
+ n: 3
113
+ }),
114
+ userId: 7
115
+ }
116
+ });
117
+ await createTestPipelineApp(splitApp, ReadsNetworked, {
118
+ // @ts-expect-error -- not the networked data the app makes
119
+ networked: {
120
+ count: 3,
121
+ userId: 7
122
+ }
123
+ });
124
+ }
125
+ // the server makes all-routes data, so clientInit's stage has no .routes() until the client's is
126
+ // given: the error says so
127
+ const serverData = splitPipeline.server('express').serverInit(() => undefined).serverAllRoutesData(() => ({
128
+ theme: 'dark'
129
+ }));
130
+ const noClientData = serverData.clientInit(() => undefined);
131
+ const withClientData = noClientData.clientAllRoutesData(() => ({
132
+ theme: 'dark'
133
+ }));
134
+ class ReadsTheme extends withClientData.SimpleComponent {
135
+ constructor(...args) {
136
+ super(...args);
137
+ _defineProperty(this, "content", () => this.tungsten.allRoutesData.theme);
138
+ }
139
+ }
140
+ const _noClientData = true;
141
+ const _notAStage = true;
142
+ export async function clientDataChecks() {
143
+ await createTestPipelineApp(withClientData, ReadsTheme);
144
+ // @ts-expect-error -- no .routes() yet
145
+ await createTestPipelineApp(noClientData, ReadsTheme);
146
+ }
@@ -0,0 +1,25 @@
1
+ import type { TungstenBaseComponent, TungstenComponentClass, TungstenComponentPropsBase } from '../../Components.jsx';
2
+ import type { ContentNodeElement } from '../../ContentNode.js';
3
+ import type { AppDataOptions, DontResolve, Hosted, HostedResolved, Resolve, ResolveOption, RouteOptions } from '../host.js';
4
+ export type { ComponentApi, Hosted, HostedResolved, HostedRoute, HostStoreOptions, Navigation, StateSetter, } from '../host.js';
5
+ export type HostPipelineOptions = RouteOptions & ResolveOption & AppDataOptions;
6
+ export type HostPipelineResolveOptions = RouteOptions & AppDataOptions & Resolve;
7
+ export type HostPipelineDontResolveOptions = RouteOptions & AppDataOptions & DontResolve;
8
+ type AnyClassComponent = TungstenBaseComponent<any, any>;
9
+ /** host() for a pipeline component: its data comes from the context, so there is no store option */
10
+ export declare function hostPipeline<Props extends TungstenComponentPropsBase, Component extends AnyClassComponent>(ComponentType: TungstenComponentClass<Props, Component>, props?: Props, options?: HostPipelineResolveOptions): Promise<HostedResolved<Component>>;
11
+ export declare function hostPipeline<Props extends TungstenComponentPropsBase, Component extends AnyClassComponent>(ComponentType: TungstenComponentClass<Props, Component>, props?: Props, options?: HostPipelineDontResolveOptions): Promise<Hosted<Component>>;
12
+ export declare function hostPipeline<Props extends TungstenComponentPropsBase, Component extends AnyClassComponent>(ComponentType: TungstenComponentClass<Props, Component>, props?: Props, options?: HostPipelineOptions): Promise<HostedResolved<Component> | Hosted<Component>>;
13
+ export declare namespace hostPipeline {
14
+ var generic: typeof hostPipelineGeneric;
15
+ var jsx: typeof hostPipelineJsx;
16
+ }
17
+ /** host.generic() with hostPipeline()'s options */
18
+ export declare function hostPipelineGeneric<Props extends TungstenComponentPropsBase, Component extends AnyClassComponent>(ComponentType: TungstenComponentClass<Props, Component>, options?: HostPipelineResolveOptions): (props: Props) => Promise<HostedResolved<Component>>;
19
+ export declare function hostPipelineGeneric<Props extends TungstenComponentPropsBase, Component extends AnyClassComponent>(ComponentType: TungstenComponentClass<Props, Component>, options: HostPipelineDontResolveOptions): (props: Props) => Promise<Hosted<Component>>;
20
+ export declare function hostPipelineGeneric<Props extends TungstenComponentPropsBase, Component extends AnyClassComponent>(ComponentType: TungstenComponentClass<Props, Component>, options?: HostPipelineOptions): (props: Props) => Promise<Hosted<Component> | HostedResolved<Component>>;
21
+ /** host.jsx() with hostPipeline()'s options */
22
+ export declare function hostPipelineJsx<Component extends AnyClassComponent = AnyClassComponent>(element: ContentNodeElement, options?: HostPipelineResolveOptions): Promise<HostedResolved<Component>>;
23
+ export declare function hostPipelineJsx<Component extends AnyClassComponent = AnyClassComponent>(element: ContentNodeElement, options: HostPipelineDontResolveOptions): Promise<Hosted<Component>>;
24
+ export declare function hostPipelineJsx<Component extends AnyClassComponent = AnyClassComponent>(element: ContentNodeElement, options?: HostPipelineOptions): Promise<Hosted<Component> | HostedResolved<Component>>;
25
+ //# sourceMappingURL=hostPipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostPipeline.d.ts","sourceRoot":"","sources":["../../../src/testing/pipeline/hostPipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,qBAAqB,EAAE,sBAAsB,EAAE,0BAA0B,EAC5E,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,KAAK,EACR,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAC5F,MAAM,YAAY,CAAA;AAGnB,YAAY,EACR,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,GAC/F,MAAM,YAAY,CAAA;AAInB,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,aAAa,GAAG,cAAc,CAAA;AAE/E,MAAM,MAAM,0BAA0B,GAAG,YAAY,GAAG,cAAc,GAAG,OAAO,CAAA;AAChF,MAAM,MAAM,8BAA8B,GAAG,YAAY,GAAG,cAAc,GAAG,WAAW,CAAA;AAExF,KAAK,iBAAiB,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAOxD,oGAAoG;AAEpG,wBAAsB,YAAY,CAC9B,KAAK,SAAS,0BAA0B,EACxC,SAAS,SAAS,iBAAiB,EAEnC,aAAa,EAAE,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,EACvD,KAAK,CAAC,EAAE,KAAK,EACb,OAAO,CAAC,EAAE,0BAA0B,GACrC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;AAErC,wBAAsB,YAAY,CAC9B,KAAK,SAAS,0BAA0B,EACxC,SAAS,SAAS,iBAAiB,EAEnC,aAAa,EAAE,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,EACvD,KAAK,CAAC,EAAE,KAAK,EACb,OAAO,CAAC,EAAE,8BAA8B,GACzC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;AAE7B,wBAAsB,YAAY,CAC9B,KAAK,SAAS,0BAA0B,EACxC,SAAS,SAAS,iBAAiB,EAEnC,aAAa,EAAE,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,EACvD,KAAK,CAAC,EAAE,KAAK,EACb,OAAO,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;yBAPnC,YAAY;;;;AAoBlC,mDAAmD;AAEnD,wBAAgB,mBAAmB,CAC/B,KAAK,SAAS,0BAA0B,EACxC,SAAS,SAAS,iBAAiB,EAEnC,aAAa,EAAE,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,EACvD,OAAO,CAAC,EAAE,0BAA0B,GACrC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;AAEvD,wBAAgB,mBAAmB,CAC/B,KAAK,SAAS,0BAA0B,EACxC,SAAS,SAAS,iBAAiB,EAEnC,aAAa,EAAE,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,EACvD,OAAO,EAAE,8BAA8B,GACxC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;AAE/C,wBAAgB,mBAAmB,CAC/B,KAAK,SAAS,0BAA0B,EACxC,SAAS,SAAS,iBAAiB,EAEnC,aAAa,EAAE,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,EACvD,OAAO,CAAC,EAAE,mBAAmB,GAC9B,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;AAY3E,+CAA+C;AAE/C,wBAAsB,eAAe,CAAC,SAAS,SAAS,iBAAiB,GAAG,iBAAiB,EACzF,OAAO,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAClE,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA;AAErC,wBAAsB,eAAe,CAAC,SAAS,SAAS,iBAAiB,GAAG,iBAAiB,EACzF,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,8BAA8B,GACrE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;AAE7B,wBAAsB,eAAe,CAAC,SAAS,SAAS,iBAAiB,GAAG,iBAAiB,EACzF,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { host, hostJsx } from '../host.js';
2
+ // host()'s implementation signature, which its overloads hide
3
+ const hostImplementation = host;
4
+ // Implementation
5
+ export async function hostPipeline(ComponentType, props, options) {
6
+ return hostImplementation(ComponentType, props, options);
7
+ }
8
+ // implementation
9
+ export function hostPipelineGeneric(ComponentType, options) {
10
+ return async props => hostImplementation(ComponentType, props, options);
11
+ }
12
+ // implementation
13
+ export async function hostPipelineJsx(element, options) {
14
+ return hostJsx(element, options); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- the overloads above type them
15
+ }
16
+ // the variants hang off hostPipeline() too, as host()'s do
17
+ hostPipeline.generic = hostPipelineGeneric;
18
+ hostPipeline.jsx = hostPipelineJsx;
@@ -0,0 +1,30 @@
1
+ import type { ConstructPackage, TungstenBaseComponent, TungstenComponentPropsBase } from '../../Components.jsx';
2
+ import type { ReqRes } from '../../ReqRes.js';
3
+ import type { TestStoreOverride } from '../createTestApp.js';
4
+ import type { AppCheck } from './createTestPipelineApp.js';
5
+ import type { HydrateTestApp } from '../hydrateTestApp.js';
6
+ export type HydrateTestPipelineAppOptions<Props extends object> = {
7
+ document?: Document;
8
+ props?: Props;
9
+ serverProps?: Props;
10
+ container?: HTMLElement;
11
+ location?: string;
12
+ reqRes?: ReqRes;
13
+ stores?: readonly TestStoreOverride<any>[];
14
+ fileVersions?: Record<string, string>;
15
+ csr?: boolean;
16
+ };
17
+ export type HydrateTestPipelineApp<Component extends TungstenBaseComponent> = HydrateTestApp<Component>;
18
+ type HydrateTestPipelineAppArgs<Props extends object> = object extends Props ? [options?: HydrateTestPipelineAppOptions<Props>] : keyof Props extends never ? [options?: HydrateTestPipelineAppOptions<Props>] : [options: HydrateTestPipelineAppOptions<Props> & {
19
+ props: Props;
20
+ }];
21
+ /**
22
+ * hydrateTestApp() for an app built with pipeline() or splitPipeline(): the server pass runs the
23
+ * app's server stages, as a request does, and renders; the page carries the all-routes data and
24
+ * the networked data; the client pass runs the app's client stages, as hydratePipeline() does, and
25
+ * hydrates the parsed HTML. So a component whose markup depends on a context only one side makes
26
+ * shows up in `mismatches`, or throws on a structural difference.
27
+ */
28
+ export declare function hydrateTestPipelineApp<Props extends TungstenComponentPropsBase, Component extends TungstenBaseComponent<any, any>, A extends object, RouteData = undefined>(pipelineOrApp: A & AppCheck<A, Component>, RootComponent: new (pkg: ConstructPackage<Props, RouteData>) => Component, ...args: HydrateTestPipelineAppArgs<Props>): Promise<HydrateTestPipelineApp<Component>>;
29
+ export {};
30
+ //# sourceMappingURL=hydrateTestPipelineApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrateTestPipelineApp.d.ts","sourceRoot":"","sources":["../../../src/testing/pipeline/hydrateTestPipelineApp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,gBAAgB,EAAE,qBAAqB,EAAE,0BAA0B,EACtE,MAAM,sBAAsB,CAAA;AAI7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAK7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AA0B1D,MAAM,MAAM,6BAA6B,CAAC,KAAK,SAAS,MAAM,IAAI;IAC9D,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;IAEb,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,SAAS,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAA;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,GAAG,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,sBAAsB,CAAC,SAAS,SAAS,qBAAqB,IACpE,cAAc,CAAC,SAAS,CAAC,CAAA;AAE/B,KAAK,0BAA0B,CAAC,KAAK,SAAS,MAAM,IAAI,MAAM,SAAS,KAAK,GACtE,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,KAAK,CAAC,CAAC,GAChD,MAAM,KAAK,SAAS,KAAK,GACrB,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC,KAAK,CAAC,CAAC,GAChD,CAAC,OAAO,EAAE,6BAA6B,CAAC,KAAK,CAAC,GAAG;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC,CAAA;AAiB5E;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CACxC,KAAK,SAAS,0BAA0B,EACxC,SAAS,SAAS,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,EAEjD,CAAC,SAAS,MAAM,EAChB,SAAS,GAAG,SAAS,EAErB,aAAa,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,EACzC,aAAa,EAAE,KAAK,GAAG,EAAE,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,SAAS,EACzE,GAAG,IAAI,EAAE,0BAA0B,CAAC,KAAK,CAAC,GAC3C,OAAO,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAiJ5C"}
@@ -0,0 +1,193 @@
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 { toApp } from './createTestPipelineApp.js';
16
+ import { waitForEnvIfLoading } from '../loadEnv.js';
17
+ // the framework brands what it builds
18
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
19
+ const asGlobalData = data => data;
20
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
21
+ const asContext = context => context;
22
+ const applyStores = async (instance, overrides) => {
23
+ for (const override of overrides) {
24
+ await override.initialize(override.registration.getStore(instance.stores));
25
+ }
26
+ };
27
+ const appRoutesFor = (app, init) => reqRes => pipelineRoutes(app, reqRes, init, true);
28
+ /**
29
+ * hydrateTestApp() for an app built with pipeline() or splitPipeline(): the server pass runs the
30
+ * app's server stages, as a request does, and renders; the page carries the all-routes data and
31
+ * the networked data; the client pass runs the app's client stages, as hydratePipeline() does, and
32
+ * hydrates the parsed HTML. So a component whose markup depends on a context only one side makes
33
+ * shows up in `mismatches`, or throws on a structural difference.
34
+ */
35
+ export async function hydrateTestPipelineApp(pipelineOrApp, RootComponent, ...args) {
36
+ requireClient('hydrateTestPipelineApp()');
37
+ await waitForEnvIfLoading();
38
+ const app = toApp(pipelineOrApp);
39
+ const options = args[0];
40
+ const suppliedDocument = options?.document ?? globalThis.document;
41
+ if (suppliedDocument === undefined) {
42
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition
43
+ throw new Error('hydrateTestPipelineApp() requires options.document when no global document is' + ' available.');
44
+ }
45
+ const document = suppliedDocument;
46
+ const ownsContainer = options?.container === undefined;
47
+ const container = options?.container ?? document.createElement('div');
48
+ if (container.ownerDocument !== document) {
49
+ throw new Error('The HydrateTestApp container must belong to options.document.');
50
+ }
51
+ if (container.childNodes.length > 0) {
52
+ throw new Error('The HydrateTestApp container must be empty before hydrating.');
53
+ }
54
+ const clientProps = options?.props ?? {}; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
55
+ const serverProps = options?.serverProps ?? clientProps;
56
+ const location = options?.location ?? '/';
57
+ const overrides = options?.stores ?? [];
58
+ const instanceConfig = {
59
+ prod: false,
60
+ useRootComponent: true,
61
+ clientSideNav: true,
62
+ siteBasePath: '/',
63
+ staticSite: false,
64
+ csr: options?.csr ?? false
65
+ };
66
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- a stand-in request
67
+ const reqRes = options?.reqRes ?? {
68
+ req: {
69
+ url: location,
70
+ headers: {}
71
+ },
72
+ res: {}
73
+ };
74
+ // Server pass: the app's server stages, as PipelineRequestHandler runs them, then the render
75
+ const runner = app.split === true ? splitServer : symmetricServer;
76
+ const serverDataLoading = {
77
+ value: false
78
+ };
79
+ const routed = await runner.route(app, reqRes, location, serverDataLoading, true);
80
+ const post = await runner.post(app, reqRes, routed.init, routed.allRoutesData);
81
+ const served = runner.networked(routed.init, post);
82
+ const transport = new NetworkedTransport(served);
83
+ transport.snapshotAfterRouting();
84
+ const serverGlobalData = asGlobalData(routed.allRoutesData);
85
+ const ssrScheduler = new UpdateScheduler();
86
+ let html;
87
+ try {
88
+ const serverContext = asContext(runner.context(routed.init, post));
89
+ const serverNetworked = transport; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- as the request handler hands it
90
+ const ssrStores = initStores(location, reqRes, serverGlobalData, routed.matchedRouteInfo, serverDataLoading, serverContext, serverNetworked);
91
+ const ssrInstance = new Instance(location, instanceConfig, reqRes, appRoutesFor(app, routed.init), routed.routes, ssrStores.internalStore, ssrStores.stores, ssrStores.storeSubscriptions, serverGlobalData, routed.matchedRouteInfo, {
92
+ document,
93
+ window: document.defaultView,
94
+ scheduler: ssrScheduler,
95
+ navigation: false
96
+ });
97
+ ssrInstance.fileVersions = options?.fileVersions;
98
+ ssrInstance.context = serverContext;
99
+ ssrInstance.networkedData = serverNetworked;
100
+ ssrInstance.pipelineNetworked = served ?? {};
101
+ await applyStores(ssrInstance, overrides);
102
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- rootToHtml.ts builds a root content node the same way
103
+ const componentNode = {
104
+ [$type]: RootComponent,
105
+ [$props]: serverProps
106
+ };
107
+ const renderingTree = await contentTreeToRenderingTree(componentNode, null, ssrInstance, false);
108
+ const headData = {
109
+ found: false,
110
+ instance: ssrInstance,
111
+ clientImportAliases: {},
112
+ importAliases: {},
113
+ compilationLocation: '',
114
+ dev: false,
115
+ tungstenPublicEnv: undefined,
116
+ siteBasePath: '',
117
+ hmr: true,
118
+ csr: instanceConfig.csr
119
+ };
120
+ html = await renderingNodeToHtml(renderingTree, false, headData, null);
121
+ } finally {
122
+ ssrScheduler.dispose();
123
+ }
124
+ // what the page carries: processHead writes the transport after the render
125
+ const fromPage = JSON.parse(JSONstringify(transport));
126
+ if (ownsContainer) {
127
+ if (document.body === null) {
128
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition
129
+ throw new Error('The supplied document must have a body element.');
130
+ }
131
+ document.body.appendChild(container);
132
+ }
133
+ container.innerHTML = html;
134
+ bridgeHappyDomGlobals(document);
135
+ // Client pass: the app's own client run, with the page's data, as hydratePipeline() runs it
136
+ const ran = await app.client(app, fromPage);
137
+ const routes = pipelineRoutes(app, null, ran.init, true);
138
+ const {
139
+ key,
140
+ params,
141
+ data
142
+ } = routed.matchedRouteInfo;
143
+ const matchedRouteInfo = hydrationRouting({
144
+ key,
145
+ params,
146
+ ...('data' in routed.matchedRouteInfo ? {
147
+ data
148
+ } : {})
149
+ }, routes);
150
+ const posted = await ran.post(serverGlobalData);
151
+ const afterRouting = afterRoutingFor(posted.afterRouting);
152
+ const context = afterRouting === undefined ? asContext(posted.context) : await afterRouting(clientRoute(matchedRouteInfo, location), serverGlobalData);
153
+ const networkedData = routingNetworkedData(ran.routingNetworkedData);
154
+ const scheduler = new UpdateScheduler();
155
+ const {
156
+ internalStore,
157
+ stores,
158
+ storeSubscriptions
159
+ } = initStores(location, null, serverGlobalData, matchedRouteInfo, null, context, networkedData);
160
+ const instance = new Instance(location, instanceConfig, null, appRoutesFor(app, ran.init), routes, internalStore, stores, storeSubscriptions, serverGlobalData, matchedRouteInfo, {
161
+ document,
162
+ window: document.defaultView,
163
+ scheduler,
164
+ navigation: false
165
+ });
166
+ instance.fileVersions = options?.fileVersions;
167
+ instance.context = context;
168
+ instance.networkedData = networkedData;
169
+ instance.pipelineNetworked = ran.networked;
170
+ const rerun = ran.allRoutesData;
171
+ instance.pipeline = {
172
+ routingContext: routingContext(ran.routingContext),
173
+ routingNetworkedData: networkedData,
174
+ allRoutesData: rerun && (async () => asGlobalData(await rerun())),
175
+ afterRouting
176
+ };
177
+ try {
178
+ await applyStores(instance, overrides);
179
+ const meta = makeDefaultHydrateMeta();
180
+ const component = await hydrateRootComponent(instance, RootComponent, new DomPointer(container, 0), meta, clientProps, matchedRouteInfo.params, matchedRouteInfo.data);
181
+ return new HydrateTestAppImplementation(document, container, component, instance, scheduler, ownsContainer, html, meta.mismatches);
182
+ } catch (error) {
183
+ try {
184
+ instance.disposeRegisteredComponents();
185
+ } catch {
186
+ // Preserve the mount failure.
187
+ }
188
+ scheduler.dispose();
189
+ while (container.firstChild !== null) container.removeChild(container.firstChild);
190
+ if (ownsContainer) container.remove();
191
+ throw error;
192
+ }
193
+ }
@@ -0,0 +1,2 @@
1
+ export declare function checks(): Promise<void>;
2
+ //# sourceMappingURL=hydrateTestPipelineApp.types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hydrateTestPipelineApp.types.test.d.ts","sourceRoot":"","sources":["../../../src/testing/pipeline/hydrateTestPipelineApp.types.test.ts"],"names":[],"mappings":"AAeA,wBAAsB,MAAM,kBAO3B"}
@@ -0,0 +1,27 @@
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 { pipeline } from '../../pipeline/pipeline.js';
5
+ import { hydrateTestPipelineApp } from './hydrateTestPipelineApp.js';
6
+ // Type tests: tsc is the assertion - nothing here runs. The app or stage must make what the root
7
+ // reads, as createTestPipelineApp()'s must
8
+ const stage = pipeline.server('express').init(() => ({
9
+ api: 'client'
10
+ }));
11
+ class Reads extends stage.SimpleComponent {
12
+ constructor(...args) {
13
+ super(...args);
14
+ _defineProperty(this, "content", () => this.tungsten.context.api);
15
+ }
16
+ }
17
+ const other = pipeline.server('express').init(() => ({
18
+ db: 1
19
+ }));
20
+ export async function checks() {
21
+ await hydrateTestPipelineApp(stage.routes(() => []), Reads);
22
+ await hydrateTestPipelineApp(stage, Reads);
23
+ // @ts-expect-error -- another pipeline's app
24
+ await hydrateTestPipelineApp(other.routes(() => []), Reads);
25
+ // @ts-expect-error -- another pipeline's stage
26
+ await hydrateTestPipelineApp(other, Reads);
27
+ }
@@ -0,0 +1,5 @@
1
+ export { type AppCheck, type CreateTestPipelineAppArgs, type TestPipelineApp, type TestPipelineAppOptions, createTestPipelineApp, } from './createTestPipelineApp.js';
2
+ export { type CreateTestPacketAppArgs, type PacketForComponent, type TestPacketAppOptions, createTestPacketApp, } from './createTestPacketApp.js';
3
+ export { type HydrateTestPipelineApp, type HydrateTestPipelineAppOptions, hydrateTestPipelineApp, } from './hydrateTestPipelineApp.js';
4
+ export { type HostPipelineDontResolveOptions, type HostPipelineOptions, type HostPipelineResolveOptions, type HostStoreOptions, type Hosted, type HostedResolved, type HostedRoute, hostPipeline, hostPipelineGeneric, hostPipelineJsx, } from './hostPipeline.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/pipeline/index.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,QAAQ,EAAE,KAAK,yBAAyB,EAAE,KAAK,eAAe,EACnE,KAAK,sBAAsB,EAC3B,qBAAqB,GACxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACH,KAAK,uBAAuB,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAChF,mBAAmB,GACtB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACH,KAAK,sBAAsB,EAAE,KAAK,6BAA6B,EAC/D,sBAAsB,GACzB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACH,KAAK,8BAA8B,EAAE,KAAK,mBAAmB,EAAE,KAAK,0BAA0B,EAC9F,KAAK,gBAAgB,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EACzE,YAAY,EAAE,mBAAmB,EAAE,eAAe,GACrD,MAAM,mBAAmB,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { createTestPipelineApp } from './createTestPipelineApp.js';
2
+ export { createTestPacketApp } from './createTestPacketApp.js';
3
+ export { hydrateTestPipelineApp } from './hydrateTestPipelineApp.js';
4
+ export { hostPipeline, hostPipelineGeneric, hostPipelineJsx } from './hostPipeline.js';
@@ -0,0 +1,34 @@
1
+ import type { ConstructPackage, TungstenBaseComponent } from '../../Components.jsx';
2
+ import type { AsGlobalData, BrandedContext, BrandedNetworkedData } from '../../Brands.js';
3
+ import type { InstancePipeline } from '../../Instance/Instance.js';
4
+ import type { AppRoutes } from '../../routing/AppRoutes.js';
5
+ import type { MatchedRouteInfo } from '../../routing/MatchedRouteInfo.js';
6
+ import type { RoutesWithSettings } from '../../routing/Routes.js';
7
+ import { type TestApp, type TestStoreOverride } from '../createTestApp.js';
8
+ export type PipelineTestAppOptions<Props extends object> = {
9
+ document?: Document;
10
+ props?: Props;
11
+ container?: HTMLElement;
12
+ location?: string;
13
+ stores?: readonly TestStoreOverride<any>[];
14
+ fileVersions?: Record<string, string>;
15
+ };
16
+ export type PipelineTestTarget = {
17
+ document: Document;
18
+ container: HTMLElement;
19
+ ownsContainer: boolean;
20
+ };
21
+ export type PipelineTestData = {
22
+ location: string;
23
+ routes: RoutesWithSettings<any>;
24
+ appRoutes: AppRoutes<any>;
25
+ matchedRouteInfo: MatchedRouteInfo;
26
+ allRoutesData: AsGlobalData;
27
+ context: BrandedContext;
28
+ networkedData: BrandedNetworkedData;
29
+ networked: object;
30
+ pipeline: InstancePipeline;
31
+ };
32
+ export declare function pipelineTestTarget(options: PipelineTestAppOptions<object> | undefined, name: string): PipelineTestTarget;
33
+ export declare function mountPipelineTestApp<Props extends object, Component extends TungstenBaseComponent, RouteData>(target: PipelineTestTarget, data: PipelineTestData, RootComponent: new (pkg: ConstructPackage<Props, RouteData>) => Component, options: PipelineTestAppOptions<Props> | undefined): Promise<TestApp<Component>>;
34
+ //# sourceMappingURL=pipelineTestApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelineTestApp.d.ts","sourceRoot":"","sources":["../../../src/testing/pipeline/pipelineTestApp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAEzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAKjE,OAAO,EAAyB,KAAK,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAKjG,MAAM,MAAM,sBAAsB,CAAC,KAAK,SAAS,MAAM,IAAI;IACvD,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,SAAS,CAAC,EAAE,WAAW,CAAA;IAEvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,SAAS,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAA;IAE1C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC7B,QAAQ,EAAE,QAAQ,CAAA;IAClB,SAAS,EAAE,WAAW,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;CACzB,CAAA;AAGD,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAA;IAC/B,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAA;IACzB,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,aAAa,EAAE,YAAY,CAAA;IAC3B,OAAO,EAAE,cAAc,CAAA;IACvB,aAAa,EAAE,oBAAoB,CAAA;IAEnC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,gBAAgB,CAAA;CAC7B,CAAA;AAGD,wBAAgB,kBAAkB,CAC9B,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAClE,kBAAkB,CAqBpB;AAED,wBAAsB,oBAAoB,CACtC,KAAK,SAAS,MAAM,EAAE,SAAS,SAAS,qBAAqB,EAAE,SAAS,EAExE,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,gBAAgB,EACtB,aAAa,EAAE,KAAK,GAAG,EAAE,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,SAAS,EACzE,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,SAAS,GACnD,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAkF7B"}
@@ -0,0 +1,100 @@
1
+ import { Instance } from '../../Instance/Instance.js';
2
+ import { initStores } from '../../Servers/initStores.js';
3
+ import { createTungstenRootComponent } from '../../update/integrateUpdateVdom.js';
4
+ import { UpdateScheduler } from '../../update/UpdateScheduler.js';
5
+ import { TestAppImplementation } from '../createTestApp.js';
6
+ // checked before anything runs
7
+ export function pipelineTestTarget(options, name) {
8
+ const suppliedDocument = options?.document ?? globalThis.document;
9
+ if (suppliedDocument === undefined) {
10
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition
11
+ throw new Error(`${name} requires options.document when no global document is available.`);
12
+ }
13
+ const document = suppliedDocument;
14
+ const ownsContainer = options?.container === undefined;
15
+ const container = options?.container ?? document.createElement('div');
16
+ if (container.ownerDocument !== document) {
17
+ throw new Error('The TestApp container must belong to options.document.');
18
+ }
19
+ if (container.childNodes.length > 0) {
20
+ throw new Error('The TestApp container must be empty before mounting.');
21
+ }
22
+ return {
23
+ document,
24
+ container,
25
+ ownsContainer
26
+ };
27
+ }
28
+ export async function mountPipelineTestApp(target, data, RootComponent, options) {
29
+ const {
30
+ document,
31
+ container,
32
+ ownsContainer
33
+ } = target;
34
+ const {
35
+ location,
36
+ allRoutesData,
37
+ matchedRouteInfo,
38
+ context,
39
+ networkedData
40
+ } = data;
41
+ if (ownsContainer) {
42
+ if (document.body === null) {
43
+ // eslint-disable-line @typescript-eslint/no-unnecessary-condition
44
+ throw new Error('The supplied document must have a body element.');
45
+ }
46
+ document.body.appendChild(container);
47
+ }
48
+ const scheduler = new UpdateScheduler();
49
+ const runtimeContext = {
50
+ document,
51
+ window: document.defaultView,
52
+ scheduler,
53
+ navigation: false
54
+ };
55
+ const {
56
+ internalStore,
57
+ stores,
58
+ storeSubscriptions
59
+ } = initStores(location, null, allRoutesData, matchedRouteInfo, null, context, networkedData);
60
+ const instanceConfig = {
61
+ prod: false,
62
+ useRootComponent: true,
63
+ clientSideNav: true,
64
+ siteBasePath: '/',
65
+ staticSite: false,
66
+ csr: false
67
+ };
68
+ const instance = new Instance(location, instanceConfig, null, data.appRoutes, data.routes, internalStore, stores, storeSubscriptions, allRoutesData, matchedRouteInfo, runtimeContext);
69
+ instance.fileVersions = options?.fileVersions;
70
+ instance.context = context;
71
+ instance.networkedData = networkedData;
72
+ instance.pipelineNetworked = data.networked;
73
+ instance.pipeline = data.pipeline;
74
+ try {
75
+ for (const override of options?.stores ?? []) {
76
+ const store = override.registration.getStore(instance.stores);
77
+ await override.initialize(store);
78
+ }
79
+ const props = options?.props ?? {};
80
+ const root = await createTungstenRootComponent(RootComponent, props, matchedRouteInfo.params, matchedRouteInfo.data, instance, container);
81
+ const testApp = new TestAppImplementation(document, container, root.component, instance, scheduler, root, ownsContainer);
82
+ try {
83
+ await testApp.resolved();
84
+ return testApp;
85
+ } catch (error) {
86
+ await testApp.unmount();
87
+ throw error;
88
+ }
89
+ } catch (error) {
90
+ try {
91
+ instance.disposeRegisteredComponents();
92
+ } catch {
93
+ // Preserve the mount failure.
94
+ }
95
+ scheduler.dispose();
96
+ while (container.firstChild !== null) container.removeChild(container.firstChild);
97
+ if (ownsContainer) container.remove();
98
+ throw error;
99
+ }
100
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=testPipelineRoute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testPipelineRoute.d.ts","sourceRoot":"","sources":["../../../src/testing/pipeline/testPipelineRoute.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};