tungsten 0.6.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (486) hide show
  1. package/dist/.build-complete +1 -1
  2. package/dist/Brands.d.ts +16 -0
  3. package/dist/Brands.d.ts.map +1 -0
  4. package/dist/Brands.js +22 -0
  5. package/dist/Components.d.ts +4 -1
  6. package/dist/Components.d.ts.map +1 -1
  7. package/dist/Components.js +24 -6
  8. package/dist/ContentNode.d.ts +3 -2
  9. package/dist/ContentNode.d.ts.map +1 -1
  10. package/dist/ContentNode.js +11 -0
  11. package/dist/Framework.d.ts.map +1 -1
  12. package/dist/Framework.js +23 -4
  13. package/dist/FrameworkConfig.d.ts +7 -1
  14. package/dist/FrameworkConfig.d.ts.map +1 -1
  15. package/dist/FunctionComponent.d.ts +1 -0
  16. package/dist/FunctionComponent.d.ts.map +1 -1
  17. package/dist/FunctionComponentStandIn.d.ts.map +1 -1
  18. package/dist/Instance/Instance.d.ts +29 -12
  19. package/dist/Instance/Instance.d.ts.map +1 -1
  20. package/dist/Instance/Instance.js +59 -21
  21. package/dist/Instance/InstanceConfig.d.ts +2 -1
  22. package/dist/Instance/InstanceConfig.d.ts.map +1 -1
  23. package/dist/RenderedContentNode.d.ts.map +1 -1
  24. package/dist/RenderingNode.d.ts.map +1 -1
  25. package/dist/Servers/DevServer.d.ts +4 -2
  26. package/dist/Servers/DevServer.d.ts.map +1 -1
  27. package/dist/Servers/DevServer.js +62 -20
  28. package/dist/Servers/ProdServer.d.ts +4 -2
  29. package/dist/Servers/ProdServer.d.ts.map +1 -1
  30. package/dist/Servers/ProdServer.js +77 -18
  31. package/dist/Servers/StaticSiteServer.d.ts +1 -1
  32. package/dist/Servers/StaticSiteServer.d.ts.map +1 -1
  33. package/dist/Servers/TungstenServer.d.ts +2 -1
  34. package/dist/Servers/TungstenServer.d.ts.map +1 -1
  35. package/dist/Servers/TungstenServer.js +7 -0
  36. package/dist/Servers/cacheVersioned.d.ts +3 -0
  37. package/dist/Servers/cacheVersioned.d.ts.map +1 -0
  38. package/dist/Servers/cacheVersioned.js +23 -0
  39. package/dist/Servers/devErrorPageAutoRetry.d.ts.map +1 -1
  40. package/dist/Servers/devErrorPageAutoRetry.js +1 -0
  41. package/dist/Servers/initStores.d.ts +4 -4
  42. package/dist/Servers/initStores.d.ts.map +1 -1
  43. package/dist/Servers/initStores.js +2 -2
  44. package/dist/Servers/loadEnvsDev.d.ts.map +1 -1
  45. package/dist/Servers/loadEnvsDev.js +7 -6
  46. package/dist/Servers/resetRegistrations.d.ts +2 -0
  47. package/dist/Servers/resetRegistrations.d.ts.map +1 -0
  48. package/dist/Servers/resetRegistrations.js +13 -0
  49. package/dist/Servers/routing.d.ts +3 -2
  50. package/dist/Servers/routing.d.ts.map +1 -1
  51. package/dist/Servers/routing.js +3 -2
  52. package/dist/Store/InternalStoreSchema.d.ts +1 -1
  53. package/dist/Store/Store.js +2 -1
  54. package/dist/Store/StoreSchemaClass.d.ts +6 -3
  55. package/dist/Store/StoreSchemaClass.d.ts.map +1 -1
  56. package/dist/Store/StoreSchemaClass.js +8 -1
  57. package/dist/Store/TypeSafeStore.js +2 -1
  58. package/dist/Store/createStores.d.ts +3 -3
  59. package/dist/Store/createStores.d.ts.map +1 -1
  60. package/dist/Store/createStores.js +7 -2
  61. package/dist/Store/getInternalStore.d.ts.map +1 -1
  62. package/dist/Store/registerStore.d.ts.map +1 -1
  63. package/dist/Store/registerStore.js +2 -2
  64. package/dist/Store/storeCreators.d.ts +2 -2
  65. package/dist/Store/storeCreators.d.ts.map +1 -1
  66. package/dist/TungstenApp.d.ts +3 -3
  67. package/dist/TungstenApp.d.ts.map +1 -1
  68. package/dist/_client/cjsHelpers.d.ts.map +1 -1
  69. package/dist/_client/cjsHelpers.js +5 -3
  70. package/dist/_client/client.d.ts +2 -0
  71. package/dist/_client/client.d.ts.map +1 -1
  72. package/dist/_client/client.js +10 -3
  73. package/dist/api/getApiRoutes.d.ts.map +1 -1
  74. package/dist/api/getExport.d.ts +1 -1
  75. package/dist/api/getExport.d.ts.map +1 -1
  76. package/dist/api/getExport.js +2 -1
  77. package/dist/api/getExportDev.d.ts +1 -1
  78. package/dist/api/getExportDev.d.ts.map +1 -1
  79. package/dist/appBuilder.d.ts +69 -0
  80. package/dist/appBuilder.d.ts.map +1 -0
  81. package/dist/appBuilder.js +98 -0
  82. package/dist/appBuilder.types.test.d.ts +110 -0
  83. package/dist/appBuilder.types.test.d.ts.map +1 -0
  84. package/dist/appBuilder.types.test.js +240 -0
  85. package/dist/babelPlugins/BabelTransformBindDirect.js +7 -7
  86. package/dist/babelPlugins/BabelTransformBindVar.js +7 -7
  87. package/dist/babelPlugins/BabelTransformComponentState.d.ts.map +1 -1
  88. package/dist/babelPlugins/BabelTransformComponentStyles.d.ts.map +1 -1
  89. package/dist/babelPlugins/BabelTransformComponentStyles.js +5 -5
  90. package/dist/babelPlugins/BabelTransformCssImports.d.ts.map +1 -1
  91. package/dist/babelPlugins/BabelTransformCssImports.js +2 -2
  92. package/dist/babelPlugins/BabelTransformDeproxyState.d.ts.map +1 -1
  93. package/dist/babelPlugins/BabelTransformPackageImports.d.ts.map +1 -1
  94. package/dist/babelPlugins/BabelTransformPackageImports.js +11 -6
  95. package/dist/babelPlugins/BabelTransformRemoveDevBlocks.d.ts.map +1 -1
  96. package/dist/babelPlugins/BabelTransformRemoveServerBlocks.d.ts.map +1 -1
  97. package/dist/babelPlugins/BabelTypes.d.ts.map +1 -1
  98. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts.map +1 -1
  99. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.js +1 -1
  100. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts.map +1 -1
  101. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.js +2 -2
  102. package/dist/bin/commands/compile.d.ts.map +1 -1
  103. package/dist/bin/commands/compile.js +2 -1
  104. package/dist/build/CompilationInfo.d.ts +3 -0
  105. package/dist/build/CompilationInfo.d.ts.map +1 -1
  106. package/dist/build/assetVersions.d.ts +9 -0
  107. package/dist/build/assetVersions.d.ts.map +1 -0
  108. package/dist/build/assetVersions.js +39 -0
  109. package/dist/build/babel.user.common.config.d.ts.map +1 -1
  110. package/dist/build/bundle.d.ts.map +1 -1
  111. package/dist/build/bundle.js +2 -1
  112. package/dist/build/bundleBabelOptions.d.ts.map +1 -1
  113. package/dist/build/clientRoutesFile.d.ts +2 -0
  114. package/dist/build/clientRoutesFile.d.ts.map +1 -0
  115. package/dist/build/clientRoutesFile.js +13 -0
  116. package/dist/build/compileJavascript.d.ts.map +1 -1
  117. package/dist/build/compileJavascript.js +4 -3
  118. package/dist/build/compileStyles.d.ts +2 -1
  119. package/dist/build/compileStyles.d.ts.map +1 -1
  120. package/dist/build/compileStyles.js +38 -83
  121. package/dist/build/compileUserApp.d.ts.map +1 -1
  122. package/dist/build/componentStylesCache.d.ts.map +1 -1
  123. package/dist/build/componentStylesCache.js +3 -2
  124. package/dist/build/copyAssets.d.ts.map +1 -1
  125. package/dist/build/copyAssets.js +2 -1
  126. package/dist/build/copyPackageModulesToPackagesFolder.d.ts.map +1 -1
  127. package/dist/build/copyPackageModulesToPackagesFolder.js +1 -1
  128. package/dist/build/copyPublicFiles.d.ts.map +1 -1
  129. package/dist/build/copyPublicFiles.js +2 -1
  130. package/dist/build/createClientFiles.d.ts.map +1 -1
  131. package/dist/build/createClientFiles.js +9 -5
  132. package/dist/build/createInstanceConfigFile.d.ts +1 -1
  133. package/dist/build/createInstanceConfigFile.d.ts.map +1 -1
  134. package/dist/build/createInstanceConfigFile.js +9 -3
  135. package/dist/build/frameworkDestLocation.d.ts.map +1 -1
  136. package/dist/build/frameworkDestLocation.js +5 -6
  137. package/dist/build/frameworkStylesheets.d.ts.map +1 -1
  138. package/dist/build/frameworkStylesheets.js +1 -1
  139. package/dist/build/makeBabelRawConfig.d.ts.map +1 -1
  140. package/dist/build/makeBabelUserDevConfig.d.ts +2 -2
  141. package/dist/build/makeBabelUserDevConfig.d.ts.map +1 -1
  142. package/dist/build/makeBabelUserProdConfig.d.ts.map +1 -1
  143. package/dist/build/rollup.user.prod.config.d.ts.map +1 -1
  144. package/dist/build/rollup.user.prod.config.js +5 -3
  145. package/dist/build/rollupProdConstants.d.ts +5 -0
  146. package/dist/build/rollupProdConstants.d.ts.map +1 -0
  147. package/dist/build/rollupProdConstants.js +21 -0
  148. package/dist/cacheControl.d.ts +13 -0
  149. package/dist/cacheControl.d.ts.map +1 -0
  150. package/dist/cacheControl.js +22 -0
  151. package/dist/compat/types.d.ts +1 -1
  152. package/dist/compat/types.d.ts.map +1 -1
  153. package/dist/componentHelpers.d.ts +18 -0
  154. package/dist/componentHelpers.d.ts.map +1 -0
  155. package/dist/componentHelpers.js +28 -0
  156. package/dist/componentProxyHandlers.d.ts.map +1 -1
  157. package/dist/components/Fragment.d.ts +8 -0
  158. package/dist/components/Fragment.d.ts.map +1 -0
  159. package/dist/components/Fragment.js +10 -0
  160. package/dist/components/Link.d.ts +4 -3
  161. package/dist/components/Link.d.ts.map +1 -1
  162. package/dist/components/Link.js +1 -0
  163. package/dist/components/NoEscape.d.ts +8 -0
  164. package/dist/components/NoEscape.d.ts.map +1 -0
  165. package/dist/components/NoEscape.js +6 -0
  166. package/dist/components/RouteRedirectComponent.d.ts.map +1 -1
  167. package/dist/components/RouteRedirectComponent.js +1 -1
  168. package/dist/components/WebRedirectComponent.d.ts.map +1 -1
  169. package/dist/components/WebRedirectComponent.js +1 -1
  170. package/dist/components/bindable/BindVariable.d.ts +1 -0
  171. package/dist/components/bindable/BindVariable.d.ts.map +1 -1
  172. package/dist/components/bindable/BindableCheckbox.d.ts +7 -7
  173. package/dist/components/bindable/BindableCheckbox.d.ts.map +1 -1
  174. package/dist/components/bindable/BindableInput.d.ts +7 -7
  175. package/dist/components/bindable/BindableInput.d.ts.map +1 -1
  176. package/dist/components/bindable/BindableInputNonString.d.ts +2 -2
  177. package/dist/components/bindable/BindableInputNonString.d.ts.map +1 -1
  178. package/dist/components/bindable/BindableInputString.d.ts +2 -2
  179. package/dist/components/bindable/BindableInputString.d.ts.map +1 -1
  180. package/dist/components/bindable/BindableInputTyped.d.ts +3 -3
  181. package/dist/components/bindable/BindableInputTyped.d.ts.map +1 -1
  182. package/dist/components/bindable/BindableInputTypedLegacy.d.ts +3 -3
  183. package/dist/components/bindable/BindableInputTypedLegacy.d.ts.map +1 -1
  184. package/dist/components/bindable/BindableRadio.js +2 -2
  185. package/dist/components/bindable/BindableSelect.d.ts +13 -10
  186. package/dist/components/bindable/BindableSelect.d.ts.map +1 -1
  187. package/dist/components/bindable/BindableSelectNaive.js +3 -3
  188. package/dist/components/bindable/BindableTextarea.d.ts +7 -7
  189. package/dist/components/bindable/BindableTextarea.d.ts.map +1 -1
  190. package/dist/components/bindable/bindableCandidates.comparison.d.ts +136 -0
  191. package/dist/components/bindable/bindableCandidates.comparison.d.ts.map +1 -0
  192. package/dist/components/bindable/bindableCandidates.comparison.js +268 -0
  193. package/dist/components/bindable/bindableProps.types.test.d.ts +50 -0
  194. package/dist/components/bindable/bindableProps.types.test.d.ts.map +1 -0
  195. package/dist/components/bindable/bindableProps.types.test.js +252 -0
  196. package/dist/components/library/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  197. package/dist/components/library/RichTextEditor/contentTree.d.ts.map +1 -1
  198. package/dist/components/makeTypedLink.d.ts +9 -0
  199. package/dist/components/makeTypedLink.d.ts.map +1 -0
  200. package/dist/components/makeTypedLink.js +15 -0
  201. package/dist/context/registerContext.d.ts +22 -0
  202. package/dist/context/registerContext.d.ts.map +1 -0
  203. package/dist/context/registerContext.js +18 -0
  204. package/dist/env/getEnvSchemas.d.ts.map +1 -1
  205. package/dist/env/getEnvSchemas.js +2 -1
  206. package/dist/fileVersions.d.ts +9 -0
  207. package/dist/fileVersions.d.ts.map +1 -0
  208. package/dist/fileVersions.js +28 -0
  209. package/dist/findUserConfig.d.ts +1 -1
  210. package/dist/findUserConfig.d.ts.map +1 -1
  211. package/dist/findUserConfig.js +2 -1
  212. package/dist/frameworkConfigSchema.d.ts +14 -2
  213. package/dist/frameworkConfigSchema.d.ts.map +1 -1
  214. package/dist/frameworkConfigSchema.js +11 -2
  215. package/dist/getComponent.d.ts.map +1 -1
  216. package/dist/getComponent.js +4 -3
  217. package/dist/getRoutes.d.ts.map +1 -1
  218. package/dist/getRoutes.js +9 -8
  219. package/dist/hmr/applyHmrModule.d.ts.map +1 -1
  220. package/dist/hmr/componentIdentity.js +1 -1
  221. package/dist/hooks/getCurrentComponent.d.ts +1 -1
  222. package/dist/hooks/getCurrentComponent.d.ts.map +1 -1
  223. package/dist/hydrate/hydrate.d.ts +5 -1
  224. package/dist/hydrate/hydrate.d.ts.map +1 -1
  225. package/dist/hydrate/hydrate.js +59 -46
  226. package/dist/hydrate/hydrateGlobalData.d.ts +4 -3
  227. package/dist/hydrate/hydrateGlobalData.d.ts.map +1 -1
  228. package/dist/hydrate/reconcileHydratedAttributes.d.ts +2 -1
  229. package/dist/hydrate/reconcileHydratedAttributes.d.ts.map +1 -1
  230. package/dist/hydrate/reconcileHydratedAttributes.js +4 -3
  231. package/dist/hydrate/renderHydrationMismatchBanner.d.ts.map +1 -1
  232. package/dist/hydrate/renderHydrationMismatchBanner.js +2 -1
  233. package/dist/importDevModuleWithRetry.d.ts +2 -1
  234. package/dist/importDevModuleWithRetry.d.ts.map +1 -1
  235. package/dist/importDevModuleWithRetry.js +2 -1
  236. package/dist/importModule.d.ts +3 -0
  237. package/dist/importModule.d.ts.map +1 -0
  238. package/dist/importModule.js +4 -0
  239. package/dist/index.js +2 -1
  240. package/dist/indexInner.d.ts +30 -7
  241. package/dist/indexInner.d.ts.map +1 -1
  242. package/dist/indexInner.js +37 -2
  243. package/dist/json.d.ts +12 -0
  244. package/dist/json.d.ts.map +1 -0
  245. package/dist/json.js +8 -0
  246. package/dist/jsxHelpers.d.ts +3 -0
  247. package/dist/jsxHelpers.d.ts.map +1 -0
  248. package/dist/jsxHelpers.js +6 -0
  249. package/dist/jsxRuntime.d.ts +1 -0
  250. package/dist/jsxRuntime.d.ts.map +1 -1
  251. package/dist/jsxRuntime.js +3 -1
  252. package/dist/jsxRuntimeSignals.d.ts.map +1 -1
  253. package/dist/jsxRuntimeSignals.js +1 -0
  254. package/dist/makeInstanceConfigFromFrameworkConfig.d.ts.map +1 -1
  255. package/dist/makeInstanceConfigFromFrameworkConfig.js +1 -0
  256. package/dist/mergeConfigs.d.ts.map +1 -1
  257. package/dist/mergeConfigs.js +2 -6
  258. package/dist/nbsp.d.ts +1 -2
  259. package/dist/nbsp.d.ts.map +1 -1
  260. package/dist/nbsp.js +3 -7
  261. package/dist/objectMap.d.ts +1 -1
  262. package/dist/objectMap.d.ts.map +1 -1
  263. package/dist/pipeline/PipelineRequestHandler.d.ts +25 -0
  264. package/dist/pipeline/PipelineRequestHandler.d.ts.map +1 -0
  265. package/dist/pipeline/PipelineRequestHandler.js +96 -0
  266. package/dist/pipeline/contextStore.d.ts +12 -0
  267. package/dist/pipeline/contextStore.d.ts.map +1 -0
  268. package/dist/pipeline/contextStore.js +13 -0
  269. package/dist/pipeline/hydratePipeline.d.ts +4 -0
  270. package/dist/pipeline/hydratePipeline.d.ts.map +1 -0
  271. package/dist/pipeline/hydratePipeline.js +64 -0
  272. package/dist/pipeline/importRoutesModule.d.ts +6 -0
  273. package/dist/pipeline/importRoutesModule.d.ts.map +1 -0
  274. package/dist/pipeline/importRoutesModule.js +33 -0
  275. package/dist/pipeline/networkedTransport.d.ts +11 -0
  276. package/dist/pipeline/networkedTransport.d.ts.map +1 -0
  277. package/dist/pipeline/networkedTransport.js +54 -0
  278. package/dist/pipeline/pipeline.d.ts +105 -0
  279. package/dist/pipeline/pipeline.d.ts.map +1 -0
  280. package/dist/pipeline/pipeline.js +108 -0
  281. package/dist/pipeline/pipeline.types.test.d.ts +650 -0
  282. package/dist/pipeline/pipeline.types.test.d.ts.map +1 -0
  283. package/dist/pipeline/pipeline.types.test.js +342 -0
  284. package/dist/pipeline/pipelineDefinition.d.ts +67 -0
  285. package/dist/pipeline/pipelineDefinition.d.ts.map +1 -0
  286. package/dist/pipeline/pipelineDefinition.js +11 -0
  287. package/dist/pipeline/pipelineSplit.types.test.d.ts +1971 -0
  288. package/dist/pipeline/pipelineSplit.types.test.d.ts.map +1 -0
  289. package/dist/pipeline/pipelineSplit.types.test.js +440 -0
  290. package/dist/pipeline/runPipeline.d.ts +31 -0
  291. package/dist/pipeline/runPipeline.d.ts.map +1 -0
  292. package/dist/pipeline/runPipeline.js +71 -0
  293. package/dist/pipeline/runSplitPipeline.d.ts +10 -0
  294. package/dist/pipeline/runSplitPipeline.d.ts.map +1 -0
  295. package/dist/pipeline/runSplitPipeline.js +48 -0
  296. package/dist/pipeline/splitPipeline.d.ts +62 -0
  297. package/dist/pipeline/splitPipeline.d.ts.map +1 -0
  298. package/dist/pipeline/splitPipeline.js +76 -0
  299. package/dist/pop.js +1 -1
  300. package/dist/rawHtml/filterContentNode.d.ts.map +1 -1
  301. package/dist/render/HeadData.d.ts +3 -1
  302. package/dist/render/HeadData.d.ts.map +1 -1
  303. package/dist/render/classComponentNodeToRenderingTree.d.ts.map +1 -1
  304. package/dist/render/componentNodeToRenderingTree.d.ts.map +1 -1
  305. package/dist/render/contentToHtml.d.ts +2 -2
  306. package/dist/render/contentToHtml.d.ts.map +1 -1
  307. package/dist/render/contentToHtml.js +2 -1
  308. package/dist/render/contentToHtmlDev.d.ts +1 -1
  309. package/dist/render/contentToHtmlDev.d.ts.map +1 -1
  310. package/dist/render/contentTreeToRenderingTree.d.ts.map +1 -1
  311. package/dist/render/contentTreeToRenderingTree.js +2 -1
  312. package/dist/render/functionComponentNodeToRenderingTree.d.ts.map +1 -1
  313. package/dist/render/functionComponentNodeToRenderingTree.js +2 -2
  314. package/dist/render/instantiateComponent.d.ts.map +1 -1
  315. package/dist/render/processHead.d.ts.map +1 -1
  316. package/dist/render/processHead.js +12 -18
  317. package/dist/render/renderingTreeToHtml.d.ts.map +1 -1
  318. package/dist/render/renderingTreeToHtml.js +6 -3
  319. package/dist/render/rootToHtml.d.ts +2 -2
  320. package/dist/render/rootToHtml.d.ts.map +1 -1
  321. package/dist/requests/fetch/delete.d.ts.map +1 -1
  322. package/dist/requests/fetch/delete.js +5 -2
  323. package/dist/requests/fetch/get.js +1 -1
  324. package/dist/requests/fetch/patch.d.ts.map +1 -1
  325. package/dist/requests/fetch/patch.js +5 -2
  326. package/dist/requests/fetch/post.d.ts.map +1 -1
  327. package/dist/requests/fetch/post.js +5 -2
  328. package/dist/requests/fetch/put.d.ts.map +1 -1
  329. package/dist/requests/fetch/put.js +5 -2
  330. package/dist/routesLocationParts.d.ts +6 -0
  331. package/dist/routesLocationParts.d.ts.map +1 -0
  332. package/dist/routesLocationParts.js +10 -0
  333. package/dist/routing/AppRoutes.d.ts +5 -3
  334. package/dist/routing/AppRoutes.d.ts.map +1 -1
  335. package/dist/routing/MatchedRouteInfo.d.ts +11 -0
  336. package/dist/routing/MatchedRouteInfo.d.ts.map +1 -0
  337. package/dist/routing/RouteContentFunction.d.ts +1 -2
  338. package/dist/routing/RouteContentFunction.d.ts.map +1 -1
  339. package/dist/routing/RouteDataFunction.type.d.ts +4 -2
  340. package/dist/routing/RouteDataFunction.type.d.ts.map +1 -1
  341. package/dist/routing/RoutePaths.d.ts +12 -0
  342. package/dist/routing/RoutePaths.d.ts.map +1 -0
  343. package/dist/routing/RoutePaths.js +1 -0
  344. package/dist/routing/RouteTypes.d.ts +6 -4
  345. package/dist/routing/RouteTypes.d.ts.map +1 -1
  346. package/dist/routing/Routes.d.ts +17 -11
  347. package/dist/routing/Routes.d.ts.map +1 -1
  348. package/dist/routing/RoutesFunction.d.ts +11 -2
  349. package/dist/routing/RoutesFunction.d.ts.map +1 -1
  350. package/dist/routing/Serializable.d.ts +5 -0
  351. package/dist/routing/Serializable.d.ts.map +1 -0
  352. package/dist/routing/Serializable.js +1 -0
  353. package/dist/routing/builder.d.ts +99 -0
  354. package/dist/routing/builder.d.ts.map +1 -0
  355. package/dist/routing/builder.js +213 -0
  356. package/dist/routing/builder.trial.d.ts +2 -0
  357. package/dist/routing/builder.trial.d.ts.map +1 -0
  358. package/dist/routing/builder.trial.js +85 -0
  359. package/dist/routing/defineRoutes.d.ts +8 -0
  360. package/dist/routing/defineRoutes.d.ts.map +1 -0
  361. package/dist/routing/defineRoutes.js +3 -0
  362. package/dist/routing/pyramidRouting.d.ts +2 -0
  363. package/dist/routing/pyramidRouting.d.ts.map +1 -0
  364. package/dist/routing/pyramidRouting.js +13 -0
  365. package/dist/routing/registerGlobalData.d.ts +11 -3
  366. package/dist/routing/registerGlobalData.d.ts.map +1 -1
  367. package/dist/routing/registerGlobalData.js +6 -0
  368. package/dist/routing/registerParts.types.test.d.ts +2 -0
  369. package/dist/routing/registerParts.types.test.d.ts.map +1 -0
  370. package/dist/routing/registerParts.types.test.js +139 -0
  371. package/dist/routing/registerRoutes.d.ts +10 -0
  372. package/dist/routing/registerRoutes.d.ts.map +1 -0
  373. package/dist/routing/registerRoutes.js +9 -0
  374. package/dist/routing/registerRouting.d.ts +36 -0
  375. package/dist/routing/registerRouting.d.ts.map +1 -0
  376. package/dist/routing/registerRouting.js +34 -0
  377. package/dist/routing/registerRouting.types.test.d.ts +80 -0
  378. package/dist/routing/registerRouting.types.test.d.ts.map +1 -0
  379. package/dist/routing/registerRouting.types.test.js +120 -0
  380. package/dist/routing/registrationTypes.d.ts +11 -0
  381. package/dist/routing/registrationTypes.d.ts.map +1 -0
  382. package/dist/routing/registrationTypes.js +1 -0
  383. package/dist/routing/resolveAppRoutes.d.ts +5 -0
  384. package/dist/routing/resolveAppRoutes.d.ts.map +1 -0
  385. package/dist/routing/resolveAppRoutes.js +25 -0
  386. package/dist/routing/routeUrl.d.ts +4 -0
  387. package/dist/routing/routeUrl.d.ts.map +1 -1
  388. package/dist/routing/routeUrl.js +4 -0
  389. package/dist/routing/routesArray.d.ts +23 -0
  390. package/dist/routing/routesArray.d.ts.map +1 -0
  391. package/dist/routing/routesArray.js +20 -0
  392. package/dist/routing/routesArray.types.test.d.ts +2 -0
  393. package/dist/routing/routesArray.types.test.d.ts.map +1 -0
  394. package/dist/routing/routesArray.types.test.js +132 -0
  395. package/dist/routing/routingBuilder.d.ts +34 -0
  396. package/dist/routing/routingBuilder.d.ts.map +1 -0
  397. package/dist/routing/routingBuilder.js +33 -0
  398. package/dist/routing/routingBuilder.types.test.d.ts +2 -0
  399. package/dist/routing/routingBuilder.types.test.d.ts.map +1 -0
  400. package/dist/routing/routingBuilder.types.test.js +171 -0
  401. package/dist/routing/routingRegistry.d.ts +19 -0
  402. package/dist/routing/routingRegistry.d.ts.map +1 -0
  403. package/dist/routing/routingRegistry.js +29 -0
  404. package/dist/staticGen/getAppRoutes.d.ts +2 -2
  405. package/dist/staticGen/getAppRoutes.d.ts.map +1 -1
  406. package/dist/staticGen/getAppRoutes.js +9 -6
  407. package/dist/staticGen/staticGen.d.ts.map +1 -1
  408. package/dist/staticGen/staticGen.js +8 -2
  409. package/dist/style/styleContentSxy.d.ts.map +1 -1
  410. package/dist/sync/index.d.ts.map +1 -1
  411. package/dist/sync/index.js +2 -0
  412. package/dist/syncServer/index.cjs +1 -2
  413. package/dist/syncServer/preload.js +2 -0
  414. package/dist/testing/createTestApp.d.ts +25 -1
  415. package/dist/testing/createTestApp.d.ts.map +1 -1
  416. package/dist/testing/createTestApp.js +12 -3
  417. package/dist/testing/createTestPipelineApp.d.ts +25 -0
  418. package/dist/testing/createTestPipelineApp.d.ts.map +1 -0
  419. package/dist/testing/createTestPipelineApp.js +153 -0
  420. package/dist/testing/ensure.d.ts +108 -0
  421. package/dist/testing/ensure.d.ts.map +1 -0
  422. package/dist/testing/ensure.js +522 -0
  423. package/dist/testing/ensure.trial.d.ts +2 -0
  424. package/dist/testing/ensure.trial.d.ts.map +1 -0
  425. package/dist/testing/ensure.trial.js +9 -0
  426. package/dist/testing/helpers/contentHtmlElements.d.ts.map +1 -1
  427. package/dist/testing/host.d.ts +80 -9
  428. package/dist/testing/host.d.ts.map +1 -1
  429. package/dist/testing/host.js +81 -20
  430. package/dist/testing/hostPipeline.d.ts +157 -0
  431. package/dist/testing/hostPipeline.d.ts.map +1 -0
  432. package/dist/testing/hostPipeline.js +341 -0
  433. package/dist/testing/hydrateTestApp.d.ts +17 -0
  434. package/dist/testing/hydrateTestApp.d.ts.map +1 -1
  435. package/dist/testing/hydrateTestApp.js +26 -6
  436. package/dist/testing/hydrateTestPipelineApp.d.ts +30 -0
  437. package/dist/testing/hydrateTestPipelineApp.d.ts.map +1 -0
  438. package/dist/testing/hydrateTestPipelineApp.js +190 -0
  439. package/dist/testing/index.d.ts +6 -3
  440. package/dist/testing/index.d.ts.map +1 -1
  441. package/dist/testing/index.js +4 -1
  442. package/dist/testing/resolveContent.d.ts +16 -0
  443. package/dist/testing/resolveContent.d.ts.map +1 -0
  444. package/dist/testing/resolveContent.js +65 -0
  445. package/dist/testing/testingComponentPackage.d.ts +3 -1
  446. package/dist/testing/testingComponentPackage.d.ts.map +1 -1
  447. package/dist/testing/testingComponentPackage.js +16 -1
  448. package/dist/update/integrateUpdateVdom.d.ts.map +1 -1
  449. package/dist/update/integrateUpdateVdom.js +35 -31
  450. package/dist/update/integrateUpdateVdomPrebuild.js +20 -20
  451. package/dist/validChildren.d.ts.map +1 -1
  452. package/dist/zones/react.d.ts.map +1 -1
  453. package/package.json +20 -18
  454. package/types/helpers.d.ts +11 -2
  455. package/types/jsx/html.d.ts +29 -25
  456. package/types/jsx/jsx.d.ts +8 -8
  457. package/types/modules.d.ts +14 -3
  458. package/types/testing.d.ts +0 -0
  459. package/vendor/babel-core.js +5 -5
  460. package/vendor/babel-parser.js +1 -1
  461. package/vendor/babel-preset-react.js +32 -34
  462. package/vendor/babel-preset-typescript.js +5 -5
  463. package/vendor/chalk-extensions.js +3 -146
  464. package/vendor/chokidar.js +311 -5
  465. package/vendor/chunk-B34JUlnS.js +169 -0
  466. package/vendor/{chunk-Bu8ZRE-c.js → chunk-B9ttgKqg.js} +28 -25
  467. package/vendor/{chunk-D2EnpcLg.js → chunk-BGvapINa.js} +3 -164
  468. package/vendor/{chunk-Cqrj-Zqr.js → chunk-BmAiqUzD.js} +22 -8
  469. package/vendor/{chunk-BiUcnLhT.js → chunk-But4T5N_.js} +8 -3
  470. package/vendor/{chunk-OUnVY4Wm.js → chunk-DuR6SGzI.js} +162 -35
  471. package/vendor/dotenv.js +2 -2
  472. package/vendor/express.js +61 -10
  473. package/vendor/manifest.json +2 -2
  474. package/vendor/postcss.js +1 -1
  475. package/vendor/precinct.js +5914 -3591
  476. package/vendor/valibot.js +418 -504
  477. package/dist/Servers/MatchedRouteInfo.d.ts +0 -11
  478. package/dist/Servers/MatchedRouteInfo.d.ts.map +0 -1
  479. package/dist/routing/__fluentRouteBuilder.d.ts +0 -80
  480. package/dist/routing/__fluentRouteBuilder.d.ts.map +0 -1
  481. package/dist/routing/__fluentRouteBuilder.js +0 -183
  482. package/dist/routing/__fluentRoutes.d.ts +0 -2
  483. package/dist/routing/__fluentRoutes.d.ts.map +0 -1
  484. package/dist/routing/__fluentRoutes.js +0 -59
  485. package/vendor/chunk-Hy-cCmu-.js +0 -23
  486. /package/dist/{Servers → routing}/MatchedRouteInfo.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipelineSplit.types.test.d.ts","sourceRoot":"","sources":["../../src/pipeline/pipelineSplit.types.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,440 @@
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 { contextStore } from './contextStore.js';
5
+ import { pipeline } from './pipeline.js';
6
+ import { splitPipeline } from './splitPipeline.js';
7
+ /*
8
+ * Type tests for the split pipeline. tsc is the assertion - nothing here runs.
9
+ *
10
+ * serverInit -> routing -> serverPost -> clientInit -> routing -> clientPost
11
+ */
12
+ class ApiClient {
13
+ constructor(reqRes) {
14
+ _defineProperty(this, "get", async path => Promise.resolve(path));
15
+ void reqRes;
16
+ }
17
+ }
18
+ class VersionManager {
19
+ constructor() {
20
+ _defineProperty(this, "version", 'v1');
21
+ }
22
+ }
23
+ const server = splitPipeline.server('express');
24
+ const serverInit = server.serverInit(reqRes => {
25
+ // the server's stages always have the request
26
+ const typed = reqRes;
27
+ void typed;
28
+ return {
29
+ context: {
30
+ api: new ApiClient(reqRes)
31
+ },
32
+ networked: {
33
+ userId: 1
34
+ }
35
+ };
36
+ });
37
+ const serverPost = serverInit.serverPost((reqRes, init) => {
38
+ const typed = reqRes;
39
+ const api = init.context.api;
40
+ void typed;
41
+ void api;
42
+ return {
43
+ context: {
44
+ api,
45
+ counter: contextStore({
46
+ count: init.networked.userId
47
+ })
48
+ },
49
+ networked: {
50
+ counter: contextStore({
51
+ count: init.networked.userId
52
+ }, {
53
+ sync: 'afterRouting'
54
+ })
55
+ }
56
+ };
57
+ });
58
+ // clientInit is handed the networked data from serverPost, and makes a context of its own
59
+ const clientInit = serverPost.clientInit(networked => {
60
+ const counter = networked.counter;
61
+ return {
62
+ context: {
63
+ api: new ApiClient(null),
64
+ versions: new VersionManager()
65
+ },
66
+ networked: {
67
+ userId: counter.count.get()
68
+ }
69
+ };
70
+ });
71
+ const app = clientInit.clientPost(init => ({
72
+ context: {
73
+ api: init.context.api,
74
+ versions: init.context.versions,
75
+ counter: contextStore({
76
+ count: init.networked.userId
77
+ })
78
+ }
79
+ }));
80
+ // ---- the components see either side's context -------------------------------
81
+ export class Page extends app.SimpleComponent {
82
+ constructor(...args) {
83
+ super(...args);
84
+ _defineProperty(this, "content", () => {
85
+ const context = this.tungsten.context;
86
+ // what both sides give
87
+ const api = context.api;
88
+ const count = context.counter.count.get();
89
+ void api;
90
+ void count;
91
+ // @ts-expect-error -- only the client gives it
92
+ void context.versions;
93
+ if ('versions' in context) {
94
+ const versions = context.versions;
95
+ void versions;
96
+ }
97
+ // @ts-expect-error -- the networked data is not the context
98
+ void context.userId;
99
+ return null;
100
+ });
101
+ }
102
+ }
103
+ export class CountView extends app.SimpleStoreComponent {
104
+ constructor(...args) {
105
+ super(...args);
106
+ _defineProperty(this, "store", this.createStore(({
107
+ counter
108
+ }) => counter));
109
+ _defineProperty(this, "content", () => null);
110
+ }
111
+ }
112
+ // the networked data is the one on both sides: the last server stage's, carried in the page
113
+ export class NetworkedCountView extends app.StatefulStoreComponent {
114
+ constructor(...args) {
115
+ super(...args);
116
+ _defineProperty(this, "store", this.createStore((context, networked) => {
117
+ // @ts-expect-error -- serverPost's, not serverInit's
118
+ void networked.userId;
119
+ return networked.counter;
120
+ }));
121
+ _defineProperty(this, "state", {});
122
+ _defineProperty(this, "content", () => null);
123
+ }
124
+ }
125
+ // the routes see either side's Init
126
+ app.routes((reqRes, init) => {
127
+ const api = init.context.api;
128
+ const userId = init.networked.userId;
129
+ void api;
130
+ void userId;
131
+ // @ts-expect-error -- only the client's
132
+ void init.context.versions;
133
+ return [];
134
+ });
135
+ // ---- the sides are independent -----------------------------------------------
136
+ // the client's stages need not match the server's
137
+ serverPost.clientInit(() => ({
138
+ context: {
139
+ other: 'yes'
140
+ }
141
+ }));
142
+ clientInit.clientPost(() => ({
143
+ context: {
144
+ other: 'yes'
145
+ }
146
+ }));
147
+ // clientPost is optional: the components then see clientInit's context
148
+ export class NoClientPostPage extends clientInit.SimpleComponent {
149
+ constructor(...args) {
150
+ super(...args);
151
+ _defineProperty(this, "content", () => {
152
+ const api = this.tungsten.context.api;
153
+ void api;
154
+ return null;
155
+ });
156
+ }
157
+ }
158
+ clientInit.routes(() => []);
159
+ clientInit.clientPost(init => ({
160
+ context: {
161
+ api: init.context.api
162
+ },
163
+ // @ts-expect-error -- clientPost has no networked data to give
164
+ networked: {}
165
+ }));
166
+ // @ts-expect-error -- a stage gives { context, networked }, not the context bare
167
+ serverPost.clientInit(() => ({
168
+ api: new ApiClient(null)
169
+ }));
170
+ // @ts-expect-error -- clientPost too
171
+ clientInit.clientPost(() => ({
172
+ api: new ApiClient(null)
173
+ }));
174
+ // ---- the chain is whole before routes and components ------------------------
175
+ // @ts-expect-error -- no routes before the client's stages
176
+ void serverInit.routes;
177
+ // @ts-expect-error -- nor components
178
+ void serverPost.SimpleComponent;
179
+ // ---- with no serverPost, clientInit has serverInit's networked data ---------
180
+ const initOnly = serverInit.clientInit(networked => {
181
+ const userId = networked.userId;
182
+ return {
183
+ context: {
184
+ api: new ApiClient(null)
185
+ },
186
+ networked: {
187
+ userId
188
+ }
189
+ };
190
+ });
191
+ export class InitOnlyPage extends initOnly.SimpleComponent {
192
+ constructor(...args) {
193
+ super(...args);
194
+ _defineProperty(this, "content", () => {
195
+ const api = this.tungsten.context.api;
196
+ void api;
197
+ return null;
198
+ });
199
+ }
200
+ }
201
+ // serverInit may make only a context: clientInit then has nothing
202
+ server.serverInit(() => ({
203
+ context: {
204
+ a: 1
205
+ }
206
+ })).clientInit(networked => {
207
+ // @ts-expect-error -- no networked data
208
+ void networked.userId;
209
+ return {
210
+ context: {
211
+ a: 2
212
+ }
213
+ };
214
+ });
215
+ // ---- all-routes data: a function for each side, before Post ------------------
216
+ const withData = serverInit.serverAllRoutesData((reqRes, init) => {
217
+ // the server's, before SSR, with the request
218
+ const typed = reqRes;
219
+ void typed;
220
+ return {
221
+ theme: 'dark',
222
+ userId: init.networked.userId
223
+ };
224
+ });
225
+ const withDataClient = withData.serverPost((reqRes, init, allRoutesData) => ({
226
+ context: {
227
+ theme: allRoutesData.theme
228
+ }
229
+ })).clientInit(() => ({
230
+ context: {
231
+ versions: new VersionManager()
232
+ }
233
+ }));
234
+ // @ts-expect-error -- the client's all-routes data comes first
235
+ void withDataClient.routes;
236
+ // @ts-expect-error -- which gives the server's type
237
+ withDataClient.clientAllRoutesData(() => ({
238
+ theme: 1,
239
+ userId: 1
240
+ }));
241
+ // the client's, before each client navigation, with the client's Init, after clientPost in the chain
242
+ const withDataApp = withDataClient.clientPost((init, allRoutesData) => ({
243
+ context: {
244
+ theme: allRoutesData.theme
245
+ }
246
+ })).clientAllRoutesData(init => {
247
+ const versions = init.context.versions;
248
+ void versions;
249
+ return {
250
+ theme: 'light',
251
+ userId: 2
252
+ };
253
+ });
254
+ // @ts-expect-error -- clientPost comes before the client's all-routes data
255
+ void withDataClient.clientAllRoutesData(() => ({
256
+ theme: '',
257
+ userId: 0
258
+ })).clientPost;
259
+ export class ThemedPage extends withDataApp.SimpleComponent {
260
+ constructor(...args) {
261
+ super(...args);
262
+ _defineProperty(this, "content", () => {
263
+ const theme = this.tungsten.allRoutesData.theme;
264
+ const contextTheme = this.tungsten.context.theme;
265
+ void theme;
266
+ void contextTheme;
267
+ return null;
268
+ });
269
+ }
270
+ }
271
+ // the type by name, off the stage
272
+ const globalData = {
273
+ theme: 'dark',
274
+ userId: 1
275
+ };
276
+ // @ts-expect-error -- as serverAllRoutesData returned it
277
+ const wrongGlobalData = {
278
+ theme: 1,
279
+ userId: 1
280
+ };
281
+ void globalData;
282
+ void wrongGlobalData;
283
+ // clientInit's, whichever stage it returned
284
+ const withDataVersions = stageOf().versions;
285
+ const clientInitResult = stageOf();
286
+ const clientVersions = clientInitResult.context.versions;
287
+ const clientUserId = clientInitResult.networked.userId;
288
+ // @ts-expect-error -- the client's, not serverPost's
289
+ void stageOf().counter;
290
+ // serverPost's and serverInit's
291
+ const serverCounter = stageOf().counter;
292
+ const serverApi = stageOf().api;
293
+ // clientPost's context alone
294
+ const postVersions = stageOf().versions;
295
+ // the all-routes data stage: its data, with the context before it
296
+ const dataTheme = stageOf().theme;
297
+ const dataApi = stageOf().api;
298
+ void withDataVersions;
299
+ void clientVersions;
300
+ void clientUserId;
301
+ void serverCounter;
302
+ void serverApi;
303
+ void postVersions;
304
+ void dataTheme;
305
+ void dataApi;
306
+ // an earlier stage's, by name, off the last one
307
+ const namedClientInit = stageOf();
308
+ const namedVersions = namedClientInit.context.versions;
309
+ const namedUserId = namedClientInit.networked.userId;
310
+ const namedServerApi = stageOf().api;
311
+ const namedCounter = stageOf().counter;
312
+ const namedServerData = stageOf().theme;
313
+ const namedClientData = stageOf().theme;
314
+ // @ts-expect-error -- a stage this chain did not take
315
+ void stageOf();
316
+ // @ts-expect-error -- nor one after it
317
+ void stageOf();
318
+ // a branch keeps its own chain's records
319
+ const branchContext = stageOf();
320
+ const branchApi = branchContext.api;
321
+ // @ts-expect-error -- initOnly's clientInit made no versions
322
+ void branchContext.versions;
323
+ void namedVersions;
324
+ void namedUserId;
325
+ void namedServerApi;
326
+ void namedCounter;
327
+ void namedServerData;
328
+ void namedClientData;
329
+ void branchApi;
330
+ // ---- clientAfterRouting: after each client routing, the components' context ---
331
+ const afterRouting = app.clientAfterRouting((context, route, allRoutesData) => {
332
+ // clientPost's context, the matched route, the all-routes data
333
+ const versions = context.versions;
334
+ const key = route.key;
335
+ const location = route.location;
336
+ void versions;
337
+ void key;
338
+ void location;
339
+ void allRoutesData;
340
+ return {
341
+ context: {
342
+ versions,
343
+ page: route.key
344
+ }
345
+ };
346
+ });
347
+ export class AfterRoutingPage extends afterRouting.SimpleComponent {
348
+ constructor(...args) {
349
+ super(...args);
350
+ _defineProperty(this, "content", () => {
351
+ const context = this.tungsten.context;
352
+ // either the server's last context or clientAfterRouting's
353
+ if ('page' in context) {
354
+ const page = context.page;
355
+ void page;
356
+ }
357
+ // @ts-expect-error -- clientPost's alone is no longer what components see
358
+ void context.theme;
359
+ return null;
360
+ });
361
+ }
362
+ }
363
+ const afterRoutingPage = stageOf().page;
364
+ void afterRoutingPage;
365
+ // with no clientPost, clientInit's context
366
+ initOnly.clientAfterRouting(context => {
367
+ const api = context.api;
368
+ return {
369
+ context: {
370
+ api
371
+ }
372
+ };
373
+ });
374
+ // @ts-expect-error -- a stage gives { context }, not the context bare
375
+ app.clientAfterRouting(context => context);
376
+ // @ts-expect-error -- and after the client's all-routes data, when there is one
377
+ void withDataClient.clientAfterRouting;
378
+ // @ts-expect-error -- with no server all-routes data there is no client one
379
+ void clientInit.clientAllRoutesData;
380
+ // @ts-expect-error -- the server's is serialized into the page
381
+ serverInit.serverAllRoutesData(() => ({
382
+ when: new Date()
383
+ }));
384
+ // ---- what cannot cross the network ------------------------------------------
385
+ // @ts-expect-error -- the networked data is serialized into the page
386
+ server.serverInit(reqRes => ({
387
+ networked: {
388
+ leaked: reqRes
389
+ }
390
+ }));
391
+ // @ts-expect-error -- and so is serverPost's
392
+ serverInit.serverPost(reqRes => ({
393
+ networked: {
394
+ leaked: reqRes
395
+ }
396
+ }));
397
+ // @ts-expect-error -- as are the values of a networked store
398
+ serverInit.serverPost(() => ({
399
+ networked: {
400
+ store: contextStore({
401
+ when: new Date()
402
+ })
403
+ }
404
+ }));
405
+ // the context is not
406
+ server.serverInit(reqRes => ({
407
+ context: {
408
+ reqRes,
409
+ store: contextStore({
410
+ when: new Date()
411
+ })
412
+ }
413
+ }));
414
+ // ---- a stage gives { context, networked }, not the context bare --------------
415
+ // @ts-expect-error -- serverInit
416
+ server.serverInit(() => ({
417
+ api: new ApiClient(null)
418
+ }));
419
+ // @ts-expect-error -- nor beside them
420
+ server.serverInit(() => ({
421
+ context: {},
422
+ api: new ApiClient(null)
423
+ }));
424
+ // @ts-expect-error -- serverPost
425
+ serverInit.serverPost(() => ({
426
+ api: new ApiClient(null)
427
+ }));
428
+ // nothing at all is fine
429
+ server.serverInit(() => undefined);
430
+ // ---- the two pipelines do not mix -------------------------------------------
431
+ // @ts-expect-error -- the split pipeline has no init
432
+ void server.init;
433
+ // @ts-expect-error -- nor post
434
+ void serverInit.post;
435
+ // @ts-expect-error -- and serverInit comes first
436
+ void server.clientInit;
437
+ // @ts-expect-error -- and the other has no serverInit
438
+ void pipeline.server('express').serverInit;
439
+ // @ts-expect-error -- and only names a server tungsten knows
440
+ splitPipeline.server('koa');
@@ -0,0 +1,31 @@
1
+ import type { BrandedContext, BrandedNetworkedData } from '../Brands.js';
2
+ import type { MatchedRouteInfo } from '../routing/MatchedRouteInfo.js';
3
+ import type { RoutesWithSettings } from '../routing/Routes.js';
4
+ import type { ServerDataLoading } from '../Store/ServerDataLoading.js';
5
+ import type { InstancePipeline } from '../Instance/Instance.js';
6
+ import type { ClientRan, PipelineApp, StageContext } from './pipelineDefinition.js';
7
+ export type PipelineRouted = {
8
+ init: StageContext | undefined;
9
+ routes: RoutesWithSettings<any>;
10
+ allRoutesData: object;
11
+ matchedRouteInfo: MatchedRouteInfo;
12
+ };
13
+ export type ServerRunner = {
14
+ route: (app: PipelineApp, reqRes: unknown, location: string, serverDataLoading: ServerDataLoading | null, dev: boolean) => Promise<PipelineRouted>;
15
+ post: (app: PipelineApp, reqRes: unknown, init: StageContext | undefined, allRoutesData: object) => Promise<StageContext | undefined>;
16
+ context: (init: StageContext | undefined, post: StageContext | undefined) => object;
17
+ networked: (init: StageContext | undefined, post: StageContext | undefined) => object | undefined;
18
+ };
19
+ export declare function pipelineRoutes(app: PipelineApp, reqRes: unknown, init: StageContext | undefined, dev: boolean): RoutesWithSettings<any>;
20
+ export declare function routeWithPipeline(app: PipelineApp, reqRes: unknown, location: string, serverDataLoading: ServerDataLoading | null, dev: boolean): Promise<PipelineRouted>;
21
+ export declare function routeAfterInit(app: PipelineApp, reqRes: unknown, location: string, serverDataLoading: ServerDataLoading | null, dev: boolean, init: StageContext | undefined, context: object | undefined, networked: object | undefined): Promise<PipelineRouted>;
22
+ export declare const routingContext: (context: object | undefined) => BrandedContext;
23
+ export declare const routingNetworkedData: (networked: object | undefined) => BrandedNetworkedData;
24
+ export declare const afterRoutingFor: (run: ClientRan["afterRouting"]) => InstancePipeline["afterRouting"];
25
+ export declare function runPost(app: PipelineApp, reqRes: unknown, init: StageContext | undefined, allRoutesData: object): Promise<StageContext | undefined>;
26
+ export declare const pipelineContext: (init: StageContext | undefined, post: StageContext | undefined) => object;
27
+ export declare const symmetricServer: ServerRunner;
28
+ export declare function runClientPipeline(app: PipelineApp, allRoutesData: object): Promise<ClientRan & {
29
+ post: object | undefined;
30
+ }>;
31
+ //# sourceMappingURL=runPipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runPipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/runPipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ import { $cacheControl } from '../cacheControl.js';
2
+ import { routing } from "../Servers/routing.js";
3
+ import { toRoutes } from '../routing/routesArray.js';
4
+ import { appRoutesFunction } from './pipelineDefinition.js';
5
+ // the routes as the router reads them, with the routes options where the object form's settings go
6
+ export function pipelineRoutes(app, reqRes, init, dev) {
7
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- typed by the stage
8
+ const returned = appRoutesFunction(app)(reqRes, init);
9
+ const routes = toRoutes(returned, dev);
10
+ const cacheControl = app.routesOptions.cacheControl;
11
+ return cacheControl !== undefined ? {
12
+ ...routes,
13
+ [$cacheControl]: cacheControl
14
+ } : routes;
15
+ }
16
+ // Init, then the routes; the all-routes data beside routing, as the classic global data runs.
17
+ // Route data functions see Init's context
18
+ export async function routeWithPipeline(app, reqRes, location, serverDataLoading, dev) {
19
+ const init = await app.init?.(reqRes, undefined);
20
+ return routeAfterInit(app, reqRes, location, serverDataLoading, dev, init, init, undefined);
21
+ }
22
+ // the route data functions are handed the context and networked data Init made
23
+ export async function routeAfterInit(app, reqRes, location, serverDataLoading, dev, init, context, networked) {
24
+ const routes = pipelineRoutes(app, reqRes, init, dev);
25
+ const [allRoutesData, matchedRouteInfo] = await Promise.all([app.allRoutesData?.(reqRes, init) ?? {}, routing(location, routes, routingContext(context), routingNetworkedData(networked), serverDataLoading)]);
26
+ return {
27
+ init,
28
+ routes,
29
+ allRoutesData,
30
+ matchedRouteInfo
31
+ };
32
+ }
33
+ // the framework brands what it builds
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
35
+ export const routingContext = context => context ?? {};
36
+ export const routingNetworkedData = networked => networked ?? {}; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
37
+ // the split pipeline's clientAfterRouting, as the instance calls it after each client routing
38
+ export const afterRoutingFor = run => {
39
+ if (run === undefined) return undefined;
40
+ return async (route, allRoutesData) => await run(route, allRoutesData); // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
41
+ };
42
+ // after routing, and not at all for a redirect
43
+ export async function runPost(app, reqRes, init, allRoutesData) {
44
+ return app.post?.(reqRes, init, allRoutesData);
45
+ }
46
+ // what this.tungsten.context reads: the last stage's context
47
+ export const pipelineContext = (init, post) => post ?? init ?? {};
48
+ // what the request handler runs, beside the split pipeline's
49
+ export const symmetricServer = {
50
+ route: routeWithPipeline,
51
+ post: runPost,
52
+ context: pipelineContext,
53
+ networked: () => undefined
54
+ };
55
+ // The browser's run, for hydration: the same stages, with null for the request. The all-routes data
56
+ // is the server's, from the page
57
+ export async function runClientPipeline(app, allRoutesData) {
58
+ const init = await app.init?.(null, undefined);
59
+ const post = await app.post?.(null, init, allRoutesData);
60
+ const registered = app.allRoutesData;
61
+ return {
62
+ init,
63
+ post,
64
+ context: pipelineContext(init, post),
65
+ routingContext: init ?? {},
66
+ routingNetworkedData: {},
67
+ allRoutesData: registered && (() => registered(null, init)),
68
+ networked: {},
69
+ afterRouting: undefined
70
+ };
71
+ }
@@ -0,0 +1,10 @@
1
+ import type { ServerDataLoading } from '../Store/ServerDataLoading.js';
2
+ import type { ClientRan, PipelineApp, SplitResult } from './pipelineDefinition.js';
3
+ import type { PipelineRouted, ServerRunner } from './runPipeline.js';
4
+ export declare function routeWithSplitPipeline(app: PipelineApp, reqRes: unknown, location: string, serverDataLoading: ServerDataLoading | null, dev: boolean): Promise<PipelineRouted>;
5
+ export declare function runServerPost(app: PipelineApp, reqRes: unknown, init: object | undefined, allRoutesData: object): Promise<SplitResult | undefined>;
6
+ export declare const splitContext: (init: object | undefined, post: object | undefined) => object;
7
+ export declare const splitNetworked: (init: object | undefined, post: object | undefined) => object | undefined;
8
+ export declare const splitServer: ServerRunner;
9
+ export declare function runSplitClient(app: PipelineApp, allRoutesData: object, fromPage: unknown): Promise<ClientRan>;
10
+ //# sourceMappingURL=runSplitPipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runSplitPipeline.d.ts","sourceRoot":"","sources":["../../src/pipeline/runSplitPipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAepE,wBAAsB,sBAAsB,CACxC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EACnD,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,EAAE,GAAG,EAAE,OAAO,GAC1D,OAAO,CAAC,cAAc,CAAC,CAKzB;AAGD,wBAAsB,aAAa,CAC/B,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM,GACnF,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAElC;AAGD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,WACvC,CAAA;AAGxC,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,GAAG,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,uBAC7C,CAAA;AAEpC,eAAO,MAAM,WAAW,EAAE,YAKzB,CAAA;AAID,wBAAsB,cAAc,CAChC,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAC3D,OAAO,CAAC,SAAS,CAAC,CAiBpB"}
@@ -0,0 +1,48 @@
1
+ import { fromTransport } from './networkedTransport.js';
2
+ import { routeAfterInit } from './runPipeline.js';
3
+ /*
4
+ * Runs a split pipeline app: serverInit -> routing -> serverPost on the server, clientInit ->
5
+ * routing -> clientPost in the browser. The route data functions are handed Init's context and
6
+ * networked data; the components, the last stage's context
7
+ */
8
+ // The stages' results. The app holds them loosely, as the builder typed them
9
+ const asSplit = stage => stage;
10
+ export async function routeWithSplitPipeline(app, reqRes, location, serverDataLoading, dev) {
11
+ const init = await app.serverInit?.(reqRes);
12
+ return routeAfterInit(app, reqRes, location, serverDataLoading, dev, init, init?.context, init?.networked);
13
+ }
14
+ // after routing, and not at all for a redirect
15
+ export async function runServerPost(app, reqRes, init, allRoutesData) {
16
+ return app.serverPost?.(reqRes, asSplit(init), allRoutesData);
17
+ }
18
+ // what this.tungsten.context reads: the last stage's context
19
+ export const splitContext = (init, post) => asSplit(post ?? init)?.context ?? {};
20
+ // what goes into the page: the last server stage's networked data
21
+ export const splitNetworked = (init, post) => asSplit(post ?? init)?.networked;
22
+ export const splitServer = {
23
+ route: routeWithSplitPipeline,
24
+ post: runServerPost,
25
+ context: splitContext,
26
+ networked: splitNetworked
27
+ };
28
+ // The browser's run, for hydration: clientInit from the networked data in the page, its stores
29
+ // rebuilt, then clientPost with the server's all-routes data. Each navigation's is the client's own
30
+ export async function runSplitClient(app, allRoutesData, fromPage) {
31
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- the request handler wrote it
32
+ const networked = fromTransport(fromPage) ?? {};
33
+ const init = await app.clientInit?.(networked);
34
+ const post = await app.clientPost?.(init, allRoutesData);
35
+ const context = splitContext(init, post);
36
+ const registered = app.clientAllRoutesData;
37
+ const afterRouting = app.clientAfterRouting;
38
+ return {
39
+ init,
40
+ context,
41
+ routingContext: init?.context ?? {},
42
+ routingNetworkedData: init?.networked ?? {},
43
+ allRoutesData: registered && (() => registered(init)),
44
+ networked,
45
+ // clientPost's context in each time, the components' out
46
+ afterRouting: afterRouting && (async (route, data) => splitContext(await afterRouting(context, route, data), undefined))
47
+ };
48
+ }